/*
    * NEW FRONT END SIZE AND CONSISTENCY - base.css
    * v1.1.0
    * DO NOT EDIT THIS FILE UNLESS YOU HAVE GOOD REASON TO AS MULTIPLE SITES DEPEND ON THIS
    * ANY CHANGES / AMENDS CAN BE DONE AT A BUILD / BRAND CSS LEVEL AND IF REQUIRED, MERGED INTO THIS LATER
    * PLEASE CONSULT WITH A DEV IF YOU BELIEVE THIS FILE COULD BE UPDATED
*/

/* * -------------------- * */
/* *  BASELINE SETTINGS 
/* * -------------------- * */

#Page_Container, #Page_Container *,
#Page_Container:before, #Page_Container *:before,
#Page_Container:after, #Page_Container *:after {
    /* * Set everything to border-box and remove default margin and paddings */
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    margin: 0;
    padding: 0;
}

#Page_Container {
    /* * Define settings for rendering */
    text-rendering: optimizeLegibility;
    -webkit-text-size-adjust: none;
    -moz-text-size-adjust: none;
    -ms-text-size-adjust: none;
    text-size-adjust: none;

    /* * Restrict maximum size mobile can expand to */
    max-width: 425px;

    /* * Define default font styles */
    font-weight: normal;
    line-height: 1.2;
    width: 100%;
    margin: 0 auto;
    text-align: left;
    letter-spacing: normal;
    color: #000;
    font-size: 15px;
    /* * Font body set in [brand].css */
    /* font-family: ""; */

    /* * Default a space between the bottom of the content and the footer */
    padding-bottom: 15px;
    margin-bottom: 15px;
}

/* * At tablet size */
@media (min-width: 768px) {

    #Page_Container {
        /* * allow growth to maximum size */
        max-width: 1366px;
        /* * reset font-size for tablet and above */
        font-size: 16px;
    }
}

#Page_Container h1,
#Page_Container h2,
#Page_Container h3,
#Page_Container h4,
#Page_Container h5,
#Page_Container h6,
#Page_Container p,
#Page_Container li,
#Page_Container blockquote {
    /* * normalise font weights */
    font-weight: normal;
}

#Page_Container a,
#Page_Container span {
    /* * set inline elements to inherit font styles */
    font-weight: inherit;
    color: inherit;
    font-size: inherit;
}

#Page_Container a,
#Page_Container a:link,
#Page_Container a:hover,
#Page_Container a:focus {
    /* * Remove browser default styling */
    text-decoration: none;
    cursor: pointer;
}


#Page_Container img.responsive-image {
    /* * images are mostly always treated as block level in design */
    display: block;
    max-width: 100%;
    width: 100%;
    height: auto;
}


#Page_Container lm {
    /* * basic styling for handling lm elements if previewed */
    display: inline;
    cursor: pointer;
}

#Page_Container ul {
    /* * No need for bullets */
    list-style-type: none;
}

/* * -------------------- * */



/* * -------------------- * */
/* *  CAROUSEL SETTINGS 
/* * -------------------- * */

#Page_Container .owl-carousel {
    -ms-touch-action: manipulation;
    touch-action: manipulation;
}

#Page_Container .owl-item {
    -webkit-backface-visibility: hidden;
    -webkit-transform: translateZ(0) scale(1.0, 1.0);
}

#Page_Container .owl-prev,
#Page_Container .owl-next {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 16px;
    outline: 0;
}

#Page_Container .owl-prev span,
#Page_Container .owl-next span {
    background-position: center;
    background-size: auto 100%;
    background-repeat: no-repeat;
    font-size: 0;
    height: 100%;
    max-height: 80px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0);
    width: 100%;
    display: block;
}

#Page_Container .owl-prev {
    left: -8px;
}

#Page_Container .owl-prev span {
    background-image: url("/repo/common/NFEP/02-images/arrow_left_black.png");
}

#Page_Container .owl-next {
    right: -8px;
}

#Page_Container .owl-next span {
    background-image: url("/repo/common/NFEP/02-images/arrow_right_black.png");
}

#Page_Container .owl-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 16px 0;
}
#Page_Container .owl-dots.disabled {
    padding: 0;
    display: none;
}
#Page_Container .owl-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1px solid #a1a1a1;
    transition: background-color 0.3s ease-in-out;
    background-color: #e4e4e4;
}
#Page_Container .owl-dot + .owl-dot {
    margin-left: 8px;
}
#Page_Container .owl-dot.active {
    background-color: #a1a1a1;
}

/* * -------------------- * */



/* * -------------------- * */
/* *  LAYOUT 
/* * -------------------- * */

/* * Row definition */
#Page_Container .row {
    width: auto;
    margin-left: auto;
    margin-right: auto;
}

/* * Spacing between rows */
#Page_Container .row ~ .row {
    margin-top: 32px;
}

@media (min-width: 768px) {
    #Page_Container .row ~ .row {
        margin-top: 50px;
    }
}

/* * Row width restriction */
#Page_Container .row.row--restricted-width {
    max-width: 1088px;
}

/* * Row layout settings */
@media (min-width: 768px) {

    #Page_Container .row:not(.row--stacked-columns) {
        /* * Display columns horizontally when on Tablet/Desktop */
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: start;
            -ms-flex-pack: start;
                justify-content: flex-start;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
    }   
}

/* * Add vertical padding to rows */
#Page_Container .row.row--v-padded {
    padding-top: 32px;
    padding-bottom: 32px;
}

/* * Add horizontal padding to rows */
#Page_Container .row.row--h-padded {
    padding-left: 12px;
    padding-right: 12px;
}

@media (max-width: 767px) {

    /* * Add vertical padding to rows on mobile only */
    #Page_Container .row.m-row--v-padded {
        padding-top: 32px;
        padding-bottom: 32px;
    }

    /* * add horizontal padding to rows on mobile only */
    #Page_Container .row.m-row--h-padded {
        padding-left: 12px;
        padding-right: 12px;
    }
}
@media (min-width: 768px) {

    /* * Add vertical padding to rows */
    #Page_Container .row.row--v-padded {
        padding-top: 32px;
        padding-bottom: 32px;
    }

    /* * Add horizontal padding to rows */
    #Page_Container .row.row--h-padded {
        padding-left: 32px;
        padding-right: 32px;
    }

    /* * Add vertical padding to rows on desktop only */
    #Page_Container .row.d-row--v-padded {
        padding-top: 32px;
        padding-bottom: 32px;
    }

    /* * add horizontal padding to rows on desktop only */
    #Page_Container .row.d-row--h-padded {
        padding-left: 32px;
        padding-right: 32px;
    }
}

/* * Column definition */
#Page_Container .row .column {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    max-width: 100%;
}

/* * Spacing between columns */
#Page_Container .row .column + .column {
    margin-top: 32px;
}

@media (min-width: 768px) {

    #Page_Container .row:not(.row--stacked-columns) .column + .column {
        /* * Remove margin top when columns are horizontal */
        margin-top: 0;
    }

    #Page_Container .row.row--stacked-columns > .column + .column {
        margin-top: 24px;
    }
}


@media (min-width: 768px) {

    /* * Apply padding between columns */
    #Page_Container .row.row--padded-columns .column {
        padding-left: 8px;
        padding-right: 8px;
    }

    /* * Remove padding left from first element  */
    #Page_Container .row.row--padded-columns > *.column:first-of-type,
    #Page_Container .row.row--padded-columns.row--h-padded > *.column:first-of-type,
    #Page_Container .row.row--padded-columns.d-row--h-padded > *.column:first-of-type {
        padding-left: 0;
    }

    /* * Remove padding right from last element  */
    #Page_Container .row.row--padded-columns > *.column:last-of-type,
    #Page_Container .row.row--padded-columns.row--h-padded > *.column:last-of-type,
    #Page_Container .row.row--padded-columns.d-row--h-padded > *.column:last-of-type {
        padding-right: 0;
    }
}

/* * -------------------- * */



/* * -------------------- * */
/* *  CONTENT BLOCKS 
/* * -------------------- * */

/* * Hero and Promo block use the same structure concept, but as Hero takes a significant placement on the page, it's referred to separately from other promotional placements */

/* * Create positioning context for hero, hero slides, promo blocks and promo block slides */
#Page_Container .hero,
#Page_Container .hero__slide,
#Page_Container .promo-block,
#Page_Container .promo-block__carousel-slide {
    position: relative;
}

/* * Spacing between promo-blocks if not in columns */
#Page_Container .promo-block + .promo-block {
    margin-top: 32px;
}

/* * Set overlay content to default to central point */
#Page_Container .hero__overlay,
#Page_Container .promo-block__overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate3d(-50%,-50%, 0);
            transform: translate3d(-50%,-50%, 0);
}

/* * Remove positioning and transform if overlay should be static */
#Page_Container .hero__overlay.hero__overlay--static,
#Page_Container .promo-block__overlay.promo-block__overlay--static {
    position: relative;
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
            top:auto;
            left: auto;
            right: auto;
            bottom:auto;
}

@media (max-width: 767px) {

    /* * Default width to full size when on small screen */
    #Page_Container .hero__overlay,
    #Page_Container .promo-block__overlay {
        width: 100%;
    }

    /* * Set to Static on Mobile */
    #Page_Container .hero__overlay.m-hero__overlay--static,
    #Page_Container .promo-block__overlay.m-promo-block__overlay--static {
        position: static;
        -webkit-transform: none;
            -ms-transform: none;
                transform: none;
    }
}
@media (min-width: 768px) {

    /* * Set to Static on Desktop */
    #Page_Container .hero__overlay.d-hero__overlay--static,
    #Page_Container .promo-block__overlay.d-promo-block__overlay--static {
        position: static;
        -webkit-transform: none;
            -ms-transform: none;
                transform: none;
    }
}

@media (min-width: 768px) {

    /* * Desktop width changes */
    /* * Set Full width */
    #Page_Container .hero__overlay.is-full-width,
    #Page_Container .promo-block__overlay.is-full-width {
        width: 100%;
    }
    /* * Set Half width */
    #Page_Container .hero__overlay.is-half-width,
    #Page_Container .promo-block__overlay.is-half-width {
        width: 50%;
    }
}

/*  ***
* Positioning For Overlay
*   *** */

/* * to left half */
#Page_Container .hero__overlay.to-left-half,
#Page_Container .promo-block__overlay.to-left-half {
    left: 25%;
    width: 50%;
}
/* * to right half */
#Page_Container .hero__overlay.to-right-half,
#Page_Container .promo-block__overlay.to-right-half {
    left: 75%;
    width: 50%;
}
/* * to top half */
#Page_Container .hero__overlay.to-top-half,
#Page_Container .promo-block__overlay.to-top-half {
    top: 25%;
}
/* * to bottom half */
#Page_Container .hero__overlay.to-bottom-half,
#Page_Container .promo-block__overlay.to-bottom-half {
    top: 75%;
}

/* * To top edge */
#Page_Container .hero__overlay.to-top-edge,
#Page_Container .promo-block__overlay.to-top-edge {
    top: 0;
    -webkit-transform: translate3d(-50%,0, 0);
            transform: translate3d(-50%,0, 0);
}

/* * To bottom edge */
#Page_Container .hero__overlay.to-bottom-edge,
#Page_Container .promo-block__overlay.to-bottom-edge {
    top: auto;
    bottom: 0;
    -webkit-transform: translate3d(-50%,0, 0);
            transform: translate3d(-50%,0, 0);
}

/* * To left edge */
#Page_Container .hero__overlay.to-left-edge,
#Page_Container .promo-block__overlay.to-left-edge {
    left: 0;
    -webkit-transform: translate3d(0,-50%, 0);
            transform: translate3d(0,-50%, 0);
}

/* * To right edge */
#Page_Container .hero__overlay.to-right-edge,
#Page_Container .promo-block__overlay.to-right-edge {
    left: auto;
    right: 0;
    -webkit-transform: translate3d(0,-50%, 0);
            transform: translate3d(0,-50%, 0);
}

/* * to top left */
#Page_Container .hero__overlay.to-top-left-edge,
#Page_Container .promo-block__overlay.to-top-left-edge {
    top: 0;
    left: 0;
    -webkit-transform: none;
            -ms-transform: none;
        transform: none;
}
/* * to top right */
#Page_Container .hero__overlay.to-top-right-edge,
#Page_Container .promo-block__overlay.to-top-right-edge {
    top: 0;
    right: 0;
    left: auto;
    -webkit-transform: none;
            -ms-transform: none;
        transform: none;
}
/* * to bottom left */
#Page_Container .hero__overlay.to-bottom-left-edge,
#Page_Container .promo-block__overlay.to-bottom-left-edge {
    top: auto;
    bottom: 0;
    left: 0;
    -webkit-transform: none;
            -ms-transform: none;
        transform: none;
}
/* * to bottom right */
#Page_Container .hero__overlay.to-bottom-right-edge,
#Page_Container .promo-block__overlay.to-bottom-right-edge {
    top: auto;
    left: auto;
    bottom: 0;
    right: 0;
    -webkit-transform: none;
            -ms-transform: none;
        transform: none;
}
@media (max-width: 767px) {

    /* * On mobile only */

    /* * to left half */
    #Page_Container .hero__overlay.m-to-left-half,
    #Page_Container .promo-block__overlay.m-to-left-half {
        left: 25%;
        width: 50%;
    }
    /* * to right half */
    #Page_Container .hero__overlay.m-to-right-half,
    #Page_Container .promo-block__overlay.m-to-right-half {
        left: 75%;
        width: 50%;
    }
    /* * to top half */
    #Page_Container .hero__overlay.m-to-top-half,
    #Page_Container .promo-block__overlay.m-to-top-half {
        top: 25%;
    }
    /* * to bottom half */
    #Page_Container .hero__overlay.m-to-bottom-half,
    #Page_Container .promo-block__overlay.m-to-bottom-half {
        top: 75%;
    }

    /* * To top edge */
    #Page_Container .hero__overlay.m-to-top-edge,
    #Page_Container .promo-block__overlay.m-to-top-edge {
        top: 0;
        -webkit-transform: translate3d(-50%,0, 0);
                transform: translate3d(-50%,0, 0);
    }

    /* * To bottom edge */
    #Page_Container .hero__overlay.m-to-bottom-edge,
    #Page_Container .promo-block__overlay.m-to-bottom-edge {
        top: auto;
        bottom: 0;
        -webkit-transform: translate3d(-50%,0, 0);
                transform: translate3d(-50%,0, 0);
    }

    /* * To left edge */
    #Page_Container .hero__overlay.m-to-left-edge,
    #Page_Container .promo-block__overlay.m-to-left-edge {
        left: 0;
        -webkit-transform: translate3d(0,-50%, 0);
                transform: translate3d(0,-50%, 0);
    }

    /* * To right edge */
    #Page_Container .hero__overlay.m-to-right-edge,
    #Page_Container .promo-block__overlay.m-to-right-edge {
        left: auto;
        right: 0;
        -webkit-transform: translate3d(0,-50%, 0);
                transform: translate3d(0,-50%, 0);
    }

    /* * to top left */
    #Page_Container .hero__overlay.m-to-top-left-edge,
    #Page_Container .promo-block__overlay.m-to-top-left-edge {
        top: 0;
        left: 0;
        -webkit-transform: none;
                -ms-transform: none;
            transform: none;
    }
    /* * to top right */
    #Page_Container .hero__overlay.m-to-top-right-edge,
    #Page_Container .promo-block__overlay.m-to-top-right-edge {
        top: 0;
        right: 0;
        left: auto;
        -webkit-transform: none;
                -ms-transform: none;
            transform: none;
    }
    /* * to bottom left */
    #Page_Container .hero__overlay.m-to-bottom-left-edge,
    #Page_Container .promo-block__overlay.m-to-bottom-left-edge {
        top: auto;
        bottom: 0;
        left: 0;
        -webkit-transform: none;
                -ms-transform: none;
            transform: none;
    }
    /* * to bottom right */
    #Page_Container .hero__overlay.m-to-bottom-right-edge,
    #Page_Container .promo-block__overlay.m-to-bottom-right-edge {
        top: auto;
        left: auto;
        bottom: 0;
        right: 0;
        -webkit-transform: none;
                -ms-transform: none;
            transform: none;
    }
}
@media (min-width: 768px) {

    /* * On Desktop only */

    /* * to left half */
    #Page_Container .hero__overlay.d-to-left-half,
    #Page_Container .promo-block__overlay.d-to-left-half {
        left: 25%;
        width: 50%;
    }
    /* * to right half */
    #Page_Container .hero__overlay.d-to-right-half,
    #Page_Container .promo-block__overlay.d-to-right-half {
        left: 75%;
        width: 50%;
    }
    /* * to top half */
    #Page_Container .hero__overlay.d-to-top-half,
    #Page_Container .promo-block__overlay.d-to-top-half {
        top: 25%;
    }
    /* * to bottom half */
    #Page_Container .hero__overlay.d-to-bottom-half,
    #Page_Container .promo-block__overlay.d-to-bottom-half {
        top: 75%;
    }

    /* * To top edge */
    #Page_Container .hero__overlay.d-to-top-edge,
    #Page_Container .promo-block__overlay.d-to-top-edge {
        top: 0;
        -webkit-transform: translate3d(-50%,0, 0);
                transform: translate3d(-50%,0, 0);
    }

    /* * To bottom edge */
    #Page_Container .hero__overlay.d-to-bottom-edge,
    #Page_Container .promo-block__overlay.d-to-bottom-edge {
        top: auto;
        bottom: 0;
        -webkit-transform: translate3d(-50%,0, 0);
                transform: translate3d(-50%,0, 0);
    }

    /* * To left edge */
    #Page_Container .hero__overlay.d-to-left-edge,
    #Page_Container .promo-block__overlay.d-to-left-edge {
        left: 0;
        -webkit-transform: translate3d(0,-50%, 0);
                transform: translate3d(0,-50%, 0);
    }

    /* * To right edge */
    #Page_Container .hero__overlay.d-to-right-edge,
    #Page_Container .promo-block__overlay.d-to-right-edge {
        left: auto;
        right: 0;
        -webkit-transform: translate3d(0,-50%, 0);
                transform: translate3d(0,-50%, 0);
    }

    /* * to top left */
    #Page_Container .hero__overlay.d-to-top-left-edge,
    #Page_Container .promo-block__overlay.d-to-top-left-edge {
        top: 0;
        left: 0;
        -webkit-transform: none;
                -ms-transform: none;
            transform: none;
    }
    /* * to top right */
    #Page_Container .hero__overlay.d-to-top-right-edge,
    #Page_Container .promo-block__overlay.d-to-top-right-edge {
        top: 0;
        right: 0;
        left: auto;
        -webkit-transform: none;
                -ms-transform: none;
            transform: none;
    }
    /* * to bottom left */
    #Page_Container .hero__overlay.d-to-bottom-left-edge,
    #Page_Container .promo-block__overlay.d-to-bottom-left-edge {
        top: auto;
        bottom: 0;
        left: 0;
        -webkit-transform: none;
                -ms-transform: none;
            transform: none;
    }
    /* * to bottom right */
    #Page_Container .hero__overlay.d-to-bottom-right-edge,
    #Page_Container .promo-block__overlay.d-to-bottom-right-edge {
        top: auto;
        left: auto;
        bottom: 0;
        right: 0;
        -webkit-transform: none;
                -ms-transform: none;
            transform: none;
    }
}

/* * Expand overlay links over block */
#Page_Container .hero__overlay-links,
#Page_Container .promo-block__overlay-links {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1;
}

#Page_Container .hero__overlay-links > *,
#Page_Container .promo-block__overlay-links > * {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: block;
}

@media (max-width: 767px) {
    
    /* * only display one chosen item for mobile - hide those without the required class name, and any that duplicate the class name*/
    #Page_Container .hero__overlay-links > *:not(.hero__overlay-link--mobile),
    #Page_Container .hero__overlay-links > .hero__overlay-link--mobile ~ .hero__overlay-link--mobile,
    #Page_Container .promo-block__overlay-links > *:not(.promo-block__overlay-link--mobile),
    #Page_Container .promo-block__overlay-links > .promo-block__overlay-link--mobile ~ .promo-block__overlay-link--mobile {
        display: none;
    }
}

@media (min-width: 768px) {

    /* * Configure positioning of multi-links on tablet/desktop */

    #Page_Container .hero__overlay-links[data-num-links="2"] > .hero__overlay-link:nth-child(1),
    #Page_Container .promo-block__overlay-links[data-num-links="2"] > .promo-block__overlay-link:nth-child(1) {
        left: 0;
        right: 50%;
    }
    #Page_Container .hero__overlay-links[data-num-links="2"] > .hero__overlay-link:nth-child(2),
    #Page_Container .promo-block__overlay-links[data-num-links="2"] > .promo-block__overlay-link:nth-child(2) {
        left: 50%;
        right: 0;
    }

    #Page_Container .hero__overlay-links[data-num-links="3"] > .hero__overlay-link:nth-child(1),
    #Page_Container .promo-block__overlay-links[data-num-links="3"] > .promo-block__overlay-link:nth-child(1) {
        left: 0;
        right: 66.66666%;
    }
    #Page_Container .hero__overlay-links[data-num-links="3"] > .hero__overlay-link:nth-child(2),
    #Page_Container .promo-block__overlay-links[data-num-links="3"] > .promo-block__overlay-link:nth-child(2) {
        left: 33.33333%;
        right: 33.33333%;
    }
    #Page_Container .hero__overlay-links[data-num-links="3"] > .hero__overlay-link:nth-child(3),
    #Page_Container .promo-block__overlay-links[data-num-links="3"] > .promo-block__overlay-link:nth-child(3) {
        left: 66.66666%;
        right: 0;
    }

    #Page_Container .hero__overlay-links[data-num-links="4"] > .hero__overlay-link:nth-child(1),
    #Page_Container .promo-block__overlay-links[data-num-links="4"] > .promo-block__overlay-link:nth-child(1) {
        left: 0;
        right: 75%;
    }
    #Page_Container .hero__overlay-links[data-num-links="4"] > .hero__overlay-link:nth-child(2),
    #Page_Container .promo-block__overlay-links[data-num-links="4"] > .promo-block__overlay-link:nth-child(2) {
        left: 25%;
        right: 50%;
    }
    #Page_Container .hero__overlay-links[data-num-links="4"] > .hero__overlay-link:nth-child(3),
    #Page_Container .promo-block__overlay-links[data-num-links="4"] > .promo-block__overlay-link:nth-child(3) {
        left: 50%;
        right: 25%;
    }
    #Page_Container .hero__overlay-links[data-num-links="4"] > .hero__overlay-link:nth-child(4),
    #Page_Container .promo-block__overlay-links[data-num-links="4"] > .promo-block__overlay-link:nth-child(4) {
        left: 75%;
        right: 0;
    }

    #Page_Container .hero__overlay-links[data-num-links] > .hero__overlay-link.hero__overlay-link--singular,
    #Page_Container .promo-block__overlay-links[data-num-links] > .promo-block__overlay-link.hero__overlay-link--singular {
        left: 0;
        right: 0;
    }
}

/* * Disable Pointer events on content */
#Page_Container .hero__overlay,
#Page_Container .promo-block__overlay {
    z-index: 2;
    pointer-events: none;
}

/* * CTA holders to flex content */
#Page_Container .hero__overlay .hero__CTAS,
#Page_Container .promo-block__overlay .promo-block__CTAS {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* * Enable pointer events on CTAs */
#Page_Container .hero__overlay .hero__CTAS .CTA,
#Page_Container .promo-block__overlay .promo-block__CTAS .CTA,
#Page_Container .hero__overlay--static .hero__CTAS .CTA,
#Page_Container .promo-block__overlay--static .promo-block__CTAS .CTA {
    pointer-events: auto;
}

/* * -------------------- * */



/* * -------------------- * */
/* *  FONT UTILITIES
/* * -------------------- * */

#Page_Container .uppercase {
    text-transform: uppercase;
}
#Page_Container .lowercase {
    text-transform: lowercase;
}
#Page_Container .no-transform {
    /* * Remove any inherited transform */
    text-transform: none;
}

#Page_Container .italic {
    font-style: italic;
}

#Page_Container .text-align--left {
    text-align: left;
}
#Page_Container .text-align--center {
    text-align: center;
}
#Page_Container .text-align--right {
    text-align: right;
}

@media (max-width: 767px) {
    #Page_Container .m-text-align--left {
        text-align: left;
    }
    #Page_Container .m-text-align--center {
        text-align: center;
    }
    #Page_Container .m-text-align--right {
        text-align: right;
    }
}

@media (min-width: 768px) {
    #Page_Container .d-text-align--left {
        text-align: left;
    }
    #Page_Container .d-text-align--center {
        text-align: center;
    }
    #Page_Container .d-text-align--right {
        text-align: right;
    }
}

/* * Generic font sizes */
#Page_Container .font-size--xxl {
    font-size: 24px;
}
#Page_Container .font-size--xl {
    font-size: 20px;
}
#Page_Container .font-size--l {
    font-size: 18px;
}
#Page_Container .font-size--m {
    font-size: 15px;
}
#Page_Container .font-size--s {
    font-size: 12px;
}
#Page_Container .font-size--xs {
    font-size: 10px;
}

@media (min-width: 768px) {
    #Page_Container .d-font-size--xxl {
        font-size: 24px;
    }
    #Page_Container .d-font-size--xl {
        font-size: 20px;
    }
    #Page_Container .d-font-size--l {
        font-size: 18px;
    }
    #Page_Container .d-font-size--m {
        font-size: 16px;
    }
    #Page_Container .d-font-size--s {
        font-size: 12px;
    }
    #Page_Container .d-font-size--xs {
        font-size: 10px;
    }
}

/* * colours */
#Page_Container .color-000 {
    color: #000;
}
#Page_Container .color-fff {
    color: #fff;
}

/* * -------------------- * */



/* * -------------------- * */
/* *  FLEX UTILITIES 
/* * -------------------- * */

/* * Set to flex */
#Page_Container .flex {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
}
@media (max-width: 767px) {
    #Page_Container .m-flex {
        display: flex;
        align-items: flex-start;
        justify-content: flex-start;
    }   
}
@media (min-width: 768px) {
    #Page_Container .d-flex {
        display: flex;
        align-items: flex-start;
        justify-content: flex-start;
    }   
}

/* * Define number of flex children in a row (2) */
#Page_Container .flex-2,
#Page_Container .row.flex-2 {
    flex-wrap: wrap;
}
#Page_Container .flex-2 > *,
#Page_Container .row.flex-2 > .column {
    flex: 1 1 50%;
}
#Page_Container .row.flex-2 > .column {
    flex: 1 1 50%;
    margin-top: 0;
}
#Page_Container .flex-2 > *:nth-of-type(n+3),
#Page_Container .row.flex-2 > *:nth-of-type(n+3) {
    margin-top: 16px;
}

#Page_Container .flex-2 > *:nth-of-type(odd) {
    padding-right: 8px;
}
#Page_Container .flex-2 > *:nth-of-type(even) {
    padding-left: 8px;
}

@media (max-width: 767px) {
    #Page_Container .m-flex.m-flex-2,
    #Page_Container .row.m-flex.m-flex-2 {
        flex-wrap: wrap;
    }
    #Page_Container .m-flex.m-flex-2 > *,
    #Page_Container .row.m-flex.m-flex-2 >  .column {
        flex: 1 1 50%;
        margin-top: 0;
    }
    #Page_Container .m-flex.m-flex-2 > *:nth-of-type(n+3),
    #Page_Container .row.m-flex.m-flex-2 > *:nth-of-type(n+3) {
        margin-top: 16px;
    }

    #Page_Container .m-flex.m-flex-2 > *:nth-of-type(odd) {
        padding-right: 8px;
    }
    #Page_Container .m-flex.m-flex-2 > *:nth-of-type(even) {
        padding-left: 8px;
    }
}
@media (min-width: 768px) {
    #Page_Container .d-flex.m-flex-2,
    #Page_Container .row.d-flex.m-flex-2 {
        flex-wrap: wrap;
    }
    #Page_Container .d-flex.m-flex-2 > *,
    #Page_Container .row.d-flex.m-flex-2 >  .column {
        flex: 1 1 50%;
        margin-top: 0;
    }
    #Page_Container .d-flex.m-flex-2 > *:nth-of-type(n+3),
    #Page_Container .row.d-flex.m-flex-2 > *:nth-of-type(n+3) {
        margin-top: 16px;
    }

    #Page_Container .d-flex.m-flex-2 > *:nth-of-type(odd) {
        padding-right: 8px;
    }
    #Page_Container .d-flex.m-flex-2 > *:nth-of-type(even) {
        padding-left: 8px;
    }
}

/* * Define number of flex children in a row (3) */
#Page_Container .flex.flex-3,
#Page_Container .row.flex.flex-3 {
    flex-wrap: wrap;
}
#Page_Container .flex.flex-3 > *,
#Page_Container .row.flex.flex-3 >  .column {
    flex: 1 1 33.33333%;
    margin-top: 0;
}
#Page_Container .flex.flex-3 > *:nth-of-type(n+4),
#Page_Container .row.flex.flex-3 > *:nth-of-type(n+4) {
    margin-top: 16px;
}
#Page_Container .flex.flex-3 > *:nth-of-type(3n+1) {
    padding-right: 6px;
}
#Page_Container .flex.flex-3 > *:nth-of-type(3n+2) {
    padding-right: 6px;
    padding-left: 6px;
}
#Page_Container .flex.flex-3 > *:nth-of-type(3n+3) {
    padding-left: 6px;
}

@media (max-width: 767px) {
    #Page_Container .m-flex-3,
    #Page_Container .row.m-flex-3 {
        flex-wrap: wrap;
    }
    #Page_Container .m-flex-3 > *,
    #Page_Container .row.m-flex-3 > .column {
        flex: 1 1 33.33333%;
        margin-top: 0;
    }
    #Page_Container .m-flex-3 > *:nth-of-type(n+4),
    #Page_Container .row.m-flex-3 > *:nth-of-type(n+4) {
        margin-top: 16px;
    }
    #Page_Container .m-flex.m-flex-3 > *:nth-of-type(3n+1) {
        padding-right: 8px;
    }
    #Page_Container .m-flex.m-flex-3 > *:nth-of-type(3n+2) {
        padding-right: 4px;
        padding-left: 4px;
    }
    #Page_Container .m-flex.m-flex-3 > *:nth-of-type(3n+3) {
        padding-left: 8px;
    }
    
}
@media (min-width: 768px) {
    #Page_Container .d-flex-3,
    #Page_Container .row.d-flex-3 {
        flex-wrap: wrap;
    }
    #Page_Container .d-flex-3 > *,
    #Page_Container .row.d-flex-3 > .column {
        flex: 1 1 33.33333%;
        margin-top: 0;
    }
    #Page_Container .d-flex-3 > *:nth-of-type(n+4),
    #Page_Container .row.d-flex-3 > *:nth-of-type(n+4) {
        margin-top: 16px;
    }
    #Page_Container .d-flex.d-flex-3 > *:nth-of-type(3n+1) {
        padding-right: 8px;
    }
    #Page_Container .d-flex.d-flex-3 > *:nth-of-type(3n+2) {
        padding-right: 4px;
        padding-left: 4px;
    }
    #Page_Container .d-flex.d-flex-3 > *:nth-of-type(3n+3) {
        padding-left: 8px;
    }
    
}

/* * -------------------- * */



/* * -------------------- * */
/* *  UTILITIES 
/* * -------------------- * */

@media (max-width: 767px) {

    /* * Hide for Mobile size */
    #Page_Container .desktop-only {
        display: none !important;
    }
}

@media (min-width: 768px) {

    /* * Hide for Desktop size */
    #Page_Container .mobile-only {
        display: none !important;
    }
}

/* * Margin center */
#Page_Container .margin-center {
    margin-left: auto;
    margin-right: auto;
}

/* * Margin and Padding levels */
/* * Paddings */
#Page_Container .padding-left-0 {
    padding-left: 0;
}
#Page_Container .padding-left-1 {
    padding-left: 8px;
}
#Page_Container .padding-left-2 {
    padding-left: 16px;
}

#Page_Container .padding-right-0 {
    padding-right: 0;
}
#Page_Container .padding-right-1 {
    padding-right: 8px;
}
#Page_Container .padding-right-2 {
    padding-right: 16px;
}

#Page_Container .padding-bottom-0 {
    padding-bottom: 0;
}
#Page_Container .padding-bottom-1 {
    padding-bottom: 8px;
}
#Page_Container .padding-bottom-2 {
    padding-bottom: 16px;
}

#Page_Container .padding-top-0 {
    padding-top: 0;
}
#Page_Container .padding-top-1 {
    padding-top: 8px;
}
#Page_Container .padding-top-2 {
    padding-top: 16px;
}

/* * Mobile only padding */
@media (max-width: 767px) {

    #Page_Container .m-padding-left-0 {
        padding-left: 0;
    }
    #Page_Container .m-padding-left-1 {
        padding-left: 8px;
    }
    #Page_Container .m-padding-left-2 {
        padding-left: 16px;
    }
    
    #Page_Container .m-padding-right-0 {
        padding-right: 0;
    }
    #Page_Container .m-padding-right-1 {
        padding-right: 8px;
    }
    #Page_Container .m-padding-right-2 {
        padding-right: 16px;
    }
    
    #Page_Container .m-padding-bottom-0 {
        padding-bottom: 0;
    }
    #Page_Container .m-padding-bottom-1 {
        padding-bottom: 8px;
    }
    #Page_Container .m-padding-bottom-2 {
        padding-bottom: 16px;
    }
    
    #Page_Container .m-padding-top-0 {
        padding-top: 0;
    }
    #Page_Container .m-padding-top-1 {
        padding-top: 8px;
    }
    #Page_Container .m-padding-top-2 {
        padding-top: 16px;
    }
}

/* * Desktop only padding */
@media (min-width: 768px) {

    #Page_Container .d-padding-left-0 {
        padding-left: 0;
    }
    #Page_Container .d-padding-left-1 {
        padding-left: 8px;
    }
    #Page_Container .d-padding-left-2 {
        padding-left: 16px;
    }
    
    #Page_Container .d-padding-right-0 {
        padding-right: 0;
    }
    #Page_Container .d-padding-right-1 {
        padding-right: 8px;
    }
    #Page_Container .d-padding-right-2 {
        padding-right: 16px;
    }
    
    #Page_Container .d-padding-bottom-0 {
        padding-bottom: 0;
    }
    #Page_Container .d-padding-bottom-1 {
        padding-bottom: 8px;
    }
    #Page_Container .d-padding-bottom-2 {
        padding-bottom: 16px;
    }
    
    #Page_Container .d-padding-top-0 {
        padding-top: 0;
    }
    #Page_Container .d-padding-top-1 {
        padding-top: 8px;
    }
    #Page_Container .d-padding-top-2 {
        padding-top: 16px;
    }
}


/* * margins */
#Page_Container .margin-left-0 {
    margin-left: 0;
}
#Page_Container .margin-left-1 {
    margin-left: 8px;
}
#Page_Container .margin-left-2 {
    margin-left: 16px;
}

#Page_Container .margin-right-0 {
    margin-right: 0;
}
#Page_Container .margin-right-1 {
    margin-right: 8px;
}
#Page_Container .margin-right-2 {
    margin-right: 16px;
}

#Page_Container .margin-bottom-0 {
    margin-bottom: 0;
}
#Page_Container .margin-bottom-1 {
    margin-bottom: 8px;
}
#Page_Container .margin-bottom-2 {
    margin-bottom: 16px;
}

#Page_Container .margin-top-0 {
    margin-top: 0;
}
#Page_Container .margin-top-1 {
    margin-top: 8px;
}
#Page_Container .margin-top-2 {
    margin-top: 16px;
}

/* * Mobile only margin */
@media (max-width: 767px) {

    #Page_Container .m-margin-left-0 {
        margin-left: 0;
    }
    #Page_Container .m-margin-left-1 {
        margin-left: 8px;
    }
    #Page_Container .m-margin-left-2 {
        margin-left: 16px;
    }
    
    #Page_Container .m-margin-right-0 {
        margin-right: 0;
    }
    #Page_Container .m-margin-right-1 {
        margin-right: 8px;
    }
    #Page_Container .m-margin-right-2 {
        margin-right: 16px;
    }
    
    #Page_Container .m-margin-bottom-0 {
        margin-bottom: 0;
    }
    #Page_Container .m-margin-bottom-1 {
        margin-bottom: 8px;
    }
    #Page_Container .m-margin-bottom-2 {
        margin-bottom: 16px;
    }
    
    #Page_Container .m-margin-top-0 {
        margin-top: 0;
    }
    #Page_Container .m-margin-top-1 {
        margin-top: 8px;
    }
    #Page_Container .m-margin-top-2 {
        margin-top: 16px;
    }
}

/* * Desktop only margin */
@media (min-width: 768px) {

    #Page_Container .d-margin-left-0 {
        margin-left: 0;
    }
    #Page_Container .d-margin-left-1 {
        margin-left: 8px;
    }
    #Page_Container .d-margin-left-2 {
        margin-left: 16px;
    }
    
    #Page_Container .d-margin-right-0 {
        margin-right: 0;
    }
    #Page_Container .d-margin-right-1 {
        margin-right: 8px;
    }
    #Page_Container .d-margin-right-2 {
        margin-right: 16px;
    }
    
    #Page_Container .d-margin-bottom-0 {
        margin-bottom: 0;
    }
    #Page_Container .d-margin-bottom-1 {
        margin-bottom: 8px;
    }
    #Page_Container .d-margin-bottom-2 {
        margin-bottom: 16px;
    }
    
    #Page_Container .d-margin-top-0 {
        margin-top: 0;
    }
    #Page_Container .d-margin-top-1 {
        margin-top: 8px;
    }
    #Page_Container .d-margin-top-2 {
        margin-top: 16px;
    }
}

/* * -------------------- * */
