/* Checkout da reserva do LINCE. Escuro, sóbrio, com o vermelho da marca só nos pontos de ação. */
:root {
	--fundo: #0b0809;
	--cartao: #141011;
	--texto: #f7f3f0;
	--suave: rgba(247, 243, 240, .62);
	--linha: rgba(255, 255, 255, .1);
	--vermelho: #d7192d;
	--brilho: #ff3347;
	--mm-sb-trilho: #0b0809;
}
* { box-sizing: border-box; }
html, body { overflow-x: clip; }
body {
	margin: 0; min-height: 100svh; display: flex; flex-direction: column;
	background:
		radial-gradient(900px 600px at 85% -10%, rgba(215, 25, 45, .22), transparent 60%),
		radial-gradient(700px 500px at -10% 110%, rgba(143, 15, 29, .25), transparent 60%),
		var(--fundo);
	color: var(--texto); font: 400 16px/1.55 'Plus Jakarta Sans', system-ui, sans-serif;
}
img { display: block; max-width: 100%; height: auto; }

.topo {
	display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
	width: min(1120px, 100%); margin: 0 auto; padding: 22px 20px;
}
.marca { display: flex; align-items: center; gap: 10px; }
.marca img:first-child { width: 46px; }
.marca__nome { width: 132px; }
.passos { display: flex; gap: 18px; margin: 0; padding: 0; list-style: none; font-size: 13px; color: var(--suave); }
.passos li { display: flex; align-items: center; gap: 8px; }
.passos span {
	width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%;
	border: 1px solid var(--linha); font-size: 12px; font-weight: 700;
}
.passos .feito span { background: rgba(255, 255, 255, .12); color: var(--texto); }
.passos .atual { color: var(--texto); font-weight: 600; }
.passos .atual span { background: var(--vermelho); border-color: var(--vermelho); color: #fff; box-shadow: 0 0 0 4px rgba(215, 25, 45, .25); }
.seguro { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 13px; color: var(--suave); }

.grade {
	flex: 1; width: min(1120px, 100%); margin: 0 auto; padding: 12px 20px 40px;
	display: grid; grid-template-columns: 1.15fr .85fr; gap: 28px; align-items: start;
}
.painel, .resumo {
	border: 1px solid var(--linha); border-radius: 26px; background: linear-gradient(180deg, rgba(255, 255, 255, .035), transparent 40%), var(--cartao);
	padding: clamp(24px, 4vw, 40px); box-shadow: 0 40px 100px -40px rgba(0, 0, 0, .8);
}
.rotulo { margin: 0 0 10px; color: var(--brilho); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
h1 { margin: 0; font-size: clamp(30px, 5vw, 44px); line-height: 1.05; letter-spacing: -.02em; font-weight: 800; }
.sub { margin: 10px 0 0; color: var(--suave); }
.bloco { margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--linha); }
h2 { margin: 0 0 16px; font-size: 18px; font-weight: 700; }

.campo { display: block; margin-bottom: 14px; }
.campo span { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 600; color: var(--suave); }
.campo input {
	width: 100%; height: 54px; padding: 0 16px; border-radius: 14px; border: 1px solid var(--linha);
	background: rgba(255, 255, 255, .04); color: var(--texto); font: inherit; font-size: 16px; transition: border-color .2s, box-shadow .2s;
}
.campo input::placeholder { color: var(--suave); opacity: .7; }
.campo input:focus { outline: none; border-color: var(--brilho); box-shadow: 0 0 0 4px rgba(215, 25, 45, .25); }
.campo input[aria-invalid='true'] { border-color: #ff7685; }
.erro { min-height: 1.3em; margin: 0; color: #ff7685; font-size: 14px; font-weight: 600; }

.pagar p { margin: 0 0 16px; color: var(--suave); }
.aviso { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; color: var(--texto) !important; }
.botao {
	position: relative; overflow: hidden; width: 100%; height: 60px; display: flex; align-items: center; justify-content: center; gap: 10px;
	border: 0; border-radius: 999px; cursor: pointer; color: #fff; font: inherit; font-size: 16px; font-weight: 700;
	background: linear-gradient(135deg, var(--brilho), var(--vermelho) 55%, #8f0f1d);
	box-shadow: 0 20px 44px -18px var(--vermelho); transition: transform .25s, box-shadow .25s;
}
.botao::after {
	content: ''; position: absolute; inset: 0; transform: translateX(-120%);
	background: linear-gradient(100deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%); transition: transform .7s ease;
}
.botao:hover { transform: translateY(-2px); box-shadow: 0 26px 54px -18px var(--vermelho); }
.botao:hover::after { transform: translateX(120%); }
.botao:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

.resumo { position: sticky; top: 20px; }
.produto { display: flex; gap: 16px; align-items: center; padding-bottom: 20px; border-bottom: 1px solid var(--linha); }
.produto img { width: 76px; height: 88px; object-fit: cover; border-radius: 14px; }
.produto__nome { margin: 0; font-size: 19px; font-weight: 800; }
.produto__linha { margin: 4px 0 0; color: var(--suave); font-size: 13px; }
.itens { margin: 18px 0; }
.itens div { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; font-size: 14px; }
.itens dt { color: var(--suave); }
.itens dd { margin: 0; text-align: right; display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.conta { padding-top: 16px; border-top: 1px solid var(--linha); }
.conta p { display: flex; justify-content: space-between; margin: 0 0 8px; color: var(--suave); }
.conta .total { margin-top: 12px; color: var(--texto); font-size: 18px; font-weight: 700; align-items: baseline; }
.conta .total strong { font-size: 30px; color: var(--brilho); letter-spacing: -.02em; }
.contagem { margin-top: 22px; padding: 16px; border-radius: 18px; background: rgba(215, 25, 45, .1); border: 1px solid rgba(215, 25, 45, .3); }
.contagem__rotulo { margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--suave); }
.contagem__numeros { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; text-align: center; font-size: 11px; color: var(--suave); }
.contagem__numeros b { display: block; font-size: 26px; line-height: 1.1; color: var(--texto); font-variant-numeric: tabular-nums; }
.contagem.encerrada .contagem__numeros { display: none; }
.contagem [data-contagem-fim] { margin: 0; }

.rodape { width: min(1120px, 100%); margin: 0 auto; padding: 10px 20px 36px; color: var(--suave); font-size: 13px; }
.rodape p { margin: 6px 0 0; }
.voltar { color: var(--texto); text-decoration: none; border-bottom: 1px solid var(--linha); }
.voltar:hover { border-color: var(--brilho); }

@media (max-width: 860px) {
	.grade { grid-template-columns: 1fr; }
	.resumo { position: static; order: -1; }
	.passos { order: 3; width: 100%; justify-content: space-between; }
	.seguro { display: none; }
}
@media (max-width: 420px) {
	.passos { font-size: 12px; gap: 8px; }
}
