#padding-sections {
  padding: 100px 0; }

#padding-ctas {
  padding: 100px 0; }

#padding-photos-final {
  padding-bottom: 60px; }

.padding-top-20px {
  padding-top: 20px; }

.font-18 {
  font-size: 18px; }

body {
  font-family: 'Open Sans', sans-serif !important; }

.l-header {
  background-color: darkturquoise;
  grid-area: header; }

.l-slogan {
  background-color: skyblue;
  grid-area: slogan; }

introduction {
  grid-area: introduction;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-areas: "intro introphoto";
  max-width: 1175px;
  margin: 0 auto; }

.l-intro {
  grid-area: intro;
  padding: 40px 20px; }

.l-intro-photo {
  background-color: darkgreen;
  grid-area: introphoto; }

.l-mainstreet {
  background-color: rosybrown;
  grid-area: mainstreet;
  max-height: 600px;
  overflow: hidden; }

details-house {
  grid-area: detailshouse;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-areas: "detailsphoto detailstext";
  max-width: 1175px;
  margin: 0 auto; }

.l-details-photo {
  grid-area: detailsphoto; }

.l-details-text {
  grid-area: detailstext;
  padding: 40px 20px; }

.l-cta {
  background-color: royalblue;
  grid-area: cta; }

.l-cta2 {
  background-color: royalblue;
  grid-area: cta2; }

.l-photo-title {
  grid-area: phototitle; }

.l-photo-left {
  background-color: khaki; }

.l-map {
  grid-area: map; }

.l-footer {
  display: grid;
  background-color: #3F464F;
  min-height: 64px;
  color: white;
  grid-area: footer;
  grid-template-columns: 1fr 1fr;
  padding: 20px 20px; }

.wrapper {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-areas: "header header" "slogan slogan" "introduction introduction" "mainstreet mainstreet" "detailshouse detailshouse" "cta cta"; }

.wrapper-photos {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 3px;
  justify-items: center; }

.wrapper-footer {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-areas: "cta2 cta2" "map map" "footer footer"; }

a {
  color: white; }
  a:hover {
    color: white;
    text-decoration: none; }

.image-height {
  width: 100%;
  height: 600px;
  position: relative;
  overflow: hidden; }

.header-image {
  background-image: url(../images/header-image@2x.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50% 50%;
  background-color: #f5f5f5;
  height: 100%; }

.slogan-div {
  position: relative;
  top: 40%; }
  .slogan-div .slogan {
    color: #fff; }
    .slogan-div .slogan p {
      font-size: 38px; }

.btn-custom {
  border-radius: 50px;
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  font-size: 22px;
  text-transform: uppercase;
  padding: 20px 40px;
  cursor: pointer; }

.ribbon {
  width: 100%;
  background-color: #4A90E2;
  color: #fff;
  padding: 40px 0 30px 0; }
  .ribbon .ribbon-slogan {
    font-weight: 700;
    font-size: 32px;
    line-height: 35px; }
  .ribbon .ribbon-text {
    font-weight: 300;
    font-size: 18px; }

.ribbon-3d {
  width: 100%;
  background-color: #4A90E2;
  color: #fff;
  padding: 20px 0 10px 0;
  font-size: 24px;
  font-weight: 700; }

.ribbon-cta {
  background-color: #3F464F; }

.title-photos {
  font-weight: 400;
  font-size: 30px;
  padding-top: 70px;
  grid-column: 1 / 2; }

.text-photos {
  font-weight: 300;
  font-size: 22px;
  grid-column: 1 / 2; }

.texto-final {
  text-align: right;
  font-weight: 300; }

.address {
  color: white;
  font-weight: 300; }

#map {
  width: 100%;
  height: 400px;
  background-color: grey; }

@media screen and (max-width: 550px) {
  .wrapper {
    grid-template-areas: "header header" "slogan slogan" "introduction introduction" "mainstreet mainstreet" "detailshouse detailshouse" "cta cta"; }
  introduction {
    grid-template-areas: "introphoto introphoto" "intro intro"; }
  details-house {
    grid-template-areas: "detailsphoto detailsphoto" "detailstext detailstext"; }
  #padding-sections {
    padding: 0px 0; }
  #padding-ctas {
    padding: 50px 0; }
  .image-height {
    height: 300px; }
  .slogan-div {
    top: 25%; }
    .slogan-div .slogan p {
      font-size: 26px; }
  .btn-custom {
    font-size: 16px; }
  .ribbon {
    padding: 25px 0 10px 0; }
    .ribbon .ribbon-slogan {
      font-weight: 700;
      font-size: 18px;
      line-height: 25px; }
    .ribbon .ribbon-text {
      font-weight: 300;
      font-size: 16px; } }

@media screen and (min-width: 551px) {
  .wrapper-photos {
    grid-template-columns: repeat(2, 1fr); }
  .title-photos {
    grid-column: 1 / 3; }
  .text-photos {
    grid-column: 1 / 3; } }
