/* ==========================================================================
   TRIA - Instituto de Engenharia Aplicada
   ========================================================================== */

/* Fontes ----------------------------------------------------------------- */

@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/manrope-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/manrope-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Tokens ----------------------------------------------------------------- */

:root {
	--bg: #f1f1f1;
	--bg-soft: #f4f5f7;
	--white: #ffffff;
	--navy: #1e315c;
	--navy-dark: #1a243c;
	--blue: #1c57c4;
	--body-text: #4d5056;
	--gentle: #8c8c8c;
	--light-body: #8b909b;
	--muted: #a3a8b1;
	--border-light: #dddddd;
	--divider: #d0d5dd;
	--footer-text: #667085;
	--footer-title: #101828;

	--container: 1440px;
	--gutter: 64px;
	--section-gap: 66px;

	--radius-card: 20px;
	--radius-img: 20px;
	--mq-gap: 32px;

	--hover: 400ms ease-in-out;
}

/* Reset ------------------------------------------------------------------ */

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--bg);
	color: var(--body-text);
	font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

html, body { overflow-x: clip; }

@supports not (overflow: clip) {
	body { overflow-x: hidden; }
}

::selection { background: var(--navy); color: var(--white); }
::-moz-selection { background: var(--navy); color: var(--white); }

img, svg { max-width: 100%; }
img { height: auto; display: block; }
h1, h2, h3, h4, p, figure, ul { margin: 0; }
ul { padding: 0; list-style: none; }
a { color: inherit; }
button { font: inherit; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%); white-space: nowrap;
}

.skip-link:focus {
	position: fixed; top: 12px; left: 12px;
	width: auto; height: auto; clip: auto; clip-path: none;
	z-index: 999; padding: 12px 20px; border-radius: 8px;
	background: var(--white); color: var(--navy-dark);
}

:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 4px; }

/* Layout ----------------------------------------------------------------- */

.container {
	width: 100%;
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 var(--gutter);
}

.site-main {
	display: flex;
	flex-direction: column;
	gap: var(--section-gap);
}

/* Peças compartilhadas --------------------------------------------------- */

.pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 4px 12px;
	border: 1px solid rgba(255, 255, 255, .04);
	border-radius: 130px;
	background: var(--white);
	filter: drop-shadow(0 1px 4px rgba(255, 255, 255, .19));
	font-size: 14px;
	font-weight: 500;
	line-height: 24px;
	color: var(--navy);
}

.pill--gray { background: var(--bg); }
.pill__icon { width: 13px; height: 12px; flex: none; display: block; }
.pill__text { display: block; }

/* Quebra controlada: sem ela a primeira linha ocupa toda a largura
   disponível e a pílula fica esticada. Com a quebra explícita o max-content
   vira a linha mais longa e a caixa encolhe até ela. */
.br-mobile { display: none; }

.section-title {
	font-size: clamp(34px, 4.6vw, 66px);
	font-weight: 600;
	line-height: 1.14;
	letter-spacing: -0.045em;
	color: var(--navy-dark);
}

.section-title--center { text-align: center; max-width: 795px; }

/* Header ----------------------------------------------------------------- */

.site-header {
	position: absolute;
	top: 42px;
	left: 0;
	right: 0;
	z-index: 30;
	transition: background var(--hover), padding var(--hover), box-shadow var(--hover);
}

.site-header--solid {
	position: relative;
	top: 0;
	padding: 24px 0;
	background: var(--navy-dark);
}

.site-header.is-scrolled {
	position: fixed;
	top: 0;
	padding: 14px 0;
	background: linear-gradient(180deg, rgba(30, 49, 92, .94) 0%, rgba(26, 36, 60, .88) 100%);
	-webkit-backdrop-filter: blur(18px) saturate(140%);
	backdrop-filter: blur(18px) saturate(140%);
	border-bottom: 1px solid rgba(255, 255, 255, .08);
	box-shadow: 0 10px 34px rgba(10, 16, 30, .28);
	animation: tria-slide-down 400ms ease-in-out;
}

@keyframes tria-slide-down {
	from { transform: translateY(-100%); }
	to { transform: translateY(0); }
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 50px;
}

.site-header__logo { display: block; width: 200px; flex: none; }
.site-header__logo svg { display: block; width: 100%; height: auto; }

.site-nav__list {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 4px;
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: 100px;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, .2) 0%, rgba(0, 0, 0, .2) 100%),
		linear-gradient(177.38deg, #1e315c 50.06%, #1a243c 84.82%);
}

.site-nav__list a {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 8px 16px;
	border-radius: 100px;
	font-size: 14px;
	line-height: 20px;
	color: var(--white);
	text-decoration: none;
	white-space: nowrap;
	transition: background var(--hover), color var(--hover);
}

.site-nav__list a:hover { background: rgba(255, 255, 255, .14); }

.site-nav__list .current-menu-item > a,
.site-nav__list .current_page_item > a {
	background: #fafafa;
	color: var(--navy);
	font-weight: 500;
}

.site-header__actions { width: 200px; display: flex; justify-content: flex-end; flex: none; }

.btn-contact {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 44px;
	padding: 10px 32px;
	border: 1px solid var(--border-light);
	border-radius: 100px;
	background: var(--white);
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: #000;
	text-decoration: none;
	white-space: nowrap;
	transition: background var(--hover), color var(--hover), border-color var(--hover), transform var(--hover);
}

.btn-contact:hover {
	background: var(--navy);
	border-color: var(--navy);
	color: var(--white);
	transform: translateY(-2px);
}

.btn-contact--block { width: 100%; }

/* Botão hambúrguer + drawer ---------------------------------------------- */

.nav-toggle {
	display: none;
	width: 48px; height: 48px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 100px;
	background: rgba(255, 255, 255, .1);
	cursor: pointer;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	transition: background var(--hover), border-color var(--hover);
}

.nav-toggle:hover { background: rgba(255, 255, 255, .2); }
.nav-toggle span { display: block; width: 18px; height: 2px; background: var(--white); border-radius: 2px; }

.drawer {
	position: fixed;
	inset: 0;
	z-index: 60;
	visibility: hidden;
	pointer-events: none;
}

.drawer.is-open { visibility: visible; pointer-events: auto; }

.drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 16, 30, .55);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	opacity: 0;
	transition: opacity var(--hover);
	border: 0;
	width: 100%;
	cursor: pointer;
}

.drawer.is-open .drawer__backdrop { opacity: 1; }

.drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	gap: 32px;
	width: min(400px, 88vw);
	height: 100%;
	padding: 24px;
	background: linear-gradient(180deg, #1e315c 0%, #1a243c 100%);
	box-shadow: -24px 0 64px rgba(6, 10, 20, .45);
	transform: translateX(100%);
	transition: transform var(--hover);
	overflow-y: auto;
	overscroll-behavior: contain;
}

.drawer.is-open .drawer__panel { transform: translateX(0); }

.drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.drawer__logo { display: block; width: 160px; }
.drawer__logo svg { width: 100%; height: auto; display: block; }

.drawer__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 100px;
	background: rgba(255, 255, 255, .08);
	color: var(--white);
	cursor: pointer;
	transition: background var(--hover), transform var(--hover);
}

.drawer__close:hover { background: rgba(255, 255, 255, .2); transform: rotate(90deg); }
.drawer__close svg { width: 16px; height: 16px; }

.drawer__list { display: flex; flex-direction: column; }

.drawer__list a {
	display: block;
	padding: 16px 0;
	border-bottom: 1px solid rgba(255, 255, 255, .1);
	font-size: 20px;
	font-weight: 500;
	color: var(--white);
	text-decoration: none;
	transition: color var(--hover), padding-left var(--hover);
}

.drawer__list a:hover { color: #9db4e6; padding-left: 8px; }
.drawer__foot { margin-top: auto; }

body.nav-open { overflow: hidden; }

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

.hero {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	min-height: 756px;
	padding: 176px 0 80px;
	overflow: hidden;
}

.hero__bg { position: absolute; inset: 0; z-index: -1; isolation: isolate; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: bottom; }
.hero__overlay { position: absolute; inset: 0; background: rgba(38, 55, 95, .7); mix-blend-mode: multiply; }

.hero__inner { width: 100%; }

.hero__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
	max-width: 617px;
}

.hero__title {
	font-size: clamp(36px, 4.6vw, 66px);
	font-weight: 600;
	line-height: 1.17;
	letter-spacing: -0.045em;
	color: var(--bg);
}

.hero__text { font-size: 16px; line-height: 1.67; color: var(--bg); }
.hero__actions { display: flex; align-items: stretch; gap: 16px; flex-wrap: wrap; }

.btn-hero {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 16px 24px;
	border: 1.5px solid transparent;
	border-radius: var(--radius-card);
	text-decoration: none;
	color: var(--white);
	transition: background var(--hover), border-color var(--hover), transform var(--hover), box-shadow var(--hover);
}

.btn-hero:hover { transform: translateY(-3px); }
.btn-hero--primary { background: var(--blue); min-width: 250px; }
.btn-hero--primary:hover { background: #1749a8; box-shadow: 0 12px 28px rgba(28, 87, 196, .35); }
.btn-hero--ghost { border-color: var(--white); }
.btn-hero--ghost:hover { background: rgba(255, 255, 255, .12); }

.btn-hero__title { font-size: 20px; font-weight: 700; line-height: 1.2; }
.btn-hero__sub { display: inline-flex; align-items: center; gap: 6px; font-size: 16px; line-height: 1.3; }
.btn-hero__arrow { width: 16px; height: 16px; flex: none; transform: rotate(90deg); transition: transform var(--hover); }
.btn-hero:hover .btn-hero__arrow { transform: rotate(90deg) translateY(-4px); }

/* Intro ------------------------------------------------------------------ */

.intro__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 64px;
	min-height: 174px;
}

.intro__title {
	width: 539px;
	flex: none;
	font-size: clamp(28px, 3.4vw, 48px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.062em;
	color: var(--navy-dark);
}

.intro__title em { font-style: normal; color: var(--blue); }

.intro__desc { width: 600px; flex: none; display: flex; flex-direction: column; gap: 10px; }
.intro__desc p { font-size: 18px; line-height: 1.67; color: var(--body-text); }

.intro__desc-strong {
	font-size: 20px !important;
	font-weight: 600;
	line-height: 30px !important;
	letter-spacing: -0.4px;
	color: var(--navy-dark);
}

/* Quem somos ------------------------------------------------------------- */

.about__inner {
	display: grid;
	grid-template-columns: minmax(0, 645fr) minmax(0, 652fr);
	gap: 15px;
	align-items: start;
}

.about__col { display: flex; flex-direction: column; gap: 32px; min-width: 0; }

.about__photo {
	width: 100%;
	aspect-ratio: 690 / 321;
	border-radius: var(--radius-img);
	overflow: hidden;
}

.about__photo img { width: 100%; height: 100%; object-fit: cover; }

.about__body { display: flex; flex-direction: column; gap: 40px; width: 100%; }

.about__title {
	font-size: clamp(32px, 4.4vw, 64px);
	font-weight: 600;
	line-height: 1.17;
	letter-spacing: -0.047em;
	color: var(--navy-dark);
}

.about__desc { display: flex; flex-direction: column; gap: 16px; max-width: 645px; }
.about__lead { font-size: 24px; font-weight: 500; line-height: 36px; letter-spacing: -0.48px; color: var(--navy-dark); }
.about__text { font-size: 18px; line-height: 1.67; color: var(--body-text); }

.about__tags { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.tag-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 4px 12px;
	border: 1px solid rgba(255, 255, 255, .04);
	border-radius: 130px;
	background: var(--white);
	filter: drop-shadow(0 1px 4px rgba(255, 255, 255, .19));
	font-size: 14px;
	line-height: 24px;
	color: #000;
}

.tag-chip__dot { width: 10px; height: 10px; border-radius: 50%; background: #000; }

.about__media { position: relative; height: 755px; min-width: 0; }

.about__media-img {
	position: absolute;
	object-position: 50% 35%;
	top: 0;
	right: 0;
	width: 567px;
	max-width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--radius-img);
}

.about__seal { position: absolute; top: 203px; left: 0; width: 164px; height: 164px; }
.about__seal svg { width: 100%; height: 100%; display: block; }

/* Pilares ---------------------------------------------------------------- */

.pillars__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 48px;
}

.pillars__title-wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; flex: 1; min-width: 0; }
.pillars__desc { width: 500px; flex: none; font-size: 16px; line-height: 1.67; color: var(--body-text); }

.pillars__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 27px; }

.pillar {
	display: flex;
	flex-direction: column;
	gap: 48px;
	padding: 32px;
	border-radius: var(--radius-card);
	background: var(--white);
	transition: transform var(--hover), box-shadow var(--hover);
}

.pillar:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(26, 36, 60, .08); }

.pillar__icon { width: 58px; height: 58px; display: block; }
.pillar__icon svg { width: 100%; height: 100%; display: block; }
.pillar__content { display: flex; flex-direction: column; gap: 12px; }
.pillar__title { font-size: 24px; font-weight: 500; line-height: 1.3; letter-spacing: -0.48px; color: #000; }
.pillar__text { font-size: 18px; line-height: 1.5; letter-spacing: -0.36px; color: var(--gentle); }

/* Atuação ---------------------------------------------------------------- */

.services__header { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 72px; }
.services__desc { max-width: 840px; font-size: 16px; line-height: 1.67; color: var(--body-text); }

.services__list { display: flex; flex-direction: column; gap: 32px; }
.service { position: relative; padding-bottom: 40px; border-bottom: 1px solid var(--divider); }

.service__head {
	display: flex;
	align-items: center;
	gap: 40px;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
	cursor: pointer;
}

.service__number {
	flex: none;
	min-width: 49px;
	font-size: 40px;
	font-weight: 400;
	line-height: 1.35;
	color: var(--muted);
	transition: color var(--hover);
}

.service__title {
	flex: 1;
	font-size: clamp(22px, 2.6vw, 36px);
	font-weight: 400;
	line-height: 1.22;
	letter-spacing: -0.02em;
	color: var(--muted);
	transition: color var(--hover);
}

.service.is-open .service__number,
.service.is-open .service__title { color: var(--navy-dark); font-weight: 500; }
.service__head:hover .service__title { color: var(--navy-dark); }

.service__icon { position: relative; flex: none; width: 48px; height: 48px; transition: transform var(--hover); }
.service__head:hover .service__icon { transform: scale(1.08); }
.service__icon svg { position: absolute; inset: 0; width: 48px; height: 48px; transition: opacity var(--hover); }
.service__icon-open { opacity: 0; }
.service.is-open .service__icon-open { opacity: 1; }
.service.is-open .service__icon-closed { opacity: 0; }

.service__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--hover); }
.service.is-open .service__panel { grid-template-rows: 1fr; }
.service__panel-inner { min-height: 0; overflow: hidden; }

.service__text {
	padding: 24px 0 0 85px;
	max-width: 778px;
	font-size: 18px;
	line-height: 30px;
	color: var(--body-text);
}

.service__figure {
	position: absolute;
	top: -44px;
	right: 143px;
	width: 282px;
	height: 282px;
	border: 2px solid var(--border-light);
	border-radius: var(--radius-img);
	background: var(--white);
	overflow: hidden;
	transform: rotate(var(--tilt, 10deg));
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--hover), visibility var(--hover);
	pointer-events: none;
}

/* Cada item inclina para um lado diferente. */
.services__list .service:nth-child(4n + 1) .service__figure { --tilt: 9deg; }
.services__list .service:nth-child(4n + 2) .service__figure { --tilt: -7deg; right: 168px; }
.services__list .service:nth-child(4n + 3) .service__figure { --tilt: 6deg; right: 128px; }
.services__list .service:nth-child(4n + 4) .service__figure { --tilt: -11deg; right: 156px; }

.service.is-open .service__figure { opacity: 1; visibility: visible; }
.service__figure img { width: 100%; height: 100%; object-fit: cover; }

.service__figure::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(30, 49, 92, .5);
	mix-blend-mode: hard-light;
}

/* Escolha seu caminho ---------------------------------------------------- */

.paths { background: var(--white); padding: 60px 0; }
.paths__inner { display: flex; flex-direction: column; align-items: center; gap: 56px; }
.paths__header { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.paths__desc { max-width: 560px; font-size: 17px; line-height: 1.6; color: var(--light-body); text-align: center; }
.paths__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; width: 100%; }

.path-card {
	position: relative;
	isolation: isolate;
	display: flex;
	min-height: 480px;
	padding: 40px;
	border-radius: 24px;
	overflow: hidden;
	text-decoration: none;
	transition: transform var(--hover), box-shadow var(--hover);
}

.path-card__bg { position: absolute; inset: 0; z-index: -1; display: block; }

.path-card__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms ease-in-out;
}

.path-card__veil { position: absolute; inset: 0; display: block; }

.path-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: space-between;
	gap: 48px;
}

.path-card__top { display: flex; flex-direction: column; gap: 16px; }
.path-card__bottom { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }

.path-card__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.path-card__index {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	border: 1px solid currentColor;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0;
}

.path-card__title {
	max-width: 420px;
	font-size: clamp(30px, 3.1vw, 44px);
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -0.035em;
}

.path-card__text { max-width: 44ch; font-size: 17px; line-height: 1.6; letter-spacing: -0.2px; }

.path-card__cta {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 268px;
	padding: 18px 26px;
	border: 1.5px solid transparent;
	border-radius: var(--radius-card);
	transition: background var(--hover), border-color var(--hover), box-shadow var(--hover), transform var(--hover);
}

.path-card__cta-title { font-size: 18px; font-weight: 600; line-height: 1.35; letter-spacing: -0.36px; }
.path-card__cta-sub { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; line-height: 1.4; opacity: .82; }
.path-card__arrow { width: 13px; flex: none; transition: transform var(--hover); }
.path-card:hover .path-card__arrow { transform: translate(3px, -3px); }
.path-card:hover .path-card__bg img { transform: scale(1.06); }
.path-card:hover { transform: translateY(-6px); }

/* Variante navy */

.path-card--navy .path-card__veil {
	background:
		linear-gradient(180deg, rgba(26, 36, 60, .94) 0%, rgba(26, 36, 60, .84) 46%, rgba(30, 49, 92, .54) 100%),
		linear-gradient(120deg, rgba(30, 49, 92, .5) 0%, rgba(30, 49, 92, 0) 72%);
}

.path-card--navy { box-shadow: 0 20px 48px rgba(26, 36, 60, .18); }
.path-card--navy:hover { box-shadow: 0 30px 64px rgba(26, 36, 60, .28); }
.path-card--navy .path-card__eyebrow { color: rgba(241, 241, 241, .72); }
.path-card--navy .path-card__title { color: var(--white); }
.path-card--navy .path-card__text { color: rgba(241, 241, 241, .78); }
.path-card--navy .path-card__cta { background: var(--blue); color: var(--white); }
.path-card--navy:hover .path-card__cta { background: #1749a8; box-shadow: 0 14px 32px rgba(28, 87, 196, .4); }

/* Variante cinza */

.path-card--gray .path-card__bg img { filter: grayscale(1) contrast(1.02); }

.path-card--gray .path-card__veil {
	background:
		linear-gradient(180deg, rgba(244, 245, 247, .97) 0%, rgba(241, 241, 241, .93) 46%, rgba(216, 219, 226, .86) 100%),
		linear-gradient(120deg, rgba(255, 255, 255, .6) 0%, rgba(255, 255, 255, .12) 68%);
}

.path-card--gray { box-shadow: 0 20px 48px rgba(26, 36, 60, .1); }
.path-card--gray:hover { box-shadow: 0 30px 64px rgba(26, 36, 60, .16); }
.path-card--gray .path-card__eyebrow { color: rgba(26, 36, 60, .72); }
.path-card--gray .path-card__title { color: var(--navy-dark); }
.path-card--gray .path-card__text { color: #3f434c; }
.path-card--gray .path-card__cta { background: var(--navy-dark); color: var(--white); }
.path-card--gray:hover .path-card__cta { background: var(--navy); box-shadow: 0 14px 32px rgba(26, 36, 60, .3); }

/* Depoimentos ------------------------------------------------------------ */

.quotes__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 23px; width: 100%; align-items: start; }

.quote-card {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 28px;
	border-radius: var(--radius-card);
	background: rgba(241, 241, 241, .5);
	transition: background var(--hover), transform var(--hover), box-shadow var(--hover);
}

.quote-card:hover { background: var(--bg); transform: translateY(-4px); box-shadow: 0 18px 40px rgba(26, 36, 60, .08); }
.quote-card__mark svg { width: 33px; height: 25px; display: block; }
.quote-card__text { font-size: 17px; line-height: 1.6; letter-spacing: -0.34px; color: var(--body-text); }
.quote-card__heading { display: flex; flex-direction: column; gap: 4px; }
.quote-card__name { font-size: 17px; font-weight: 600; line-height: 1.4; letter-spacing: -0.34px; color: var(--navy-dark); }
.quote-card__role { font-size: 15px; line-height: 1.4; letter-spacing: -0.3px; color: var(--light-body); }

/* Manifesto + carrossel -------------------------------------------------- */

.manifesto { display: flex; flex-direction: column; gap: 48px; }
.manifesto__header { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }

.manifesto__title {
	max-width: 1050px;
	font-size: clamp(28px, 3.4vw, 48px);
	font-weight: 400;
	line-height: 1.17;
	letter-spacing: -0.042em;
	color: var(--navy-dark);
}

.manifesto__title strong { font-weight: 800; }
.manifesto__text { max-width: 1084px; font-size: 18px; line-height: 1.67; color: var(--body-text); }

.marquee { width: 100%; overflow: hidden; }
.marquee__track { display: flex; gap: var(--mq-gap); width: max-content; will-change: transform; }

.marquee__item {
	flex: none;
	width: 451px;
	height: 350px;
	border-radius: var(--radius-img);
	overflow: hidden;
}

.marquee__item img { width: 100%; height: 100%; object-fit: cover; }

/* Contato + rodapé ------------------------------------------------------- */

.contact-section { margin-top: var(--section-gap); padding: 80px 0; background: var(--navy-dark); }
.contact-section__inner { display: flex; flex-direction: column; gap: 64px; }
.contact-cta { display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }

.contact-cta__title {
	max-width: 1050px;
	font-size: clamp(28px, 3.4vw, 48px);
	font-weight: 400;
	line-height: 1.17;
	letter-spacing: -0.042em;
	color: var(--bg);
}

.contact-cta__text { max-width: 686px; font-size: 18px; line-height: 1.67; color: var(--bg); }

.btn-light {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 273px;
	height: 48px;
	padding: 8px 16px;
	border-radius: 8px;
	background: var(--bg);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .16px;
	color: var(--navy-dark);
	text-decoration: none;
	transition: background var(--hover), transform var(--hover), box-shadow var(--hover);
}

.btn-light:hover { background: var(--white); transform: translateY(-3px); box-shadow: 0 14px 30px rgba(0, 0, 0, .28); }
.btn-light__arrow { width: 14.5px; flex: none; transition: transform var(--hover); }
.btn-light:hover .btn-light__arrow { transform: translateX(4px); }

.site-footer { display: flex; flex-direction: column; gap: 40px; padding: 40px; border-radius: 18px; background: var(--white); }
.site-footer__top { display: flex; justify-content: space-between; gap: 48px; }
.site-footer__brand { display: flex; flex-direction: column; gap: 16px; width: 486px; max-width: 100%; }
.site-footer__logo { display: block; width: 221px; }
.site-footer__logo svg { width: 100%; height: auto; display: block; }
.site-footer__tagline { font-size: 16px; line-height: 20px; color: var(--footer-text); }

.social { display: flex; gap: 12px; margin-top: 16px; }

.social__item {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	border: 1px solid rgba(143, 143, 143, .15);
	border-radius: 100px;
	background: #fafafa;
	transition: background var(--hover), transform var(--hover), border-color var(--hover);
}

.social__item:hover { background: var(--navy); border-color: var(--navy); transform: translateY(-3px); }
.social__item:hover svg path { fill: var(--white); }
.social__item svg { width: 24px; height: 24px; display: block; }

.site-footer__cols { display: flex; gap: 48px; }
.site-footer__col { display: flex; flex-direction: column; gap: 12px; }
.site-footer__col-title { font-size: 16px; font-weight: 600; line-height: 24px; color: var(--footer-title); }
.site-footer__list { display: flex; flex-direction: column; gap: 12px; }
.site-footer__list a { font-size: 16px; line-height: 24px; color: var(--footer-text); text-decoration: none; transition: color var(--hover); }
.site-footer__list a:hover { color: var(--navy); }

.site-footer__credit { text-decoration: none; transition: color var(--hover); }
.site-footer__credit:hover { color: var(--navy); text-decoration: underline; }

.site-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding-top: 24px;
	border-top: 1px solid #eaecf0;
	font-size: 14px;
	line-height: 24px;
	color: var(--body-text);
}

/* Páginas internas ------------------------------------------------------- */

.page-content { padding: 80px 0; }
.page-content__title { font-size: clamp(32px, 4vw, 56px); font-weight: 600; line-height: 1.15; letter-spacing: -0.04em; color: var(--navy-dark); margin-bottom: 24px; }
.page-content__body { max-width: 780px; font-size: 18px; line-height: 1.7; }
.page-content__body p { margin-bottom: 16px; }

/* ==========================================================================
   Responsivo
   Desktop > 1024px  → gutter 64px
   Tablet  641-1024  → gutter 32px
   Mobile  <= 640px  → gutter 16px
   ========================================================================== */

@media (min-width: 1440px) {
	.about__photo { width: 690px; max-width: none; }
}

@media (max-width: 1280px) {
	.service__figure { right: 40px; width: 240px; height: 240px; }
}

@media (max-width: 1160px) {
	.about__inner { grid-template-columns: 1fr; gap: 40px; }
	.about__media { height: auto; aspect-ratio: 3 / 2; }
	.about__media-img { width: 100%; }
	.about__seal { top: auto; bottom: 20px; left: 20px; width: 116px; height: 116px; }
	.service__figure { display: none; }
	.pillars__header { flex-direction: column; align-items: flex-start; gap: 24px; }
	.pillars__desc { width: 100%; }
}

@media (max-width: 1024px) {
	:root { --gutter: 32px; --section-gap: 56px; }

	.site-nav, .site-header__actions { display: none; }
	.nav-toggle { display: flex; }
	.site-header { top: 24px; }
	.site-header.is-scrolled { padding: 12px 0; }

	.hero { min-height: 620px; padding: 140px 0 64px; }
	.intro__inner { flex-direction: column; align-items: flex-start; gap: 24px; min-height: 0; }
	.intro__title, .intro__desc { width: 100%; }
	.services__header { margin-bottom: 48px; }
	.paths__grid { grid-template-columns: 1fr; }
	.path-card { min-height: 420px; padding: 32px; }
	.path-card__title { max-width: 460px; }
	.path-card__text { max-width: none; }
	.site-footer__top { flex-direction: column; gap: 40px; }
	.contact-section { padding: 64px 0; }
	.contact-section__inner { gap: 48px; }
	.marquee__item { width: 360px; height: 280px; }
}

@media (max-width: 1000px) {
	.pillars__grid { grid-template-columns: 1fr; }
	.pillar { gap: 24px; }
}

@media (max-width: 640px) {
	:root { --gutter: 16px; --section-gap: 48px; }

	.site-header { top: 16px; }
	.hero { min-height: 0; padding: 120px 0 48px; }
	.hero__content { gap: 20px; }
	.hero__actions { width: 100%; flex-direction: column; align-items: stretch; }
	.btn-hero { width: 100%; min-width: 0; }

	.about__col { gap: 24px; }
	.about__body { gap: 24px; }
	.about__lead { font-size: 20px; line-height: 30px; }
	.about__text { font-size: 16px; }
	.about__media { aspect-ratio: 4 / 5; }
	.about__seal { width: 88px; height: 88px; bottom: 16px; left: 16px; }

	.pillar { padding: 24px; }
	.pillar__text { font-size: 16px; }

	.services__header { margin-bottom: 32px; }
	.services__list { gap: 24px; }
	.service { padding-bottom: 24px; }
	.service__head { gap: 12px; }
	.service__number { min-width: 0; font-size: 22px; }
	.service__icon, .service__icon svg { width: 36px; height: 36px; }
	.service__text { padding: 16px 0 0; font-size: 16px; line-height: 26px; }

	.paths { padding: 40px 0; }
	.paths__inner { gap: 32px; }
	.paths__grid { gap: 16px; }
	.path-card { min-height: 400px; padding: 24px; border-radius: 20px; }
	.path-card__body { gap: 32px; }
	.path-card__title { max-width: none; }
	.path-card__cta { width: 100%; min-width: 0; padding: 16px 20px; }
	.manifesto { gap: 32px; }
	.manifesto__text { font-size: 16px; }
	.marquee__item { width: 260px; height: 200px; }
	:root { --mq-gap: 16px; }

	.contact-section { padding: 48px 0; }
	.btn-light { width: 100%; }
	.site-footer { padding: 24px; gap: 32px; }
	.site-footer__cols { flex-wrap: wrap; gap: 28px 32px; }
	.site-footer__col { min-width: 140px; }
	.site-footer__bottom { flex-direction: column; gap: 8px; text-align: left; }
	.intro__desc p, .intro__desc-strong { font-size: 16px !important; }
	.drawer__panel { padding: 20px; }

	/* Pílulas de hero com texto longo quebram em duas linhas: o raio de 130px
	   vira um balão estranho. 16px lê como stadium numa linha e como retângulo
	   arredondado quando quebra. */
	.hero .pill,
	.page-hero .pill {
		align-items: flex-start;
		gap: 7px;
		max-width: 100%;
		padding: 8px 14px;
		border-radius: 16px;
		font-size: 12px;
		line-height: 1.45;
		letter-spacing: .03em;
		text-align: left;
		text-wrap: balance;
	}

	.hero .pill__icon,
	.page-hero .pill__icon { margin-top: 3px; }

	.hero .pill { width: fit-content; }
	.br-mobile:not(.br-mobile--sm) { display: block; }
}

@media (max-width: 380px) {
	.br-mobile--sm { display: block; }
	.highlight__media { padding: 0 12px 12px; }
	.stats { gap: 6px; }
	.stats__item { padding: 10px 8px; }
	.stats__label { font-size: 11px; }
}

/* Lenis ------------------------------------------------------------------- */

html.lenis, html.lenis body { height: auto; }
html.lenis { scroll-behavior: auto; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.hero__bg img, .outcome img { transition: none !important; }
	.site-header.is-scrolled { animation: none !important; }
}

/* ==========================================================================
   Landing pages
   ========================================================================== */

/* Hero de LP -------------------------------------------------------------- */

.hero--page {
	align-items: center;
	min-height: 799px;
	padding: 176px 0 96px;
}

.hero--page .hero__overlay {
	background: linear-gradient(90deg, rgba(23, 36, 64, .96) 0%, rgba(23, 36, 64, .8) 50%, rgba(23, 36, 64, .3) 100%);
	mix-blend-mode: normal;
}

.hero--page .hero__bg img { object-position: center; }
.hero--page .hero__content { max-width: 708px; }

/* Formação em destaque ---------------------------------------------------- */

.highlight { background: var(--white); padding: 60px 0; }
.highlight__inner { display: flex; align-items: center; gap: 80px; }
.highlight__col { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }

.highlight__title {
	font-size: clamp(28px, 3.4vw, 48px);
	font-weight: 600;
	line-height: 1.17;
	letter-spacing: -0.062em;
	color: var(--navy-dark);
}

.highlight__text { display: flex; flex-direction: column; gap: 16px; }
.highlight__text p { font-size: 16px; line-height: 1.67; color: var(--body-text); }

.btn-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 46px;
	padding: 0 16px;
	border-radius: 100px;
	background: var(--navy-dark);
	font-size: 16px;
	color: var(--white);
	text-decoration: none;
	transition: background var(--hover), transform var(--hover), box-shadow var(--hover);
}

.btn-pill:hover { background: var(--navy); transform: translateY(-3px); box-shadow: 0 12px 26px rgba(26, 36, 60, .28); }
.btn-pill__arrow { width: 16px; height: 16px; flex: none; transform: rotate(90deg); transition: transform var(--hover); }
.btn-pill:hover .btn-pill__arrow { transform: rotate(90deg) translateY(-4px); }

.highlight__media {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	width: 635px;
	flex: none;
	height: 571px;
	padding: 0 32px 32px;
	border-radius: var(--radius-img);
	overflow: hidden;
}

.highlight__media img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: bottom; }
.highlight__media::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(38, 47, 67, .15); }

.stats { display: flex; align-items: flex-end; gap: 20px; }
.stats__item { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; padding: 20px; border-radius: 16px; background: #f5f5f5; }
.stats__label { font-size: 16px; font-weight: 500; letter-spacing: -0.32px; color: var(--light-body); line-height: 1; }
.stats__value { font-size: 24px; font-weight: 700; letter-spacing: -0.48px; color: #000; line-height: 1; }

/* Programa ---------------------------------------------------------------- */

.program__header { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 72px; }
.program__header .section-title { max-width: 1054px; }
.program__desc { max-width: 840px; font-size: 16px; line-height: 1.67; color: var(--body-text); }

.program__list { display: flex; flex-direction: column; gap: 32px; }
.program__item { display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; padding-bottom: 32px; border-bottom: 1px solid var(--divider); }
.program__left { display: flex; align-items: flex-start; gap: 32px; width: 622px; flex: none; }
.program__number { width: 40px; flex: none; font-size: 32px; font-weight: 500; line-height: 30px; color: var(--navy-dark); }
.program__head { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.program__title { font-size: 24px; font-weight: 500; line-height: 30px; letter-spacing: -0.48px; color: var(--navy-dark); }

.program__badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 8px;
	border: 1px solid rgba(255, 255, 255, .04);
	border-radius: 130px;
	background: var(--navy);
	font-size: 13px;
	font-weight: 500;
	line-height: 15px;
	color: var(--bg);
	white-space: nowrap;
}

.program__text { width: 650px; flex: none; font-size: 18px; line-height: 30px; color: var(--body-text); }

/* Para quem é: split com lista numerada ----------------------------------- */

.audience { background: var(--bg-soft); padding: 80px 0; }
.audience__inner { display: flex; align-items: flex-start; gap: 96px; }

.audience__intro { width: 430px; flex: none; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }

.tag-dot {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 12px;
	border: 1px solid #dadde5;
	border-radius: 130px;
	background: var(--white);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--navy);
	white-space: nowrap;
}

.tag-dot__mark { width: 9px; height: 9px; border-radius: 50%; background: var(--navy); flex: none; }

.audience__title {
	font-size: clamp(30px, 3.4vw, 48px);
	font-weight: 600;
	line-height: 1.13;
	letter-spacing: -0.042em;
	color: var(--navy-dark);
}

.audience__desc { font-size: 17px; line-height: 1.6; letter-spacing: -0.2px; color: var(--body-text); }

.audience__list { flex: 1; min-width: 0; display: flex; flex-direction: column; list-style: none; margin: 0; padding: 0; }

.audience__item {
	display: flex;
	align-items: flex-start;
	gap: 28px;
	padding: 26px 0;
	border-bottom: 1px solid #dadde5;
	transition: transform var(--hover);
}

.audience__item:last-child { border-bottom: 0; }
.audience__item:hover { transform: translateX(6px); }

.audience__number {
	width: 58px;
	flex: none;
	font-size: 34px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -1px;
	color: var(--navy);
}

.audience__content { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 7px; }
.audience__item-title { font-size: 21px; font-weight: 600; line-height: 1.28; letter-spacing: -0.42px; color: var(--navy); }
.audience__item-text { font-size: 16px; line-height: 1.5; letter-spacing: -0.32px; color: var(--gentle); }

/* Resultados -------------------------------------------------------------- */

.outcomes__header { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 48px; }
.outcomes__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }

.outcome {
	position: relative;
	isolation: isolate;
	display: flex;
	min-height: 250px;
	padding: 32px;
	border-radius: var(--radius-img);
	overflow: hidden;
}

.outcome img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 600ms ease-in-out; }
.outcome:hover img { transform: scale(1.06); }

.outcome::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(161.55deg, rgb(40, 49, 70) 31.04%, rgba(40, 49, 70, .2) 92.65%),
		linear-gradient(90deg, rgba(40, 49, 70, .5) 0%, rgba(40, 49, 70, .5) 100%);
}

.outcome__text { font-size: 24px; font-weight: 500; line-height: 1.3; letter-spacing: -0.48px; color: var(--bg); }

/* Depoimentos em 3 colunas ------------------------------------------------ */


/* FAQ --------------------------------------------------------------------- */

.faq__inner { display: flex; align-items: flex-start; gap: 80px; }
.faq__aside { width: 484px; flex: none; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }

.faq__title {
	font-size: clamp(28px, 3.4vw, 48px);
	font-weight: 600;
	line-height: 1.17;
	letter-spacing: -0.062em;
	color: var(--navy-dark);
}

.faq__list { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.faq__item { padding-bottom: 20px; border-bottom: 1px solid #f0f0f0; }

.faq__question {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
	cursor: pointer;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: -0.36px;
	color: var(--navy-dark);
	transition: color var(--hover);
}

.faq__question:hover { color: var(--blue); }
.faq__icon { width: 20px; height: 20px; flex: none; margin-top: 4px; transition: transform var(--hover); }
.faq__icon svg { width: 100%; height: 100%; display: block; }
.faq__item.is-open .faq__icon { transform: rotate(180deg); }

.faq__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--hover); }
.faq__item.is-open .faq__panel { grid-template-rows: 1fr; }
.faq__panel-inner { min-height: 0; overflow: hidden; }
.faq__answer { padding-top: 14px; font-size: 16px; line-height: 1.5; letter-spacing: -0.32px; color: var(--light-body); }

/* Responsivo das LPs ------------------------------------------------------ */

@media (max-width: 1160px) {
	.highlight__inner { flex-direction: column; align-items: stretch; gap: 40px; }
	.highlight__media { width: 100%; height: 460px; }
	.program__item { flex-direction: column; gap: 16px; }
	.program__left, .program__text { width: 100%; }
	.faq__inner { flex-direction: column; gap: 40px; }
	.faq__aside { width: 100%; }
	.outcomes__grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
	.audience__inner { gap: 56px; }
}

@media (max-width: 1024px) {
	.hero--page { min-height: 640px; padding: 140px 0 72px; }
	.quotes__grid { grid-template-columns: 1fr; }
	.audience__inner { flex-direction: column; gap: 40px; }
	.audience__intro { width: 100%; max-width: 620px; }
}

@media (max-width: 640px) {
	.hero--page { min-height: 0; padding: 120px 0 56px; }
	.highlight { padding: 40px 0; }
	.highlight__inner { gap: 32px; }
	.highlight__media { height: 380px; padding: 0 16px 16px; }
	/* Os três cards dividem uma largura pequena: valor escala com a viewport
	   e quebra em último caso, em vez de estourar a caixa. */
	.stats { gap: 8px; }
	.stats__item { padding: 12px 10px; gap: 6px; min-width: 0; }
	.stats__label { font-size: 12px; letter-spacing: -0.01em; }
	.stats__value { font-size: clamp(11px, 3.7vw, 18px); letter-spacing: -0.03em; overflow-wrap: anywhere; }
	.program__header { margin-bottom: 32px; }
	.program__list { gap: 24px; }
	.program__item { padding-bottom: 24px; gap: 12px; }
	.program__left { gap: 16px; }
	.program__number { width: 32px; font-size: 24px; }
	.program__title { font-size: 20px; }
	.program__text { font-size: 16px; line-height: 26px; }
	.audience { padding: 48px 0; }
	.audience__inner { gap: 28px; }
	.audience__item { gap: 16px; padding: 20px 0; }
	.audience__number { width: 40px; font-size: 26px; }
	.audience__item-title { font-size: 18px; }
	.audience__item-text { font-size: 15px; }
	.outcomes__grid { grid-template-columns: 1fr; gap: 16px; }
	.outcome { min-height: 200px; padding: 24px; }
	.outcome__text { font-size: 20px; }
	.faq__inner { gap: 28px; }
	.faq__question { font-size: 17px; }
}

/* ==========================================================================
   Páginas internas: hero curto + contato
   ========================================================================== */

.page-hero {
	display: flex;
	align-items: flex-end;
	min-height: 427px;
	padding: 200px 0 80px;
	background: #000;
}

.page-hero__content { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; max-width: 720px; }

.page-hero__title {
	font-size: clamp(34px, 4.6vw, 66px);
	font-weight: 600;
	line-height: 1.17;
	letter-spacing: -0.045em;
	color: var(--bg);
}

.pill--navy { background: var(--navy); color: var(--white); border-color: rgba(255, 255, 255, .12); filter: none; }
.pill--navy .pill__icon path { fill: var(--white); }

/* Quem somos sem a foto de topo ------------------------------------------- */

.about--compact .about__inner { align-items: center; }
.about--compact .about__photo { display: none; }
.about--compact .about__media { height: 499px; }
.about--compact .about__seal { top: 105px; }

/* Contato ----------------------------------------------------------------- */

.contact { padding: 80px 0; }
.contact__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
.contact__intro { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }

.contact__title {
	font-size: clamp(28px, 3.4vw, 48px);
	font-weight: 600;
	line-height: 1.17;
	letter-spacing: -0.062em;
	color: var(--navy);
}

.contact__text { font-size: 16px; line-height: 1.67; color: var(--body-text); }
.contact__list { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
.contact__list li { display: flex; align-items: center; gap: 10px; font-size: 14px; line-height: 1.5; color: var(--navy-dark); }
.contact__list svg { width: 16px; height: 16px; flex: none; }

.btn-whats {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 8px;
	padding: 0 24px;
	height: 52px;
	border-radius: 100px;
	background: var(--blue);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--white);
	text-decoration: none;
	transition: background var(--hover), transform var(--hover), box-shadow var(--hover);
}

.btn-whats:hover { background: #1749a8; transform: translateY(-3px); box-shadow: 0 14px 30px rgba(28, 87, 196, .32); }
.btn-whats__icon { width: 22px; height: 22px; flex: none; color: currentColor; }
.btn-whats__icon path { fill: currentColor; }

.contact-form { display: flex; flex-direction: column; gap: 16px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.form-field label { font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--navy-dark); }

.form-field input,
.form-field select {
	width: 100%;
	height: 42px;
	padding: 0 14px;
	border: 1px solid #e0e1e3;
	border-radius: 8px;
	background: var(--white);
	font-family: inherit;
	font-size: 15px;
	color: var(--navy-dark);
	transition: border-color var(--hover), box-shadow var(--hover);
	appearance: none;
	-webkit-appearance: none;
}

.form-field select {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath d='M5 8l5 4.5L15 8' stroke='%238b909b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 40px;
	color: var(--light-body);
}

.form-field select:valid { color: var(--navy-dark); }
.form-field input::placeholder { color: #9aa0ab; }

.form-field input:focus,
.form-field select:focus {
	outline: none;
	border-color: var(--navy);
	box-shadow: 0 0 0 3px rgba(30, 49, 92, .12);
}

.form-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	height: 46px;
	margin-top: 4px;
	padding: 0 16px;
	border: 0;
	border-radius: 8px;
	background: var(--navy);
	font-size: 16px;
	font-weight: 600;
	color: var(--white);
	cursor: pointer;
	transition: background var(--hover), transform var(--hover), box-shadow var(--hover);
}

.form-submit:hover { background: var(--navy-dark); transform: translateY(-2px); box-shadow: 0 12px 26px rgba(30, 49, 92, .25); }
.form-submit svg { width: 14.5px; }
.form-submit svg path { fill: currentColor; }

.form-note { font-size: 12px; line-height: 1.5; text-align: center; color: var(--light-body); }
.form-note a { color: var(--navy-dark); }

@media (max-width: 1024px) {
	.page-hero { min-height: 320px; padding: 150px 0 56px; }
	.contact__inner { grid-template-columns: 1fr; gap: 40px; }
	.about--compact .about__media { height: auto; aspect-ratio: 3 / 2; }
	.about--compact .about__seal { top: auto; bottom: 20px; }
}

@media (max-width: 640px) {
	.page-hero { min-height: 0; padding: 120px 0 40px; }
	.contact { padding: 40px 0; }
	.btn-whats { width: 100%; }
	.form-row { grid-template-columns: 1fr; }
	.about--compact .about__media { aspect-ratio: 4 / 5; }
}

/* ==========================================================================
   Páginas legais e sitemap
   ========================================================================== */

.legal { padding: 80px 0; }
.legal__inner { max-width: 860px; }
.legal__intro { margin-bottom: 48px; }
.legal__updated { font-size: 14px; line-height: 1.5; color: var(--light-body); margin-bottom: 12px; }
.legal__lead { font-size: 20px; line-height: 1.6; letter-spacing: -0.02em; color: var(--navy-dark); }

.legal__section { margin-bottom: 40px; }
.legal__section:last-child { margin-bottom: 0; }

.legal__title {
	margin-bottom: 16px;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.48px;
	color: var(--navy-dark);
}

.legal__text { margin-bottom: 14px; font-size: 17px; line-height: 1.75; color: var(--body-text); }
.legal__text:last-child { margin-bottom: 0; }

.legal__list { margin: 0 0 16px; padding-left: 22px; list-style: disc; display: flex; flex-direction: column; gap: 10px; }
.legal__list li { font-size: 17px; line-height: 1.7; color: var(--body-text); }

.legal a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; transition: color var(--hover); }
.legal a:hover { color: var(--blue); }

.sitemap__list { display: flex; flex-direction: column; gap: 16px; }
.sitemap__list li { display: flex; flex-direction: column; gap: 2px; }

.sitemap__link {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--navy-dark);
	text-decoration: none;
	transition: color var(--hover);
	width: fit-content;
}

.sitemap__link:hover { color: var(--blue); }
.sitemap__desc { font-size: 15px; line-height: 1.5; color: var(--light-body); }

@media (max-width: 640px) {
	.legal { padding: 40px 0; }
	.legal__intro { margin-bottom: 32px; }
	.legal__lead { font-size: 18px; }
	.legal__title { font-size: 20px; }
	.legal__text, .legal__list li { font-size: 16px; }
}

/* ==========================================================================
   Blog
   ========================================================================== */

.page-hero__meta {
	font-size: 15px;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.08em;
	color: rgba(241, 241, 241, .82);
}
.page-hero__desc { max-width: 640px; font-size: 18px; line-height: 1.6; color: rgba(241, 241, 241, .82); }

.page-hero__search { display: flex; gap: 10px; width: 100%; max-width: 520px; }

.page-hero__search input {
	flex: 1;
	min-width: 0;
	height: 48px;
	padding: 0 18px;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 100px;
	background: rgba(255, 255, 255, .06);
	color: var(--white);
	font: inherit;
	font-size: 15px;
	transition: border-color var(--hover), background var(--hover);
}

.page-hero__search input::placeholder { color: rgba(241, 241, 241, .5); }
.page-hero__search input:focus { outline: none; border-color: rgba(255, 255, 255, .5); background: rgba(255, 255, 255, .1); }

.page-hero__search button {
	height: 48px;
	padding: 0 24px;
	border: 0;
	border-radius: 100px;
	background: var(--bg);
	color: var(--navy-dark);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--hover), transform var(--hover);
}

.page-hero__search button:hover { background: var(--white); transform: translateY(-2px); }

/* Listagem ---------------------------------------------------------------- */

.blog-index { padding: 80px 0; }
.blog__filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 48px; }

.blog__filter {
	display: inline-flex;
	align-items: center;
	padding: 8px 18px;
	border: 1px solid var(--border-light);
	border-radius: 100px;
	background: var(--white);
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	color: var(--navy-dark);
	text-decoration: none;
	transition: background var(--hover), color var(--hover), border-color var(--hover), transform var(--hover);
}

.blog__filter:hover { transform: translateY(-2px); border-color: var(--navy); }
.blog__filter.is-active { background: var(--navy); border-color: var(--navy); color: var(--white); }

.blog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 27px; }

.post-card {
	border-radius: var(--radius-card);
	background: var(--white);
	overflow: hidden;
	transition: transform var(--hover), box-shadow var(--hover);
}

.post-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(26, 36, 60, .1); }
.post-card__link { display: flex; flex-direction: column; height: 100%; text-decoration: none; }

.post-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bg); }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms ease-in-out; }
.post-card:hover .post-card__media img { transform: scale(1.05); }

.post-card__body { display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 24px; }
.post-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13px; line-height: 1.4; color: var(--light-body); }

.post-card__cat {
	padding: 3px 10px;
	border-radius: 100px;
	background: var(--bg);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: var(--navy);
}

.post-card__title { font-size: 20px; font-weight: 600; line-height: 1.3; letter-spacing: -0.4px; color: var(--navy-dark); }
.post-card__excerpt { font-size: 16px; line-height: 1.6; color: var(--gentle); }

.post-card__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding-top: 4px;
	font-size: 15px;
	font-weight: 600;
	color: var(--blue);
}

.post-card__arrow { width: 14px; flex: none; transition: transform var(--hover); }
.post-card__arrow path { fill: currentColor; }
.post-card:hover .post-card__arrow { transform: translateX(4px); }

.blog__empty { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; max-width: 620px; }
.blog__empty-title { font-size: clamp(24px, 3vw, 36px); font-weight: 600; line-height: 1.2; letter-spacing: -0.03em; color: var(--navy-dark); }
.blog__empty-text { font-size: 18px; line-height: 1.7; color: var(--body-text); }

.error404__links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.error404__list { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 16px; }
.error404__list a { font-size: 16px; color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }

.pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 48px; }

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	border: 1px solid var(--border-light);
	border-radius: 100px;
	background: var(--white);
	font-size: 15px;
	color: var(--navy-dark);
	text-decoration: none;
	transition: background var(--hover), color var(--hover), border-color var(--hover);
}

.pagination .page-numbers:hover { border-color: var(--navy); }
.pagination .page-numbers.current { background: var(--navy); border-color: var(--navy); color: var(--white); }
.pagination .page-numbers.dots { border-color: transparent; background: transparent; }

/* Post -------------------------------------------------------------------- */

.post-single { padding: 0 0 80px; }

.post__cover {
	margin: 56px 0 56px;
	border-radius: var(--radius-img);
	overflow: hidden;
	aspect-ratio: 2 / 1;
	box-shadow: 0 24px 60px rgba(10, 16, 30, .18);
}

.post__cover img { width: 100%; height: 100%; object-fit: cover; }
.post__body { max-width: 760px; margin: 0 auto; }

.prose > * + * { margin-top: 20px; }
.prose p { font-size: 18px; line-height: 1.8; color: var(--body-text); }
.prose h2 { margin-top: 44px; font-size: clamp(24px, 2.6vw, 32px); font-weight: 600; line-height: 1.25; letter-spacing: -0.03em; color: var(--navy-dark); }
.prose h3 { margin-top: 32px; font-size: 22px; font-weight: 600; line-height: 1.3; letter-spacing: -0.02em; color: var(--navy-dark); }
.prose h4 { margin-top: 24px; font-size: 18px; font-weight: 600; color: var(--navy-dark); }
.prose ul, .prose ol { display: flex; flex-direction: column; gap: 10px; padding-left: 24px; list-style: disc; }
.prose ol { list-style: decimal; }
.prose li { font-size: 18px; line-height: 1.7; color: var(--body-text); }
.prose a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; transition: color var(--hover); }
.prose a:hover { color: var(--blue); }
.prose strong { color: var(--navy-dark); font-weight: 600; }

.prose blockquote {
	margin: 32px 0;
	padding: 4px 0 4px 24px;
	border-left: 3px solid var(--blue);
	font-size: 20px;
	line-height: 1.6;
	color: var(--navy-dark);
}

.prose img, .prose figure img { border-radius: var(--radius-img); width: 100%; height: auto; }
.prose figure { margin: 32px 0; }
.prose figcaption { margin-top: 10px; font-size: 14px; line-height: 1.5; color: var(--light-body); text-align: center; }
.prose code { padding: 2px 7px; border-radius: 6px; background: var(--white); font-size: 15px; color: var(--navy); }
.prose pre { padding: 20px 24px; border-radius: 16px; background: var(--navy-dark); color: var(--bg); overflow-x: auto; font-size: 14px; line-height: 1.6; }
.prose pre code { background: none; color: inherit; padding: 0; }
.prose hr { margin: 40px 0; border: 0; border-top: 1px solid var(--divider); }

.prose table { width: 100%; border-collapse: collapse; font-size: 16px; }
.prose th, .prose td { padding: 12px 14px; border-bottom: 1px solid var(--divider); text-align: left; }
.prose th { color: var(--navy-dark); font-weight: 600; }

.post__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }

.post__tag {
	padding: 6px 14px;
	border: 1px solid var(--border-light);
	border-radius: 100px;
	background: var(--white);
	font-size: 14px;
	color: var(--body-text);
	text-decoration: none;
	transition: border-color var(--hover), color var(--hover);
}

.post__tag:hover { border-color: var(--navy); color: var(--navy); }

.post__share { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--divider); font-size: 15px; color: var(--light-body); }
.post__share a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; transition: color var(--hover); }
.post__share a:hover { color: var(--blue); }

.post__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; max-width: 760px; margin: 56px auto 0; }

.post__nav-item {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 20px 24px;
	border-radius: var(--radius-card);
	background: var(--white);
	text-decoration: none;
	transition: transform var(--hover), box-shadow var(--hover);
}

.post__nav-item:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(26, 36, 60, .08); }
.post__nav-item--next { text-align: right; }
.post__nav-label { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--light-body); }
.post__nav-title { font-size: 17px; font-weight: 600; line-height: 1.35; color: var(--navy-dark); }

.related { padding: 0 0 80px; }
.related__title { margin-bottom: 40px; font-size: clamp(28px, 3.2vw, 44px); }

@media (max-width: 1024px) {
	.blog-index { padding: 56px 0; }
	.blog__grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
	.post__cover { margin: 40px 0 40px; }
}

@media (max-width: 640px) {
	.blog-index { padding: 40px 0; }
	.blog__filters { margin-bottom: 28px; gap: 8px; }
	.blog__filter { padding: 7px 14px; font-size: 13px; }
	.blog__grid { grid-template-columns: 1fr; gap: 16px; }
	.post-card__body { padding: 20px; }
	.post-single { padding-bottom: 48px; }
	.post__cover { margin: 28px 0 28px; aspect-ratio: 3 / 2; }
	.prose p, .prose li { font-size: 17px; }
	.prose blockquote { font-size: 18px; }
	.post__nav { grid-template-columns: 1fr; gap: 12px; margin-top: 40px; }
	.post__nav-item--next { text-align: left; }
	.related { padding-bottom: 48px; }
	.page-hero__search { flex-direction: column; }
	.page-hero__search button { width: 100%; }
}
