.feature-box {
  /*border:1px solid black;*/
}

.feature-section {
  margin-top: 20px;
  margin-bottom: 20px;
  list-style: none;
}

.feature-section ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.feature-box .feature-box-background {
  /* this will have a css image applied in the box content template */
  width: 100%;
  display: inline-block;
  vertical-align: middle;
  font: 0/0 serif;
  text-shadow: none;
  color: transparent;
  background-size: 100%;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}

.feature-box .feature-box-background .inner {
  display: block;
  height: 0;
}

@media (max-width: 1199px) {

  /* md and smaller: */
  .feature-section {
    margin-left: 20px;
    margin-right: 20px;
  }
}

@media (max-width: 767px) {
  .feature-box.one-wide {
    padding: 20px 19%;
  }
}

@media (max-width: 460px) {
  .feature-box.one-wide {
    padding: 20px 15%;
  }
}

/* -----  header-feature-section ----- */

.feature-section.header-feature-section {
  margin-top: 0;
  margin-bottom: 0;
  min-height: 110px;
}

.feature-section.header-feature-section .feature-section-container {
  /* absolute to .page-header-right */
  position: absolute;
  bottom: 0;
  right: 0;
}

.feature-section.header-feature-section .feature-box {
  float: left;
  margin-left: 20px;
  width: 171px;
  height: 110px;
}

@media (max-width: 991px) {
  .feature-section.header-feature-section {
    min-height: 80px;
  }

  .feature-section.header-feature-section .feature-box {
    margin-left: 10px;
    width: 124px;
    height: 80px;
  }
}

@media (max-width: 1199px) {

  /* md and smaller: override .feature-section change*/
  .feature-section.header-feature-section {
    margin-left: 0;
    margin-right: 0;
  }
}


/*-- top-row feature section --*/


@media (max-width: 767px) {
  .feature-section.top-row-section .feature-box.one-wide {
    padding: 10px 10%;
  }
}


/* -----  ribbon-icon-content ----- */

.feature-box .ribbon-icon-content {
  position: relative;
  width: 100%;
  height: 145px;
  /* height 100% wirk in FF and Chrome, but Safari needs height set */
}

.feature-box .ribbon-icon-content .ribbon-image {
  width: 100%;
  height: 69%;
  top: 14%;
  position: absolute;
}

.feature-box .ribbon-icon-content .floating-icon-image {
  height: 100%;
  position: absolute;
  right: 15%;
  top: 0;
}

.feature-box .ribbon-icon-content .floating-icon-image {
  font: 0/0 serif;
  text-shadow: none;
  color: transparent;
  background-size: 100%;
  background-position: 50% 50%;
  background-repeat: no-repeat;
}

.feature-box .ribbon-icon-content .floating-text-div {
  position: absolute;
  font-size: 14px;
  line-height: 14px;
  height: 69%;
  width: 70%;
  left: 3%;
  top: 9%;
  padding-left: 5%;
  padding-right: 5%;
  padding-top: 3%;
  padding-bottom: 1%;
}

.feature-box .ribbon-icon-content .floating-text-div h3 {
  font-weight: bold;
  margin: 0;
  font-size: 1.3em;
}

.feature-box .ribbon-icon-content .floating-text-div .body {
  margin: 0;
  font-size: 0.9em;
}

.feature-box .ribbon-icon-content .floating-text-div .footer {
  margin: 0;
  font-size: 0.7em;
}

@media (max-width: 991px) {
  .feature-box .ribbon-icon-content {
    height: 174px;
  }

  .feature-box .ribbon-icon-content .floating-text-div {
    font-size: 18px;
    line-height: 18px;
  }
}

@media (max-width: 767px) {
  .feature-box .ribbon-icon-content .floating-text-div {
    font-size: 20px;
    line-height: 20px;
    width: 70%;
  }

  .feature-box .ribbon-icon-content .floating-icon-image {
    display: none;
  }

  .feature-box .ribbon-icon-content .ribbon-image {
    width: 100%;
    height: 100%;
    position: relative;
    background-position: 0 0;
  }
}

@media (max-width: 650px) {
  .feature-box .ribbon-icon-content .floating-text-div {
    font-size: 18px;
    line-height: 18px;
    width: 70%;
  }
}

@media (max-width: 550px) {

  .feature-box .ribbon-icon-content .floating-text-div {
    width: 90%;
    font-size: 16px;
    line-height: 16px;
  }
}

@media (max-width: 450px) {
  .feature-box .ribbon-icon-content .floating-text-div {
    font-size: 14px;
    line-height: 14px;
  }
}

/* sm and smaller:
@media (max-width: 991px) {

}
 */

/*  Feature Box "box_class" CSS 
    match expected image size, or set appropriate background-size, to prevent blurry images
*/

.feature-size-100 .feature-box-background,
.feature-size-102 .feature-box-background,
.feature-size-105 .feature-box-background,
.feature-size-106 .feature-box-background {
  position: relative;
  left: 50%;
  transform: translate(-50%, 0);
  width: 100%;
}

.feature-size-100 .feature-box-background {
  max-width: 300px;
  max-height: 250px;
}

.feature-size-102 .feature-box-background {
  max-width: 912px;
  max-height: 250px;
}

.feature-size-105 .feature-box-background {
  max-width: 460px;
  max-height: 145px;
}

.feature-size-106 .feature-box-background {
  max-width: 140px;
  max-height: 90px;
}

@media (min-width: 0px) and (max-width: 992px) {
  .feature-size-auto .feature-box-background {
    background-size: contain;
  }
}

@media (min-width: 992px) {
  .feature-size-auto .feature-box-background {
    background-size: auto;
  }
}