/* Business Foundry sections: the rules every generated section shares.

   Generated by wordpress/tools/build_section_assets.py. Each page family's
   own stylesheet (family-<family>.css) loads after this one.

   Full bleed. A section reaches the browser edges even inside a boxed
   container. 100vw counts the vertical scrollbar and 100% does not, so
   bleed.js measures the difference and publishes --bf-sbw. */
.bfe-site-section.bf-bleed{
  margin-left:var(--bf-bleed-left,calc(50% - 50vw + var(--bf-sbw,0px) / 2));
  margin-right:0;
  width:var(--bf-viewport-width,calc(100vw - var(--bf-sbw,0px)));
  max-width:none;
  flex-shrink:0;
}
.bfe-site-section{min-width:0;box-sizing:border-box}
/* The site's header sticks to the top of the page. In WordPress it sits in
   an Elementor container no taller than itself, where sticky has nowhere to
   go, so the top-level container holding it is what sticks. The offsets
   keep it below the admin bar for a signed-in editor. */
.elementor > :is(.e-con,.elementor-section,.elementor-element):has(.elementor-widget-bf_page_site_header){position:sticky;top:0;z-index:50}
body.admin-bar .elementor > :is(.e-con,.elementor-section,.elementor-element):has(.elementor-widget-bf_page_site_header){top:32px}
@media screen and (max-width:782px){body.admin-bar .elementor > :is(.e-con,.elementor-section,.elementor-element):has(.elementor-widget-bf_page_site_header){top:46px}}
@media screen and (max-width:600px){body.admin-bar .elementor > :is(.e-con,.elementor-section,.elementor-element):has(.elementor-widget-bf_page_site_header){top:0}}
/* Sticky only works while the page itself scrolls. Some themes set overflow
   on body (ArcHub does below 880px, and through its preloader class), which
   turns body into the scroll box and leaves the header behind. The site's
   own pages never clip body, so neither do these. */
body:has(.bfe-site-section){overflow:visible!important}
:where(.elementor-widget[data-widget_type^="bf_page_"]){width:100%;min-width:0;--container-widget-width:100%;--container-widget-flex-grow:0}
:where(.elementor-widget[data-widget_type^="bf_page_"] > .elementor-widget-container){width:100%;min-width:0}

/* A floor under the theme. The static site styles these elements on a blank
   page; inside WordPress a theme or an Elementor kit usually styles them too
   (heading colours and fonts, paragraph margins, link underlines, input
   heights). Each property here goes back to the browser default, which is
   what the static site starts from, and the section's own rules, which load
   after this file with the same weight or more, then apply exactly as they
   do on the static site. */
html:not(#bfe-page) .bfe-site-section :is(h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,figure,figcaption,address,label,legend,small,span,strong,b,em,i,cite,q,td,th,caption,a){
  color:revert;font-family:revert;font-size:revert;font-weight:revert;font-style:revert;line-height:revert;
  letter-spacing:revert;text-transform:revert;text-shadow:revert;text-decoration:revert;
  margin:revert;padding:revert;border:revert;background:revert;box-shadow:revert;
}
html:not(#bfe-page) .bfe-site-section :is(input,select,textarea){
  width:revert;height:revert;min-height:revert;margin:revert;padding:revert;border:revert;border-radius:revert;
  background:revert;box-shadow:revert;color:revert;font:revert;letter-spacing:revert;text-transform:revert;
}
html:not(#bfe-page) .bfe-site-section button{
  width:revert;height:revert;min-height:revert;margin:revert;border-radius:revert;box-shadow:revert;
  letter-spacing:revert;text-transform:revert;text-shadow:revert;text-decoration:revert;
}
html:not(#bfe-page) .bfe-site-section img{border:revert;border-radius:revert;box-shadow:revert}
html:not(#bfe-page) .bfe-site-section :is(table,thead,tbody,tfoot,tr){margin:revert;padding:revert;border:revert;background:revert;width:revert;border-collapse:revert;border-spacing:revert;font-size:revert;line-height:revert;color:revert}

