html {
  font-size: 62.5%;
}

body {
  font-family: "Spartan", sans-serif;
  font-size: 1.5rem;
  color: #242b37;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  body {
    font-size: 1.8rem;
  }
}

h1,
h2,
h3 {
  line-height: 1.25;
}

h1 {
  font-size: 3.2rem;
  font-weight: 300;
}

@media screen and (min-width: 768px) {
  h1 {
    font-size: 4.8rem;
  }
}

@media screen and (min-width: 1440px) {
  h1 {
    font-size: 6.4rem;
  }
}

h2 {
  font-size: 3.2rem;
  font-weight: 700;
}

@media screen and (min-width: 768px) {
  h2 {
    font-size: 4rem;
  }
}

@media screen and (min-width: 1440px) {
  h2 {
    line-height: 1.4;
  }
}

h3 {
  font-size: 1.8rem;
  font-weight: 700;
}

@media screen and (min-width: 1440px) {
  p {
    line-height: 1.8;
  }
}

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

html,
body {
  width: 100%;
  height: 100%;
  overflow-x: hidden;
}

p {
  margin: 0;
}

.container {
  padding: 0 2.4rem;
  max-width: 1110px;
  margin: 0 auto;
}

@media screen and (min-width: 768px) {
  .container {
    padding: 0 9.8rem;
  }
}

@media screen and (min-width: 1440px) {
  .container {
    padding: 0;
  }
}

.btn {
  cursor: pointer;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: 2px;
  padding: 2.4rem 5.4rem;
  display: inline-block;
  font-size: 1.4rem;
  text-align: center;
  white-space: nowrap;
}

.btn--light {
  border: 1px solid #fff;
  color: #fff;
  background: transparent;
}

.btn--dark {
  background: #111;
  color: #fff;
  border: none;
}

.hero {
  background: url(../../images/homepage/hero-bg-mobile.jpg) no-repeat;
  background-size: cover;
  height: 748px;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.hero .container {
  padding-top: 25%;
}

.hero .logo {
  display: inline-block;
  width: 82px;
  height: 32px;
}

.hero .logo img {
  width: 100%;
}

.hero__heading {
  margin: 3.2rem 0 2.4rem;
}

.hero__tagline {
  margin-top: 0;
  margin-bottom: 3.2rem;
}

.hero__heading, .hero__tagline {
  color: #fff;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .hero {
    background: url(../../images/homepage/hero-bg-mobile@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 768px) {
  .hero {
    background: url(../../images/homepage/hero-bg-tablet.jpg) no-repeat;
    background-size: cover;
    height: 992px;
  }
  .hero .logo {
    width: 103px;
    height: 40px;
  }
  .hero__heading {
    padding: 0 3rem;
  }
}

@media only screen and (min-width: 768px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-resolution: 192dpi), only screen and (min-width: 768px) and (min-resolution: 2dppx) {
  .hero {
    background: url(../../images/homepage/hero-bg-tablet@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 1440px) {
  .hero {
    background: url(../../images/homepage/hero-bg-desktop.jpg) no-repeat;
    background-size: cover;
    height: 820px;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    text-align: left;
  }
  .hero .container {
    padding: 6.5rem 0 0;
  }
  .hero__content {
    padding: 0;
  }
  .hero__heading {
    padding: 0;
    margin-top: 15rem;
  }
  .hero__heading, .hero__tagline {
    padding-right: 58.5rem;
  }
}

@media only screen and (min-width: 1440px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-resolution: 192dpi), only screen and (min-width: 1440px) and (min-resolution: 2dppx) {
  .hero {
    background: url(../../images/homepage/hero-bg-desktop@2x.jpg) no-repeat;
    background-size: cover;
  }
}

.about__card {
  position: relative;
  top: -70px;
}

.about__image {
  width: 100%;
  height: 400px;
  -webkit-box-shadow: 0 35px 80px -35px #000;
          box-shadow: 0 35px 80px -35px #000;
}

.about .image--enjoyable {
  background: url(../../images/homepage/enjoyable-place-mobile.jpg) no-repeat;
  background-size: cover;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .about .image--enjoyable {
    background: url(../../images/homepage/enjoyable-place-mobile@2x.jpg) no-repeat;
    background-size: cover;
  }
}

.about .image--local {
  background: url(../../images/homepage/locally-sourced-mobile.jpg) no-repeat;
  background-size: cover;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .about .image--local {
    background: url(../../images/homepage/locally-sourced-mobile@2x.jpg) no-repeat;
    background-size: cover;
  }
}

.about__content {
  margin: 4.8rem 0 8rem;
  text-align: center;
}

.about__content::before {
  content: url(../../images/patterns/pattern-divide.svg);
  width: 71px;
  height: 7px;
}

.about__heading {
  margin: 3.2rem 0 1.6rem;
}

@media screen and (min-width: 768px) {
  .about {
    position: relative;
    margin-bottom: -1rem;
    padding-bottom: 4rem;
  }
  .about::before {
    content: url(../../images/patterns/pattern-curve-top-right.svg);
    position: absolute;
    top: 100px;
    right: 50%;
  }
  .about::after {
    content: url(../../images/patterns/pattern-curve-top-left.svg);
    position: absolute;
    bottom: 0;
    left: 50%;
  }
  .about__image {
    height: 360px;
  }
  .about .image--enjoyable {
    background: url(../../images/homepage/enjoyable-place-tablet.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 768px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-resolution: 192dpi), only screen and (min-width: 768px) and (min-resolution: 2dppx) {
  .about .image--enjoyable {
    background: url(../../images/homepage/enjoyable-place-tablet@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 768px) {
  .about .image--local {
    background: url(../../images/homepage/locally-sourced-tablet.jpg) no-repeat;
    background-size: cover;
    position: relative;
  }
}

@media only screen and (min-width: 768px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-resolution: 192dpi), only screen and (min-width: 768px) and (min-resolution: 2dppx) {
  .about .image--local {
    background: url(../../images/homepage/locally-sourced-tablet@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 768px) {
  .about .image--local::before {
    content: url(../../images/patterns/pattern-lines.svg);
    position: absolute;
    top: 228px;
    right: -50px;
  }
  .about__content {
    padding: 0 5.8rem;
  }
  .about__heading {
    padding: 0 2rem;
  }
}

@media screen and (min-width: 1440px) {
  .about::before {
    top: 250px;
    right: 38%;
  }
  .about::after {
    bottom: 0;
    left: unset;
    right: 0;
  }
  .about__card {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
    padding-bottom: 4rem;
  }
  .about__card:nth-of-type(2) {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    padding-bottom: 0;
    top: unset;
    bottom: -80px;
  }
  .about__image {
    width: 540px;
    height: 750px;
    display: inline-block;
  }
  .about__content {
    width: 445px;
    text-align: left;
    padding: 0;
  }
  .about__heading {
    padding: 0;
    padding-right: 3rem;
  }
  .about .image--enjoyable {
    background: url(../../images/homepage/enjoyable-place-desktop.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 1440px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-resolution: 192dpi), only screen and (min-width: 1440px) and (min-resolution: 2dppx) {
  .about .image--enjoyable {
    background: url(../../images/homepage/enjoyable-place-desktop@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 1440px) {
  .about .image--local {
    background: url(../../images/homepage/locally-sourced-desktop.jpg) no-repeat;
    background-size: cover;
    position: relative;
  }
}

@media only screen and (min-width: 1440px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-resolution: 192dpi), only screen and (min-width: 1440px) and (min-resolution: 2dppx) {
  .about .image--local {
    background: url(../../images/homepage/locally-sourced-desktop@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 1440px) {
  .about .image--local::before {
    top: 300px;
    right: -100px;
  }
}

.showcase {
  background: #111;
  color: #fff;
  padding: 7.2rem 0 5.2rem;
  text-align: center;
}

.showcase__header {
  padding-bottom: 4rem;
}

.showcase__header::before {
  content: url(../../images/patterns/pattern-divide.svg);
}

.showcase__item {
  padding: 2.4rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.showcase__item:last-of-type {
  border-bottom: 0;
}

.showcase__image {
  height: 245px;
}

.showcase .image--salmon {
  background: url(../../images/homepage/salmon-mobile.jpg) no-repeat;
  background-size: cover;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .showcase .image--salmon {
    background: url(../../images/homepage/salmon-mobile@2x.jpg) no-repeat;
    background-size: cover;
  }
}

.showcase .image--mignon {
  background: url(../../images/homepage/beef-mobile.jpg) no-repeat;
  background-size: cover;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .showcase .image--mignon {
    background: url(../../images/homepage/beef-mobile@2x.jpg) no-repeat;
    background-size: cover;
  }
}

.showcase .image--mousse {
  background: url(../../images/homepage/chocolate-mobile.jpg) no-repeat;
  background-size: cover;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .showcase .image--mousse {
    background: url(../../images/homepage/chocolate-mobile@2x.jpg) no-repeat;
    background-size: cover;
  }
}

.showcase__content {
  padding-top: 3.2rem;
}

.showcase__content p {
  padding: 0 1rem;
}

.showcase .item__heading {
  margin: 0 0 0.7rem;
}

@media screen and (min-width: 768px) {
  .showcase {
    padding: 9.6rem 0;
  }
  .showcase__header {
    padding: 0 5.5rem 5.6rem;
  }
  .showcase__item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .showcase__image {
    width: 128px;
    height: 96px;
    position: relative;
  }
  .showcase__image::after {
    content: url(../../images/icons/icon-minus.svg);
    -webkit-transform: scale(5, 0.3);
            transform: scale(5, 0.3);
    position: absolute;
    top: 0;
    right: -18px;
  }
  .showcase .image--salmon {
    background: url(../../images/homepage/salmon-desktop-tablet.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 768px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-resolution: 192dpi), only screen and (min-width: 768px) and (min-resolution: 2dppx) {
  .showcase .image--salmon {
    background: url(../../images/homepage/salmon-desktop-tablet@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 768px) {
  .showcase .image--mignon {
    background: url(../../images/homepage/beef-desktop-tablet.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 768px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-resolution: 192dpi), only screen and (min-width: 768px) and (min-resolution: 2dppx) {
  .showcase .image--mignon {
    background: url(../../images/homepage/beef-desktop-tablet@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 768px) {
  .showcase .image--mousse {
    background: url(../../images/homepage/chocolate-desktop-tablet.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 768px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-resolution: 192dpi), only screen and (min-width: 768px) and (min-resolution: 2dppx) {
  .showcase .image--mousse {
    background: url(../../images/homepage/chocolate-desktop-tablet@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 768px) {
  .showcase__content {
    text-align: left;
    width: 70%;
    padding: 0.4rem 0;
    padding-left: 2rem;
  }
  .showcase__content p {
    font-size: 1.5rem;
    padding: 0;
  }
}

@media screen and (min-width: 1440px) {
  .showcase {
    padding: 20rem 0 12rem;
  }
  .showcase .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    text-align: left;
  }
  .showcase__header {
    width: 53%;
  }
  .showcase__items {
    width: 50%;
  }
}

.features {
  padding: 8rem 0;
  text-align: center;
}

.features__image-carousel {
  height: 100%;
  overflow-x: hidden;
  -webkit-box-shadow: 0 35px 80px -35px #000;
          box-shadow: 0 35px 80px -35px #000;
}

.features .slider {
  width: 300%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-transition: -webkit-transform 1s ease-in-out;
  transition: -webkit-transform 1s ease-in-out;
  transition: transform 1s ease-in-out;
  transition: transform 1s ease-in-out, -webkit-transform 1s ease-in-out;
}

.features__image {
  height: 400px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
}

.features .image--gathering {
  background: url(../../images/homepage/family-gathering-mobile.jpg) no-repeat;
  background-size: cover;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .features .image--gathering {
    background: url(../../images/homepage/family-gathering-mobile@2x.jpg) no-repeat;
    background-size: cover;
  }
}

.features .image--special {
  background: url(../../images/homepage/special-events-mobile.jpg) no-repeat;
  background-size: cover;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .features .image--special {
    background: url(../../images/homepage/special-events-mobile@2x.jpg) no-repeat;
    background-size: cover;
  }
}

.features .image--social {
  background: url(../../images/homepage/social-events-mobile.jpg) no-repeat;
  background-size: cover;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .features .image--social {
    background: url(../../images/homepage/social-events-mobile@2x.jpg) no-repeat;
    background-size: cover;
  }
}

.features__content {
  padding-top: 4.8rem;
}

.features__list {
  list-style: none;
  padding-left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.features .list__item {
  padding-bottom: 1.6rem;
}

.features .list__item a {
  color: #242b37;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-size: 1.4rem;
  text-decoration: none;
  opacity: 0.5;
  font-weight: 600;
}

.features .list__item.selected a {
  opacity: 1;
}

.features .list__item.selected {
  position: relative;
}

.features .list__item.selected::after {
  content: url(../../images/icons/icon-minus.svg);
  position: absolute;
  left: 50%;
  bottom: 6px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transform: scaleX(8);
          transform: scaleX(8);
}

.features__header-carousel {
  height: 100%;
  overflow-x: hidden;
}

.features__heading {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding: 0.8rem 0 2.4rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.features .title {
  margin-top: 0;
  margin-bottom: 1.6rem;
}

.features .btn {
  margin-top: 3.2rem;
}

@media screen and (min-width: 768px) {
  .features {
    padding: 12rem 0;
    position: relative;
  }
  .features::before {
    content: url(../../images/patterns/pattern-curve-top-right.svg);
    position: absolute;
    top: 0;
    right: 47%;
  }
  .features::after {
    content: url(../../images/patterns/pattern-lines.svg);
    position: absolute;
    left: 6.5%;
    top: 82px;
  }
  .features .image--gathering {
    background: url(../../images/homepage/family-gathering-tablet.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 768px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-resolution: 192dpi), only screen and (min-width: 768px) and (min-resolution: 2dppx) {
  .features .image--gathering {
    background: url(../../images/homepage/family-gathering-tablet@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 768px) {
  .features .image--special {
    background: url(../../images/homepage/special-events-tablet.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 768px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-resolution: 192dpi), only screen and (min-width: 768px) and (min-resolution: 2dppx) {
  .features .image--special {
    background: url(../../images/homepage/special-events-tablet@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 768px) {
  .features .image--social {
    background: url(../../images/homepage/social-events-tablet.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 768px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-resolution: 192dpi), only screen and (min-width: 768px) and (min-resolution: 2dppx) {
  .features .image--social {
    background: url(../../images/homepage/social-events-tablet@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 768px) {
  .features__list {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .features .list__item {
    padding-bottom: 2.4rem;
  }
  .features__heading {
    padding: 2.4rem 5.8rem 3.2rem;
  }
}

@media screen and (min-width: 1440px) {
  .features {
    text-align: left;
  }
  .features::before {
    right: 63%;
  }
  .features .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .features__image-carousel {
    width: 540px;
  }
  .features__content {
    width: 500px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding-left: 5rem;
  }
  .features__image {
    height: 600px;
  }
  .features .image--gathering {
    background: url(../../images/homepage/family-gathering-desktop.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 1440px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-resolution: 192dpi), only screen and (min-width: 1440px) and (min-resolution: 2dppx) {
  .features .image--gathering {
    background: url(../../images/homepage/family-gathering-desktop@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 1440px) {
  .features .image--special {
    background: url(../../images/homepage/special-events-desktop.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 1440px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-resolution: 192dpi), only screen and (min-width: 1440px) and (min-resolution: 2dppx) {
  .features .image--special {
    background: url(../../images/homepage/special-events-desktop@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 1440px) {
  .features .image--social {
    background: url(../../images/homepage/social-events-desktop.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 1440px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-resolution: 192dpi), only screen and (min-width: 1440px) and (min-resolution: 2dppx) {
  .features .image--social {
    background: url(../../images/homepage/social-events-desktop@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 1440px) {
  .features__nav {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
  .features__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .features__heading {
    padding: 0;
    padding-bottom: 3.2rem;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
  .features .list__item.selected::after {
    left: -80px;
    top: -5px;
    bottom: unset;
    -webkit-transform: translateX(0);
            transform: translateX(0);
    -webkit-transform: scaleX(15);
            transform: scaleX(15);
  }
}

.callout {
  background: url(../../images/homepage/ready-bg-mobile.jpg) no-repeat;
  background-size: cover;
  padding: 8rem 0;
  text-align: center;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .callout {
    background: url(../../images/homepage/ready-bg-mobile@2x.jpg) no-repeat;
    background-size: cover;
  }
}

.callout__heading {
  color: #fff;
  margin-top: 0;
  margin-bottom: 2.4rem;
}

@media screen and (min-width: 768px) {
  .callout {
    background: url(../../images/homepage/ready-bg-tablet.jpg) no-repeat;
    background-size: cover;
    padding: 6.5rem 0;
    height: 272px;
  }
}

@media only screen and (min-width: 768px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-resolution: 192dpi), only screen and (min-width: 768px) and (min-resolution: 2dppx) {
  .callout {
    background: url(../../images/homepage/ready-bg-tablet@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 768px) {
  .callout .container {
    padding: 0 5.5rem;
  }
}

@media screen and (min-width: 1440px) {
  .callout {
    background: url(../../images/homepage/ready-bg-desktop.jpg) no-repeat;
    background-size: cover;
    padding: 9.2rem 0;
    height: 240px;
  }
}

@media only screen and (min-width: 1440px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-resolution: 192dpi), only screen and (min-width: 1440px) and (min-resolution: 2dppx) {
  .callout {
    background: url(../../images/homepage/ready-bg-desktop@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 1440px) {
  .callout .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 0;
  }
  .callout__heading {
    margin: 0;
  }
}

.footer {
  background: #111;
  color: #fff;
  text-transform: uppercase;
  padding: 8rem 0;
  text-align: center;
  font-size: 1.4rem;
  line-height: 2;
}

.footer .container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.footer .logo {
  margin-bottom: 4rem;
}

.footer__location {
  margin-bottom: 3.2rem;
}

@media screen and (min-width: 768px) {
  .footer {
    padding: 6.4rem 0;
    text-align: left;
  }
  .footer .container {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    padding: 0 5.5rem;
  }
  .footer .logo {
    margin: 0;
  }
  .footer__content {
    width: 65%;
  }
}

@media screen and (min-width: 1440px) {
  .footer {
    padding: 7.8rem;
  }
  .footer .container {
    padding: 0;
  }
  .footer__content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: space-evenly;
        -ms-flex-pack: space-evenly;
            justify-content: space-evenly;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 85%;
  }
  .footer__location {
    margin-bottom: 0;
  }
}

.booking-hero {
  background: url(../../../images/booking/hero-bg-mobile.jpg) no-repeat;
  background-size: cover;
  height: 600px;
  padding-top: 5.6rem;
  color: #fff;
}

@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
  .booking-hero {
    background: url(../../../images/booking/hero-bg-mobile@2x.jpg) no-repeat;
    background-size: cover;
  }
}

.booking-hero .container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.booking-hero .logo {
  display: inline-block;
  margin-bottom: 4rem;
}

.booking-hero .logo img {
  width: 82px;
}

.booking-hero__heading {
  margin-top: 0;
  margin-bottom: 1.6rem;
}

.booking-hero__tagline {
  margin-bottom: 2.4rem;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .booking-hero {
    background: url(../../../images/booking/hero-bg-tablet.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 768px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-device-pixel-ratio: 2), only screen and (min-width: 768px) and (min-resolution: 192dpi), only screen and (min-width: 768px) and (min-resolution: 2dppx) {
  .booking-hero {
    background: url(../../../images/booking/hero-bg-tablet@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 768px) {
  .booking-hero .logo {
    -ms-flex-item-align: start;
        align-self: flex-start;
    margin-bottom: 6.4rem;
  }
  .booking-hero .logo img {
    width: 103px;
  }
  .booking-hero .btn {
    display: none;
  }
}

@media screen and (min-width: 1440px) {
  .booking-hero {
    background: url(../../../images/booking/hero-bg-desktop.jpg) no-repeat;
    background-size: cover;
  }
}

@media only screen and (min-width: 1440px) and (-webkit-min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min--moz-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-device-pixel-ratio: 2), only screen and (min-width: 1440px) and (min-resolution: 192dpi), only screen and (min-width: 1440px) and (min-resolution: 2dppx) {
  .booking-hero {
    background: url(../../../images/booking/hero-bg-desktop@2x.jpg) no-repeat;
    background-size: cover;
  }
}

@media screen and (min-width: 1440px) {
  .booking-hero .container {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
  .booking-hero .logo {
    margin-bottom: 15rem;
  }
  .booking-hero__tagline {
    text-align: left;
    width: 40%;
  }
}

.reservation__form {
  padding: 3.2rem;
  -webkit-box-shadow: 0 35px 80px -35px #000;
          box-shadow: 0 35px 80px -35px #000;
  color: #111;
  background-color: #fff;
  text-align: center;
}

.reservation__form .form-group {
  margin-bottom: 3.2rem;
}

.reservation__form label {
  font-size: 1.8rem;
  display: inline-block;
}

.reservation__form input {
  border: none;
  border-bottom: 1px solid #8e8e8e;
  width: 100%;
  padding-bottom: 1.6rem;
  font-size: 1.8rem;
}

.reservation__form input:focus {
  outline: none;
  border-color: #111;
}

.reservation__form .name,
.reservation__form .email {
  padding-left: 1.6rem;
  padding-right: 1.6rem;
}

.reservation__form .date,
.reservation__form .time {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding-top: 0.8rem;
}

.reservation__form .date input,
.reservation__form .time input {
  width: 30%;
  text-align: center;
  display: inline-block;
}

.reservation__form .custom-select-wrapper {
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  width: 27%;
}

.reservation__form .custom-select {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.reservation__form .custom-select__trigger {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 0 1rem 1.6rem;
  font-size: 1.8rem;
  height: 45px;
  line-height: 60px;
  cursor: pointer;
  border-bottom: 1px solid #8e8e8e;
}

.reservation__form .custom-options {
  position: absolute;
  display: block;
  top: 100%;
  left: 0;
  right: 0;
  -webkit-box-shadow: 0 0 12px -5px #000;
          box-shadow: 0 0 12px -5px #000;
  background: #fff;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 2;
}

.reservation__form .custom-select.open .custom-options {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
}

.reservation__form .custom-option {
  position: relative;
  display: block;
  padding: 1rem 2.2rem 1rem 3.7rem;
  cursor: pointer;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.reservation__form .custom-option:hover {
  cursor: pointer;
  background-color: #b2b2b2;
}

.reservation__form .custom-option.selected::before {
  content: url(../../../images/icons/icon-check.svg);
  position: absolute;
  left: 16px;
}

.reservation__form .arrow {
  width: 16px;
  height: 8px;
}

.reservation__form .party-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  border-bottom: 1px solid #8e8e8e;
  padding: 0 2rem 1.6rem;
}

.reservation__form .party-wrapper img {
  cursor: pointer;
  padding: 1rem;
}

.reservation__form .party-wrapper .party {
  display: inline-block;
  font-weight: 700;
  padding-bottom: 0;
  font-size: 1.8rem;
}

.reservation__form .btn {
  padding: 1.8rem 3.5rem;
  width: 100%;
}

.reservation__form .error-msg {
  display: none;
  padding-top: 0.5rem;
  font-size: 1rem;
  color: #b54949;
}

.reservation__form .error .error-msg {
  display: block;
}

.reservation__form .error label {
  color: #b54949;
}

.reservation__form .error input {
  border-color: #b54949;
  color: #b54949;
}

.reservation__form .error input::-webkit-input-placeholder {
  color: #b54949;
  opacity: 0.5;
}

.reservation__form .error input:-ms-input-placeholder {
  color: #b54949;
  opacity: 0.5;
}

.reservation__form .error input::-ms-input-placeholder {
  color: #b54949;
  opacity: 0.5;
}

.reservation__form .error input::placeholder {
  color: #b54949;
  opacity: 0.5;
}

.reservation__form .success {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.reservation__form .success h2 {
  margin-top: 0;
  margin-bottom: 1.2rem;
}

.reservation__form .success p {
  margin-top: 0;
}

.reservation__form .success .btn {
  display: inline-block;
  margin-top: 1.2rem;
}

@media screen and (min-width: 768px) {
  .reservation__form .form-group--inline {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
  }
  .reservation__form .date,
  .reservation__form .time {
    width: 70%;
  }
  .reservation__form .name + .error-msg,
  .reservation__form .email + .error-msg {
    text-align: left;
    padding-left: 1.6rem;
  }
  .reservation__form .error-inline {
    position: absolute;
    top: 30px;
  }
}

@media screen and (min-width: 1440px) {
  .reservation__form {
    padding: 4.8rem;
    width: 540px;
  }
}

.reservation__form {
  position: relative;
  top: -135px;
}

@media screen and (min-width: 1440px) {
  .reservation {
    position: relative;
    height: 320px;
  }
  .reservation::before {
    content: '';
    background: url(../../../images/patterns/pattern-curve-bottom-right.svg) no-repeat;
    background-size: 100% 320px;
    width: 100%;
    height: 320px;
    position: absolute;
    right: 30%;
  }
  .reservation__form {
    position: absolute;
    right: 11.5%;
    top: -342px;
  }
  .reservation__form::before {
    content: url(../../../images/patterns/pattern-lines.svg);
    position: absolute;
    bottom: -50px;
    left: -80px;
    z-index: -1;
  }
}
/*# sourceMappingURL=styles.css.map */