/* Fonts */

@import url("https://fonts.googleapis.com/css2?family=Neuton&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&display=swap");

/* Reset */

*,
*::before,
*::after {
  box-sizing: border-box;
}

body,
h1,
h2,
h3,
h4,
h5,
figure,
picture {
  margin: 0;
}

body {
  line-height: 1.5;
  min-height: 100vh;

  overflow-x: hidden;
}

img,
picture {
  max-width: 100%;
  display: block;
}

input,
button,
textarea,
select {
  font: inherit;
}

/* Custom Properties */

:root {
  --clr-dark: 235 57% 24%;
  --clr-accent: 234 18% 69%;
  --clr-light: 220 20% 97%;
  --clr-grey: 225 20% 92%;
  --clr-yellow: 35.1, 79.9%, 55.1%;

  --fs-300: 1rem;
  --fs-400: 1.125rem;
  --fs-500: 1.75rem;
  --fs-700: 3.5rem;
}

/* Utility Classes */

/* Layout */
.flex {
  display: flex;
  gap: var(--gap, 1rem);
}

.grid {
  display: grid;
  gap: var(--gap, 1rem);
}

.container {
  padding-inline: 4em;
  margin-inline: auto;
  max-width: 80rem;
}

@media screen and (max-width: 560px) {
  .container {
    max-width: 100%;
  }
}

@media screen and (min-width: 1920px) {
  .container {
    max-width: 90rem;
  }
}

@media screen and (min-width: 2560px) {
  .container {
    max-width: 100rem;
  }
}

.flow > *:where(:not(:first-child)) {
  margin-top: var(--flow-space, 1rem);
}

/* Background Colors */
.bg-dark {
  background-color: hsl(var(--clr-dark));
}
.bg-light {
  background-color: hsl(var(--clr-light));
}
.bg-accent {
  background-color: hsl(var(--clr-accent));
}
.bg-grey {
  background-color: hsl(var(--clr-grey));
}

/* Typography */
.uppercase {
  text-transform: uppercase;
}

.ff-logo-serif {
  font-family: "Neuton", serif;
}
.ff-sans-serif-accent {
  font-family: "Oswald", sans-serif;
}
.ff-sans-serif {
  font-family: "Lato", sans-serif;
}

.fs-300 {
  font-size: var(--fs-300);
}
.fs-400 {
  font-size: var(--fs-400);
}
.fs-500 {
  font-size: var(--fs-500);
}
.fs-700 {
  line-height: 1.1;
  font-size: var(--fs-700);
}
.letter-spacing-2 {
  letter-spacing: 0.1em;
}

.text-dark {
  color: hsl(var(--clr-dark));
}
.text-accent {
  color: hsl(var(--clr-accent));
}
.text-light {
  color: hsl(var(--clr-light));
}
.text-grey {
  color: hsl(var(--clr-grey));
}

/* Load Animation */
.loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: hsl(var(--clr-light));
  transition: opacity 0.75s, visibility 0.75s;
}

.loader--hidden {
  opacity: 0;
  visibility: hidden;
}

.loader::after {
  content: "";
  width: 75px;
  height: 75px;
  border: 15px solid hsl(var(--clr-dark));
  border-top-color: hsl(var(--clr-yellow));
  border-radius: 50%;
  animation: loading 0.75s ease infinite;
}

@keyframes loading {
  from {
    transform: rotate(0turn);
  }
  to {
    transform: rotate(1turn);
  }
}

body {
  background: hsl(var(--clr-grey) / 0.7);
  /* padding: 2rem 2rem; */
}

.primary-navigation {
  width: 100%;
  height: 6rem;
  align-content: center;
  justify-content: space-between;
  gap: 2em;
  padding-inline: 2em;
  z-index: 2000;
  position: sticky;
  top: 0;
  margin: 0 auto;
  box-shadow: rgba(0, 0, 0, 0.16) 0px 3px 6px, rgba(0, 0, 0, 0.23) 0px 3px 6px;
  background-color: #fff;
}

.primary-navigation ul {
  list-style: none;
  align-items: center;
  justify-content: space-evenly;
  width: 60%;
  padding: 0;
  transition: all 300ms ease-in;
}

.mobile-menu-button {
  display: none;
}

.primary-navigation ul li a {
  text-decoration: none;
  /* font-size: 0.9vw; */
  font-size: clamp(0.8rem, 0.9vw, 1.2rem);
  font-weight: bold;
  cursor: pointer;
  position: relative;
  color: #000;
}

.primary-navigation a::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  height: 2px;
  width: 100%;
  transform: scaleX(0);
  transform-origin: center;
  background: hsl(var(--clr-yellow));
  transition: transform 400ms linear;
}

.primary-navigation a:hover::after {
  transform: scaleX(1);
}

.nav-link.active {
  padding: 5px 10px;
  border: 2px solid hsl(var(--clr-yellow));
  transform: scale(1.08);
  transition: transform 200ms ease, border 200ms ease;
}

.logo-section {
  width: 20%;
  display: flex;
  align-items: center;
}

.logo-section img {
  height: 100%;
  object-fit: contain;
  padding: 0.5rem;
}

.logo-section h4 {
  font-size: clamp(0.8rem, 1vw, 1.2rem);
  font-weight: bolder;
  text-align: left;
  line-height: 1.4;
}

.mobile-menu {
  display: none;
}

.logo-section-scrolled {
  display: none;
}

.primary-navigation-scrolled {
  height: 4rem;
}

.navigation-list-scrolled {
  min-width: 100%;
}

@media screen and (max-width: 560px) {
  /* .contact-info p {
      font-size: 0.6rem;
    } */

  .logo-section {
    width: 50%;
  }

  .logo-section img {
    width: 50%;
  }

  .logo-section h4 {
    font-size: 2vw !important;
  }

  .slogan {
    font-size: 8vw;
  }

  .slogan-small {
    font-size: 4vw;
  }
}

@media screen and (max-width: 900px) {
  .primary-navigation {
    height: max-content;
  }

  .primary-navigation ul {
    display: none;
  }

  .mobile-menu {
    display: flex;
    width: 40%;
    align-content: center;
    justify-content: flex-end;
    position: relative;
  }

  .dropdown-button {
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 2em 2em;
  }

  .mobile-menu img {
    width: 2em;
  }

  .mobile-menu-content {
    position: absolute;
    top: 100%;
    right: 0;
    background: hsl(var(--clr-light) / 0.8);
    backdrop-filter: blur(2px);
    visibility: hidden;
    border-radius: 0.25rem;
    box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.1);
    transform: translateY(-10px);
    transition: transform 150ms ease-in-out;
  }

  .mobile-menu-content[mobile-data-visible="true"] {
    visibility: visible;
    transform: translateY(0);
  }

  .mobile-menu-content ol {
    padding: 1em 1.5em;
    margin: 0;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    list-style: none;
  }

  .mobile-menu-content ol a {
    text-decoration: none;
    color: #000;
  }

  .primary-navigation a::after {
    display: none;
  }

  .logo-section-scrolled {
    display: flex;
  }

  .logo-section img {
    padding: 0.5em;
  }

  .logo-section h4 {
    font-size: 1.7vw;
  }
}

@media screen and (min-width: 1920px) {
  .primary-navigation ul {
    gap: 1.5rem;
    margin-inline: 2rem;
  }

  .primary-navigation {
    height: 6rem;
    padding-inline: 2em;
  }

  .primary-navigation-scrolled {
    height: 4rem;
  }
}

@media screen and (min-width: 2560px) {
  .primary-navigation ul {
    gap: 2rem;
    margin-inline: 3rem;
  }

  .primary-navigation {
    height: 7rem;
    padding-inline: 3em;
  }

  .primary-navigation-scrolled {
    height: 5rem;
  }
}

.all-wrapper {
  /* height: 100vh; */
  padding-block: 2rem;
  gap: 3em;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.top-side {
  height: 100%;
  gap: 2rem;
  padding-bottom: 5em;
  border-bottom: 2px solid hsl(var(--clr-yellow));
  justify-content: space-between;
}

.top-side img {
  object-fit: contain;
}

.some-class {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  height: 100%;
}

.list-wrapper {
  align-items: flex-start;
  justify-content: center;
  gap: 2rem;
}

.list-wrapper ul {
  width: 40%;
  height: 100%;
}

.intro-text {
  margin-top: 10%;
}

@media screen and (max-width: 560px) {
  .all-wrapper {
    flex-wrap: wrap;
  }

  .list-wrapper ul {
    width: 100%;
  }
}

/* #go-back-button {
  color: hsl(var(--clr-dark));
  font-family: "Lato", sans-serif;
  text-transform: uppercase;
  display: block;
  padding: 10px 10px;
  transition: color 200ms linear;
  text-decoration: none;
  text-align: center;
  border: 2px solid hsl(var(--clr-dark));
  width: 25%;
} */

.slide-button {
  cursor: pointer;
  border: 1.5px solid hsl(var(--clr-dark));
  padding: 0.5em 1em;
  position: relative;
  margin-block: 1.5rem;
  font-weight: bolder;
  z-index: 1;
}

.slide-button::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: transparent;
}

.slide-button::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0%;
  height: 100%;
  background-color: hsl(var(--clr-yellow));
  transition: all 0.3s ease-in;
  z-index: -1;
}

.slide-button:hover::before {
  width: 100%;
}

.text-wrapper p {
  text-align: justify;
}

.text-wrapper a {
  text-decoration: underline;
  color: hsl(var(--clr-dark));
  cursor: pointer;
  font-weight: bold;
}

.text-wrapper i {
  margin-inline: 0.2em;
}

.list-wrapper ul {
  text-align: justify;
  margin-top: 1em;
  padding: 0;
}

.list-wrapper li {
  list-style: none;
  padding: 0.4em 0.5em;
  line-height: 1.5;
  transition: background 250ms ease-out, transform 250ms ease-out;
}

.list-wrapper li:hover {
  background: hsl(var(--clr-yellow));
  color: hsl(var(--clr-dark));
  transform: scale(1.05);
}

.list-wrapper li > i {
  margin-inline-end: 0.75em;
}

.image {
  margin-block-start: 2rem;
}

.row {
  flex-wrap: wrap;
  justify-content: space-between;
}

@media screen and (max-width: 560px) {
  .row {
    justify-content: center;
    padding-top: 1rem;
  }
}

.footer-col {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding: 1rem 1rem;
  min-width: 10vw;
  margin-block-start: 1.5rem;
}

.footer-col-img {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.footer-col-img img {
  width: 100px;
  padding-top: 2rem;
}

.footer-col-img p {
  max-width: 200px;
  text-align: justify;
  line-height: 1.5;
  font-weight: normal;
  margin-top: 1.5em;
}

.footer-col h4 {
  margin-block-end: 1.5em;
  font-family: "Oswald", sans-serif;
  letter-spacing: 0.2pc;
}

.footer-col {
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
}

.footer-col ul {
  list-style: none;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 0;
  margin: 0;
}

.footer-col li > a {
  text-decoration: none;
  color: hsl(var(--clr-dark));
  font-weight: lighter;
  font-size: 1em;
  transition: color 200ms linear, font-weight 200ms linear;
}

.footer-col li > a:hover {
  color: hsl(var(--clr-light));
  font-weight: normal;
}

.footer-contacts .contact-text {
  padding: 0;
  margin: 0.1em;
}

.footer-contacts .contact-text h5 {
  font-family: "Lato", sans-serif;
  font-size: 0.9em;
}

.footer-contacts .contact-text p {
  font-weight: lighter;
  font-size: 0.8em;
}

.footer-contacts .icon {
  padding-inline: 0.2em;
}

.social-links {
  display: flex;
  gap: 1em;
}

.social-links a {
  color: hsl(var(--clr-dark));
  font-size: 1.5em;
  transition: color 200ms linear;
}

.social-links a:hover {
  color: hsl(var(--clr-light));
}

@media screen and (max-width: 900px) {
  .top-side {
    flex-wrap: wrap;
  }

  .list-wrapper {
    flex-wrap: wrap;
  }
}
