/* BuyFigs â€” OceanWP Pro `gardener` selective pattern (mobile-first) */
:root {
  --bf-forest: #012623;
  --bf-leaf: #2d6a4f;
  --bf-mint: #95d5b2;
  --bf-cream: #f4f7f2;
  --bf-ink: #0b1a17;
  --bf-muted: #3d524c;
  --bf-white: #ffffff;
  --bf-font-ui: "Josefin Sans", system-ui, sans-serif;
  --bf-font-display: "Source Serif 4", Georgia, serif;
}

/* ---------- Sticky header (CSS fallback; Freemius premium osh_* needs site license) ---------- */
#site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
  background: rgba(244, 247, 242, 0.96);
  border-bottom: 1px solid rgba(1, 38, 35, 0.08);
  transition: box-shadow .2s ease, background .2s ease;
}
#site-header.bf-solid,
#site-header.is-sticky,
#site-header.shrink-header {
  box-shadow: 0 1px 0 rgba(1, 38, 35, 0.06);
  background: rgba(244, 247, 242, 0.98);
}


/* ---------- Header contrast over cream/photo home ---------- */
body.buyfigs-home #site-header.fixed-scroll:not(.bf-solid) {
  background: rgba(244, 247, 242, 0.94) !important;
  border-bottom: 1px solid rgba(1, 38, 35, 0.08);
}
body.buyfigs-home #site-header.bf-solid,
body.buyfigs-home #site-header.is-sticky,
body.buyfigs-home #site-header.shrink-header {
  background: rgba(244, 247, 242, 0.98) !important;
}
body.buyfigs-home #site-logo a.site-logo-text,
body.buyfigs-home #site-navigation-wrap .dropdown-menu > li > a {
  color: var(--bf-forest) !important;
}
body.buyfigs-home #site-navigation-wrap .dropdown-menu > li > a:hover {
  color: var(--bf-leaf) !important;
}

#site-logo #site-logo-inner img {
  max-height: 48px;
  width: auto;
  display: block;
}
#site-header.shrink-header #site-logo #site-logo-inner img,
#site-header.is-sticky #site-logo #site-logo-inner img {
  max-height: 36px;
}

#site-navigation-wrap .dropdown-menu > li > a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-family: var(--bf-font-ui);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* ---------- Buttons (â‰¥44px) ---------- */
.bf-btn,
.bf-btn-text {
  font-family: var(--bf-font-ui) !important;
  font-size: 18px;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 22px !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.bf-btn {
  background: var(--bf-forest) !important;
  color: var(--bf-white) !important;
  border: 1px solid var(--bf-forest) !important;
}
.bf-btn:hover {
  background: var(--bf-leaf) !important;
  border-color: var(--bf-leaf) !important;
  color: var(--bf-white) !important;
}
.bf-btn-text {
  background: transparent !important;
  color: var(--bf-forest) !important;
  border: none !important;
  padding-left: 4px !important;
  padding-right: 4px !important;
  text-decoration: underline !important;
  text-underline-offset: 0.2em !important;
}
.bf-btn-text:hover { color: var(--bf-leaf) !important; }
.bf-link {
  font-family: var(--bf-font-ui);
  font-size: 18px;
  font-weight: 600;
  color: var(--bf-forest);
  text-decoration: none;
}
.bf-link:hover { color: var(--bf-leaf); }

.bf-film-kicker {
  margin: 0 0 0.75rem;
  font-family: var(--bf-font-ui);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bf-leaf);
}
.bf-film-display {
  margin: 0 0 0.85rem !important;
  font-family: var(--bf-font-display) !important;
  font-size: clamp(28px, 5vw, 40px) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  color: var(--bf-ink) !important;
  text-transform: none !important;
}
.bf-film-lede {
  margin: 0 0 1.25rem;
  max-width: 36rem;
  font-family: var(--bf-font-ui);
  font-size: clamp(16px, 2.2vw, 17.6px);
  line-height: 1.55;
  color: var(--bf-muted);
}

/* ========== Gardener pattern: HERO ========== */
.bf-gdn-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--bf-cream);
  min-height: min(92svh, 880px);
  padding-top: 72px; /* sticky header clearance mobile */
}
.bf-gdn-hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 5vw, 4rem);
  order: 2;
}
.bf-gdn-hero__eyebrow {
  margin: 0 0 0.85rem;
  font-family: var(--bf-font-ui);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bf-leaf);
}
.bf-gdn-hero__title {
  margin: 0 0 1rem !important;
  font-family: var(--bf-font-display) !important;
  font-size: clamp(36px, 7.5vw, 56px) !important;
  font-weight: 600 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em !important;
  color: var(--bf-forest) !important;
  text-transform: none !important;
}
.bf-gdn-hero__lede {
  margin: 0 0 1.75rem;
  max-width: 34rem;
  font-family: var(--bf-font-ui);
  font-size: clamp(16px, 2.4vw, 18px);
  line-height: 1.55;
  color: var(--bf-muted);
}
.bf-gdn-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
  margin: 0;
}
.bf-gdn-hero__media {
  margin: 0;
  order: 1;
  min-height: 48svh;
  background: var(--bf-forest);
}
.bf-gdn-hero__media img {
  width: 100%;
  height: 100%;
  min-height: 48svh;
  object-fit: cover;
  display: block;
}
@media (min-width: 900px) {
  .bf-gdn-hero {
    grid-template-columns: minmax(280px, 0.95fr) minmax(320px, 1.05fr);
    align-items: stretch;
    padding-top: 0;
  }
  .bf-gdn-hero__copy {
    order: 1;
    padding-top: clamp(4.5rem, 8vw, 6rem);
    padding-left: clamp(2rem, 6vw, 5rem);
  }
  .bf-gdn-hero__media { order: 2; min-height: 100%; }
  .bf-gdn-hero__media img { min-height: 100%; }
}

/* ========== Place / season band ========== */
.bf-gdn-place {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  min-height: 38svh;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
}
.bf-gdn-place__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(1, 38, 35, 0.65), rgba(1, 38, 35, 0.15) 55%);
}
.bf-gdn-place__caption {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 1.5rem clamp(1.25rem, 5vw, 3rem);
  font-family: var(--bf-font-ui);
  font-size: 16px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bf-cream);
}

/* ========== About / grower strip ========== */
.bf-gdn-about {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--bf-white);
}
.bf-gdn-about__text {
  padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.25rem, 5vw, 4rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.bf-gdn-about__media { margin: 0; }
.bf-gdn-about__media img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
  display: block;
}
@media (min-width: 900px) {
  .bf-gdn-about { grid-template-columns: 1fr 1fr; }
  .bf-gdn-about__media img { min-height: 480px; }
}

/* ========== Card grid (services / pillars) ========== */
.bf-gdn-work {
  padding: clamp(2.75rem, 7vw, 5rem) clamp(1.25rem, 4vw, 2.5rem);
  background: var(--bf-cream);
}
.bf-gdn-work__head {
  max-width: 40rem;
  margin: 0 auto 2rem;
  text-align: center;
}
.bf-gdn-work__grid {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  max-width: 1240px;
}
@media (min-width: 600px) {
  .bf-gdn-work__grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
}
@media (min-width: 1024px) {
  .bf-gdn-work__grid { grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
}

.bf-card {
  display: block;
  background: var(--bf-white);
  color: inherit;
  text-decoration: none;
  min-height: 44px;
  border: 1px solid rgba(1, 38, 35, 0.06);
  transition: transform .2s ease, box-shadow .2s ease;
}
.bf-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(1, 38, 35, 0.08);
}
.bf-card figure {
  margin: 0;
  display: flex;
  flex-direction: column;
}
.bf-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  background: #dce5df;
}
.bf-card figcaption {
  padding: 1rem 1.1rem 1.15rem;
  font-family: var(--bf-font-display);
  font-size: 20px; /* card heading 20px (typo-at-source 1.0.7) */
  font-weight: 600;
  color: var(--bf-forest);
  line-height: 1.25;
}
.bf-card__meta {
  display: block;
  margin-top: 0.35rem;
  font-family: var(--bf-font-ui);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bf-muted);
}

/* ========== Invite / CTA ========== */
.bf-gdn-invite {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: clamp(3rem, 8vw, 5rem) clamp(1.25rem, 5vw, 3rem);
  background: var(--bf-forest);
  text-align: center;
}
.bf-gdn-invite .bf-film-kicker { color: var(--bf-mint); }
.bf-gdn-invite .bf-film-display { color: var(--bf-cream) !important; }
.bf-gdn-invite .bf-film-lede {
  color: rgba(244, 247, 242, 0.82);
  margin-left: auto;
  margin-right: auto;
}
.bf-gdn-invite .bf-btn {
  background: var(--bf-mint) !important;
  border-color: var(--bf-mint) !important;
  color: var(--bf-forest) !important;
}
.bf-gdn-invite .bf-btn:hover {
  background: var(--bf-white) !important;
  border-color: var(--bf-white) !important;
}

/* Front page: strip Ocean content padding noise */
body.buyfigs-home #content-wrap { padding-top: 0; }
body.buyfigs-home .thumbnail { display: none; }
body.buyfigs-home #main { padding: 0; }

/* ========== Pass 1.0.2 â€” pillar pages + contrast polish ========== */
body.buyfigs-home #site-header.fixed-scroll:not(.bf-solid),
body.page #site-header {
  background: rgba(244, 247, 242, 0.96) !important;
}
body.page #site-logo a.site-logo-text,
body.page #site-navigation-wrap .dropdown-menu > li > a,
body.page #site-header #site-logo-inner a {
  color: var(--bf-forest) !important;
}

/* Pillar layout */
.bf-pillar { margin: 0; }
.bf-pillar__hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--bf-cream);
  padding-top: 72px;
}
.bf-pillar__copy {
  order: 2;
  padding: clamp(2rem, 5vw, 3.5rem) clamp(1.25rem, 5vw, 3.5rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.bf-pillar__title {
  margin: 0 0 1rem !important;
  font-family: var(--bf-font-display) !important;
  font-size: clamp(32px, 6vw, 48px) !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
  color: var(--bf-forest) !important;
  text-transform: none !important;
}
.bf-pillar__media {
  margin: 0;
  order: 1;
  min-height: 42svh;
  background: var(--bf-forest);
}
.bf-pillar__media img {
  width: 100%;
  height: 100%;
  min-height: 42svh;
  object-fit: cover;
  display: block;
}
@media (min-width: 900px) {
  .bf-pillar__hero {
    grid-template-columns: minmax(280px, 1fr) minmax(300px, 1fr);
    padding-top: 0;
  }
  .bf-pillar__copy {
    order: 1;
    padding-top: clamp(4.5rem, 8vw, 6rem);
  }
  .bf-pillar__media { order: 2; min-height: 100%; }
  .bf-pillar__media img { min-height: 520px; }
}

.bf-pillar__body {
  max-width: 42rem;
  margin: 0 auto;
  padding: clamp(2rem, 5vw, 3.5rem) clamp(1.25rem, 4vw, 2rem) 4rem;
}
.bf-pillar__block { margin: 0 0 2rem; }
.bf-pillar__h2 {
  margin: 0 0 0.65rem !important;
  font-family: var(--bf-font-display) !important;
  font-size: clamp(21.6px, 3vw, 26.4px) !important;
  font-weight: 600 !important;
  color: var(--bf-forest) !important;
  text-transform: none !important;
}
.bf-pillar__p {
  margin: 0 0 0.85rem;
  font-family: var(--bf-font-ui);
  font-size: 16.8px;
  line-height: 1.55;
  color: var(--bf-muted);
}
.bf-pillar__list {
  margin: 0.5rem 0 0;
  padding: 0 0 0 1.15rem;
  font-family: var(--bf-font-ui);
  font-size: 16px;
  line-height: 1.5;
  color: var(--bf-ink);
}
.bf-pillar__list li { margin: 0 0 0.4rem; }
.bf-pillar__next {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: center;
  margin: 2.5rem 0 0;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(1,38,35,.1);
}
.bf-pillar__next .bf-btn,
.bf-pillar__next .bf-btn-text {
  min-height: 44px;
}

/* Ocean page title off for pillars â€” extra clearance if title shows */
body.page-template-default #content-wrap { padding-top: 0; }
body.page .thumbnail { display: none; }
body.page #main { padding-top: 0; }

/* Mobile nav hamburger touch */
#oceanwp-mobile-menu-icon a,
.mobile-menu,
#sidr-close {
  min-height: 44px;
  min-width: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Media upgrade dual-crop (16:9 desktop / 4:5 mobile via CSS aspect-ratio + object-position).
   Matching *-4x5.webp files are registered in WP media for future <picture> if KSES allows. */
.bf-gdn-hero__media,
.bf-gdn-about__media,
.bf-card figure {
  overflow: hidden;
}
.bf-gdn-hero__media { aspect-ratio: 16 / 9; }
.bf-gdn-about__media { aspect-ratio: 4 / 3; }
.bf-card figure { aspect-ratio: 3 / 2; }
.bf-gdn-hero__media img,
.bf-gdn-about__media img,
.bf-card figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  display: block;
}
.bf-card figure img { object-position: center 45%; }
.bf-gdn-place {
  background-size: cover;
  background-position: center 40%;
}
@media (max-width: 767px) {
  .bf-gdn-hero__media { aspect-ratio: 4 / 5; }
  .bf-gdn-about__media { aspect-ratio: 4 / 5; }
  .bf-card figure { aspect-ratio: 4 / 5; }
  .bf-gdn-hero__media img { object-position: center 32%; }
  .bf-gdn-about__media img { object-position: center 35%; }
  .bf-card figure img { object-position: center 40%; }
  .bf-gdn-place { background-position: center 35%; min-height: 220px; }
}

/* === Keith readability rules v1.0.6 (WEBDSNR UI 2026-09-24) ===
   Contrast: light text only on dark; dark text only on light.
   Floors: body ≥1.0625rem (17px), nav/meta ≥1rem (16px), buttons ≥1.125rem (18px).
   Overrides Ocean Customizer 14px body / 12–13px chrome. */

:root {
  --bf-read-body: 18px; /* 18px (matches Ocean body_typography) */
  --bf-read-nav: 16px; /* 16px */
  --bf-read-btn: 18px;
  --bf-read-ink: #012623;
  --bf-read-cream: #F4F7F2;
  --bf-read-forest: #012623;
  --bf-read-mint: #B7E4C7;
}

html { font-size: 100%; }
body,
body.oceanwp-theme {
  color: var(--bf-read-ink) !important;
  background-color: #fff;
}
body p,
.entry-content p,
.bf-gdn-about__text p,
.bf-gdn-hero__lede,
.bf-film-lede {
  font-size: var(--bf-read-body);
  line-height: 1.55;
}

/* Nav / meta floors */
#site-navigation-wrap .dropdown-menu > li > a,
#site-header .dropdown-menu > li > a,
.oceanwp-mobile-menu-icon a,
.oceanwp-mobile-menu-icon > button,
.sidr-class-dropdown-menu li a,
a.sidr-class-toggle-sidr-close,
button.sidr-class-toggle-sidr-close,
#mobile-dropdown ul li a,
#mobile-dropdown ul li > button.menu-link.dropdown-toggle,
.dropdown-menu ul li a.menu-link,
#top-bar-content,
.site-breadcrumbs,
.site-breadcrumbs a,
#footer-widgets .footer-box .widget-title,
#footer-bottom #copyright,
#footer-bottom #footer-bottom-menu {
  line-height: 1.35 !important;
}

.bf-gdn-hero__eyebrow,
.bf-film-kicker,
.bf-gdn-place__caption,
.bf-card__meta,
.bf-gdn-work__grid .bf-card__meta {
  font-size: var(--bf-read-nav) !important;
  line-height: 1.4 !important;
}

/* Buttons â‰¥18px */
body .theme-button,
body input[type="submit"],
body button[type="submit"],
body button,
body .button,
body .bf-btn,
body .bf-btn-text,
body .wp-block-button__link,
body .wp-element-button {
  font-size: var(--bf-read-btn);
  line-height: 1.25 !important;
}

/* Header: cream bar + forest ink (never white-on-cream) */
body.home #site-header,
body.page #site-header,
#site-header,
#site-header.is-sticky,
#site-header.shrink-header,
#site-header.bf-solid {
  background: rgba(244, 247, 242, 0.97) !important;
  box-shadow: 0 1px 0 rgba(1, 38, 35, 0.08) !important;
}
body.home #site-header a,
body.page #site-header a,
#site-header #site-logo a,
#site-header #site-navigation-wrap .dropdown-menu > li > a,
#site-header .oceanwp-mobile-menu-icon a {
  color: var(--bf-read-forest) !important;
}
#site-header #site-logo img.custom-logo {
  filter: none !important;
}

/* Hero on cream: dark type + dark secondary CTA */
.bf-gdn-hero {
  background: var(--bf-read-cream) !important;
}
.bf-gdn-hero__eyebrow { color: #2D6A4F !important; }
.bf-gdn-hero__title { color: var(--bf-read-forest) !important; }
.bf-gdn-hero__lede { color: #1B4332 !important; }
.bf-gdn-hero__actions .bf-btn {
  background: var(--bf-read-forest) !important;
  border-color: var(--bf-read-forest) !important;
  color: #fff !important;
}
.bf-gdn-hero__actions .bf-btn-text {
  color: var(--bf-read-forest) !important;
  background: transparent !important;
  border-bottom: 1px solid rgba(1, 38, 35, 0.85) !important;
}

/* Cards on light surfaces â†’ dark type */
.bf-gdn-work__grid .bf-card,
.bf-gdn-work__grid .bf-card figcaption {
  background: #fff;
  color: var(--bf-read-ink) !important;
}
.bf-gdn-work__grid .bf-card figcaption {
  position: static !important;
  padding: 0.85rem 1rem 1.05rem !important;
  background: #fff !important;
}
.bf-gdn-work__grid .bf-card__meta {
  color: #2D6A4F !important;
  font-size: var(--bf-read-nav) !important;
}

/* Place band: deepen veil; light caption on dark */
.bf-gdn-place__veil {
  background: linear-gradient(to top, rgba(1, 38, 35, 0.72), rgba(1, 38, 35, 0.2) 55%) !important;
}
.bf-gdn-place__caption {
  color: var(--bf-read-cream) !important;
  font-size: var(--bf-read-nav) !important;
}

/* Invite: light on forest */
.bf-gdn-invite {
  background: var(--bf-read-forest) !important;
}
.bf-gdn-invite .bf-film-kicker { color: var(--bf-read-mint) !important; }
.bf-gdn-invite .bf-film-display { color: var(--bf-read-cream) !important; }
.bf-gdn-invite .bf-film-lede { color: rgba(244, 247, 242, 0.88) !important; }
.bf-gdn-invite .bf-btn {
  background: var(--bf-read-mint) !important;
  border-color: var(--bf-read-mint) !important;
  color: var(--bf-read-forest) !important;
}

/* Footer */
#footer-bottom {
  background: var(--bf-read-forest) !important;
  color: var(--bf-read-cream) !important;
}
#footer-bottom #copyright,
#footer-bottom #footer-bottom-menu,
#footer-bottom a {
  color: var(--bf-read-cream) !important;
}
#footer-widgets {
  background: var(--bf-read-cream) !important;
  color: var(--bf-read-ink) !important;
}
#footer-widgets .footer-box,
#footer-widgets .footer-box a,
#footer-widgets .footer-box .widget-title {
  color: var(--bf-read-ink) !important;
}

/* Pillar dual-crop (1.0.5) — match gardener 16:9 desktop / 4:5 mobile */
.bf-pillar__media {
  overflow: hidden;
  aspect-ratio: 16 / 9;
}
.bf-pillar__media picture,
.bf-pillar__media img {
  width: 100%;
  height: 100%;
  display: block;
}
.bf-pillar__media img {
  object-fit: cover;
  object-position: center 40%;
  min-height: 0;
}
.bf-pillar__inline {
  margin: 1.25rem 0 0;
}
.bf-pillar__inline img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0;
}
.bf-pillar__inline figcaption {
  margin-top: 0.5rem;
  font-family: var(--bf-font-ui);
  font-size: 16px;
  color: var(--bf-muted);
  line-height: 1.4;
}
@media (max-width: 767px) {
  .bf-pillar__media { aspect-ratio: 4 / 5; min-height: 0; }
  .bf-pillar__media img { object-position: center 35%; min-height: 0; }
}
@media (min-width: 900px) {
  .bf-pillar__media { aspect-ratio: 16 / 9; min-height: 100%; }
  .bf-pillar__media img { min-height: 520px; }
}


/* === WEBDSNR UI PASS v1.0.6 — chrome/nav ≥16; body 17; .bf-btn ≥18; Ocean 12–14 neutralized === */

/* Ocean a11y.min.css sets .oceanwp-mobile-menu-icon>button to 13px and no Customizer typography option targets that button (menu_typography only covers the legacy <a>): id-scoped floor, no !important. */
#site-header .oceanwp-mobile-menu-icon > button { font-size: var(--bf-read-nav); }
/* === TYPO-AT-SOURCE v1.0.7 (2026-09-27) — body 18 / nav+labels+chrome 16 / buttons 18 now set in OceanWP Customizer typography (theme_mods_oceanwp-buyfigs); Ocean-beating !important font-size floors removed. */
/* Image-failure fallback: text-only card, no empty box (script adds .is-noimg) */
.bf-card.is-noimg { border: 1px solid rgba(1, 38, 35, 0.22); background: #fff; }
.bf-card.is-noimg figure { aspect-ratio: auto !important; min-height: 0 !important; background: none !important; overflow: visible !important; }
.bf-card.is-noimg img { display: none !important; }
.bf-card.is-noimg figcaption { position: static !important; }
