/***************************************************************
    TORONTODIGITS SINGLE BLOG POST - HERO
***************************************************************/

/*==================================================
WRAPPER
==================================================*/

.td-single-post-hero-wrapper{
    position:relative;
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-top:-148px;
    overflow:hidden;
    background:var(--td-bg);
}

.ast-separate-container .ast-article-single:not(.ast-related-post){
    background:var(--td-bg);
}

/*==================================================
BACKGROUND
==================================================*/

.td-grid-bg{
    position:absolute;
    inset:0;
    z-index:1;
    overflow:hidden;
    pointer-events:none;
}

.td-grid-bg img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center top;
    background-repeat:no-repeat;
}

.td-grid-light{
    display:block;
}

.td-grid-dark{
    display:none;
}

html[data-theme="dark"] .td-grid-light{
    display:none;
}

html[data-theme="dark"] .td-grid-dark{
    display:block;
}

/*==================================================
RED GLOW
==================================================*/

.td-single-post-gradient{
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;

    background:
        radial-gradient(
            circle at 92% 8%,
            rgba(255,0,0,.10) 0%,
            rgba(255,0,0,.05) 35%,
            transparent 72%
        );
}

/*==================================================
DESKTOP HERO
==================================================*/

.td-single-post-header{

    position:relative;
    z-index:5;
    width:min(1200px,calc(100% - 40px));
    margin:0 auto;
    padding-top:166px;
    padding-bottom:62px;

}

.td-single-post-hero-grid{

    display:grid;
    grid-template-columns:minmax(0,1fr) 456px;
    align-items:center;
    gap:70px;

}

/*==================================================
LEFT
==================================================*/

.td-single-post-category{

    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:20px;
    color:var(--td-text);
    text-decoration:none;
    font-family:"JetBrains Mono",monospace;
    font-size:12px;
    line-height:16px;

}

.td-single-post-category:hover{
    color:var(--td-accent);
}

.td-single-post-category-dot{

    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--td-accent);

}

.td-single-post-title{

    margin:0;
    max-width:600px;
    color:var(--td-text);
    font-family:"Tomorrow",sans-serif;
    font-size:40px;
    font-weight:700;
    line-height:1.2;
    text-wrap:balance;

}

.td-single-post-meta{

    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:16px;
    margin-top:30px;
    color:var(--td-muted);
    font-family:"Nunito",sans-serif;
    font-size:16px;

}

.td-single-post-meta-author{

    display:flex;
    align-items:center;
    gap:10px;
    color:var(--td-text);
    text-decoration:none;

}

.td-single-post-meta-author:hover{
    color:var(--td-accent);
}

.td-single-post-meta-avatar{
    width:40px;
    height:40px;
    border-radius:6px;
    object-fit:cover;
}

.td-single-post-meta-divider{
    width:4px;
    height:4px;
    border-radius:50%;
    background:var(--td-border);
}

/*==================================================
RIGHT IMAGE
==================================================*/

.td-single-post-hero-image{
    width:100%;
}

.td-single-post-featured-image{
    display:block;
    width:100%;
    aspect-ratio:16/10;
    object-fit:cover;
    border-radius:28px;
    border:1px solid var(--td-border);
    background:var(--td-card);
}

/*==================================================
TABLET
1024px → 768px
==================================================*/

@media (max-width:1024px){

    .td-single-post-hero-wrapper{

        margin-top:-128px;

    }

    .td-single-post-header{
        width:min(984px,calc(100% - 40px));
        padding-top:112px;
        padding-bottom:40px;
    }

    .td-single-post-hero-grid{
        grid-template-columns:minmax(0,1fr) 389px;
        gap:36px;
        align-items:center;
    }

    .td-single-post-category{
        margin-bottom:18px;
    }

    .td-single-post-title{
        max-width:500px;
        font-size:32px;
        line-height:38px;
    }

    .td-single-post-meta{
        margin-top:24px;
        gap:18px;
        font-size:15px;
    }

    .td-single-post-meta-avatar{

        width:36px;
        height:36px;

    }

    .td-single-post-featured-image{

        width:100%;
        aspect-ratio:389/244;
        border-radius:24px;

    }

}

/*==================================================
SMALL TABLET
900px → 768px
==================================================*/

@media (max-width:900px){

    .td-single-post-hero-grid{

        grid-template-columns:minmax(0,1fr) 320px;
        gap:28px;

    }

    .td-single-post-title{

        font-size:28px;
        line-height:34px;

    }

}

@media (max-width:767px){

    .td-single-post-hero-grid{
        display:flex;
        flex-direction:column;
        align-items:center;
        text-align:center;
    }

    .td-single-post-hero-grid > div:first-child{
        width:100%;
        display:flex;
        flex-direction:column;
        align-items:center;
    }

    .td-single-post-category{
        display:inline-flex;
        justify-content:center;
        align-items:center;
        margin:0 auto 15px;
    }

}


/***************************************************************
    SINGLE BLOG POST CONTENT
***************************************************************/

.td-single-post-container{
    width:min(1200px,calc(100% - 48px));
    margin:0 auto;
    padding:90px 0;
}

/************************************
CONTENT WRAPPER
************************************/

.td-single-post-content{

    width:min(900px,100%);
    color:var(--td-text);
    font-family:"Nunito",sans-serif;
    font-size:16px;
    font-weight:400;
    line-height:1.8;
    overflow-wrap:anywhere;
}

.td-single-post-content>*:first-child{
    margin-top:0;
}

.td-single-post-content>*:last-child{
    margin-bottom:0;
}


/******************************************************
 SINGLE BLOG CONTENT + TABLE OF CONTENT
******************************************************/


.td-single-post-body-layout{
    display:flex;
    align-items:flex-start;
    gap:50px;
}

.td-single-post-content{
    flex:1;
    min-width:0;
    max-width:900px;
}

.td-single-post-toc{
    flex:0 0 280px;
    position:sticky;
    top:120px;
    align-self:flex-start;
}

.td-single-post-toc-inner{
    padding:24px;
    border:1px solid var(--td-border);
    border-radius:16px;
    background:var(--td-card);
}

.td-toc-list a:focus-visible{
    outline:2px solid #ff0000;
    outline-offset:3px;
    border-radius:2px;
}

.td-single-post-content{
     width:100%;
    max-width:900px;
}

.td-single-post-toc{
     align-self:start;
}

.td-single-post-toc-inner{
     position:sticky;
    top:120px;
    padding:25px;
    border:1px solid var(--td-border);
    background:var(--td-card);
}

.td-single-post-toc h3{
    margin:0 0 20px;
    color:var(--td-text);
    font-family:"Tomorrow",sans-serif;
    font-size:22px;
}

.td-toc-list ul{
    margin:0;
    padding:0;
    list-style:none;
}

.td-toc-list li{
    margin-bottom:12px;
}

.td-toc-list a{
    color:var(--td-muted);
    text-decoration:none;
    font-family:"Nunito",sans-serif;
    font-size:14px;
}

.td-toc-list a:hover{
    color:#ff0000;
}

/******************************************************
    DOWNLOAD PDF BUTTON
******************************************************/

/* .td-single-post-pdf-btn{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:10px;

    width:100%;

    min-height:35px;

    margin-top:24px;

    padding:8px 20px;

    box-sizing:border-box;

    border:1px solid var(--td-border);

    border-radius:6px;

    background:#ffffff;

    color:#000000;

    text-decoration:none;

    font-family:"Nunito",sans-serif;

    font-size:14px;

    font-weight:700;

    line-height:19px;

    letter-spacing:.2px;

    transition:
        background .25s ease,
        color .25s ease,
        border-color .25s ease,
        transform .25s ease;

}

.td-single-post-pdf-btn:hover{

    background:#ff0000;

    border-color:#ff0000;

    color:#ffffff;

}

.td-single-post-pdf-btn:focus-visible{

    outline:2px solid #ff0000;

    outline-offset:2px;

}

.td-single-post-pdf-btn:active{

    transform:translateY(1px);

}

html[data-theme="dark"] .td-single-post-pdf-btn{

    background:var(--td-card);

    color:var(--td-text);

    border-color:var(--td-border);

}

html[data-theme="dark"] .td-single-post-pdf-btn:hover{

    background:#ff0000;

    border-color:#ff0000;

    color:#ffffff;

} */

/************************************
SPACING
************************************/

.td-single-post-content p,
.td-single-post-content ul,
.td-single-post-content ol,
.td-single-post-content blockquote,
.td-single-post-content figure,
.td-single-post-content pre{

    margin:0 0 26px;
    box-shadow: none;

}

/************************************
HEADINGS
************************************/

.td-single-post-content h2,
.td-single-post-content h3,
.td-single-post-content h4,
.td-single-post-content h5,
.td-single-post-content h6{

    margin:44px 0 18px;
    color:var(--td-text) !important;
    font-family:"Tomorrow", sans-serif;
    font-weight:600;
    font-style:normal;
    line-height:1;
    letter-spacing:0.2px;

}

.td-single-post-content h2{
    font-size:34px;
}

.td-single-post-content h3{
    font-size:28px;
}

.td-single-post-content h4{
    font-size:22px;
}

.td-single-post-content h5{
    font-size:19px;
}

.td-single-post-content h6{
    font-size:17px;
}

/************************************
TEXT
************************************/

.td-single-post-content strong,
.td-single-post-content b{

    color:var(--td-text);

}

.td-single-post-content p strong,
.td-single-post-content li strong,
.td-single-post-content blockquote strong{

    font-weight:800;

}

.td-single-post-content em{

    font-style:italic;

}

.td-single-post-content h2 strong,
.td-single-post-content h3 strong,
.td-single-post-content h4 strong,
.td-single-post-content h5 strong,
.td-single-post-content h6 strong{

    font-weight:600;

}

/************************************
LINKS
************************************/

.td-single-post-content a,
.td-single-post-content a:visited{

    color:#ff0000!important;
    text-decoration:none;
    transition:.25s;

}

.td-single-post-content a:hover,
.td-single-post-content a:focus{

    color:#ff0000!important;
    text-decoration:underline;
    text-underline-offset:4px;

}

/************************************
LISTS
************************************/

.td-single-post-content ul,
.td-single-post-content ol{

    padding-left:24px;

}

.td-single-post-content li{

    margin-bottom:8px;

}

.td-single-post-content li:last-child{

    margin-bottom:0;

}

.td-single-post-content li::marker{

    color:#ff0000;

}

/************************************
IMAGES
************************************/

.td-single-post-content img{

    display:block;
    max-width:100%;
    height:auto;
    border-radius:8px;

}

.td-single-post-content figure{

    max-width:100%;

}

.td-single-post-content figcaption{

    margin-top:10px;
    color:var(--td-muted);
    text-align:center;
    font-family:"JetBrains Mono",monospace;
    font-size:11px;
    line-height:1.6;

}

/************************************
BLOCKQUOTE
************************************/

.td-single-post-content blockquote{

    padding:24px 28px;
    border-left:4px solid #ff0000;
    background:var(--td-card);
    color:var(--td-text);

}

.td-single-post-content blockquote p:last-child{

    margin-bottom:0;

}

/************************************
HORIZONTAL RULE
************************************/

.td-single-post-content hr{

    margin:48px 0;
    border:0;
    border-top:1px solid var(--td-border);

}

/************************************
CODE
************************************/

.td-single-post-content code,
.td-single-post-content pre,
.td-single-post-content kbd{

    font-family:"JetBrains Mono",monospace;

}

.td-single-post-content :not(pre)>code{

    padding:3px 6px;
    border-radius:4px;
    background:var(--td-card);
    color:#ff0000;

}

.td-single-post-content pre{

    max-width:100%;
    overflow-x:auto;
    padding:20px;
    border-radius:8px;
    background:#111;
    color:#fff;
    font-size:13px;
    line-height:1.7;

}

/************************************
GUTENBERG ALIGNMENTS
************************************/

.td-single-post-content .alignwide{

    width:min(1080px,calc(100vw - 48px));
    max-width:none;
    margin-left:50%;
    transform:translateX(-50%);

}

.td-single-post-content .alignfull{

    width:100vw;
    max-width:none;
    margin-left:50%;
    transform:translateX(-50%);

}

/************************************
PAGE LINKS
************************************/

.td-single-post-pages{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin-top:36px;
    color:var(--td-text);
    font-family:"JetBrains Mono",monospace;
    font-size:12px;
}

.td-single-post-pages a{

    color:#ff0000!important;

}

.td-single-post-content>*:last-child{
     box-shadow: none;
}

/***************************************************************
GUTENBERG ACCORDION
***************************************************************/

/* Accordion Item */

.td-single-post-content .wp-block-accordion-item{

    padding:20px 20px 0 20px;
    border-radius:16px;
    background:var(--td-card);
    overflow:hidden;

}

.td-single-post-content :where(.is-layout-flow) > :last-child{
    margin-block-end:20px;
}

/* Accordion Toggle */

.td-single-post-content .wp-block-accordion-heading__toggle{

    background:transparent !important;
    color:var(--td-text) !important;
    outline:none !important;
    box-shadow:none !important;
    border:0;
    -webkit-tap-highlight-color:transparent;

}

.td-single-post-content .wp-block-accordion-heading__toggle:hover,
.td-single-post-content .wp-block-accordion-heading__toggle:focus,
.td-single-post-content .wp-block-accordion-heading__toggle:focus-visible,
.td-single-post-content .wp-block-accordion-heading__toggle:active{

    background:transparent !important;
    color:var(--td-text) !important;
    outline:none !important;
    box-shadow:none !important;

}

/* Accordion Heading */

.td-single-post-content .wp-block-accordion-heading{

    color:var(--td-text);
    font-family:"Tomorrow",sans-serif;
    font-size:18px;
    font-weight:600;
    line-height:22px;
    letter-spacing:.2px;

}

/* Accordion Content */

.td-single-post-content .wp-block-accordion-panel{

    color:var(--td-text);
    font-family:"Nunito",sans-serif;
    font-size:16px;
    line-height:1.8;

}



/***************************************************************
TABLET
***************************************************************/

@media (max-width:1024px){

    .td-single-post-container{

        width:min(984px,calc(100% - 40px));
        padding:70px 0 80px;

    }

    .td-single-post-content{

        max-width:760px;
        font-size:16px;

    }

    .td-single-post-content h2{

        font-size:34px;

    }

    .td-single-post-content h3{

        font-size:28px;

    }

}

/***************************************************************
MOBILE
***************************************************************/

@media (max-width:767px){

    .td-single-post-container{

        width:calc(100% - 32px);
        padding:50px 0 65px;

    }

    .td-single-post-content{

        font-size:15px;
        line-height:1.75;

    }
    .td-single-post-body-layout{
        display: flex;
    align-items: flex-start;
    gap: 50px;
    flex-direction: column-reverse;
    }

    .td-single-post-toc{
        flex:auto;
        position:static;
        top:auto;

        width:100%;
        margin-bottom:30px;

    }

    .td-single-post-toc-inner{

        position:static;

        padding:20px;
        border:1px solid var(--td-border);
        border-radius:16px;
        background:var(--td-card);

    }

    

    .td-single-post-content h2,
    .td-single-post-content h3,
    .td-single-post-content h4,
    .td-single-post-content h5,
    .td-single-post-content h6{

        margin-top:36px;

    }
     .td-single-post-content h2{

        font-size:18px;
    
    }

    .td-single-post-content h3{

        font-size:18px;

    }

    .td-single-post-content p,
    .td-single-post-content ul,
    .td-single-post-content ol,
    .td-single-post-content blockquote,
    .td-single-post-content figure,
    .td-single-post-content pre{

        margin-bottom:22px;

    }

    .td-single-post-content .alignwide,
    .td-single-post-content .alignfull{

        width:100%;
        max-width:100%;
        margin-left:0;
        transform:none;

    }

}

/***************************************************************
    AUTHOR BOX
***************************************************************/

.td-single-author-box{

    margin-top:65px;
    display:grid;
    grid-template-columns:190px minmax(0,1fr);
    gap:30px;
    align-items:center;
    padding:26px;
    box-sizing:border-box;
    background:rgba(255,0,0,.065);

}

html[data-theme="dark"] .td-single-author-box{

    background:rgba(255,255,255,.025);

}

.td-single-author-image{

    width:190px;

}

.td-single-author-image a{

    display:block;

}

.td-single-author-avatar{

    display:block;
    width:190px;
    height:190px;
    object-fit:cover;

}

.td-single-author-label{

    display:block;
    margin-bottom:6px;
    color:var(--td-text);
    font-family:"Tomorrow",sans-serif;
    font-size:27px;
    font-weight:700;
    line-height:1.25;

}

.td-single-author-name{

    margin:0 0 12px;
    color:var(--td-text)!important;
    font-family:"Tomorrow",sans-serif;
    font-size:17px;
    font-weight:600;

}

.td-single-author-name a{

    color:inherit;
    text-decoration:none;

}

.td-single-author-name a:hover{

    color:#ff0000;

}

.td-single-author-description{

    color:var(--td-muted);
    font-family:"Nunito",sans-serif;
    font-size:14px;
    line-height:1.7;

}

.td-single-author-description p{

    margin:0 0 12px;

}

.td-single-author-description p:last-child{

    margin-bottom:0;

}

/***************************************************************
    BLOG CONTACT FORM
***************************************************************/

.td-single-blog-form-section {
    width: min(760px, 100%);
    margin-top: 55px;
}

/*==============================================================
    FORM MESSAGES
==============================================================*/

.td-blog-form-message {
    margin-bottom: 24px;
    padding: 13px 16px;
    border: 1px solid var(--td-border);
    font-family: "Nunito", sans-serif;
    font-size: 14px;
    line-height: 1.5;
}

.td-blog-form-success {
    background: rgba(0, 150, 70, 0.08);
    border-color: rgba(0, 150, 70, 0.4);
}

.td-blog-form-error {
    background: rgba(255, 0, 0, 0.06);
    border-color: rgba(255, 0, 0, 0.4);
}

/*==============================================================
    FORM LAYOUT
==============================================================*/

.td-single-blog-form {
    width: 100%;
}

.td-blog-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 22px;
    row-gap: 20px;
}

.td-blog-form-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.td-blog-form-message-field {
    margin-top: 20px;
}

/*==============================================================
    LABELS
==============================================================*/

.td-blog-form-field label {
    color: var(--td-text);
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    font-weight: 400;
    line-height: 15px;
}

/*==============================================================
    INPUTS & TEXTAREA
==============================================================*/

.td-blog-form-field input,
.td-blog-form-field textarea {
    width: 100%;
    margin: 0;
    padding: 10px 12px;
    box-sizing: border-box;
    border: 1px solid rgba(0, 0, 0, 0.38);
    border-radius: 0;
    outline: none;
    box-shadow: none;
    background: transparent;
    color: var(--td-text);
    font-family: "Nunito", sans-serif;
    font-size: 14px;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

html[data-theme="dark"] .td-blog-form-field input,
html[data-theme="dark"] .td-blog-form-field textarea {
    border-color: rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.01);
}

.td-blog-form-field input {
    min-height: 44px;
}

.td-blog-form-field textarea {
    min-height: 170px;
    resize: vertical;
}

.td-blog-form-field input:focus,
.td-blog-form-field textarea:focus {
    border-color: #ff0000;
    box-shadow: 0 0 0 1px #ff0000;
    background: transparent;
}

/*==============================================================
    SUBMIT BUTTON
==============================================================*/

.td-blog-form-submit {
    margin-top: 24px;
    padding: 10px 25px;
    cursor: pointer;
    font-size: 11px;
}

/*==============================================================
    HONEYPOT FIELD
==============================================================*/

.td-blog-form-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

/***************************************************************
    SUCCESS / ERROR
***************************************************************/

.td-blog-form-message{

    margin-bottom:24px;
    padding:14px 16px;
    border:1px solid var(--td-border);
    font-size:14px;

}

/*==============================================================
    BLOG FORM SUCCESS MESSAGE
==============================================================*/

.td-blog-form-success{
    background:#ff000012;
    border-color:#ff000012;
    color:var(--td-text);
}

/*==============================================================
    BLOG FORM SUCCESS — DARK MODE
==============================================================*/

html[data-theme="dark"] .td-blog-form-success{
    border-color:rgba(255,255,255,.233);
    background:rgb(255 255 255 / 3%);
    color:var(--td-text);
}

/***************************************************************
    TABLET
***************************************************************/

@media (max-width:1024px){

    .td-single-author-box{

        grid-template-columns:220px minmax(0,1fr);
        gap:28px;
        padding:22px;

    }

    .td-single-author-image{

        width:220px;

    }

    .td-single-author-avatar{

        width:220px;
        height:220px;

    }

    .td-single-author-label{

        font-size:24px;

    }

    .td-single-blog-form-section{

        max-width:650px;

    }

}

/***************************************************************
    MOBILE
***************************************************************/

@media (max-width:767px){

    .td-single-author-box{

        grid-template-columns:1fr;
        gap:20px;
        padding:20px;

    }

    .td-single-author-image{

        width:110px;

    }

    .td-single-author-avatar{

        width:110px;
        height:110px;

    }

    .td-single-author-label{

        font-size:22px;

    }

    .td-single-author-description{

        font-size:13px;

    }

    .td-single-blog-form-section{

        margin-top:45px;

    }

    .td-blog-form-grid{

        grid-template-columns:1fr;
        gap:18px;

    }

    .td-blog-form-field textarea{

        min-height:150px;

    }

}


/* ==================================================
   RELATED POSTS - BORDER FIX
================================================== */

.single-post .td-blog-card {
	border-bottom: 1px solid rgba(255, 255, 255, 0.20);
}

html[data-theme="light"] .single-post .td-blog-card {
	border-bottom-color: rgba(0, 0, 0, 0.34);
}
html[data-theme="light"] .single-post .td-blog-card:hover {
	border-color: rgba(255, 0, 0, .70);
}

/* ==================================================
   RELATED POSTS - TOP SPACING
================================================== */

.single-post .td-blog-grid {
	margin-top: 50px;
}

/* Tablet */
@media (max-width: 1024px) {
	.single-post .td-blog-grid {
		margin-top: 40px;
	}
}

/* Mobile */
@media (max-width: 767px) {
	.single-post .td-blog-grid {
		margin-top: 30px;
	}
}