/* =========================================================================
   Etéra Work — Section 1: Hero
   Figma: node 6321:426 (artboards 1366 e 360)
   ========================================================================= */

/* -------------------------------------------------------------------------
   Header / nav-bar
   Mobile: logo + botão de menu (106px de altura).
   A partir de 1366px: logo + links na horizontal.
   ------------------------------------------------------------------------- */

.site-header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 30;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: 100%;
  padding: 16px;
  transition: transform 0.3s ease,
  background-color 0.3s ease,
  padding 0.3s ease;
}

.site-header--hidden {
  transform: translateY(-100%);
}

.site-header--fixed {
  position: fixed;
  align-items: center;
  padding-top: 4px;
  padding-bottom: 4px;
  background-color: var(--brand-color-secondary);
}

.site-header__brand {
  display: flex;
  align-items: flex-start;
  transition: padding 0.3s ease;
}

.site-header__logo {
  width: 160px;
  height: 74px;
  transition: width 0.3s ease,
  height 0.3s ease;
}

.site-header--fixed .site-header__brand {
  align-items: center;
}

.site-header--fixed .site-header__logo {
  width: 120px;
  height: auto;
}

.site-header__toggle {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
}

/* O ic-menu do handoff é preto; a máscara permite pintá-lo de branco sem
   duplicar o arquivo. */
.site-header__toggle::before {
  content: "";
  width: 44px;
  height: 44px;
  background-color: var(--white);
  -webkit-mask: url("../../svg/ic-menu.svg") no-repeat center / 44px 44px;
  mask: url("../../svg/ic-menu.svg") no-repeat center / 44px 44px;
}

/* -------------------------------------------------------------------------
   Painel do menu no mobile
   ------------------------------------------------------------------------- */

.site-nav {
  position: fixed;
  inset: 0;
  z-index: 20;
  display: none;
  padding: 122px 16px 32px;
  background-color: var(--brand-color-primary);
  overflow-y: auto;
}

.site-nav[data-open="true"] {
  display: block;
}

.site-nav__list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  list-style: none;
}

.site-nav__sep {
  display: none;
}

@media (max-width: 1365px) {
  body.menu-open {
    overflow: hidden;
  }

  body.menu-open .site-header {
    position: fixed;
  }
}

.site-nav__link {
  display: block;
  padding-block: 16px;
  color: var(--white);
  font-family: var(--font-family-02);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-default);
  letter-spacing: var(--letter-spacing-default);
  text-transform: uppercase;
  white-space: nowrap;
}

.site-nav__sep {
  width: var(--border-width-default);
  height: 16px;
  background-color: var(--white);
}

/* -------------------------------------------------------------------------
   Hero
   ------------------------------------------------------------------------- */

.hero {
  position: relative;
  display: flex;
  flex-direction: column;
  background-color: var(--black);
  overflow: hidden;
}

/* -------------------------------------------------------------------------
   Imagem + vídeo
   ------------------------------------------------------------------------- */

.hero__media {
  position: relative;
  overflow: hidden;
}

.hero__media picture {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.hero__media picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Vídeo sobre a imagem de fallback */

.hero__video {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* -------------------------------------------------------------------------
   Vinheta radial
   ------------------------------------------------------------------------- */

.hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image: radial-gradient(
      ellipse 31.93% 24% at 52.96% 47.35%,
      rgb(0 0 0 / 80%),
      rgb(0 0 0 / 0)
  );
}

/* -------------------------------------------------------------------------
   Botão de expandir vídeo
   ------------------------------------------------------------------------- */

.hero__video-expand {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: auto;
  min-width: max-content;
  padding: 8px;
  border: 0;
  background-color: rgb(214 211 203 / 20%);
  color: var(--white);
  font-family: var(--font-family-01);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-light);
  line-height: var(--line-height-md);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  translate: -50% -50%;
  transition: background-color 300ms ease;
}

.hero__video-expand img {
  display: block;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  object-fit: contain;
  transition: transform 300ms ease;
}

.hero__video-expand span {
  display: block;
  margin-top: 0.25rem;
}

.hero__video-expand:hover {
  background-color: rgb(214 211 203 / 35%);
}

.hero__video-expand:hover img {
  transform: scale(1.15);
}

/* -------------------------------------------------------------------------
   Formulário
   O bloco tem o canto superior esquerdo chanfrado (~36,6°).
   ------------------------------------------------------------------------- */

.hero__form {
  position: relative;
  z-index: 4;
  margin-top: -95px;
  padding: 64px 16px 56px;
  background-color: var(--brand-color-primary);
  clip-path: polygon(
      50px 0,
      100% 0,
      100% 100%,
      0 100%,
      0 68px
  );
}

.hero-form__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.hero-form__title {
  color: var(--white);
  text-transform: uppercase;
}

.hero-form__fields {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.hero-form__group {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.hero-form__field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.hero-form__label {
  color: var(--white);
}

/* Padding descontado da borda: no Figma o traço de 1px é interno, então a
   caixa total fecha em 44px. */

.hero-form__input {
  width: 100%;
  padding: 11px 19px 9px;
  background-color: transparent;
  border: var(--border-width-default) solid var(--white);
  border-radius: var(--border-radius-none);
  color: var(--white);
  font-family: var(--font-family-01);
  font-weight: var(--font-weight-light);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-md);
  letter-spacing: var(--letter-spacing-sm);
}

.hero-form__input::placeholder {
  color: var(--gray-300);
  opacity: var(--opacity-level-default);
}

.hero-form__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 39px;
  padding-inline: 24px;
  background-color: var(--white);
  color: var(--brand-color-primary);
  text-transform: uppercase;
  transition: background-color 200ms ease;
}

.hero-form__submit:hover {
  background-color: var(--gray-200);
}

.hero-form__consent {
  display: flex;
  gap: 16px;
  align-items: center;
  color: var(--white);
}

.hero-form__checkbox {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  margin: 0;
  appearance: none;
  background-color: transparent;
  border: var(--border-width-default) solid var(--white);
  border-radius: var(--border-radius-none);
  cursor: pointer;
}

.hero-form__checkbox:checked {
  background-color: var(--white);
}

.hero-form__consent-link {
  font-weight: var(--font-weight-medium);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* =========================================================================
   LG — Notebook (min-width: 1366px)
   ========================================================================= */

@media (min-width: 1366px) {
  .site-header {
    gap: 32px;
    padding: 16px 64px;
  }

  .site-header--fixed {
    padding: 4px 64px;
  }

  .site-header__brand {
    align-items: center;
    padding-block: 16px;
  }

  .site-header--fixed .site-header__brand {
    padding-block: 0;
  }

  .site-header__toggle {
    display: none;
  }

  .site-nav {
    position: static;
    display: block;
    padding: 0;
    background-color: transparent;
    overflow: visible;
  }

  .site-nav__list {
    flex-direction: row;
    gap: 10px;
    align-items: center;
  }

  .site-nav__sep {
    display: block;
  }

  .hero__form {
    margin-top: -220px;
    padding: 64px 10px 56px;
    clip-path: polygon(
        127px 0,
        100% 0,
        100% 100%,
        0 100%,
        0 172px
    );
  }

  .hero-form__inner {
    flex-direction: row;
    gap: 32px;
    align-items: center;
    width: 1120px;
    margin-inline: auto;
  }

  .hero-form__title {
    flex-shrink: 0;
    width: 352px;
    font-family: var(--font-family-01);
    font-weight: var(--font-weight-light);
  }

  .hero-form__fields {
    display: grid;
    flex: 1 0 0;
    grid-template-columns:
      minmax(0, 1fr)
      minmax(0, 1fr)
      minmax(0, 1fr)
      auto;
    column-gap: 8px;
    row-gap: 16px;
    min-width: 0;
  }

  .hero-form__group {
    display: contents;
  }

  .hero-form__field {
    grid-row: 1;
  }

  .hero-form__submit {
    grid-row: 1;
    grid-column: 4;
    align-self: end;
    width: auto;
    height: 44px;
    font-family: var(--font-family-02);
    font-weight: var(--font-weight-regular);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-default);
    letter-spacing: var(--letter-spacing-md);
  }

  .hero-form__input::placeholder {
    color: var(--gray-400);
  }

  .hero-form__consent {
    grid-row: 2;
    grid-column: 1 / span 2;
    gap: 8px;
    color: var(--gray-400);
  }

  .hero-form__checkbox {
    border-color: var(--gray-400);
  }
}

/* =========================================================================
   XL — Desktop (min-width: 1920px)
   ========================================================================= */

@media (min-width: 1920px) {
  .hero-form__inner {
    width: 1440px;
  }
}

/* =========================================================================
   Modal do vídeo
   ========================================================================= */

.video-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background-color: rgb(0 0 0 / 90%);
}

.video-modal[hidden] {
  display: none;
}

.video-modal__video {
  display: block;
  width: 100%;
  max-width: 1200px;
  max-height: calc(100vh - 48px);
  object-fit: contain;
  background-color: var(--black);
}

.video-modal__close {
  position: absolute;
  top: 24px;
  right: 24px;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background-color: #ebebeb;
  color: #000;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

@media (max-width: 767.98px) {
  .video-modal {
    padding: 16px;
  }

  .video-modal__video {
    max-height: calc(100vh - 32px);
  }

  .video-modal__close {
    top: 16px;
    right: 16px;
  }
}