.hero {
    padding-top: 48px;
}

.post-content {
    padding-top: 50px;
}

.post-hero-text-content {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: start;
}

.post-hero-top-border {
    position: absolute;
    top: 0;
    left: 0;
    height: 1px;
    width: 100%;
    background-color: var(--text-color-40);
}

.post-hero-bottom-border {
    height: 1px;
    width: 100%;
    background-color: var(--text-color-40);
    display: none;
}

.post-tag {
    letter-spacing: 0em;
    line-height: 150%;
    font-size: 24px;
    font-weight: 500;
    margin-bottom: 28px;
}

.post-heading {
    font-size: calc(6.8vw * var(--scale));
    letter-spacing: -0.035em;
    line-height: 100%;
    margin-bottom: 28px;
}

.excerpt-and-authors-wrapper {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    column-gap: 5vw;
}

.post-excerpt-wrapper {
    max-width: 510px;
}

.post-main-image-wrapper {
    margin-top: 50px;
    width: 100%;
    position: relative;
}

.horizontal-line-animation {
    width: 0%;
}

.vertical-post-header {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    margin-bottom: 34px;
}

.vertical-post-header .post-main-image-wrapper {
    min-width: calc((100vw - 144px) / 3);
    width: calc((100vw - 144px) / 3);
    margin-left: calc(8.3vw * var(--scale));
    margin-top: 0px;
    padding-top: 84px;
    padding-bottom: 84px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vertical-post-header .excerpt-and-authors-wrapper {
    flex-direction: column;
    align-items: flex-start;
}

.vertical-post-header .post-hero-bottom-border {
    position: absolute;
    bottom: 0;
    display: block;
}

.vertical-post-header .post-hero-text-content {
    padding-bottom: 84px;
}

.vertical-post-header .post-authors {
    margin-top: 34px;
}

.hero-content {
    position: relative;
}

.no-image-container .excerpt-and-authors-wrapper {
    flex-direction: row;
    align-items: center;
}

.no-image-container .post-authors {
    margin-top: 0px;
}

.no-image-container .hero-content{
    display: block;
}

.no-image-container .post-hero-text-content {
    padding-bottom: 0px;
}

.no-image-line {
    display: block !important;
    position: static !important;
    margin-top: 84px;
    margin-bottom: 34px;
}

.top-vertical-border {
    display: none;
}

.vertical-post-header .top-vertical-border {
    display: block;
}

.post-upgrade-cta {
    width: 100%;
    padding: 5.8vw 5.8vw;
    text-align: center;
    border: 1px solid var(--text-color-40);
    background-color: var(--background-color);
    position: relative;
    z-index: 2;
}

.post-upgrade-cta h2 {
    line-height: 110%;
    font-size: calc(4.72vw * var(--scale));
}

.post-upgrade-cta .button {
    text-decoration: none;
}

.post-upgrade-cta-paragraph {
    margin-top: calc(1.5vw * var(--scale));
    margin-bottom: calc(2.8vw * var(--scale));
    max-width: 620px;
}

.post-upgrade-cta-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.under-button-wrapper {
    margin-top: calc(0.7vw * var(--scale));
}

.under-button-wrapper small {
    opacity: 1;
    font-size: 14px;
}

.under-button-wrapper span {
    opacity: 0.8;
}

.fading-content {
    position: relative;
}

.fading-content:after {
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 35vh;
    background: linear-gradient(transparent, var(--background-color) 93%);
}

.fading-content + .post-upgrade-cta {
    filter: drop-shadow(0px 10px 30px var(--text-color-20));
}

.post-share-icons {
    margin-top: calc(1.4vw * var(--scale));
    display: flex;
    column-gap: 17px;
    position: relative;
}

.clipboard-alert {
    display: none;
    position: absolute;
    left: 0;
    bottom: calc(-2.5vw * var(--scale));
}

.clipboard-alert small {
    font-size: 14px;
}

.share-button {
    border: 1px solid var(--text-color);
    background-color: var(--background-color);
}

.share-button path {
    fill: var(--text-color);
}

.share-button:hover {
    background-color: var(--text-color) !important;
}

.share-button:hover path {
    fill: var(--background-color) !important;
}

.section-header-comments h3 {
    line-height: 75%;
}

.reading-progress-bar {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 102;
    height: 8px;
    background-color: var(--text-color);
    width: 0%;
}

/* Styles for large desktop */
@media (min-width: 1439px) {  
    .hero {
        padding-top: 3.3vw;
    }

    .post-content {
        padding-top: calc(3.5vw * var(--scale));
    }
    
    .post-tag {
        font-size: calc(1.67vw * var(--scale));
        margin-bottom: calc(1.94vw * var(--scale));
    }
    
    .post-heading {      
        margin-bottom: calc(1.94vw * var(--scale));
    }
    
    .post-excerpt-wrapper {
        max-width: calc(35.4vw * var(--scale));
    }
    
    .post-main-image-wrapper {
        margin-top: calc(3.5vw * var(--scale));
    }

    .no-image-line {
        display: block;
        margin-top: 5.8vw;
        margin-bottom: 2.3vw;
    }

    .vertical-post-header {
        margin-bottom: calc(2.36vw * var(--scale));
    }
    
    .vertical-post-header .post-main-image-wrapper {
        min-width: calc((100vw - 10vw) / 3);
        width: calc((100vw - 10vw) / 3);
        padding-top: 5.8vw;
        padding-bottom: 5.8vw;
    }
    
    .vertical-post-header .post-hero-text-content {
        padding-bottom: 5.8vw;
    }
    
    .vertical-post-header .post-authors {
        margin-top: calc(2.36vw * var(--scale));
    }

    .no-image-container .post-hero-text-content {
        padding-bottom: 0px;
    }
    
    .post-upgrade-cta-paragraph {
        max-width: calc(43vw * var(--scale));
    }
    
    .under-button-wrapper small {
        font-size: calc(1vw * var(--scale));
    }
    
    .fading-content + .post-upgrade-cta {
        filter: drop-shadow(0px calc(0.7vw * var(--scale)) calc(2.1vw * var(--scale)) var(--text-color-20));
    }

    .post-share-icons {
        column-gap: calc(1.2vw * var(--scale));
    }

    .clipboard-alert small {
        font-size: calc(1vw * var(--scale));
    }

    .section-header-comments {
        padding-top: calc(5.8vw * var(--scale));
        padding-bottom: calc(5.8vw * var(--scale));
    }

    .reading-progress-bar {
        height: calc(0.55vw * var(--scale));
    }
}

/* Styles for extra large desktop */
@media (min-width: 1920px) { 
    .no-image-line {
        margin-bottom: 3vw;
    }
}

/* Styles for tablet */
@media (max-width: 991px) {  
    .post-content {
        padding-top: 38px;
    }

    .post-hero-text-content {
        padding-top: 68px;
    }

    .post-heading {
        font-size: calc(8vw * var(--scale));
        line-height: 110%;
        margin-bottom: 20px;
    }

    .post-tag {
        font-size: 22px;
        margin-bottom: 22px;
    }
    
    .excerpt-and-authors-wrapper {
        align-items: flex-start;
        flex-direction: column;
    }
    
    .post-excerpt-wrapper {
        max-width: 620px;
    }

    .post-main-image-wrapper {
        margin-top: 38px;
    }

    .no-image-line {
        margin-top: 68px;
        margin-bottom: 30px;
    }

    .vertical-post-header {
       flex-direction: column;
       margin-bottom: unset;
    }

    .vertical-post-header .post-main-image-wrapper {
        padding: 0px;
        width: 100%;
        min-width: 100%;
        margin-left: 0px;
        margin-top: 38px;
    }
    
    .vertical-post-header .excerpt-and-authors-wrapper {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .vertical-post-header .post-hero-bottom-border {
        display: none;
    }

    .vertical-post-header .top-vertical-border {
        display: none;
    }
    
    .vertical-post-header .post-hero-text-content {
        padding-bottom: 0px;
    }
    
    .vertical-post-header .post-authors {
        margin-top: 25px;
    }
    
    .no-image-container .post-authors {
        margin-top: 25px;
    }

    .no-image-container .excerpt-and-authors-wrapper {
        flex-direction: column;
        align-items: flex-start;
    }

    .post-upgrade-cta {
        padding: 72px 52px;
    }

    .post-upgrade-cta h2 {
        font-size: 48px;
    }
    
    .post-upgrade-cta-paragraph {
        margin-top: 22px;
        margin-bottom: 32px;
    }
    
    .under-button-wrapper {
        margin-top: 8px;
    }

    .share-button:hover {
        background-color: unset !important;
    }
    
    .share-button:hover path {
        fill: var(--text-color) !important;
    }

    .clipboard-alert {
        bottom: -36px;
    }

    .post-share-icons {
        margin-bottom: 46px !important;
    }

    .section-header-comments h3 {
        line-height: 120%;
    }
}

/* Styles for mobile */
@media (max-width: 479px) { 
    .hero {
        padding-top: 34px;
    }

    .post-content {
        padding-top: 30px;;
    }

    .post-hero-text-content {
        padding-top: 52px;
    }

    .post-heading {
        font-size: calc(10vw * var(--scale));
        line-height: 120%;
        margin-bottom: 14px;
    }

    .post-tag {
        font-size: 18px;
        margin-bottom: 14px;
    }
    
    .post-excerpt-wrapper {
        max-width: 620px;
    }

    .post-main-image-wrapper {
        margin-top: 30px;
    }

    .no-image-line {
        margin-top: 52px;
        margin-bottom: 22px;
    }

    .vertical-post-header .post-main-image-wrapper {
        margin-top: 30px;
    }

    .post-upgrade-cta {
        padding: 64px 26px;
    }

    .post-upgrade-cta h2 {
        font-size: 32px;
    }
    
    .post-upgrade-cta-paragraph {
        margin-top: 16px;
        margin-bottom: 26px;
    }
    
    .under-button-wrapper {
        margin-top: 7px;
    }

    .under-button-wrapper small {
        font-size: 12px;
    }

    .post-share-icons {
        column-gap: 10px;
    }

    .clipboard-alert small {
        font-size: 12px;
    }

    .clipboard-alert {
        bottom: -30px;
    }

    .post-share-icons {
        margin-bottom: 32px !important;
    }

    .reading-progress-bar {
        height: 6px;
    }
}