@mixin paragraph-grid-item() {
  .grid-item {
    margin: -1px 0 0;
    padding: 0;
    border-top: 1px solid $darker-grey;
    border-bottom: 1px solid $darker-grey;
    width: 100%;
    @include breakpoint (768px) {
      margin: 0 0 40px;
    }
  }
  .inner {
    padding: 20px 0;
  }
  img {
    vertical-align: middle;
    margin-right: 5px;
    max-height: 24px;
    max-width: 24px;
    float: left;
    width: auto;
    @include breakpoint (768px) {
      max-height: 28px;
      max-width: 28px;
    }
    @include breakpoint (1024px) {
      max-height: 35px;
      max-width: 35px;
    }
  }
  h2 {
    vertical-align: middle;
    margin: 0;
    font-size: 24px;
    @include breakpoint (768px) {
      font-size: 26px;
    }
    @include breakpoint (1024px) {
      font-size: 30px;
    }
    &.with-icon {
      padding-left: 28px;
      @include breakpoint (768px) {
        padding-left: 32px;
      }
      @include breakpoint (1024px) {
        padding-left: 40px;
      }
    }
  }
  .fa {
    color: $purple;
    font-size: 24px;
    vertical-align: middle;
    margin-right: 5px;
    max-height: 24px;
    max-width: 24px;
    float: left;
    width: auto;
    &.fa-handshake-o {
      margin-right: 20px;
    }
    @include breakpoint (768px) {
      font-size: 26px;
      max-height: 26px;
      max-width: 26px;
    }
    @include breakpoint (1024px) {
      font-size: 30px;
      max-height: 30px;
      max-width: 30px;
    }
  }
  .text {
    font-size: 15px;
    line-height: 1.5;
    padding: 15px 0;
    p {
      margin: 0;
    }
  }
  .more-link {
    font-size: 15px;
    a {
      display: block;
      margin-bottom: 5px;
      &:after {
        display: inline;
        content: ">";
        margin-left: 5px;
      }
    }
  }
}

.paragraph--column-in-a-grid {
  @include paragraph-grid-item();

  .landing-content & {
    margin-top: 20px;
    margin-bottom: 20px;

    @include breakpoint ($screen-sm) {
      margin-bottom: 0px;
    }
  }
}

.paragraph-gallery {
  position: relative;

  .carousel {
    margin: 0px -135px;

    @include breakpoint (768px) {
      margin: 0;
    }

    @include breakpoint (1024px) {
      margin: 0;
    }

    .carousel-control {
      background-color: rgba(255, 255, 255, 0.5);
      background-image: none;
      height: 46px;
      opacity: 1;
      width: 46px;
      z-index: 1;

      @include breakpoint (768px) {
        background: none;
        opacity: 0.5;
        height: 54px;
        width: 44px;
      }

      @include breakpoint (1024px) {
        height: 74px;
        width: 58px;
      }

      .fa {
        font-size: 34px;
        line-height: 46px;
        color: $white;

        @include breakpoint (768px) {
          font-size: 54px;
          line-height: 54px;
        }

        @include breakpoint (1024px) {
          font-size: 74px;
          line-height: 74px;
        }
      }

      &.left {
        text-align: right;
        top: 50%;
        left: 135px;
        margin-top: -23px;

        @include breakpoint (768px) {
          left: 10px;
          margin-top: -27px;
        }

        @include breakpoint (1024px) {
          margin-top: -37px;
        }

        .fa {
          margin-right: 5px;
        }
      }

      &.right {
        text-align: left;
        top: 50%;
        right: 135px;
        margin-top: -23px;

        @include breakpoint (768px) {
          right: 10px;
          margin-top: -27px;
        }

        @include breakpoint (1024px) {
          margin-top: -37px;
        }

        .fa {
          margin-left: 5px;
        }
      }
    }

    .carousel-inner > .item img,
    .carousel-inner > .item a img {
      height: auto;
      width: 100%;
    }
  }

  .cta-group-wrapper {

    @include breakpoint (768px) {
      position: absolute;

      max-height: 100%;
      width: 100%;
      left: 60px;
      top: 50%;
      bottom: auto;

      transform: translate(0,-50%);
    }

    @include breakpoint (1368px) {
      left: 0;
      top: 70px;
      bottom: auto;

      transform: none;
    }

    .cta-group {
      background-color: rgba(215, 215, 215, 0.25);
      padding: 23px 15px;

      @include breakpoint (768px) {
        background-color: rgba(255, 255, 255, 0.8);
        max-width: 400px;
      }

      @include breakpoint (1024px) {
        background-color: rgba(255, 255, 255, 0.8);
      }

      @include breakpoint (1024px) {
        padding: 25px 20px;
      }

      h1 {
        margin: 0;
        color: $pink;
        font-size: 32px;

        @include breakpoint (768px) {
          margin: 0 0 15px;
          font-size: 32px;
        }

        @include breakpoint (1024px) {
          font-size: 46px;
          line-height: 50px;
          margin: 0 0 10px;
        }
      }

      .text {
        @include cachet();
        font-size: 18px;
        line-height: 22px;
        margin-bottom: 15px;

        @include breakpoint (768px) {
          font-size: 20px;
          margin-bottom: 15px;
        }

        @include breakpoint (1024px) {
          font-size: 20px;
          margin-bottom: 30px;
        }

        @include breakpoint (1025px) {
         line-height: 23px;
        }
      }

      .btn {
        white-space: normal;
        font-size: 18px;
        padding: 0px;
        width: 100%;

        @include breakpoint (768px) {
          font-size: 20px;
        }

        a {
          display: block;
          padding: 12px;

          @include breakpoint (1025px) {
            padding: 15px;
          }
        }
      }
    }
  }
  .item__caption__wrapper {
    position: relative;
  }
  .item__caption {
    background-color: rgba(255, 255, 255, 0.8);
    position: absolute;
    right: 15px;
    bottom: 15px;
    color: $purple;
    font-size: 14px;
    font-style: italic;
    font-stretch: normal;
    line-height: 1.43;
    max-width: 260px;
    padding: 10px;
  }
}

.sidebar-card {
  border: 1px solid $light-grey;
  padding: 20px 17px;
  margin-bottom: 20px;
  margin-top: 20px;

  @include breakpoint ($screen-sm) {
    padding: 20px 25px;
    margin-bottom: 27px;
  }

  h2 {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    text-transform: uppercase;
    color: $default-grey;
    margin: 0 0 25px;
    font-size: 14px;
    font-weight: normal;
    line-height: 1.2;
    letter-spacing: 2px;
  }

  .field-prgf-description h2 {
    color: $purple;
    @include cachet();
    font-weight: bold;
    letter-spacing: normal;
    text-transform: none;

    a {
      text-decoration: none;
      color: inherit;
    }
  }
}

.story-card {

  a {
    color: $purple;
    text-decoration: none;
  }

  .quote {
    color: $purple;
    @include cachet();
    font-size: 30px;
    line-height: 38px;
    letter-spacing: -1px;
    margin-bottom: 33px;
    display: flex;

    @include breakpoint ($screen-sm) {
      font-size: 25px;
      line-height: 1.2;
    }

    svg {
      display: block;
      float: left;
      height: 24px;
      fill: $purple;
      width: 28px;
    }

    .quote-open {
      margin: 0 16px 0 0;
    }

    .quote-close {
      margin: 0 0 0 16px;

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

  .link {
    font-size: 15px;
    color: $blue;
    &:hover {
      text-decoration: underline;
    }
  }
}

.promo-card {

  .description {
    font-size: 14px;
    line-height: 1.2;
    color: $brown;
    margin-bottom: 28px;

    h1, h2, h3, h4, h5, h6 {
      font-size: 20px;
      color: $blue;
      line-height: 1.2;
      margin: 0 0 10px;
    }
  }

  .btn {
    white-space: normal;
    font-size: 20px;
    padding: 0px;
    width: 100%;

    a {
      display: block;
      padding: 16px;

      @include breakpoint ($screen-sm) {
        padding: 10px;
      }
    }
  }
}

.banner {
  background-color: $yet-another-green;
  overflow: hidden;
  position: relative;

  // Color variations.
  &--dark-blue { background-color: $dark-blue; }
  &--dark-green { background-color: $dark-green; }
  &--green { background-color: $yet-another-green; }
  &--grey { background-color: $default-grey; }
  &--purple { background-color: $purple; }

  &-image {

    @include breakpoint($screen-desktop) {
      position: absolute;
      right: 0;
      width: calc(50% + #{ceil($container-desktop/6 - $grid-gutter-width)});
    }

    @include breakpoint($screen-lg-desktop) {
      width: calc(50% + #{ceil($container-large-desktop/6 - $grid-gutter-width)});
    }

    img {
      width: 100% !important;
      height: auto !important;

      @include breakpoint($screen-desktop $screen-lg-desktop) {
        width: 120% !important;
      }
    }
  }

  &-cta-section {
    padding-bottom: 18px;

    @include breakpoint($screen-desktop) {
      padding-top: 60px;
      padding-bottom: 60px;
    }

    @include breakpoint($screen-lg-desktop) {
      padding-bottom: 75px;
    }
  }

  &-title {
    @include cachet;
    color: $white;
    font-size: 32px;
    line-height: 36px;
    margin-bottom: 10px;
    text-transform: uppercase;

    @include breakpoint($screen-desktop) {
      font-size: 48px;
      line-height: 48px;
    }

    @include breakpoint($screen-lg-desktop) {
      font-size: 50px;
      line-height: 50px;
    }
  }

  &-description {
    @include cachet;
    color: $white;
    font-size: 18px;
    font-style: normal;
    font-stretch: normal;
    font-weight: 500;
    line-height: 1.22;

    @include breakpoint($screen-tablet) {
      font-size: 20px;
      line-height: 25px;
      margin-bottom: 30px;
    }
  }

  .banner-btn {
    white-space: normal;
    font-size: 20px;
    padding: 0px;
    width: 100%;

    a {
      border: 1px solid $white;
      color: $white;
      display: block;
      padding: 16px;

      @include breakpoint ($screen-sm) {
        padding: 15px;
      }
    }
  }

  &--small {
    min-height: 105px;

    @include breakpoint($screen-desktop) {
      min-height: 160px;
    }

    .banner-image {
      display: none;

      @include breakpoint($screen-desktop) {
        display: block;
        position: absolute;
        right: 0;
        width: calc(50% - #{ceil($container-desktop/6 + 0*$grid-gutter-width)});
      }

      @include breakpoint($screen-lg-desktop) {
        width: calc(50% - #{ceil($container-large-desktop/6 + 0*$grid-gutter-width)});
      }
    }

    .banner-cta-section {
      padding: 13px 0;

      @include breakpoint($screen-desktop) {
        padding: 30px 0;
      }
    }

    .banner-title {
      margin: 0 0 10px;
      max-width: 700px;
    }

  }
}

.paragraph {
  .h1 {
    font-weight: bold;

    [class*='sidebar'] & {
      padding-bottom: 1em;
    }
  }
  &--type--latest-blog-posts,
  &--type--blog-posts-listing,
  &--type--latest-blog-posts-branch,
  &--type--latest-blog-posts-camp {
    .h1 {
      margin-bottom: 10px;
      font-size: $h1-size;
    }
    .blog-more-teaser {
      margin-top: 0;
    }
    .views-exposed-form {
      margin-top: 24px;
      margin-bottom: 30px;
    }
    @include breakpoint($screen-sm) {
      .blog-more-teaser-results-wrapper {
        margin-left: -15px;
        margin-right: -15px;
      }
    }
  }
}

.paragraph--type--dynamic-content,
.paragraph--type--prgf-location-finder-filters {
  padding: 20px 0;
  overflow: hidden;
  .one-column-clean &:first-child,
  .landing-header & {
    padding-top: 0;
  }
}
.paragraph--type--prgf-location-finder-filters {
  padding: 0;
  overflow: visible;
  .messages {
    padding: 20px;
  }
  .tag_filters {
    width: 100%;
    @media (max-width: $screen-md) {
      margin-top: 15px;
    }

    .ms-options-wrap {
      button {
        height: 34px;
        font-size: 14px;
        line-height: 1.42857143;
        color: #555555;
      }
      .ms-options li label {
        left: 0;
        background-color: #FFFFFF;

        &:hover {
          color: #FFFFFF;
          background: #00aeef;
        }
      }
    }
  }
}
.paragraph--type--prgf-location-finder {
  .views-element-container {
    padding: 20px 0;
    &:before,
    &:after {
      clear: both;
      content: '';
      display: table;
      width: 0;
    }
  }
}

.color-purple {
  color: $purple;
}

.description.purple {
  @extend .color-purple;
  @include cachet();
  padding-bottom: 1em;
  font-size: 20px;
  max-width: 840px;
  line-height: 1.45em;
  font-weight: bold;

  p {
    line-height: inherit;
    &:last-child {
      margin: 0;
    }
  }
}

.paragraph.featured-content {

  .description {
    @extend .description.purple;

    font-size: 17px;
    line-height: 23px;
  }

  &.paragraph--type--featured-content {
    .h1 {
      @include breakpoint(0 $screen-sm) {
        font-size: 28px;
        line-height: 31px;
      }
    }

    .field-cta-link {
      a {
        font-size: 18px;
        font-weight: normal;
      }
    }

  }

  .wrapper-field-prgf-clm-description {
    font-size: 15px;
    position: relative;

    h3 {
      font-size: 20px;
      @include cachet();
    }
  }

  center {
    margin-top: 1em;
    margin-bottom: 2em;
  }

  .row-eq-height {
    div,
    h3,
    p {
      width: 100%;
      margin-top: 0;
    }
  }

  .h1 {
    padding-bottom: 4px;
  }

  .btn {
    white-space: normal;
    display: inline-block;
    width: 90%;
    padding: 15px 0;

    @include breakpoint($screen-xs) {
      width: auto;
      padding: 6px 12px;
    }
  }

  .btn a {
    font-size: 20px;
    font-weight: 600;
    line-height: normal;
    padding: 0 24px ;
    display: inline-block;

    @include breakpoint($screen-xs) {
      line-height: 50px;
    }
  }

  .slick-slide {
    padding: 0 20px;
    opacity: 0;

    &.slick-current {
      opacity: 1;
    }
  }
}

.paragraph--class-content {

  .cards {

    > a {
      display: block;
      width: 100%;
      border: 1px solid $pink;
      margin: 0 0 15px;
      padding: 15px;
      height: auto;
      text-decoration: none;
    }

    .field-collection-item.without-link {
      display: block;
      width: 100%;
      border: 1px solid $pink;
      margin: 0 0 15px;
      padding: 15px;
      height: auto;
      text-decoration: none;
    }

    h2 {
      @include cachet();
      font-size: 22px;
      line-height: 1;
      color: $blue;
      margin: 40px 0 27px;
    }

    .text {
      font-size: 15px;
      line-height: 1.5;
      color: $default-grey;
    }
  }
}

.paragraph--type {
  &--simple-content,
  &--class-content,
  &--category-content {
    padding: 20px 0;
  }
  &--simple-content .field-body-no-summary>h1:first-child {
    margin-top: 0;
  }
}

.paragraph--type--frontpage-updates-queue {
  padding-top: 20px;
  h1,
  .h1 {
    font-weight: bold;
  }
}

.paragraph--type--featured-blogs {
  .slick-prev {
    left: 15px;
  }
  .slick-next {
    right: 15px;
  }
  .slick-arrow {
    top: 55%;
  }
  @include breakpoint(0 $screen-sm) {
    padding-left: 15px;
    padding-right: 15px;
    .slick-prev {
      left: -17px;
    }
    .slick-next {
      right: -17px;
    }
  }
  @include breakpoint($screen-sm) {
    .description {
      margin-left: -15px;
      margin-right: -15px;
    }
  }
}

.paragraph--type--openy-prgf-mbrshp-calc {
  padding: 20px 0;
  overflow: hidden;
}

.paragraph--type--classes-listing-filters {
  background-color: $lighter-grey;

  form {
    background-color: $sky-blue;
    margin-bottom: 20px;
    padding-bottom: 15px;
    @include breakpoint($screen-sm) {
      background-color: $lighter-grey;
      margin-bottom: 40px;
      padding-bottom: 0;
    }
  }

  .js-form-type-select {
    display: inline-block;
    padding: 10px 0 5px;
    width: 100%;
    @include breakpoint($screen-sm) {
      float: left;
      padding: 15px 0;
      margin-right: 18px;
      width: 125px;
    }
    @include breakpoint($screen-md) {
      width: 170px;
    }
    @include breakpoint($screen-lg) {
      width: 200px;
    }

    label {
      font-size: 14px;
      line-height: 1.6;
      @include cachet();
      color: $dark-grey;
      margin-bottom: 0;
      @include breakpoint($screen-sm) {
        margin-bottom: 5px;
      }
    }

    select {
      text-transform: uppercase;
      color: $dark-grey;
      @include cachet();
    }
  }

  .form-actions {
    margin-top: 10px;
    @include breakpoint($screen-sm) {
      margin-top: 49px;
    }
  }
}
