.ribbon-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
}

.diri-ribbon-blurb-body {
    color: black;
    word-break: normal;
    padding-bottom: 22px;
}

.diri_ribbon .bg-ribbon-wrap {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    border-style: solid;
    min-height: 200px;
    position: relative;
    width: 100%;
    background: #fff;
}

.diri-ribbon-target {
    background-repeat: repeat;
    background-size: initial;
    background-position: top left;
    border-style: solid;
    display: inline-block;
    font-size: 22px;
    text-shadow: 0.08em 0.08em 0em rgba(0, 0, 0, 0.4);
}

.diri-ribbon-border-content {
    padding-left: 20px;
    padding-right: 20px;
}

.diri_ribbon .ribbon-wrapper .diri-ribbon-target {
    overflow: visible;
}

.diri_ribbon .ribbon-wrapper {
    overflow: visible !important;
}

.corner-ribbon-wrap {
    position: relative;
    width: 100%;
    background: #fff;
    /*box-shadow: 0 0 15px rgba(0, 0, 0, .1);*/
}

.diri-ribbon-target div {
    position: relative;
    top: 50%;
    transform: translateY(-50%);
}

.quarter-circle-ribbon.diri-ribbon-target div {
    top: 25%;
}

/* corner ribbon */
.corner-ribbon {
    width: 150px;
    height: 150px;
    overflow: hidden;
    position: absolute;
    z-index: 999;
}

.corner-ribbon::before,
.corner-ribbon::after {
    position: absolute;
    z-index: -1;
    content: '';
    display: block;
    border: 5px solid #a6a6a6;
}

.corner-ribbon span {
    position: absolute;
    display: block;
    width: 225px;
    padding: 15px 0;
    background-color: #3498db;
    box-shadow: 0 5px 10px rgba(0, 0, 0, .1);
    text-align: center;
    height: 44px;
}

.corner-ribbon-wrap .diri-ribbon-title {
    padding-top: 20px;
}

.non-flipper {
    box-shadow: 0 0 15px 11px rgba(0, 0, 0, .1);
}

/* top left*/
.ribbon-top-left {
    top: -10px;
    left: -10px;
}

.ribbon-top-left::before,
.ribbon-top-left::after {
    border-top-color: transparent;
    border-left-color: transparent;
}

.ribbon-top-left::before {
    top: 0;
    right: 0;
}

.ribbon-top-left::after {
    bottom: 0;
    left: 0;
}

.ribbon-top-left span {
    right: -25px;
    top: 35px;
    transform: rotate(-45deg);
}

/* top right*/
.ribbon-top-right {
    top: -10px;
    right: -10px;
}

.ribbon-top-right::before,
.ribbon-top-right::after {
    border-top-color: transparent;
    border-right-color: transparent;
}

.ribbon-top-right::before {
    top: 0;
    left: 0;
}

.ribbon-top-right::after {
    bottom: 0;
    right: 0;
}

.ribbon-top-right span {
    left: -25px;
    top: 35px;
    transform: rotate(45deg);
}

/* bottom left*/
.ribbon-bottom-left {
    bottom: -10px;
    left: -10px;
}

.ribbon-bottom-left::before,
.ribbon-bottom-left::after {
    border-bottom-color: transparent;
    border-left-color: transparent;
}

.ribbon-bottom-left::before {
    bottom: 0;
    right: 0;
}

.ribbon-bottom-left::after {
    top: 0;
    left: 0;
}

.ribbon-bottom-left span {
    right: -25px;
    bottom: 35px;
    transform: rotate(45deg);
}

/* bottom right*/
.ribbon-bottom-right {
    bottom: -10px;
    right: -10px;
}

.ribbon-bottom-right::before,
.ribbon-bottom-right::after {
    border-bottom-color: transparent;
    border-right-color: transparent;
}

.ribbon-bottom-right::before {
    bottom: 0;
    left: 0;
}

.ribbon-bottom-right::after {
    top: 0;
    right: 0;
}

.ribbon-bottom-right span {
    left: -25px;
    bottom: 35px;
    transform: rotate(-45deg);
}

.diri-ribbon-blurb-content {
    margin: 0;
    width: 100%;
    max-width: 100%;
}

/*.et_pb_column_1_3 .ribbon-top-left + .corner-ribbon-wrap .diri-ribbon-blurb-content {
    margin-left: 60px;
}

.et_pb_column_1_3 .ribbon-top-left + .corner-ribbon-wrap .diri-ribbon-blurb-content .diri-ribbon-blurb-image {
    margin-left: 40px;
}*/

.diri-above .diri-ribbon-button {
    margin-bottom: 15px;
}

/*.corner-ribbon-wrap .diri-ribbon-blurb-content {
    padding-top: 40px;
}*/

/*side ribbon*/
.side-ribbon-wrap,
.round-ribbon-wrap,
.pointed-ribbon-wrap,
.forked-ribbon-wrap,
.quarter-circle-ribbon-wrap {
    position: relative;
    background: #fff;
    width: 100%;
    min-height: 3.750em;
    border-radius: 0.313em;
    color: #292929;
}

.corner-ribbon-wrap {
    border-color: #000000;
}

.side-ribbon {
    position: absolute;
    width: 90%;
    /*font-size: 2.000em;*/
    /*min-height: 2em;*/
    height: 44px;
    /*color: #e6e2c8;*/
    border-radius: 0 0.156em 0.156em 0;
    background: rgb(123, 159, 199);
    box-shadow: -1px 2px 3px rgba(0, 0, 0, 0.5);
    z-index: 999;
}

.side-ribbon::before,
.side-ribbon::after {
    position: absolute;
    content: '';
    display: block;
}

.side-ribbon.left {
    left: -2px;
}

.side-ribbon.left:before {
    width: 0.469em;
    height: 100%;
    padding: 0 0 0.438em;
    top: 0;
    left: -0.469em;
    background: inherit;
    border-radius: 0.313em 0 0 0.313em;
}

.side-ribbon.left:after {
    width: 0.313em;
    height: 0.313em;
    background: rgba(0, 0, 0, 0.35);
    bottom: -0.313em;
    left: -0.313em;
    border-radius: 0.313em 0 0 0.313em;
    box-shadow: inset -1px 2px 2px rgba(0, 0, 0, 0.3);
}

.side-ribbon.right {
    position: absolute;
    width: 90%;
    right: 0;
    /*color: #e6e2c8;*/
    border-radius: 0.156em 0 0 0.156em;
    background: rgb(123, 159, 199);
    box-shadow: -1px 2px 3px rgba(0, 0, 0, 0.5);
}

.side-ribbon.right:before {
    width: 0.469em;
    height: 100%;
    padding: 0 0 0.438em;
    top: 0;
    right: -0.469em;
    background: inherit;
    border-radius: 0 0.313em 0.313em 0;
}

.side-ribbon.right:after {
    width: 0.313em;
    height: 0.313em;
    background: rgba(0, 0, 0, 0.35);
    bottom: -0.313em;
    right: -0.313em;
    border-radius: 0 0.313em 0.313em 0;
    box-shadow: inset -1px 2px 2px rgba(0, 0, 0, 0.3);
}

/*.side-ribbon-wrap .diri-below .diri-ribbon-blurb-content {
    padding-top: 60px;
}*/

/*.side-ribbon-wrap .diri-ribbon-blurb-content {
    margin: 20px auto 30px;
    width: 80%;
}*/

.side-ribbon-wrap .diri-above.blurb-wrapper {
    padding-bottom: 4em;
    padding-top: 2em;
}

.diri-ribbon-side-border-content {
    border-style: solid;
}

/* full ribbon */
.full-ribbon-wrap {
    width: 100%;
    position: relative;
    color: #444;
}

.ribbon-wrapper .full-ribbon.diri-ribbon-target {
    border-left: unset;
    border-right: unset;
}

.diri-ribbon-target {
    border-style: solid;
}

/*.full-ribbon-wrap .diri-ribbon-blurb-content {
    padding-top: 1%;
}*/

/*.full-ribbon-wrap .diri-ribbon-blurb-container {
    padding-top: 75px;
}*/

.full-ribbon-wrap button {
    margin-bottom: 20px;
}

/*.full-ribbon-wrap .button-wrapper {
    margin-top: 35px;
}*/

.diri-ribbon-blurb-container {
    margin: 0 65px 15px 65px;
}

.diri-ribbon-blurb-container.diri-icon-at-left {
    margin: 0 65px 15px 0;
}

div.full-ribbon {
    display: block;
    width: calc(100% + 12px);
    height: 44px;
    margin: 0;
    position: absolute;
    left: -6px;
    background: #333;
    border-radius: 2px 2px 0 0;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    z-index: 50;
}

.full-ribbon .diri-ribbon-border-content {
    border-style: solid;
}

div.full-ribbon::before,
div.full-ribbon::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    bottom: -11px;
    z-index: -10;
    border: 5px solid;
    border-color: #a6a6a6 transparent transparent transparent;
}

div.full-ribbon::before {
    left: 0;
}

div.full-ribbon::after {
    right: 0;
}

.full-ribbon.diri-ribbon-target {
    border-left: 0px;
    border-right: 0px;
}

/* Full Ribbon Round */
div.full-ribbon.round {
    border-radius: 4px;
}

div.full-ribbon.round::before,
div.full-ribbon.round::after {
    width: 10px;
    height: 10px;
    bottom: -4px;
    border: none;
    border-radius: 10px;
}

div.full-ribbon.round::before,
div.full-ribbon.round::after {
    background: #242424;
}

/*round ribbon */
.round-ribbon {
    color: #fff;
    --r-box-shadow-color: #7ebec5;
    background-color: #0c71c3;
    font-weight: 600;
    /*font-size: 17px;*/
    text-align: center;
    border-radius: 50%;
    box-shadow: 0 0 0 4px var(--r-box-shadow-color);
    /*padding-top: 10px;*/
    line-height: 1.2em;
    position: absolute;
    width: 85px;
    height: 85px;
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;
}

.round-ribbon-top-right {
    right: -15px;
    top: -35px;
}

.round-ribbon-top-left {
    left: -30px;
    top: -40px;
}

.round-ribbon-bottom-right {
    right: -15px;
    bottom: -35px;
}

.round-ribbon-bottom-left {
    left: -30px;
    bottom: -40px;
}

.round-ribbon.diri-ribbon-target .diri-round-ribbon-border-content div {
    /*padding-left: 20px;
    padding-right: 20px;*/
    display: flex;
    justify-content: center;
    align-items: center;
    position: static;
    top: auto;
    transform: none;
}

/*.round-ribbon-wrap .diri-ribbon-blurb-content {
    margin-top: 30px;
    margin-left: 60px;
}*/

/* forked ribbon */
.forked-ribbon {
    color: #ffffff;
    background: #7ebec5;
    font-family: 'Ubuntu', Helvetica, Arial, Lucida, sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    text-align: center;
    /*font-size: 16px;*/
    line-height: 1.2em;
    width: 60px;
    padding: 10px 0;
    position: absolute;
    border-top-left-radius: 3px;
    z-index: 10;
}

.forked-ribbon:before {
    border-bottom: 6px solid #493fd4;
    content: "";
    position: absolute;
    height: 0;
    width: 0;
    right: -5.5px;
    top: 0.1px;
    border-right: 6px solid transparent;
}

.forked-ribbon:after {
    border-left: 30px solid #7ebec5;
    border-right: 30px solid #7ebec5;
    content: "";
    position: absolute;
    height: 0;
    width: 0;
    bottom: -29.5px;
    left: 0;
    border-bottom: 30px solid transparent;
}

.forked-ribbon-text {
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 4px;
    padding: 0;
}

.forked-ribbon-top-left {
    top: -6px;
    left: 15px;
}

/*.forked-tl .diri-ribbon-blurb-content {
    margin-left: 90px;
    margin-top: 30px;
}*/

.forked-ribbon-top-right {
    top: -6px;
    right: 15px;
}

/*.forked-tr .diri-ribbon-blurb-content {
    margin: 60px auto 30px;
    padding-right: 20px;
}*/

.ribbon-wrapper .forked-ribbon.diri-ribbon-target {
    border-left: unset;
    border-right: unset;
    border-bottom: unset;
}

/*pointed ribbon*/
.pointed-ribbon {
    color: #fff;
    font-family: 'Lato', Helvetica, Arial, Lucida, sans-serif;
    font-weight: 700;
    /*font-size: 15px;*/
    letter-spacing: 0.4px;
    position: absolute;
    z-index: 20;
}

.pointed-ribbon:after {
    border-top: 10px solid #7ebec5;
    position: absolute;
    content: "";
    width: 0;
    height: 0;
    border-left: 60px solid transparent;
    border-right: 60px solid transparent;
}

.pointed-ribbon span {
    /*background: #3355ff;*/
    position: relative;
    display: block;
    text-align: center;
    padding: 12px 8px 10px;
    border-top-right-radius: 8px;
    width: 120px;
    box-shadow: 0px 12px 18px -6px rgba(0, 0, 0, 0.28);
}

.pointed-ribbon span:before,
.pointed-ribbon span:after {
    position: absolute;
    content: "";
}

.pointed-ribbon span:before {
    background: #808080;
    height: 6px;
    width: 6px;
    left: -6px;
    top: 0;
}

.pointed-ribbon span:after {
    background: #808080;
    height: 6px;
    width: 8px;
    left: -8px;
    top: 0;
    border-radius: 8px 8px 0 0;
}

.pointed-ribbon-top-right {
    top: -6.1px;
    right: 10px;
}

.pointed-ribbon-top-left {
    top: -6.1px;
    left: 10px;
}

/*.pointed-ribbon-wrap .diri-ribbon-blurb-content {
    margin: 60px auto 30px;
    width: 80%;
}*/

.ribbon-wrapper .pointed-ribbon.diri-ribbon-target {
    border-top: unset;
    border-bottom: unset;
}

/* quarter-circle*/
.quarter-circle-ribbon {
    background: #7ebec5;
    --qc-box-shadow-color: #7ebec5;
    color: #FFF;
    height: 75px;
    width: 75px;
    padding-top: 10px;
    padding-right: 10px;
    position: absolute;
    flex-direction: row;
    box-shadow: 0 0 0 4px var(--qc-box-shadow-color);
    z-index: 10;
    text-align: center;
}

.quarter-circle-ribbon-top-right {
    text-align: right;
    top: -1px;
    right: -1px;
    border-radius: 0 0 0 85%;
}

.quarter-circle-ribbon-top-left {
    /*text-align: left;*/
    border-radius: 0 0 85% 0;
    top: -1px;
    left: -1px;
}

.quarter-circle-ribbon-bottom-right {
    text-align: right;
    border-radius: 85% 0 0 0;
    bottom: -1px;
    right: -1px;
}

.quarter-circle-ribbon-bottom-left {
    /*text-align: left;*/
    border-radius: 0 85% 0 0;
    bottom: -1px;
    left: -1px;
}

.quarter-circle-ribbon-top-right .diri-quarter-circle-ribbon-content,
.quarter-circle-ribbon-bottom-right .diri-quarter-circle-ribbon-content {
    padding-left: 3px;
}

/*.quarter-circle-ribbon-top-right .diri-quarter-circle-ribbon-content,
.quarter-circle-ribbon-bottom-right .diri-quarter-circle-ribbon-content {
    padding-right: 10px;
}*/

.quarter-circle-ribbon-top-left .diri-quarter-circle-ribbon-content,
.quarter-circle-ribbon-top-right .diri-quarter-circle-ribbon-content {
    line-height: 1em;
}

.quarter-circle-ribbon.quarter-circle-ribbon-bottom-left .diri-quarter-circle-ribbon-content,
.quarter-circle-ribbon.quarter-circle-ribbon-bottom-right .diri-quarter-circle-ribbon-content {
    line-height: 1em;
    top: 50%;
}

/*.quarter-circle-ribbon-wrap .diri-ribbon-blurb-content {
    margin: 30px auto 30px;
    width: 80%;
    padding-left: 30px;
}*/


.full-ribbon-wrap .blurb-wrapper.diri-above {
    padding-bottom: 30px;
}

.diri-ribbon-button {
    display: block;
    margin: 35px 20px 20px 20px;
    padding-bottom: 10px;
    z-index: 10;
    position: relative;
}

.diri-ribbon-button a {
    display: inline-block;
}

.diri-ribbon-button.left {
    text-align: left;
    float: left;
}

.diri-ribbon-button.center {
    text-align: center;
}

.diri-ribbon-button.right {
    text-align: left;
    float: right
}

.flip-box {
    perspective: 1000px;
    width: 100%;
    position: relative;
    display: block;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

.flip-box-transition {
    -webkit-transition: all .25s;
    transition: all .25s;
}

.flip-box .flip-box-inner {
    -webkit-transition-duration: 500ms;
    -moz-transition-duration: 500ms;
    -ms-transition-duration: 500ms;
    transition-duration: 500ms;
    position: relative;
    width: 100%;
    height: inherit;
    overflow: hidden;
}

.flip-box .flip-box-inner .flip-box-face {
    width: 100%;
    position: absolute;
    backface-visibility: hidden;
    z-index: 2;
    font-family: Georgia;
    font-size: 3em;
    text-align: center;
    cursor: pointer;
}

.flip-box .flip-box-back {
    transform: translateX(100%);
}

.flip-box .flip-box-front {
    transform: translateX(0);
}

.flip-box-front,
.flip-box-back,
.flip-box-side {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    transition: all .5s;
}

.flip-box-blurb-wrap {
    border: 1px solid grey;
}

.flip-box.flipped .flip-box-front {
    transform: translateX(-100%);
}

.flip-box.flipped .flip-box-back {
    transform: translateX(0px);
}

.flip-box .flip-box-front {
    z-index: 1;
}


.flip-box .flip-box-back .flip-box-side {
    transform: perspective(550px) rotateY(90deg) translateY(0.0001%);
    transform-origin: left;
}

.flip-box.flipped .flip-box-back .flip-box-side {
    transform: perspective(550px) rotateY(0deg) translateY(0.0001%);
}

.flip-box .flip-box-front .flip-box-side {
    transform: perspective(550px) rotateY(0deg) translateY(0.0001%);
    transform-origin: right;
}

.flip-box.flipped .flip-box-front .flip-box-side {
    transform: perspective(550px) rotateY(-90deg) translateY(0.0001%);
}

.flip-box-side {
    /*display: table;*/
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
}

.flip-box-side .diri-ribbon-blurb-content {
    display: block;
}

.flipbox-icon {
    display: inline-block;
    text-align: center;
    line-height: 1em;
    vertical-align: middle;
    max-width: 100%;
    overflow: hidden;
    z-index: 1;
    transform: translate3d(0, 0, 0);
}

.diri-ribbon-image-wrap {
    display: block;
}

.diri-ribbon-image-wrap .diri-ribbon-blurb-image {
    display: block;
    text-align: center;
}

.flip-box-inner .flip-box-front .diri-ribbon-blurb-image {
    height: 100%;
    display: flex;
    text-align: center;
    align-items: center;
    vertical-align: center;
}

.flip-box-front .diri-ribbon-blurb-image img {
    width: 100%;
}

.flip-box-blurb-wrap,
.flip-box-blurb-wrap {
    display: flex;
    align-items: center;
}

.flip-box-front .diri-ribbon-blurb-image .diri-ribbon-flip-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.diri-ribbon-image-wrap img.diri-ribbon-small-image {
    width: 30%;
    height: auto;
    z-index: 10;
    position: relative;
    border: solid;
}

.diri-ribbon-image-wrap .diri-ribbon-top-blurb-image {
    margin-top: 5px;
    text-align: center;
}

.full-ribbon-wrap .diri-ribbon-image-wrap .diri-ribbon-top-blurb-image {
    margin-top: 40px;
    text-align: center;
}

.diri-ribbon-image-wrap .diri-ribbon-side-blurb-image {
    width: 50%;
}

.diri-ribbon-image-wrap img.diri-ribbon-small-image {
    width: 60%;
    border: solid 0px black;
}

.diri-ribbon-image-wrap,
.diri-ribbon-image-wrap img.diri-ribbon-back-image {
    width: 100%;
    height: 100%;
}

.diri-ribbon-image-wrap .diri-ribbon-back-image {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.diri-ribbon-blurb-image .diri-ribbon-icon {
    text-align: center;
    margin-bottom: 15px;
}

.flipbox-icon-wrap {
    position: relative;
    overflow: hidden;
}

.flip-box-blurb-wrap {
    vertical-align: middle;
}

.diri-ribbon-icon,
.diri-ribbon-flip-icon {
    position: relative;
    z-index: 2;
    margin: 5% auto;
}

.diri-ribbon-title {
    z-index: 10;
    position: relative;
}

.diri-ribbon-blurb-image .diri-ribbon-content {
    z-index: 10;
    position: relative;
    display: block;
}

.diri-ribbon-blurb-position-left .diri-ribbon-blurb-container {
    padding-left: 2%;
}

.diri-ribbon-blurb-position-right .diri-ribbon-blurb-container {
    padding-right: 2%;
}

.diri-bkg-image {
    display: block;
    width: 100%;
    height: auto;
}

.flip-box-front .diri-ribbon-blurb-image img {
    display: inline;
}

.diri-side-ribbon-border.left.diri-ribbon-target {
    border-left-width: unset;
}

.diri-side-ribbon-border.right.diri-ribbon-target {
    border-right-width: unset;
}

.diri-ribbon-icon.diri-at-left {
    margin: 0 15px 0 0;
    font-size: 40px;
}

/*.full-ribbon-wrap .diri-ribbon-blurb-container.diri-icon-at-top {
    margin: 0;
}*/

.diri-ribbon-button-pad {
    padding-top: 10%;
}

.side-ribbon-wrap .diri-ribbon-button-pad {
    padding-top: 45%;
}

.full-ribbon-wrap .diri-ribbon-button-pad {
    padding-top: 0;
}

/*.forked-ribbon-wrap .diri-ribbon-blurb-container {
    margin-left: 82px;
}*/
.forked-tr .diri-ribbon-blurb-content .diri-ribbon-image-wrap {
    padding-left: 40px;
    padding-right: 15px;
}

.quarter-circle-ribbon-wrap .diri-ribbon-image-wrap .diri-ribbon-blurb-container {
    margin-left: 0;
}

.quarter-circle-ribbon-wrap .diri-ribbon-blurb-content .diri-ribbon-image-wrap {
    padding-left: 40px;
}

.diri_ribbon  .et-pb-icon-circle {
	border-radius: 100%;
}
.diri_ribbon .et-pb-icon-circle {
	padding: 25px;
}


@media screen and (max-width: 768px) {
    .blurb-border .diri-ribbon-blurb-content .diri-ribbon-image-wrap {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
  justify-content: center;
  padding-left: 10px;
    }
    .blurb-border .diri-ribbon-image-wrap .diri-ribbon-side-blurb-image {
        width: 100%;
    }
    .blurb-border .diri-ribbon-image-wrap .diri-ribbon-blurb-image img {
        width: 50%;
    }
}