/**
 * @file
 * Gutenberg Prose - Container constraints for Gutenberg content.
 *
 * Provides responsive container behavior for core Gutenberg blocks
 * (Paragraph, Heading, List, etc.) without altering visual typography.
 */

/* ==========================================================================
   CONTAINER
   ========================================================================== */

/**
 * .gutenberg-prose is the context wrapper.
 * We apply container constraints ONLY to specific prose elements (p, h tags, lists).
 * This allows custom blocks (divs, heroes) to remain full-width by default.
 */

.gutenberg-prose {
    width: 100%;
    /* No max-width on parent - allows full-width children */
}

/* Ensure all direct children use border-box to prevent padding from causing overflow */
.gutenberg-prose>* {
    box-sizing: border-box;
}

/* ==========================================================================
   TYPOGRAPHY - HEADINGS (Match Side-By-Side Block)
   ========================================================================== */

.gutenberg-prose>h1.wp-block-heading,
.wp-block-group__inner-container>h1.wp-block-heading {
    font-family: 'Gelasio', serif;
    font-weight: 400;
    color: #840029;
    line-height: 0.99;
    font-size: 78px;
    margin-top: var(--space-6);
    margin-bottom: var(--space-4);
}

.gutenberg-prose>h2.wp-block-heading,
.wp-block-group__inner-container>h2.wp-block-heading  {
    font-family: 'Gelasio', serif;
    font-weight: 700;
    color: #82142C;
    line-height: 56px;
    font-size: 48px;
    margin-top: var(--space-6);
    margin-bottom: var(--space-4);
}

.gutenberg-prose>h3.wp-block-heading,
.wp-block-group__inner-container>h3.wp-block-heading  {
    font-family: 'Gotham', sans-serif;
    font-weight: 400;
    color: #840029;
    line-height: 1.4;
    font-size: 30px;
    margin-top: var(--space-6);
    margin-bottom: var(--space-4);
}

.gutenberg-prose>h4.wp-block-heading,
.wp-block-group__inner-container>h4.wp-block-heading  {
    font-family: 'Gelasio', serif;
    font-weight: 700;
    color: #82142C;
    line-height: 1.39;
    font-size: 22px;
    margin-top: var(--space-6);
    margin-bottom: var(--space-4);
}

.gutenberg-prose>h5.wp-block-heading,
.wp-block-group__inner-container>h5.wp-block-heading  {
    font-family: 'Gotham', sans-serif;
    font-weight: 700;
    color: #500617;
    line-height: 1.2;
    font-size: 22px;
    margin-top: var(--space-6);
    margin-bottom: var(--space-4);
}

.gutenberg-prose>h6.wp-block-heading,
.wp-block-group__inner-container>h6.wp-block-heading  {
    font-family: 'Gotham', sans-serif;
    font-weight: 700;
    color: #82142C;
    line-height: 1.18;
    font-size: 16px;
    margin-top: var(--space-6);
    margin-bottom: var(--space-4);
}

/* Mobile responsive adjustments matching Side-By-Side */
@media (max-width: 1024px) {

    .gutenberg-prose>h1.wp-block-heading {
        font-size: 56px;
    }

    .gutenberg-prose>h2.wp-block-heading {
        font-size: 40px;
        line-height: 48px;
    }

    .gutenberg-prose>h3.wp-block-heading {
        font-size: 26px;
    }

    .gutenberg-prose>p {
        font-size: 18px;
    }
}

@media (max-width: 768px) {

    .gutenberg-prose>h1.wp-block-heading {
        font-size: 42px;
    }

    .gutenberg-prose>h2.wp-block-heading {
        font-size: 36px;
        line-height: 42px;
    }

    .gutenberg-prose>h3.wp-block-heading {
        font-size: 24px;
    }

    .gutenberg-prose>h4.wp-block-heading {
        font-size: 20px;
    }

    .gutenberg-prose>p {
        font-size: 1rem;
        margin-bottom: 2rem;
    }
}

@media (max-width: 567px) {

    .gutenberg-prose>h1.wp-block-heading {
        font-size: 28px;
    }

    .gutenberg-prose>h2.wp-block-heading {
        font-size: 24px;
        line-height: 30px;
    }

    .gutenberg-prose>h3.wp-block-heading {
        font-size: 22px;
    }

    .gutenberg-prose>h4.wp-block-heading {
        font-size: 18px;
    }

    .gutenberg-prose>h5.wp-block-heading {
        font-size: 18px;
    }

    .gutenberg-prose>p {
        font-size: 14px;
        margin-bottom: 1rem;
    }
}

/* ==========================================================================
   TYPOGRAPHY - PARAGRAPHS (Match Side-By-Side Block)
   ========================================================================== */

.gutenberg-prose>p,
.wp-block-group__inner-container > p {
    font-family: 'Gelasio', serif;
    font-weight: 400;
    font-size: 20px;
    line-height: 1.6;
    color: #500617;
    /* Matches Side-By-Side Block */
    margin-bottom: 2rem;
    max-width: 100%;
}

/* Apply link styles ONLY to links inside standard prose elements (p, li, etc.) */
.gutenberg-prose p a,
.gutenberg-prose ul li a,
.gutenberg-prose ol li a {
    color: #840029;
    text-decoration: underline;
    font-weight: 700;
    transition: color 0.2s ease;
}

.gutenberg-prose p a:hover,
.gutenberg-prose ul li a:hover,
.gutenberg-prose ol li a:hover {
    color: #500617;
    text-decoration: none;
}



/* Target Standard Gutenberg Prose Blocks for Layout (Container) */
.gutenberg-prose > :is(
    p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, pre,
    .wp-block-table,
    .wp-block-code, .wp-block-quote, .wp-block-pullquote,
    .wp-block-buttons, .wp-block-button, .wp-block-preformatted,
    .wp-block-details, .wp-block-separator, .wp-block-columns,
    .wp-block-group:not(.alignwide):not(.alignfull),
    .wp-block-media-text:not(.alignwide):not(.alignfull),
    .wp-block-video:not(.alignwide):not(.alignfull),
    .wp-block-audio, .wp-block-gallery:not(.alignwide):not(.alignfull),
    .wp-block-embed, .wp-block-file,
    div:not([class])
) {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding-inline: var(--gs-margin) !important;
    box-sizing: border-box;
}

@media (width >= 1440px) {
    .gutenberg-prose > :is(
        p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, pre,
        .wp-block-table,
        .wp-block-code, .wp-block-quote, .wp-block-pullquote,
        .wp-block-buttons, .wp-block-button, .wp-block-preformatted,
        .wp-block-details, .wp-block-separator, .wp-block-columns,
        .wp-block-group:not(.alignwide):not(.alignfull),
        .wp-block-media-text:not(.alignwide):not(.alignfull),
        .wp-block-video:not(.alignwide):not(.alignfull),
        .wp-block-audio, .wp-block-gallery:not(.alignwide):not(.alignfull),
        .wp-block-embed, .wp-block-file,
        div:not([class])
    ) {
        max-width: 1440px;
    }
}

.gutenberg-prose .wp-block-columns,
.gutenberg-prose>.wp-block-columns {
    display: flex;
    flex-wrap: wrap;
    /* Allow wrapping */
}

.gutenberg-prose {
    @media (min-width: 1024.1px) {
        > img {
            margin-inline: auto;
            display: block;
        }

        > img[data-align="right"] {
            float: right;
            margin-left: 1rem;
            margin-right: calc(var(--main-header-left) + var(--gs-margin));
        }

        > img[data-align="left"] {
            float: left;
            margin-right: 1rem;
            margin-left: calc(var(--main-header-left) + var(--gs-margin));
        }
    }

    @media (max-width: 1024px) {
        > img {
            margin-inline: var(--gs-margin);
            width: calc(100% - calc(var(--gs-margin) * 2));
        }
    }
}

@media (max-width: 781px) {
    .gutenberg-prose .wp-block-columns {
        flex-direction: column !important;
        flex-wrap: nowrap !important;
    }

    .gutenberg-prose .wp-block-column {
        flex-basis: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        margin-bottom: 1rem;
    }

    .gutenberg-prose .wp-block-column:last-child {
        margin-bottom: 0;
    }
}

/* Responsive Media & Text */
@media (max-width: 600px) {
    .gutenberg-prose .wp-block-media-text {
        display: block !important;
        grid-template-columns: 1fr !important;
    }

    .gutenberg-prose .wp-block-media-text .wp-block-media-text__media,
    .gutenberg-prose .wp-block-media-text .wp-block-media-text__content {
        width: 100% !important;
        padding: 0 !important;
    }

    .gutenberg-prose .wp-block-media-text .wp-block-media-text__media {
        margin-bottom: 1rem;
    }
}

.gutenberg-prose>.wp-block-video:not(.alignwide):not(.alignfull),
.gutenberg-prose>.wp-block-audio,
.gutenberg-prose>.wp-block-gallery:not(.alignwide):not(.alignfull),
.gutenberg-prose>.wp-block-embed,
.gutenberg-prose>.wp-block-file {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
}

/* Bootstrap 5 breakpoints for PROSE ELEMENTS only */

/* Small devices (landscape phones, 576px and up) */
@media (min-width: 36rem) {

    .gutenberg-prose>p,
    .gutenberg-prose>h1,
    .gutenberg-prose>h2,
    .gutenberg-prose>h3,
    .gutenberg-prose>h4,
    .gutenberg-prose>h5,
    .gutenberg-prose>h6,
    .gutenberg-prose>ul,
    .gutenberg-prose>ol,
    .gutenberg-prose>blockquote,
    .gutenberg-prose>pre,
    .gutenberg-prose>.wp-block-table,
    .gutenberg-prose>.wp-block-image:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-code,
    .gutenberg-prose>.wp-block-quote,
    .gutenberg-prose>.wp-block-pullquote,
    .gutenberg-prose>.wp-block-buttons,
    .gutenberg-prose>.wp-block-button,
    .gutenberg-prose>.wp-block-preformatted,
    .gutenberg-prose>.wp-block-details,
    .gutenberg-prose>.wp-block-separator,
    .gutenberg-prose>.wp-block-columns,
    .gutenberg-prose>.wp-block-group:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-media-text:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-video:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-audio,
    .gutenberg-prose>.wp-block-gallery:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-embed,
    .gutenberg-prose>.wp-block-file,
    .gutenberg-prose>div:not([class]) {
        max-width: 33.75rem;
        /* 540px */
    }
}

/* Medium devices (tablets, 768px and up) */
@media (min-width: 48rem) {

    .gutenberg-prose>p,
    .gutenberg-prose>h1,
    .gutenberg-prose>h2,
    .gutenberg-prose>h3,
    .gutenberg-prose>h4,
    .gutenberg-prose>h5,
    .gutenberg-prose>h6,
    .gutenberg-prose>ul,
    .gutenberg-prose>ol,
    .gutenberg-prose>blockquote,
    .gutenberg-prose>pre,
    .gutenberg-prose>.wp-block-table,
    .gutenberg-prose>.wp-block-image:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-code,
    .gutenberg-prose>.wp-block-quote,
    .gutenberg-prose>.wp-block-pullquote,
    .gutenberg-prose>.wp-block-buttons,
    .gutenberg-prose>.wp-block-button,
    .gutenberg-prose>.wp-block-preformatted,
    .gutenberg-prose>.wp-block-details,
    .gutenberg-prose>.wp-block-separator,
    .gutenberg-prose>.wp-block-columns,
    .gutenberg-prose>.wp-block-group:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-media-text:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-video:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-audio,
    .gutenberg-prose>.wp-block-gallery:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-embed,
    .gutenberg-prose>.wp-block-file,
    .gutenberg-prose>div:not([class]) {
        max-width: 45rem;
        /* 720px */
    }
}

/* Large devices (desktops, 992px and up) */
@media (min-width: 62rem) {

    .gutenberg-prose>p,
    .gutenberg-prose>h1,
    .gutenberg-prose>h2,
    .gutenberg-prose>h3,
    .gutenberg-prose>h4,
    .gutenberg-prose>h5,
    .gutenberg-prose>h6,
    .gutenberg-prose>ul,
    .gutenberg-prose>ol,
    .gutenberg-prose>blockquote,
    .gutenberg-prose>pre,
    .gutenberg-prose>.wp-block-table,
    .gutenberg-prose>.wp-block-image:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-code,
    .gutenberg-prose>.wp-block-quote,
    .gutenberg-prose>.wp-block-pullquote,
    .gutenberg-prose>.wp-block-buttons,
    .gutenberg-prose>.wp-block-button,
    .gutenberg-prose>.wp-block-preformatted,
    .gutenberg-prose>.wp-block-details,
    .gutenberg-prose>.wp-block-separator,
    .gutenberg-prose>.wp-block-columns,
    .gutenberg-prose>.wp-block-group:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-media-text:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-video:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-audio,
    .gutenberg-prose>.wp-block-gallery:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-embed,
    .gutenberg-prose>.wp-block-file,
    .gutenberg-prose>div:not([class]) {
        max-width: 60rem;
        /* 960px */
    }
}

/* X-Large devices (large desktops, 1200px and up) */
@media (min-width: 75rem) {

    .gutenberg-prose>p,
    .gutenberg-prose>h1,
    .gutenberg-prose>h2,
    .gutenberg-prose>h3,
    .gutenberg-prose>h4,
    .gutenberg-prose>h5,
    .gutenberg-prose>h6,
    .gutenberg-prose>ul,
    .gutenberg-prose>ol,
    .gutenberg-prose>blockquote,
    .gutenberg-prose>pre,
    .gutenberg-prose>.wp-block-table,
    .gutenberg-prose>.wp-block-image:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-code,
    .gutenberg-prose>.wp-block-quote,
    .gutenberg-prose>.wp-block-pullquote,
    .gutenberg-prose>.wp-block-buttons,
    .gutenberg-prose>.wp-block-button,
    .gutenberg-prose>.wp-block-preformatted,
    .gutenberg-prose>.wp-block-details,
    .gutenberg-prose>.wp-block-separator,
    .gutenberg-prose>.wp-block-columns,
    .gutenberg-prose>.wp-block-group:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-media-text:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-video:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-audio,
    .gutenberg-prose>.wp-block-gallery:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-embed,
    .gutenberg-prose>.wp-block-file,
    .gutenberg-prose>div:not([class]) {
        max-width: 71.25rem;
        /* 1140px */
    }
}

/* XX-Large devices (larger desktops, 1400px and up) */
@media (min-width: 87.5rem) {

    .gutenberg-prose>p,
    .gutenberg-prose>h1,
    .gutenberg-prose>h2,
    .gutenberg-prose>h3,
    .gutenberg-prose>h4,
    .gutenberg-prose>h5,
    .gutenberg-prose>h6,
    .gutenberg-prose>ul,
    .gutenberg-prose>ol,
    .gutenberg-prose>blockquote,
    .gutenberg-prose>pre,
    .gutenberg-prose>.wp-block-table,
    .gutenberg-prose>.wp-block-image:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-code,
    .gutenberg-prose>.wp-block-quote,
    .gutenberg-prose>.wp-block-pullquote,
    .gutenberg-prose>.wp-block-buttons,
    .gutenberg-prose>.wp-block-button,
    .gutenberg-prose>.wp-block-preformatted,
    .gutenberg-prose>.wp-block-details,
    .gutenberg-prose>.wp-block-separator,
    .gutenberg-prose>.wp-block-columns,
    .gutenberg-prose>.wp-block-group:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-media-text:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-video:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-audio,
    .gutenberg-prose>.wp-block-gallery:not(.alignwide):not(.alignfull),
    .gutenberg-prose>.wp-block-embed,
    .gutenberg-prose>.wp-block-file,
    .gutenberg-prose>div:not([class]) {
        max-width: var(--gs-bp-xxl);
        /* 1320px */
    }
}

/* ==========================================================================
   ARTICLE SPECIFIC OVERRIDE
   
   Instead of constraining each child element individually, we constrain
   the .gutenberg-prose container itself within articles. This ensures
   floated images (alignleft/alignright) stay within the content column.
   ========================================================================== */

@media (min-width: 62rem) {
    .article .gutenberg-prose {
        max-width: calc(48.125rem + var(--gs-margin) * 2);
        margin-left: auto;
        margin-right: auto;
        padding-inline: var(--gs-margin);
        box-sizing: border-box;
    }

    /* Children no longer need their own max-width — the parent handles it */
    .article .gutenberg-prose > :is(
        p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, pre,
        .wp-block-table, .wp-block-image:not(.alignwide):not(.alignfull),
        .wp-block-code, .wp-block-quote, .wp-block-pullquote,
        .wp-block-buttons, .wp-block-button, .wp-block-preformatted,
        .wp-block-details, .wp-block-separator, .wp-block-columns,
        .wp-block-group:not(.alignwide):not(.alignfull),
        .wp-block-media-text:not(.alignwide):not(.alignfull),
        .wp-block-video:not(.alignwide):not(.alignfull),
        .wp-block-audio, .wp-block-gallery:not(.alignwide):not(.alignfull),
        .wp-block-embed, .wp-block-file,
        div:not([class])
    ) {
        max-width: 100%;
        padding-inline: 0 !important;
    }

    /* Reset aligned image bleeding for the narrow article container */
    .article .gutenberg-prose > .wp-block-image.alignright,
    .article .gutenberg-prose > img[data-align="right"] {
        margin-right: 0 !important;
    }

    .article .gutenberg-prose > .wp-block-image.alignleft,
    .article .gutenberg-prose > img[data-align="left"] {
        margin-left: 0 !important;
    }
}

@media (min-width: 64rem) {
    .article .gutenberg-prose {
        max-width: calc(62.25rem + (var(--gs-margin) * 2));
    }
}

/* ==========================================================================
   TABLES (Standard Gutenberg Table)
   ========================================================================== */

/* Wrapper and Layout */
.gutenberg-prose .wp-block-table {
    margin-bottom: 2rem;
    overflow-x: auto;
    /* Scroll on mobile if needed */
}

/* Table Base */
.gutenberg-prose .wp-block-table table {
    width: 100%;
    border-collapse: collapse;
    font-family: 'Gelasio', serif;
    font-size: 16px;
    line-height: 1.5;
    color: #500617;
    margin: 0;
    /* Override default margins */
}

/* Header Cells */
.gutenberg-prose .wp-block-table thead th,
.gutenberg-prose .wp-block-table th {
    background-color: #500617;
    color: #FFFFFF;
    font-family: 'Gotham', sans-serif;
    font-weight: 700;
    text-transform: none;
    padding: 1rem 1.5rem;
    text-align: left;
    border: 1px solid #500617;
    vertical-align: middle;
}

/* Body Cells */
.gutenberg-prose .wp-block-table td {
    padding: 1rem 1.5rem;
    border: 1px solid #e0e0e0;
    vertical-align: top;
}

/* Zebra Striping */
.gutenberg-prose .wp-block-table tbody tr:nth-child(even) {
    background-color: #F5F3F1;
}

.gutenberg-prose .wp-block-table tbody tr:nth-child(odd) {
    background-color: #FFFFFF;
}

/* If user selects "Stripes" style in editor, ensure our styles take precedence or cooperate */
/* If user selects "Stripes" style in editor, ensure our styles take precedence or cooperate */
.gutenberg-prose .wp-block-table.is-style-stripes {
    border: none;
}

/* Responsive Table */
@media (max-width: 768px) {
    .gutenberg-prose .wp-block-table {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* ==========================================================================
   GUTENBERG BUTTON BLOCK - Arrow Link Style
   ========================================================================== */

/**
 * Override default Gutenberg button styles to match site's arrow link pattern.
 * Transforms the standard button into a text + arrow style CTA.
 */

.gutenberg-prose .wp-block-button {
    margin-bottom: 2rem;
}

.gutenberg-prose .wp-block-button .wp-block-button__link,
.gutenberg-prose .wp-block-buttons .wp-block-button__link {
    /* Reset default button appearance */
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;

    /* Typography matching site style */
    font-family: 'Gelasio', serif;
    font-weight: 700;
    font-size: 22px;
    line-height: 1.39;
    color: #82142C !important;
    text-decoration: none !important;

    /* Flexbox for arrow alignment */
    display: inline-flex !important;
    align-items: center;
    gap: 12px;
    transition: gap 0.3s ease, color 0.3s ease;
    cursor: pointer;
}

.gutenberg-prose .wp-block-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

/* Arrow icon via ::after pseudo-element */
.gutenberg-prose .wp-block-button .wp-block-button__link::after,
.gutenberg-prose .wp-block-buttons .wp-block-button__link::after {
    content: '';
    display: inline-block;
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg width='8' height='12' viewBox='0 0 8 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.414 11.414L7.121 5.707L1.414 0L0 1.414L4.293 5.707L0 10L1.414 11.414Z' fill='%23FDB71A'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    flex-shrink: 0;
    transition: transform 0.3s ease;
}

/* Hover state */
.gutenberg-prose .wp-block-button .wp-block-button__link:hover,
.gutenberg-prose .wp-block-buttons .wp-block-button__link:hover {
    gap: 25px;
    color: #B40015 !important;
    text-decoration: none !important;
}

/* Responsive adjustments */
@media (max-width: 768px) {

    .gutenberg-prose .wp-block-button .wp-block-button__link,
    .gutenberg-prose .wp-block-buttons .wp-block-button__link {
        font-size: 18px;
    }

    .gutenberg-prose .wp-block-button .wp-block-button__link::after,
    .gutenberg-prose .wp-block-buttons .wp-block-button__link::after {
        width: 16px;
        height: 16px;
    }
}

/* ==========================================================================
   ORDERED LISTS (Standard numbered styling)
   ========================================================================== */

.gutenberg-prose>ol {
    list-style: decimal;
    padding-left: 2rem;
    margin: 0 0 1rem 0;
    list-style-position: inside;
}

.gutenberg-prose>ol>li {
    font-family: 'Gelasio', serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #82142C;
    margin-bottom: 0.5rem;
}

.gutenberg-prose>ol>li::marker {
    color: #840029;
    font-weight: 700;
}

/* Responsive Ordered Lists — match UL sizing */
@media (max-width: 1024px) {
    .gutenberg-prose>ol>li {
        font-size: 18px;
    }
}

/* ==========================================================================
   CODE & PREFORMATTED BLOCKS
   ========================================================================== */

.gutenberg-prose .wp-block-code,
.gutenberg-prose .wp-block-preformatted,
.gutenberg-prose>pre {
    background-color: #F5F3F1;
    border: 1px solid #e0e0e0;
    border-left: 4px solid #840029;
    padding: 1.5rem;
    margin-bottom: 2rem;
    overflow-x: auto;
}

.gutenberg-prose .wp-block-code code,
.gutenberg-prose .wp-block-preformatted,
.gutenberg-prose>pre {
    font-family: 'Monaco', 'Consolas', 'Courier New', monospace;
    font-size: 14px;
    line-height: 1.6;
    color: #500617;
}

/* ==========================================================================
   QUOTE & PULLQUOTE BLOCKS
   ========================================================================== */

.gutenberg-prose .wp-block-quote,
.gutenberg-prose>blockquote {
    border-left: 4px solid #FDB71A;
    padding: 1rem 0 1rem 2rem;
    margin-top: 0;
    margin-bottom: 2rem;
    background: transparent;
}

.gutenberg-prose .wp-block-quote p,
.gutenberg-prose>blockquote p {
    font-family: 'Gelasio', serif;
    font-style: italic;
    font-size: 1.25rem;
    line-height: 1.6;
    color: #500617;
    margin-bottom: 1rem;
}

.gutenberg-prose .wp-block-quote cite,
.gutenberg-prose>blockquote cite {
    font-family: 'Gotham', sans-serif;
    font-style: normal;
    font-size: 0.875rem;
    color: #840029;
    display: block;
    margin-top: 0.5rem;
}

/* Pullquote - Larger, more prominent */
.gutenberg-prose .wp-block-pullquote {
    border: none;
    border-top: 4px solid #840029;
    border-bottom: 4px solid #840029;
    padding: 2rem 0;
    margin: 2rem auto;
    text-align: center;
}

.gutenberg-prose .wp-block-pullquote blockquote {
    border: none;
    padding: 0;
}

.gutenberg-prose .wp-block-pullquote p {
    font-family: 'Gelasio', serif;
    font-style: italic;
    font-size: 1.75rem;
    line-height: 1.4;
    color: #840029;
    margin-bottom: 1rem;
}

.gutenberg-prose .wp-block-pullquote cite {
    font-family: 'Gotham', sans-serif;
    font-style: normal;
    font-size: 1rem;
    color: #500617;
}

/* ==========================================================================
   DETAILS/ACCORDION BLOCK
   ========================================================================== */

.gutenberg-prose .wp-block-details {
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    margin-bottom: 1rem;
    background: #FFFFFF;
}

.gutenberg-prose .wp-block-details summary {
    font-family: 'Gelasio', serif;
    font-weight: 700;
    font-size: 1.125rem;
    color: #840029;
    padding: 1rem 1.5rem;
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.gutenberg-prose .wp-block-details summary::-webkit-details-marker {
    display: none;
}

.gutenberg-prose .wp-block-details summary::after {
    content: '';
    width: 0;
    height: 0;
    border-left: 8px solid #FDB71A;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    transition: transform 0.3s ease;
}

.gutenberg-prose .wp-block-details[open] summary::after {
    transform: rotate(90deg);
}

.gutenberg-prose .wp-block-details>*:not(summary) {
    padding: 0 1.5rem 1rem;
    font-family: 'Gelasio', serif;
    font-size: 1rem;
    line-height: 1.6;
    color: #500617;
}

/* ==========================================================================
   SEPARATOR BLOCK
   ========================================================================== */

.gutenberg-prose .wp-block-separator {
    box-sizing: border-box;
    border: none;
    border-top: 2px solid #e0e0e0;
    margin: 3rem auto;
    max-width: 100%;
}

.gutenberg-prose .wp-block-separator.is-style-wide {
    border-top-width: 3px;
}

.gutenberg-prose .wp-block-separator.is-style-dots {
    border: none;
    text-align: center;
    max-width: 100%;
    margin-right: auto;
    margin-left: auto;
}

.gutenberg-prose .wp-block-separator.is-style-dots::before {
    content: '···';
    color: #840029;
    font-size: 1.5rem;
    letter-spacing: 1rem;
}

/* ==========================================================================
   FILE BLOCK
   ========================================================================== */

.gutenberg-prose .wp-block-file {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 2rem;
    padding: 1rem 1.5rem;
    background: #F5F3F1;
    border-radius: 4px;
}

.gutenberg-prose .wp-block-file a:not(.wp-block-file__button) {
    font-family: 'Gelasio', serif;
    font-weight: 700;
    font-size: 1rem;
    color: #840029;
    text-decoration: underline;
}

.gutenberg-prose .wp-block-file a:not(.wp-block-file__button):hover {
    color: #500617;
    text-decoration: none;
}

.gutenberg-prose .wp-block-file .wp-block-file__button {
    font-family: 'Gotham', sans-serif;
    font-weight: 700;
    font-size: 0.875rem;
    background: #840029;
    color: #FFFFFF;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    text-decoration: none;
    transition: background 0.3s ease;
}

.gutenberg-prose .wp-block-file .wp-block-file__button:hover {
    background: #500617;
}

/* ==========================================================================
   MEDIA & TEXT BLOCK
   ========================================================================== */

.gutenberg-prose .wp-block-media-text {
    margin-bottom: 2rem;
}

.gutenberg-prose .wp-block-media-text .wp-block-media-text__content {
    padding: 2rem;
}

.gutenberg-prose .wp-block-media-text .wp-block-media-text__content p {
    font-family: 'Gelasio', serif;
    font-size: 1.125rem;
    line-height: 1.6;
    color: #500617;
}

.gutenberg-prose .wp-block-media-text .wp-block-media-text__content h2,
.gutenberg-prose .wp-block-media-text .wp-block-media-text__content h3,
.gutenberg-prose .wp-block-media-text .wp-block-media-text__content h4 {
    font-family: 'Gelasio', serif;
    font-weight: 700;
    color: #840029;
}

/* ==========================================================================
   COLUMNS BLOCK
   ========================================================================== */

.gutenberg-prose .wp-block-columns {
    margin-bottom: 2rem;
}

.gutenberg-prose .wp-block-column p {
    font-family: 'Gelasio', serif;
    font-size: 1rem;
    line-height: 1.6;
    color: #500617;
}

/* ==========================================================================
   EMBED & VIDEO/AUDIO BLOCKS
   ========================================================================== */

.gutenberg-prose .wp-block-embed {
    margin-bottom: 2rem;
}

.gutenberg-prose .wp-block-embed figcaption,
.gutenberg-prose .wp-block-video figcaption,
.gutenberg-prose .wp-block-audio figcaption,
.gutenberg-prose .wp-block-gallery figcaption {
    font-family: 'Gelasio', serif;
    font-size: 0.875rem;
    color: #666;
    text-align: center;
    margin-top: 0.5rem;
}

.gutenberg-prose .wp-block-video,
.gutenberg-prose .wp-block-audio {
    margin-bottom: 2rem;
}

.gutenberg-prose .wp-block-audio audio {
    width: 100%;
}

/* ==========================================================================
   GALLERY BLOCK
   ========================================================================== */

.gutenberg-prose .wp-block-gallery {
    margin-bottom: 2rem;
}

.gutenberg-prose .wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
    font-family: 'Gelasio', serif;
    font-size: 0.875rem;
    color: #FFFFFF;
    background: rgba(0, 0, 0, 0.7);
    padding: 0.5rem 1rem;
}
/* ==========================================================================
   GUTENBERG IMAGE ALIGNMENTS & CAPTIONS
   ========================================================================== */

/*
 * Use display:table to shrink-wrap the figure to the intrinsic image width.
 * This constrains the figcaption to never exceed the image width.
 * width:fit-content alone doesn't work because the img max-width:100%
 * causes the figure to expand to the full container first.
 */
.gutenberg-prose > .wp-block-image {
    display: table !important;
    max-width: 100%;
    margin-bottom: 2rem;
}

.gutenberg-prose .wp-block-image img {
    display: block;
    max-width: 100%;
    height: auto;
}

.gutenberg-prose .wp-block-image figcaption {
    display: table-caption;
    caption-side: bottom;
    text-align: left;
    margin-top: 0.5rem;
    font-family: 'Gelasio', serif;
    font-size: 0.875rem;
    line-height: 1.4;
    color: #500617;
    font-style: italic;
}

.gutenberg-prose .wp-block-image.is-style-rounded {
    border-radius: 9999px !important;
    overflow: hidden;
}

/* Default (no alignment / center) — center within the content column */
.gutenberg-prose > .wp-block-image:not(.alignleft):not(.alignright) {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Right Alignment — push to right edge of content column */
.gutenberg-prose > .wp-block-image.alignright {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Left Alignment — push to left edge of content column */
.gutenberg-prose > .wp-block-image.alignleft {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Desktop: use float so text wraps around aligned images */
@media (min-width: 62rem) {
    /* Clearfix on the prose container so floats don't escape */
    .gutenberg-prose::after {
        content: '';
        display: table;
        clear: both;
    }

    .gutenberg-prose > .wp-block-image.alignright {
        float: right;
        clear: right;
        margin-left: 2rem !important;
        margin-right: calc(max(0px, (100% - 1440px) / 2) + var(--gs-margin)) !important;
        margin-bottom: 1rem;
        /* Stay within the article content column width, not the full-width parent */
        max-width: 50%;
    }

    .gutenberg-prose > .wp-block-image.alignleft {
        float: left;
        clear: left;
        margin-right: 2rem !important;
        margin-left: calc(max(0px, (100% - 1440px) / 2) + var(--gs-margin)) !important;
        margin-bottom: 1rem;
        max-width: 50%;
    }
}

/* Stack aligned images on mobile */
@media (max-width: 61.999rem) {
    .gutenberg-prose > .wp-block-image.alignleft,
    .gutenberg-prose > .wp-block-image.alignright,
    .gutenberg-prose > .wp-block-image:not(.alignleft):not(.alignright) {
        float: none;
        margin-left: auto !important;
        margin-right: auto !important;
        max-width: calc(100% - calc(var(--gs-margin) * 2));
    }
}

/* ==========================================================================
   CUSTOM TEXT STYLES
   ========================================================================== */
.gutenberg-prose {
    .style-subheading {
        font-weight: 500;
        font-size: 2rem;
        font-style: italic;
        line-height: 1.333;
        margin-top: 0;
        color: #82142C;
    }

    @media (max-width: 567px) {
        .style-subheading {
            font-size: 1.25rem;
        }
    }
}

/* 
 * Prevent Custom HTML blocks (classless divs) with small inline max-widths 
 * from being squished by container padding, while remaining centered. 
 * We chain the parent class to overcome the 0,4,0 specificity of the :is() container rules.
 */
.gutenberg-prose.gutenberg-prose.gutenberg-prose > div:not([class]) {
    padding-inline: 0 !important;
}
