/* ## Resets for Post Type Template */
body.single-deep-dive {
     background-color: #000;
     color: #fff;
}

body.single-deep-dive .deep-dive-background {
     background-image: url(images/deep-dives/ddbg.webp);
     background-size: auto 100vh;
     background-position: 50% 100%;
     background-repeat: no-repeat;
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     bottom: 0;
     z-index: -1;
     opacity: 0.7;
}

body.single-deep-dive .site {
     background: transparent;
}

body.single-deep-dive .site-content {
     margin: 0;
     max-width: none;
     padding: 0;
}

body.single-deep-dive .entry-header {
     position: relative;
     margin-top: 92px;
     width: 100%;
     padding: 0;
}

body.single-deep-dive .entry-header .custom-logo-link {
     display: block;
     width: 90%;
     max-width: 430px;
     margin: 0 auto 70px;
     filter: invert(1) brightness(200%);
}

body.single-deep-dive .entry-header .custom-logo-link img {
     width: 100%;
     height: auto;
     display: block;
}

body.single-deep-dive .entry-title {
     color: #FFF;
     text-align: center;
     font-size: 52.836px;
     font-style: normal;
     font-weight: 900;
     line-height: 95.424%;
     max-width: 860px;
     margin: 0 auto;
}

body.single-deep-dive .entry-content {
     padding-bottom: 0;
     font-size: 14px;
     font-weight: 400;
     line-height: 160%;
     margin: 0 auto;
}

body.single-deep-dive .entry-content>* {
     float: none;
     width: 100%;
     max-width: 100%;
     padding-right: 20px;
     padding-left: 20px;
}

body.single-deep-dive .entry-content>p {
     font-size: 14px;
     width: 100%;
     max-width: 720px;
     margin: 36px auto;
     text-align: center;
     color: #FFF;
     line-height: 160%;
}

body.single-deep-dive .entry-content button.deep-dive-scroll-to-top {
    display: block;
    border: 1px solid #fff;
    border-radius: 0px;
    line-height: 1;
    padding: 15px 18px 12px;
    text-decoration: none;
    margin: 0px auto 48px;
    font-weight: 600;
    font-size: 14px;
    text-transform: uppercase;
    color: #fff;
    text-align: center;
    max-width: 200px;
    background-color: transparent;
}

:root {
     --card-image-background-size-mobile: 90vw auto;
     --card-image-background-size-tablet: 90vw auto;
     --card-image-background-size-desktop: auto 100vh;
     --focal-point-magnifier-size-mobile: 180px;
     --focal-point-magnifier-size-tablet: 240px;
     --focal-point-magnifier-size-desktop: 390px;
     --focal-point-magnifier-size: calc(var(--focal-point-magnifier-size-mobile) / 2);
     --focal-point-mag-circle-left: calc(var(--magnify-position-x) - (var(--focal-point-magnifier-size) * -0.75));
     --focal-point-mag-circle-top: calc(var(--magnify-position-y) - (var(--focal-point-magnifier-size) * -0.25));
}

/* Card Image Styles */
.card-image-container {
     position: relative;
     top: 0;
     width: 100%;
     max-width: 100%;
     height: 100vh;
     max-height: 100vh;
     overflow: hidden;
     display: block;
     transition: transform 2s ease-out, opacity 0.75s ease-out;
}

.card-image-container.is-sticky {
     position: sticky;
}

.card-image-container.is-finished {
     transform: translateY(-50vh);
     opacity: 0;
}

.card-image-container .card-image {
     background-size: var(--card-image-background-size-mobile);
     background-position: 50% 10%;
     background-repeat: no-repeat;
     position: absolute;
     left: 0;
     top: 0;
     width: 100%;
     height: 100vh;
     background-repeat: no-repeat;
     transform-style: preserve-3d;
     backface-visibility: hidden;
}

/* Focal Point Text Styles */
.focal-point-text {
     position: relative;
     height: 100vh;
     width: 100vw;
     display: flex;
     align-items: center;
     justify-content: center;
     z-index: 5;
     margin-bottom: 24vh;
}

.focal-point-text .focal-point-text-inner {
     padding: 20px 24px;
     display: block;
     text-align: center;
     border-radius: 20px;
     background: #FFF;
     color: #000;
     box-shadow: 0 0 70px 0 rgba(0, 0, 0, 0.30);
     flex-basis: 600px;
     max-width: 80%;
}

.focal-point-text.text-position-v-top {
     align-items: flex-start;
     padding-top: 50px;
}

.focal-point-text.text-position-v-bottom {
     align-items: flex-end;
     padding-bottom: 50px;
}

.focal-point-text.text-position-h-left {
     justify-content: flex-start;
}

.focal-point-text.text-position-h-right {
     justify-content: flex-end;
}

.focal-point-text.no-content .focal-point-text-inner {
     background: transparent !important;
     color: transparent !important;
     box-shadow: none !important;
     opacity: 0 !important;
}

/* Magnifier Styles */
.focal-point-text.has-magnify {
     margin-bottom: 100vh;
}

.focal-point-magnifier-container {
     position: fixed;
     width: 100%;
     height: 100%;
     top: 0;
     left: 0;
     pointer-events: none;
     filter: drop-shadow(0 0 24px rgba(128, 128, 128, 0.9));
     opacity: 0;
}

.focal-point-magnifier {
     position: fixed;
     width: 100%;
     height: 100%;
     opacity: 0;
     top: 0;
     left: 0;
     clip-path: circle(var(--focal-point-magnifier-size) at var(--focal-point-mag-circle-left) var(--focal-point-mag-circle-top));
     transform: scale(1.2);
     transform-origin: var(--focal-point-mag-circle-left) var(--focal-point-mag-circle-top);
     pointer-events: none;
}

.focal-point-text.has-magnify.revealMagnifier .focal-point-magnifier-container {
     opacity: 1;
}

.focal-point-text.has-magnify.revealMagnifier .focal-point-magnifier {
     animation: magEnter .75s cubic-bezier(0.16, 1, 0.3, 1) 0s 1 normal forwards;
}

@media only screen and (min-width: 768px) {
     :root {
          --focal-point-magnifier-size: calc(var(--focal-point-magnifier-size-tablet) / 2);
     }

     body.single-deep-dive .entry-title {
          font-size: 60.836px;
     }

     body.single-deep-dive .entry-content {
          font-size: 16px;
     }

     body.single-deep-dive .entry-content>p {
          font-size: 18px;
     }

     .card-image-container .card-image {
          background-size: var(--card-image-background-size-tablet);
          background-position: 50% 50%;
     }

     .focal-point-text.text-position-v-top {
          padding-top: 6vh;
     }

     .focal-point-text.text-position-v-bottom {
          padding-bottom: 6vh;
     }

     body.single-deep-dive .entry-content>.focal-point-text.text-position-h-left {
          padding-left: 4vw;
     }

     body.single-deep-dive .entry-content>.focal-point-text.text-position-h-right {
          padding-right: 4vw;
     }
}

@media only screen and (min-width: 1024px) {
     body.single-deep-dive .deep-dive-background {
          background-image: url(images/deep-dives/ddbg.webp);
          background-size: 100vw auto;
          background-position: 50% 100%;
     }

     :root {
          --focal-point-magnifier-size: calc(var(--focal-point-magnifier-size-desktop) / 2);
     }

     body.single-deep-dive .entry-title {
          font-size: 83.836px;
     }

     body.single-deep-dive .entry-content {
          font-size: 20px;
     }

     body.single-deep-dive .entry-content>p {
          font-size: 20px;
     }

     .card-image-container .card-image {
          background-size: var(--card-image-background-size-desktop);
          background-position: 50% 50%;
     }

     .focal-point-text .focal-point-text-inner {
          padding: 40px 48px;
     }

     .focal-point-text.text-position-v-top {
          padding-top: 12vh;
     }

     .focal-point-text.text-position-v-bottom {
          padding-bottom: 12vh;
     }

     body.single-deep-dive .entry-content>.focal-point-text.text-position-h-left {
          padding-left: 6vw;
     }

     body.single-deep-dive .entry-content>.focal-point-text.text-position-h-right {
          padding-right: 6vw;
     }
}

@keyframes magEnter {
     0% {
          animation-timing-function: ease-in;
          opacity: 0;
          transform: scale(0);
     }

     38% {
          animation-timing-function: ease-out;
          opacity: 1;
          transform: scale(1.2);
     }

     55% {
          animation-timing-function: ease-in;
          opacity: 1;
          transform: scale(0.9);
     }

     72% {
          animation-timing-function: ease-out;
          opacity: 1;
          transform: scale(1.2);
     }

     81% {
          animation-timing-function: ease-in;
          opacity: 1;
          transform: scale(1.04);
     }

     89% {
          animation-timing-function: ease-out;
          opacity: 1;
          transform: scale(1.2);
     }

     95% {
          animation-timing-function: ease-in;
          opacity: 1;
          transform: scale(1.15);
     }

     100% {
          animation-timing-function: ease-out;
          opacity: 1;
          transform: scale(1.2);
     }
}