/* Páginas da venda: /planos, /checkout, as voltas do pagamento (/obrigado,
   /cancelado, /expirado), /termos, /privacidade e /dpa.

   Folha própria: estas páginas não carregam o tema da landing (cena WebGL,
   rolagem, loader), só a marca dele - a Neue Montreal, o verde #39ff14 e o
   amarelo #ffe600, a logo e o vidro.  Os valores do vidro são os do tema
   escuro da identidade "vidro" (docs/superpowers/specs/2026-09-30-identidade-
   vidro-tools-agents/03-referencia-tecnica/vidro.css, no workspace); o hub só
   tem o escuro.

   /css/* sai com Cache-Control immutable: ao mudar este arquivo, suba o ?v= no
   paginas/moldura.html. */

@font-face {
	font-family: PPNeueMontreal;
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url(/fonts/PPNeueMontreal-Regular.e975bf8371aec1efabce9f2164d14431.woff2) format('woff2'),
		url(/fonts/PPNeueMontreal-Regular.11e3b547be00780a6b56f2be1574012c.woff) format('woff');
}
@font-face {
	font-family: PPNeueMontreal;
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url(/fonts/PPNeueMontreal-SemiBold.82363d624b471941cd6b3f2e06777e06.woff2) format('woff2'),
		url(/fonts/PPNeueMontreal-SemiBold.11ce7260119bd987ca5a92a82ed3d6f4.woff) format('woff');
}

:root {
	color-scheme: dark;

	--verde: #39ff14;
	--amarelo: #ffe600;
	--tinta-marca: #111;

	--bg: #000;
	--ink: #ededed;
	--ink-2: #a8a8a8;
	--ink-3: #8a8a8a;
	--line: rgb(255 255 255 / 0.1);
	--line-2: rgb(255 255 255 / 0.17);

	--glass: linear-gradient(150deg, rgb(255 255 255 / 0.085), rgb(255 255 255 / 0.02));
	--glass-2: rgb(10 10 10 / 0.6);
	--glass-line: rgb(255 255 255 / 0.1);
	--glass-hi: inset 0 1px 0 rgb(255 255 255 / 0.13);
	--blur: blur(22px) saturate(150%);
	--shadow: 0 30px 60px -30px rgb(0 0 0 / 0.9);
	--glow: 0 22px 60px -28px rgb(57 255 20 / 0.14);
	--glow-y: 0 22px 64px -24px rgb(255 230 0 / 0.19);
	--glow-btn: 0 6px 18px -10px rgb(57 255 20 / 0.35);
	--glow-btn-hover: 0 6px 18px -10px rgb(255 230 0 / 0.32);
	--brand-soft: rgb(57 255 20 / 0.07);
	--brand-line: rgb(57 255 20 / 0.32);
	--destaque-soft: rgb(255 230 0 / 0.1);
	--destaque-line: rgb(255 230 0 / 0.35);
	--erro: #ff8a7a;
	--erro-line: rgb(255 138 122 / 0.55);
	--orb: 0.3;

	--r-sm: 10px;
	--r: 14px;
	--r-md: 18px;
	--r-lg: 24px;
	--r-pill: 999px;

	--font: PPNeueMontreal, 'Helvetica Neue', Helvetica, Arial, sans-serif;
	--gutter: clamp(16px, 4vw, 48px);
	--largura: 1200px;
}

/* ------------------------------------------------------------------ base -- */
*,
*::before,
*::after {
	box-sizing: border-box;
}
html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: 96px;
}
body {
	margin: 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	background: var(--bg);
	color: var(--ink);
	font: 400 16px/1.55 var(--font);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img {
	max-width: 100%;
	height: auto;
}
a {
	color: var(--verde);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
a:hover {
	color: var(--amarelo);
}
:focus-visible {
	outline: 2px solid var(--amarelo);
	outline-offset: 3px;
}
h1,
h2,
h3 {
	margin: 0;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.12;
}
p {
	margin: 0;
}
.kicker {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ink-3);
}

/* Marca de texto a revisar ou a preencher antes da produção.  Bem visível de
   propósito: nenhuma pode sobrar quando a página for ao ar. */
mark.revisar {
	display: inline;
	padding: 1px 7px;
	border: 1px dashed rgb(255 230 0 / 0.6);
	border-radius: 6px;
	background: rgb(255 230 0 / 0.12);
	color: var(--amarelo);
	font-size: 0.82em;
	font-weight: 600;
	letter-spacing: 0;
	white-space: normal;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.pular {
	position: absolute;
	left: 16px;
	top: -100px;
	z-index: 100;
	padding: 10px 16px;
	border-radius: var(--r-pill);
	background: var(--verde);
	color: var(--tinta-marca);
	font-weight: 600;
	text-decoration: none;
}
.pular:focus {
	top: 12px;
}

/* Três brilhos atrás de tudo: a luz que o vidro refrata. */
.ambiente {
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	overflow: hidden;
}
.ambiente i {
	position: absolute;
	border-radius: 50%;
	filter: blur(110px);
	opacity: var(--orb);
}
.ambiente i:nth-child(1) {
	width: 820px;
	height: 820px;
	left: -300px;
	top: -420px;
	background: rgb(57 255 20 / 0.32);
}
.ambiente i:nth-child(2) {
	width: 760px;
	height: 760px;
	right: -300px;
	bottom: -380px;
	background: rgb(255 230 0 / 0.26);
}
.ambiente i:nth-child(3) {
	width: 420px;
	height: 420px;
	right: 8%;
	top: 34%;
	background: rgb(57 255 20 / 0.1);
}

/* ---------------------------------------------------------------- vidro -- */
.cartao {
	position: relative;
	background: var(--glass);
	border: 1px solid var(--glass-line);
	border-radius: var(--r-lg);
	box-shadow: var(--glass-hi), var(--shadow), var(--glow);
	-webkit-backdrop-filter: var(--blur);
	backdrop-filter: var(--blur);
}
.cartao--tracejado {
	background: transparent;
	border: 1px dashed var(--line-2);
	box-shadow: none;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

/* --------------------------------------------------------------- botões -- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 26px;
	border: 1px solid var(--verde);
	border-radius: var(--r-pill);
	background: var(--verde);
	color: var(--tinta-marca);
	font: 600 14px/1.1 var(--font);
	letter-spacing: 0.025em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	box-shadow: var(--glow-btn), inset 0 1px 0 rgb(255 255 255 / 0.55);
	transition: background 0.15s, border-color 0.15s, box-shadow 0.2s, color 0.15s, opacity 0.15s;
}
.btn:hover,
.btn:focus-visible {
	background: var(--amarelo);
	border-color: var(--amarelo);
	color: var(--tinta-marca);
	box-shadow: var(--glow-btn-hover), inset 0 1px 0 rgb(255 255 255 / 0.55);
}
.btn--vidro {
	border-color: var(--line-2);
	background: var(--glass);
	color: var(--ink);
	box-shadow: var(--glass-hi);
	-webkit-backdrop-filter: var(--blur);
	backdrop-filter: var(--blur);
}
.btn--vidro:hover,
.btn--vidro:focus-visible {
	border-color: var(--destaque-line);
	background: var(--destaque-soft);
	color: #fff;
	box-shadow: var(--glass-hi), var(--glow-btn-hover);
}
.btn--sm {
	min-height: 40px;
	padding: 0 18px;
	font-size: 13px;
}
/* Enviando: o botão do formulário fica travado até a resposta. */
.btn:disabled,
.btn:disabled:hover {
	opacity: 0.55;
	background: var(--verde);
	border-color: var(--verde);
	cursor: progress;
	box-shadow: none;
}
/* Desabilitado sem envio em curso: a verificação anti-robô sem token. */
.btn:disabled:not([aria-busy='true']) {
	cursor: not-allowed;
}

/* --------------------------------------------------------------- topo -- */
.topo {
	position: sticky;
	top: 0;
	z-index: 30;
	padding: 12px var(--gutter) 0;
}
.topo__barra {
	max-width: var(--largura);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 8px 8px 8px 20px;
	border: 1px solid var(--glass-line);
	border-radius: var(--r-pill);
	background: var(--glass-2);
	box-shadow: var(--glass-hi), var(--shadow);
	-webkit-backdrop-filter: blur(26px) saturate(165%);
	backdrop-filter: blur(26px) saturate(165%);
}
.topo__logo {
	display: flex;
	flex: none;
}
.topo__logo img {
	display: block;
	width: auto;
	height: 38px;
}
.topo__nav {
	display: flex;
	align-items: center;
	gap: clamp(14px, 3vw, 28px);
}
.topo__link {
	position: relative;
	color: #9a9a9a;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.025em;
	text-transform: uppercase;
	text-decoration: none;
}
.topo__link:hover,
.topo__link[aria-current='page'] {
	color: #fff;
}
.topo__link[aria-current='page']::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -6px;
	height: 3px;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--verde), var(--amarelo));
}

/* ------------------------------------------------------------ conteúdo -- */
.conteudo {
	flex: 1 0 auto;
	width: 100%;
	max-width: calc(var(--largura) + 2 * var(--gutter));
	margin: 0 auto;
	padding: clamp(40px, 7vw, 88px) var(--gutter) clamp(56px, 8vw, 104px);
}
.conteudo:focus {
	outline: none;
}

/* ---------------------------------------------------------- /planos: topo -- */
.hero--planos {
	max-width: 900px;
	margin-bottom: clamp(36px, 5vw, 56px);
}
.hero h1 {
	margin: 14px 0 18px;
	font-size: clamp(2.15rem, 5vw, 3.9rem);
	line-height: 1.04;
	letter-spacing: -0.035em;
}
.hero__realce {
	display: block;
	background: linear-gradient(90deg, var(--verde), var(--amarelo));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.aceite {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid var(--line-2);
	border-radius: var(--r-md);
	background: rgb(255 255 255 / 0.03);
	font-size: 15px;
	line-height: 1.45;
	cursor: pointer;
	transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.aceite input {
	flex: none;
	width: 22px;
	height: 22px;
	margin: 0;
	accent-color: var(--verde);
	cursor: pointer;
}
.aceite:hover {
	border-color: rgb(255 255 255 / 0.3);
}
.aceite.is-marcado {
	border-color: var(--brand-line);
	background: var(--brand-soft);
}
.aceite:has(input[aria-invalid='true']) {
	border-color: var(--erro-line);
}

/* --------------------------------------------------------- /planos: grade -- */
.planos {
	display: grid;
	gap: 20px;
	align-items: stretch;
}
@media (min-width: 900px) {
	.planos {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
/* Lado a lado, os três cartões dividem as mesmas linhas (topo, preço, uso,
   módulos, itens, botões): preço, medidor e botões ficam na mesma altura
   mesmo com descrições de tamanhos diferentes.  Sem subgrid, fica o
   flex de cada cartão.  Seletor com o pai (.planos > .plano) porque a regra
   .plano, com display: flex, vem depois neste arquivo. */
@supports (grid-template-rows: subgrid) {
	@media (min-width: 900px) {
		.planos {
			row-gap: 0;
		}
		.planos > .plano {
			display: grid;
			grid-row: span 6;
			grid-template-rows: subgrid;
			row-gap: 18px;
		}
		.planos .plano__acoes {
			align-self: start;
		}
	}
}
.plano {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: clamp(24px, 3vw, 32px);
}
.plano--destaque {
	border-color: var(--destaque-line);
	box-shadow: var(--glass-hi), var(--shadow), var(--glow-y);
}
.plano__topo {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
/* O selo fica sobre a borda de cima do cartão: não empurra o conteúdo, e o
   preço do Intermediário fica na mesma altura dos outros. */
.plano__selo {
	position: absolute;
	top: -13px;
	left: clamp(24px, 3vw, 32px);
	padding: 3px 12px;
	border: 1px solid var(--destaque-line);
	border-radius: var(--r-pill);
	background: linear-gradient(var(--destaque-soft), var(--destaque-soft)), #000;
	color: var(--amarelo);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.plano__nome {
	font-size: 1.6rem;
}
.plano__para {
	color: var(--ink-2);
	font-size: 15px;
}
.plano__preco {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 8px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--line);
}
.plano__moeda {
	color: var(--ink-2);
	font-size: 1.15rem;
	font-weight: 600;
}
.plano__valor {
	font-size: clamp(2.8rem, 4.4vw, 3.4rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1;
}
.plano__periodo {
	color: var(--ink-3);
	font-size: 14px;
}
/* O medidor do uso mensal: o que muda de um plano para o outro (D150).  A
   largura segue o limite de cada plano sobre o do Pro (8,8, 38,8 e 77,7 mi). */
.plano__uso {
	display: grid;
	gap: 10px;
}
.plano__uso-texto {
	color: #fff;
	font-size: 15px;
	font-weight: 600;
}
.plano__uso-barra {
	display: block;
	height: 8px;
	border-radius: var(--r-pill);
	background: rgb(255 255 255 / 0.08);
	overflow: hidden;
}
.plano__uso-nivel {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--verde), var(--amarelo));
}
.plano__uso-nivel--1 {
	width: 11%;
}
.plano__uso-nivel--2 {
	width: 50%;
}
.plano__uso-nivel--3 {
	width: 100%;
}
.plano__modulos {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.plano__modulos li {
	padding: 4px 12px;
	border: 1px solid var(--line-2);
	border-radius: var(--r-pill);
	background: rgb(255 255 255 / 0.04);
	color: var(--ink);
	font-size: 12.5px;
	font-weight: 600;
}
.plano__itens {
	display: grid;
	align-content: start;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14.5px;
	line-height: 1.45;
	color: var(--ink);
}
.plano__itens li {
	position: relative;
	padding-left: 26px;
}
.plano__itens li::before {
	content: '';
	position: absolute;
	left: 3px;
	top: 0.38em;
	width: 11px;
	height: 6px;
	border-left: 2px solid var(--verde);
	border-bottom: 2px solid var(--verde);
	transform: rotate(-45deg);
}
.plano__acoes {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 12px;
	margin-top: auto;
	padding-top: 8px;
}
.plano__secundario {
	align-self: center;
	color: var(--ink-2);
	font-size: 14px;
}
.planos__nota {
	max-width: 880px;
	margin: 28px auto 0;
	color: var(--ink-3);
	font-size: 14px;
	text-align: center;
}

/* ------------------------------------------- /planos: contrato e passos -- */
.contrato {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 18px 32px;
	margin-top: clamp(40px, 6vw, 64px);
	padding: clamp(22px, 3vw, 30px);
}
.contrato > div {
	flex: 1 1 420px;
	min-width: 0;
}
.contrato h2 {
	margin: 6px 0 8px;
	font-size: 1.5rem;
}
.contrato p:not(.kicker) {
	color: var(--ink-2);
}

.passos {
	margin-top: clamp(48px, 7vw, 80px);
}
.passos h2 {
	margin-bottom: 20px;
	font-size: clamp(1.4rem, 2.4vw, 1.8rem);
}
.passos__lista {
	display: grid;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 900px) {
	.passos__lista {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
.passos__lista li {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 20px 22px;
	color: var(--ink-2);
	font-size: 15px;
}
.passos__lista strong {
	color: #fff;
	font-weight: 600;
}
.passos__n {
	flex: none;
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--verde), var(--amarelo));
	color: var(--tinta-marca);
	font-weight: 600;
	font-size: 15px;
}

/* ------------------------------------------- /planos: perguntas frequentes -- */
.perguntas {
	margin-top: clamp(48px, 7vw, 80px);
}
.perguntas h2 {
	margin-bottom: 20px;
	font-size: clamp(1.4rem, 2.4vw, 1.8rem);
}
.perguntas__lista {
	display: grid;
	gap: 12px;
	max-width: 900px;
}
.perguntas details {
	border-radius: var(--r-md);
}
.perguntas summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 22px;
	border-radius: var(--r-md);
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}
.perguntas summary::-webkit-details-marker {
	display: none;
}
.perguntas summary::after {
	content: '';
	flex: none;
	width: 9px;
	height: 9px;
	border-right: 2px solid var(--verde);
	border-bottom: 2px solid var(--verde);
	transform: translateY(-2px) rotate(45deg);
	transition: transform 0.2s;
}
.perguntas details[open] summary::after {
	transform: translateY(2px) rotate(-135deg);
}
.perguntas summary:focus-visible {
	outline: 2px solid var(--verde);
	outline-offset: 2px;
}
.perguntas details p {
	padding: 0 22px 20px;
	color: var(--ink-2);
	font-size: 15px;
	line-height: 1.55;
}

/* ------------------------------------------------------------ /checkout -- */
.checkout {
	max-width: 760px;
	margin: 0 auto;
}
.checkout__cabeca h1 {
	margin: 12px 0 14px;
	font-size: clamp(2rem, 4.5vw, 3rem);
	letter-spacing: -0.035em;
}
.checkout__sub {
	margin-bottom: 28px;
	color: var(--ink-2);
	font-size: clamp(1rem, 1.5vw, 1.12rem);
}
.checkout__aviso {
	padding: 18px 22px;
	color: var(--ink-2);
	font-size: 15px;
}
.checkout__form {
	display: grid;
	gap: 26px;
	padding: clamp(22px, 4vw, 36px);
}
.checkout__form[hidden],
.checkout__fechado[hidden],
.checkout__aviso[hidden] {
	display: none;
}
.grupo {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}
.grupo__titulo {
	margin-bottom: 14px;
	padding: 0;
	font-size: 1.15rem;
	font-weight: 600;
}
.opcoes {
	display: grid;
	gap: 12px;
}
@media (min-width: 640px) {
	.opcoes {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
.opcao {
	position: relative;
	display: grid;
	gap: 4px;
	padding: 16px 16px 16px 46px;
	border: 1px solid var(--line-2);
	border-radius: var(--r-md);
	background: rgb(255 255 255 / 0.03);
	cursor: pointer;
	transition: border-color 0.2s, background 0.2s;
}
.opcao:hover {
	border-color: rgb(255 255 255 / 0.3);
}
.opcao input {
	position: absolute;
	left: 16px;
	top: 18px;
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--verde);
	cursor: pointer;
}
.opcao:has(input:checked) {
	border-color: var(--brand-line);
	background: var(--brand-soft);
}
.opcao:has(input:focus-visible) {
	outline: 2px solid var(--amarelo);
	outline-offset: 3px;
}
.grupo[aria-invalid='true'] .opcao {
	border-color: var(--erro-line);
}
.opcao__nome {
	font-weight: 600;
	color: #fff;
}
.opcao__preco {
	font-size: 1.25rem;
	font-weight: 600;
	letter-spacing: -0.02em;
}
.opcao__preco small {
	color: var(--ink-3);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0;
}
.campos {
	display: grid;
	gap: 16px;
}
.campos + .campos,
.campos + .campo {
	margin-top: 16px;
}
@media (min-width: 640px) {
	.campos--dois {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.campo--doc {
		max-width: calc(50% - 8px);
	}
}
.campo {
	display: grid;
	align-content: start;
	gap: 7px;
	min-width: 0;
}
.campo label {
	font-size: 14px;
	font-weight: 600;
	color: var(--ink);
}
.campo input {
	width: 100%;
	min-height: 48px;
	padding: 0 14px;
	border: 1px solid var(--line-2);
	border-radius: var(--r-sm);
	background: rgb(255 255 255 / 0.04);
	color: #fff;
	font: 400 16px/1.2 var(--font);
	transition: border-color 0.15s, background 0.15s;
}
.campo input:hover {
	border-color: rgb(255 255 255 / 0.3);
}
.campo input:focus {
	outline: none;
	border-color: var(--verde);
	background: rgb(255 255 255 / 0.06);
	box-shadow: 0 0 0 3px rgb(57 255 20 / 0.15);
}
.campo input[aria-invalid='true'] {
	border-color: var(--erro);
}
.campo__dica {
	color: var(--ink-3);
	font-size: 13px;
}
.campo__erro {
	color: var(--erro);
	font-size: 13.5px;
	font-weight: 600;
}
.campo__erro[hidden] {
	display: none;
}
.checkout__form > .campo__erro {
	margin-top: -18px;
}
.checkout__renovacao {
	padding: 14px 16px;
	border-left: 3px solid var(--brand-line);
	border-radius: 4px;
	background: rgb(255 255 255 / 0.03);
	color: var(--ink-2);
	font-size: 14px;
}
.checkout__envio {
	display: grid;
	gap: 12px;
}
.checkout__estado {
	min-height: 1.5em;
	color: var(--ink-2);
	font-size: 14.5px;
}
.checkout__estado.is-erro {
	color: var(--erro);
	font-weight: 600;
}
/* Verificação anti-robô (B26): o widget só aparece quando pede um clique
   (appearance interaction-only); o estado fica embaixo dele. */
.verificacao {
	display: grid;
	gap: 10px;
	justify-items: start;
}
.verificacao[hidden],
.verificacao__repetir[hidden] {
	display: none;
}
/* Nunca display: none no contêiner: o widget precisa dele visível para montar. */
.verificacao__widget {
	width: 100%;
}
.verificacao__estado {
	color: var(--ink-2);
	font-size: 14px;
}
.verificacao__estado:empty {
	display: none;
}
.verificacao__estado.is-erro {
	color: var(--erro);
	font-weight: 600;
}
.checkout__fechado {
	padding: clamp(22px, 4vw, 36px);
}
.checkout__fechado h2 {
	margin-bottom: 10px;
	font-size: 1.4rem;
}
.checkout__fechado p {
	color: var(--ink-2);
}
.checkout__fechado-acoes {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 20px;
}
.checkout__voltar {
	margin-top: 22px;
	text-align: center;
	font-size: 14px;
}

/* ------------------------------------------------------------ /obrigado -- */
.obrigado {
	max-width: 680px;
	margin: 0 auto;
	padding: clamp(28px, 5vw, 48px);
	text-align: center;
}
.obrigado__icone {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin: 0 auto 22px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--verde), var(--amarelo));
	color: var(--tinta-marca);
	box-shadow: var(--glow-btn);
}
.obrigado h1 {
	margin: 10px 0 16px;
	font-size: clamp(2rem, 4.5vw, 3rem);
	letter-spacing: -0.035em;
}
.obrigado__texto {
	max-width: 520px;
	margin: 0 auto;
	color: var(--ink);
	font-size: clamp(1.05rem, 1.6vw, 1.2rem);
	line-height: 1.5;
}
.obrigado__contato {
	margin-top: 22px;
	padding-top: 20px;
	border-top: 1px solid var(--line);
	color: var(--ink-2);
	font-size: 15px;
}
.obrigado__acoes {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 26px;
}
/* Cancelado e expirado: aviso, não festa. */
.obrigado--aviso .obrigado__icone {
	background: var(--destaque-soft);
	border: 1px solid var(--destaque-line);
	color: var(--amarelo);
	box-shadow: none;
}

/* ------------------------------------------------------- textos legais -- */
.legal {
	max-width: 760px;
	margin: 0 auto;
}
.legal h1 {
	margin: 12px 0 28px;
	font-size: clamp(2rem, 4.5vw, 3.2rem);
	letter-spacing: -0.035em;
}
.legal h2 {
	margin: 36px 0 12px;
	font-size: 1.4rem;
}
.legal h3 {
	margin: 26px 0 10px;
	font-size: 1.12rem;
}
.legal p,
.legal ul,
.legal ol {
	margin: 0 0 14px;
	color: var(--ink);
}
.legal .kicker {
	color: var(--ink-3);
}
.legal li + li {
	margin-top: 6px;
}
.legal table {
	width: 100%;
	margin: 0 0 18px;
	border-collapse: collapse;
	font-size: 14.5px;
}
.legal th,
.legal td {
	padding: 8px 10px;
	border-bottom: 1px solid var(--line);
	text-align: left;
	vertical-align: top;
}
.legal .legal__versao {
	margin: -16px 0 22px;
	color: var(--ink-3);
	font-size: 14px;
}
.legal .legal__estado {
	display: inline-block;
	margin-bottom: 22px;
	padding: 6px 16px;
	border: 1px solid var(--brand-line);
	border-radius: var(--r-pill);
	background: var(--brand-soft);
	color: var(--verde);
	font-weight: 600;
}

/* --------------------------------------------------------------- rodapé -- */
.rodape {
	margin-top: auto;
	padding: 40px var(--gutter) 28px;
	border-top: 1px solid var(--line);
	background: linear-gradient(0deg, rgb(0 0 0 / 0.6), rgb(0 0 0 / 0.15));
	-webkit-backdrop-filter: blur(20px);
	backdrop-filter: blur(20px);
}
.rodape__grade {
	max-width: var(--largura);
	margin: 0 auto;
	display: grid;
	gap: 28px;
}
@media (min-width: 768px) {
	.rodape__grade {
		grid-template-columns: 1.3fr 1fr 1fr;
	}
}
.rodape__marca img {
	display: block;
	width: auto;
	height: 42px;
	margin-bottom: 10px;
}
.rodape__marca p {
	color: var(--ink-2);
	font-size: 14px;
}
.rodape__marca .rodape__selo {
	margin-top: 4px;
	color: var(--ink-3);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.rodape__links {
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 14px;
}
.rodape__links a,
.rodape__contato a {
	color: var(--ink);
	text-decoration: none;
	overflow-wrap: anywhere;
}
.rodape__links a:hover,
.rodape__contato a:hover,
.rodape__links a[aria-current='page'] {
	color: var(--verde);
}
.rodape__rotulo {
	margin-bottom: 6px;
	color: var(--ink-3);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.rodape__contato a {
	font-size: 14px;
}
.rodape__legal {
	max-width: var(--largura);
	margin: 28px auto 0;
	padding-top: 18px;
	border-top: 1px solid var(--line);
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	color: var(--ink-3);
	font-size: 13px;
}

/* ------------------------------------------------------------- celular -- */
@media (max-width: 599px) {
	.topo {
		padding-top: 8px;
	}
	.topo__barra {
		padding: 6px 6px 6px 14px;
	}
	.topo__logo img {
		height: 30px;
	}
	.hero h1 {
		font-size: 2.05rem;
	}
	.btn {
		padding: 0 20px;
	}
	.btn--sm {
		padding: 0 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}
}
