/* Página inicial */

/* Hero dividido: texto sobre névoa à esquerda, foto à direita (molde da referência "eva") */
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  /* com a página no topo, o hero termina exatamente na borda de baixo da tela.
     --acima = altura real da faixa + topo, medida em js/ui.js (110px é só o palpite até o JS rodar) */
  height: calc(100svh - var(--acima, 110px));
  min-height: 440px; /* tela muito baixa: deixa o hero crescer em vez de cortar o texto */
  background: var(--nevoa);
}

.hero__texto {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 28px;
  padding: clamp(48px, 7vw, 96px) var(--gutter) clamp(48px, 7vw, 96px) max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter)));
}

.hero__titulo {
  max-width: 11ch;
  font-size: clamp(2.8rem, 6.2vw, 5.8rem);
  line-height: 0.98;
  color: var(--ameixa);
}

.hero__frete {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--ameixa);
}

.hero__sub {
  max-width: 42ch;
  font-size: 1.05rem;
  color: var(--tinta-2);
}

.hero__acoes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 32px;
  margin-top: 8px;
}

.hero__foto {
  position: relative;
  overflow: hidden;
}

.hero__foto img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 22%;
}

/* notebook baixo: menos respiro para o texto caber na altura exata */
@media (min-width: 861px) and (max-height: 760px) {
  .hero__texto {
    gap: 18px;
    padding-block: 28px;
  }
  .hero__titulo {
    font-size: clamp(2.4rem, 5vw, 4.4rem);
  }
}

@media (max-width: 860px) {
  .hero {
    grid-template-columns: 1fr;
    height: auto;
    min-height: 0;
  }
  .hero__foto {
    order: -1;
    aspect-ratio: 4 / 5;
  }
  .hero__texto {
    padding: 40px var(--gutter) 56px;
  }
}

/* Categorias */
.categorias {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(12px, 1.6vw, 24px);
}

.categoria__foto {
  display: block;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--blush);
}

.categoria__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform var(--medio) var(--curva);
}

.categoria:hover img {
  transform: scale(1.03);
}

.categoria__nome {
  display: block;
  padding-top: 12px;
  font: 400 1.25rem/1.2 var(--serif);
  color: var(--ameixa);
}

.categoria:hover .categoria__nome {
  text-decoration: underline;
  text-underline-offset: 5px;
  text-decoration-thickness: 1px;
}

@media (max-width: 860px) {
  .categorias {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: 62%;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    margin-inline: calc(var(--gutter) * -1);
    padding-inline: var(--gutter);
    scroll-padding-inline: var(--gutter);
    padding-bottom: 8px;
  }
  .categoria {
    scroll-snap-align: start;
  }
}

/* Manifesto: foto à esquerda, texto à direita */
.manifesto {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  background: var(--nevoa);
}

.manifesto__foto {
  min-height: 520px;
  position: relative;
}

.manifesto__foto img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.manifesto__texto {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 22px;
  max-width: 600px;
  padding: clamp(56px, 8vw, 112px) var(--gutter);
}

.manifesto__texto h2 {
  font-size: clamp(2.2rem, 4.4vw, 3.6rem);
  color: var(--ameixa);
}

.manifesto__texto p:not(.sobrelinha) {
  max-width: 46ch;
  color: var(--tinta-2);
}

@media (max-width: 860px) {
  .manifesto {
    grid-template-columns: 1fr;
  }
  .manifesto__foto {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }
}

/* Faixa da coleção: bloco de texto + quatro fotos */
.colecao {
  display: grid;
  grid-template-columns: minmax(220px, 1.15fr) minmax(0, 4fr);
  gap: clamp(8px, 1vw, 14px);
  max-width: var(--max);
  margin-inline: auto;
  padding: 0 var(--gutter) clamp(56px, 9vw, 120px);
}

.colecao__texto {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  gap: 32px;
  padding: clamp(24px, 3vw, 40px);
  background: var(--blush);
}

.colecao__texto h2 {
  margin-top: 0.4em;
  font-size: clamp(2rem, 3.4vw, 2.8rem);
  color: var(--ameixa);
}

.colecao__fotos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(8px, 1vw, 14px);
}

.colecao__foto {
  position: relative;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--blush);
}

.colecao__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform var(--medio) var(--curva);
}

.colecao__foto span {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 40px 14px 12px;
  background: linear-gradient(transparent, rgb(42 26 32 / 0.55));
  color: var(--papel);
  font-size: 0.82rem;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity var(--medio) var(--curva), transform var(--medio) var(--curva);
}

.colecao__foto:hover img {
  transform: scale(1.03);
}

.colecao__foto:hover span,
.colecao__foto:focus-visible span {
  opacity: 1;
  transform: none;
}

@media (max-width: 860px) {
  .colecao {
    grid-template-columns: 1fr;
  }
  .colecao__fotos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .colecao__foto span {
    opacity: 1;
    transform: none;
  }
}

/* Como comprar */
.como-comprar {
  padding-block: clamp(56px, 8vw, 104px);
  background: var(--blush);
}

.passos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 64px);
  padding: 0;
  list-style: none;
}

.passos li {
  padding-top: 22px;
  border-top: 1px solid var(--rose);
}

/* passo de verdade (é uma sequência), então numerar é informação, não enfeite */
.passos__num {
  display: block;
  margin-bottom: 12px;
  font: 400 2.2rem/1 var(--serif);
  color: var(--ameixa);
}

.passos h3 {
  margin-bottom: 10px;
  font-size: 1.5rem;
  color: var(--ameixa);
}

.passos p {
  max-width: 34ch;
  color: var(--tinta-2);
}

@media (max-width: 760px) {
  .passos {
    grid-template-columns: 1fr;
  }
}
