div[class^=m-]+.m-hero-item {
    /* fixing MWF */
    padding-top: 0;
    float: none;
}

.theme-dark {
    background-color: #171717;
}

.videoHero .m-hero-item .c-caption-1 {
  padding-top: 24px;
}
@media only screen and (max-width: 1083px) {
    .c-hero.f-y-top.f-transparent>div>div, .m-hero-item.f-y-top.f-transparent>div>div {
        top: 100px;
    }
    .videoHero .m-hero-item .c-heading-1a {
        font-size: 46px;
        line-height: 46px;
    }
}
@media only screen and (max-width: 900px) {
    .c-hero.f-y-top.f-transparent>div>div, .m-hero-item.f-y-top.f-transparent>div>div {
        top: 60px;
    }
}

.introducing {
    margin-bottom: -1px;
}

.introducing .x-screen-reader {
    left: 0;
}

.introducing .m-area-heading {
    float: none;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
}

.introducing .m-area-heading .c-badge+[class^=c-heading] {
    padding-top: 6px;
}

.introducing .m-area-heading {
    padding-bottom: 48px;
}

@media only screen and (max-width: 767px) {
    .c-hero>div picture,
    .m-hero-item>div picture {
        display: block;
    }
}


/*
.introducing .x-screen-reader,
.introducing .m-ambient-video {
    display: none;
}
.introducing .m-ambient-video + picture {
    display: block;
}

@media screen and (min-width: 768px) {
    .introducing .x-screen-reader,
    .introducing .m-ambient-video {
        display: block;
    }
    .introducing .m-ambient-video + picture {
        display: none;
    }

}
*/


/* =============== 
Video hero 
=============== */

.videoHero .m-hero-item.f-transparent:before {
    /* proper f-transparent superhero size */
    padding-bottom: 62.45% !important;
}

.videoHero .m-hero-item .m-ambient-video video {
    width: 100% !important;
}


/* some videos go away at tablet rather than mobile.*/

.videoHero:not(.responsive, .copilot) .m-hero-item .m-ambient-video {
    display: none;
}

.videoHero .m-hero-item .m-ambient-video+picture {
    display: block;
}

@media screen and (min-width: 768px) {
    .videoHero:not(.no-tablet) .m-hero-item .m-ambient-video {
        display: block;
    }
    .videoHero:not(.no-tablet) .m-hero-item .m-ambient-video+picture {
        display: none;
    }
}

@media screen and (min-width: 1084px) {
    .videoHero.no-tablet .m-hero-item .m-ambient-video {
        display: block;
    }
    .videoHero.no-tablet .m-hero-item .m-ambient-video+picture {
        display: none;
    }
}

.videoHero.responsive video+.c-image {
    position: absolute;
    top: 0;
}

.hidden {
    display: none;
}

.videoHero.progress {
    position: relative;
}

@media only screen and (min-width: 768px) {
    .videoHero.progress:before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        height: calc(100% + 2px);
        width: 100%;
        background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 50%, rgba(255, 255, 255, 1) 90%, rgba(255, 255, 255, 1) 100%);
    }
}

@media only screen and (min-width: 768px) and (max-width: 1399px) {
    .progress .m-hero-item.f-y-top.f-transparent>div:not(.m-ambient-video)>div {
        top: 10%;
    }
}

@media only screen and (max-width: 1399px) {
    .progress .m-hero-item h2 {
        font-size: 36px;
        line-height: 1.2;
    }
}

@media only screen and (max-width: 1083px) {
    .progress .m-hero-item h2 {
        font-size: 30px
    }
}

@media only screen and (max-width: 767px) {
    .progress .m-hero-item h2 {
        font-size: 26px
    }
}

@media only screen and (max-width: 767px) {
    .tall-mobile .m-hero-item>div>div {
        top: calc(45%);
    }
}


/* =============== 
 END Video hero 
 =============== */


/* improved pp-button alignment */

.videoHero .m-hero-item .m-ambient-video video+div {
    top: auto;
    bottom: 24px;
    left: 24px;
    transform: none;
}

.videoHero .m-hero-item .m-ambient-video .vidPlayPause {
    top: auto;
    bottom: auto;
    margin-left: 0;
    position: relative;
}


/* ===============
END Video hero 
=============== */


/* =============== 
Custom hero - override to make hero flow at mobile
=============== */

@media only screen and (max-width: 767px) {
    .custom-hero .m-hero-item:before {
        display: none;
    }
    .custom-hero section.m-hero-item {
        padding-left: 0;
        padding-right: 0;
    }
    .custom-hero .m-hero-item>picture,
    .custom-hero .m-hero-item>picture img,
    .custom-hero .m-hero-item>img {
        position: relative;
        transform: translateY(0) !important;
        left: 0 !important;
    }
    .custom-hero .m-hero-item>img {
        position: relative;
        top: 0 !important;
        left: 0 !important;
        transform: none !important;
        height: auto;
    }
    .custom-hero .m-hero-item>div {
        position: relative;
        height: auto;
    }
    .custom-hero .m-hero-item>div>div {
        position: relative;
        top: 0 !important;
        left: 0 !important;
        transform: translateX(0) !important;
    }
    .custom-hero .m-hero-item>div>div {
        padding-top: 48px;
        padding-bottom: 48px;
    }
}


/* =============== 
END Custom hero 
=============== */

.instant-library .m-hero-item>div>div {
    width: 100%;
    max-width: 720px;
}

.instant-library .m-hero-item.f-y-center .m-ambient-video+div>div {
    top: 50%;
}

@media screen and (min-width: 768px) and (max-width: 1083px) {
    .instant-library .m-hero-item.f-transparent:before {
        padding-bottom: 103.9% !important;
    }
}

@media screen and (max-width: 767px) {
    .instant-library .m-hero-item.f-transparent:before {
        padding-bottom: 103.75% !important;
    }
    .instant-library .m-hero-item>div>div picture {
        display: block;
    }
    .instant-library section>div:not(.m-ambient-video) {
        position: absolute;
        top: 44%;
        transform: translateY(-50%);
    }
    .instant-library .m-hero-item.f-transparent:before {
        padding-bottom: 213% !important;
    }
    .instant-library .m-ambient-video video+div {
        display: none;
    }
}

.instant-library h2 {
    padding-top: 6px;
}


/* END making instant library portable */

.text-shadow {
    text-shadow: 0px 0px calc(.08em + 13px) #000;
}

.text-shadow-reverse {
    text-shadow: 0px 0px calc(.08em + 13px) #fff;
}

@media screen and (max-width: 1200px) {
    .apps-template .c-heading-1a {
        line-height: .97em;
        font-size: 48px;
    }
}

@media screen and (min-width: 768px) and (max-width: 1083px) {
    .apps-template .c-heading-1a {
        line-height: .97em;
        font-size: 42px;
    }
}

@media only screen and (max-width: 767px) {
    .videoHero.tall-mobile .m-hero-item>div>div,
    .tall-mobile .m-hero-item>div>div {
        top: calc(45%);
    }
}

@media only screen and (min-width: 1084px) and (max-width: 1140px) {
    .meet-xbox .m-hero-item>div>div {
        max-width: 420px;
    }
}

.text-spacing .m-hero-item:not(.f-y-center)>div:not(.m-ambient-video)>div,
.m-hero-item:not(.f-y-center)[style]>div:not(.m-ambient-video)>div {
    top: 0 !important;
}

@media only screen and (max-width: 767px) {
    .videoHero:not(.copilot) .m-ambient-video:has(video[data-vidsource-desktop])>div {
        display: none;
    }
}

.accessories {
    padding-bottom: 96px;
}

.legal {
    margin-top: 48px;
}

.apps-template.theme-dark {
    margin-bottom: -1px;
}


/* shared compatibility module -- make feature image priority headings the same as hero headings */

.m-feature.f-image-priority.hero-headings .c-heading {
    box-sizing: content-box;
    font-size: 46px;
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 56px;
    padding: 37px 0 3px
}

.m-feature.f-image-priority.hero-headings .c-subheading {
    font-size: 24px;
    line-height: 28px;
    padding: 4px 0 2.3632px
}

@media only screen and (max-width:1399px) {
    .m-feature.f-image-priority.hero-headings .c-heading {
        font-size: 24px;
        font-weight: 600;
        line-height: 28px;
        padding: 36px 0 4px
    }
    .m-feature.f-image-priority.hero-headings .c-subheading {
        font-size: 15px;
        font-weight: 400;
        line-height: 20px;
        padding: 8px 0 0
    }
}

@media only screen and (max-width:767px) {
    .m-feature.f-image-priority.hero-headings .c-heading {
        box-sizing: content-box;
        font-size: 20px;
        font-weight: 600;
        line-height: 24px;
        padding: 35px 0 5px
    }
    .m-feature.f-image-priority.hero-headings .c-heading {
        padding-top: 0
    }
    .m-feature.f-image-priority.hero-headings .c-subheading {
        box-sizing: content-box;
        font-size: 18px;
        font-weight: 400;
        line-height: 24px;
        padding: 9px 0 3px;
        display: block
    }
}

/* shared blade not entirely independent of page CSS */

.handheld-compatibility {
    padding-bottom: 48px;
}

@media screen and (min-width: 768px) {
    .handheld-compatibility {
        padding-top: 48px;
        padding-bottom: 96px;
    }
}

.handheld-compatibility .c-logo {
    margin-top: 0;
}

.handheld-compatibility .c-group {
    padding-top: 20px;
}

.handheld-compatibility .m-feature .c-logo {
    margin-top: 0;
}

.handheld-compatibility .m-feature.f-image-priority.hero-headings [class^=c-heading] {
    padding-top: 8px;
    margin-top: 0;
}

.handheld-compatibility .c-group .c-call-to-action:not(:first-child) {
    margin-left: 20px;
}

@media only screen and (max-width:767px) {
    .m-feature.f-image-priority.hero-headings .c-heading {
        font-size: 26px;
        line-height: 32px;
    }
}

/* XGP Logo fix at Mobile */
@media screen and (max-width:415px) {
   .instant-library .xgpLogo img {
      width:280px;
   }
}

@media screen and (max-width:339px) {
   .instant-library .xgpLogo img {
      margin-left:-12px;
   }
}

.handheld-compatibility .c-group .c-call-to-action:not(:first-child) {
    margin-left: 20px;
}


/* =============== 
Custom hero - override to make hero flow at mobile
=============== */
@media only screen and (max-width: 1079px) {
    .custom-hero-tablet .m-hero-item>div.m-ambient-video:before,
    .custom-hero-tablet .m-hero-item:before {
        display: none;
    }
    .custom-hero-tablet section.m-hero-item {
        padding-left: 0;
        padding-right: 0;
    }
    .custom-hero-tablet .m-hero-item .m-ambient-video>video,
    .custom-hero-tablet .m-hero-item>picture,
    .custom-hero-tablet .m-hero-item>picture img,
    .custom-hero-tablet .m-hero-item>img {
        position: relative;
        transform: translateY(0) !important;
        left: 0 !important;
    }
    .custom-hero-tablet .m-hero-item>img {
        position: relative;
        top: 0 !important;
        left: 0 !important;
        transform: none !important;
        height: auto;
    }
    .custom-hero-tablet .m-hero-item>div {
        position: relative;
        height: auto;
    }
    .custom-hero-tablet .m-hero-item>div>div {
        position: relative;
        top: 0 !important;
        left: 0 !important;
        transform: translateX(0) !important;
    }
    .custom-hero-tablet .m-hero-item>div:not(.m-ambient-video)>div {
        width: 90%;
        max-width: 90%;
        text-align: center;
        padding-top: 48px;
        padding-bottom: 48px;
        margin-left: auto;
        margin-right: auto;
    }
    .custom-hero-tablet .m-hero-item .m-ambient-video video + div{
        padding-top: 0;
        padding-bottom: 0;
        position: absolute;
        top: auto !important;
        bottom: 24px;
        left: 24px !important;
    }

}
/* ===============
END Custom hero
===============*/
