/* 
* Header Sicky/Scroll Styles 
* Works with stickyHeader.js
*/
#brx-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999999999999;
    opacity: 1;
    transition: all 0.65s ease-in-out;
}

/* For the sticky on scroll up effect */
#brx-header.not-sticky {
    transition: all 0.65s ease-in-out;
    transform: translateY(-101%);
    opacity: 0;
}

#brx-header.sticky-header {
    transition: all 0.65s ease-in-out;
    top: 0;
    opacity: 1;
}

/* Header Search Bar */
.brxe-xheadersearch .x-search-form {
    background-color: #f2f2f2;
}

@media screen and (max-width: 1120px) {
    .brxe-xheadersearch .x-search-form {
        padding: 0 2.4rem;
    }
}

/* Content Spacing For Header */
main {
    padding-top: 160px;
}

@media screen and (min-width: 767px) {
    main {
        padding-top: 170px;
    }
}

@media screen and (min-width: 1120px) {
    main {
        padding-top: 180px;
    }
}

/* Admin bar compensation: WP shows admin bar at top (46px <=782px, 32px above) */
body.admin-bar main {
    padding-top: calc(160px - 46px);
}

@media screen and (min-width: 767px) {
    body.admin-bar main {
        padding-top: calc(170px - 46px);
    }
}

@media screen and (min-width: 783px) {
    body.admin-bar main {
        padding-top: calc(170px - 32px);
    }
}

@media screen and (min-width: 1120px) {
    body.admin-bar main {
        padding-top: calc(180px - 32px);
    }
}

/* Blog Single */
.prev-post {
    padding-right: 24px;
}

.next-post {
    padding-left: 24px;
}

/* 
*
* Footer 
*
*/

/* Social Links ShortCode */
.social-links {
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.header__r-col .social-links {
    color: #363636;
    justify-content: flex-end;
}

.header__r-col .social-links li a {
    color: #363636;
}

.header__r-col .social-links li a:hover {
    color: #6d8066;
}

/* 
*
* Filters for Blog 
*
*/
.filters {
    grid-row: 1 / -1;
}

.wpgb-facet select.wpgb-select + .wpgb-select-controls .wpgb-select-separator {
    background: transparent !important;
}

.wpgb-facet .wpgb-facet-title {
    font-size: unset !important;
    margin: 0 0 0.8rem 0 !important;
}

.x-accordion_header {
    padding: 9px 14px 9px 8px;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 400;
}

.x-accordion_title {
    font-weight: normal;
    color: #797979 !important;
    font-size: 16px;
}

.x-accordion_header,
.wpgb-facet .wpgb-input,
.wpgb-facet .wpgb-select {
    border: 1px solid var(--base-light-trans-50) !important;
}

.x-accordion_header:hover,
.wpgb-facet .wpgb-input:hover,
.wpgb-facet .wpgb-select:hover {
    border-color: var(--action-light) !important;
}

.x-accordion_header:focus,
.x-accordion_header:focus-within,
.wpgb-facet .wpgb-input:focus,
.wpgb-facet .wpgb-input:focus-within,
.wpgb-facet .wpgb-select:focus,
.wpgb-facet .wpgb-select:focus-within {
    border-color: var(--action) !important;
}

/* Ordering the checkboxes */
.wpgb-facet .wpgb-hierarchical-list {
    display: flex !important;
    flex-direction: column !important;
}

.pos-relative {
    position: relative !important;
}

/* Mobile Filters */
/* Filter Card Positioning added with JS */
@media screen and (max-width: 478px) {
    .filters {
        position: fixed;
        top: 0px;
        right: 0;
        bottom: 0;
        left: 0;
        transition: all 0.5s ease-in-out;
        transform: translateX(-101%);
        opacity: 0;
        z-index: 99999999999999999999999;
        background-color: #eddfbe;
    }

    .filters.filters-open {
        transform: translateX(0);
        opacity: 1;
    }

    /* Grid Control */
    .blog-archive-grid {
        grid-column: 1 / -1;
    }

    /* Filters Button */
    .open-filters-btn {
        position: fixed;
        bottom: 4rem;
        left: 4rem;
        display: block;
        width: 4.8rem;
        height: 4.8rem;
        aspect-ratio: 1/1;
        background-color: #fff;
        border: 2px solid var(--action);
        justify-content: center;
        align-items: center;
        z-index: 9999999999999999999;
    }

    .open-filters-btn i {
        font-weight: 600;
        margin-left: -0.15rem;
        margin-top: 0.05rem;
    }

    .filters-wrapper {
        width: 94%;
        margin: 0 auto;
        padding: 0 24px;
    }
}

/* 
*
* Other
*
*/

/* Fix clickable parent class */
.clickable-parent:not(a) > a::after {
    z-index: 999999;
}
.clickable-parent::after {
    z-index: 999999;
}

/* Bu;tton Styling */
.btn,
.btn--action.btn--outline,
.bricks-button.btn--action.btn--outline {
    transition: all 0.3s ease-in-out;
}

@media screen and (max-width: 768px) {
    .btn--action.btn--outline:hover,
    .bricks-button.btn--action.btn-outline:hover {
        min-width: 75%;
    }
}

/* Image sizing */
body.single-post p > img {
    margin: 2rem auto;
}

@media screen and (max-width: 768px) {
    .btn--action.btn--outline:not(.filters-close-icon),
    .bricks-button.btn--action.btn--outline:not(.filters-close-icon) {
        min-width: 75% !important;
    }
}

/* Image Aspect Ratio */
html body.brx-body main.brx-content img,
.related-img-wrapper {
    aspect-ratio: 4/5 !important;
}

/* Make slider-card media use aspect-ratio (matches grid sections + image source) */
.slider-card-media {
    height: auto !important;
    aspect-ratio: 4/5 !important;
    max-height: none !important;
}

.slider-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Related Images Shortcode */
.related-recipes-ul {
    padding: 0;
    margin: 1em 0;
    display: flex;
    flex-wrap: wrap;
    gap: 2em;
}

.related-img-card {
    position: relative;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    flex-basis: 0;
    min-width: 0;
    gap: 1rem;
    margin-block-start: 0 !important;
}

.related-img-wrapper {
    order: -1;
}

.related-img-card .related-img-wrapper img {
    width: 100%;
    height: 100%;
    aspect-ratio: 4/5;
    object-fit: cover;
}

/* Pinterest Button */
.pinterest-share-button {
    display: none;
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translate(50%, -50%);
    z-index: 999;
}

body.single-post .image-container {
    position: relative;
    width: 100%;
    height: 100%;
}

body.single-post .image-container:hover .pinterest-share-button,
body.single-post .image-container:focus .pinterest-share-button,
body.single-post img[class*="wp-image-"]:hover ~ .pinterest-share-button,
body.single-post img[class*="wp-image-"]:focus ~ .pinterest-share-button {
    display: block;
}

/* Dynamically generated Pinterest Save button */
body.single-post
    .image-container
    a[class*="PIN_"][href*="pinterest.com/pin/create/button/"] {
    display: none !important;
    position: absolute !important;
    top: 50% !important;
    right: 50% !important;
    transform: translate(50%, -50%) !important;
    z-index: 999 !important;
    background-size: contain !important;
}

body.single-post
    .image-container:hover
    a[class*="_button_pin"][href*="pinterest.com/pin/create/button/"],
body.single-post
    .image-container:focus
    a[class*="_button_pin"][href*="pinterest.com/pin/create/button/"],
body.single-post
    img[class*="wp-image-"]:hover
    ~ a[class*="_button_pin"][href*="pinterest.com/pin/create/button/"],
body.single-post
    img[class*="wp-image-"]:focus
    ~ a[class*="_button_pin"][href*="pinterest.com/pin/create/button/"] {
    display: block !important;
}

/* ============================================================
   Typography — Font Assignments
   ============================================================ */

/* Oooh Baby — section headings */
.section-intro__heading,
.fr-intro-charlie__heading,
.about-heading {
    font-family: "Oooh Baby", cursive !important;
}

/* Nunito Bold — recipe titles and card headings */
.fr-article-card-alpha__title,
.recipe-card__title {
    font-family: "Nunito Bold", sans-serif !important;
    font-weight: 700;
}

/* Action hover colour override — ACSS calculates hover as black for desaturated colours */
:root {
    --action-hover: #4f5e4a;
    --action-hover-h: 104;
    --action-hover-s: 15%;
    --action-hover-l: 35%;
    --primary-hover: #4f5e4a;
    --primary-hover-h: 104;
    --primary-hover-s: 15%;
    --primary-hover-l: 35%;
}


/* WP Grid Builder — override red variable used for Reset button */
:root {
    --wpgb-red: #6d8066;
}

.wpgb-facet .wpgb-reset {
    background-color: #6d8066 !important;
}

.wpgb-facet .wpgb-reset:hover {
    background-color: #4f5e4a !important;
}


/* ============================================ */
/* Design refresh: page background               */
/* ============================================ */

body {
    background-color: #fff6e5;
}

/* ============================================ */
/* Design refresh: cards (minimal)               */
/* ============================================ */

/* Hide post dates inside recipe cards */
.fr-article-card-alpha time,
.fr-article-card-alpha__body time,
.recipe-card time,
.slider-card time,
.brxe-post-grid time {
    display: none !important;
}

/* Card: white bg, rounded corners, soft shadow (image flush with edges) */
.fr-article-card-alpha,
.brxe-yzmtnj.slider-card {
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    overflow: hidden;
}

/* Padding for text content inside card body */
/* Higher specificity to override Bricks per-post per-element CSS */
.fr-article-card-alpha .fr-article-card-alpha__body,
.brxe-yzmtnj .recipe-card__body {
    padding: 1rem 1.25rem 1.5rem !important;
}

/* Title: modest size reduction from default, keep bold */
.fr-article-card-alpha__title,
.recipe-card__title {
    font-size: 1.8rem;
    line-height: 1.3;
}

.fr-article-card-alpha__lede {
    font-size: 1.4rem;
}


/* ============================================ */
/* Design refresh: force flat image corners      */
/* ============================================ */

.fr-article-card-alpha img,
.fr-article-card-alpha figure,
.fr-article-card-alpha .fr-article-card-alpha__image,
.fr-article-card-alpha .fr-article-card-alpha__media-wrapper,
.brxe-yzmtnj.slider-card img,
.brxe-yzmtnj.slider-card figure {
    border-radius: 0 !important;
}


/* Design refresh: slider card padding */
.brxe-yzmtnj.slider-card .brxe-hzkpks,
.brxe-yzmtnj.slider-card .fr-article-card-alpha__body,
.brxe-yzmtnj.slider-card .recipe-card__body,
li.brxe-yzmtnj.brxe-block > .brxe-div.slider-card-body {
    padding: 1rem 1.25rem 1.5rem !important;
}


/* ============================================ */
/* Design refresh: slider body padding (force)    */
/* ============================================ */

li.brxe-yzmtnj.slider-card .brxe-hzkpks,
li.brxe-yzmtnj.slider-card .slider-card-body,
li.brxe-yzmtnj.brxe-block .recipe-card__body,
li.splide__slide .brxe-hzkpks,
.x-slider .splide__slide .recipe-card__body {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
}


/* ============================================ */
/* Design refresh: slider title direct padding   */
/* ============================================ */

li.brxe-yzmtnj .recipe-card__title,
li.brxe-yzmtnj .fr-article-card-alpha__title,
li.brxe-yzmtnj .carousel-title,
li.brxe-yzmtnj .recipe-card__footer,
li.brxe-yzmtnj .fr-article-card-alpha__footer {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
}

li.brxe-yzmtnj .recipe-card__title,
li.brxe-yzmtnj .fr-article-card-alpha__title,
li.brxe-yzmtnj .carousel-title {
    padding-top: 1rem !important;
}


/* ============================================ */
/* Flavoursome meals: hide card excerpts          */
/* ============================================ */

.fr-article-card-alpha__lede { display: none !important; }


/* ============================================ */
/* Newsletter signup form: input text sizing     */
/* 2026-08 was 1.6rem; reduced to 1.3rem in the  */
/* AVV-RETAINER-2026-09-17 block below (client).  */
/* Kept here so the base rule is one source.      */
/* ============================================ */

/* AVV-CTA-INPUT-UNSCOPED-REMOVED 2026-09-30 (owen)                                    */
/* Old unscoped rules landed on the sidebar .newsletter-cta-wrapper form too, which    */
/* uses the same .fr-cta-card-bravo__form input classes. Banner-scoped rules now live  */
/* below the retainer block. Sidebar restored to theme default.                        */


/* ============================================ */
/* About page: spacing before section titles      */
/* ============================================ */

.about__text h2 {
    margin-top: 5rem;
    padding-top: 3rem;
    border-top: 1px solid rgba(109, 128, 102, 0.25);
}
.about__text h3 { margin-top: 2.25rem; }
.about__text h2:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}
.about__text h3:first-child { margin-top: 0; }


/* ============================================ */
/* Off-canvas menu: background + link color      */
/* ============================================ */

.x-offcanvas_inner { background: #eddfbe; }
.x-offcanvas_inner .nav-wrapper .bricks-nav-menu > li > a,
.x-offcanvas_inner .nav-wrapper .bricks-nav-menu > li > .brx-submenu-toggle > * { color: #6d8066; }
.x-offcanvas_inner .nav-wrapper .bricks-nav-menu > li:hover > a,
.x-offcanvas_inner .nav-wrapper .bricks-nav-menu > li:hover > .brx-submenu-toggle > *,
.x-offcanvas_inner .nav-wrapper .bricks-nav-menu > li.current-menu-item:hover > a,
.x-offcanvas_inner .nav-wrapper .bricks-nav-menu > li.current-menu-parent:hover > a,
.x-offcanvas_inner .nav-wrapper .bricks-nav-menu > li.current-menu-ancestor:hover > a { color: #d3927f !important; }


/* ============================================ */
/* Content links → peach (client palette)        */
/* Scope: post body + Bricks text/rich-text       */
/* Hover keeps existing green (#4f5e4a)           */
/* ============================================ */

:is(.brxe-post-content, .brxe-text-basic, .brxe-text, .brxe-rich-text) a:not(.btn):not(.bricks-button):not([class*="btn--"]) {
    color: #d3927f;
}

:is(.brxe-post-content, .brxe-text-basic, .brxe-text, .brxe-rich-text) a:not(.btn):not(.bricks-button):not([class*="btn--"]):hover {
    color: #4f5e4a;
}

/* AVV-HIDE-ACSS-DASHBOARD */
/* AVV - Hide IntentIQ user-sync tracking pixel container (acss-dashboard). Keeps img in DOM so pixel still fires; just removes the empty space at page bottom. */
acss-dashboard,
acss-dashboard.acss-dashboard-app {
  display: block !important;
  height: 0 !important;
  width: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
/* AVV-HIDE-ACSS-DASHBOARD-END */

/* AVV-FOOTER-CONTRAST-START olive->black lisa 2026-08-13 */
body .fr-footer-delta,body .fr-footer-delta *,body .fr-footer-delta a,body .fr-footer-delta a:hover,body .fr-footer-delta a:hover *,body .fr-footer-delta p,body .fr-footer-delta li,body .fr-footer-delta nav a,body .fr-footer-delta .bricks-nav-menu > li > a,body .fr-footer-delta .bricks-nav-menu > li > .brx-submenu-toggle > *{color:#000 !important}
/* AVV-FOOTER-CONTRAST-END */

/* AVV-WHITE-CARD-START — white card + full-width heart divider on all single blog posts */
body.single-post .blog-main-wrapper{row-gap:0}
body.single-post .fr-blog-hero-bravo{grid-column:1 / 2}
body.single-post .fr-blog-hero-bravo,body.single-post .fr-blog-post-body-alpha{background:#fff;border-left:2px solid #d3927f;border-right:2px solid #d3927f;padding-left:clamp(1.25rem,4vw,3rem);padding-right:clamp(1.25rem,4vw,3rem)}
body.single-post .fr-blog-hero-bravo{border-top:2px solid #d3927f;border-radius:18px 18px 0 0;padding-top:clamp(1.5rem,4vw,2.5rem)}
body.single-post .fr-blog-post-body-alpha{border-bottom:2px solid #d3927f;border-radius:0 0 18px 18px;padding-bottom:clamp(1.5rem,4vw,3rem);box-shadow:0 16px 34px rgba(211,146,127,.14)}
body.single-post .fr-blog-hero-bravo__featured-image-wrapper{--avv-heart:url('/wp-content/uploads/branding/heart-ebae9f.svg')}
body.single-post .fr-blog-hero-bravo__featured-image-wrapper::before{content:"";display:block;align-self:stretch;width:auto;height:30px;margin:0 calc(-1*clamp(1.25rem,4vw,3rem)) clamp(1rem,3vw,1.75rem);background-color:#d3927f;background-image:var(--avv-heart);background-repeat:repeat-x;background-position:center}
/* AVV-WHITE-CARD-END */
/* AVV-CARD-TEST-START (13417 sweet-potato — TEST ONLY: rounded image) */
body.postid-13417 .fr-blog-hero-bravo__featured-image,body.postid-13417 .fr-blog-hero-bravo__featured-image img{border-radius:12px !important}
body.postid-13417 .fr-blog-hero-bravo__featured-image{overflow:hidden !important}
/* AVV-CARD-TEST-END */


/* AVV-RETAINER-2026-09-17-START — retainer work per Tara 2026-09-04 (owen) */
/* AVV-CTA-BANNER-2026-09-30 (owen): banner sizing per Tara mockup 23.9.26. */
/* ALL rules scoped to .cta-banner so the sidebar (.newsletter-cta-wrapper) is untouched. */

body .cta-banner.cta-banner .fr-cta-card-bravo__heading {
    font-size: 2.8rem !important;
    line-height: 1.1 !important;
    margin-bottom: 0 !important;
}
body .cta-banner.cta-banner .fr-cta-card-bravo__lede,
body .cta-banner.cta-banner .fr-lede {
    font-size: 1.55rem !important;
    line-height: 1.35 !important;
    margin-bottom: 0 !important;
}
/* Kill the stacked row-gaps from Frames flex containers that caused heading→lede=34px */
/* and lede→form=44px gaps on 2026-10-05. Replaces them with a tight 0.6rem cascade. */
body .cta-banner.cta-banner,
body .cta-banner.cta-banner .fr-cta-card-bravo,
body .cta-banner.cta-banner .fr-cta-card-bravo__content,
body .cta-banner.cta-banner .fr-cta-card-bravo__intro {
    row-gap: 0.6rem !important;
    gap: 0.6rem !important;
}
body .cta-banner.cta-banner .fr-cta-card-bravo__form {
    max-width: 580px !important;
    margin: 0.4rem auto 0 !important;
}
/* Keep the two text inputs side-by-side inside the narrower form (theme sets flex: 1 1 280px which would wrap). */
body .cta-banner.cta-banner .fr-cta-card-bravo__form > .form-group:nth-child(1),
body .cta-banner.cta-banner .fr-cta-card-bravo__form > .form-group:nth-child(2) {
    flex: 1 1 240px !important;
    min-width: 0 !important;
}
body .cta-banner.cta-banner .fr-cta-card-bravo__form input[type="text"],
body .cta-banner.cta-banner .fr-cta-card-bravo__form input[type="email"] {
    font-size: 1.25rem !important;
    padding: 0.55em 0.85em !important;
}
body .cta-banner.cta-banner .fr-cta-card-bravo__form input[type="text"]::placeholder,
body .cta-banner.cta-banner .fr-cta-card-bravo__form input[type="email"]::placeholder {
    font-size: 1.25rem !important;
}
body .cta-banner.cta-banner .fr-cta-card-bravo__form .form-group {
    margin-bottom: 0.9rem !important;
}
body .cta-banner.cta-banner .fr-cta-card-bravo__form .options-wrapper label {
    font-size: 1.15rem !important;
    line-height: 1.35 !important;
}
body .cta-banner.cta-banner {
    padding-block: 2.5rem !important;
}

/* Sidebar reCAPTCHA disclaimer size — the inline font-size:12px on the <p class="rc-notice"> */
/* loses to a theme rule on mobile breakpoints and jumps to 15px. Force it back to 1.2rem.    */
.newsletter-cta-wrapper .rc-notice,
.newsletter-cta-wrapper .brxe-text .rc-notice,
.cta-banner .rc-notice {
    font-size: 1.2rem !important;
    line-height: 1.4 !important;
    margin-top: 0.75rem !important;
}

/* -- Email signup: Privacy Policy anchor styling (all CTA contexts, banner + sidebar) -- */
.fr-cta-card-bravo .options-wrapper label a,
.fr-cta-card-bravo__form .options-wrapper label a {
    color: #fff6e5 !important;
    text-decoration: underline !important;
    font-weight: 600;
}
.fr-cta-card-bravo .options-wrapper label a:hover,
.fr-cta-card-bravo__form .options-wrapper label a:hover {
    color: #ffffff !important;
}

/* -- About sidebar card (homepage): reduce paragraph spacing to ~1/2 -- */
/*    Tara wrote 3 paragraphs separated by empty <p>&nbsp;</p> spacers plus <p> margins. */
/*    Halving the paragraph margins cuts the total gap by ~50% without changing her copy. */
.fr-profile-card-bravo.about-card .fr-card-profile__body p {
    margin: 0.4em 0 !important;
    line-height: 1.35 !important;
}

/* -- Bio box (18 sous-chef posts): image round + on RIGHT of text + centred vertically -- */
/*    Wrapper class .avv-bio-box added to the 18 posts on 2026-09-30.                       */
/*    Layout is enforced via CSS because Imagify wraps the img in <picture> and the        */
/*    Pinterest share plugin wraps it in .image-container, so inline img styles are lost.  */
.avv-bio-box {
    flex-direction: row-reverse !important;
    align-items: center !important;
}
.avv-bio-box {
    padding: 14px 18px !important;
    gap: 14px !important;
}
.avv-bio-box picture,
.avv-bio-box .image-container {
    width: 110px !important;
    height: 110px !important;
    flex-shrink: 0 !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    display: block !important;
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
}
.avv-bio-box picture {
    border: 2px solid #d3927f !important;
}
.avv-bio-box .image-container {
    border: 0 !important;
}
.avv-bio-box picture img,
.avv-bio-box .image-container img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    border: 0 !important;
    display: block !important;
    max-width: none !important;
}
.avv-bio-box .pinterest-share-button {
    display: none !important;
}

/* AVV-RETAINER-2026-09-17-END */

/* AVV-NUNITO-ALIAS 2026-09-30 (owen)                                                         */
/* Alias font-family "Nunito" to the self-hosted TTF files already preloaded by               */
/* avv-font-preload.php. This stops the "Nunito" font-family references in Bricks and WPRM    */
/* CSS from pulling WPRM's bundled Google Nunito woff2 files. Combined with emptying the      */
/* WPRM custom template's `fonts` array (handled via wp option update), WPRM no longer emits  */
/* its own @font-face for Nunito.                                                             */
@font-face {
    font-family: 'Nunito';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/wp-content/uploads/2026/03/Nunito-Regular.ttf') format('truetype');
}
@font-face {
    font-family: 'Nunito';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('/wp-content/uploads/2026/03/Nunito-Bold.ttf') format('truetype');
}
/* AVV-NUNITO-ALIAS-END */

/* AVV-AVIF-PICTURE-FIX-START 2026-09-21 owen
   Root cause of the 13 Aug + 21 Sep AVIF incidents: when Imagify wraps <img> in
   <picture>, the picture defaults to display:inline. Bricks' .brxe-image styles
   set img { height: 100%; width: 100% } which can't resolve to a definite parent
   height through an inline picture. Result: img collapses to 0 height, cards
   render blank. Verified in headless Chrome with real CDP-matched-rules trace.
   Fix: make picture participate in block layout so it inherits the figure's
   definite dimensions. */
picture { display: block; }
/* AVV-AVIF-PICTURE-FIX-END */
