/* Unified shadow settings; separate selectors preserve each Astra layout. */
body.racs-content,
body.racs-list {
    --racs-gap: 36px;
    --racs-banner-padding: 24px;
    --racs-shadow: 0 12px 30px -6px rgba(17, 24, 39, .20), 0 3px 9px rgba(17, 24, 39, .08);
}

/* Space below the blog title banner on every screen size. Padding cannot collapse. */
body.racs-list #primary {
    margin-top: 0 !important;
    padding-top: var(--racs-gap) !important;
}
/* One title strip system for the blog index, posts and pages. */
:is(body.racs-list, body.racs-content) :is(.ast-archive-entry-banner, .ast-single-entry-banner) {
    box-sizing: border-box;
    height: auto !important;
    min-height: 0 !important;
    padding-top: var(--racs-banner-padding) !important;
    padding-bottom: var(--racs-banner-padding) !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
:is(body.racs-list, body.racs-content) :is(.ast-archive-entry-banner, .ast-single-entry-banner) > .ast-container,
:is(body.racs-list, body.racs-content) :is(.ast-archive-entry-banner, .ast-single-entry-banner) :is(.ast-archive-description, .entry-header) {
    height: auto !important;
    min-height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
:is(body.racs-list, body.racs-content) :is(.ast-archive-entry-banner, .ast-single-entry-banner) :is(.ast-archive-title, .entry-title) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    overflow-wrap: anywhere;
}
:is(body.racs-list, body.racs-content).racs-banner-boxed :is(.ast-archive-entry-banner, .ast-single-entry-banner) {
    max-width: min(var(--racs-banner-width), calc(100% - 32px)) !important;
}
@media (min-width: 545px) {
    :is(body.racs-list, body.racs-content).racs-banner-boxed :is(.ast-archive-entry-banner, .ast-single-entry-banner) {
        max-width: min(var(--racs-banner-width), calc(100% - 64px)) !important;
    }
}
/* Alternative Astra title layout inside the main content container. */
body.racs-list #primary .ast-archive-description {
    height: auto !important;
    min-height: 0 !important;
    padding-top: var(--racs-banner-padding) !important;
    padding-bottom: var(--racs-banner-padding) !important;
    margin-bottom: var(--racs-gap) !important;
}
body.racs-soft {
    --racs-shadow: 0 8px 22px -6px rgba(17, 24, 39, .14), 0 2px 6px rgba(17, 24, 39, .05);
}
body.racs-strong {
    --racs-shadow: 0 15px 36px -6px rgba(17, 24, 39, .28), 0 4px 12px rgba(17, 24, 39, .11);
}
/* Separate the content from Astra's external title banner. */
body.racs-content #primary {
    margin-top: var(--racs-gap) !important;
    padding-top: 0 !important;
    margin-bottom: 40px !important;
}
body.racs-content #primary #main > article.ast-article-single {
    background: #fff !important;
    border-radius: 12px !important;
    box-shadow: var(--racs-shadow) !important;
    border: 0 !important;
    display: flow-root;
}
/* Featured images rendered outside the article get their own card. */
body.racs-content #primary #main > .ast-single-post-featured-section {
    background: #fff !important;
    box-shadow: var(--racs-shadow) !important;
    border-radius: 12px !important;
    margin-top: 0 !important;
    margin-bottom: var(--racs-gap) !important;
}
body.racs-content #primary #main > .ast-single-post-featured-section img {
    border-radius: 12px;
}
/* Disable the overlapping article offset in Astra's behind-image layout. */
body.racs-content #primary #main > .ast-single-post-featured-section + article.ast-article-single {
    margin-top: 0 !important;
}
/* Internal title layouts receive the same breathing room. */
body.racs-content #primary #main > article.ast-article-single > .entry-header:not(.ast-no-title.ast-no-meta):not(:empty) {
    margin-bottom: var(--racs-gap) !important;
}
body.racs-content #primary #main > article.ast-article-single > .post-thumb,
body.racs-content #primary #main > article.ast-article-single > .ast-single-post-featured-section {
    margin-bottom: var(--racs-gap) !important;
}
/* Keep a usable gutter and padding when the mobile theme removes them. */
@media (max-width: 544px) {
    body.racs-content .site-content > .ast-container {
        padding-left: max(16px, env(safe-area-inset-left)) !important;
        padding-right: max(16px, env(safe-area-inset-right)) !important;
    }
    body.racs-content #primary #main > article.ast-article-single {
        padding: 20px !important;
    }
}

/* Older Astra layouts use the article itself as their card. */
body.racs-list #primary article.ast-article-post {
    background: #fff !important;
    border-radius: 12px !important;
    box-shadow: var(--racs-shadow) !important;
    border: 0 !important;
    margin-bottom: 36px !important;
}
/* Modern grid layouts: keep column gutters outside the shadowed card. */
body.racs-list #primary article.ast-article-post:has(> .ast-article-inner) {
    background: transparent !important;
    box-shadow: none !important;
}
body.racs-list #primary article.ast-article-post > .ast-article-inner {
    background: #fff !important;
    border-radius: 12px !important;
    box-shadow: var(--racs-shadow) !important;
    border: 0 !important;
}
@media (max-width: 544px) {
    body.racs-list #primary article.ast-article-post {
        margin-bottom: 30px !important;
    }
}

/* Desktop/tablet: reserve real space around cards even in stretched layouts. */
@media (min-width: 545px) {
    body.racs-content .site-content > .ast-container,
    body.racs-list .site-content > .ast-container {
        box-sizing: border-box;
        width: 100% !important;
        max-width: min(1200px, calc(100% - 64px)) !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    body.racs-content.ast-no-sidebar #primary,
    body.racs-list.ast-no-sidebar #primary {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    body.racs-content #primary #main > article.ast-article-single {
        box-sizing: border-box;
        padding: clamp(28px, 4vw, 48px) !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    body.racs-content #primary #main > .ast-single-post-featured-section {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    body.racs-content #primary #main > article.ast-article-single > .entry-content > .alignfull {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}
