/* Fonts */
@font-face {
  font-family: "TT Norms Pro";
  src: url("../fonts/TTNormsPro-XBd.ttf") format("truetype");
  font-weight: 800;
}
@font-face {
  font-family: "TT Norms Pro";
  src: url("../fonts/TTNormsPro-Bd.ttf") format("truetype");
  font-weight: 700;
}
@font-face {
  font-family: "TT Norms Pro";
  src: url("../fonts/TTNormsPro-Normal.ttf") format("truetype");
  font-weight: 450;
}
@font-face {
  font-family: "TT Norms Pro";
  src: url("../fonts/TTNormsPro-Rg.ttf") format("truetype");
  font-weight: 400;
}

@font-face {
  font-family: "Norms";
  src: url("../fonts/norms-regular.otf") format("opentype");
  font-weight: 400;
}

/* Reset */
* {
  min-width: 0;
  font: inherit;
}

*,
*:before,
*::after {
  box-sizing: border-box;
}

img,
video,
svg {
  display: block;
  height: auto;
  max-width: 100%;
}

body {
  display: flex;
  flex-direction: column;
  margin: 0;
  min-height: 100dvh;
}

/* Header */
header {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  padding: 15px 1rem 27.69px 25px;

  background-color: #000000;
}

header > #header-logo > a > img {
  width: 174px;
}

header > #header-return-home {
  align-content: center;
}

header > #header-icons {
  display: flex;
  gap: 1rem;
  padding-top: 9px;
}

header > #header-icons > a:nth-child(1) > img {
  width: 31px;
}

header > #header-icons > a:nth-child(2) > img {
  width: 25px;
  height: 24px;
}

/* Homepage */
#homepage {
  padding-top: 43px;
}

#homepage > #homepage-welcome {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-bottom: 86px;
}

#homepage > #homepage-welcome > img {
  margin-bottom: 23px;
}

#homepage > #homepage-welcome > h1 {
  font-family: "TT Norms Pro";
  font-weight: 800;
  font-size: 65px;
  line-height: 62px;
  color: #000000;
  margin: 0 0 8px 0;
}

#homepage > #homepage-welcome > h2 {
  font-family: "TT Norms Pro";
  font-weight: 450;
  font-size: 35px;
  line-height: 40px;
  color: #000000;
  margin: 0;
}

#homepage > #homepage-list {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 54px 150px 86px;
}

#homepage > #homepage-list > article > a {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 45px;
  text-decoration: none;
}

#homepage > #homepage-list > article > a > span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 57px;
  height: 57px;
  background-color: #000000;
  border-radius: 100%;

  font-family: "TT Norms Pro";
  font-weight: 700;
  font-size: 35px;
  line-height: 35px;
  color: #000000;
  text-shadow: -1px 0 #55ffff, 0 1px #55ffff, 1px 0 #55ffff, 0 -1px #55ffff;
}

#homepage > #homepage-list > article > a > h3 {
  font-family: "TT Norms Pro";
  font-weight: 400;
  font-size: 28px;
  line-height: 30px;
  color: #000000;
  margin: 0;
  padding: 10px 16px;
  border-radius: 90px;
}

#homepage > #homepage-list > article > a > img {
  position: absolute;
  top: -30px;
  opacity: 0;
  transition: opacity 0.2s;
}

#homepage > #homepage-list > article:nth-of-type(1) > a > img {
  left: 60%;
}

#homepage > #homepage-list > article:nth-of-type(2) > a > img {
  left: 55%;
}

#homepage > #homepage-list > article:nth-of-type(3) > a > img {
  left: 60%;
}

#homepage > #homepage-list > article:nth-of-type(4) > a > img {
  left: 55%;
}

#homepage > #homepage-list > article:nth-of-type(5) > a > img {
  left: 55%;
}

#homepage > #homepage-list > article:nth-of-type(6) > a > img {
  left: 60%;
}

#homepage > #homepage-list > article:hover > a > h3 {
  background-color: #f5d44f;
}

#homepage > #homepage-list > article:hover > a > img {
  opacity: 1;
  animation: bounce 0.4s ease;
}

@keyframes bounce {
  0%,
  50%,
  100% {
    transform: translateY(0);
  }

  25%,
  75% {
    transform: translateY(-2px);
  }
}

#homepage > #homepage-list > #homepage-list-helper {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 25px;
  width: calc(100% - 100px);
  border: 1px dashed #000000;
  z-index: -1;
}

/* Single */
#single {
  flex: 1;
  background-color: #f3f3f3;
}

#single > #navigator {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 7px 20px;
  background-color: #f5d44f;
}

#single > #navigator > li {
  display: flex;
  align-items: center;
  gap: 5px;
  list-style: none;
}

#single > #navigator > li > a {
  font-family: "TT Norms Pro";
  font-weight: 700;
  font-size: 28px;
  line-height: 28px;
  color: #f5d44f;
  text-decoration: none;
  text-shadow: -1px 0 #000000, 0 1px #000000, 1px 0 #000000, 0 -1px #000000;
}

#single > #navigator > li > span {
  font-family: "TT Norms Pro";
  font-weight: 700;
  font-size: 26px;
  line-height: 28px;
  color: #000000;
}

#single > #navigator > li:hover > a {
  color: #ffffff;
  text-shadow: unset;
}

#single > #table-header {
  position: relative;
  margin: 40px 66px;
}

#single > #table-header > img {
  position: absolute;
  left: -10px;
  top: -10px;
  z-index: 15;
}

#single > #table-header > button {
  cursor: pointer;
  display: none;
  align-items: center;
  gap: 8px;
  padding: 11.5px 20px;
  border: 0;
  border-radius: 90px;
  margin-left: 60px;
}

#single > #table-header > button.active {
  display: flex;
}

#single > #table-header > button#table-header-button-full {
  background-color: #55ffff;
}

#single > #table-header > button#table-header-button-simplified {
  background-color: #f5d44f;
}

#single > #table-header > button > span {
  font-family: "TT Norms Pro";
  font-weight: 450;
  font-size: 15px;
  line-height: 20px;
  color: #000000;
}

#single > #table {
  display: flex;
  flex-direction: column;
  gap: 0 25px;
  margin: 40px 66px;
}

#single > #table > .table-row {
  position: relative;
  display: flex;
  overflow: hidden;

  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

#single > #table > .table-row:last-child {
  padding-bottom: 0;
}

#single > #table > .table-row::-webkit-scrollbar {
  display: none;
}

#single > #table > .table-row > .table-expand-buttons {
  align-self: center;
  width: 0;
  position: relative;
  left: -25px;
}

#single > #table > .table-row > .table-expand-buttons.right {
  align-self: center;
  width: 0;
  position: relative;
  left: 0;
}

#single > #table > .table-row > .table-expand-buttons > button {
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  transform: translateX(-50%);

  border-radius: 100%;
  border: 0;
}

#single
  > #table
  > .table-row
  > .table-expand-buttons
  > button.table-expand-button-opened {
  background-color: #f5d44f;
}

#single
  > #table
  > .table-row
  > .table-expand-buttons
  > button.table-expand-button-closed {
  background-color: #55ffff;
}

#single > #table > .table-row > .table-expand-buttons > button.active {
  display: flex;
}

#single > #table > .table-row > .table-col {
  flex: 0 0 auto;
  max-width: 320px;
  opacity: 1;
  transition: max-width 0.4s, opacity 0.4s, margin-left 0.4s, margin-right 0.4s;
  padding-bottom: 25px;
  margin-right: 25px;
}

#single > #table > .table-row > .table-col.hidden {
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  margin-right: 0;
}

#single > #table > .table-row > .table-col > .table-col-container {
  flex: 0 0 auto;
  height: 100%;
}

#single > #table > .table-row > .table-col:first-child {
  position: sticky;
  top: 0;
  left: 0;
  background: #f3f3f3;
  z-index: 10;
}

#single > #table > .table-row > .table-col:last-child {
  margin-right: 0;
}

#single
  > #table
  > .table-row:first-child
  > .table-col:first-child
  > .table-col-container {
  width: 35px;
  padding: 8px;
  background-color: #ffffff;
}

#single
  > #table
  > .table-row:first-child
  > .table-col:not(:first-child)
  > .table-col-container {
  display: flex;
  flex-direction: column;
  gap: 25px;
  width: 295px;
  padding: 20px;
  background-color: #000000;
}

#single > #table > .table-row > .table-col > .table-col-container {
  display: flex;
  flex-direction: column;
  gap: 25px;
}

#single
  > #table
  > .table-row:first-child
  > .table-col:not(:first-child)
  > .table-col-container
  > div {
  height: 40px;
}

#single
  > #table
  > .table-row:first-child
  > .table-col:not(:first-child)
  > .table-col-container
  > img {
  align-self: flex-start;
  max-height: 100%;
  width: auto;
}

#single
  > #table
  > .table-row:first-child
  > .table-col:not(:first-child)
  > .table-col-container
  > h3 {
  font-family: "TT Norms Pro";
  font-weight: 700;
  font-size: 26px;
  line-height: 28px;
  color: #55ffff;
  margin: 0;
}

#single
  > #table
  > .table-row:first-child
  > .table-col:not(:first-child)
  > .table-col-container
  > p {
  font-family: "TT Norms Pro";
  font-weight: 450;
  font-size: 16px;
  line-height: 20px;
  color: #ffffff;
  margin: 0;
}

#single
  > #table
  > .table-row:first-child
  > .table-col:not(:first-child)
  > .table-col-container
  > ul {
  margin: 0;
  padding-left: 20px;
}

#single
  > #table
  > .table-row:first-child
  > .table-col:not(:first-child)
  > .table-col-container
  > ul
  > li {
  font-family: "TT Norms Pro";
  font-weight: 450;
  font-size: 16px;
  line-height: 20px;
  color: #ffffff;
}

#single
  > #table
  > .table-row:not(:first-child)
  > .table-col:first-child
  > .table-col-container {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 35px;
  padding: 8px;
  background-color: #55ffff;
}

#single
  > #table
  > .table-row:not(:first-child)
  > .table-col:first-child
  > .table-col-container
  > p {
  font-family: "TT Norms Pro";
  font-weight: 700;
  font-size: 15px;
  line-height: 18px;
  margin: 0;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

#single
  > #table
  > .table-row:not(:first-child)
  > .table-col:not(:first-child)
  > .table-col-container {
  width: 295px;
  padding: 16px 8px;
  background-color: #ffffff;
}

#single
  > #table
  > .table-row:not(:first-child)
  > .table-col:not(:first-child)
  > .table-col-container {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 295px;
  padding: 20px;
  background-color: #ffffff;
}

#single
  > #table
  > .table-row:not(:first-child)
  > .table-col:not(:first-child)
  > .table-col-container
  > p {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: "TT Norms Pro";
  font-weight: 450;
  font-size: 16px;
  line-height: 20px;
  margin: 0;
}

#single
  > #table
  > .table-row:not(:first-child)
  > .table-col:not(:first-child)
  > .table-col-container
  > p
  > img {
  flex: none;
  max-width: 30px;
  max-height: 24px;
}

#single
  > #table
  > .table-row:not(:first-child)
  > .table-col:not(:first-child)
  > .table-col-container
  > ul {
  margin: 0;
  padding-left: 20px;
}

#single
  > #table
  > .table-row:not(:first-child)
  > .table-col:not(:first-child)
  > .table-col-container
  > ul
  > li {
  font-family: "TT Norms Pro";
  font-weight: 450;
  font-size: 16px;
  line-height: 20px;
}

/* Footer */
footer {
  margin-top: auto;
  background-color: #000000;
}

footer > #footer-content {
  display: flex;
  max-width: 1140px;
  margin: 0 auto;
  padding: 3rem 1rem 1.75rem;
}

footer > #footer-content > #footer-section-1 {
  flex: 0 0 50%;
  display: flex;
  flex-direction: column;
  gap: 75px;

  background-image: url("../img/arrows-3.png");
  background-repeat: no-repeat;
  background-position: right;
  background-size: contain;
}

footer > #footer-content > #footer-section-1 > img {
  width: 171px;
  height: auto;
}

footer > #footer-content > #footer-section-1 > p {
  font-family: "Norms";
  font-size: 12px;
  line-height: 1.5;
  margin: 0;
  color: #ffffff;
}

footer > #footer-content > #footer-section-2 {
  flex: 0 0 25%;
}

footer > #footer-content > #footer-section-2 {
  display: flex;
  flex-direction: column;
  gap: 32px;
  padding-left: 0.92rem;
}

footer > #footer-content > #footer-section-2 > p {
  font-family: "Norms";
  font-size: 12px;
  line-height: 1;
  margin: 0;
  color: lightgray;
}

footer > #footer-content > #footer-section-2 > img {
  width: 209px;
  height: auto;
  padding-left: 1px;
}

footer > #footer-content > #footer-section-3 {
  flex: 0 0 25%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 55px;
  padding-top: 0.25rem;
  padding-left: 1rem;
}

footer > #footer-content > #footer-section-3 > div {
  display: flex;
  gap: 1.5rem;
}

footer > #footer-content > #footer-section-3 > div > a > i {
  font-size: 22px;
  color: #ffffff;
}

footer > #footer-content > #footer-section-3 > a {
  display: flex;
  justify-self: center;
  font-family: "Norms";
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  color: #ffffff;
  border: 1px white solid;
  padding: 0.65rem 3.5rem;
  margin-left: 5px;
}

footer > hr {
  background: #494949;
  height: 1px;
  border: 0;
  margin: 0;
}

footer > #footer-legals {
  display: flex;
  justify-content: flex-end;
  gap: 0.65rem;
  max-width: 1140px;
  margin: 0 auto;
  padding: 1rem;
}

footer > #footer-legals > a {
  font-family: "Norms";
  font-weight: 450;
  font-size: 12px;
  line-height: 1.5;
  color: #ffffff;
  text-decoration: none;
}

footer > #footer-legals > a:hover {
  text-decoration: underline;
}

/* Aside */
#prev-column {
  cursor: pointer;
  position: fixed;
  top: 50%;
  left: 40px;
  transform: translateY(-50%);
  z-index: 999;
  opacity: 1;
  transition: opacity 0.4s;
}

#prev-column.hidden {
  opacity: 0;
}

#next-column {
  cursor: pointer;
  position: fixed;
  top: 50%;
  right: 40px;
  transform: translateY(-50%);
  z-index: 999;
  opacity: 1;
  transition: opacity 0.4s;
}

#next-column.hidden {
  opacity: 0;
}
