/* page-integration.css — theme-level integration scaffold.
   Phase G's page-css-integrator may append page-level corrections below
   this block. Fonts are SELF-HOSTED: sync-fonts-to-tokens.mjs prepends
   @font-face rules into tokens.css at Phase-B exit (F13-6/R10 — no
   Google-Fonts CDN import is ever emitted). */

/* Webflow conditional-visibility / empty-state normalize (framework-12).
   Webflow's runtime hides .w-condition-invisible (conditional binding not met)
   and styles .w-dyn-empty (empty CMS collection placeholder). A static clone
   has neither runtime, so any such element captured into an SDC would otherwise
   render its hidden/placeholder text (e.g. a baked "No art workers." byline
   empty-state). Reproduce Webflow's own rule so they stay hidden site-wide.
   Harmless on non-Webflow sources (the classes simply never match). */
.w-condition-invisible,
.w-dyn-empty { display: none !important; }

/* seed-listing-members.mjs — View-driven listing card grid.
   framework-13 WS-FE-2: grid + card-image classes derive from the run's OWN
   harvested listing card (routed through specs/_class-map.json); the captured
   component CSS owns the card design. Scoped to listing surfaces only.
   breakpoints: {479, 767, 991, 1919} (detected from discovery/responsive-breakpoints.json) */
.view-content .c-all_blogs__all-blogs-collection-list, .region-content .c-all_blogs__all-blogs-collection-list,
.view-content .c-careers_cards__grid-col-3, .region-content .c-careers_cards__grid-col-3,
.view-content .clone-card-grid, .region-content .clone-card-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 32px 24px; margin: 0; padding: 0; }
.view-content .c-all_blogs__all-blogs-collection-list > li, .region-content .c-all_blogs__all-blogs-collection-list > li,
.view-content .c-careers_cards__grid-col-3 > li, .region-content .c-careers_cards__grid-col-3 > li,
.view-content .clone-card-grid > li, .region-content .clone-card-grid > li { list-style: none; min-width: 0; }
.clone-teaser-card { display: block; text-decoration: none; color: inherit; }
.clone-teaser-card__media { width: 100%; height: auto; object-fit: cover; }
.clone-teaser-card__category { font-size: 13px; font-weight: 600; margin-bottom: 8px; }
.clone-teaser-card__title { font-size: 20px; line-height: 1.3; font-weight: 600; margin: 8px 0 0; }
:where(.c-cs_banner__media.c-blog_hero__media) { width: 100%; aspect-ratio: 668 / 334; object-fit: cover; }
:where(.c-cs_banner__media._4-3) { width: 100%; object-fit: cover; }
:where(.c-cs_banner__media._4-3) { width: 100%; aspect-ratio: 668 / 334; object-fit: cover; }
@media (max-width: 991px) { .view-content .c-all_blogs__all-blogs-collection-list, .region-content .c-all_blogs__all-blogs-collection-list, .view-content .c-careers_cards__grid-col-3, .region-content .c-careers_cards__grid-col-3, .view-content .clone-card-grid, .region-content .clone-card-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 767px) { .view-content .c-all_blogs__all-blogs-collection-list, .region-content .c-all_blogs__all-blogs-collection-list, .view-content .c-careers_cards__grid-col-3, .region-content .c-careers_cards__grid-col-3, .view-content .clone-card-grid, .region-content .clone-card-grid { grid-template-columns: 1fr; } }
