/* -------------------------------- */
/********** Site Variables **********/
/* -------------------------------- */
$black: #060818;
$white: #ffffff;
$red: #ff0000;
$gap: 50px;
$marginReference: 16px;
$radius: 16px;
$font-azomono: "Azo Mono", monospace;
$font-braga: "Braga", "Azo Mono", monospace;
$font-light: 300;
$font-regular: 400;
$font-medium: 500;
$font-bold: 700;

// Responsive Variables
$lg: 1440px;
$md: 1180px;
$sm: 789px;

/* --------------------------- */
/********** Structure **********/
/* --------------------------- */
.post,
.page {
  margin: 0;
}

.page-content {
  margin: 0;
  padding: 0;
}

@mixin wrap {
  padding-left: $gap;
  padding-right: $gap;
  max-width: 1432px;
  margin: 0 auto;

  @media screen and (max-width: $md) {
    max-width: inherit;
    padding-left: $gap/2;
    padding-right: $gap/2;
  }
}

.wrap {
  @include wrap;
}

.flex {
  display: flex;

  &.flex-row {
    flex-direction: row;
  }

  &.flex-row-reverse {
    flex-direction: row-reverse;
  }

  &.flex-column {
    flex-direction: column;
  }

  &.flex-wrap {
    flex-wrap: wrap;
  }

  &.flex-no-wrap {
    flex-wrap: no-wrap;
  }

  &.flex-align-start {
    align-items: flex-start;
  }

  &.flex-align-end {
    align-items: flex-end;
  }

  &.flex-align-center {
    align-items: center;
  }

  &.flex-justify-between {
    justify-content: space-between;
  }

  &.flex-justify-even {
    justify-content: space-evenly;
  }

  &.flex-justify-end {
    justify-content: flex-end;
  }

  &.flex-justify-center {
    justify-content: center;
  }

  .flex-no-grow {
    flex-grow: 0;
  }

  .flex-no-shrink {
    flex-shrink: 0;
  }

  .flex-grow {
    flex-grow: 1;
  }

  .flex-shrink {
    flex-shrink: 1;
  }
}

.grid {
  display: grid;
}

/* ------------------------------- */
/********** Global Styles **********/
/* ------------------------------- */
body {
  background-color: $white;
}

// Images
img {
  max-width: 100%;
  height: auto;
  display: block;

  // Image with 'data' attribute is hidden
  &[data-lazy-src] {
    opacity: 0;
  }

  // Image without 'data' attribute is (or becomes) visible
  &.lazyloaded {
    -webkit-transition: opacity 0.5s linear 0.2s;
    -moz-transition: opacity 0.5s linear 0.2s;
    transition: opacity 0.5s linear 0.2s;
    opacity: 1;
  }
}

// CTAs
@mixin cta {
  background-color: $white;
  border: 2px solid transparent;
  padding: 10px 14px 10px 15px;
  font-size: 20px;
  line-height: 26px;
  font-weight: $font-bold;
  text-transform: uppercase;
  display: inline-block;
  text-decoration: none;

  &:hover {
    color: $white;
    border-color: $white;
    background-color: transparent;
  }

  &.color-white {
    color: $white;
  }
}

body #page .cta {
  @include cta;
}

// reCAPTCHA
.grecaptcha-badge {
  visibility: hidden;
}

// Clickable Image
.clickable-image {
  @media screen and (min-width: $md) {
    cursor: pointer;
  }
}

/* ---------------------------- */
/********** Typography **********/
/* ---------------------------- */
body {
  color: $black;
  font-family: $font-azomono;
  font-weight: $font-regular;
  -webkit-font-smoothing: antialiased;
  font-size: 18px;
  line-height: 24px;

  @media screen and (max-width: $md) {
    font-size: 18px;
  }

  .font-braga {
    font-family: $font-braga;
    font-weight: $font-bold;
    text-transform: uppercase;
  }
  
  .font-azomono {
    font-family: $font-azomono;
  }

  h1,
  h2,
  h3,
  h4,
  .h1,
  .h2,
  .h3,
  .h4 {
    margin: 0;
    padding: 0;
    display: block;
    text-transform: uppercase;
    font-weight: $font-bold;
    letter-spacing: -0.03em;
  }

  @mixin heading-h1 {
    font-size: 80px;
    line-height: 78px;

    @media screen and (max-width: $lg) {
      font-size: 64px;
      line-height: 62px;
    }

    @media screen and (max-width: $md) {
      font-size: 44px;
      line-height: 42px;
    }
  }

  @mixin heading-h2 {
    font-size: 64px;
    line-height: 62px;

    @media screen and (max-width: $md) {
      font-size: 38px;
      line-height: 38px;
    }
  }

  @mixin heading-h3 {
    font-size: 52px;
    line-height: 50px;

    @media screen and (max-width: $md) {
      font-size: 32px;
      line-height: 32px;
    }
  }

  @mixin heading-h4 {
    font-size: 42px;
    line-height: 40px;
    
    @media screen and (max-width: $sm) {}
  }

  h1,
  .h1 {
    @include heading-h1;
  }

  h2,
  .h2 {
    @include heading-h2;
  }

  h3,
  .h3 {
    @include heading-h3;
  }

  h4,
  .h4 {
    @include heading-h4;
  }

  p {
    margin: 0;

    &:not(:last-of-type) {
      margin-bottom: 20px;
    }
  }

  ul {
    padding: 0;

    li {
      padding: 0;
      margin: 0;
    }

    &:not(.none) {
      margin: 0 0 $marginReference $marginReference;
      list-style-position: outside;
  
      li {
        &:not(:last-child) {
          margin-bottom: $marginReference/4;
        }
  
        ul {
          margin: $marginReference/2 0 10px $marginReference*2;
          list-style-type: circle;
        }
      }
    }

    &.none {
      margin: 0;
      list-style-type: none;
    }
  }

  strong {
    font-weight: $font-bold;
  }

  em {
    font-style: italic;
    font-weight: $font-regular;
  }

  blockquote {
    margin: 0;
    padding: 0;
  }

  a,
  a:focus,
  a:visited {
    color: $black;
    text-decoration: none;

    &:hover {
      color: $black;
      text-decoration: underline;
    }
  }

  p {
    a,
    a:visited {
      &:hover {
        text-decoration: underline;
      }
    }
  }

  // The Text
  /*
  .the-text {
    h2 {
      margin-bottom: 24px;
    }

    h3,
    h4 {
      margin-bottom: $marginReference;
    }

    h2,
    h3,
    h4 {
    }

    a.cta {
      margin-top: $marginReference;
    }

    ul {
      margin-top: 6px;
    }
  }
  */
}

/* ------------------------ */
/********** Header **********/
/* ------------------------ */
body {
  #page {
    header.site-header {
      max-width: inherit;
      padding-left: 0;
      padding-right: 0;
      z-index: 9998;
      // overflow-x: clip;

      @media screen and (min-width: $md) {
        position: fixed;
        top: 0;
        left: 0;
        margin: $gap $gap 0 $gap;
        width: calc(100% - #{ $gap * 2 });
        content-visibility: inherit;
      }

      @media screen and (max-width: $md) {
        // margin: $gap/2 $gap/2 0 $gap/2;
        // width: calc(100% - #{ $gap/2 * 2 });
        width: auto;
        content-visibility: inherit;
      }

      & > .flex {
        background-color: var(--theme-color);

        @media screen and (min-width: $md) {
          padding: 22px 24px;
        }

        @media screen and (max-width: $md) {
          padding: 20px;
        }

        .site-branding {
          a {
            display: block;

            img {
              object-fit: contain;
              object-position: left;

              @media screen and (min-width: $lg) {
                height: 40px;
              }

              @media screen and (min-width: $md) and (max-width: $lg) {
                height: 32px;
              }

              @media screen and (max-width: $md) {
                max-width: 190px;
              }
            }
          }
        }

        .main-navigation {
          width: auto;

          @media screen and (max-width: $md) {
            flex-direction: column;
          }

          .menu-actions {
            @media screen and (min-width: $md) {
              gap: 4px;
            }

            @media screen and (max-width: $md) {
              gap: 10px;
            }

            a,
            button {
              all: unset; /* removes all browser styles safely */
              cursor: pointer;
              display: block;
              color: $white;
              text-indent: -9999px;

              &:hover {
                @media screen and (min-width: $md) {
                  opacity: .6;
                }
              }

              svg {
                display: block;

                @media screen and (min-width: $md) {
                  width: 20px;
                  height: 20px;
                }

                @media screen and (max-width: $md) {
                  width: 24px;
                  height: 24px;
                }
              }

              &.menu-toggle {
                svg {
                  &.close {
                    display: none;
                  }
                }

                &.active {
                  svg {
                    &.toggle {
                      display: none;
                    }

                    &.close {
                      display: block;
                    }
                  }
                }
              }
            }
          }

          & > .menu-actions {
            margin-left: $marginReference;
          }
          
          .hidden {
            display: none;
          }

          .hidden-desktop {
            @media screen and (min-width: $md) {
              display: none;
            }
          }
          
          .hidden-mobile {
            @media screen and (max-width: $md) {
              display: none;
            }
          }

          .home-business-toggle {
            display: none;
          }

          ul#primary-menu {
            gap: $marginReference;

            & > li {
              & > a {
                display: block;
                text-transform: uppercase;
                color: $white;
                font-weight: $font-bold;
                text-decoration: underline;

                @media screen and (min-width: $md) and (max-width: $lg) {
                  font-size: 16px;
                  line-height: 24px;
                }

                &:hover {
                  @media screen and (min-width: $md) {
                    color: $black;
                    background-color: $white;
                  }

                  @media screen and (max-width: $md) {
                    text-decoration: none;
                  }
                }
              }

              &.current_page_item,
              &.current_menu_item {
                & > a {
                }
              }

              &.mobile-only {
                @media screen and (min-width: $md) {
                  display: none;
                }
              }

              &.color-black {
                & > a {
                  color: $black;
                }
              }

              &.menu-item-has-children {
                &:hover {
                  ul.sub-menu {
                    @media screen and (min-width: $md) {
                      left: inherit;
                      right: 0;
                    }
                  }
                }
              }
            }
          }

          ul.sub-menu {
            list-style: none;
            box-shadow: none;
            float: none;
            margin: 0;
            gap: $marginReference;
            flex-direction: column;
            background-color: var(--theme-color);
            text-align: right;

            @media screen and (min-width: $md) {
              padding: 46px 0;
              width: max-content;
              align-items: flex-end;
            }

            @media screen and (max-width: $md) {
              align-items: center;
            }

            &:before,
            &:after {
              @media screen and (min-width: $md) {
                content: "";
                display: block;
                position: absolute;
                width: 100vw;
                background-color: inherit;
                z-index: -1;
              }

              @media screen and (min-width: $lg) {
                top: 30px;
                height: calc(100% - 30px);
              }

              @media screen and (min-width: $md) and (max-width: $lg) {
                top: 26px;
                height: calc(100% - 26px);
              }
            }

            &:before {
              @media screen and (min-width: $md) {
                left: 0;
              }
            }

            &:after {
              @media screen and (min-width: $md) {
                right: 0;
              }
            }

            li:not(.menu-section-title):not(.menu-back) {
              &:not(:last-child) {
                margin: 0;
              }

              a {
                color: $white;
                text-transform: uppercase;
                font-weight: $font-medium;
                width: auto;

                @media screen and (min-width: $md) {
                  font-size: 12px;
                  line-height: 14px;
                }

                @media screen and (max-width: $md) {
                  font-size: 14px;
                  line-height: 16px;
                }

                &:hover {
                  @media screen and (min-width: $md) {
                    text-decoration: underline;
                  }

                  @media screen and (max-width: $md) {
                    text-decoration: none;
                  }
                }

                &:after {
                  content: '+';
                  display: inline;
                  margin-left: 4px;
                }
              }
            }

            li.menu-section-title {
              @media screen and (max-width: $md) {
                margin-bottom: $marginReference;
              }

              a {
                @media screen and (max-width: $md) {
                  color: $white;
                  text-decoration: underline;
                  font-weight: $font-bold;
                  font-size: 20px;
                  line-height: 24px;
                  text-transform: uppercase;
                }
              }
            }

            li.menu-back {
              @media screen and (max-width: $md) {
                margin-top: $marginReference;
              }

              a {
                @media screen and (max-width: $md) {
                  display: block;
                  color: $white;
                  text-indent: -9999px;
                }

                svg {
                  @media screen and (max-width: $md) {
                    height: 32px;
                    width: 32px;
                    display: block;
                  }
                }
              }
            }
          }

          .secondary-navigation {
            display: none;
            z-index: 9999;

            @media screen and (min-width: $md) {
              padding-top: 30px;
              top: calc(100% - 30px);
              position: absolute;
              right: 0;
            }

            @media screen and (max-width: $md) {
              height: 100vh;
              height: 100svh;
              overflow: scroll;
              position: fixed;
              top: 0;
              left: 0;
              width: 100%;
              background-color: var(--theme-color);
              align-items: center;
              gap: $marginReference*2;
              padding: $marginReference*3 $marginReference*2;

              &::-webkit-scrollbar {
                display: none;
              }
            }

            &.show {
              display: flex;

              .primary-menu-mobile-container {
                @media screen and (min-width: $md) {
                  display: none;
                }
              }
            }

            .primary-menu-mobile-container {
              @media screen and (max-width: $md) {
                margin-top: auto;
              } 
            }

            .secondary-menu-container {
              @media screen and (max-width: $md) {
                margin-bottom: auto;
              }
            }

            ul#primary-menu-mobile,
            ul#secondary-menu {
              display: flex;
              gap: 24px;

              @media screen and (min-width: $md) {
                text-align: right;
                background-color: var(--theme-color);
                padding: 35px 42px 35px 98px;
              }

              @media screen and (max-width: $md) {
                align-items: center;
              }

              & > li {
                & > a {
                  font-size: 20px;
                  line-height: 24px;
                  font-weight: $font-medium;
                  text-transform: uppercase;

                  @media screen and (max-width: $md) {
                    text-decoration: none;
                    text-align: center;
                  }
                }

                &:not(.color-black) {
                  a {
                    color: $white;
                  }
                }
              }
            }

            ul#primary-menu-mobile {
              & > li {
                & > a {
                  @media screen and (max-width: $md) {
                    text-decoration: underline;
                    font-weight: $font-bold;
                  }
                }
              }
            }

            ul#secondary-menu {
              &:before {
                @media screen and (max-width: $md) {
                  content: '';
                  display: block;
                  width: 77px;
                  height: 1px;
                  background-color: $white;
                  margin: 24px auto 18px;
                }                
              }

              li.home-business-toggle,
              li.business-home-toggle {
                &:before {
                  @media screen and (max-width: $md) {
                    content: '';
                    display: block;
                    width: 77px;
                    height: 1px;
                    background-color: $white;
                    margin: 24px auto 42px;
                  }                
                }

                a {
                  @media screen and (max-width: $md) {
                    text-decoration: underline;
                    font-weight: $font-bold;
                  }
                }
              }
            }

            .menu-actions {
              margin: 0;

              @media screen and (min-width: $md) {
                display: none;
              }

              @media screen and (max-width: $md) {
                gap: 12px;
              }

              & > .flex {
                @media screen and (max-width: $md) {
                  gap: 10px;
                }

                svg {
                  @media screen and (max-width: $md) {
                    width: 24px;
                    height: 24px;
                  }
                }
              }

              .menu-toggle {
                margin-top: 12px;

                svg {
                  width: 32px;
                  height: 32px;
                }
              }
            }

            // 2-Step (Mobile)
            ul.sub-menu {
              &:not(.step-hidden) {
                @media screen and (max-width: $md) {
                  display: flex;
                  margin-bottom: auto;
                  margin-top: auto;
                }
              }
            }

            .step-hidden {
              @media screen and (min-width: $md) {
                display: none;
              }

              @media screen and (max-width: $md) {
                display: none;
              }
            }
          }
        }
      }
    }

    #search-form {
      padding: 30px;
      background-color: var(--theme-color);
      display: none;

      form {
        position: relative;

        input {
          font-family: $font-azomono;
          font-weight: $font-medium;
          font-size: 20px;
          line-height: 24px;
          text-transform: uppercase;
          color: $black;
          padding: 24px calc(#{$gap} + 24px) 24px 24px;
          background: $white;
          border-radius: 0;
          border: 0;
          outline: none;
          appearance: none;
          max-width: 672px;
          width: 100%;

          &::placeholder {
            color: rgba($black, .4);
          }

          &::-webkit-search-cancel-button {
            appearance: none;
            display: none;
          }
        }

        button {
          appearance: none;
          border: 0;
          border-radius: 0;
          background: transparent;
          padding: 0;
          line-height: 1;
          color: $black;
          cursor: pointer;
          position: absolute;
          right: 24px;
          width: 24px;
          height: 24px;
        }
      }

      &.show {
        display: block;
      }
    }

    #primary {
      @media screen and (min-width: $lg) {
        margin-top: 110px;
      }
      
      @media screen and (min-width: $md) and (max-width: $lg) {
        margin-top: 110px;
      }
      
      @media screen and (max-width: $md) {
        // margin-top: 109px;
      }

      #main {
        padding-top: $gap;

        @media screen and (max-width: $md) {
          padding-top: $gap/2;
        }
      }
    }

    // Languages Menu
    #languages-menu {
      @media screen and (min-width: $md) {
        background-color: var(--theme-color);
        padding: 0 42px 35px 98px;
        gap: 10px;
      }

      @media screen and (max-width: $md) {
        align-items: center;
        display: flex;
        gap: 16px;
      }

      li {
        &.current-language-menu-item {
          a {
            text-decoration: underline;
          }
        }

        a {
          color: $white;

          @media screen and (max-width: $md) {
            font-size: 14px;
            line-height: 16px;
            font-weight: $font-bold;
          }
        }
      }
    }

    &.black-text {
      header.site-header {
        & > .flex {
          .main-navigation {
            ul#primary-menu {
              & > li {
                & > a {
                  color: $black;
                }

                ul.sub-menu {
                  li 
                  a {
                    color: $black;
                  }
                }
              }
            }

            .secondary-navigation {
              ul#primary-menu-mobile,
              ul#secondary-menu {
                & > li {
                  a {
                    color: $black;
                  }
                }
              }

              ul#secondary-menu {
                &:before {
                  background-color: $black;
                }

                li {
                  &.business-home-toggle {
                    &:before {
                      background-color: $black;
                    }
                  }
                }
              }
            }

            .menu-actions {
              a,
              button {
                color: $black;
              }
            }
          }

          #languages-menu {
            li {
              a {
                color: $black;
              }
            }
          }
        }
      }
    }
  }
}

body.secondary-navigation-active {
  @media screen and (max-width: $md) {
    overflow: hidden;
  }
}

/* --------------------------------- */
/*********** Site Sections ***********/
/* --------------------------------- */
body {
  #page {
    // Page Hero
    section.page-hero {
      &:not(:last-child):not(:has(+ .no-results)):not(.no-mb):not(:has(+ .has-marketplace)):not(:has(+ .has-agenda)) {
        @media screen and (min-width: $md) {
          margin-bottom: $gap*2;
        }

        @media screen and (max-width: $md) {
          margin-bottom: $gap;
        }

        & + .highlights-container {
          @media screen and (max-width: $md) {
            margin-top: $gap*3;
          }
        }
      }

      & + .highlights-block {
        @media screen and (min-width: $md) {
          margin-top: $gap*2;
        }

        @media screen and (max-width: $md) {
          margin-top: $gap;
        }
      }

      .page-banner {
        img {
          object-fit: cover;
          width: 100%;

          @media screen and (min-width: $md) {
            aspect-ratio: 3;
          }

          @media screen and (max-width: $md) {
            aspect-ratio: 2;
          }
        }

        &.video {          
          @media screen and (min-width: $md) {
            padding-left: $gap;
            padding-right: $gap;
          }

          @media screen and (max-width: $md) {
            padding-left: $gap/2;
            padding-right: $gap/2;
          }
          
          .video-wrap {
            overflow: hidden;
            display: block;
            width: 100%;
            background-color: $black;

            @media screen and (min-width: $md) {
              min-height: 789px;
              aspect-ratio: 21 / 9;
            }

            @media screen and (max-width: $md) {
              aspect-ratio: 1.8;
            }

            iframe {
              display: block;
              border: none;
              object-fit: cover;
              width: 100% !important;
              height: 100% !important;
              pointer-events: none;

              @media screen and (min-width: $md) {
                transform: scale(1.45);
              }

              @media screen and (max-width: $md) {
                transform: scale(2);
              }
            }
          }
        }
      }
      
      .page-intro {
        padding-top: $gap;
        background-color: var(--theme-color);
        
        @media screen and (min-width: $md) {
          padding-bottom: 90px;
        }

        @media screen and (max-width: $md) {
          padding-bottom: $gap;
        }

        .grid {
          gap: $gap;
          grid-template-columns: repeat(2, 1fr);

          @media screen and (max-width: $md) {
            grid-template-columns: repeat(1, 1fr);
          }

          h1,
          h2 {
            br {
              @media screen and (max-width: $md) {
                display: none;
              }
            }
          }

          .intro-text {
            p {
              font-weight: $font-medium;
            }
          }
        }
      }
    }

    &:not(.black-text) {
      section.page-hero {
        .page-intro {
          h1,
          h2 {
            color: $white;
          }

          .intro-text {
            p {
              color: $white;
            }
          }
        }
      }
    }

    // Section Hero
    section.section-hero {
      overflow: hidden;

      &:not(.no-margin) {
        &:not(:first-child) {
          margin-top: $gap*2;
  
          @media screen and (max-width: $md) {
            margin-top: $gap;
          }
        }
  
        &:not(:last-child) {
          margin-bottom: $gap*3;
        }
      }

      .subtitle {
        margin-bottom: 20px;
        font-size: 40px;
        line-height: 52px;
        text-decoration: underline;
        text-transform: uppercase;
        font-weight: $font-bold;
        color: $black;

        @media screen and (max-width: $md) {
          font-size: 24px;
          line-height: 32px;
        }

        a {
          color: inherit;
        }
      }

      .section-title {
        gap: $gap;
        grid-template-columns: repeat(2, 1fr);

        @media screen and (max-width: $md) {
          grid-template-columns: repeat(1, 1fr);
          padding-right: 0;
        }

        p {
          margin-left: -$gap;
          position: relative;
          padding: $marginReference $marginReference*2 $marginReference $gap;
          background-color: var(--theme-color);

          &:before {
            @media screen and (min-width: $md) {
              content: "";
              display: block;
              background-color: inherit;
              height: 100%;
              width: 100%;
              position: absolute;
              z-index: -1;
              left: -100%;
              top: 0;
            }
          }
        }

        & + .section-content {
          margin-top: 40px;
        }
      }

      .section-content {
        gap: $gap;
        grid-template-columns: repeat(2, 1fr);

        @media screen and (max-width: $md) {
          gap: $marginReference*2;
          grid-template-columns: repeat(1, 1fr);
        }

        p.h2,
        p.h3,
        p.h4 {
          br {
            @media screen and (max-width: $md) {
              // display: none;
            }
          }
        }

        .section-description {
          a.cta {
            &:not(:only-child) {
              margin-top: $marginReference*2;
            }
          }

          &:not(.color-white) {
            a.cta {
              background-color: var(--theme-color);
            }
          }
        }
      }

      &.has-image {
        .grid {  
          @media screen and (min-width: $md) {
            gap: $gap;
            grid-template-columns: repeat(2, 1fr);
          }

          @media screen and (max-width: $md) {
            gap: $gap/2;
          }
        }

        .section-banner {
          img {
            object-fit: cover;
            aspect-ratio: 5 / 6;
            width: 100%;
          }
        }

        .section-content {
          margin-top: auto;

          .section-description {
            margin-top: $marginReference*5;

            @media screen and (max-width: $md) {
              margin-top: $marginReference*2;
            }

            a.cta {
              &:not(:only-child) {
                margin-top: $marginReference*4;

                @media screen and (max-width: $md) {
                  margin-top: $marginReference*3;
                }
              }
            }
          }
        }
      }

      &:has(+ .highlights-container.parent-no-mb) {
        margin-bottom: 0;
      }
    }

    &.black-text {
      section.section-hero {
        .section-content {
          .section-description {
            a.cta {
              color: $black;

              &:hover {
                border-color: $black;
                background-color: transparent;
              }
            }
          }
        }
      }
    }

    &:not(.black-text) {
      section.section-hero {
        .section-title {
          p {
            color: $white;
          }
        }

        .section-content {
          p.h2,
          p.h3,
          p.h4 {
            &:not(.subtitle):not(.color-black):not(.color-white) {
              color: var(--theme-color);
            }

            &.color-white {
              color: $white;
            }
          }

          .section-description {
            &.color-white {
              p {
                color: $white;
              }

              a.cta {
                background-color: var(--theme-color);
              }
            }

            a.cta {
              color: $white;

              &:hover {
                color: var(--theme-color);
                border-color: var(--theme-color);
                background-color: transparent;
              }
            }
          }
        }
      }
    }

    // Favorite Button
    .simplefavorite-button {
      border: 0;
      border-color: inherit;
      background: transparent;
      border-radius: 0;
      padding: 0;
      -webkit-appearance: none;
      appearance: none;
      display: flex;
      align-items: center;
      cursor: pointer;
      font-size: 14px;
      line-height: 20px;
      font-weight: $font-bold;
      font-family: $font-azomono;

      .simplefavorites-loading {
        margin-left: 0;
      }

      &:hover {
        opacity: .6;
      }

      &.active {
        opacity: 1;

        &:hover {
          opacity: .6;
        }
      }
    }

    // Highlights Block
    section.highlights-block {
      &:not(:last-child):not(:has(+ .has-quick-guides)) {
        @media screen and (min-width: $md) {
          margin-bottom: $gap*3;
        }

        @media screen and (max-width: $md) {
          margin-bottom: $gap*2;
        }
      }

      // Quick Guides
      &.has-quick-guides {
        padding-top: $marginReference*8;
        background-color: var(--theme-color);

        .section-hero {
          padding-bottom: $marginReference*2;
        }
      }

      // Agenda
      &.has-agenda {
        .section-hero {
          padding-top: 40px;
          padding-bottom: $marginReference*4;
        }

        &:has(> .section-hero) {
          margin-top: 0;
          background-color: var(--theme-color);
        }

        &:not(:has(> .section-hero)) {
          &:not(:last-child) {
            margin-bottom: $marginReference*2;
          }
          
          .highlights-container {
            position: relative;

            .highlights-wrap {
              padding-top: 0;
              
              &:before {
                content: "";
                width: 100%;
                position: absolute;
                height: 102px;
                top: 0;
                left: 0;
                background-color: var(--theme-color);
                z-index: -1;
    
                @media screen and (max-width: $md) {
                  // height: 380px;
                }
              }

              article {
                .highlight-content {
                  border: 2px solid $black;
                }
              }
            }
          }
        }
      }

      // Directory
      & + .highlights-block {
        &:last-child {
          &:has(> .highlights-container.is-directory) {
            @media screen and (min-width: $md) {
              margin-bottom: $gap*3;
            }

            @media screen and (max-width: $md) {
              margin-bottom: $gap*2;
            }
          }
        }
      }
    }

    &:not(.black-text) {
      section.highlights-block {
        &.has-quick-guides {
          .section-hero {
            .section-content {
              .section-description {
                a.cta {
                  &:not(:hover) {
                    background-color: $white;
                    color: var(--theme-color);
                  }

                  &:hover {
                    color: $white;
                    border-color: $white;
                  }  
                }
              }
            }
          }
        }

        &.has-agenda {
          .section-hero {
            .section-content {
              .section-description {
                a.cta {
                  &:not(:hover) {
                    background-color: $white;
                    color: var(--theme-color);
                  }

                  &:hover {
                    color: $white;
                    border-color: $white;
                  }  
                }
              }
            }
          }
        }
      }
    }

    // Highlights Container
    .highlights-container {
      .highlights-wrap {
        padding-top: 40px;
        padding-bottom: 40px;

        &:not(.no-bg) {
          background-color: var(--theme-color);
        }

        &:first-child {
          .grid,
          .swiper-container {
            &:not(.no-offset) {
              margin-top: -#{($gap * 2) + 40px};
            }
          }
        }
      }

      .grid-title {
        margin-bottom: 40px;
      }

      .grid {
        gap: $gap;

        &:not(.grid-2):not(.grid-3):not(.grid-4) {
          @media screen and (min-width: $sm) {
            grid-template-columns: repeat(2, 1fr);
          }
        }

        &.grid-2 {
          @media screen and (min-width: $sm) {
            grid-template-columns: repeat(2, 1fr);
          }

          .highlight-excerpt {
            @media screen and (min-width: $md) {
              min-height: 96px;
            }
          }
        }

        &.grid-3 {
          @media screen and (min-width: $md) {
            gap: $gap $gap/2;
            grid-template-columns: repeat(3, 1fr);
          }

          @media screen and (min-width: $sm) and (max-width: $md) {
            gap: $gap/2;
            grid-template-columns: repeat(2, 1fr);
          }

          .highlight-excerpt {
            font-size: 16px;
            line-height: 20px;

            @media screen and (min-width: $md) {
              min-height: 80px;
            }
          }
        }

        &.grid-4 {
          @media screen and (min-width: $md) {
            gap: $marginReference;
            grid-template-columns: repeat(4, 1fr);
          }

          @media screen and (min-width: $sm) and (max-width: $md)  {
            grid-template-columns: repeat(2, 1fr); 
          }

          @media screen and (max-width: $md) {
            column-gap: $marginReference;
          }

          .highlight-excerpt {
            font-size: 16px;
            line-height: 20px;

            @media screen and (min-width: $md) {
              min-height: 80px;
            }
          }
        }
      }

      .swiper-container {
        .swiper-button-prev,
        .swiper-button-next {
          color: $white;
          top: 350px;
        }

        .swiper-wrapper {
          @media screen and (min-width: $md) {
            align-items: stretch;
            height: 100% !important;
          }
        }
      }
      
      article {
        @media screen and (min-width: $md) {
          height: 100%;
        }

        .highlight-image {
          display: block;
          background-color: $black;

          img {
            object-fit: cover;
            // aspect-ratio: 4 / 3;
            aspect-ratio: 1;
            width: 100%;
          }
        }

        .highlight-content {
          @media screen and (min-width: $md) {
            flex: 1;
          }
          
          .highlight-title {
            width: 100%;

            @media screen and (min-width: $md) {
              flex: 1;
            }

            h3 {
              flex: 1;
              letter-spacing: 0;
              height: 100%;
            }

            a {
              height: 100%;
              display: flex;
              align-items: center;
            }

            a:not(.simplefavorite-button):not(.info) {
              font-weight: $font-bold;
              text-transform: uppercase;
              flex: 1;
            }

            .simplefavorite-button {
              span {
                display: none;
              }
            }

            &:not(.color-white):not(.bg-black) {
              background-color: $white;

              .simplefavorite-button {
                color: var(--theme-color);

                svg {
                  fill: var(--theme-color);
                }
              }
            }

            &.color-white {
              &:not(.bg-black) {
                background-color: var(--theme-color);
              }
            }

            &:not(.small-text) {
              a:not(.simplefavorite-button) {
                font-size: 36px;
                line-height: 40px;
                padding: 24px 0 24px 30px;

                @media screen and (max-width: $md) {
                  font-size: 20px;
                  line-height: 24px;
                  padding: 20px 0 20px 20px;
                }
              }

              .simplefavorite-button {
                padding: 24px 20px 24px;

                @media screen and (max-width: $md) {
                  padding: 20px;
                }

                svg {
                  width: 42px;
                  height: 42px;

                  @media screen and (max-width: $md) {
                    width: 24px;
                    height: 24px;
                  }
                }
              }
            }

            &.small-text {
              a:not(.simplefavorite-button) {
                font-size: 18px;
                line-height: 22px;
                padding: $marginReference 0 $marginReference 20px;
              }

              .simplefavorite-button {
                padding: $marginReference 20px;

                svg {
                  width: 24px;
                  height: 24px;
                }
              }
            }

            &.bg-black {
              background-color: $black;
            }
          }

          .highlight-excerpt {
            @media screen and (min-width: $md) {
              min-height: 96px;
            }
      
            &:not(.no-clamp) {
              overflow: hidden;
              text-overflow: ellipsis;
              display: -webkit-box;
              -webkit-line-clamp: 4;
              -webkit-box-orient: vertical;
            }

            &:not(:first-child) {
              margin-top: 24px;
            }

            &.line-3 {
              @media screen and (min-width: $md) {
                min-height: 80px;
              } 
            }
          }

          .highlight-cta {
            margin-top: 24px;
          }
        }
      }

      // Quick Guides
      article.highlight_category-guias-rapidos {
        .highlight-content {
          &.border-black {
            border: 2px solid $black;
          }

          .highlight-title:not(.color-white) {
            a {
              &:not(.info) {
                padding: $marginReference 24px;
                border-right: 2px solid $black;
              }
              
              &.info {
                font-size: 14px;
                text-transform: uppercase;
                padding: $marginReference 24px;
              }
            }
          }
        }
      }

      // Events
      article.event {
        .date {
          background-color: $black;
          padding: 40px 24px 20px 24px;
          gap: $marginReference;
          color: $white;
          font-size: 24px;
          line-height: 30px;
          text-transform: uppercase;
          font-weight: $font-regular;
          letter-spacing: 0;
        }

        .highlight-content {
          &.border-black {
            border: 2px solid $black;
          }

          .highlight-title {
            a {
              // &:not(.info),
              &:not(.simplefavorite-button) {
                padding: 12px 12px 12px 20px;
                border-right: 2px solid $black;
              }
              
              // &.info,
              &.simplefavorite-button {
                font-size: 14px;
                text-transform: uppercase;
                padding: $marginReference 24px;
              }
            }
          }
        }
      }

      // Result
      article.result {
        gap: $gap/2;

        @media screen and (max-width: $sm) {
          flex-direction: column;
        }

        .highlight-content-image {
          @media screen and (min-width: $sm) and (max-width: $md) {
            max-width: 340px;
          }
        }

        .highlight-content {
          .highlight-title {
            &.color-white {
              background-color: $black;
            }

            &.small-text {
              a:not(.simplefavorite-button) {
                font-size: 16px;
                line-height: 20px;
              }

              .simplefavorite-button {
                svg {
                  width: 20px;
                  height: 20px;
                }
              }
            }
          }
          
          .date {
            text-transform: uppercase;
            font-weight: $font-medium;
            display: block;
            margin-bottom: $marginReference*2;
          }

          .highlight-excerpt {
            font-size: 14px;
            line-height: 20px;
          }

          a.highlight-cta {
            font-size: 15px;
            line-height: 20px;

            &:not(:hover) {
              background-color: $black;
            }

            &:hover {
              color: $black;
              border-color: $black;
            }
          }
        }
      }

      // Restaurant
      article.restaurant {
        gap: $gap/2;

        @media screen and (max-width: $sm) {
          flex-direction: column;
        }

        .highlight-content-image {
          @media screen and (min-width: $sm) and (max-width: $md) {
            max-width: 340px;
          }
        }

        .highlight-content {
          .highlight-title {
            &.small-text {
              a:not(.simplefavorite-button) {
                font-size: 16px;
                line-height: 20px;
              }

              .simplefavorite-button {
                svg {
                  width: 20px;
                  height: 20px;
                }
              }
            }
          }
        }

        .restaurant-metadata {
          gap: 10px;

          p {
            gap: 10px;
            font-size: 14px;
            line-height: 20px;
            margin-bottom: 0;
          }

          svg {
            display: block;
            width: 24px;
            height: 24px;
          }
        }
      }

      // Results Grid
      .grid.has-results {
        row-gap: $marginReference*5;

        @media screen and (min-width: $md) {
          padding-bottom: $gap*2;
        }

        @media screen and (max-width: $md) {
          padding-bottom: $gap;
          grid-template-columns: repeat(1, 1fr);
        }
      }

      // Directory
      &.is-directory {
        .highlights-wrap {
          padding-top: 60px;
          padding-bottom: 0;
        }
        
        .table-scroll-wrapper {
          width: 100%;
          overflow-x: auto;
          -webkit-overflow-scrolling: touch;
          padding-bottom: $marginReference;

          table {
            min-width: max-content;
            border-collapse: collapse;
            width: 100%;
            margin: 0;

            th,
            td {
              text-align: left; 

              &:not(:first-child) {
                padding-left: 15px;
              }

              &:not(:last-child) {
                padding-right: 15px;
              }
            }

            thead {              
              tr {
                th {
                  text-transform: uppercase;
                  font-weight: $font-bold;
                  font-size: 14px;
                  line-height: 100%;
                  letter-spacing: 0;
                  padding-bottom: 24px;

                  &.asc::after {
                    content: " ▲";
                  }
                  
                  &.desc::after {
                    content: " ▼";
                  }
                }
              }
            }

            tbody {
              tr {
                border-bottom: 1px solid $black;

                &:first-child {
                  border-top: 2px solid $black;
                }

                &.va-top {
                  vertical-align: top;
                }

                td {
                  font-size: 14px;
                  line-height: 100%;
                  letter-spacing: 0;
                  padding-top: 20px;
                  padding-bottom: 20px;

                  &.td-wrap {
                    max-width: 400px;
                  }

                  &.td-lh-xl {
                    span {
                      display: block;
                      min-height: 14px;

                      &:not(:last-child) {
                        margin-bottom: 8px;
                      }
                    }
                  }
                }
              }
            }
          }
        }

        a.cta {
          margin-top: $marginReference*2;
          background-color: var(--theme-color);
        }
      }
    }

    &.black-text {
      .highlights-container {
        article {
          .highlight-content {
            .highlight-title {
              color: $black;

              &:not(.color-white):not(.bg-black) {
                .simplefavorite-button {
                  color: $black;
                  
                  svg {
                    fill: $black;
                  }
                }
              }
            }

            .highlight-cta:not(.bg-black) {
              color: $black;
              
              &:not(:hover) {
                background-color: var(--theme-color);
              }

              &:hover {
                border-color: $black;
              }
            }
          }

          .restaurant-metadata {
            svg {
              color: $black;
            }
          }
        }

        &.has-directory {
          a.cta {
            color: $black;

            &:hover {
              border-color: $black;
              background-color: transparent;
            }
          }
        }
      }
    }

    &:not(.black-text) {
      .highlights-container {
        article {
          .highlight-content {
            .highlight-title {
              &.color-theme {
                a:not(.simplefavorite-button) {
                  color: var(--theme-color);
                }
              }

              &.color-white {
                a:not(.simplefavorite-button) {
                  color: $white;
                }
  
                .simplefavorite-button {
                  color: $white;
  
                  svg {
                    fill: $white;
                  }
                }
              }
            }
            
            .highlight-excerpt {
              &:not(.reverse) {
                color: $white;
              }
            }

            .highlight-cta {
              &:not(.reverse):not(.bg-black) {
                &:not(:hover) {
                  color: var(--theme-color);
                }
  
                &:hover {
                  border-color: $white;
                }
              }
  
              &.reverse {
                color: $white;
                background-color: var(--theme-color);
  
                &:hover {
                  background-color: transparent;
                  border-color: var(--theme-color);
                  color: var(--theme-color);
                }
              }
            }
          }

          .restaurant-metadata {
            svg {
              color: var(--theme-color);
            }
          }
        }

        &.has-directory {
          a.cta {
            color: $white;

            &:hover {
              color: var(--theme-color);
              border-color: var(--theme-color);
              background-color: transparent;
            }
          }
        }
      }
    }
    
    // Load More
    .load-more-container {
      margin-top: $marginReference*3;

      button {
        appearance: none;
        -webkit-appearance: none;
        border: 0;
        outline: none;
        border-radius: 0;
        cursor: pointer;
        padding: 0;
        margin: 0;
        @include cta;
        line-height: 1;
        font-family: $font-azomono;
      }
    }

    &.black-text {
      .load-more-container {
        button {
          color: $black;

          &:not(:hover) {
            background-color: var(--theme-color);
          }

          &:hover {
            border-color: $black;
          }
        }
      }
    }

    &:not(.black-text) {
      .load-more-container {
        button {
          &:not(:hover) {
            color: $white;
            background-color: var(--theme-color);
          }

          &:hover {
            background-color: transparent;
            border-color: var(--theme-color);
            color: var(--theme-color);
          }
        }
      }
    }

    // No Results
    section.no-results {
      padding-top: 40px;
      padding-bottom: 40px;
      
      .wrap {
        p {
          font-weight: $font-medium;
          font-size: 24px;
          line-height: 32px;
        }
      }
    }

    // Swiper
    .swiper-container {
      width: 100%;
      // height: 100%;
      position: relative;
      overflow: hidden;

      .swiper-wrapper {
        box-sizing: border-box;
      }

      .swiper-button-prev,
      .swiper-button-next {
        width: 48px;
        height: 48px;
        color: var(--theme-color);

        @media screen and (max-width: $md) {
          display: none;
        }

        &:after {
          display: none;
        }

        svg {
          height: 48px;
          width: 48px;
          display: block;
        }

        &.swiper-button-prev {
          svg {
            transform: rotate(180deg);
          }
        }
      }
    }

    // Back To Top
    .back-to-top {
      width: 50px;
      height: 50px;
      bottom: 24px;
      right: 24px;
      color: $white;
      border: 2px solid $white;
      background-color: $red;
      position: fixed;
      z-index: 9998;
      
      @media screen and (max-width: $md) {
        display: none !important;
      }
    }

    // Pagination
    .pagination {
      margin-bottom: $marginReference*2;

      ul {
        gap: $marginReference;

        li {
          a,
          span {
            font-size: 16px;
            line-height: 24px;
          }

          .current {
            font-weight: $font-bold;
          }
        }
      }
    }

  }
}

/* ------------------------------ */
/*********** Front Page ***********/
/* ------------------------------ */
body.page-template-page-front {
  #page {
    // Hero Slides
    section.hero-slides {
      @media screen and (min-width: $md) {
        margin-bottom: 78px;
      }

      @media screen and (max-width: $md) {
        margin-bottom: 25px;
      }
      
      .swiper-container {
        .swiper-slide {
          max-width: inherit;

          @media screen and (max-width: $md) {
            padding-left: 0;
            padding-right: 0;
          }
        }
      }

      .section-banner {
        position: relative;

        &:has(iframe) {
          display: block;
          width: 100%;
          overflow: hidden;

          @media screen and (min-width: $md) {
            min-height: 789px;
            aspect-ratio: 21 / 9;
          }

          @media screen and (max-width: $md) {
            aspect-ratio: 1.8;
          }
        }

        a {
          &:has(iframe) {
            display: block;
            width: 100%;
            overflow: hidden;

            @media screen and (min-width: $md) {
              min-height: 789px;
              aspect-ratio: 21 / 9;
            }

            @media screen and (max-width: $md) {
              aspect-ratio: 1.8;
            }
          }
        }

        iframe {
          display: block;
          border: none;
          object-fit: cover;
          width: 100% !important;
          height: 100% !important;
          pointer-events: none;

          @media screen and (min-width: $md) {
            transform: scale(1.45);
          }

          @media screen and (max-width: $md) {
            transform: scale(2);
          }
        }

        img {
          width: 100%;
          aspect-ratio: 16 / 9;
          display: block;
          object-fit: cover;

          @media screen and (min-width: $md) {
            max-height: 789px;
          }
        }

        .cta {
          position: absolute;
          background-color: var(--theme-color);
          pointer-events: none;

          @media screen and (min-width: $md) {
            left: $marginReference*2;
            bottom: $marginReference*2;
          }

          @media screen and (max-width: $md) {
            left: $marginReference;
            bottom: $marginReference;
          }
        }

        &:hover {
          .cta {
            @media screen and (min-width: $md) {
              background-color: $white;
            }
          }
        }
      }
    }

    &:not(.black-text) {
      section.hero-slides {
        .swiper-container {
          .swiper-slide {
            &:hover {
              .cta {
                @media screen and (min-width: $md) {
                  color: var(--theme-color);
                  border-color: var(--theme-color);
                }
              }
            }
          }
        }
      }
    }

    &.black-text {
      section.hero-slides {
        .swiper-container {
          .swiper-slide {
            &:hover {
              .cta {
                @media screen and (min-width: $md) {
                  border-color: $black;
                }
              }
            }

            .section-banner {
              .cta {
                color: $black;
              }
            }
          }
        }
      }
    }

    // Agenda (Annual)
    section.agenda {
      .highlights-container {
        margin-top: 175px;

        .highlights-wrap {
          .grid {
            margin-top: -160px;
          }
        }
      }
    }

    // The City
    section.city {
      padding-top: $marginReference*4;
      padding-bottom: $gap*3;
      background-color: var(--theme-color);

      &:not(:has(+ .section-hero)):not(:has(+ .highlight-category-blocks)) {
        margin-bottom: -78px;

        & + section {
          padding-top: 0;
        }
      }

      .section-content {
        .section-description {
          a.cta {
            &:not(:hover) {
              background-color: $white;
            }
          }
        }
      }
    }

    &:not(.black-text) {
      section.city {
        .section-content {
          h2,
          h3,
          p {
            color: $white;
          }

          .section-description {
            a.cta {
              color: var(--theme-color);

              &:hover {
                color: $white;
                border-color: $white;
              }
            }
          }
        }
      }
    }

    // Slides
    section.slides {
      padding-top: 78px;
    }

    // Highlight Category Blocks
    section.highlight-category-blocks {
      padding-top: 78px;

      &:last-child {
        margin-bottom: 78px;
      }

      & > section.section-hero {
        &:not(:first-child) {
          padding-top: 78px;
        }

        &:last-child {
          // margin-bottom: 78px;
        }

        &.is-flipped {
          .grid {
            @media screen and (min-width: $md) {
              .section-banner {
                order: 2;
              }

              .section-content {
                order: 1;
              }
            }
          }
        }
      }

      .highlights-block {
        background-color: var(--theme-color);

        &:not(:first-child) {
          margin-top: 78px;
        }

        &:not(:last-child) {
          margin-bottom: 0;
        }

        .section-hero {
          padding-top: 60px;
          padding-bottom: 30px;

          .section-content {
            .section-description {
              a.cta {
                &:not(:hover) {
                  background-color: $white;
                }
              }
            }
          }
        }

        &.has-marketplace,
        &.has-highlights {
          margin-bottom: 70px;

          & + .has-marketplace,
          & + .has-highlights {
            margin-top: 150px;
          }

          .highlights-container {
            .highlights-wrap {
              .grid {
                margin-bottom: -95px;
              }
            }
          }
        }
      }

      &:last-child {
        .highlights-block {
          margin-bottom: 0;
          
          &:last-child {
            &.has-marketplace,
            &.has-highlights {
              .highlights-container {
                .highlights-wrap {
                  .grid {
                    margin-bottom: 0;
                  }
                }
              }
            }
          }
        }
      }
    }

    &:not(.black-text) {
      section.highlight-category-blocks {
        .highlights-block {
          .section-hero {
            .subtitle {
              color: $white;
            }

            .section-content {
              p.h2,
              p.h3,
              p.h4,
              h3,
              p {
                color: $white;
              }

              .section-description {
                a.cta {
                  color: var(--theme-color);

                  &:hover {
                    color: $white;
                    border-color: $white;
                  }
                }
              }
            }
          }
        }
      }
    }

    // Marketplace
    section.marketplace {
      padding-top: $gap*2;
      padding-bottom: $gap;

      .highlights-container {
        position: relative;

        .highlights-wrap {
          padding-top: 60px;
          padding-bottom: 0;

          &:after {
            /*
            content: "";
            display: block;
            background-color: var(--theme-color);
            height: 130px;
            width: 100%;
            position: absolute;
            z-index: -1;
            left: 0;
            bottom: -50px;
            */
          }
        }
      }
    }

    // Favorites
    section.favorites {
      padding-top: $gap*2;
      padding-bottom: $gap;

      .highlights-container {
        position: relative;

        .highlights-wrap {
          padding-top: 60px;
          padding-bottom: 0;

          &:after {
            content: "";
            display: block;
            background-color: var(--theme-color);
            height: 130px;
            width: 100%;
            position: absolute;
            z-index: -1;
            left: 0;
            bottom: -50px;
          }
        }
      }
    }
  }
}

/* ---------------------------- */
/*********** Business ***********/
/* ---------------------------- */
body.is-b2b {
// body.page-id-5396,
// body.parent-pageid-5396,
// body.parent-pageid-8891,
// body.term-140 {
  #page {
    header.site-header {
      & > .flex {
        .main-navigation {
          ul#primary-menu,
          ul#secondary-menu {
            .home-business-toggle {
              display: block;
            }

            .business-home-toggle {
              display: none;
            }
          }
        }
      }
    }
  }
}

/* ------------------------------------ */
/*********** Single Highlight ***********/
/* ------------------------------------ */
body.single-highlight,
body.single-event {
  #page {
    // Highlight Hero
    section.highlight-hero {
      .grid {
        gap: $gap;
        grid-template-columns: minmax(0, 680px) minmax(0, 600px);

        @media screen and (max-width: $md) {
          grid-template-columns: repeat(1, 1fr);
        }
      }

      .highlight-metadata {
        padding-bottom: $marginReference*2;

        @media screen and (min-width: $md) {
          min-height: 402px;
          padding-top: 20px;
        }

        .highlight-banner-spacer {
          opacity: 0;
          pointer-events: none;

          @media screen and (max-width: $md) {
            display: none;
          }
        }

        .highlight-metadata-content {
          h1 {
            margin-bottom: 20px;

            overflow: hidden;
            text-overflow: ellipsis;
            display: -webkit-box;
            -webkit-line-clamp: 4;
            -webkit-box-orient: vertical;

            br {
              @media screen and (max-width: $md) {
                // display: none;
              }
            }
          }

          .highlight-meta,
          .highlight-favorite,
          .restaurant-metadata {
            font-size: 14px;
            line-height: 20px;
            font-weight: $font-bold;

            &:not(:last-child) {
              margin-bottom: 10px;
            }
          }

          .highlight-date {
            font-size: 18px;
            line-height: 24px;
            font-weight: $font-bold;

            &:not(:last-child) {
              margin-bottom: 10px;
            }
          }

          a,
          .highlight-meta,
          .simplefavorite-button,
          .restaurant-metadata {
            gap: 12px;

            svg {
              width: 22px;
              height: 22px;
            }
          }
        }
      }
      
      .highlight-intro {
        padding-bottom: $marginReference*4;
        background-color: var(--theme-color);

        @media screen and (max-width: $md) {
          margin-top: 200px;
        }

        .highlight-banner {
          margin-top: -402px;

          @media screen and (max-width: $md) {
            margin-top: -200px;
          }
          
          img {
            object-fit: cover;
            aspect-ratio: 5 / 6;
            width: 100%;
          }
        }

        .highlight-content {
          @media screen and (min-width: $md) {
            padding-top: $gap;
            // padding-right: 78px;
          }
  
          & > p {
            font-weight: $font-medium;
            font-size: 24px;
            line-height: 32px;
          }

          .highlight-download {
            margin-top: $marginReference*2;
          }

          .highlight-share {
            margin-top: auto;
            padding-top: $gap;

            & > p {
              font-weight: $font-bold;
              font-size: 16px;
              line-height: 20px;
            }

            ul {
              margin-top: 14px;
              gap: 8px;
    
              li {
                a {
                  text-indent: -9999px;
                  width: 42px;
                  height: 42px;
                  border-radius: 42px;
                  background-color: $white;

                  svg {
                    width: 20px;
                    height: 20px;
                  }
                }
              }
            }
          }
        }
      }
    }

    &.black-text {
      section.highlight-hero {
        .highlight-download {
          color: $black;
          border: 2px solid;
          background-color: transparent;

          &:not(:hover) {
            background-color: $white;
            border-color: $white;
          }
        }
      }
    }

    &:not(.black-text) {
      section.highlight-hero {
        .highlight-metadata {
          * {
            color: var(--theme-color);
          }
        }

        .highlight-intro {
          .highlight-content {
            p {
              color: $white;
            }

            .highlight-download {
              color: var(--theme-color);

              &:hover {
                color: $white;
              }
            }

            .highlight-share {
              ul {
                li {
                  a {
                    color: var(--theme-color);
                    background-color: $white;
                  }
                }
              }
            }
          }
        }
      }
    }

    // Highlight Additional Content
    section.highlight-additional-content {
      padding-top: $marginReference*4;

      &:not(:has(+ section)) {
        padding-bottom: $marginReference*4;
      }
      
      .grid {
        gap: $gap;
        grid-template-columns: repeat(2, 1fr);

        @media screen and (max-width: $sm) {
          grid-template-columns: repeat(1, 1fr);
        }  
      }

      .highlight-body-content {
        &.col {
          @media screen and (min-width: $md) {
            column-gap: $gap;
          }

          &.col-2 {
            @media screen and (min-width: $md) {
              column-count: 2;
            }
  
            & > * {
              @media screen and (min-width: $md) {
                break-inside: avoid;
              }
            }
          }
        }

        p {
          &:has( > strong:only-child):not(:first-child) {
            // margin-top: $marginReference*3;
          }
        }

        p,
        li {
          a {
            text-decoration: underline;

            &:hover {
              @media screen and (min-width: $md) {
                opacity: .6;
              }
            }
          }
        }
      }

      .highlight-quote {
        blockquote {
          font-weight: $font-bold;
          font-style: italic;
          font-size: 36px;
          line-height: 40px;
        }
      }
    }

    &:not(.black-text) {
      section.highlight-additional-content {
        .highlight-quote {
          blockquote {
            color: var(--theme-color);
          }
        }  
      }
    }

    // Highlight Files
    section.highlight-files {
      padding-top: $marginReference*4;
      padding-bottom: $marginReference*4;

      .wrap {
        .file {
          border-top: 1px solid;
          padding-top: $marginReference;
          margin-top: $marginReference;
          position: relative;

          @media screen and (max-width: $md) {
            flex-direction: column;
            justify-content: flex-start;
            align-items: flex-start;
            gap: $marginReference;
          }
    
          
          &:last-child {
            border-bottom: 1px solid;
            padding-bottom: $marginReference;
          }

          a.full {
            position: absolute;
            width: 100%;
            height: 100%;
          }

          a.cta {
            display: flex;
            gap: $marginReference;
            background-color: var(--theme-color);
            z-index: 10;
            position: relative;

            &:hover {
              background-color: transparent;
            }

            svg {
              transform: rotate(90deg);
            }
          }
        }
      }
    }

    &.black-text {
      section.highlight-files {
        .file {
          a.cta {
            color: $black;

            &:hover {
              border-color: $black;
            }
          }
        }
      }
    }

    &:not(.black-text) {
      section.highlight-files {
        .file {

          a.cta {
            color: $white;

            &:hover {
              color: var(--theme-color);
              border-color: var(--theme-color);
            }
          }
        }  
      }
    }

    // Highlight Related
    section.highlight-related {
      margin-top: $marginReference*4;

      .highlights-container {
        .highlights-wrap {
          padding-top: 60px;
          position: relative;

          &:before {
            content: "";
            width: 100%;
            position: absolute;
            height: 550px;
            top: 0;
            left: 0;
            background-color: var(--theme-color);
            z-index: -1;

            @media screen and (max-width: $md) {
              height: 380px;
            }
          }

          & > h2 {
            font-size: 44px;
            padding-bottom: 40px;
          }

          .grid {
            article {
              .highlight-content {
                .highlight-excerpt {
                  @media screen and (min-width: $md) {
                    padding-right: 158px;
                  }
                }
              }
            }
          }
        }
      }
    }

    &:not(.black-text) {
      section.highlight-related {
        .highlights-container {
          .highlights-wrap {
            & > h2 {
              color: $white;
            }
          }
        }  
      }
    }

    // Highlight Carousel
    section.highlight-carousel {
      padding-top: $marginReference*4;
      padding-bottom: $marginReference*4;

      .wrap {
        .swiper-slide {
          height: auto;

          img {
            height: 100%;
            width: 100%;
            object-fit: cover;
          }
        }
      }
    }
  }
}

/* -------------------------------- */
/*********** Single Event ***********/
/* -------------------------------- */
body.single-event {
  #page {
    section.highlight-hero {
      .highlight-intro {
        .highlight-banner {
          img {
            aspect-ratio: 1;
          }
        }
      }
    }
  }
}

/* -------------------------- */
/*********** Agenda ***********/
/* -------------------------- */
body.page-template-page-agenda {
  #page {
    #events-filters {
      & > p {
        font-size: 36px;
        padding-top: $gap*2;
        padding-bottom: 20px;
        background-color: var(--theme-color);

        span {
          display: block;
        }
      }

      form {
        .form-row {
          gap: $marginReference;
          padding-bottom: $gap;
          padding-top: $marginReference*2;

          @media screen and (max-width: $md) {
            flex-direction: column;
          }

          .filter {
            width: 100%;
            position: relative;

            @media screen and (min-width: $md) {
              max-width: 290px;
            }

            label {
              display: none;
            }

            svg {
              display: block;
              right: $marginReference;
              position: absolute;
              width: 24px;
              height: 24px;
              color: $black;
              pointer-events: none;
            }

            select,
            input,
            button[type="reset"] {
              appearance: none;
              -webkit-appearance: none;
              font-weight: $font-bold;
              font-family: $font-azomono;
              font-size: 20px;
              line-height: 24px;
              padding: 10px $marginReference;
              color: $black;
              text-transform: uppercase;
              border: 1px solid $black;
              border-radius: 0;
              outline: none;
              cursor: pointer;
              width: 100%;
              background: transparent;
            }

            input {
              &::placeholder {
                color: $black;
              }

              &::-webkit-search-decoration,
              &::-webkit-search-cancel-button,
              &::-webkit-search-results-button,
              &::-webkit-search-results-decoration {
                display: none;
              }
            }

            &.filter-categories {
              svg {
                transform: rotate(180deg);
              }
            }

            &.filter-search {
              @media screen and (min-width: $md) {
                transition: max-width .2s ease-in;
              }

              &:focus-within {
                @media screen and (min-width: $md) {
                  max-width: 400px;
                }
              }

              .search-input-wrapper {
                button {
                  appearance: none;
                  -webkit-appearance: none;
                  border: 0;
                  background: transparent;
                  outline: none;
                  border-radius: 0;
                  cursor: pointer;
                  padding: 0;
                  margin: 0;
                  line-height: 1;
                  display: block;
                  right: $marginReference;
                  position: absolute;
                  width: 24px;
                  height: 24px;
                  color: $black;

                  svg {
                    position: relative;
                    right: 0;
                  }
                }
              }
            }

            &.filter-reset {
              @media screen and (min-width: $md) {
                max-width: 220px;
              }

              button[type="reset"] {
                &:hover {
                  color: $white;
                  background-color: $black;
                }
              }
            }
          }
        }
      }
    }

    #ajax-event-results {
      padding-bottom: $gap*2;

      .grid-title {
        &:not(:first-of-type) {
          margin-top: $gap*2;
        }
      }
    }

    .agenda-loader {
      width: 100%;
      padding: 3rem 0;
      display: none;
      text-align: center;

      .spinner {
        width: 32px;
        height: 32px;
        border: 4px solid $red;
        border-top: 4px solid $white;
        border-radius: 50%;
        animation: spin 0.8s linear infinite;
        margin: 0 auto;
      }
      
      @keyframes spin {
        to {
          transform: rotate(360deg);
        }
      }
    }

    &:not(.black-text) {
      #events-filters {
        & > p {
          color: $white;
        }
      }
    }
  }
}

/* -------------------------------- */
/*********** Static Pages ***********/
/* -------------------------------- */
body.page-template-default:not(.home) {
  #page {
    // Page Sections
    .page-hero {
      & + .page-sections {
        section {
          &:first-child {
            &.media {
              .wrap {
                padding-top: 0;
              }

              .video,
              .images {
                margin-bottom: -160px;
              }

              & + section {
                margin-top: 110px;
              }
            }
          }
        }
      }
    }

    .page-sections {
      .section {
        &:last-child {
          &:not(.highlights) {
            // margin-bottom: $marginReference*2;
          }
        }
        
        &:not(:last-child) {
          // margin-bottom: $gap*2;
          
          @media screen and (max-width: $md) {
            // margin-bottom: $gap;
          }
        }

        // Text
        &.text {
          &:first-child {
            section.section-hero {
              margin-top: $gap*2;

              @media screen and (max-width: $md) {
                margin-top: $gap;
              }
            }
          }

          .section-hero {
            .section-content {
              &:first-child,
              &:only-child {
                padding-top: $marginReference*4;
              }
            }
          }

          .content {
            padding-top: $gap;
            padding-bottom: $gap;
    
            .columns {
              @media screen and (min-width: $md) {
                gap: $gap;
              }

              @media screen and (max-width: $md) {
                gap: $marginReference;
              }

              &:not(:has(.col-1:only-child)) {
                &.grid-2 {
                  @media screen and (min-width: $md) {
                    grid-template-columns: repeat(2, 1fr);
                  }    
                }
              }

              &:has(.col-1:only-child) {
                @media screen and (min-width: $md) {
                  grid-template-columns: minmax(0, 840px) 1fr;
                }
              }
            }

            h2,
            h3,
            h4 {
              display: block;
              margin-bottom: $marginReference;

              &:not(:first-child) {
                margin-top: $marginReference*4;
              }
            }

            h2 {
              font-size: 64px;
              line-height: 100%;
              font-family: $font-braga;

              @media screen and (max-width: $md) {
                font-size: 48px;
                line-height: 54px;
              }
            }

            h3 {
              font-size: 32px;
              line-height: 36px;

              @media screen and (max-width: $md) {
                font-size: 24px;
                line-height: 32px;
              }
            }

            h4 {
              font-size: 24px;
              line-height: 30px;

              @media screen and (max-width: $md) {
                font-size: 20px;
                line-height: 24px;
              }
            }

            p,
            li {
              a {
                text-decoration: underline;

                &:hover {
                  opacity: .6;
                }
              }

              & + ul {
                margin-top: $marginReference;
              }
            }

            a.cta {
              background-color: var(--theme-color);

              &:not(:only-child) {
                margin-top: $marginReference*3;

                @media screen and (max-width: $md) {
                  margin-top: $marginReference*3;
                }
              }
            }
    
            .section-cta {
              margin-top: $gap;
            }
          }

          &.has-bg {
            padding-bottom: $marginReference*3;

            &:has(+ .media:not(.has-bg)) {
              padding-bottom: 110px;
            }

            & + .media:not(.has-bg) {
              margin-top: -160px;
            }
          }

          &:has(+ .media.has-bg) {
            padding-bottom: 0;
          }

          & + .media.has-bg {
            .wrap {
              padding-top: 0;
            }

            &:has(+ section.has-bg) {
              .video,
              .images {
                margin-bottom: -160px;
              }

              & + section.has-bg {
                padding-top: 110px;
              }
            }
          }

          &:has(+ .text) {
            padding-bottom: 0;
          }
        }

        // Columns
        &.columns {
          .content {
            .intro {
              margin-bottom: $marginReference*3;

              @media screen and (min-width: $md) {
                width: 840px;
              }
            }

            .columns {
              @media screen and (min-width: $md) {
                column-gap: $marginReference*2;
                row-gap: $marginReference*7;
              }

              @media screen and (max-width: $md) {
                row-gap: $marginReference*5;
              }

              &.grid-3 {
                @media screen and (min-width: $md) {
                  grid-template-columns: repeat(3, 1fr);
                }    
              }

              .col {
                .col-title {
                  @media screen and (min-width: $md) {
                    min-height: 24px;
                  }

                  &:has(> strong:empty) {
                    @media screen and (max-width: $md) {
                      display: none;
                    }
                  }
                }

                .col-title {
                  margin-bottom: $marginReference*2;
                }

                .col-content {
                  font-size: 16px;
                  line-height: 22px;
                }
                
                .col-image {
                  width: 80%;
                  margin-bottom: $marginReference*2;

                  img {
                    width: auto;
                    height: 200px;
                    object-fit: contain;
                  }
                }
              }
            }
          }
        }

        // Highlights
        &.highlights {
          &:not(:first-child) {
            margin-top: $marginReference*11;

            @media screen and (max-width: $md) {
              // margin-top: $marginReference*6;
            }

            .highlights-container {
              .highlights-wrap {
                .grid {
                  margin-top: -140px;
                }
              }
            }
          }

          &:not(:last-child) {
            margin-bottom: $gap*2;

            @media screen and (max-width: $md) {
              margin-bottom: $gap;
            }
          }
        }

        // Media
        &.media {
          .wrap {
            padding-top: $gap;
            padding-bottom: $gap;

            .images {
              display: grid;

              @media screen and (min-width: $md) {
                gap: $gap;
                grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
              }

              @media screen and (max-width: $md) {
                gap: $gap/2;
              }

              picture {
                &:not(:only-child) {
                  img {
                    aspect-ratio: 1;
                    object-fit: cover;
                  }
                }
              }

              img {}
            }

            .video {
              position: relative;
              width: 100%;

              &:not(.video-file) {
                padding-bottom: 56.25%; /* 16:9 aspect ratio (9 ÷ 16 = 0.5625) */
                height: 0;
                overflow: hidden;

                iframe {
                  position: absolute;
                  top: 0;
                  left: 0;
                  border: 0;
                  width: 100%;
                  height: 100%;
                }
              }

              video {
                width: 100%;
                height: 100%;
                object-fit: cover;
              }
            }
          }

          &:not(.has-bg):has(+ section.text.has-bg) {
            .wrap {
              padding-bottom: 0;
            }

            & + section.text.has-bg {
              margin-top: -160px;
              padding-top: 160px;
            }
          }
        }
      }
    }

    &.black-text {
      .section {
        &.text {
          .content {
            a.cta {
              color: $black;

              &:hover {
                border-color: $black;
                background-color: transparent;
              }
            }
          }
        }
      }
    }

    &:not(.black-text) {
      .section {
        &.text {
          .content {
            a.cta {
              color: $white;

              &:hover {
                color: var(--theme-color);
                border-color: var(--theme-color);
                background-color: transparent;
              }
            }
          }
        }
      }
    }
  }
}

/* ------------------------------- */
/*********** Coming Soon ***********/
/* ------------------------------- */
body.page-template-page-coming_soon {
  background-color: $red;

  .modal-cacsp-position {
    display: none;
  }

  #page {

    header.site-header,
    footer.site-footer,
    a.back-to-top {
      display: none;
    }

    #primary {
      height: 100vh;
      margin-top: 0;

      #main {
        height: 100%;
        padding-top: 0;
      }

      .page-content {
        height: 100%;
        gap: $marginReference*2;

        img {
          height: 80px;
        }

        p {
          font-size: 24px;
          line-height: 32px;
          color: $white;
          text-align: center;
        }
      }
    }
  }
}

/* ---------------------------------- */
/*********** Search Results ***********/
/* ---------------------------------- */
body.search-results {
  #page {
    #search-form {
      display: block;
    }

    #primary {
      @media screen and (min-width: $md) {
        margin-top: 266px;
      }

      @media screen and (max-width: $md) {
        // margin-top: 241px;
      }

      section.page-title {
        .wrap {
          h1 {
            font-size: 40px;
            line-height: 40px;
          }

          h2 {
            font-size: 20px;
            line-height: 40px;
          }
        }
      }
    }
  }
}

/* ---------------------------------- */
/*********** Favorites ***********/
/* ---------------------------------- */
// Favorite Notice
#favorite-notice {
  position: fixed;
  bottom: -60px;
  left: 50%;
  transform: translateX(-50%);
  padding: 12px 24px;
  background-color: rgba($black, .8);
  color: $white;
  border-radius: $radius/2;
  font-size: 14px;
  z-index: 9999;
  box-shadow: 0 4px 12px rgba($black, 0.3);
  opacity: 0;

  a {
    color: $white;
    text-decoration: underline;
    font-weight: $font-medium;
  }
}

/* ----------------------------- */
/*********** Error 404 ***********/
/* ----------------------------- */
body.error404 {
  #primary {
    // Content
    .page-content {
      height: calc(100vh - 114px - 214px);

      @media screen and (max-width: $md) {
        height: calc(100vh - 81px - 402px);
      }

      .wrap {
        height: 100%;

        & > .flex {
          height: 100%;
        }

        h1 {
          margin-bottom: $marginReference;
        }

        p {
          font-size: 16px;
          line-height: 24px;
          max-width: 888px;
          margin: 0 auto;
          text-align: center;

          @media screen and (max-width: $md) {
            max-width: inherit;
          }

          a {
            text-decoration: underline;

            &:hover {
              text-decoration: underline;
            }
          }
        }
      }
    }
  }
}

/* ------------------------ */
/********** Footer **********/
/* ------------------------ */
footer.site-footer {
  padding-top: $marginReference*2;
  background-color: var(--theme-color);

  .footer-content {
    padding-bottom: 24px;

    .wrap {
      .newsletter {
        gap: $gap;

        @media screen and (max-width: $md) {
          flex-direction: column;
          align-items: inherit;
        }

        .form-wrap {
          @media screen and (min-width: $md) {
            flex: 1;
          }

          h3 {
            font-size: 18px;
            line-height: 24px;
            margin-bottom: 20px;
          }


          form {
            .form-row {
              gap: $gap/2;

              label {
                font-size: 16px;
                line-height: 18px;
                margin-bottom: $marginReference/2;
                display: block;
                font-weight: $font-medium;
              }

              p {
                width: 100%;
                margin-bottom: 0;
              }

              .wpcf7-not-valid-tip {
                color: $white;
                text-transform: uppercase;
                font-size: 13px;
                line-height: 15px;
                margin-top: 6px;
              }

              br {
                display: none;
              }

              input {
                appearance: none;
                -webkit-appearance: none;
                font-weight: $font-bold;
                font-family: $font-azomono;
                font-size: 20px;
                line-height: 24px;
                padding: $marginReference 24px;
                color: $black;
                text-transform: uppercase;
                border-radius: 0;
                border: 0;
                outline: none;
                cursor: pointer;
                background: $white;

                &[type="text"],
                &[type="email"] {
                  width: 100%;
                }

                &[type="submit"] {
                  border: 2px solid transparent;
                  padding: 10px $marginReference;

                  &:hover {
                    border-color: inherit;
                    background-color: transparent;
                  }

                  & + .wpcf7-spinner {
                    transform: translateY(5px);
                  }
                }

                &::placeholder {
                  color: rgba($black, .4);
                }
              }
            }

            .wpcf7-response-output {
              margin: $marginReference 0 0 0;
              background-color: $white;
              border: 0;
              padding: $marginReference/2 $marginReference;
              text-transform: uppercase;
              font-size: 13px;
              line-height: 15px;
              width: fit-content;
            }
          }

          p.privacy {
            font-size: 11px;
            line-height: 13px;
            text-transform: uppercase;
            margin-top: 10px;

            a {
              color: inherit;
              text-decoration: underline;

              &:hover {
                opacity: .6;
              }
            }
          }
        }
      }

      .footer-partners {
        gap: $marginReference*2;
        margin-top: $marginReference*2;

        @media screen and (max-width: 1210px) {
          gap: 20px;
        }

        @media screen and (max-width: $md) {
          overflow-x: scroll;
        }

        &::-webkit-scrollbar {
          @media screen and (max-width: $md) {
            display: none;
          }
        }

        a {
          display: block;

          &:hover {
            opacity: .6;
          }
        }

        img {
          width: auto;
          height: 40px;

          @media screen and (max-width: 1210px) {
            height: 32px;
          }
        }
      }

      .braga-verde {
        @media screen and (min-width: $md) {
          max-width: 580px;
          width: 100%;
          margin-bottom: $marginReference*2;
        }

        h3 {
          font-size: 20px;
          line-height: 24px;
          margin-bottom: 20px;
        }

        p {
          &.font-braga {
            font-size: 20px;
            line-height: 24px;
          }

          &:not(.font-braga) {
            font-size: 14px;
            line-height: 20px;
          }
        }

        & > .flex {
          @media screen and (min-width: $md) {
            margin-top: $marginReference*4;
          }

          @media screen and (max-width: $md) {
            margin-top: $marginReference*2;
          }
          
          a.cta {
            &:not(:hover) {
              background-color: $white;
            }
          }

          .braga-verde-logos {
            gap: 24px;

            img {
              width: auto;

              @media screen and (min-width: $md) {
                height: 65px;
              }

              @media screen and (max-width: $md) {
                height: 50px;
              }
            }
          }
        }
      }

      .menu-footer-links-container {
        @media screen and (min-width: $md) {
          flex: 1;
        }

        #footer-links-menu {
          margin: 0;
          padding: 0;
          column-gap: $marginReference;
          row-gap: 10px;

          @media screen and (max-width: $md) {
            flex-direction: column;
            gap: $marginReference/2;
            align-items: inherit;
          }

          li {
            a {
              border: 2px solid;
              padding: 6px 18px;
              font-size: 16px;
              line-height: 20px;
              font-weight: $font-medium;
              text-transform: uppercase;
              text-decoration: none;
              display: block;

              @media screen and (max-width: $md) {
                text-align: center;
              }

              &:hover {
                border-color: $white;
                background-color: $white;
              }
            }
          }
        }
      }
      
      .widgets {
        gap: $gap;

        @media screen and (max-width: $md) {
          flex-direction: column;
          align-items: inherit;
          margin-top: $marginReference*4; 
        }

        .widget {
          padding: 12px 24px;
          background-color: $white;
          margin: 0;

          @media screen and (min-width: $md) {
            max-width: 580px;
            width: 100%;
            gap: 65px;
          }

          @media screen and (max-width: $md) {
            flex-direction: column;
            gap: $marginReference;
          }

          p {
            margin: 0;
            font-weight: $font-medium;
            text-transform: uppercase;

            @media screen and (min-width: $md) {
              font-size: 20px;
              line-height: 24px;
            }

            &:not(.no-icon) {
              gap: $marginReference;
            }

            &.no-icon {
              padding-left: 40px;
            }

            svg {
              width: 24px;
              height: 24px;
            }

            img.weather-icon {
              width: 32px;
              height: 32px;

              @media screen and (max-width: $md) {
                width: 24px;
                height: 24px;
              }
            }
          }
        }
      }
    }
  }

  .footer-menu {
    padding-bottom: 24px;
    
    .wrap {
      @media screen and (max-width: $md) {
        flex-direction: column;
        gap: $marginReference/2;
      }
      
      ul {
        margin: 0;
        padding: 0;
      }

      .menu-social-container {
        ul {
          gap: $marginReference/2;

          li {
            a {
              width: 24px;
              height: 24px;
              border-radius: 24px;
              text-indent: -9999px;
              background-color: $white;

              &:hover {
                opacity: .6;
              }

              svg {
                width: 12px;
                height: 12px;
              }
            }
          }
        }
      }

      .menu-footer-terms-container {
        ul {
          gap: 10px;
          
          li {
            a {
              text-transform: uppercase;
              font-size: 13px;
              line-height: 15px;
              font-weight: $font-medium;
            }
          }
        }
      }
    }
  }
}

#page:not(.black-text) {
  .footer-content {
    .wrap {
      .newsletter {
        h3,
        p {
          color: $white;
        }

        form {
          input[type="submit"] {
            color: var(--theme-color);

            &:hover {
              color: $white;
            }
          }
        }
      }

      .braga-verde {
        a.cta {
          color: var(--theme-color);

          &:hover {
            color: $white;
            border-color: $white;
          }
        }
      }

      #footer-links-menu {
        li {
          a {
            color: $white;

            &:hover {
              color: var(--theme-color);
            }
          }
        }
      }

      .widgets {
        .widget {
          p {
            svg {
              color: var(--theme-color);
            }
          }
        }
      }
    }
  }

  .footer-menu {
    .wrap {
      .menu-social-container {
        ul {
          li {
            a {
              svg {
                color: var(--theme-color);
              }
            }
          }
        }
      }

      .menu-footer-terms-container {
        ul {
          li {
            a {
              color: $white;
            }
          }
        }
      }
    }
  }
}

#page.black-text {
  .footer-content {
    .wrap {
      .braga-verde {
        a.cta {
          color: $black;

          &:hover {
            border-color: $black;
            background-color: transparent;
          }
        }
      }
    }
  }
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.dev {
  background-color: yellow;
}