:root {
  --theme-blue: #1e3a76;
  --theme-grey: #505050;
  --theme-gold-light: #e3d7bd;
  --theme-gold-dark: #aa9055;
  --theme-gold-dark-hover: #c2a561;
  --text-light: white;
  --text-dark: black;
  --background-1: white;
  --background-2: #1e3a76;
  --background-3: #dddddd;
  --background-hover: #eeeeee;
}

* {
  box-sizing: border-box;
  line-height: 1.5;
}

.outer-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex: 1;
  margin-top: 10px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-weight: 300;
}

h1 {
  font-size: 2.5rem;
  padding-block: 2rem;
  color: var(--theme-blue);
  font-weight: 500;
}

h2 {
  font-size: 1.6rem;
}

@view-transition {
  navigation: auto;
}

.os-n {
  font-family: 'Open Sans', sans-serif;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  font-variation-settings: 'wdth' 100;
}

.os-b {
  font-family: 'Open Sans', sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: 'wdth' 100;
}

a {
  color: var(--theme-gold-dark);
  text-decoration-color: var(--theme-gold-light);
  transition: text-decoration-color 0.2s;
  &:hover,
  &:focus {
    text-decoration-color: var(--theme-gold-dark);
  }
}

a.button {
  background-color: var(--theme-gold-dark);
  text-decoration: none;
  color: var(--text-light);
  padding: 0.75rem 1rem;
  border-radius: 0.25rem;
  transition: background-color 0.2s;
  line-height: 1;
  display: block;
}

a.button:hover,
a.button:focus {
  background-color: var(--theme-gold-dark-hover);
}

.layout-container {
  padding-inline: 2rem;
  max-width: 1000px;
  width: 100%;
  margin: auto;
}

.visually-hidden-accessibility {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/*
HEADER
*/
.skip-link {
  position: absolute;
  top: 0;
  left: 0;
  height: 0px;
  background-color: white;
  color: black;
  overflow: hidden;
  border: none;
  display: block;
  padding: 0;
  z-index: 100;

  &:focus {
    height: auto;
  }
}

header {
  /* background: linear-gradient(to left, var(--theme-blue), var(--background-2)); */
  background: var(--theme-blue);
  background: linear-gradient(
    90deg,
    rgba(29, 57, 117, 1) 0%,
    rgba(36, 76, 156, 1) 33%,
    rgba(29, 57, 117, 1) 100%
  );
  height: 80px;
  position: relative;
  z-index: 2;

  &::after {
    content: '';
    position: absolute;
    background-color: var(--theme-gold-light);
    width: 100%;
    height: 10px;
    z-index: -1;
  }
}
.Header-Layout-Container {
  display: flex;
  justify-content: space-between;

  .Right-Menu {
    ul {
      list-style: none;
      display: flex;
      flex-direction: column;
      align-items: center;
      margin: 0;
      padding: 0;
      padding-top: 1rem;
    }

    li {
      display: block;
      width: 100%;
    }

    a {
      display: block;
      padding: 1rem 2rem;
      color: var(--text-light);
      text-decoration-color: transparent;
      transition:
        color 0.3s,
        text-decoration-color 0.3s;
      width: 100%;
      text-align: center;

      &:hover,
      &:focus,
      &.active {
        color: var(--theme-gold-light);
        text-decoration-color: var(--theme-gold-light);
      }
    }
  }

  .Logo-Group {
    line-height: 1;
    color: white;
    text-decoration: none;
    padding-block: -0.4rem;
    display: flex;
    align-items: center;
    height: 80px;

    .Image-Container {
      position: relative;
      line-height: 1;
      top: 0px;
      margin-right: 0.5rem;
      display: none;
      &::after {
        content: '';
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;

        height: 100%;
        background-color: var(--theme-gold-dark);
        border-radius: 50%;
        transition: background-color 0.3s;
      }
    }
    img {
      position: relative;
      filter: invert();
      line-height: 1;
      z-index: 1;
    }

    .Church-Name {
      font-size: 1.3rem;
    }
    .Church-Denomination {
      font-size: 0.83rem;
      line-height: 1;
    }
    &:hover,
    &:focus {
      .Image-Container::after {
        background-color: var(--theme-gold-dark-hover);
      }
    }
  }
}

@media (min-width: 450px) {
  .Header-Layout-Container {
    .Logo-Group {
      .Image-Container {
        display: block;
      }
    }
  }
}
@media (min-width: 860px) {
  .Header-Layout-Container {
    .Right-Menu {
      ul {
        flex-direction: row;
        gap: 1rem;
        padding-top: 0;
      }
      li {
        width: initial;
      }
      a {
        padding: 0;
      }
    }
  }
}

.hamburger {
  margin-top: 1.5rem;
  width: 40px;
  height: 30px;
  position: relative;
  top: 0;
  right: 0;
  transform: rotate(0deg);
  cursor: pointer;
  border: none;
  background: none;
}
@media screen and (min-width: 860px) {
  .hamburger {
    display: none;
  }
}
.hamburger span {
  top: 0;
  left: 0;
}
.hamburger .first-span {
  display: block;
  height: 4px;
  width: 100%;
  background-color: var(--text-light);
  transition-timing-function: ease;
  transition-duration: 0.5s;
  border-radius: 0px;
  transform-origin: center center;
  position: absolute;
  transform: translate3d(0px, 0px, 0px) rotate(0deg);
  margin-top: -0.5px;
}
.hamburger.open .first-span {
  transform: translate3d(0px, 15px, 0px) rotate(45deg);
}
.hamburger .second-span {
  display: block;
  height: 4px;
  width: 100%;
  background-color: var(--text-light);
  transition-timing-function: ease-out;
  transition-duration: 0.125s;
  border-radius: 0px;
  transform-origin: center center;
  position: absolute;
  opacity: 1;
  top: 15px;
  margin-top: -0.5px;
}
.hamburger.open .second-span {
  opacity: 0;
}
.hamburger .third-span {
  display: block;
  height: 4px;
  width: 100%;
  background-color: var(--text-light);
  transition-timing-function: ease;
  transition-duration: 0.5s;
  border-radius: 0px;
  transform-origin: center center;
  position: absolute;
  transform: translate3d(0px, 30px, 0px) rotate(0deg);
  margin-top: -0.5px;
}
.hamburger.open .third-span {
  transform: translate3d(0px, 15px, 0px) rotate(-45deg);
}

.js-enabled header nav {
  display: none;
}
@media screen and (min-width: 860px) {
  .js-enabled header nav {
    display: flex;
    a {
      border-bottom: unset;
    }
  }
}

.js-enabled header.mobile-menu-open nav {
  overflow: auto;
  display: block;
  position: fixed;
  top: 90px;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--background-2);
  z-index: -1;
}
.js-enabled header.mobile-menu-open nav > a {
  display: block;
  text-align: left;
  padding: 1rem 2rem;
}

/*
BLOCKQUOTE
*/
.Blockquote-Container {
  background-color: var(--background-1);
  text-align: center;
  font-style: italic;
  color: var(--theme-gold-dark);
  padding: 1.5rem;

  blockquote {
    font-size: 1.5rem;
    margin: 0;
  }

  cite {
    font-size: 0.8rem;
  }
}

@media (min-width: 800px) {
  .Blockquote-Container {
    blockquote {
      font-size: 2rem;
    }

    cite {
      font-size: 1rem;
    }
  }
}

/*
FOOTER
*/
footer {
  background-color: var(--theme-grey);
  color: white;
  padding-block: 1rem;

  .Logo-Group {
    line-height: 1;
    color: white;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;

    .Image-Container {
      line-height: 1;
    }
    img {
      position: relative;
      filter: invert();
      line-height: 1;
      z-index: 1;
    }

    .Logo-Text-Container {
      padding-left: 0.5rem;
    }
    .Church-Name {
      font-size: 1.3rem;
    }
    .Church-Denomination {
      font-size: 0.83rem;
      line-height: 1;
    }
  }

  .Link-Menu a,
  .Socials-Container a,
  .Legal-Container a,
  .Contact-Container a {
    color: var(--text-light);
    text-decoration-color: underline;
    transition:
      color 0.3s,
      text-decoration-color 0.3s;

    &:hover,
    &:focus,
    &.active {
      color: var(--theme-gold-light);
      text-decoration-color: var(--theme-gold-light);
    }

    &.active {
      text-decoration-color: transparent;
      pointer-events: none;
    }
  }

  .Contact-Container a {
    display: block;
  }

  .Link-Menu ul {
    display: flex;
    gap: 1rem;
    padding-block: 1rem;
  }

  ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0;
    padding: 0;
    padding-top: 1rem;
  }

  li {
    display: block;
    width: 100%;
  }

  .Socials-Container {
    padding-block: 1rem;
    display: inline-flex;
    gap: 1rem;

    a,
    svg {
      height: 1.5rem;
      width: 1.5rem;
      line-height: 1;
    }
  }

  .Opc-Link {
    display: block;
    img {
      height: 3rem;
      line-height: 1;
    }
  }

  .Legal-Container {
    padding-top: 1rem;
    font-size: 0.8rem;

    display: flex;
    flex-direction: column;
  }

  address {
    font-style: normal;
  }

  @media (min-width: 450px) {
    .Footer-Layout {
      .Logo-Group {
        flex-direction: row;
      }
    }
  }

  @media (min-width: 800px) {
    .Footer-Layout {
      display: flex;
      gap: 2rem;
      justify-content: space-between;
    }

    ul {
      flex-direction: row;
    }

    .Right-Container {
      text-align: right;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
    }
  }
}
