.banner {
	 max-width: 1680px;
	 width: 100%;
	 box-sizing: border-box;
	 margin: 0 auto;
}
 @media screen and (max-width: 1024px) {
	 .banner {
		 padding: 0;
	}
}
 .banner.hero {
	 display: flex;
	 flex-direction: column;
	 position: relative;
}
 .banner.hero .hero-text {
	 position: absolute;
	 left: 50%;
	 top: 50%;
	 transform: translate(-50%, -50%);
	 width: 100%;
	 text-align: center;
}
 .banner.hero .hero-text h1 {
	 color: white;
	 font-weight: bold;
	 font-size: 80px;
	 line-height: 1;
	 margin-bottom: 15px;
}
 @media screen and (max-width: 1024px) {
	 .banner.hero .hero-text h1 {
		 font-size: 60px;
	}
}
 .banner.hero .hero-text h3 {
	 font-size: 32px;
	 line-height: 1.4;
	 color: white;
}
 @media screen and (max-width: 1024px) {
	 .banner.hero .hero-text h3 {
		 font-size: 24px;
	}
}
 .banner.hero .hero-text .hero-button {
	 margin-top: 39px;
	 border: 2px solid white;
	 background: transparent;
	 text-decoration: none;
	 max-width: 240px;
	 line-height: 55px;
	 padding: 0 15px;
}
 .banner.hero .hero-text .hero-button:hover {
	 color: white;
}
 .banner.centered {
	 text-align: center;
}
 .banner.padded {
	 padding: 20px;
}
 .banner.top-bottom-margin-20 {
	 margin: 20px 0;
}
 .banner.light-gray-bg {
	 background: #f7f7f7;
}
 .banner img.padded {
	 padding: 20px;
}
 .banner h2 {
	 font-weight: 600;
	 color: #404041;
}
 .banner h2 span {
	 font-weight: 400;
}
 .banner .button-primary {
	 padding: 15px 25px;
	 margin: 20px auto;
}
 .photo-caption {
	 font-size: 22px;
	 font-weight: 300;
	 color: black;
	 line-height: 32px;
	 background-color: #f1f0f0;
	 padding: 20px;
	 display: block;
	 position: relative;
	 bottom: 6px;
	 border: 1px solid #f1f0f0;
	 margin-bottom: 33px;
}
 .photo-caption.short {
	 padding: 5px 20px;
}
 .marketing-header {
	 display: block;
	 margin-top: 68px;
	 text-align: center;
	 color: black;
	 font-size: 48px;
	 font-weight: 300;
	 line-height: 58px;
}
 @media screen and (max-width: 1024px) {
	 .marketing-header {
		 font-size: 28px;
		 line-height: 34px;
	}
}
 .marketing-subheading {
	 display: block;
	 color: black;
	 font-size: 22px;
	 font-weight: 300;
	 line-height: 27px;
	 margin-bottom: 25px;
	 text-align: center;
	 text-decoration: none;
}
 @media screen and (max-width: 1024px) {
	 .marketing-subheading {
		 font-size: 18px;
		 line-height: 24px;
	}
}
/* styles for Good Sam Rewards page */
 .membership-section {
	 max-width: 1680px;
	 margin: 0 auto;
	 padding: 0 11%;
	 text-align: center;
}
 .membership-section .membership-text {
	 font-size: 30px;
	 line-height: 34px;
}

/*----------------------------------------------------------------*/
/* ---------- "home-topcat-slot" content slot styles ----------*/
/*----------------------------------------------------------------*/
.cat-cta-head {
  color: #000;
  font-size: 48px;
  font-weight: 300;
  line-height: 58px;
  text-align: center;
}
.flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
.home-3tiles, .home-2tiles, .top-brand-content {
  max-width: 1680px;
  margin: 0 auto;
  padding: 0 3.57%;
  box-sizing: border-box;
}
.optional-sub-heading {
  color: #000;
  font-size: 22px;
  font-weight: 300;
  line-height: 27px;
  text-align: center;
  text-decoration: none;
}
.cat-cta-head:hover {
  text-decoration: none;
}
.optional-sub-heading:hover {
  text-decoration: none;
}
.level3-cat-head, .level1-cat-head {
  text-align: center;
}
.home-3tiles .top-space {
  margin-top: 68px;
  text-align: center;
}
.home-3tiles .asset-content, .home-2tiles .asset-content {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.home-3tiles .cat-cta-row {
  width: 32%;
  margin: 30px 0 0 0;
}
.cat-cta-row .cat-cta-block {
  display: flex;
  flex-wrap: wrap;
}
.home-3tiles .cat-tile {
  background-color: #f1f0f0;
  padding: 20px 8%;
  width: 100%;
}
.home-3tiles .optional-tile-content, .home-2tiles .optional-tile-content {
  color: #000;
  line-height: 15px;
  font-size: 12px;
}
.home-3tiles .cat-title {
  font-size: 34px;
  font-weight: 300;
  line-height: 42px;
  color: #000;
}
@media screen and (min-width: 1025px) {
  .level3-heading, .level1-heading {
    margin: 0 0 4px 0;
  }
}
@media screen and (max-width: 1024px) {
  .home-3tiles .top-space {
    margin-top: 66px;
  }
  .cat-cta-head {
    font-size: 28px;
    line-height: 34px;
  }
  .optional-sub-heading {
    font-size: 16px;
    line-height: 19px;
  }
  .home-3tiles .cat-title {
    font-size: 18px;
    font-weight: normal;
    line-height: 26px;
    color: #000;
  }
}
@media screen and (max-width: 1023px) {
  .home-3tiles, .home-2tiles {
    padding: 0 20px;
  }
  .home-3tiles .cat-tile {
    padding: 9px 0px 9px 12px;
  }
}
@media screen and (max-width: 767px) {
  .optional-sub-heading {
    font-weight: normal;
  }
  .home-3tiles .cat-cta-row {
    width: 48%;
  }
  .home-seasonaltwo-slot.home-3tiles .cat-cta-row:first-child, .home-seasonaltwo-slot.home-3tiles .cat-cta-row:first-child img {
    width: 100%;
  }
  .home-seasonaltwo-slot.home-3tiles .cat-cta-row:first-child .cat-tile {
    background-color: #f1f0f0;
    text-align: center;
  }
  .home-seasonaltwo-slot.home-3tiles .cat-cta-row:first-child .cat-title {
    font-size: 24px;
  }
  .home-3tiles .cat-tile {
    background-color: #fff;
  }
  .home-3tiles, .home-2tiles {
    padding: 0;
  }
}
