* {
  --fhs-white:   #FFFFFF;
  --fhs-brown:   #8C4B00;
  --fhs-navy:    #080D3A;
  --fhs-red:     #C40000;
  --fhs-neonred: #ff2800;
  --fhs-brass:   #FFCD78;
  
  --fhs-text-font: 'Montserrat', Arial, Helvetica, sans-serif;
  --fhs-title-font: 'Silverspoon', Georgia, 'Times New Roman', Times, serif;
  --fhs-title-font-bold: 'Silverspoon Bold', Georgia, 'Times New Roman', Times, serif;

  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

html, body, h5, h6 {
  font-family: var(--fhs-text-font);
  line-height: 1.4;
}

h1, h2, h3, h4 {
  font-family: var(--fhs-title-font-bold);
  margin-bottom: 0;
}

h1, h2 {
  color: var(--fhs-brass);
  line-height: 1;
}

p {
  margin-bottom: 2rem;
}

a {
  color: var(--fhs-red);
  text-decoration: none;
  transition: all 0.2s ease;
}

a:hover, a:focus {
  color: var(--fhs-navy);
}

header {
  display: grid;
  grid-template-columns: 6rem auto 6rem;
  grid-template-areas:
    "logo logo logo"
    "lang . socials";
  background-color: var(--fhs-navy);
  max-height: 10rem;
  padding: 0 1rem 2.5rem;
  position: relative;
}

header::before {
  width: 50%;
  height: 1.5rem;
  content: '';
  background: repeating-linear-gradient( 45deg, var(--fhs-red), var(--fhs-red) 1rem, var(--fhs-neonred) 1rem, var(--fhs-neonred) 2rem );
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 5;
}

header::after {
  width: 50%;
  height: 1.5rem;
  content: '';
  background: repeating-linear-gradient( -45deg, var(--fhs-red), var(--fhs-red) 1rem, var(--fhs-neonred) 1rem, var(--fhs-neonred) 2rem );
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 5;
}

header #logo {
  text-align: center;
  grid-area: logo;
}

header #logo img {
  max-height: 6rem;
  width: auto;
  margin: 0 auto -1rem;
  display: block;
}

nav#lang {
  grid-area: lang;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0.5rem;
  position: relative;
  z-index: 10;
}

nav#socials {
  grid-area: socials;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0.5rem;
  position: relative;
  z-index: 10;
}

#socials a {
  width: 2rem;
}

#socials a img {
  display: block;
}

#lang button {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--fhs-red);
  background-color: transparent;
  border: none;
  border-radius: 0.25rem;
  padding: 0.375rem 0.5rem;
  cursor: pointer;
  transition: all 0.2s ease;
}

#lang button:hover {
  background-color: var(--fhs-brass);
}

#lang button.active {
  color: var(--fhs-brass);
  background-color: var(--fhs-red);
}

#welcome {
  color: var(--fhs-white);
  background-color: var(--fhs-red);
  text-align: center;
  padding: 2rem 0 21rem;
}

#hero {
  margin-top: -21rem;
  display: flex;
  flex-direction: column-reverse;
}

.hero_img {
  flex: 0 0 auto;
  overflow: hidden;
}

#hero img {
  margin-left: -50%;
  max-height: 50vh;
}

.hero_claim {
  flex: 0 0 auto;
  font-size: 250%;
  line-height: 0.9;
  font-family: var(--fhs-title-font-bold);
  color: var(--fhs-white);
  text-transform: uppercase;
  text-align: center;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

.hero_claim span {
  font-size: 50%;
  font-family: 'Compagnie', 'Montserrat', Arial, Helvetica, sans-serif;
  color: var(--fhs-brass);
  margin-top: 0.375rem;
  display: block;
}

#content {
  max-width: 900px;
  padding: 3rem 2rem;
  margin: 0 auto;
  overflow: hidden;
}

#content img {
  border-radius: 0.5rem;
  width: 130%;
  height: auto;
  max-width: 1200px;
  margin: 3rem -15%;
}

#footer {
  color: var(--fhs-brass);
  background-color: var(--fhs-red);
  font-size: 0.875rem;
  text-align: center;
  padding: 1rem;
  display: block;
  position: relative;
  bottom: 0;
  left: 0;
}

@media screen and (min-width: 1024px) {
  header {
    padding: 0 2rem 1.5rem;
    grid-template-areas: "lang logo socials";
  }

  header #logo img {
    max-height: 5rem;
    margin: 0 auto;
  }
  
  nav#lang,
  nav#socials {
    margin: auto 0;
  }

  #welcome {
    padding: 2rem 0 21rem;
  }

  .hero_claim {
    font-size: 450%;
    margin-top: 3rem;
    margin-right: 15rem;
  }

  #hero {
    margin-top: -20rem;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 3rem;
  }

  #hero img {
    margin-left: 0;
  }

  #content {
    overflow: visible;
  }
}