/* ==== COMPONENT >>> SPINNER LOADING ========================================================================================================================================================================= */

@-moz-keyframes spin {
    from { -moz-transform: rotate(0deg); }
    to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
    from { -webkit-transform: rotate(0deg); }
    to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
    from { transform:rotate(0deg); }
    to { transform:rotate(360deg); }
}

.loader.spinner-svg { height: 40px; width: 40px; margin: 30px auto; opacity: 1; pointer-events: all; }
.loader.spinner-svg.turnoff { opacity: 0; pointer-events: none; }
.loader.spinner-svg svg {  -webkit-animation: spin 600ms infinite linear; }
.loader.spinner-svg svg path,
.loader.spinner-svg svg rect{ fill: #ff7f32; }

/* ==== COMPONENT >>> PLAY BUTTON ============================================================================================================================================================================ */

.play-button { width: 90px; height: 90px; line-height: 90px; border: 3px solid #fff; text-align: center; position: absolute;
        top: 50%; left: 50%; -ms-transform: translate( -50%, -50% ); -webkit-transform: translate( -50%, -50% ); transform: translate( -50%, -50% ); border-radius: 50%;
        z-index: 20; -webkit-box-shadow: 0 0 7px 0 rgba(0,0,0,0.3); box-shadow: 0 0 7px 0 rgba(0,0,0,0.3); opacity: 0.8; }
.play-button:hover { background: rgba(0,0,0,0.1); cursor: pointer; }
.play-button:active { margin-top: 1px; }
.play-button span { color: #fff; font-size: 50px; position: relative; right: -5px; text-shadow: 0 0 7px rgba(0,0,0,0.3); }

/* ==== COMPONENT >>> PRICE DISPLAY ========================================================================================================================================================================== */

/* COMPONENT >>> PRICE DISPLAY >>> REGULAR */

.price-box { display: block; width: 100%; margin-bottom: 30px; vertical-align: middle; }
    .price-box .pre-label { display: block; height: 18px; font-size: 13px; line-height: 1.38; color: rgba(63,63,63,1); position: relative; top: 5px; position: absolute; top: -18px; left: 0; font-weight: normal; }
    .price-box .holder { position: relative; }
    .price-box .holder { display: flex; justify-content: flex-start; flex-direction: row; align-items: center; }
    .price-box .price { display: block; line-height: 1; font-weight: bold; color: rgba(0,0,0,1); padding-right: 9px; height: 64px; white-space: nowrap; position: relative; }
    .price-box .price .qty { font-size: 38px; line-height: 1; display: inline-block; }
    .price-box .price .qty .decimal { font-size: 0.65em; line-height: 1; display: inline-block; padding: 0 4px; position: relative; top: -4px; }
    .price-box .price .qty .decimal { /* font-size: 0.5em; line-height: 1; display: inline-block; position: relative; top: -24px; left: 5px; */ }
    .price-box .price .units { font-size: 20px; line-height: 3.2; position: relative; left: -5px; }
    .price-box .post-label { display: block; }
    .price-box .post-label span { display: block; min-height: 18px; font-size: 13px; line-height: 1.38; color: rgba(63,63,63,1); }

/* COMPONENT >>> PRICE DISPLAY >>> SMALL */

.small-price .price-box,
.price-box.small { }
    .small-price .price-box .price,
    .price-box.small .price { padding-right: 9px; }
    .small-price .price-box .price .qty,
    .price-box.small .price .qty { font-size: 38px; line-height: 1; display: inline-block; }
    .small-price .price-box .post-label,
    .price-box.small .post-label { display: block; line-height: 1; top: -4px; top: -4px; position: relative; }
     .small-price .price-box.is-sale-price .regular-price,
    .price-box.small.is-sale-price .regular-price { bottom: 24px; padding: 0 2px; }
    .small-price .price-box.is-sale-price .regular-price .rprice:before,
    .price-box.small.is-sale-price .regular-price .rprice:before { margin-top: -4px; }
    .small-price .price-box .pre-label,
    .price-box.small.pre-label { top: -8px; left: 0; font-weight: normal; }


/* COMPONENT >>> PRICE DISPLAY >>> HAS SALE LABEL */

.price-box.is-sale-price { position: relative; }
    .price-box.is-sale-label .regular-price { padding-top: 0; bottom: 12px; }
    .price-box.is-sale-label .sale-label { display: block; height: 18px; font-size: 13px; line-height: 1.38; color: rgba(63,63,63,1); position: relative; top: 5px; position: absolute; top: -18px; left: 0; font-weight: normal; }
    .price-box.is-sale-label .regular-price .rprice:before { }


/* COMPONENT >>> PRICE DISPLAY >>> IS SALE PRICE */

.price-box.is-sale-price { position: relative; }
    .price-box.is-sale-price .regular-price { right: 0; position: absolute; bottom: 16px; padding: 0 2px; }
    .price-box.is-sale-price .regular-price .rprice { font-weight: bold; color: rgba(0,0,0,1); position: relative; }
    .price-box.is-sale-price .regular-price .rprice:before { content: ""; height: 2px; width: 100%; position: absolute; top: 50%; margin-top: -1px; left: 0; background: #5e4b3c; }
    .price-box.is-sale-price .regular-price .rprice .qty { font-size: 24px; line-height: 1; display: inline-block; }
    .price-box.is-sale-price .regular-price .rprice .units { font-size: 16px; line-height: 1; display: inline-block; position: relative; left: -2px; }


/* COMPONENT >>> PRICE DISPLAY >>> HAS SALE LABEL */

.price-box.is-sale-price { position: relative; }
    .price-box.is-sale-label .regular-price { padding-top: 0; bottom: 12px; }
    .price-box.is-sale-label .sale-label { display: block; height: 18px; font-size: 13px; line-height: 1.38; color: rgba(63,63,63,1); position: relative; top: 5px; position: absolute; top: -18px; left: 0; font-weight: normal; }
    .price-box.is-sale-label .regular-price .rprice:before { }

/* COMPONENT >>> PRICE DISPLAY >>> HAS PRELABEL */

.price-box.is-prelabel { padding-top: 18px; }

/* ==== COMPONENT >>> PROMO INFO ============================================================================================================================================================================= */

.promo-info-holder { background: #f5f5f5; padding: 0 10px; box-shadow: 0 2px 1px 0 #d9d7d5; }

/* COMPONENT >>> PROMO INFO >>> HEADER */

.promo-info-holder .heading { padding: 30px 0 15px 0; }

.promo-info-holder .heading .col-title { }
    .promo-info-holder .heading .col-title h4 { margin-bottom: 6px; }
    .promo-info-holder .heading .col-title .price-box { margin-bottom: 0; }

.promo-info-holder .heading .col-link { padding-top: 10px; padding-bottom: 20px; }
    .promo-info-holder .heading .col-link a.btn { max-width: 320px; }
    .promo-info-holder .heading .col-read-more { padding-top: 5px; }
    .promo-info-holder .heading .col-read-more a { font-size: 18px; line-height: 1.67; position: relative; padding-right: 35px; display: inline-block; }
    .promo-info-holder .heading .col-read-more a:before { content: "\f3d0"; display: block; position: absolute; top: 1px; right: 0; font-family: 'Ionicons'; width: 28px; text-align: center;
        font-size: 22px; line-height: 28px; -ms-transform: rotate( 0 ); -webkit-transform: rotate( 0 ); transform: rotate( 0 ); -webkit-transition: all 300ms ease-out;
        -moz-transition: all 300ms ease-out; -ms-transition: all 300ms ease-out; -o-transition: all 300ms ease-out; transition: all 300ms ease-out; }
    .promo-info-holder .heading .col-read-more a.active:before { -ms-transform: rotate( -180deg ); -webkit-transform: rotate( -180deg ); transform: rotate( -180deg ); }

/* COMPONENT >>> PROMO INFO >>> CONTENT */

.promo-info-holder .content { display: none; }
    .promo-info-holder .content .inner { padding: 20px 0 30px 0; border-top: solid 1px #d9d7d5; }
    .promo-info-holder .content .inner .copy.copy-s { margin-bottom: 0; }

/* ==== COMPONENT >>> DATASHEET ============================================================================================================================================================================== */

.treatment-datasheet { background: #f3eeec; padding: 35px; margin-bottom: 20px; }
    .treatment-datasheet h3 { margin-bottom: 28px; }
    .treatment-datasheet .copy.copy-m { margin-bottom: 3px; }
    .treatment-datasheet .copy.copy-xs { margin-bottom: 15px; }


/* ==== COMPONENT >>> NEWSLETTER POP-UP ====================================================================================================================================================================== */

.module-pop-overlay { background: rgba( 256,256,256,0.8 ); display: block; width: 100%; height: 100%; position: fixed; top: 0; left: 0; z-index: 9999999999999999; opacity: 0; }

.module-pop-overlay.active { opacity: 1; }
.module-pop-overlay.active .module-pop-inner { margin-top: 0; }

.module-pop-overlay .module-pop-inner { width: 100%; max-width: 380px; padding: 0 10px; position: relative; margin-top: -15%; }
.module-pop-overlay .module-pop-inner:before { background: #fff; width: 20px; height: 100%; top: 0; right: 10px; content: ""; position: absolute; z-index: 9999; }
.module-pop-overlay .module-pop-inner .scroller { background: #fff; max-height: 90vh; width: 100%; padding: 40px 25px 0 25px; overflow: auto; box-shadow: 0 2px 17px 0 rgba(187,187,187,0.50); position: relative; }
.module-pop-overlay .module-pop-inner .scroller .close-me { height: 30px; width: 30px; position: absolute; top: 10px; right: 0; display: block; 
    z-index: 99999; background: url('../images/icons/closeme-news.png') center center no-repeat; background-size: 22px; }
.module-pop-overlay .module-pop-inner .container { padding: 0; }
.module-pop-overlay .module-pop-inner .container .col { padding: 0 !important; }
.module-pop-overlay .module-pop-inner .container .col .inner { background: #fff; }
.module-pop-overlay .module-pop-inner .container .col .inner iframe { width: 100%; height: 640px; }

@media only screen and ( min-width : 24em ) {

    /* COMPONENT >>> PLAY BUTTON */
   .play-button { width: 110px; height: 110px; line-height: 110px; }
   .play-button span { font-size: 60px; }


}


@media only screen and ( min-width : 48em ) {

    /* COMPONENT >>> PLAY BUTTON */
    .play-button { width: 150px; height: 150px; line-height: 150px; border: 4px solid #fff; }
    .play-button span { font-size: 90px; }

    /* COMPONENT >>> PRICE DISPLAY >>> REGULAR */
    .price-box .price .qty { font-size: 48px; }

    /* COMPONENT >>> PRICE DISPLAY >>> SMALL */
    .price-small .price-box .price,
    .price-box.small .price { padding-right: 9px; height: 58px; }
    .price-small .price-box .price .qty,
    .price-box.small .price .qty { font-size: 48px; }

    /* COMPONENT >>> PROMO INFO >>> HEADER */
    .promo-info-holder .heading .col-link { padding-top: 0; padding-bottom: 0; }

    /* ==== COMPONENT >>> NEWSLETTER POP-UP ====================================================================================================================================================================== */
    
    .module-pop-overlay .module-pop-inner { max-width: 550px; }
    .module-pop-overlay .module-pop-inner .scroller { padding: 45px 60px 0 60px; }
    .module-pop-overlay .module-pop-inner .container .col .inner iframe { height: 570px; }

}

@media only screen and ( min-width : 64em ) {

    /* COMPONENT >>> PLAY BUTTON */
   .play-button { width: 220px; height: 220px; line-height: 220px; background: transparent; }
   .play-button span { font-size: 160px; }

    /* COMPONENT >>> PRICE DISPLAY >>> REGULAR */
    .price-box .price .qty { font-size: 64px; line-height: 1; }

    /* COMPONENT >>> PRICE DISPLAY >>> SMALL */
    .price-small .price-box .price,
    .price-box.small .price { padding-right: 9px; height: 58px; }
    .price-small .price-box .price .qty,
    .price-box.small .price .qty { font-size: 48px; }

    /* ==== COMPONENT >>> NEWSLETTER POP-UP ====================================================================================================================================================================== */
    
    .module-pop-overlay .module-pop-inner { max-width: 750px; }
    .module-pop-overlay .module-pop-inner .scroller { padding: 45px 90px 0 90px; }
    .module-pop-overlay .module-pop-inner .container .col .inner iframe { height: 660px; }

}

@media only screen and ( min-width : 75em ) {

    /* COMPONENT >>> PLAY BUTTON */
   .play-button { width: 300px; height: 300px; line-height: 300px; background: transparent; border: 5px solid #fff; }
   .play-button span { font-size: 220px; right: -18px; }

}