* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
/* Remove a margem e o preenchimento padrão de todos os elementos e define o modelo de box-sizing como border-box. */

:root {
  --primary: #ff0000;
}
/* Define a cor vermelha como uma variável CSS chamada --primary. */

body {
  position: relative;
  background-color: #000000;
  font-family: "Lexend", sans-serif;
  width: 100%;
  min-height: 100vh;
  overflow: hidden;
}
/* Define o corpo da página com posição relativa, cor de fundo preta, usa a fonte 'Roboto', ocupa 100% da largura e tem altura mínima de 100vh, com overflow oculto. */

header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 100px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.5);
  z-index: 20;
}
/* O cabeçalho está posicionado de forma absoluta no topo e à esquerda, ocupando 100% da largura, com um layout flexível, espaçamento interno de 20px nas laterais, borda inferior semitransparente e z-index 20. */

.logo img {
  max-width: 60px;
  max-height: 60px;
  filter: invert(1);
  transition: transform 0.5s ease;
}
/* Define a imagem do logotipo com largura e altura máximas de 60px, aplica um filtro de inversão de cores e uma transição suave de 0,5s para transformações. */

.logo:hover img {
  transform: rotate(540deg) scale(1.2);
  transition: transform 0.5s ease;
}
/* Ao passar o mouse sobre a logo, ela gira 540 graus e aumenta 1.2x de tamanho, com uma transição suave de 0,5s. */

.nav {
  display: flex;
  width: 100%;
  gap: 20px;
  justify-content: space-around;
}
/* A navegação usa um layout flexível, ocupando 100% da largura, com os itens distribuídos de maneira uniforme. */

.nav li {
  text-align: center;
  list-style-type: none;
}
/* Remove os marcadores das listas de navegação. */

.nav li a {
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;
  font-weight: 300;
  letter-spacing: 1px;
  cursor: pointer;
}
/* Os links na navegação são brancos, sem sublinhado, com texto em maiúsculas, peso de fonte leve (300), espaçamento entre letras de 1px, e um cursor de ponteiro. */

.nav li:hover a {
  color: var(--primary);
}
/* Ao passar o mouse sobre os links de navegação, a cor muda para a cor primária definida (--primary). */

.search {
  position: relative;
  width: 130px;
  height: 40px;
  transition: 0.5s;
}

.search img {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 20px;
  height: 20px;
}
/* A barra de busca tem uma largura inicial de 130px, altura de 40px, e uma transição de 0,5s. */

.search:hover {
  width: 300px;
}
/* Quando o usuário passa o mouse sobre a barra de busca, ela se expande para 300px de largura. */

.search input {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  color: #ffffff;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.5);
  outline: none;
  border-radius: 4px;
  padding: 0 10px 0 35px;
}
/* O campo de texto da busca é posicionado absolutamente dentro do contêiner, ocupa 100% da largura e altura, tem texto branco, fundo transparente, borda semitransparente, bordas arredondadas e espaçamento interno. */

.search input::placeholder {
  color: #ffffff;
  text-transform: uppercase;
  transform: translateX(5px);
  font-weight: 300;
}
/* O placeholder do campo de busca é branco, em maiúsculas, com espaçamento à esquerda e peso de fonte leve. */
.search-login-container {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 20px;
}

.login-container button {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  background-color: var(--primary);
  color: #ffffff;
  border: none;
  height: 40px;
  padding: 10px 20px;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.login-container button img {
  width: 20px;
  height: 20px;
}

#hamburger-menu {
  display: none;
}

.hamburger-menu-open {
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: flex-end;
  position: absolute;
  top: 105px;
  right: 0;
  transition: transform 0.3s ease-in-out;
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
}
.hamburger-menu-nav {
  width: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  background-color: rgba(0, 0, 0, 0.5);
}

.hamburger-menu-list {
  list-style-type: none;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.hamburger-menu-nav ul {
  list-style-type: none;
  padding: 0;
}

.hamburger-menu-nav ul li {
  display: flex;
  justify-content: center;
}

.hamburger-menu-nav ul li a {
  color: #fff;
  text-decoration: none;
  text-align: center;
  text-transform: uppercase;
  font-weight: 300;
  letter-spacing: 1px;
  cursor: pointer;
}

.hamburger-login-container button {
  display: block;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  justify-content: center;
  width: 100%;
  padding: 5px 20px;
  background-color: var(--primary);
  color: #fff;
  text-decoration: none;
  border: none;
  border-radius: 4px;
  text-transform: uppercase;
  font-weight: 300;
  letter-spacing: 1px;
  cursor: pointer;
}

.hamburger-login-container button img {
  width: 20px;
  height: 20px;
}

.hamburger-menu-open:not(.hidden) {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.swiper {
  width: 100%;
  height: 100vh;
}
/* O swiper (carrossel) ocupa 100% da largura e altura total da tela. */

.swiper .swiper-wrapper {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}
/* O contêiner dos slides no swiper tem largura e altura totais, sem margens ou preenchimentos. */

.swiper .swiper-wrapper .swiper-slide {
  width: 100%;
  height: 100%;
}
/* Cada slide no swiper ocupa toda a largura e altura disponíveis. */

.swiper .swiper-wrapper .swiper-slide::before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
}
/* Adiciona uma camada semitransparente preta sobre cada slide. */

.swiper .swiper-wrapper .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* As imagens dentro dos slides são ajustadas para cobrir toda a área e são centralizadas. */

.swiper .swiper-wrapper .swiper-slide .banner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  min-height: 100vh;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: space-around;
}
/* O banner dentro dos slides ocupa 100% da largura, tem altura mínima de 100vh, usa layout flexível para centralizar seu conteúdo horizontal e verticalmente. */

.swiper .swiper-wrapper .swiper-slide .banner img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: translateX(-50%);
  z-index: 1;
  left: 50%;
}
/* As imagens dentro do banner são centralizadas horizontalmente e têm largura máxima de 700px. */

.swiper .swiper-button-prev {
  position: absolute;
  width: 60px;
  height: 60px;
  top: 50%;
  left: 5%;
  z-index: 100;
}
/* O botão anterior do swiper está posicionado com largura e altura de 60px, no centro vertical e com fundo vermelho. */

.swiper .swiper-button-next {
  position: absolute;
  right: 5%;
  top: 50%;
  width: 60px;
  height: 60px;
  z-index: 100;
}
/* O botão próximo do swiper está posicionado com largura e altura de 60px, no centro vertical e com fundo azul. */

.swiper .swiper-button-next::after,
.swiper .swiper-button-prev::after {
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.5);
  width: 60px;
  height: 60px;
  line-height: 0;
  background: transparent;
  border-radius: 50%;
}
/* Os ícones dentro dos botões anterior e próximo estão centralizados, com cor semitransparente, largura e altura de 60px, e bordas arredondadas. */

.right {
  max-height: 70vh;
}
/* Define a altura máxima de 70% da viewport para os elementos com a classe 'right'. */
.banner {
  position: relative;
}

.banner img {
  max-width: 790px;
  max-height: 790px;
  width: 50%;
  height: 50%;
}
/* As imagens no banner têm largura e altura máximas de 790px e ocupam 50% do contêiner. */

.swiper .swiper-wrapper .swiper-slide .banner .left {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  z-index: 100;
}
/* O conteúdo à esquerda do banner é exibido em uma coluna flexível, espaçado uniformemente. */

.banner .left .features {
  max-width: 400px;
  margin-bottom: 100px;
}
/* A seção de recursos à esquerda tem largura máxima de 400px e uma margem inferior de 100px. */

.banner .left .features .rating {
  color: #ffffff;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 25px;
}
/* A seção de avaliação à esquerda tem texto branco, usa layout flexível para alinhar horizontalmente o conteúdo e tem uma margem inferior de 25px. */

.banner .left .features .rating .score {
  padding: 15px;
  font-size: 2rem;
  font-weight: 400;
  color: var(--primary);
  background: #ffffff;
}
/* A nota de avaliação (score) tem padding de 15px, fonte grande (2rem), cor vermelha e fundo branco. */

.banner .left .features .content {
  margin-left: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
/* O conteúdo de recursos tem uma margem à esquerda de 20px e é exibido em uma coluna flexível. */

.banner .left .features .pricing {
  color: #ffffff;
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
}
/* A seção de preços é exibida com texto branco e layout flexível para alinhamento horizontal. */

.banner .left .features .content a {
  color: #ffffff;
  font-size: 1.5em;
  font-weight: 400;
  letter-spacing: 2px;
  text-decoration: none;
  display: flex;
  align-items: center;
  text-transform: uppercase;
}
/* O título 'h4' dentro do conteúdo tem cor branca, tamanho de fonte 1.5em, peso de fonte 400, espaçamento entre letras de 2px e é exibido em maiúsculas. */

.banner .left .features .content span {
  font-size: 0.7em;
  text-transform: uppercase;
  font-weight: 400;
  margin-bottom: 10px;
}
/* O texto adicional no conteúdo tem tamanho de fonte 0.7em, é exibido em maiúsculas e tem peso de fonte 400. */

.banner .left .features .content .subtitle {
  color: var(--primary);
}
/* O subtítulo dentro do conteúdo de recursos tem a cor definida pela variável --primary (vermelha). */

.banner h1 {
  color: #ffffff;
  font-size: 5em;
  letter-spacing: 5px;
  line-height: 0.9;
  z-index: 10;
  text-transform: uppercase;
}
/* O título 'h1' do banner tem cor branca, fonte grande (5em), espaçamento entre letras de 5px, altura da linha 0.9, z-index 10 e é exibido em maiúsculas. */

.swiper .swiper-wrapper .swiper-slide .banner .right {
  position: relative;
  height: 100vh;
  max-width: 450px;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: flex-end;
  z-index: 100;
}
/* A seção à direita no banner é posicionada de forma relativa, ocupa 100vh de altura, tem largura máxima de 450px, layout em coluna e alinhamento à direita. */

.banner .right .description {
  padding: 30px 60px 0 0;
  color: #ffffff;
}
/* A descrição à direita tem padding no topo e na direita e cor branca. */

.banner .right .description li {
  list-style: none;
}
/* Remove o estilo de lista dos itens de descrição à direita. */

.banner .right .description h4 {
  display: inline-block;
  font-size: 1.3em;
  text-transform: uppercase;
  font-weight: 400;
  letter-spacing: 1px;
  display: flex;
  align-items: center;
}
/* O título 'h4' da descrição à direita tem tamanho de fonte 1.3em, maiúsculas, peso 400, espaçamento entre letras de 1px, e é exibido como bloco inline. */

.banner .right .description p {
  margin: 5px 0 25px 30px;
  font-weight: 300;
}
/* Os parágrafos na descrição têm margem superior de 5px e margem inferior de 25px, com peso de fonte leve (300). */

.banner .right h2 {
  color: #ffffff;
  font-size: 3.5em;
  line-height: 1em;
  font-weight: 400;
  text-align: right;
  margin-bottom: 20px;
  text-transform: uppercase;
}
/* O título 'h2' à direita tem cor branca, fonte grande (3.5em), linha de altura 1em, peso de fonte 400, alinhamento à direita e margem inferior de 20px, e é exibido em maiúsculas. */

.banner .right iframe {
  max-width: 450px;
  max-height: 250px;
}

#details-button {
  display: none;
  position: absolute;
  top: 120px;
  right: 50px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  background-color: transparent;
  border: none;
  z-index: 999;
}

.details-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.8);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 999;
}

.details-modal-inner-container {
  width: 80%;
  max-width: 500px;
  padding: 15px;
  background-color: #ffffff;
  border-radius: 5px;
  z-index: 999;
  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
}

.details-modal ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

.details-modal li {
  margin-bottom: 1rem;
}

.details-modal h4 {
  margin: 0;
  font-size: 1.2rem;
  color: #333;
}

.details-modal span {
  display: block;
  font-size: 1rem;
  color: #555;
  margin-top: 0.25rem;
}

/* Estilizando a seção do trailer */
.details-modal .trailer {
  margin-top: 2rem;
  text-align: center;
}

.details-modal .trailer h2 {
  font-size: 1.5rem;
  margin-bottom: 1rem;
  color: #111;
}

/* Contêiner responsivo para o iframe */
.responsive-iframe-container {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* Aspect ratio 16:9 */
  overflow: hidden;
}

.responsive-iframe-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.hidden {
  display: none;
}

/* O iframe à direita do banner tem largura máxima de 450px e altura máxima de 250px. */
@media (max-width: 1024px) {
  header {
    padding: 20px 60px;
  }

  .banner h1 {
    display: none;
  }

  .banner .right h2 {
    display: none;
  }

  .banner .right .description {
    display: none;
  }

  #details-button {
    display: block;
  }

  .banner .left .features {
    margin-bottom: 0;
  }

  .swiper .swiper-wrapper .swiper-slide .banner .left {
    height: 100vh;
    max-height: 70vh;
    position: relative;
    justify-content: flex-end;
    margin-bottom: 0;
  }

  .swiper .swiper-wrapper .swiper-slide .banner .right {
    justify-content: flex-end;
  }
}

@media (max-width: 768px) {
  header {
    width: 100%;
    padding: 20px;
  }

  .login-container {
    display: none;
  }

  .nav {
    display: none;
  }

  .search {
    width: 260px;
    margin-left: 15px;
    margin-right: 15px;
  }

  #hamburger-menu {
    display: block;
    background-color: transparent;
    border: none;
  }

  #hamburger-menu img {
    width: 40px;
    height: 40px;
  }

  #details-button { 
    right: 20px;
  }

  .swiper .swiper-wrapper .swiper-slide .banner .right {
    display: none;
  }

  .swiper .swiper-wrapper .swiper-slide .banner .left {
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: flex-end;
    position: absolute;
    bottom: 0;
    padding: 20px;
    z-index: 100;
    background-color: rgba(0, 0, 0, 0.5);
    justify-content: center;
  }

  .banner .left .features {
    width: 100%;
    margin-bottom: 0;
    display: flex;
    justify-content: space-between;
    gap: 10px;
  }

  .banner .left .features .rating {
    margin-bottom: 0;
  }

  .banner .left .features .content {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-left: 0;
  }

  .banner .left .features .content span {
    margin-bottom: 0;
  }
}

@media (max-width: 425px) {
  .search {
    width: 150px;
  }
}
