/* =====================================================================
   Landing page
   ===================================================================== */

body.if-landing-body { margin: 0; background: var(--if-bg); }

/* =========================================================
   CORREÇÃO GLOBAL DE BOX MODEL E OVERFLOW
   ========================================================= */
.if-landing,
.if-landing *,
.if-landing *::before,
.if-landing *::after {
  box-sizing: border-box;
}

.if-landing img,
.if-landing svg,
.if-landing video,
.if-landing iframe {
  max-width: 100%;
}


.if-landing {
	background: var(--if-bg);
}

.if-landing__header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: rgba(238, 242, 245, 0.92);
	backdrop-filter: saturate(160%) blur(6px);
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1.15rem 2rem;
	border-bottom: 1px solid var(--if-border);
}

.if-landing__brand { display: flex; align-items: center; gap: 0.7rem; min-width: 0; }

.if-landing__logo-img {
  height: 80px;
  width: auto;
  max-width: 120%;
}

.if-landing__logo {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: -moz-fit-content;
	width: fit-content;
	line-height: 1.2;
}
.if-landing__logo-linha1 {
	display: flex;
	justify-content: space-between;
	width: 100%;
	font-family: var(--if-font-display);
	font-size: 1.3rem;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--if-ink);
}
.if-landing__logo-linha2 {
	white-space: nowrap;
	font-family: var(--if-font-display);
	font-size: 0.56rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--if-ink);
	margin-top: 0.2rem;
}

.if-landing__nav { display: flex; gap: 0.5rem; flex-shrink: 0; }

.if-landing__menu-btn {
	display: none;
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid var(--if-border-strong);
	border-radius: var(--if-radius);
	color: var(--if-wine);
	cursor: pointer;
	padding: 0;
}
.if-landing__menu-btn svg { width: 19px; height: 19px; }
.if-landing__menu-btn:focus-visible { outline: 2px solid var(--if-gold); outline-offset: 2px; }

.if-section__inner {
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 2rem;
}
.if-section__inner--narrow { max-width: 720px; }

.if-section { position: relative; overflow: hidden; padding: 5.5rem 0; background: var(--if-bg); }
.if-section--tint { background: linear-gradient(165deg, #dfe9f1, #cfdfec 55%, #dfe9f1); }
.if-section__inner { position: relative; z-index: 1; }

.if-section h2 {
	font-family: var(--if-font-display);
	font-size: clamp(1.7rem, 3vw, 2.1rem);
	font-weight: 500;
	line-height: 1.2;
	margin: 0 0 1.1rem;
	color: var(--if-wine-dark);
}

.if-lead {
	max-width: 60ch;
	color: var(--if-ink-muted);
	font-size: 1.05rem;
	line-height: 1.6;
	margin: 0 0 2.25rem;
}

.if-sec-valores { padding: 0; background: var(--if-surface); }

.if-valores__banner {
	background: var(--if-vinho);
	padding: 3rem 2rem;
	text-align: center;
}
.if-valores__banner h2 {
	color: #f4f7fa;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin: 0 0 0.6rem;
}
.if-valores__banner-sub {
	font-family: var(--if-font-display);
	font-style: italic;
	font-weight: 500;
	font-size: 1.05rem;
	color: #e7d9d9;
	margin: 0;
}

.if-valores__body { padding: 3.5rem 0; text-align: center; }
.if-valores__lead { margin-left: auto; margin-right: auto; }

/* ---------- Movimento de entrada ao rolar a página ---------- */

.if-reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 700ms ease, transform 700ms ease;
}
.if-reveal.if-reveal--visivel { opacity: 1; transform: none; }

.if-grade__sem.if-reveal { transition-delay: var(--if-reveal-atraso, 0ms); }
.if-motivo.if-reveal { transition-delay: var(--if-reveal-atraso, 0ms); }

@media (prefers-reduced-motion: reduce) {
	.if-reveal { transition: none; opacity: 1; transform: none; }
}

/* ---------- Hero ---------- */

.if-hero {
	position: relative;
	isolation: isolate;
	/* Camada de cor sobre a imagem. Sem imagem definida (--if-hero-bg,
	   aplicada via style inline pelo PHP quando hero_image_url está
	   preenchida), cai no gradiente vinho/preto abaixo. */
	background:
		linear-gradient(165deg, rgba(10, 63, 99, 0.88), rgba(10, 26, 43, 0.93)),
		var(--if-hero-bg, linear-gradient(120deg, var(--if-wine-dark), var(--if-ink)));
	background-size: cover;
	background-position: center;
	color: #f4f7fa;
	text-align: center;
	padding: 4.5rem 1.75rem 5rem;
}

.if-hero::before {
	content: '';
	position: absolute;
	inset: 14px;
	border: 1px solid rgba(221, 186, 97, 0.4);
	pointer-events: none;
	z-index: 1;
}

.if-hero__inner {
	position: relative;
	z-index: 2;
	max-width: 640px;
	margin: 0 auto;
}

.if-hero__vagas {
	margin: 0.9rem 0 0;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: #ddba61;
}

.if-eyebrow {
	font-size: 0.82rem;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #ddba61;
	margin: 0 0 1.4rem;
}

.if-hero h1 {
	font-family: var(--if-font-display);
	font-weight: 500;
	line-height: 1.16;
	margin: 0 0 1.4rem;
}
.if-hero h1 .if-hero__linha1 {
	display: block;
	font-size: clamp(1.9rem, 4vw, 2.5rem);
	color: #f4f7fa;
}
.if-hero h1 .if-hero__linha2 {
	display: block;
	font-size: clamp(2.5rem, 5.4vw, 3.4rem);
	color: #f4f7fa;
}

.if-hero__subtitulo {
	font-family: var(--if-font-display);
	font-style: italic;
	font-weight: 500;
	font-size: 1.15rem;
	line-height: 1.55;
	color: #d6dee6;
	max-width: 46ch;
	margin: 0 auto 1.1rem;
}

.if-hero__turma {
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #15315b;
	background: var(--if-gold);
	padding: 0.4rem 1rem;
	border-radius: 2px;
	margin: 0 0 2.2rem;
}

.if-facts {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 0 auto 2.4rem;
	background: rgba(10, 26, 43, 0.55);
	border: 1px solid rgba(221, 186, 97, 0.3);
	border-radius: var(--if-radius-lg);
	padding: 1.15rem 0;
}

.if-facts__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0 1.85rem;
	border-right: 1px solid rgba(221, 186, 97, 0.25);
}
.if-facts__item:last-child { border-right: none; }

.if-facts__item small {
	order: -1;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: #ddba61;
	font-size: 0.72rem;
	margin-bottom: 0.45rem;
}
.if-facts__item span {
	font-family: var(--if-font-display);
	font-size: 1.1rem;
	color: #f4f7fa;
}

.if-btn--lg { padding: 0.95rem 2.1rem; font-size: 1rem; }
.if-btn--full { width: 100%; text-align: center; }

.if-btn--gold {
	background: var(--if-gold);
	border-color: var(--if-gold);
	color: #15315b;
}
.if-btn--gold:hover { background: var(--if-gold-dark); border-color: var(--if-gold-dark); }

.if-btn--outline {
	background: transparent;
	border-color: var(--if-wine);
	color: var(--if-wine);
}
.if-btn--outline:hover { background: var(--if-wine); color: #f4f7fa; }

/* Botões "ghost" no header sobre fundo claro (sticky) usam tinta escura. */
.if-landing__header .if-btn--ghost { color: var(--if-ink); }

/* ---------- Para quem é (seção com imagem + perfis) ---------- */

.if-quem__grid {
	display: grid;
	grid-template-columns: 0.85fr 1.15fr;
	gap: 3.5rem;
	align-items: center;
}

.if-quem__media-wrap {
	position: relative;
	z-index: 1;
}

.if-quem__media {
	position: relative;
	z-index: 1;
	aspect-ratio: 4 / 4.1;
	max-width: 90%;
	margin: 0 auto;
	border-radius: var(--if-radius-lg);
	overflow: hidden;
	/* Sem imagem_quem definida, usa um degradê vinho/dourado como fundo
	   (aplicada via style inline pelo PHP: --if-quem-img). */
	background: var(--if-quem-img, linear-gradient(155deg, var(--if-wine-dark), var(--if-wine) 55%, var(--if-gold-dark)));
	background-size: cover;
	background-position: center;
}
.if-quem__media::after {
	content: '';
	position: absolute;
	inset: 12px;
	border: 1px solid rgba(244, 247, 250, 0.35);
	border-radius: calc(var(--if-radius-lg) - 3px);
	pointer-events: none;
}

.if-eyebrow--dark {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	font-size: 0.82rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--if-gold-dark);
	margin: 0 0 1rem;
}
.if-eyebrow--dark::before,
.if-eyebrow--dark::after {
	content: '';
	width: 20px;
	height: 1px;
	background: var(--if-gold);
	flex: 0 0 auto;
}

.if-sec-quem { padding: 0; background: var(--if-surface); }

.if-quem__banner {
	background: var(--if-vinho);
	padding: 3rem 2rem;
	text-align: center;
	margin-bottom: 0;
}
.if-quem__banner h2 {
	color: #f4f7fa;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin: 0 0 0.6rem;
}
.if-quem__banner-sub {
	font-family: var(--if-font-display);
	font-style: italic;
	font-weight: 500;
	font-size: 1.05rem;
	color: #e7d9d9;
	margin: 0;
}

.if-quem__body { padding: 4rem 0; }

.if-quem__content { text-align: center; }
.if-quem__content .if-lead { margin-left: auto; margin-right: auto; }

.if-personas {
	list-style: none;
	margin: 2.4rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2.1rem 2.5rem;
}
.if-personas--grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.6rem 2.5rem;
	margin: 2.2rem 0 1.5rem;
}
.if-persona {
	flex: 0 1 215px;
	padding-top: 1rem;
	border-top: 2px solid var(--if-gold);
}
.if-personas--grid .if-persona { border-top: none; padding-top: 0; }
.if-persona h3 {
	font-family: var(--if-font-display);
	font-size: 1.2rem;
	font-weight: 600;
	margin: 0 0 0.4rem;
	color: var(--if-gold-dark);
}
.if-persona p { margin: 0; max-width: 34ch; color: var(--if-ink-muted); font-size: 0.92rem; line-height: 1.55; }
.if-personas--grid .if-persona p { margin: 0 auto; }
.if-persona--full {
	border: 1px solid var(--if-border-strong);
	padding: 1.5rem 1.75rem;
	text-align: center;
}
.if-persona--full h3 { margin: 0 0 0.4rem; }
.if-persona--full p { max-width: none; margin: 0 auto; }
.if-persona--vinho { border-color: var(--if-vinho); }
.if-persona--vinho h3 { color: var(--if-vinho); }

@media (max-width: 760px) {
	.if-quem__grid { grid-template-columns: 1fr; gap: 2rem; }
	.if-quem__media { aspect-ratio: 16 / 9; }
	.if-personas--grid { grid-template-columns: 1fr; }
}

/* ---------- Por que fazer o curso ---------- */

.if-cabecalho-central {
	text-align: center;
	max-width: 600px;
	margin: 0 auto;
}
.if-cabecalho-central .if-lead { margin-left: auto; margin-right: auto; }

.if-ornamento {
	width: 84px;
	height: 1px;
	background: var(--if-gold);
	margin: 1.15rem auto 1.7rem;
	position: relative;
}
.if-ornamento::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	width: 6px;
	height: 6px;
	background: var(--if-gold);
	transform: translate(-50%, -50%) rotate(45deg);
}

.if-sec-benef { padding: 0; background: var(--if-surface); }

.if-beneficios__banner {
	background: var(--if-wine-dark);
	padding: 3rem 2rem;
	text-align: center;
}
.if-beneficios__banner h2 {
	color: #f4f7fa;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin: 0 0 0.6rem;
}
.if-beneficios__banner-sub {
	font-family: var(--if-font-display);
	font-style: italic;
	font-weight: 500;
	font-size: 1.05rem;
	color: #d7e3ec;
	margin: 0;
}

.if-beneficios__body { padding: 3.5rem 0; }

.if-motivos-card {
	background: #e9edf0;
	padding: 3rem 2.75rem;
	border-radius: 2px;
}

.if-motivos--grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2.6rem 3rem;
	border-top: none;
}
.if-motivos--grid .if-motivo {
	display: block;
	padding: 0;
	border-bottom: none;
	text-align: center;
}
.if-motivos--grid .if-motivo h3 {
	font-family: var(--if-font-display);
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0 0 0.6rem;
	color: var(--if-wine-dark);
}
.if-motivos--grid .if-motivo p {
	margin: 0 auto;
	max-width: 34ch;
	color: var(--if-ink-muted);
	font-size: 0.92rem;
	line-height: 1.6;
}

@media (max-width: 640px) {
	.if-motivos--grid { grid-template-columns: 1fr; }
}

/* ---------- Citação ---------- */

.if-quote {
	position: relative;
	overflow: hidden;
	background: linear-gradient(160deg, var(--if-vinho), #2a0f0f);
	color: #f4f7fa;
	text-align: center;
	padding: 2.75rem 0;
}
.if-quote__aspas {
	display: block;
	font-family: var(--if-font-display);
	font-size: 6.2rem;
	line-height: 1;
	color: var(--if-gold);
	opacity: 0.75;
	margin-bottom: -2.5rem;
}
.if-quote__texto {
	font-family: var(--if-font-display);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(1.1rem, 2.2vw, 1.45rem);
	line-height: 1.5;
	max-width: 40ch;
	margin: 0 auto 1rem;
}
.if-quote__autor {
	font-size: 0.85rem;
	letter-spacing: 0.06em;
	color: #ddba61;
	margin: 0;
}
.if-quote__autor span {
	display: block;
	font-style: italic;
	font-size: 0.8rem;
	color: #aab7c4;
	letter-spacing: normal;
	margin-top: 0.25rem;
}

/* ---------- Grade curricular ---------- */

.if-sec-grade { padding: 0; background: var(--if-surface); }

.if-grade__topo { text-align: center; padding: 3.5rem 2rem 2rem; }
.if-grade__topo h2 { color: var(--if-gold-dark); margin: 0 0 0.6rem; }
.if-grade__subtitulo {
	font-family: var(--if-font-display);
	font-style: italic;
	font-weight: 500;
	font-size: 1.05rem;
	color: var(--if-ink);
	margin: 0;
}

.if-grade__body { background: var(--if-bg); padding: 3rem 0 4rem; }
.if-grade__lead { text-align: center; margin: 0 auto 2.5rem; max-width: 640px; }

.if-grade {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.75rem;
	margin-top: 0;
}
.if-grade__sem {
	background: var(--if-surface);
	border: 1px solid var(--if-border);
	border-top: 3px solid var(--if-gold);
	padding: 1.9rem 1.75rem;
	transition: transform 220ms ease, box-shadow 220ms ease;
}
.if-grade__sem:hover { transform: translateY(-4px); box-shadow: 0 16px 32px -20px rgba(10, 26, 43, 0.4); }
.if-grade__numero {
	display: block;
	text-align: center;
	font-family: var(--if-font-display);
	font-size: 1.12rem;
	font-weight: 600;
	color: var(--if-vinho);
	margin-bottom: 1.2rem;
}
.if-grade__modulo + .if-grade__modulo { margin-top: 1.15rem; }
.if-grade__modulo-label {
	margin: 0 0 0.55rem;
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--if-gold-dark);
}
.if-grade__sem ul { margin: 0; padding: 0; list-style: none; }
.if-grade__sem li {
	display: flex;
	gap: 0.65rem;
	padding: 0.3rem 0;
	font-size: 0.9rem;
	line-height: 1.45;
	color: var(--if-ink);
}
.if-grade__tag {
	flex: 0 0 auto;
	font-family: var(--if-font-display);
	font-size: 0.8rem;
	color: var(--if-gold-dark);
	min-width: 1.3rem;
}

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

/* ---------- Quando e onde ---------- */

.if-sec-quando { padding: 0; background: var(--if-surface); }

.if-quando__banner {
	background: var(--if-wine-dark);
	padding: 3rem 2rem;
	text-align: center;
}
.if-quando__banner h2 {
	color: #f4f7fa;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin: 0 0 0.6rem;
}
.if-quando__banner-sub {
	font-family: var(--if-font-display);
	font-style: italic;
	font-weight: 500;
	font-size: 1.05rem;
	color: #d7e3ec;
	margin: 0;
}

.if-quando__body { padding: 4rem 0; }

.if-quando__grid {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: 3.5rem;
	align-items: center;
}

.if-quando__content { text-align: center; }
.if-quando__content .if-lead { margin-left: auto; margin-right: auto; }

.if-quando__media {
	position: relative;
	aspect-ratio: 4 / 5;
	border-radius: var(--if-radius-lg);
	overflow: hidden;
	/* Sem imagem_quando definida, usa um degradê dourado/vinho como
	   fundo (aplicada via style inline pelo PHP: --if-quando-img). */
	background: var(--if-quando-img, linear-gradient(205deg, var(--if-wine-dark), var(--if-gold-dark) 60%, var(--if-wine)));
	background-size: cover;
	background-position: center;
}
.if-quando__media::after {
	content: '';
	position: absolute;
	inset: 12px;
	border: 1px solid rgba(244, 247, 250, 0.35);
	border-radius: calc(var(--if-radius-lg) - 3px);
	pointer-events: none;
}

@media (max-width: 760px) {
	.if-quando__grid { grid-template-columns: 1fr; gap: 2rem; }
	.if-quando__media { aspect-ratio: 16 / 9; }
}

/* ---------- Informações práticas ---------- */

.if-infolist {
	margin: 2.4rem 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.if-infolist li { display: flex; align-items: baseline; gap: 0.25rem; }
.if-info__label {
	flex: 0 0 auto;
	width: 108px;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--if-gold-dark);
}
.if-info__valor {
	font-family: var(--if-font-display);
	font-size: 1.05rem;
	color: var(--if-ink);
}

.if-infolist--central {
	align-items: center;
	gap: 1.6rem;
}
.if-infolist--central li { flex-direction: column; align-items: center; gap: 0.35rem; }
.if-infolist--central .if-info__label {
	width: auto;
	font-family: var(--if-font-display);
	font-style: italic;
	font-weight: 500;
	font-size: 0.95rem;
	letter-spacing: 0.02em;
	text-transform: none;
	color: var(--if-wine-dark);
}
.if-infolist--central .if-info__label::after { content: ':'; }
.if-infolist--central .if-info__valor {
	font-family: var(--if-font-body);
	font-size: 1rem;
	color: var(--if-ink);
}

/* ---------- Investimento ---------- */

.if-invest {
	border: 1px solid var(--if-border-strong);
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin-top: 3rem;
	background: var(--if-surface);
}
.if-invest__opcao {
	padding: 2.75rem 2.25rem;
	text-align: center;
}
.if-invest__opcao:first-child { border-right: 1px solid var(--if-border-strong); }
.if-invest__opcao--destaque {
	background: var(--if-gold-tint);
	border: 3px solid var(--if-gold);
	box-shadow: 0 16px 34px -20px rgba(10, 26, 43, 0.4);
	position: relative;
}

.if-invest__rotulo {
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--if-gold-dark);
	margin: 0 0 0.9rem;
	min-height: 1em;
}
.if-invest__opcao h3 {
	font-family: var(--if-font-display);
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--if-ink);
	margin: 0 0 1.1rem;
}
.if-invest__preco {
	font-family: var(--if-font-display);
	font-size: 2.15rem;
	color: var(--if-wine-dark);
	margin: 0 0 0.5rem;
}
.if-invest__preco span { font-family: var(--if-font-body); font-size: 1rem; color: var(--if-ink-muted); }
.if-invest__nota { color: var(--if-ink-muted); font-size: 0.9rem; line-height: 1.5; margin: 0 0 1.9rem; }

/* Destaque "De / Por" do plano semestral */
.if-invest__de {
	font-size: 1rem;
	color: var(--if-ink-muted);
	margin: -0.4rem 0 0.25rem;
}
.if-invest__de s { text-decoration-thickness: 1.5px; text-decoration-color: var(--if-vinho); }
.if-invest__selo {
	display: inline-block;
	background: var(--if-vinho);
	color: #fdf9f5;
	font-size: 0.88rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.35;
	padding: 0.45rem 0.9rem;
	border-radius: var(--if-radius);
	margin: 0.35rem 0 1rem;
}


@media (max-width: 640px) {
	.if-invest { grid-template-columns: 1fr; }
	.if-invest__opcao:first-child { border-right: none; border-bottom: 1px solid var(--if-border-strong); }
}

/* ---------- CTA final ---------- */

.if-cta {
	position: relative;
	overflow: hidden;
	background: linear-gradient(160deg, var(--if-gold), var(--if-gold-dark));
	padding: 4.5rem 2rem;
	text-align: center;
}
.if-cta__eyebrow {
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: #f4f7fa;
	margin: 0 0 0.6rem;
}
.if-cta h2 {
	font-family: var(--if-font-display);
	font-size: clamp(1.5rem, 2.8vw, 1.9rem);
	font-weight: 700;
	font-style: italic;
	color: #f4f7fa;
	margin: 0 0 1.1rem;
}
.if-cta .if-lead { color: #fdf9ee; margin: 0 auto 2rem; }
.if-cta .if-btn--gold {
	background: #fdf9f5;
	border-color: #fdf9f5;
	color: var(--if-wine-dark);
}
.if-cta .if-btn--gold:hover { background: #fff; border-color: #fff; }

/* ---------- Rodapé ---------- */

.if-landing__footer { background: var(--if-wine-dark); color: #c2ccd6; padding: 2.75rem 0; text-align: center; }
.if-landing__footer-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.3rem;
}
.if-landing__logo--footer { align-items: center; margin-bottom: 0.6rem; }
.if-landing__logo--footer .if-landing__logo-linha1,
.if-landing__logo--footer .if-landing__logo-linha2 { color: #f4f7fa; }
.if-landing__footer p { margin: 0.15rem 0 0; font-size: 0.9rem; }

/* Logos do Instituto e da Diocese lado a lado (desktop e mobile) */
.if-landing__footer-logos {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	margin-bottom: 1.1rem;
	max-width: 100%;
}
.if-landing__footer-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	flex: 0 1 auto;
}
.if-landing__footer-img {
	display: block;
	height: 64px;
	width: auto;
	max-width: 100%;
	object-fit: contain;
}
.if-landing__footer-divisor {
	flex: 0 0 1px;
	align-self: stretch;
	background: rgba(221, 186, 97, 0.45);
}
.if-landing__footer .if-landing__footer-titulo {
	font-family: var(--if-font-display);
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: #f4f7fa;
	margin: 0 0 0.3rem;
}
.if-landing__footer .if-landing__footer-endereco { margin: 0; }

@media (max-width: 600px) {
	.if-landing__footer-logos { gap: 1rem; }
	.if-landing__footer-img { height: 52px; max-width: 42vw; }
}
@media (max-width: 380px) {
	.if-landing__footer-logos { gap: 0.75rem; }
	.if-landing__footer-img { height: 44px; }
}

/* ---------- Botão flutuante de WhatsApp ---------- */

.if-whatsapp-flutuante {
	position: fixed;
	right: 1.5rem;
	bottom: 1.5rem;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #25D366;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 12px 28px -8px rgba(10, 26, 43, 0.5);
	z-index: 500;
	transition: transform var(--if-transition);
}
.if-whatsapp-flutuante:hover { transform: scale(1.07); }
.if-whatsapp-flutuante:focus-visible { outline: 2px solid var(--if-gold); outline-offset: 3px; }
.if-whatsapp-flutuante svg { width: 26px; height: 26px; }
.if-whatsapp-flutuante::after {
	content: attr(data-tooltip);
	position: absolute;
	right: calc(100% + 12px);
	top: 50%;
	transform: translateY(-50%) translateX(6px);
	background: var(--if-ink);
	color: #f4f7fa;
	font-family: var(--if-font-body);
	font-size: 0.78rem;
	white-space: nowrap;
	padding: 0.5rem 0.85rem;
	border-radius: var(--if-radius);
	opacity: 0;
	pointer-events: none;
	transition: opacity 180ms ease, transform 180ms ease;
}
.if-whatsapp-flutuante:hover::after,
.if-whatsapp-flutuante:focus-visible::after { opacity: 1; transform: translateY(-50%) translateX(0); }
@media (max-width: 640px) { .if-whatsapp-flutuante::after { display: none; } }
@media (prefers-reduced-motion: reduce) { .if-whatsapp-flutuante { transition: none; } }

@media (max-width: 860px) {
	.if-facts { flex-direction: column; width: 100%; padding: 0.4rem 0; }
	.if-facts__item {
		border-right: none;
		border-bottom: 1px solid rgba(221, 186, 97, 0.25);
		padding: 0.9rem 1.5rem;
		width: 100%;
	}
	.if-facts__item:last-child { border-bottom: none; }
	.if-info__label { width: 88px; }
	.if-landing__footer-inner { gap: 0.5rem; }
	.if-section { padding: 3.5rem 0; }
	.if-sec-quem, .if-sec-benef, .if-sec-grade, .if-sec-quando, .if-sec-valores { padding: 0; }
	.if-quem__banner, .if-beneficios__banner, .if-quando__banner, .if-grade__topo, .if-valores__banner { padding: 2.25rem 1.5rem; }
	.if-quem__body, .if-beneficios__body, .if-quando__body, .if-valores__body { padding: 2.75rem 0; }
	.if-grade__body { padding: 2.25rem 0 3rem; }
	.if-cta { padding: 3rem 1.5rem; }
	.if-hero { padding: 3.5rem 1.25rem 3rem; }
	.if-hero::before { inset: 8px; }
	.if-landing__header { padding: 1rem 1.25rem; }
}

@media (max-width: 600px) {
	.if-landing__logo-linha1 { font-size: 1.05rem; }
	.if-landing__logo-linha2 { font-size: 0.48rem; }
	.if-landing__menu-btn { display: flex; }
	.if-landing__nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		gap: 0.5rem;
		background: var(--if-bg);
		border-bottom: 1px solid var(--if-border);
		padding: 0.75rem 1.25rem 1.15rem;
		box-shadow: 0 14px 24px -16px rgba(10, 26, 43, 0.35);
	}
	.if-landing__nav.if-show { display: flex; }
	.if-landing__nav .if-btn {
		width: 100%;
		text-align: center;
		padding: 0.75rem;
		border: 1px solid var(--if-border-strong);
	}
	.if-landing__nav .if-btn--ghost::after { display: none; }
}

/* =====================================================================
   Modal (inscrição, login)
   ===================================================================== */

.if-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba( 10, 26, 43, 0.5 );
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999;
	padding: 1.5rem;
	opacity: 0;
	transition: opacity 200ms ease;
}
.if-modal-overlay.if-show { opacity: 1; }

.if-modal-box {
	background: var(--if-surface);
	border-top: 3px solid var(--if-gold);
	border-radius: var(--if-radius-lg);
	box-shadow: var(--if-shadow-modal);
	padding: 2.25rem;
	max-width: 460px;
	width: 100%;
	max-height: 85vh;
	overflow-y: auto;
	position: relative;
	transform: scale( 0.97 ) translateY( 6px );
	transition: transform 220ms cubic-bezier( 0.4, 0, 0.2, 1 );
}
.if-modal-overlay.if-show .if-modal-box { transform: scale( 1 ) translateY( 0 ); }

.if-modal-banner {
	display: block;
	width: calc(100% + 4.5rem);
	height: 150px;
	object-fit: cover;
	margin: -2.25rem -2.25rem 1.5rem;
	border-radius: calc(var(--if-radius-lg) - 3px) calc(var(--if-radius-lg) - 3px) 0 0;
}

.if-modal-content h2 {
	font-family: var(--if-font-display);
	font-size: 1.5rem;
	font-weight: 600;
	margin: 0 0 1.25rem;
	color: var(--if-wine);
}

.if-modal-close {
	position: absolute;
	top: 1rem;
	right: 1.1rem;
	background: none;
	border: none;
	font-size: 1.4rem;
	line-height: 1;
	color: var(--if-ink-faint);
	cursor: pointer;
	transition: color var(--if-transition);
}
.if-modal-close:hover { color: var(--if-ink); }

.if-field { margin-bottom: 1rem; display: flex; flex-direction: column; gap: 0.35rem; }
.if-field--checkbox { flex-direction: row; align-items: flex-start; gap: 0.6rem; font-size: 0.85rem; color: var(--if-ink-muted); }
.if-field--checkbox input { margin-top: 0.2rem; }

.if-erro {
	background: var(--if-danger-bg);
	color: var(--if-danger-ink);
	border-radius: var(--if-radius);
	padding: 0.65rem 0.9rem;
	font-size: 0.85rem;
	margin-bottom: 1rem;
}

.if-esqueci { font-size: 0.82rem; color: var(--if-ink-muted); margin-top: 0.9rem; text-align: center; }

/* ---------- Etapa de pagamento (PIX) ---------- */

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

.if-pagamento__selo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0 auto 1rem;
	border-radius: 50%;
	background: var(--if-success-bg);
	color: var(--if-success-ink);
	font-size: 1.3rem;
	font-weight: 600;
}

.if-pagamento h2 { text-align: center; }

.if-pagamento__intro {
	color: var(--if-ink-muted);
	font-size: 0.92rem;
	line-height: 1.5;
	margin: 0 0 1.25rem;
}

.if-aviso-vagas {
	background: var(--if-gold-tint);
	border-left: 3px solid var(--if-gold);
	border-radius: var(--if-radius);
	padding: 0.75rem 1rem;
	font-size: 0.85rem;
	line-height: 1.5;
	color: var(--if-ink);
	text-align: left;
	margin-bottom: 1.5rem;
}
.if-aviso-vagas strong { color: var(--if-wine-dark); }

.if-pagamento__rotulo {
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--if-gold-dark);
	margin: 0 0 0.35rem;
}

.if-pagamento__valor {
	font-family: var(--if-font-display);
	font-size: 2rem;
	color: var(--if-wine-dark);
	margin: 0 0 1.5rem;
}

.if-pagamento__qr {
	display: flex;
	justify-content: center;
	background: var(--if-surface);
	border: 1px solid var(--if-border);
	border-top: 3px solid var(--if-gold);
	border-radius: var(--if-radius-lg);
	padding: 1.25rem;
	margin-bottom: 1.5rem;
}
#if-qr-pix { display: flex; justify-content: center; }

.if-pix-campo {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	text-align: left;
	font-family: 'SFMono-Regular', Consolas, monospace;
	font-size: 0.76rem;
	line-height: 1.5;
	color: var(--if-ink-muted);
	background: var(--if-bg);
	border: 1px dashed var(--if-border-strong);
	border-radius: var(--if-radius);
	padding: 0.85rem 1rem;
	margin-bottom: 1.5rem;
	cursor: pointer;
	transition: border-color var(--if-transition), background var(--if-transition);
}
.if-pix-campo:hover { border-color: var(--if-gold); background: var(--if-gold-tint); }
.if-pix-campo:focus-visible { outline: 2px solid var(--if-gold); outline-offset: 2px; }
.if-pix-campo__texto { flex: 1 1 auto; word-break: break-all; }
.if-pix-campo__icone { flex: 0 0 auto; width: 20px; height: 20px; color: var(--if-gold-dark); }
.if-pix-campo__icone svg { width: 100%; height: 100%; }
.if-pix-campo--copiado { border-color: var(--if-success-ink); background: var(--if-success-bg); }
.if-pix-campo--copiado .if-pix-campo__icone { color: var(--if-success-ink); }

.if-pagamento__envio {
	border-top: 1px solid var(--if-border);
	padding-top: 1.25rem;
	font-size: 0.88rem;
	color: var(--if-ink-muted);
}
.if-pagamento__envio .if-pagamento__rotulo { text-align: center; }

/* =====================================================================
   Área do aluno
   ===================================================================== */

.if-aluno { max-width: 1100px; margin: 0 auto; padding: 2rem 1.75rem 4rem; background: var(--if-bg); }

.if-aviso-atraso {
	background: var(--if-danger-bg);
	color: var(--if-danger-ink);
	border-left: 3px solid var(--if-danger-ink);
	border-radius: var(--if-radius);
	padding: 0.85rem 1.1rem;
	font-size: 0.9rem;
	margin-bottom: 1.25rem;
}

.if-aluno__header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 1.5rem;
	margin-bottom: 1.75rem;
	border-bottom: 1px solid var(--if-border);
}

.if-link { color: var(--if-wine); text-decoration: none; font-size: 0.88rem; }
.if-link:hover { text-decoration: underline; }

.if-tabs { display: flex; gap: 1.75rem; border-bottom: 1px solid var(--if-border); margin-bottom: 1.75rem; }

.if-tab-btn {
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	padding: 0 0 0.9rem;
	font-family: var(--if-font-body);
	font-size: 0.92rem;
	color: var(--if-ink-muted);
	cursor: pointer;
	transition: color var(--if-transition), border-color var(--if-transition);
}
.if-tab-btn.active { color: var(--if-wine); border-bottom-color: var(--if-gold); font-weight: 600; }
.if-tab-btn:hover { color: var(--if-ink); }

.if-panel h3 {
	font-family: var(--if-font-display);
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--if-ink);
	margin: 2rem 0 0.9rem;
}
.if-panel form { max-width: 340px; display: flex; flex-direction: column; gap: 0.75rem; margin-top: 0.5rem; }

.if-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--if-border);
	gap: 1rem;
}
.if-row__label { color: var(--if-ink-muted); font-size: 0.88rem; }

.if-recado {
	border: 1px solid var(--if-border);
	border-left: 3px solid var(--if-gold);
	border-radius: var(--if-radius);
	padding: 1rem 1.1rem;
	margin-bottom: 0.75rem;
}
.if-recado--lido { border-left-color: var(--if-border-strong); opacity: 0.75; }
.if-recado small { color: var(--if-ink-faint); }

/* ================================================================
   AJUSTE GLOBAL DE TIPOGRAFIA — LEITURA MAIOR / RESPONSIVO
   Mantém o layout original e aumenta textos, formulários e logo.
   ================================================================ */
.if-landing {
  font-size: 1.05rem;
}

/* Textos corridos */
.if-lead,
.if-persona p,
.if-motivos--grid .if-motivo p,
.if-grade__sem li,
.if-info__valor,
.if-info__valor--center,
.if-invest__nota,
.if-footer p {
  font-size: 1rem;
}

.if-lead { font-size: 1.12rem; }
.if-persona p,
.if-motivos--grid .if-motivo p { line-height: 1.65; }

/* Títulos e subtítulos */
.if-section h2 { font-size: clamp(1.9rem, 3.2vw, 2.35rem); }
.if-hero__subtitulo { font-size: 1.22rem; line-height: 1.6; }
.if-grade__subtitulo { font-size: 1.12rem; }
.if-quote__texto { font-size: clamp(1.2rem, 2.35vw, 1.55rem); }
.if-cta h2 { font-size: clamp(1.65rem, 3vw, 2.05rem); }

/* Labels e textos pequenos */
.if-eyebrow,
.if-eyebrow--dark,
.if-hero__vagas,
.if-hero__turma,
.if-facts__item small,
.if-grade__modulo-label,
.if-grade__tag,
.if-info__label,
.if-invest__rotulo,
.if-cta .if-eyebrow,
.if-quote__autor,
.if-quote__autor span,
.if-whatsapp__tooltip {
  font-size: 0.9rem;
}

.if-persona h3,
.if-motivos--grid .if-motivo h3,
.if-invest h3,
.if-panel h3 {
  font-size: 1.2rem;
}

.if-info__valor,
.if-info__valor--center { font-size: 1.12rem; }
.if-facts__item span { font-size: 1.18rem; }

/* Botões */
.if-btn--lg,
.if-btn {
  font-size: 1.08rem;
}

/* ================================================================
   FORMULÁRIOS — campos mais confortáveis e fáceis de ler
   ================================================================ */
.if-field label,
.if-field > label {
  font-size: 1rem;
  line-height: 1.4;
}

.if-field input,
.if-field select,
.if-field textarea,
.if-form input,
.if-form select,
.if-form textarea {
  font-size: 1rem;
  line-height: 1.4;
  min-height: 48px;
  padding: 0.78rem 0.9rem;
}

.if-field textarea,
.if-form textarea {
  min-height: 110px;
}

.if-field--checkbox,
.if-field--checkbox label,
.if-erro,
.if-esqueci,
.if-pagamento__intro,
.if-disponibilidade__aviso,
.if-pagamento__enviando,
.if-link,
.if-tabs {
  font-size: 0.95rem;
  line-height: 1.5;
}

.if-pagamento__label { font-size: 0.82rem; }
.if-pagamento__valor { font-size: 2.15rem; }
.if-pix__field { font-size: 0.85rem; }

/* Modal */
.if-modal-box {
  padding: 2.5rem;
  max-width: 500px;
}

.if-modal-content h2 { font-size: 1.7rem; }
.if-modal-content .if-btn { min-height: 48px; }

/* ================================================================
   LOGO / HEADER
   ================================================================ */
.if-landing__header {
  padding: 1.25rem 2rem;
}

.if-landing__logo-img {
  height: 44px;
}

.if-landing__logo-linha1 {
  font-size: 1.4rem;
}

.if-landing__logo-linha2 {
  font-size: 0.62rem;
}

/* ================================================================
   MOBILE
   ================================================================ */
@media (max-width: 860px) {
  .if-landing__header {
    padding: 1rem 1.25rem;
  }

  .if-lead { font-size: 1.08rem; }
  .if-hero__subtitulo { font-size: 1.1rem; }
}

@media (max-width: 600px) {
  .if-landing__logo-img {
    height: 40px;
  }

  .if-landing__logo-linha1 {
    font-size: 1.2rem;
  }

  .if-landing__logo-linha2 {
    font-size: 0.55rem;
  }

  .if-landing {
    font-size: 1rem;
  }

  .if-lead {
    font-size: 1.05rem;
    line-height: 1.65;
  }

  .if-persona p,
  .if-motivos--grid .if-motivo p,
  .if-grade__sem li,
  .if-info__valor,
  .if-info__valor--center,
  .if-footer p {
    font-size: 0.98rem;
  }

  .if-section h2 {
    font-size: clamp(1.75rem, 7vw, 2.1rem);
  }

  .if-hero__subtitulo {
    font-size: 1.05rem;
  }

  .if-field label,
  .if-field > label {
    font-size: 0.98rem;
  }

  .if-field input,
  .if-field select,
  .if-field textarea,
  .if-form input,
  .if-form select,
  .if-form textarea {
    font-size: 1rem;
    min-height: 50px;
    padding: 0.8rem 0.9rem;
  }

  .if-field textarea,
  .if-form textarea {
    min-height: 115px;
  }

  .if-field--checkbox,
  .if-field--checkbox label,
  .if-erro,
  .if-esqueci,
  .if-pagamento__intro,
  .if-disponibilidade__aviso,
  .if-link,
  .if-tabs {
    font-size: 0.93rem;
  }

  .if-modal-box {
    padding: 1.75rem 1.25rem;
    width: calc(100% - 2rem);
    max-width: 500px;
  }

  .if-modal-content h2 {
    font-size: 1.5rem;
  }

  .if-btn--lg,
  .if-btn {
    font-size: 1rem;
  }
}

/* =========================================================
   AJUSTE FINO DOS CAMPOS DOS FORMULÁRIOS
   Mantém os textos maiores, mas deixa os campos mais compactos.
   ========================================================= */

.if-field:not(.if-field--checkbox) input,
.if-field:not(.if-field--checkbox) select,
.if-field:not(.if-field--checkbox) textarea,
.if-form input:not([type="checkbox"]):not([type="radio"]),
.if-form select,
.if-form textarea {
  width: 100%;
  max-width: 340px;
  min-height: 42px;
  height: 42px;
  padding: 0.55rem 0.75rem;
  font-size: 0.98rem;
  line-height: 1.3;
  box-sizing: border-box;
}

.if-field:not(.if-field--checkbox) textarea,
.if-form textarea {
  height: auto;
  min-height: 88px;
  resize: vertical;
}

/* Mantém o formulário centralizado quando os campos ficam menores */
.if-modal-content .if-field:not(.if-field--checkbox) {
  align-items: center;
}

.if-modal-content .if-field:not(.if-field--checkbox) label {
  width: 100%;
  max-width: 340px;
}

/* Checkbox não herda a altura/tamanho dos campos comuns */
.if-field--checkbox input[type="checkbox"],
.if-field--checkbox input[type="radio"] {
  width: auto;
  min-height: auto;
  height: auto;
  padding: 0;
}

/* Formulários da área do aluno */
.if-form {
  width: 100%;
}

.if-form input:not([type="checkbox"]):not([type="radio"]),
.if-form select,
.if-form textarea {
  max-width: 340px;
}

/* No celular, aproveita melhor a largura sem deixar o campo exageradamente alto */
@media (max-width: 600px) {
  .if-modal-box {
    padding: 1.75rem;
  }

  .if-modal-banner {
    width: calc(100% + 3.5rem);
    margin: -1.75rem -1.75rem 1.25rem;
  }

  .if-field:not(.if-field--checkbox) input,
  .if-field:not(.if-field--checkbox) select,
  .if-form input:not([type="checkbox"]):not([type="radio"]),
  .if-form select {
    max-width: 100%;
    min-height: 42px;
    height: 42px;
    padding: 0.55rem 0.7rem;
  }

  .if-field:not(.if-field--checkbox) textarea,
  .if-form textarea {
    max-width: 100%;
    min-height: 82px;
  }

  .if-modal-content .if-field:not(.if-field--checkbox) label {
    max-width: 100%;
  }
}

/* =========================================================
   AJUSTE FINAL — MODAL DE INSCRIÇÃO E HEADER
   ========================================================= */

/* Título "Inscrição" centralizado dentro do formulário */
.if-modal-content h2 {
  text-align: center;
}

/* Campos do formulário: quase toda a largura disponível do modal,
   mas sem aumentar excessivamente a altura. */
.if-modal-content .if-field:not(.if-field--checkbox) input,
.if-modal-content .if-field:not(.if-field--checkbox) select,
.if-modal-content .if-field:not(.if-field--checkbox) textarea {
  width: 100%;
  max-width: none;
  min-height: 42px;
  height: 42px;
  padding: 0.55rem 0.8rem;
  font-size: 0.98rem;
  line-height: 1.3;
  box-sizing: border-box;
}

.if-modal-content .if-field:not(.if-field--checkbox) textarea {
  height: auto;
  min-height: 82px;
}

.if-modal-content .if-field:not(.if-field--checkbox) label {
  width: 100%;
  max-width: none;
}

/* Checkbox maior e mais legível */
.if-modal-content .if-field--checkbox,
.if-modal-content .if-field--checkbox label {
  font-size: 1.05rem;
  line-height: 1.45;
}

.if-modal-content .if-field--checkbox {
  gap: 0.65rem;
}

.if-modal-content .if-field--checkbox input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  min-height: 18px;
  margin-top: 0.15rem;
}

/* Área do Aluno / Área Reservada no header um pouco menores */
.if-landing__header .if-btn--ghost {
  font-size: 0.88rem;
  padding: 0.55rem 0.85rem;
}

/* Mantém os botões do header compactos também no celular */
@media (max-width: 600px) {
  .if-landing__header .if-btn--ghost {
    font-size: 0.82rem;
    padding: 0.5rem 0.7rem;
  }

  .if-modal-content .if-field:not(.if-field--checkbox) input,
  .if-modal-content .if-field:not(.if-field--checkbox) select {
    width: 100%;
    max-width: none;
    height: 42px;
    min-height: 42px;
  }

  .if-modal-content .if-field:not(.if-field--checkbox) textarea {
    width: 100%;
    max-width: none;
    min-height: 82px;
  }

  .if-modal-content .if-field--checkbox,
  .if-modal-content .if-field--checkbox label {
    font-size: 1rem;
  }
}

/* =========================================================
   CORREÇÃO RESPONSIVA FINAL
   - elimina overflow horizontal no mobile
   - centraliza os fatos do curso
   - permite quebra natural de textos
   - melhora a margem lateral dos conteúdos
   - aumenta discretamente a tipografia mobile
   ========================================================= */

/* Base dos fatos */
.if-facts {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: stretch;
  width: min(100%, 800px);
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  overflow: hidden;
}

.if-facts__item {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
  max-width: 100%;
  box-sizing: border-box;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  padding: 0 1.35rem;
  text-align: center;

  border-right: 1px solid rgba(221, 186, 97, 0.25);
}

.if-facts__item:last-child {
  border-right: none;
}

.if-facts__item small {
  width: 100%;
  order: -1;
  text-align: center;
  white-space: normal;
  overflow-wrap: break-word;
  line-height: 1.35;
}

.if-facts__item span {
  display: block;
  width: 100%;
  max-width: 100%;
  text-align: center;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  line-height: 1.4;
}

/* Área interna das seções */
.if-section__inner {
  width: 100%;
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* Imagens e mídias nunca devem criar largura maior que o container */
.if-landing img,
.if-landing svg,
.if-landing video,
.if-landing iframe {
  max-width: 100%;
}

/* Benefícios */
.if-motivos--grid {
  max-width: 100%;
  box-sizing: border-box;
}

.if-motivos-card {
  box-sizing: border-box;
}

/* =========================================================
   TABLET
   ========================================================= */
@media (max-width: 860px) and (min-width: 641px) {
  .if-facts {
    width: 100%;
    max-width: 100%;
  }

  .if-facts__item {
    padding-left: 0.8rem;
    padding-right: 0.8rem;
  }

  .if-facts__item small {
    font-size: 0.82rem;
  }

  .if-facts__item span {
    font-size: 1.05rem;
  }

  .if-section__inner {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .if-motivos--grid {
    column-gap: 3.5rem;
    row-gap: 3.5rem;
  }

  .if-motivos-card {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}

/* =========================================================
   MOBILE
   ========================================================= */
@media (max-width: 640px) {
  .if-section__inner {
    width: 100%;
    max-width: 100%;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .if-facts {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;

    width: 100%;
    max-width: 100%;

    margin-left: auto;
    margin-right: auto;

    padding: 0.35rem 0;
    overflow: hidden;
  }

  .if-facts__item {
    flex: 0 0 auto;

    width: 100%;
    max-width: 100%;
    min-width: 0;

    box-sizing: border-box;

    padding: 1rem 1.25rem;

    border-right: none;
    border-bottom: 1px solid rgba(221, 186, 97, 0.25);

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    text-align: center;
  }

  .if-facts__item:last-child {
    border-bottom: none;
  }

  .if-facts__item small {
    width: 100%;
    max-width: 100%;
    font-size: 0.88rem;
    line-height: 1.35;
    text-align: center;
    white-space: normal;
    overflow-wrap: break-word;
  }

  .if-facts__item span {
    width: 100%;
    max-width: 100%;
    font-size: 1.08rem;
    line-height: 1.4;
    text-align: center;
    white-space: normal;
    overflow-wrap: break-word;
  }

  .if-motivos--grid {
    width: 100%;
    max-width: 100%;
    row-gap: 3rem;
  }

  .if-motivos-card {
    width: 100%;
    max-width: 100%;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    box-sizing: border-box;
  }

  /* Tipografia mobile: aumento discreto em relação aos 0.98rem */
  .if-persona p,
  .if-motivos--grid .if-motivo p,
  .if-grade__sem li,
  .if-info__valor,
  .if-info__valor--center,
  .if-footer p,
  .if-landing__footer p {
    font-size: 1.02rem;
    line-height: 1.6;
  }

  .if-lead {
    font-size: 1.08rem;
    line-height: 1.65;
  }

  .if-hero__subtitulo {
    font-size: 1.08rem;
    line-height: 1.6;
  }

  .if-grade__subtitulo {
    font-size: 1.05rem;
    line-height: 1.55;
  }

  /* Evita que títulos ou textos longos criem overflow */
  .if-landing h1,
  .if-landing h2,
  .if-landing h3,
  .if-landing p,
  .if-landing li,
  .if-landing span,
  .if-landing small,
  .if-landing a {
    overflow-wrap: break-word;
  }

  /* Mantém os botões e CTAs dentro da viewport */
  .if-btn,
  .if-btn--lg {
    max-width: 100%;
  }
}

/* =========================================================
   MOBILE ESTREITO
   ========================================================= */
@media (max-width: 380px) {
  .if-section__inner {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .if-facts__item {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .if-motivos-card {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .if-facts__item span {
    font-size: 1.04rem;
  }

  .if-facts__item small {
    font-size: 0.84rem;
  }
}

/* =========================================================
   TAMANHO DA LOGO
   ========================================================= */

.if-landing__logo-img {
  display: block;
  width: auto;
  height: 55px;
  max-width: 100%;
  object-fit: contain;
}

@media (max-width: 600px) {
  .if-landing__logo-img {
    height: 50px;
    width: auto;
    max-width: 100%;
  }
}

@media (max-width: 380px) {
  .if-landing__logo-img {
    height: 46px;
  }
}
