/* ============================================================
                            RESET
============================================================ */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  overflow-y: scroll;
  overflow-x: hidden;
  background-color: black;
  width: 100%;
}

a {
  color: #ffffff;
  text-decoration: none;
}

/* ============================================================
                            FONTS
============================================================ */

@font-face {
  font-family: 'FuturalHeavy';
  src: url('fonts/bbb-herthey-futural-95.woff') format('woff');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'FuturalRegular';
  src: url('fonts/bbb-herthey-futural-40.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'FuturalThin';
  src: url('fonts/bbb-herthey-futural-15.woff') format('woff');
  font-weight: thin;
  font-style: normal;
}

@font-face {
  font-family: 'Baskervvol';
  src: url('fonts/bbbbaskervvol-regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'BaskervvolItalic';
  src: url('fonts/bbbbaskervvol-italic.woff') format('woff');
  font-weight: normal;
  font-style: italic;
}

/* ============================================================
                            NAV BAR
============================================================ */

.menu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
  border-bottom: 1px solid #ffffff;
}

.menu a {
  font-family: 'FuturalHeavy';
  color: #ffffff;
  font-size: clamp(14px, 2.8vw, 18px);
}

/* ============================================================
                            BODY
============================================================ */

h2 {
  font-family: 'FuturalHeavy';
  color: #ffffff;
  font-size: clamp(42px, 10vh, 52px);
}

h3 {
  font-family: 'BaskervvolItalic'; 
  color: #ffffff;
  font-size: clamp(16px, 3vh, 36px);
}

h4 {
  font-family: 'BaskervvolItalic'; 
  color: #ffffff;
  font-size: clamp(12px, 2vh, 18px);
}

p {
  font-family: 'Baskervvol';
  color: #ffffff;
  font-size: clamp(12px, 2vh, 18px);
  width: 50vw;
}

/* ============================================================
                            GRILLE
============================================================ */

.grille {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  width: 100%;
}

.grille a {
  transition: background-color 0.3s ease, color 0.3s ease;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: left;
  text-align: left;
  text-decoration: none;
  padding: 4rem;
  height: 48vh;
  width: 50vw;
  border-right: 1px solid #ffffff;
  border-bottom: 1px solid #ffffff;
}

.grille a:nth-child(2n) {
  border-right: none;
}

.grille a:nth-child(3),
.grille a:nth-child(4) {
  border-bottom: none;
}

.grille a:hover {
  background-color: #ffffff;
}

.grille a:hover h2,
.grille a:hover h3,
.grille a:hover h4,
.grille a:hover p,
.grille a:hover strong {
  color: #000000;
}

.grille a h3 strong {
  font-family: 'FuturalHeavy';
  font-style: normal;
}

/* ============================================================
                          PROMOTIONS
============================================================ */

.promotions {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem;
}

.container {
  display: flex;
  flex-direction: column;
  height: 100vh;
}

.promotions {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem;
}

.annees {
  display: flex;
  flex-wrap: wrap;
  column-gap: 4rem;
  margin-top: 6vh;
}

.annee {
  font-family: 'FuturalHeavy';
  color: #ffffff;
  font-size: clamp(48px, 9vw, 110px);
  text-decoration: none;
  display: inline-block;
  transition: transform 0.3s ease;
}

.annee:hover {
  transform: rotate(-8deg);
}

.annee:nth-child(even):hover {
  transform: rotate(8deg);
}

/* ============================================================
                            POP-UP
============================================================ */

.popup-box {
  display: none;
  padding: clamp(2rem, 3vw, 4rem);
  overflow: hidden;
  position: fixed;
  z-index: 999;
  box-sizing: border-box;
}

.popup-box.is-open {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.popup-box {
  width: auto;
  max-width: 90vw;
  height: auto;
  max-height: 70vh;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.popup-close {
  position: absolute;
  top: 12px;
  right: 16px;
  font-family: 'FuturalHeavy', sans-serif;
  text-decoration: none;
  font-size: clamp(10px, 1.8vw, 16px);
}

.popup-close img {
  width: 20px;
  height: 20px;
  display: block;
}

.popup-content {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.5vh;
  --img-height: clamp(120px, 38vh, 320px);
  --img-width: calc(var(--img-height) * 5 / 7);
}

.popup-title {
  font-size: clamp(20px, 3.5vh, 32px);
  margin: 0;
  flex-shrink: 0;
}

.popup-gallery {
  display: flex;
  gap: 1vw;
  flex: 1;
  min-height: 0;
  align-items: flex-start;
}

.popup-image {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.6vh;
  text-decoration: none;
  transition: transform 0.4s ease;
  width: var(--img-width);
}

.popup-image img {
  display: block;
  height: var(--img-height);
  width: var(--img-width);
  aspect-ratio: 5 / 7;
  object-fit: cover;
  border: 1px solid black;
}

.popup-image:hover {
  transform: scale(1.05) rotate(-2deg);
  z-index: 2;
}

.popup-image:nth-child(even):hover {
  transform: scale(1.05) rotate(2deg);
}

.popup-image-title {
  display: block;
  text-align: left;
  font-size: clamp(12px, 1.4vh, 16px);
  width: var(--img-width);
  line-height: 1.8;
}

.popup-liste-title {
  display: block;
  text-align: left;
  width: 40vw;
  line-height: 1.8;
  font-size: clamp(12px, 1.4vh, 16px);
}

.popup-liste {
  display: flex;
  flex-direction: column;
  gap: 1.2vh;
  width: 46vw;
}

/* ============================================================
                        STYLE POP-UP
============================================================ */
.popup-box {
  background: #ffffff;
  border: 2px solid #000000;
}

.popup-box .popup-title {
  font-family: 'FuturalHeavy';
  color: #000000;
}

.popup-box .popup-image-title {
  font-family: 'FuturalHeavy';
  color: #000000;
}

.popup-box .popup-liste-title {
  font-family: 'FuturalHeavy';
  color: #000000;
}

/* ============================================================
                        RESPONSIVE
============================================================ */

 @media (max-width: 768px) {

  .promotions {
    padding: 2rem;
    width: 92%;
    margin: 0 auto;
  }

  .promotions p {
    max-width: 100%;
    margin: 1rem 0 2rem;
  }

  .annees {
    gap: 1rem;
  }

  .annee {
    font-size: clamp(36px, 15vw, 72px);
  }

  .grille {
    grid-template-columns: 1fr;
  }

  .grille a {
    width: 100vw;
    height: calc((100vh - 50px) / 4);
    padding: 1.2rem 1.5rem;
    border-right: none;
    border-bottom: 1px solid #ffffff;
  }

  .grille a:nth-child(2n) {
    border-right: none;
  }

  .grille a:nth-child(3) {
    border-bottom: 1px solid #ffffff;
  }

  .grille a:nth-child(4) {
    border-bottom: none;
  }

  .grille a h2 {
    font-size: clamp(18px, 6vw, 28px);
  }

  .grille a h3 {
    font-size: clamp(12px, 3.5vw, 16px);
  }

  .grille a h4,
  .grille a p {
    font-size: clamp(9px, 2.8vw, 13px);
  }

  .popup-box {
    width: 92vw;
    height: 75vh;
    top: 12vh;
    left: 4vw;
    transform: none;
    overflow-y: auto;
  }

  .popup-gallery {
    flex-direction: column;
    align-items: center;
    gap: 2vh;
    overflow-y: auto;
  }

  .popup-content {
    --img-height: 38vh;
  }

  .popup-image {
    width: var(--img-width);
    height: auto;
  }

  .popup-image img {
    width: var(--img-width);
    height: auto;
    aspect-ratio: 5 / 7;
  }

  .popup-image-title {
    width: var(--img-width);
    font-size: clamp(9px, 2.5vw, 12px);
  }

  .popup-liste {
    width: 100%;
    align-items: center;
  }

  .popup-liste-title {
    width: 80vw;
    font-size: clamp(9px, 2.5vw, 12px);
  }
}