
:root {
  --cor-marca: #13192b;
  --cor-marca-media: #24304f;
  --cor-texto: #1b1b1b;
  --cor-texto-suave: #4a4f5c;
  --cor-texto-claro: #d5d9e4;
  --cor-fundo: #ffffff;
  --cor-suave: #f4f5f8;
  --cor-borda: #e2e5ec;
  --largura-conteudo: 1040px;
  --largura-texto: 760px;
  --raio: 10px;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  font-family:
    system-ui,
    -apple-system,
    "Segoe UI",
    Roboto,
    Arial,
    sans-serif;
  line-height: 1.6;
  color: var(--cor-texto);
  background: var(--cor-fundo);
}

main {
  flex: 1;
}

a {
  color: var(--cor-marca);
  text-underline-offset: 3px;
}

a:focus-visible {
  outline: 3px solid var(--cor-marca-media);
  outline-offset: 2px;
}

h1,
h2,
h3 {
  line-height: 1.25;
  color: var(--cor-marca);
}

h2 {
  font-size: 1.6rem;
  margin: 0 0 16px;
}

h3 {
  font-size: 1.15rem;
  margin: 0 0 8px;
}

.container {
  max-width: var(--largura-conteudo);
  margin: 0 auto;
  padding: 0 16px;
}

.sem-quebra {
  white-space: nowrap;
}

.pular {
  position: absolute;
  left: 16px;
  top: -48px;
  padding: 8px 16px;
  background: var(--cor-marca);
  color: var(--cor-fundo);
  z-index: 10;
}

.pular:focus {
  top: 8px;
}

.cabecalho {
  border-bottom: 1px solid var(--cor-borda);
  padding: 6px 0;
  background: var(--cor-fundo);
}

.cabecalho .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  flex-wrap: wrap;
}

.cabecalho img {
  display: block;
  width: 98px;
  height: auto;
}

.cabecalho nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
}

.cabecalho nav a {
  font-weight: 600;
  text-decoration: none;
}

.cabecalho nav a:hover {
  text-decoration: underline;
}

.abertura {
  background: var(--cor-marca);
  color: var(--cor-fundo);
  padding: 72px 0;
}

.abertura h1 {
  color: var(--cor-fundo);
  font-size: clamp(2.2rem, 6vw, 3.2rem);
  margin: 0 0 16px;
}

.sobretitulo {
  margin: 0 0 8px;
  color: var(--cor-texto-claro);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-size: 0.85rem;
}

.chamada {
  max-width: 34em;
  font-size: 1.15rem;
  color: var(--cor-texto-claro);
  margin: 0 0 28px;
}

.botao {
  display: inline-block;
  padding: 12px 26px;
  border-radius: 999px;
  background: var(--cor-fundo);
  color: var(--cor-marca);
  font-weight: 700;
  text-decoration: none;
}

.botao:hover {
  text-decoration: underline;
}

.botao:focus-visible {
  outline-color: var(--cor-fundo);
  outline-offset: 4px;
}

.secao {
  padding: 64px 0;
}

.secao-suave {
  background: var(--cor-suave);
}

.cartoes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
}

.cartao {
  background: var(--cor-fundo);
  border: 1px solid var(--cor-borda);
  border-radius: var(--raio);
  padding: 24px;
}

.cartao p {
  margin: 0;
  color: var(--cor-texto-suave);
}

.duas-colunas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 48px;
  align-items: start;
}

.lista-marcada {
  padding-left: 20px;
}

.lista-marcada li {
  margin-bottom: 4px;
}

.parceiras {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.parceiras img {
  display: block;
  height: 80px;
  width: auto;
  padding: 16px 20px;
  background: var(--cor-fundo);
  border: 1px solid var(--cor-borda);
  border-radius: var(--raio);
  box-sizing: content-box;
}

.dados {
  list-style: none;
  padding: 0;
  margin: 0;
}

.dados li {
  margin-bottom: 20px;
}

.dados a,
.dados strong {
  font-size: 1.1rem;
  font-weight: 600;
}

.rotulo {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--cor-texto-suave);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.horarios {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
}

.horarios li {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--cor-borda);
}

.horarios li:last-child {
  border-bottom: none;
}

.texto {
  width: 100%;
  max-width: var(--largura-texto);
  padding-top: 48px;
  padding-bottom: 64px;
}

.texto h1 {
  font-size: clamp(1.9rem, 5vw, 2.4rem);
  margin: 0 0 8px;
}

.texto h1 + p {
  margin-top: 0;
  color: var(--cor-texto-suave);
}

.texto h2 {
  font-size: 1.3rem;
  margin: 36px 0 12px;
}

.texto li {
  margin-bottom: 6px;
}

.rodape {
  background: var(--cor-marca);
  color: var(--cor-texto-claro);
  padding: 36px 0;
  font-size: 0.9rem;
}

.rodape p {
  margin: 4px 0;
}

.rodape-nome {
  font-size: 1rem;
  font-weight: 700;
  color: var(--cor-fundo);
}

.rodape a {
  color: var(--cor-fundo);
}

.rodape a:focus-visible {
  outline-color: var(--cor-fundo);
}

@media (max-width: 600px) {
  .abertura {
    padding: 56px 0;
  }

  .secao {
    padding: 48px 0;
  }

  .cabecalho .container {
    justify-content: center;
  }
}
