/* ==========================================================================
   Redspark — main.css
   CSS original extraído do protótipo "Homepage Redspark Design".
   Mantém exatamente as fontes, cores, espaçamentos e grids da UX.
   ========================================================================== */

/* ==========================================================================
   Fontes (InterBrand)
   ========================================================================== */
@font-face { font-family: "InterBrand"; src: url("../../fonts/Inter_18pt-Bold.ttf") format("truetype"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "InterBrand"; src: url("../../fonts/Inter_18pt-ExtraBold.ttf") format("truetype"); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: "InterBrand"; src: url("../../fonts/Inter_18pt-Black.ttf") format("truetype"); font-weight: 900; font-style: normal; font-display: swap; }
@font-face { font-family: "InterBrand"; src: url("../../fonts/Inter_18pt-ExtraLight.ttf") format("truetype"); font-weight: 200; font-style: normal; font-display: swap; }

/* ==========================================================================
   Tokens
   ========================================================================== */
:root {
	--navy: #041133;
	--navy-mid: #0A1F4A;
	--navy-deep: #052570;
	--red: #DF2039;
	--red-bright: #FF113B;
	--red-soft: #FF6B7F;
	--bg-light: #F2F6FC;
	--bg-card: #F7FAFE;
	--bg-blue: #EDF3FF;
	--text-dark: #0f172a;
	--text-muted: #46536b;
	--brand: "InterBrand", "Inter", system-ui, sans-serif;
	--body: "Inter", system-ui, sans-serif;
}

/* ==========================================================================
   Reset / base
   ========================================================================== */
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: border-box; }
body {
	background: #ffffff;
	font-family: "InterBrand", "Inter", system-ui, sans-serif;
	color: #041133;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
a { color: #DF2039; text-decoration: none; transition: color .18s ease, background-color .18s ease, border-color .18s ease; }
a:hover { color: #041133; }
img { max-width: 100%; height: auto; }
.site { overflow-x: hidden; }

/* Remove margens que o editor/plugins possam adicionar aos blocos. */
.entry-content, .site-main { margin: 0; padding: 0; }

/* ==========================================================================
   Keyframes (cursor do typewriter)
   ========================================================================== */
@keyframes rsBlink {
	0%, 100% { opacity: 1; }
	50% { opacity: 0; }
}

/* ==========================================================================
   Hovers (substituem o style-hover inline do protótipo)
   ========================================================================== */
.rs-hv-red:hover { background-color: #DF2039 !important; color: #ffffff !important; }
.rs-hv-navy:hover { background-color: #041133 !important; color: #ffffff !important; }
.rs-hv-white:hover { background-color: #ffffff !important; color: #041133 !important; }
.rs-hv-outline:hover { border-color: #041133 !important; background-color: rgba(255,255,255,0.6) !important; }
.rs-hv-outline-w:hover { border-color: #041133 !important; background-color: #ffffff !important; }
.rs-hv-social:hover { background-color: #041133 !important; color: #ffffff !important; border-color: #041133 !important; }
.rs-hv-linkred:hover { color: #DF2039 !important; }

/* ==========================================================================
   Header
   ========================================================================== */
.rs-header {
	position: sticky;
	top: 0;
	z-index: 20;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 14px clamp(18px, 4vw, 40px);
	padding: 22px clamp(20px, 5vw, 64px);
	background: rgba(252,253,255,0.86);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom: 1px solid rgba(10,32,75,0.08);
}
.rs-header.rs-header--static { position: static; }
.rs-header__logo { display: block; }
.rs-header__logo img { width: clamp(120px, 26vw, 168px); height: auto; display: block; }
.rs-header__nav { display: flex; align-items: center; flex-wrap: wrap; gap: 10px clamp(16px, 2.4vw, 34px); font-size: 15px; font-weight: 500; letter-spacing: -0.1px; color: #0A1F4A; }
.rs-header__nav a { color: #0A1F4A; }
.rs-header__nav a:hover { color: #041133; }
.rs-header__nav a.is-active { color: #DF2039; font-weight: 700; }
.rs-header__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 13px 24px;
	border-radius: 999px;
	background: #DF2039;
	color: #ffffff;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: -0.1px;
	white-space: nowrap;
}
.rs-header__cta:hover { background: #041133; color: #ffffff; }
.rs-header__cta .arrow { font-size: 17px; }

.rs-header__toggle {
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid rgba(10,32,75,0.18);
	border-radius: 14px;
	background: #ffffff;
	cursor: pointer;
}
.rs-header__toggle:hover { border-color: #041133; }
.rs-header__toggle span { display: block; width: 20px; height: 2px; border-radius: 2px; background: #041133; }

.rs-header__menu {
	display: none;
	width: 100%;
	grid-template-columns: 1fr;
	gap: 4px;
	padding: 12px 0 4px;
	margin-top: 4px;
	border-top: 1px solid rgba(10,32,75,0.1);
}
.rs-header__menu.is-open { display: grid; }
.rs-header__menu-nav { display: grid; gap: 4px; }
.rs-header__menu-nav a { display: block; padding: 13px 2px; font-size: 17px; color: #0A1F4A; }
.rs-header__menu-nav a:hover { color: #041133; }
.rs-header__menu-nav a.is-active { color: #DF2039; font-weight: 700; }
.rs-header__menu .rs-header__cta { display: flex; justify-content: center; margin-top: 12px; }

/* ==========================================================================
   Footer
   ========================================================================== */
.rs-footer {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: clamp(25px, 5vw, 56px);
	align-items: start;
	padding: 64px clamp(20px, 5vw, 64px) 40px;
	background: #F7FAFE;
	border-top: 1px solid rgba(10,32,75,0.12);
}
.rs-footer__brand { display: grid; gap: 18px; align-content: start; }
.rs-footer__logo { display: block; }
.rs-footer__logo img { width: 160px; height: auto; display: block; }
.rs-footer__text { margin: 0; max-width: 34ch; font-family: "Inter", system-ui, sans-serif; font-size: 16px; line-height: 1.55; color: #46536b; }
.rs-footer__col { display: grid; gap: 14px; align-content: start; }
.rs-footer__heading { font-size: 12px; font-weight: 800; letter-spacing: 1.6px; text-transform: uppercase; color: #0A1F4A; }
.rs-footer__col a { font-family: "Inter", system-ui, sans-serif; font-size: 16px; color: #0f172a; }
.rs-footer__col a:hover { color: #041133; }
.rs-footer__social { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.rs-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 999px;
	background: #ffffff;
	border: 1px solid rgba(10,32,75,0.16);
	color: #0A1F4A;
}
.rs-footer__social a:hover { background: #041133; color: #ffffff; border-color: #041133; }
.rs-footer__bottom {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px;
	margin-top: 28px;
	padding-top: 26px;
	border-top: 1px solid rgba(10,32,75,0.12);
}
.rs-footer__copyright { font-family: "Inter", system-ui, sans-serif; font-size: 15px; color: #46536b; }
.rs-footer__domain { font-family: "Inter", system-ui, sans-serif; font-size: 20px; letter-spacing: -0.24px; color: #06204a; }
.rs-footer__domain strong { font-weight: 700; }
.rs-footer__domain:hover { color: #06204a; }

/* ==========================================================================
   Templates genéricos (page/single/archive/index)
   ========================================================================== */
.section { padding: 96px 64px; }
.container { max-width: 1180px; margin: 0 auto; }
.container--narrow { max-width: 780px; }
.section__title { margin: 0 0 24px; font-size: 44px; line-height: 1.05; font-weight: 800; letter-spacing: -1.4px; color: #041133; }
.section__text { font-family: "Inter", system-ui, sans-serif; font-size: 18px; line-height: 1.6; color: #0f172a; }
.section__text p { margin: 0 0 18px; }
.card { padding: 28px 32px; border-radius: 20px; background: #F7FAFE; border: 1px solid rgba(10,32,75,0.12); }
.card__title { margin: 0 0 8px; font-size: 22px; font-weight: 700; }
.card__title a { color: #041133; }
.card__title a:hover { color: #DF2039; }
.card__text { font-family: "Inter", system-ui, sans-serif; font-size: 16px; line-height: 1.55; color: #0f172a; }
.u-mt-36 { margin-top: 36px; }

/* ==========================================================================
   Seção Pullse (secao_pullse) — dark (Home) / light (Quem Somos)
   Fidelidade ao protótipo "Site Institucional Reds".
   ========================================================================== */
.rs-pullse { padding: clamp(56px, 8vw, 112px) clamp(20px, 5vw, 64px); }
.rs-pullse--dark { background: #041133; color: #ffffff; }
.rs-pullse--light { background: #ffffff; }

.rs-pullse__inner { max-width: 1180px; margin: 0 auto; }

/* Grid 2 colunas no desktop; empilha em mobile. */
.rs-pullse__grid {
	display: grid;
	grid-template-columns: 1fr;
	align-items: start;
}
.rs-pullse__grid > * { min-width: 0; max-width: 100%; }
.rs-pullse--dark .rs-pullse__grid { gap: clamp(40px, 5vw, 88px); }
.rs-pullse--light .rs-pullse__grid { gap: clamp(32px, 5vw, 72px); margin-top: 60px; }

/* Tag / badge */
.rs-pullse__tag {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
}

/* Título destaque (apenas na variante light — Quem Somos) */
.rs-pullse__destaque {
	margin: 22px 0 0;
	max-width: 820px;
	font-size: clamp(20px, 2.1vw, 28px);
	line-height: 1.25;
	font-weight: 700;
	letter-spacing: -0.7px;
	color: #041133;
}

/* Título principal */
.rs-pullse--dark .rs-pullse__title {
	margin: 20px 0 0;
	font-size: clamp(30px, 3.9vw, 52px);
	line-height: 1.04;
	font-weight: 800;
	letter-spacing: -1.6px;
}
.rs-pullse--light .rs-pullse__title {
	margin: 0;
	font-size: clamp(24px, 3.1vw, 42px);
	line-height: 1.06;
	font-weight: 800;
	letter-spacing: -1.3px;
	color: #041133;
}

/* Descrição */
.rs-pullse--dark .rs-pullse__desc {
	margin: 24px 0 0;
	font-family: "Inter", system-ui, sans-serif;
	font-size: 19px;
	line-height: 1.55;
	color: rgba(255,255,255,0.78);
}
.rs-pullse--light .rs-pullse__desc {
	margin: 22px 0 0;
	font-family: "Inter", system-ui, sans-serif;
	font-size: 19px;
	line-height: 1.55;
	color: #0f172a;
}

/* Botão CTA */
.rs-pullse__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 16px 28px;
	border-radius: 999px;
	color: #ffffff;
	font-size: 16px;
	font-weight: 700;
}
.rs-pullse--dark .rs-pullse__cta { margin-top: 36px; background: #FF113B; }
.rs-pullse--light .rs-pullse__cta { margin-top: 34px; background: #DF2039; }

/* Card de métricas (sidebar) */
.rs-pullse__metrics {
	display: grid;
	gap: 1px;
	border-radius: 22px;
	overflow: hidden;
}
.rs-pullse--dark .rs-pullse__metrics {
	background: rgba(196,196,196,0.16);
	border: 1px solid rgba(196,196,196,0.16);
}
.rs-pullse--light .rs-pullse__metrics {
	background: rgba(10,32,75,0.12);
	border: 1px solid rgba(10,32,75,0.12);
}

.rs-pullse--dark .rs-pullse__metric { padding: 30px 32px; background: #0A1F4A; }
.rs-pullse--light .rs-pullse__metric { padding: 28px 32px; background: #F7FAFE; }

.rs-pullse--dark .rs-pullse__metric-value {
	font-size: clamp(23px, 3.0vw, 40px);
	font-weight: 800;
	letter-spacing: -1.2px;
}
.rs-pullse--light .rs-pullse__metric-value {
	font-size: clamp(21px, 2.7vw, 36px);
	font-weight: 800;
	letter-spacing: -1.1px;
}

.rs-pullse--dark .rs-pullse__metric-label {
	margin-top: 6px;
	font-family: "Inter", system-ui, sans-serif;
	font-size: 16px;
	color: rgba(255,255,255,0.7);
}
.rs-pullse--light .rs-pullse__metric-label {
	margin-top: 6px;
	font-family: "Inter", system-ui, sans-serif;
	font-size: 16px;
	color: #0f172a;
}

/* Desktop: 2 colunas (texto/CTA à esquerda, card à direita). */
@media (min-width: 1024px) {
	.rs-pullse__grid { grid-template-columns: 1fr 1fr; }
}

/* Mobile (< 768px): coluna única, sem overflow horizontal. */
@media (max-width: 767px) {
	.rs-pullse__grid { grid-template-columns: 1fr; }
	.rs-pullse__grid > * { min-width: 0; max-width: 100%; }
	.rs-pullse__metrics { border-radius: 22px; overflow: hidden; }
}

/* ==========================================================================
   Seção Métricas (secao_metricas) — Home (sem título) / Quem Somos (com título)
   Fidelidade ao protótipo "Site Institucional Reds".
   Grid responsivo FLUIDO: repeat(auto-fit, minmax(min(100%, 240px), 1fr)).
   3 colunas no desktop, 2 + 1 no tablet e coluna única no mobile, sem overflow-x.
   ========================================================================== */
.rs-metricas {
	padding: clamp(48px, 8vw, 96px) clamp(20px, 5vw, 64px);
	border-bottom: 1px solid rgba(10,32,75,0.08);
}
.rs-metricas__inner { max-width: 1180px; margin: 0 auto; }

.rs-metricas__title {
	margin: 0;
	font-size: clamp(23px, 3vw, 40px);
	line-height: 1.08;
	font-weight: 800;
	letter-spacing: -1.2px;
	color: #041133;
}

.rs-metricas__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: clamp(25px, 5vw, 56px);
}
.rs-metricas__grid > * { min-width: 0; max-width: 100%; }
.rs-metricas__grid--titled { margin-top: 48px; }

.rs-metricas__item { min-width: 0; max-width: 100%; }

.rs-metricas__value {
	font-size: clamp(39px, 5vw, 68px);
	font-weight: 800;
	letter-spacing: -2.4px;
	line-height: 1;
	color: #041133;
}
.rs-metricas__value--destaque { color: #DF2039; }

.rs-metricas__label {
	margin-top: 12px;
	font-family: "Inter", system-ui, sans-serif;
	font-size: 18px;
	line-height: 1.4;
	color: #0f172a;
}

/* Mobile estreito (< 532px): coluna única, sem estouro horizontal. */
@media (max-width: 531px) {
	.rs-metricas__grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Seção Cards Institucionais (secao_cards_institucionais)
   Fidelidade ao protótipo "Site Institucional Reds".
   Grid responsivo FLUIDO: repeat(auto-fit, minmax(min(100%, Xpx), 1fr)).
   Os cards rearticulam-se naturalmente conforme a largura, sem media query,
   exatamente como no CSS oficial do protótipo.
   ========================================================================== */
.rs-cards { padding: clamp(56px, 8vw, 112px) clamp(20px, 5vw, 64px); }
.rs-cards--dark { background: #041133; color: #ffffff; }
.rs-cards--light { background: #ffffff; }

.rs-cards__inner { max-width: 1180px; margin: 0 auto; }

/* Tag / badge */
.rs-cards__tag {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
}
.rs-cards--dark .rs-cards__tag { color: #FF113B; }
.rs-cards--light .rs-cards__tag { color: #0A1F4A; }

/* Título principal */
.rs-cards__title {
	margin: 20px 0 0;
	font-size: clamp(28px, 3.6vw, 48px);
	line-height: 1.05;
	font-weight: 800;
	letter-spacing: -1.5px;
}
.rs-cards--dark .rs-cards__title { color: #ffffff; }
.rs-cards--light .rs-cards__title { color: #041133; }

/* Descrição introdutória */
.rs-cards__intro {
	margin: 24px 0 0;
	max-width: 820px;
	font-family: "Inter", system-ui, sans-serif;
	font-size: 19px;
	line-height: 1.55;
}
.rs-cards--dark .rs-cards__intro { color: rgba(255,255,255,0.78); }
.rs-cards--light .rs-cards__intro { color: #0f172a; }

/* Sub-rótulo (ex.: "NOSSOS PRINCÍPIOS") */
.rs-cards__sub {
	margin: 44px 0 0;
	font-size: 17px;
	font-weight: 700;
}
.rs-cards--dark .rs-cards__sub { letter-spacing: 1.2px; text-transform: uppercase; color: #ffffff; }
.rs-cards--light .rs-cards__sub { letter-spacing: -0.2px; color: #0A1F4A; }

/* Grid responsivo fluido (auto-fit + minmax): os cards encaixam-se conforme a largura. */
.rs-cards__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 24px;
	margin-top: 48px;
}
.rs-cards__grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.rs-cards__grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.rs-cards__grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }
.rs-cards__sub + .rs-cards__grid { margin-top: 24px; }

/* Card */
.rs-cards__card {
	display: grid;
	gap: 12px;
	align-content: start;
	padding: 30px 30px 32px;
	border-radius: 22px;
}
.rs-cards--light .rs-cards__card { background: #F7FAFE; border: 1px solid rgba(10,32,75,0.12); }
.rs-cards--dark .rs-cards__card { background: #0A1F4A; border: 1px solid rgba(196,196,196,0.16); }

/* Número sequencial (vermelho, quando preenchido) */
.rs-cards__num { font-size: 15px; font-weight: 800; letter-spacing: -0.2px; color: #DF2039; }
.rs-cards--dark .rs-cards__num { font-size: 14px; letter-spacing: 0; color: #FF113B; }

/* Título do card */
.rs-cards__card-title { font-size: 20px; font-weight: 700; letter-spacing: -0.4px; }
.rs-cards--dark .rs-cards__card-title { color: #ffffff; }
.rs-cards--light .rs-cards__card-title { color: #041133; }

/* Texto do card */
.rs-cards__card-text {
	margin: 10px 0 0;
	font-family: "Inter", system-ui, sans-serif;
	font-size: 17px;
	line-height: 1.5;
}
.rs-cards--dark .rs-cards__card-text { color: rgba(255,255,255,0.76); }
.rs-cards--light .rs-cards__card-text { color: #0f172a; }

/* Card destacado: borda na cor de destaque do design system. */
.rs-cards--light .rs-cards__card--destaque { background: #ffffff; border: 1px solid #DF2039; }
.rs-cards--dark .rs-cards__card--destaque { background: #0A1F4A; border: 1px solid #FF113B; }

/* ==========================================================================
   Seção Propósito, Missão e Visão (secao_proposito_missao_visao)
   Fidelidade ao protótipo "Site Institucional Reds" (Quem Somos).
   Grid responsivo FLUIDO: repeat(auto-fit, minmax(min(100%, 240px), 1fr)).
   Os pilares rearticulam-se naturalmente conforme a largura: 3 colunas no
   desktop, 2 + 1 no tablet e coluna única no mobile, sem overflow-x.
   ========================================================================== */
.rs-proposito { padding: clamp(56px, 8vw, 112px) clamp(20px, 5vw, 64px); }
.rs-proposito__inner { max-width: 1180px; margin: 0 auto; }

/* Tag / badge */
.rs-proposito__tag {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: #0A1F4A;
}

/* Título principal */
.rs-proposito__title {
	margin: 20px 0 0;
	font-size: clamp(28px, 3.6vw, 48px);
	line-height: 1.05;
	font-weight: 800;
	letter-spacing: -1.5px;
	color: #041133;
}

/* Grid dos pilares (fluido, sem gap: a borda superior une os pilares). */
.rs-proposito__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 0;
	margin-top: 52px;
	border-top: 1px solid rgba(10,32,75,0.14);
}
.rs-proposito__grid > * { min-width: 0; max-width: 100%; }

/* Pilar (item) */
.rs-proposito__pilar { padding: 34px 34px 0 0; }

/* Título do pilar (destaque na cor vermelha do design system). */
.rs-proposito__pilar-title {
	font-size: 24px;
	font-weight: 800;
	letter-spacing: -0.6px;
	color: #DF2039;
}

/* Descrição do pilar */
.rs-proposito__pilar-text {
	margin: 16px 0 0;
	font-family: "Inter", system-ui, sans-serif;
	font-size: 18px;
	line-height: 1.55;
	color: #0f172a;
}

/* Mobile (< 532px): coluna única, sem estouro horizontal. */
@media (max-width: 531px) {
	.rs-proposito__grid { grid-template-columns: 1fr; }
	.rs-proposito__pilar { padding-right: 0; }
}

/* ==========================================================================
   Seção Diretores (secao_diretores) — Quem Somos
   Fidelidade ao protótipo "Site Institucional Reds".
   Desktop (>= 1024px): 2 colunas horizontais (foto | trajetória).
   Mobile (< 1024px e < 768px): coluna única, foto no topo e infográfico
   abaixo, sem estouro de largura (overflow-x).
   ========================================================================== */
.rs-diretores { padding: 0 clamp(20px, 5vw, 64px) clamp(56px, 8vw, 112px); }
.rs-diretores__inner { max-width: 1180px; margin: 0 auto; }

.rs-diretores__title {
	margin: 0;
	font-size: clamp(23px, 3vw, 40px);
	line-height: 1.08;
	font-weight: 800;
	letter-spacing: -1.2px;
	color: #041133;
}

.rs-diretores__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: clamp(20px, 5vw, 44px);
	align-items: center;
	margin-top: 44px;
	padding: 40px;
	border-radius: 28px;
	background: #F7FAFE;
	border: 1px solid rgba(10,32,75,0.12);
}
.rs-diretores__grid > * { min-width: 0; max-width: 100%; }

/* Controle rigoroso de dimensão (foto do diretor + infográfico da trajetória):
   mantém proporção e não estoura, independente da resolução da imagem original. */
.rs-diretores__foto,
.rs-diretores__trajetoria {
	width: 100%;
	max-width: 100%;
	height: auto;
	object-fit: contain;
	display: block;
}
.rs-diretores__foto { border-radius: 20px; }
.rs-diretores__trajetoria { border-radius: 16px; border: 1px solid rgba(10,32,75,0.1); }

/* Desktop (>= 1024px): 2 colunas horizontais (foto | trajetória). */
@media (min-width: 1024px) {
	.rs-diretores__grid { grid-template-columns: 1fr 1fr; }
}

/* Mobile (< 1024px): coluna única, sem overflow horizontal. */
@media (max-width: 1023px) {
	.rs-diretores__grid { grid-template-columns: 1fr; }
}

/* Mobile (< 768px): respiro extra e garantia de largura contida. */
@media (max-width: 767px) {
	.rs-diretores__grid {
		padding: 24px 20px;
		gap: 24px;
	}
	.rs-diretores__foto,
	.rs-diretores__trajetoria {
		width: 100%;
		max-width: 100%;
		height: auto;
	}
}

/* ==========================================================================
   Seção Trajetória / Marcos (secao_trajetoria)
   Fidelidade ao protótipo "Site Institucional Reds".
   - card_envelopado (Home "Autoridade validada" + "Trajetória").
   - layout_aberto (Quem Somos "Nossa história").
   Grid responsivo FLUIDO: repeat(auto-fit, minmax(min(100%, Xpx), 1fr)).
   Desktop (>= 1024px): 2 colunas equilibradas (texto | lista de marcos).
   Mobile (< 1024px / < 768px): empilha o texto no topo e a lista abaixo,
   em coluna única, sem gerar rolagem horizontal (overflow-x).
   ========================================================================== */

/* Container da seção (padding fluido por variante). */
.rs-trajetoria--aberto { padding: clamp(56px, 8vw, 112px) clamp(20px, 5vw, 64px); }
.rs-trajetoria--envelopado { padding: 0 clamp(20px, 5vw, 64px) clamp(56px, 8vw, 112px); }

/* Wrapper central (mesma largura máxima do restante da página). */
.rs-trajetoria__inner { max-width: 1180px; margin: 0 auto; }

/* Grid aberto: 2 colunas fluidas (texto à esquerda, lista à direita). */
.rs-trajetoria__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	gap: clamp(40px, 5vw, 88px);
	align-items: flex-end;
}
.rs-trajetoria__grid > * { min-width: 0; max-width: 100%; }

/* Card envelopado: borda arredondada + overflow, 2 painéis sem gap. */
.rs-trajetoria__card {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: 0;
	border-radius: 28px;
	overflow: hidden;
	border: 1px solid rgba(10,32,75,0.12);
}
.rs-trajetoria__card > * { min-width: 0; max-width: 100%; }

/* Painéis do card envelopado (fundo/padding só no card; o aberto é limpo). */
.rs-trajetoria--envelopado .rs-trajetoria__texto,
.rs-trajetoria--envelopado .rs-trajetoria__col-direita {
	padding: 60px clamp(20px, 5vw, 56px);
}
.rs-trajetoria--envelopado .rs-trajetoria__texto { background: #F2F6FC; }
.rs-trajetoria--envelopado .rs-trajetoria__col-direita { background: #ffffff; }

/* Tag / badge */
.rs-trajetoria__tag {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
}
.rs-trajetoria--aberto .rs-trajetoria__tag { color: #0A1F4A; }
.rs-trajetoria--envelopado .rs-trajetoria__tag { color: #DF2039; }

/* Título principal */
.rs-trajetoria__title {
	font-weight: 800;
	color: #041133;
}
.rs-trajetoria--aberto .rs-trajetoria__title {
	margin: 20px 0 0;
	font-size: clamp(28px, 3.6vw, 48px);
	line-height: 1.05;
	letter-spacing: -1.5px;
}
.rs-trajetoria--envelopado .rs-trajetoria__title {
	margin: 18px 0 0;
	font-size: clamp(23px, 3.0vw, 40px);
	line-height: 1.08;
	letter-spacing: -1.2px;
}

/* Conteúdo (WYSIWYG) */
.rs-trajetoria__content {
	font-family: "Inter", system-ui, sans-serif;
	color: #0f172a;
}
.rs-trajetoria--aberto .rs-trajetoria__content { margin: 24px 0 0; font-size: 19px; line-height: 1.55; }
.rs-trajetoria--envelopado .rs-trajetoria__content { margin: 20px 0 0; font-size: 18px; line-height: 1.5; }
.rs-trajetoria__content p { margin: 0; }
.rs-trajetoria__content p + p { margin-top: 18px; }

/* Rótulo da coluna direita (apenas no card envelopado). */
.rs-trajetoria__col-title {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: #0A1F4A;
}

/* Lista de marcos */
.rs-trajetoria__lista {
	display: grid;
	font-family: "Inter", system-ui, sans-serif;
	color: #0f172a;
}
.rs-trajetoria--aberto .rs-trajetoria__lista { gap: 0; font-size: 18px; }
.rs-trajetoria--envelopado .rs-trajetoria__lista { gap: 18px; margin-top: 26px; font-size: 17px; }

/* Item (ano + descrição) */
.rs-trajetoria__item {
	display: grid;
	align-items: baseline;
}
.rs-trajetoria--aberto .rs-trajetoria__item {
	grid-template-columns: 84px 1fr;
	gap: 20px;
	padding: 20px 0;
	border-bottom: 1px solid rgba(10,32,75,0.1);
}
.rs-trajetoria--envelopado .rs-trajetoria__item {
	grid-template-columns: 68px 1fr;
	gap: 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid rgba(10,32,75,0.08);
}

/* Ano (destaque vermelho) */
.rs-trajetoria__ano {
	font-family: "InterBrand", "Inter", sans-serif;
	font-weight: 800;
	letter-spacing: -0.4px;
	color: #DF2039;
}
.rs-trajetoria--aberto .rs-trajetoria__ano { font-size: 20px; }
.rs-trajetoria--envelopado .rs-trajetoria__ano { font-size: 18px; }

/* Desktop (>= 1024px): 2 colunas equilibradas. */
@media (min-width: 1024px) {
	.rs-trajetoria__grid { grid-template-columns: 1fr 1fr; }
	.rs-trajetoria__card { grid-template-columns: 1fr 1fr; }
}

/* Mobile (< 1024px): coluna única, texto no topo e lista abaixo. */
@media (max-width: 1023px) {
	.rs-trajetoria__grid { grid-template-columns: 1fr; }
	.rs-trajetoria__card { grid-template-columns: 1fr; }
}

/* Mobile (< 768px): respiro extra e garantia de largura contida. */
@media (max-width: 767px) {
	.rs-trajetoria--envelopado .rs-trajetoria__texto,
	.rs-trajetoria--envelopado .rs-trajetoria__col-direita {
		padding: 40px clamp(20px, 5vw, 28px);
	}
	.rs-trajetoria__item > * { min-width: 0; max-width: 100%; }
}

/* ==========================================================================
   Card Detalhado Container (card_detalhado_container)
   Fidelidade ao protótipo "Site Institucional Reds" (Quem Somos).
   Container com miolos: grid_cards_brancos, colunas_texto_destaque e
   lista_numerada. Os grids internos são FLUIDOS
   (repeat(auto-fit, minmax(min(100%, Xpx), 1fr))) e rearticulam os mini
   cards em coluna única em telas estreitas, sem estourar as margens
   laterais (overflow-x), exatamente como no protótipo.
   ========================================================================== */
/* Nenhum filho dos miolos pode ultrapassar a largura do container. */
div[style*="grid-template-columns: repeat(auto-fit, minmax(min(100%"] > * {
	min-width: 0;
	max-width: 100%;
}

/* Mobile (< 768px): força coluna única nos miolos do card detalhado. */
@media (max-width: 767px) {
	div[style*="grid-template-columns: repeat(auto-fit, minmax(min(100%"] {
		grid-template-columns: 1fr !important;
	}
}

/* ==========================================================================
   Seção Ofertas Detalhadas (secao_ofertas_detalhadas) — Portfólio
   Accordion fiel ao protótipo "Portfolio.dc.html" (seção "As ofertas").
   Cabeçalho dark navy (#041133), badge branco/navy, caixas internas
   "Para quem é ideal" (#F7FAFE) e "Entregáveis principais" (#EDF3FF).
   ========================================================================== */

.rs-ofertas {
	padding: 0 clamp(20px, 5vw, 64px) clamp(56px, 8vw, 112px);
}

.rs-ofertas__inner {
	max-width: 1180px;
	margin: 0 auto;
}

.rs-ofertas__title {
	margin: 0 0 48px;
	font-size: clamp(23px, 3.0vw, 40px);
	line-height: 1.08;
	font-weight: 800;
	letter-spacing: -1.2px;
	color: #041133;
}

.rs-ofertas__list {
	display: grid;
	gap: 24px;
}

/* Card (accordion item) */
.rs-oferta {
	border-radius: 28px;
	background: #ffffff;
	border: 1px solid rgba(10,32,75,0.14);
	overflow: hidden;
}

/* Cabeçalho dark navy (#041133) */
.rs-oferta__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 24px;
	padding: 30px clamp(20px, 5vw, 44px);
	background: #041133;
}

.rs-oferta__head-left {
	display: flex;
	align-items: center;
	gap: 24px;
}

.rs-oferta__title-wrap {
	display: grid;
	gap: 4px;
}

/* Título: primeira palavra branca + destaque vermelho (#BE123C) */
.rs-oferta__title {
	margin: 0;
	font-size: clamp(20px, 2.2vw, 30px);
	line-height: 1.06;
	font-weight: 800;
	letter-spacing: -0.9px;
	color: #ffffff;
	font-family: Inter;
}
.rs-oferta__title-destaque { color: #BE123C; }

.rs-oferta__tagline {
	margin: 0;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: -0.3px;
	color: #F8FAFC;
	font-family: Inter;
}

.rs-oferta__head-right {
	display: flex;
	align-items: center;
	gap: 14px;
}

.rs-oferta__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: none;
	background: transparent;
	color: #ffffff;
	font-family: InterBrand, Inter, sans-serif;
	font-size: 26px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}
.rs-oferta__toggle:hover { color: #FF6B7F; }

/* Corpo (conteúdo expandido) */
.rs-oferta__body {
	padding: 36px clamp(20px, 5vw, 44px) 40px;
}

.rs-oferta__label {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: #0A1F4A;
}
.rs-oferta__label--blue { color: #052570; }
.rs-oferta__label-line { flex: 1; height: 1px; background: rgba(10,32,75,0.14); }
.rs-oferta__label-line--blue { background: rgba(5,37,112,0.22); }

.rs-oferta__sub {
	margin: 18px 0 0;
	font-family: Inter, system-ui, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #46536b;
}

.rs-oferta__desc {
	margin: 12px 0 0;
	font-family: Inter, system-ui, sans-serif;
	font-size: 17px;
	line-height: 1.6;
	color: #0f172a;
}

/* Caixas internas: fluido (empilha em coluna única em telas estreitas). */
.rs-oferta__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: clamp(18px, 5vw, 40px);
	margin-top: 40px;
}
.rs-oferta__cols > * { min-width: 0; max-width: 100%; }

.rs-oferta__box {
	padding: 30px 32px;
	border-radius: 20px;
}
.rs-oferta__box--ideal { background: #F7FAFE; border: 1px solid rgba(10,32,75,0.12); }
.rs-oferta__box--entregaveis { background: #EDF3FF; border: 1px solid rgba(5,37,112,0.22); }

.rs-oferta__box-list {
	display: grid;
	gap: 14px;
	margin-top: 20px;
}

.rs-oferta__item {
	display: grid;
	grid-template-columns: 9px 1fr;
	gap: 14px;
	font-family: Inter, system-ui, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #0f172a;
}

.rs-oferta__dot {
	width: 7px;
	height: 7px;
	margin-top: 8px;
	border-radius: 999px;
	background: rgba(10,32,75,0.35);
}
.rs-oferta__dot--blue { background: #052570; }

/* CTA */
.rs-oferta__cta-wrap {
	margin-top: 36px;
	padding-top: 30px;
}

.rs-oferta__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 15px 28px;
	border-radius: 999px;
	background: #041133;
	color: #ffffff;
	font-size: 16px;
	font-weight: 700;
}
.rs-oferta__cta:hover { background: #DF2039; color: #ffffff; }
.rs-oferta__cta-arrow { font-size: 18px; }

/* Mobile (< 768px): paddings fluido, caixas internas empilhadas. */
@media (max-width: 767px) {
	.rs-oferta__head {
		padding: 24px clamp(20px, 5vw, 28px);
		gap: 18px;
	}
	.rs-oferta__head-left {
		gap: 16px;
	}
	.rs-oferta__body {
		padding: 28px clamp(20px, 5vw, 28px) 32px;
	}
	.rs-oferta__box {
		padding: 24px clamp(20px, 5vw, 24px);
	}
	.rs-oferta__cols {
		grid-template-columns: 1fr;
		gap: 20px;
		margin-top: 32px;
	}
}

/* Mobile estreito (< 532px): cabeçalho empilha, prazo + toggle fluidos. */
@media (max-width: 531px) {
	.rs-oferta__head {
		padding: 20px 16px;
	}
	.rs-oferta__head-left {
		width: 100%;
		align-items: flex-start;
	}
	.rs-oferta__head-right {
		width: 100%;
		justify-content: flex-end;
	}
	.rs-oferta__title {
		font-size: 20px;
	}
	.rs-oferta__body {
		padding: 24px 16px 28px;
	}
	.rs-oferta__box {
		padding: 20px 16px;
	}
}

/* ==========================================================================
   Seção Setores Detalhados (secao_setores_detalhados) — Página Setores
   Accordion fiel ao protótipo "Setores.dc.html" (seção "setores").
   Cabeçalho dark navy (#041133), badge branco/navy, título vermelho
   (#DF2039) e tagline branco. Cenário em 2 colunas no desktop; caixa das
   dores (#F7FAFE) e das soluções (#EDF3FF); diferenciais em 3 colunas.
   ========================================================================== */

.rs-setores {
	padding: 0 clamp(20px, 5vw, 64px) clamp(56px, 8vw, 112px);
}

.rs-setores__inner {
	max-width: 1180px;
	margin: 0 auto;
}

.rs-setores__title {
	margin: 0 0 48px;
	font-size: clamp(23px, 3.0vw, 40px);
	line-height: 1.08;
	font-weight: 800;
	letter-spacing: -1.2px;
	color: #041133;
}

.rs-setores__list {
	display: grid;
	gap: 24px;
}

/* Card (accordion item) */
.rs-setor {
	border-radius: 28px;
	background: #ffffff;
	border: 1px solid rgba(10,32,75,0.14);
	overflow: hidden;
}

/* Cabeçalho dark navy (#041133) */
.rs-setor__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 24px;
	padding: 30px clamp(20px, 5vw, 44px);
	background: #041133;
}

.rs-setor__head-left {
	display: flex;
	align-items: center;
	gap: 24px;
	min-width: 0;
	flex: 1 1 auto;
}

/* Badge do número: círculo branco com texto navy (#041133) */
.rs-setor__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	border-radius: 999px;
	color: #041133;
	font-size: 16px;
	font-weight: 800;
	background: #FFFFFF;
}

.rs-setor__title-wrap {
	display: grid;
	gap: 4px;
	min-width: 0;
}

/* Título: vermelho (#DF2039) */
.rs-setor__title {
	margin: 0;
	font-size: clamp(20px, 2.2vw, 30px);
	line-height: 1.06;
	font-weight: 800;
	letter-spacing: -0.9px;
	color: #DF2039;
}

.rs-setor__tagline {
	margin: 0;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: -0.3px;
	color: #FFFFFF;
}

.rs-setor__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	padding: 0;
	border: none;
	background: transparent;
	color: #ffffff;
	font-family: InterBrand, Inter, sans-serif;
	font-size: 26px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}
.rs-setor__toggle:hover { color: #FF6B7F; }

/* Corpo (conteúdo expandido) */
.rs-setor__body {
	padding: 36px clamp(20px, 5vw, 44px) 40px;
}

.rs-setor__label {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: #0A1F4A;
}
.rs-setor__label--blue { color: #052570; }
.rs-setor__label-line { flex: 1; height: 1px; background: rgba(10,32,75,0.14); }
.rs-setor__label-line--blue { background: rgba(5,37,112,0.22); }

/* Cenário: texto corrido único (1 coluna), fluindo por toda a largura. */
.rs-setor__cenario {
	margin-top: 18px;
	display: block;
	width: 100%;
}
.rs-setor__cenario p {
	margin: 0;
	font-family: Inter, system-ui, sans-serif;
	font-size: 17px;
	line-height: 1.6;
	color: #0f172a;
}
.rs-setor__cenario p + p { margin-top: 14px; }

/* Caixas internas: fluido (empilha em coluna única em telas estreitas). */
.rs-setor__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: clamp(18px, 5vw, 40px);
	margin-top: 40px;
}
.rs-setor__cols > * { min-width: 0; max-width: 100%; }

.rs-setor__box {
	padding: 30px 32px;
	border-radius: 20px;
}
.rs-setor__box--dores { background: #F7FAFE; border: 1px solid rgba(10,32,75,0.12); }
.rs-setor__box--solucoes { background: #EDF3FF; border: 1px solid rgba(5,37,112,0.22); }

.rs-setor__box-list {
	display: grid;
	gap: 14px;
	margin-top: 20px;
}

.rs-setor__sol-list {
	display: grid;
	gap: 16px;
	margin-top: 20px;
}

.rs-setor__item {
	display: grid;
	grid-template-columns: 9px 1fr;
	gap: 14px;
	font-family: Inter, system-ui, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #0f172a;
}

.rs-setor__dot {
	width: 7px;
	height: 7px;
	margin-top: 8px;
	border-radius: 999px;
	background: rgba(10,32,75,0.35);
}
.rs-setor__dot--blue { background: #052570; }

.rs-setor__solucao {
	font-family: Inter, system-ui, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #0f172a;
}
.rs-setor__solucao strong {
	font-family: InterBrand, Inter, sans-serif;
	font-weight: 700;
	color: #041133;
}

/* Rodapé: diferenciais em 3 colunas no desktop. */
.rs-setor__diferenciais {
	margin-top: 36px;
	padding-top: 30px;
	border-top: 1px solid rgba(10,32,75,0.14);
}
.rs-setor__diferenciais-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 32px;
	margin-top: 20px;
}
.rs-setor__diferenciais-grid > * { min-width: 0; max-width: 100%; }

.rs-setor__diferencial {
	font-family: Inter, system-ui, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #0f172a;
}

/* Mobile (< 768px): paddings fluidos, cenário e diferenciais em 1 coluna. */
@media (max-width: 767px) {
	.rs-setor__head {
		padding: 24px clamp(20px, 5vw, 28px);
		gap: 18px;
	}
	.rs-setor__head-left {
		gap: 16px;
	}
	.rs-setor__num {
		width: 40px;
		height: 40px;
		font-size: 14px;
	}
	.rs-setor__body {
		padding: 28px clamp(20px, 5vw, 28px) 32px;
	}
	.rs-setor__box {
		padding: 24px clamp(20px, 5vw, 24px);
	}
	.rs-setor__cols {
		grid-template-columns: 1fr;
		gap: 20px;
		margin-top: 32px;
	}
	.rs-setor__diferenciais-grid {
		grid-template-columns: 1fr;
	}
}

/* Mobile estreito (< 532px): cabeçalho empilha, paddings fluidos. */
@media (max-width: 531px) {
	.rs-setor__head {
		padding: 20px 16px;
	}
	.rs-setor__head-left {
		width: 100%;
		align-items: flex-start;
	}
	.rs-setor__title {
		font-size: 20px;
	}
	.rs-setor__body {
		padding: 24px 16px 28px;
	}
	.rs-setor__box {
		padding: 20px 16px;
	}
}

/* ==========================================================================
   Tabela de Comparação (tabela_comparacao) — Portfólio
   Regras extraídas exatamente da marcação do protótipo "Portfolio.dc.html".
   ========================================================================== */

/* Seção Tabela Comparação */
.rs-tabela {
	padding: 0 clamp(20px, 5vw, 64px) clamp(56px, 8vw, 112px);
}

.rs-tabela__inner {
	max-width: 1180px;
	margin: 0 auto;
}

.rs-tabela__title {
	margin: 0;
	font-size: clamp(23px, 3.0vw, 40px);
	line-height: 1.08;
	font-weight: 800;
	letter-spacing: -1.2px;
	color: #041133;
}

/* Card envelopado original */
.rs-tabela__wrap {
	margin-top: 40px;
	border: 1px solid rgba(10,32,75,0.12);
	border-radius: 24px;
	overflow-x: auto;
}

/* Head e Row idênticos ao HTML estático */
.rs-tabela__head,
.rs-tabela__row {
	display: grid;
	grid-template-columns: minmax(140px, 280px) 1fr;
	gap: 0;
	min-width: 0;
}

.rs-tabela__head {
	padding: 20px 32px;
	background: #041133;
	color: #ffffff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
}

.rs-tabela__row {
	align-items: baseline;
	padding: 22px 32px;
	border-top: 1px solid rgba(10,32,75,0.1);
	background: #ffffff;
	font-family: Inter, system-ui, sans-serif;
	font-size: 18px;
	color: #0f172a;
}

/* Colunas específicas */
.rs-tabela__oferta {
	font-family: InterBrand, Inter, sans-serif;
	font-weight: 700;
	letter-spacing: -0.3px;
	color: #041133;
}

/* Responsividade Mobile - Apenas ajuste proporcional de padding/fonte para não quebrar */
@media (max-width: 768px) {
	.rs-tabela__head,
	.rs-tabela__row {
		padding: 16px 18px;
		font-size: 15px;
	}
	.rs-tabela__head {
		font-size: 12px;
	}
}

/* ==========================================================================
   Responsivo (mínimo, para não quebrar em telas menores)
   ========================================================================== */
@media (max-width: 1023px) {
	.rs-header__nav--desktop,
	.rs-header__cta--desktop { display: none !important; }
	.rs-header__toggle { display: inline-flex !important; }
	.section { padding: 72px 32px; }

	/* Hero (fidelidade ao protótipo Site Institucional Reds) */
	section[style*="max-width: 1180px"] h1 { font-size: clamp(31px, 4vw, 54px) !important; }
	section[style*="max-width: 1180px"] p[style*="font-size: 28px"] { font-size: clamp(20px, 2.1vw, 28px) !important; }
	section[style*="max-width: 1180px"] p[style*="font-size: 20px"] { font-size: 20px !important; }
	section[style*="max-width: 1180px"] div[style*="display: flex; align-items: center; gap: 18px"] {
		flex-wrap: wrap;
		align-items: flex-start;
	}
}

@media (max-width: 767px) {
	section[style*="max-width: 1180px"] h1 {
		max-width: 100% !important;
		font-size: 31px !important;
		line-height: 1.06 !important;
		letter-spacing: -1.2px !important;
	}
	section[style*="max-width: 1180px"] p[style*="font-size: 20px"] {
		max-width: 100% !important;
		font-size: 18px !important;
		line-height: 1.5 !important;
	}
	section[style*="padding: 104px 64px 118px"],
	section[style*="padding: 108px 64px 132px"] {
		padding: 52px 20px 59px !important;
	}
	section[style*="background: #F2F6FC url"] {
		background-position: 26% 50% !important;
		background-size: cover !important;
	}
	section > svg[viewBox="0 0 193 516"] {
		right: -18px !important;
		bottom: -140px !important;
		width: 268px !important;
		height: 716px !important;
		opacity: 0.13 !important;
	}
	.hero-buttons,
	.rs-hero-buttons {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		width: 100% !important;
		gap: 12px !important;
	}
	.hero-buttons > a,
	.rs-hero-buttons > a {
		display: flex !important;
		width: 100% !important;
		box-sizing: border-box !important;
		text-align: center !important;
		justify-content: center !important;
		align-items: center !important;
	}
	.hero-buttons > a svg,
	.rs-hero-buttons > a svg,
	.hero-buttons > a span,
	.rs-hero-buttons > a span {
		flex-shrink: 0 !important;
	}
}

@media (min-width: 1024px) {
	.rs-header__toggle,
	.rs-header__menu { display: none !important; }
}

/* ==========================================================================
   Formulários (candidatura e contato)
   Regras-base extraídas do CSS original do protótipo (input/textarea/select).
   O layout, o fundo (#F7FAFE), os arredondamentos e o grid fluido ficam no
   markup, fiéis ao protótipo; estas regras garantem largura, fonte e foco.
   ========================================================================== */
input, textarea, select {
	font-family: "Inter", system-ui, sans-serif;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
}
form, form label { min-width: 0; }
input::placeholder, textarea::placeholder { color: #8a94a6; }
input:focus, textarea:focus, select:focus { outline: none; border-color: #041133; }

/* ==========================================================================
   CTA Final (cta_final)
   Seção de fechamento das páginas: título/descrição/botão centralizados,
   fundo suave com marca d'água geométrica e botão vermelho arredondado.
   ========================================================================== */
.rs-cta {
	padding: clamp(60px, 8vw, 120px) clamp(20px, 5vw, 64px);
	background-color: #F2F6FC;
	background-repeat: no-repeat;
	background-size: cover;
}
.rs-cta--texture { background-position: 26% 50%; }
.rs-cta--image { background-position: center; }

.rs-cta__inner {
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
}
.rs-cta__title {
	margin: 0;
	font-size: clamp(32px, 4.1vw, 56px);
	line-height: 1.05;
	font-weight: 800;
	letter-spacing: -1.8px;
	color: #041133;
	text-wrap: pretty;
}
.rs-cta__desc {
	margin: 24px auto 0;
	max-width: 660px;
	font-family: "Inter", system-ui, sans-serif;
	font-size: 20px;
	line-height: 1.5;
	color: #0f172a;
}
.rs-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-top: 40px;
	padding: 20px 36px;
	border-radius: 999px;
	background: #DF2039;
	color: #ffffff;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -0.2px;
}
.rs-cta__btn-arrow { font-size: 20px; line-height: 1; }

@media (max-width: 531px) {
	.rs-cta__btn {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		justify-content: center;
		padding: 18px 22px;
	}
	.rs-cta__btn-label {
		white-space: normal;
		text-align: center;
		line-height: 1.3;
	}
	.rs-cta__btn-arrow { flex-shrink: 0; }
}
