.building-projects-landing-page,
.building-projects-content-page {
    font-family: Roboto;
}

.container--full {
    padding: 0;
}

.left-side-column.right-side-column {
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
}

@media screen and (min-width:992px){
    .left-side-column.right-side-column {
        margin-right: 0;
        margin-left: 30px;
    }
}

/* Unfortunate need to override the H1 based on the design. */
.building-projects-content-page h1 {
    color: #000000;
    font-size: 28px;
}

@media screen and (min-width:768px){
    .building-projects-content-page h1 {
        margin-bottom: 20px;
        font-size: 42px;
        line-height: 1.25;
    }
}

/* Hide share and print just for building projects pages */
.building-projects-content-page .share-print {
    display: none;
}

/* Add space to the bottom of the container */
.building-projects-content-page .interior-content-block {
    margin-bottom: 40px;
}

@media screen and (min-width:992px){
    .building-projects-content-page .interior-content-block {
        margin-bottom: 80px;
    }
}

/* Layout Specific styles */
.building-projects-content-area {
    position: relative;
    padding: 40px 0 80px;
    margin-bottom: 40px;
}

/* Really hate this had to be done. They made me. Had to bold the H tag on mobile only.  */
@media screen and (max-width: 600px) {
    .building-projects-content-area .bp-content h2 {
        font-weight: 500;
        line-height: 1.25;
    }
}

.building-projects-content-area .bp-traffic-cta {
    margin-top: 40px;
}

.building-projects-cta-area {
    margin: 0 auto 50px;
}


@media screen and (min-width:992px){
    .building-projects-content-area {
        padding: 60px 0 100px;
    }
    
    .building-projects-content-area .bp-traffic-cta {
        position: inherit;
        max-width: 380px;
        margin: 0;
    }
    
    .building-projects-landing-page .bp-content {
        max-width: 50%;
    }
    
    .building-projects-cta-area {
        margin: 0 auto 75px;
        padding: 65px 5vw; /* Used VW unit so spacing ould adjust for screen size and due to the child cta having same padding */
        border-left: 2px solid #F2F2F2;
        border-right: 2px solid #F2F2F2;
        border-bottom: 2px solid #F2F2F2;
    }
}

/* Add the border between the main content and the CTA area. The CTA is super specific since it breaks from every other design pattern from the site. */
@media screen and (max-width:992px) {
    .bp-content {
        border-bottom: 8px solid #FFCE00;
        margin: 0 calc(50% - 50vw);
        padding: 0 20px 30px;
    }
    
    .bp-content + .bp-traffic-cta .traffic-alerts--column .traffic-alerts__header {
        border-top: none;
        padding-top: 0;
    }
}

@media screen and (min-width:992px) and (max-width:1200px) {
    .building-projects-content-area {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        padding: 60px 0 20px;
    }
}

@media screen and (min-width:1200px){
    .building-projects-content-area .bp-traffic-cta {
        position: absolute;
        right: 5vw;
        bottom: 0;
    }
}

/* Side Column specific styles */
.right-side-column .traffic-alerts--column,
.right-side-column .cta-card,
.left-side-column .sidebar,
.left-side-column .traffic-alerts--column,
.left-side-column .cta-card {
    margin-bottom: 40px;
}


/*
*
* Traffic Hero
*
*/
@-webkit-keyframes walking{
    0%{
        -webkit-transform: translate3d(-95%, 0, 0)rotate(0deg);
                transform: translate3d(-95%, 0, 0)rotate(0deg);
    }
    15%{
        -webkit-transform: translate3d(-85%, 0, 0)rotate(45deg);
                transform: translate3d(-85%, 0, 0)rotate(45deg);
    }
    40%{
        -webkit-transform: translate3d(-100%, 0, 0)rotate(0deg);
                transform: translate3d(-100%, 0, 0)rotate(0deg);
    }
    42%{
        -webkit-transform: translate3d(-100%, 0, 0);
                transform: translate3d(-100%, 0, 0);
    }
    90%{
        -webkit-transform: translate3d(-30%, 0, 0);
                transform: translate3d(-30%, 0, 0);
    }
    95%{
        -webkit-transform: translate3d(-10%, 0, 0);
                transform: translate3d(-10%, 0, 0);
    }
    100%{
        -webkit-transform: translate3d(0, 0, 0);
                transform: translate3d(0, 0, 0);
    }
}
@keyframes walking{
    0%{
        -webkit-transform: translate3d(-95%, 0, 0)rotate(0deg);
                transform: translate3d(-95%, 0, 0)rotate(0deg);
    }
    15%{
        -webkit-transform: translate3d(-85%, 0, 0)rotate(45deg);
                transform: translate3d(-85%, 0, 0)rotate(45deg);
    }
    40%{
        -webkit-transform: translate3d(-100%, 0, 0)rotate(0deg);
                transform: translate3d(-100%, 0, 0)rotate(0deg);
    }
    42%{
        -webkit-transform: translate3d(-100%, 0, 0);
                transform: translate3d(-100%, 0, 0);
    }
    90%{
        -webkit-transform: translate3d(-30%, 0, 0);
                transform: translate3d(-30%, 0, 0);
    }
    95%{
        -webkit-transform: translate3d(-10%, 0, 0);
                transform: translate3d(-10%, 0, 0);
    }
    100%{
        -webkit-transform: translate3d(0, 0, 0);
                transform: translate3d(0, 0, 0);
    }
}

@-webkit-keyframes fadeIn{
    0%{
        opacity: 0;
    }
    100%{
        opacity: 1;
    }
}

@keyframes fadeIn{
    0%{
        opacity: 0;
    }
    100%{
        opacity: 1;
    }
}
@-webkit-keyframes fadeInUp{
    0%{
        opacity: 0;
        -webkit-transform: translateY(20px);
                transform: translateY(20px);
    }
    100%{
        opacity: 1;
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }
}
@keyframes fadeInUp{
    0%{
        opacity: 0;
        -webkit-transform: translateY(20px);
                transform: translateY(20px);
    }
    100%{
        opacity: 1;
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }
}
.traffic-hero {
    position: relative;
    padding-top: 5vh;
    background: #FFFFFF;
}

.traffic-hero > .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
}

.traffic-hero__content {
    margin-bottom: 30px
}

.traffic-hero__title {
    font-size: 28px;
    color: #000000;
    line-height: 1.15;
    opacity: 0;
    -webkit-animation: fadeInUp 1s forwards;
            animation: fadeInUp 1s forwards;
    -webkit-animation-delay: 1s;
            animation-delay: 1s;
    -webkit-animation-timing-function: cubic-bezier(.5, -.5, .3, 1.3);
            animation-timing-function: cubic-bezier(.5, -.5, .3, 1.3);
}

.traffic-hero__subtitle {
    display: block;
    font-size: 20px;
    font-weight: 700;
    color: #000000;
    opacity: 0;
    -webkit-animation: fadeInUp 1s forwards;
            animation: fadeInUp 1s forwards;
    -webkit-animation-delay: 1.75s;
            animation-delay: 1.75s;
    -webkit-animation-timing-function: cubic-bezier(.5, -.5, .3, 1.3);
            animation-timing-function: cubic-bezier(.5, -.5, .3, 1.3);
}

.traffic-hero__img > img {
    width: 100%;
    opacity: 0;
    -webkit-animation: fadeIn 1s forwards;
            animation: fadeIn 1s forwards;
    -webkit-animation-delay: .1s;
            animation-delay: .1s;
    -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
            animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
}

.traffic-hero__person {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: 40%;
}

.traffic-hero__person--ani {
    /* For fun uncomment But don't push live if uncommented */
    /*    animation: walking 10s linear forwards;*/
    -webkit-animation: fadeIn 1s forwards;
            animation: fadeIn 1s forwards;
    opacity: 0;
    -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
            animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1);
    -webkit-animation-delay: 1.75s;
            animation-delay: 1.75s;
}

@media screen and (min-width:992px) {
    .traffic-hero {
        padding-top: 5vw;    
    }
    
    .traffic-hero > .container {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;    
    }
    
    .traffic-hero__content,
    .traffic-hero__img {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%;
        max-width: 50%;
    }
    
    .traffic-hero__content {
        margin-top: 4.5vw;
        margin-left: -5vw;
    }
    
    .traffic-hero__title {
        font-size: 64px;
    }
    
    .traffic-hero__subtitle {
        font-size: 24px;
        text-align: right;
        margin-top: 50px;
    }
    
    .traffic-hero__person {
        width: 20vw;
        max-width: 330px;
    }
}



/*
*
* Row Variant - Default
*
*/

.traffic-alerts__header {
    padding-top: 40px;
    padding-bottom: 40px;
    border-top: 8px solid #FFCE00;
}

.traffic-alerts__header .vcu-btn {
    display: block;
    max-width: 280px;
    margin: 0 auto;
}

.traffic-alerts__main {
    position: relative;
    overflow:hidden;
    padding: 40px 0;
    background: #F2F2F2;
}

.traffic-alerts__main > .container {
    position: relative;
}

.traffic-alerts__left,
.traffic-alerts__right {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
}

.traffic-alerts__img {
    position: absolute;
    right: 0;
    z-index: 10;
    max-width: 35%;
    right: 0;
    bottom: -60px;
}

.traffic-alerts__overlay {
    position: relative;
    margin-top: 30px;
    padding: 40px 20px;
    background: #FFFFFF;
    z-index: 5;
    width: 100%;
}

@media screen and (min-width: 415px) {
    .traffic-alerts__img {
        max-width: 180px;
    }
}

@media screen and (min-width: 992px) {
    .traffic-alerts__left {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 40%;
                flex: 0 0 40%;
        max-width: 40%;
    }
    
    .traffic-alerts__right {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 60%;
                flex: 0 0 60%;
        max-width: 60%;
    }
    
    .traffic-alerts__overlay {
        position: absolute;
        right: 0;
        top: 50%;
        -webkit-transform: translateY(-50%);
            -ms-transform: translateY(-50%);
                transform: translateY(-50%);
        width: 60%;
        padding: 40px;
        margin-top: 0;
    }
    
    .traffic-alerts__img {
        position: relative;
        float: right;
        margin-bottom: -100px;
        top: 0;
        right: -10px;
        z-index: 10;
        max-width: 230px;
        width: 100%;
    }
}

@media screen and (min-width: 1200px) {
    .traffic-alerts__left {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 40%;
                flex: 0 0 40%;
        max-width: 40%;
    }
    
    .traffic-alerts__right {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 60%;
                flex: 0 0 60%;
        max-width: 60%;
    }
    
    .traffic-alerts__overlay {
        width: 60%;
    }
    
    .traffic-alerts__img {
        margin-bottom: -120px;
        max-width: 310px;
    }
}

@media screen and (min-width: 1475px) {
    .traffic-alerts__left,
    .traffic-alerts__right {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%;
        max-width: 50%;
    }
    
    .traffic-alerts__overlay {
        width: 50%;
    }
}

@media screen and (min-width: 800px) {
    .traffic-alerts__main {
        padding: 60px 0;
        background: #F2F2F2;
    }
}

.traffic-alerts__footer {
    padding: 20px 0;
    background: #D8D8D8;
}

.traffic-alerts__footer p {
    margin-bottom: 0;
}

.traffic-alerts__overlay:before,
.traffic-alerts__overlay:after {
    content: '';
    position: absolute;
    width: 0;
}

.traffic-alerts__overlay:before {
    top: 0; 
    right: 0;
    border-top: 30px solid #F2F2F2;
    border-left: 30px solid #FFFFFF;
}

.traffic-alerts__overlay:after {
    bottom: 0; 
    left: 0;
    border-top: 30px solid #FFFFFF;
    border-left: 30px solid #F2F2F2;
}

.traffic-alerts__overlay .traffic-alerts__subtitle,
.traffic-alerts__overlay p {
    max-width: 60%;
}

.traffic-alerts__subtitle {
    color: #E57200;
    font-size: 21px;
    line-height: 1.25;
}

@media screen and (min-width: 800px) {
    .traffic-alerts__subtitle {
        font-size: 28px;
    }
    
    
    .traffic-alerts__overlay .traffic-alerts__subtitle,
    .traffic-alerts__overlay p {
        max-width: 285px;
    }
}

.traffic-alerts__overlay p:last-child {
    margin-bottom: 0;
}

/*
*
* Column variation of the traffic alerts CTA
*
*/
.traffic-alerts--column {
    border-radius: 4px;
    overflow: hidden;
}

.traffic-alerts--column .traffic-alerts__header {
    background: #FFFFFF;
}

.traffic-alerts--column .traffic-alerts__header > h2 {
    font-weight: 500;
}

@media screen and (min-width: 600px) {
    .traffic-alerts--column .traffic-alerts__header > h2 {
        font-weight: 400;
    }
}

.traffic-alerts--column .traffic-alerts__header,
.traffic-alerts--column .traffic-alerts__main,
.traffic-alerts--column .traffic-alerts__footer {
    padding-left: 20px;
    padding-right: 20px;
}

.traffic-alerts--column .traffic-alerts__main {
    padding-top: 40px;
    padding-bottom: 40px;
}

.traffic-alerts--column .traffic-alerts__img {
    position: absolute;
    float: none;
    width: 100%;
    max-width: 35%;
    right: 15px;
    top: 20px;
    margin-bottom: 0;
}

.traffic-alerts--column .traffic-alerts__main h3,
.traffic-alerts--column .traffic-alerts__main p {
    max-width: 60%;
}

.traffic-alerts--column .traffic-alerts__footer {
    border-top: 8px solid #FFCE00;
}

@media screen and  (max-width:321px) {
    .traffic-alerts--column .traffic-alerts__img {
        top: auto;
        bottom: 0;
    }
}

/*
*
* General/global alert block. This could be utlized anywhere on VCU.
*
*/
.alert-block {
    position: relative;
    background: #006C68;
    color: #FFFFFF;
    padding: 30px 20px;
    margin: 0 calc(50% - 50vw) 20px; /* Makes component full width on mobile */
}

.alert-block:before {
    content: "";
    display: block;
    position: absolute;
    top: 34px; /* 30px plus offset from line-height on title */
    left: 20px;
    background: url(/assets/_img/buildingprojects/urgent-alert-icon.svg);
    background-size: cover;
    width: 24px;
    height: 20px;
}

.alert-block p {
    color: #FFFFFF;
}

/* Faking a title since it wouldbe semantic or accessible to be an H tag */
.alert-block p:first-child {
    font-size: 24px;
    font-weight: 500;
    margin-bottom: 10px;
    padding-left: 40px; /* Separates just the title from the icon */
    line-height: 1.25;
}

.alert-block p:last-child {
    margin-bottom: 0;
}

@media screen and (min-width: 992px) { 
    .alert-block {
        padding: 30px 40px 30px 70px; /* The large padding on the left separate the content and icon on desktop  */
        margin: 0 0 20px;
    }
    
    .alert-block:before {
        left: 30px;
    }
    
    .alert-block p:first-child {
        padding-left: 0; /* Remove offset from title so it will align with content  */
    }
}


/*
*
* General CTA block. Can be global
*
*/
@-webkit-keyframes letsMove{
    0%{
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
  100%{
    -webkit-transform: translate3d(1692px, 0, 0);
            transform: translate3d(1692px, 0, 0);
  }
}
@keyframes letsMove{
    0%{
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
  100%{
    -webkit-transform: translate3d(1692px, 0, 0);
            transform: translate3d(1692px, 0, 0);
  }
}

.cta-card {
    border-radius: 4px;
    border: 1px solid #E0E0E0;
    border-top: 8px solid #FFCE00;
    padding: 40px 20px;
}

.cta-card__title {
    font-size: 24px;
    color: #000000;
}

.cta-card p > a {
    font-weight: 700;
}

.cta-card__btn {
    display: block;
    margin: 30px 0 0;
    max-width: 260px;
    padding: 15px 40px; 
}

.cta-card.cta-card--purple {
    border-top-color: #612751;
}

.cta-card.cta-card--purple > h4 {
    margin-bottom: 25px;
}

.cta-card.cta-card--team {
    position: relative;
    overflow: hidden;
    padding-bottom: 90px;
}

.cta-card.cta-card--team:after {
    content: "";
    display: block;
    position: absolute;
    height: 50px;
    width: 5076px;
    bottom: 0;
    right: 0;
    background: url(/assets/_img/buildingprojects/team-cta-bg.png);
    background-position: bottom center;
    background-repeat: repeat-x;
}

.cta-card.cta-card--team:hover:after {
    -webkit-animation: letsMove 30s linear infinite;
            animation: letsMove 30s linear infinite;
}

.cta-card .link-list > li {
    margin-bottom: 15px;
}

.cta-card .link-list > li:last-child {
    margin-bottom: 0;
}

/*
*
* New Video component.
*
*/
.video-cta {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    padding: 40px 20px;
    background: #F2F2F2;
    border-bottom: 20px solid #FFCE00;
    margin: 0 calc(50% - 50vw); /* Makes component full width on mobile */
}

.video-cta__content > h2 {
    font-weight: 500;
    line-height: 1.25;
}

.video-cta__content p:last-child {
    margin-bottom: 0;
}

.video-cta__video {
    margin-bottom: 30px;
}

@media screen and (min-width: 600px) {
    .video-cta__content > h2 {
        font-weight: 400;    
    }
}

@media screen and (min-width: 992px) { 
    .video-cta {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        padding: 40px 60px;
        margin: 0;
    }
    
    .video-cta__content,
    .video-cta__video {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%;
        max-width: 50%;
    }
    
    .video-cta__content {
        padding-right: 100px;
    }
    
    .video-cta__video {
        margin-bottom: 0;
    }
    
    /* Add space if there is a speedbump CTA after the video CTA */
    .video-cta-wrapper + .building-projects-bottom-cta {
        margin-top: 60px;
    }
}


/*
*
* Progress CTA Component.
*
*/

.progress-cta {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: 0 20px;
    overflow: hidden;
}

.progress-cta__image,
.progress-cta__content {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%;
}

.progress-cta__content {
    position:relative;
    padding: 40px 0;
    background: #FFCE00;
    z-index: 5;
}

.progress-cta__content > h2 {
    font-weight: 500;
}

.progress-cta__content:before,
.progress-cta__content:after {
    content: "";
    display: block;
    background: #FFCE00;
    height: 100%;
    width: 100vw;
    position: absolute;
    top: 0;
    z-index: -1;
}

.progress-cta__content:before {
    left: 100%;
}

.progress-cta__content:after {
    right: 100%;
}

.progress-cta__image {
    max-width: none;
    width: calc(100% + 40px);
    margin: 0 -20px; /* Makes component full width on mobile */
}

.progress-cta__image > img {
    width: 100%;
}

.progress-cta__btn {
    display: inline-block;
    background: #FFFFFF;
    color: #000000;
    padding: 15px 30px;
    font-family: Roboto;
    font-size: 16px;
    font-weight: 500;
}

@media screen and (min-width: 600px) { 
    .progress-cta__content > h2 {
        font-weight: 400;
    }
}

@media screen and (min-width: 992px) { 
    .progress-cta {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        padding: 0;
        position: relative;
        z-index: 15;
    }
    
    .progress-cta__image {
        position: relative;
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%;
        max-width: 50%;
        min-height: 500px;
        max-height: 500px;
        margin-bottom: 0;
        -webkit-clip-path: polygon(0 0, 100% 0%, 80% 100%, 0% 100%);
                clip-path: polygon(0 0, 100% 0%, 80% 100%, 0% 100%);
        z-index: 10;
    }
    
    .progress-cta__image > img {
        -o-object-fit: cover;
           object-fit: cover;
        height: 500px;
        width: 100%;
    }
    
    .progress-cta__content {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%;
        max-width: 50%;
        padding: 100px 50px;
    }
    
    /* Pull the traffic alerts CTA under the progress CTA */
    .progress-cta + .traffic-alerts {
        position: relative;
        margin-top: -80px;
        z-index: 10;
    }
    
    /* Add margin to speedbump style to CTA */
    .progress-cta + .building-projects-bottom-cta {
        margin-top: 60px;
    }
}


/*
*
* Donate CTA Component.
*
*/
.donate-cta {
    background: #006C68;
    color: #FFFFFF;
    padding: 40px 0;
}

.donate-cta__content {
    margin-bottom: 45px;
}

.donate-cta__content > h2,
.donate-cta__content > p {
    color: #FFFFFF;
}

.donate-cta__content > h2 {
    font-size: 36px;
    line-height: 1.25;
}

.donate-cta__content .overlay-button {
    margin: 20px 0 0;
}

.donate-cta__image {
    width: 100%;
    height: auto;
}

@media screen and (min-width: 992px) { 
    .donate-cta__content {
        padding-right: 45px;
        margin-bottom: 0;
    }
}

.kid-cta {
    position: relative;
    margin-top:80px;
    padding-top: 132px; /* Same as the height value for the ribbon background */
    margin: 0 calc(50% - 50vw) 60px; /* Makes component full width on mobile */
}

.kid-cta:before {
    content: "";
    position: absolute;
    top: 15px;
    display: block;
    height: 132px;
    width: 100%;
    background: url('/assets/_img/buildingprojects/kid-cta-ribbon.svg') center center no-repeat;
    background-size: cover;
    z-index: 1;
}

.kid-cta__wrapper {
    position: relative;
    padding: 55px 0 40px; /* 95px padding is to offset the top position from the ribbon to the padding */
    background: #F2F2F2;
}

.kid-cta .container {
    display: block;
    position: relative;
}

.kid-cta p:last-of-type {
    margin-bottom: 0;
}

.kid-cta__content > h2 {
    font-weight: 500;
    line-height: 1.25
}

.kid-cta__img {
    position: absolute;
    left: 0;
    bottom: 100%;
    -webkit-transform: translateY(-40px);
        -ms-transform: translateY(-40px);
            transform: translateY(-40px); /* Padding from the content area */
    z-index: 5;
    max-width:143px;
}

@media screen and (min-width: 992px) { 
    .kid-cta {
        margin: 0;
    }
    
    .kid-cta__wrapper {
        /* 95px padding is to offset the top position from the ribbon to the padding */
        /* VW usint is to line up with below section and used to try to keep img off content. Calc is to offset container paddning */
        padding: 95px calc(5vw - 15px) 80px; 
    }
    
    .kid-cta__content {
        max-width: 75%;
    }
    
    .kid-cta__content > h2 {
        font-weight: 400;
    }
    
    .kid-cta__img {
        right: 0;
        left: auto;
        bottom: -80px;
        width: 100%;
        max-width: 240px;
        -webkit-transform: none;
            -ms-transform: none;
                transform: none;
    }
    
    .kid-cta__img > img {
        max-width: none;
        width: 100%;
    }
}


/*
*
* Side by Side Content w/ Icons
*
*/
.side-by-side {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient:  vertical;
    -webkit-box-direction:  normal;
        -ms-flex-direction:  column;
            flex-direction:  column;
    margin-bottom: 40px;
}

.side-by-side__img {
    width: 100%;
    margin-bottom: 30px;
}

.side-by-side__subtitle {
    display: block;
    text-transform: uppercase;
    margin-bottom: 5px;
}

.side-by-side__title {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 1rem;
}

.side-by-side__item p > a {
    font-weight: 700;
}

.icon-list {
    list-style: none;
    padding-left: 0;
}

.icon-list > li {
    position: relative;
    font-size: 18px;
    font-weight: 700;
    color: #003E72;
    margin-bottom: 1.25rem;
    padding-left: 54px;
}

.icon-list > li > img {
    position: absolute;
    left: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    display: inline-block;
    max-width: 36px;
    margin-right: 1rem;
}

@media screen and (min-width: 992px) { 
    .side-by-side {
        -webkit-box-orient:  horizontal;
        -webkit-box-direction:  normal;
            -ms-flex-direction:  row;
                flex-direction:  row;
        margin: 0 -20px 40px;
    }
    
    .side-by-side__item {
        padding: 20px;
        margin: 0;
    }
    
    .side-by-side--rev {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: reverse;
            -ms-flex-direction: row-reverse;
                flex-direction: row-reverse;    
    }
    
    .side-by-side__item {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%;
        max-width: 50%;
    }
    
    .side-by-side__img {
        margin-bottom: 0;
    }
}


/*
*
* Accordion Content
*
*/
.accordion-comp {
    margin-bottom: 20px;
    border-bottom: 1px solid #E0E0E0;
}

.accordion-title,
.content-holder .accordion-title {
    position: relative;
    display: block;
    padding-right: 30px;
    margin-bottom: 20px;
    cursor: pointer;
    color: #000000;
    font-size: 16px;
    font-weight: 700;
    -webkit-transition: .5s;
    -o-transition: .5s;
    transition: .5s;
}

.accordion-title:before,
.accordion-title:after {
    content: "";
    display: block;
    position: absolute;
    top: 12px;
    right: 0;
    -webkit-transform:translateY(-50%);
        -ms-transform:translateY(-50%);
            transform:translateY(-50%);
    width:12px;
    height:3px;
    background: #000000;
    -webkit-transition: .5s;
    -o-transition: .5s;
    transition: .5s;
    will-change: transform;
}

.accordion-title:after {
    -webkit-transform:translateY(-50%)rotate(-90deg);
        -ms-transform:translateY(-50%)rotate(-90deg);
            transform:translateY(-50%)rotate(-90deg);
}

.accordion-title.is-active:before {
    -webkit-transform:translateY(-50%)rotate(180deg);
        -ms-transform:translateY(-50%)rotate(180deg);
            transform:translateY(-50%)rotate(180deg);
}

.accordion-title.is-active:after {
    -webkit-transform:translateY(-50%)rotate(0deg);
        -ms-transform:translateY(-50%)rotate(0deg);
            transform:translateY(-50%)rotate(0deg);
}

.accordion-content {
    margin-bottom: 20px;
}

.accordion-content > ul {
    margin-left: 0;
    padding-left: 20px;
    margin-bottom: 0;
}

@media screen and (min-width: 768px) {
    .accordion-title {
        font-size: 18px;    
    }
    
    .accordion-title:before,
    .accordion-title:after {
        width:14px;
        height: 3px;
    }
}

.list-zebra,
.accordion-content > ul {
    margin: 0 calc(50% - 50vw); /* Makes component full width on mobile */
    padding-left: 0;
}

.list-zebra > li,
.accordion-content > ul > li {
    position: relative;
    padding: 15px 20px 15px 40px;
}

.list-zebra > li:before,
.accordion-content > ul > li:before {
    content: "";
    position: absolute;
    left: 20px;
    top: 25px;
    display: block;
    width: 5px;
    height: 5px;
    border-radius: 8px;
    background: #000000;
}

.list-zebra > li:nth-child(odd),
.accordion-content > ul > li:nth-child(odd) {
    background: #F4F4F4;
}

@media screen and (min-width: 768px) {
    .list-zebra,
    .accordion-content > ul {
        margin: 0;
        list-style: initial;  
        padding-left: 40px;
    }
    
    .list-zebra > li,
    .accordion-content > ul > li {
        padding: 0;   
    }
    
    .list-zebra > li:before,
    .accordion-content > ul > li:before{
        display: none;
    }
    
    .list-zebra > li:nth-child(odd),
    .accordion-content > ul > li:nth-child(odd) {
        background: none;
    }
}

/*
*
* DEFAULT - Blue Speedbump: Content only and in a row
* VARIANT - Green speedbump: Content in column with image breaking out
*
*/
.building-projects-bottom-cta {
    padding: 50px 0;
    background: #003764;
    color: #FFFFFF;
}

.building-projects-bottom-cta h2 {
    color: currentColor;
    font-size: 36px;
    margin: 0;
}

.bp-bottom-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.bp-bottom-container .outline-btn {
    margin: 30px auto 0 0;
}

.building-projects-bottom-cta--img {
    background: #006C68;
    padding: 60px 0;
}

.building-projects-bottom-cta--img .container {
    position: relative;
}

.building-projects-bottom-cta--img .bp-bottom-container {
    display: block;
}

.building-projects-bottom-cta--img h2 {
    margin-bottom: 30px;
}

.building-projects-bottom-cta--img .bp-bottom-img { 
    position: relative;
    bottom: -60px;
    max-width: 100%;
    margin: 0 auto;
}

@media screen and (min-width: 768px) {
    .bp-bottom-container .outline-btn {
        margin-top: 0;
        margin-right: 0;
    }
    
    .bp-bottom-container {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
    }
    
    .building-projects-bottom-cta--img .bp-bottom-container {
        width: 60%;
    }
    
    .building-projects-bottom-cta--img .bp-bottom-img {
        position: absolute;
        right: 0;
        max-width: 100%;
        width: auto;
    }
}
/*
*
* Blockquote component
*
*/
.blockquote-comp {
    margin: 60px 0;
}

.blockquote-comp blockquote {
    position: relative;
    padding: 0 30px !important;
}

.blockquote-comp blockquote:before,
.blockquote-comp blockquote:after {
    content: "\"";
    font-family: Roboto;
    font-size: 100px;
    line-height: 1;
    position: absolute;
    color: #e57200;
    max-height: 35px;
 }

.blockquote-comp blockquote:before {
     top: 0;
     left: 0;
 }

.blockquote-comp blockquote:after {
     right: 0;
     bottom: 0;
 }

.blockquote-comp blockquote,
.blockquote-comp blockquote > p {
    display: block;
    font-size: 22px;
    line-height: 1.5;
    font-weight: 500;
    max-width: 95%;
    padding: 0;
    margin: 1.5em auto;
}

.blockquote-comp blockquote + p {
    display: block;
    font-style:italic;
    font-weight: 500;
    font-size:16px;
    padding: 0 60px;
    max-width: 95%;
    margin: 0 auto 1em;
}

@media screen and (min-width: 768px) {
    .blockquote-comp {
        margin: 100px 0;
    }
}
    