/* =========================================================
   Blog Details Page Spacing & Layout
   ========================================================= */

.blog-details {
    padding: 40px 0 60px 0;
}
.blog-details.has-banner {
    padding-top: 0;
}

.details-main-blog {
    background: var(--z-gray-300, #f8f9fa);
    padding: 45px 75px 60px 75px;
    border-radius: 4px;
    margin-top: 0;
}

/* Main Blog Title */
.details-main-blog h1,
.details-main-blog .blog-main-title {
    font-family: var(--lora-font-family, Georgia, serif);
    font-weight: 500;
    font-size: 38px;
    line-height: 1.35;
    color: var(--z-black, #111111);
    margin-top: 0;
    margin-bottom: 35px;
    padding-bottom: 0;
}

/* Fallback for h4 if used */
.details-main-blog h4 {
    font-family: var(--avenir-font-family, sans-serif);
    font-weight: 350;
    font-size: 34px;
    line-height: 1.4;
    color: var(--z-black, #111111);
    margin-top: 0;
    margin-bottom: 30px;
    padding-bottom: 0;
}
/* Sub-details container */
.details-main-blog .sub-details {
    width: 100%;
}
/* Featured / Description Image */
.description-img {
    text-align: center;
    margin-bottom: 28px;
    clear: both;
}
.description-img img,
.blog-detail-image {
    width: 100%;
    max-width: 100% !important;
    height: auto;
    display: block;
    margin: 0 auto;
    border-radius: 6px;
}
/* Published Date */
.blog-published-date {
    font-family: var(--avenir-font-family, sans-serif);
    font-size: 15px;
    font-weight: 400;
    color: #6c757d;
    margin-top: 0;
    margin-bottom: 24px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    line-height: 1.4;
    letter-spacing: 0.2px;
}

/* Blog Content (.details) */
.details-main-blog .details {
    padding-bottom: 25px;
    color: var(--z-black, #222222);
}

/* Headings inside content */
.details h1,
.details-main-blog .details h1,
.details h2,
.details-main-blog .details h2 {
    font-family: var(--avenir-font-family, sans-serif);
    font-weight: 600;
    font-size: 28px;
    line-height: 1.4;
    color: var(--z-black, #1a1a1a);
    margin-top: 36px;
    margin-bottom: 18px;
}
.details h1:first-child,
.details-main-blog .details h1:first-child,
.details h2:first-child,
.details-main-blog .details h2:first-child {
    margin-top: 0;
}

.details h3,
.details-main-blog .details h3 {
    font-family: var(--avenir-font-family, sans-serif);
    font-weight: 600;
    font-size: 23px;
    line-height: 1.4;
    color: var(--z-black, #1a1a1a);
    margin-top: 32px;
    margin-bottom: 16px;
}
.details h3:first-child,
.details-main-blog .details h3:first-child {
    margin-top: 0;
}

.details h4,
.details-main-blog .details h4 {
    font-family: var(--avenir-font-family, sans-serif);
    font-weight: 600;
    font-size: 20px;
    line-height: 1.45;
    color: var(--z-black, #1a1a1a);
    margin-top: 26px;
    margin-bottom: 14px;
}

.details h5,
.details-main-blog .details h5,
.details h6,
.details-main-blog .details h6 {
    font-family: var(--avenir-font-family, sans-serif);
    font-weight: 600;
    font-size: 17px;
    line-height: 1.45;
    color: var(--z-black, #1a1a1a);
    margin-top: 22px;
    margin-bottom: 12px;
}

/* Paragraphs in content */
.details p,
.details-main-blog .details p {
    font-family: var(--avenir-font-family, sans-serif);
    font-weight: 350;
    font-size: 18px;
    line-height: 1.75;
    color: var(--z-black, #222222);
    margin-top: 0;
    margin-bottom: 18px;
    padding-bottom: 0;
}
.details p:last-child,
.details-main-blog .details p:last-child {
    margin-bottom: 0;
}

/* Inline images in headings and paragraphs */
.details h1 img,
.details h2 img,
.details h3 img,
.details h4 img,
.details h5 img,
.details h6 img,
.details p img {
    vertical-align: middle;
    margin-right: 10px;
    margin-bottom: 4px;
    width: auto;
    object-fit: contain;
    display: inline-block;
}

/* Strong tags in content */
.details p strong,
.details-main-blog .details p strong {
    font-weight: 600;
    color: var(--z-black, #111111);
}

/* Sub-details fallback paragraph styles */
.details-main-blog .sub-details p {
    margin-bottom: 18px;
}
.details-main-blog .sub-details p:last-child {
    margin-bottom: 0;
}

/* Banner helper classes */
.desktop-blog-img {
    display: block;
}
.mobile-blog-img {
    display: none;
}
.desktop-description-img {
    display: block;
}
.mobile-description-img {
    display: none;
}

/* Divider block */
.blog-divider {
    margin: 50px 0 40px 0;
    clear: both;
}
.blog-divider .divider-block {
    margin-bottom: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* =========================================================
   Blog Content Typography & Media Formatting
   ========================================================= */

/* Blog Content Lists */
.details ul,
.details-main-blog .details ul {
    list-style-type: disc !important;
    padding-left: 2rem !important;
    margin-top: 14px !important;
    margin-bottom: 22px !important;
}

.details ul li,
.details-main-blog .details ul li {
    list-style-type: disc !important;
    display: list-item !important;
    font-family: var(--avenir-font-family, sans-serif);
    font-weight: 350;
    font-size: 17px !important;
    line-height: 1.7 !important;
    color: var(--z-black, #222222);
    margin-bottom: 8px !important;
}

.details ol,
.details-main-blog .details ol {
    list-style-type: decimal !important;
    padding-left: 2rem !important;
    margin-top: 14px !important;
    margin-bottom: 22px !important;
}

.details ol li,
.details-main-blog .details ol li {
    list-style-type: decimal !important;
    display: list-item !important;
    font-family: var(--avenir-font-family, sans-serif);
    font-weight: 350;
    font-size: 17px !important;
    line-height: 1.7 !important;
    color: var(--z-black, #222222);
    margin-bottom: 8px !important;
}

/* Blog Content Blockquote */
.details blockquote,
.details-main-blog .details blockquote {
    border-left: 4px solid #015E63 !important;
    background: #f8f9fa !important;
    padding: 18px 24px !important;
    margin: 26px 0 !important;
    font-style: italic !important;
    color: #444444 !important;
    border-radius: 0 6px 6px 0;
}

.details blockquote p,
.details-main-blog .details blockquote p {
    font-style: italic !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    font-size: 17px !important;
    line-height: 1.65 !important;
}

/* Blog Content Responsive Tables */
.details figure.table,
.details-main-blog .details figure.table,
.details .table-responsive {
    width: 100% !important;
    margin-top: 24px !important;
    margin-bottom: 28px !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    display: block;
}

.details table,
.details-main-blog .details table {
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    margin-bottom: 0 !important;
    background-color: #ffffff !important;
    border: 1px solid #dee2e6 !important;
    border-radius: 4px;
}

.details table th,
.details table td,
.details-main-blog .details table th,
.details-main-blog .details table td {
    padding: 12px 16px !important;
    vertical-align: middle !important;
    border: 1px solid #dee2e6 !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    color: #333333 !important;
}

.details table th,
.details-main-blog .details table th {
    background-color: #015E63 !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    text-align: left !important;
}

.details table tbody tr:nth-of-type(even),
.details-main-blog .details table tbody tr:nth-of-type(even) {
    background-color: #f9fbfb !important;
}

.details table tbody tr:hover,
.details-main-blog .details table tbody tr:hover {
    background-color: #f0f7f7 !important;
}

/* Media / Video Embeds */
.details figure.media,
.details-main-blog .details figure.media,
.details .ratio {
    margin: 26px 0 !important;
    max-width: 100% !important;
    position: relative;
    clear: both;
}

.details figure.media iframe,
.details-main-blog .details figure.media iframe,
.details iframe {
    max-width: 100% !important;
    border-radius: 6px;
}

/* Images in Content */
.details figure.image,
.details-main-blog .details figure.image {
    margin: 26px auto !important;
    max-width: 350px !important;
    text-align: center;
}

.details figure.image img,
.details-main-blog .details figure.image img,
.details img,
.details-main-blog .details img {
    max-width: 350px !important;
    height: auto !important;
    border-radius: 6px;
}

/* =========================================================
   Responsive Media Queries
   ========================================================= */

@media (max-width: 1440px) {
    .has-banner .details-main-blog {
        margin-top: -130px;
    }
    .no-banner .details-main-blog {
        margin-top: 0;
    }
    .details-main-blog {
        padding: 35px 55px 50px 55px;
    }
    .details-main-blog h1,
    .details-main-blog .blog-main-title {
        font-size: 34px;
        margin-bottom: 28px;
    }
    .description-img {
        margin-bottom: 24px;
    }
}

@media (max-width: 1280px) {
    .has-banner .details-main-blog {
        margin-top: -116px;
    }
    .no-banner .details-main-blog {
        margin-top: 0;
    }
    .details-main-blog {
        padding: 30px 45px 45px 45px;
    }
    .details-main-blog h1,
    .details-main-blog .blog-main-title {
        font-size: 31px;
        margin-bottom: 25px;
    }
    .description-img {
        margin-bottom: 22px;
    }
}

@media (max-width: 1024px) {
    .has-banner .details-main-blog {
        margin-top: -92.44px;
    }
    .no-banner .details-main-blog {
        margin-top: 0;
    }
    .details-main-blog {
        padding: 26px 32px 38px 32px;
    }
    .details-main-blog h1,
    .details-main-blog .blog-main-title {
        font-size: 27px;
        margin-bottom: 22px;
    }
    .description-img {
        margin-bottom: 20px;
    }
}

@media (max-width: 767px) {
    .blog-details {
        padding: 24px 0 40px 0;
    }
    .details-main-blog {
        padding: 20px 16px 28px 16px;
        margin-top: 0;
    }
    .has-banner .details-main-blog {
        margin-top: 0;
    }
    .details-main-blog h1,
    .details-main-blog .blog-main-title {
        font-size: 22px;
        line-height: 1.35;
        margin-bottom: 18px;
    }
    .description-img {
        margin-bottom: 18px;
    }
    .blog-published-date {
        font-size: 13px;
        margin-bottom: 16px;
    }
    .details h1,
    .details-main-blog .details h1,
    .details h2,
    .details-main-blog .details h2 {
        font-size: 20px;
        margin-top: 24px;
        margin-bottom: 12px;
    }
    .details h3,
    .details-main-blog .details h3 {
        font-size: 18px;
        margin-top: 20px;
        margin-bottom: 10px;
    }
    .details p,
    .details-main-blog .details p {
        font-size: 15px;
        line-height: 1.65;
        margin-bottom: 14px;
    }
    .details ul,
    .details-main-blog .details ul,
    .details ol,
    .details-main-blog .details ol {
        margin-top: 10px !important;
        margin-bottom: 16px !important;
        padding-left: 1.5rem !important;
    }
    .details ul li,
    .details-main-blog .details ul li,
    .details ol li,
    .details-main-blog .details ol li {
        font-size: 14px !important;
        margin-bottom: 6px !important;
    }
    .details blockquote,
    .details-main-blog .details blockquote {
        padding: 12px 16px !important;
        margin: 16px 0 !important;
    }
    .details blockquote p,
    .details-main-blog .details blockquote p {
        font-size: 14px !important;
    }
    .details table th,
    .details table td,
    .details-main-blog .details table th,
    .details-main-blog .details table td {
        padding: 8px 10px !important;
        font-size: 13px !important;
    }
    .blog-divider {
        margin: 30px 0 25px 0;
    }
    .desktop-description-img {
        display: none;
    }
    .mobile-description-img {
        display: block;
    }
}

@media (max-width: 576px) {
    .desktop-blog-img {
        display: none;
    }
    .mobile-blog-img {
        display: block;
    }
}
