/* Homepage only. Artwork stays complete; the frame never crops its content. */
.bf-home { margin-block-start: 0 !important; }
.bf-home-section { margin-block: 0; padding-block: clamp(48px, 7vw, 104px); }
.bf-home__container { width: min(92%, 1440px); margin-inline: auto; }
.bf-home-section :where(h1,h2,h3,p,figure,ul) { margin: 0; }
.bf-home-section :where(h1,h2,h3) { font-weight: 400; letter-spacing: -.035em; }
.bf-home-section :where(a) { color: inherit; }
.bf-home-section :where(a:focus-visible,button:focus-visible,[tabindex]:focus-visible) { outline: 2px solid currentColor; outline-offset: 5px; }
.bf-home-heading { font-size: clamp(36px, 4.1vw, 60px); line-height: 1.08; margin-bottom: clamp(28px, 4vw, 52px) !important; max-width: 24ch; }
.bf-home-section h3 { font-size: clamp(20px, 1.9vw, 28px); line-height: 1.25; }
.bf-home-section h3 a { text-decoration: none; }
.bf-home-section h3 a:hover { text-decoration: underline; text-underline-offset: .18em; }
.bf-home-image { display: block; max-width: 100%; height: auto; margin-inline: auto; }
.bf-home-section :where(figure,[data-home-stage],.bf-home-image-pair) { background: transparent; border: 0; box-shadow: none; }
.bf-home-section__end { margin-top: clamp(28px, 4vw, 48px); }
.bf-home-action { font-size: clamp(16px, 1.3vw, 19px); font-weight: 400; }
.bf-home-hero { --hero-space: clamp(12px, 1.6svh, 20px); --hero-height: max(1px, min(88svh, calc(100svh - var(--hero-occupied, 80px) - 2 * var(--hero-space)))); padding-block: var(--hero-space); background: #f5f5f2; }
.bf-home-hero__main { min-width: 0; position: relative; padding-inline: 44px; background: transparent; }
.bf-home-hero__stage { display: grid; place-items: center; position: relative; height: var(--hero-height); touch-action: pan-y pinch-zoom; }
.wp-site-blocks .bf-home-hero__stage img.bf-home-image { width: auto !important; height: auto !important; max-width: 100% !important; max-height: var(--hero-height) !important; margin: auto !important; object-fit: contain !important; }
.bf-home-hero__main .bf-home-arrow { top: 50%; translate: none; transform: translateY(-50%); width: 44px; height: 44px; border: 0; border-radius: 0; background: transparent; font-size: 24px; font-weight: 300; opacity: .42; transition: opacity 160ms ease-out; }
.bf-home-hero__main .bf-home-arrow:hover,.bf-home-hero__main .bf-home-arrow:focus-visible,.bf-home-hero__main:hover .bf-home-arrow,.bf-home-hero__main:focus-within .bf-home-arrow { opacity: .85; background: transparent; }
.bf-home-hero__main .bf-home-arrow--previous { left: 0; }
.bf-home-hero__main .bf-home-arrow--next { right: 0; }
.bf-home-work { min-width: 0; }
.bf-home-work__image { display: block; }
.bf-home-work__caption { margin-top: 20px; text-align: center; }
.bf-home-work__caption h3 { font-size: clamp(20px, 1.7vw, 25px); letter-spacing: -.015em; }
.bf-home-work__caption .work-card__meta { margin-top: 9px; font-size: 14px; line-height: 1.65; }
.bf-home-work__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px 26px; margin-top: 18px; }
.bf-home-available__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(32px, 5vw, 72px); align-items: start; }
.bf-home-arrow { position: absolute; z-index: 5; top: 46%; translate: 0 -50%; }
.bf-home-arrow--previous { left: 0; }
.bf-home-arrow--next { right: 0; }
.bf-home-practice__panels { display: flex; align-items: stretch; gap: 24px; }
.bf-home-practice__panel { flex: 1; min-width: 0; display: flex; flex-direction: column; text-decoration: none; transition: flex 600ms cubic-bezier(.22,.61,.36,1); }
.bf-home-practice__panel[data-active="true"] { flex: 1.8; }
.bf-home-practice__media { display: grid; place-items: center; min-height: 370px; }
.wp-site-blocks .bf-home-practice__media img.bf-home-image { width: auto; max-width: 100% !important; max-height: 56vh !important; max-height: 56svh !important; }
.bf-home-practice__panel h3 { margin-top: 20px; font-size: clamp(19px, 1.9vw, 26px); }
.bf-home-exhibitions__grid { display: grid; grid-template-columns: 1.55fr 1fr; gap: 44px; align-items: start; }
.bf-home-exhibition:first-child { grid-row: span 2; }
.bf-home-exhibition__image { display: block; will-change: auto; }
.bf-home-exhibition h3 { margin-top: 22px; }
.bf-home-caption-meta { margin-top: 10px !important; font-size: 14px; line-height: 1.6; }
.bf-home-directions__grid,.bf-home-shop__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(32px, 5vw, 72px); align-items: start; }
.bf-home-direction,.bf-home-product { min-width: 0; }
.bf-home-direction__image,.bf-home-product__image { display: block; }
.bf-home-image-pair { display: grid; place-items: center; position: relative; }
.bf-home-image-pair > img { grid-area: 1 / 1; transition: opacity 400ms ease-out, transform 450ms ease-out; }
.wp-site-blocks .bf-home-image-pair > img[data-home-hover-image] { position: absolute; top: 50%; left: 50%; translate: -50% -50%; width: auto; height: auto !important; max-width: 100% !important; max-height: 100% !important; margin: 0 !important; object-fit: contain !important; opacity: 0; }
.bf-home-image-pair[data-hover-active="true"] > img:first-child { opacity: 0; }
.bf-home-image-pair[data-hover-active="true"] > img[data-home-hover-image] { opacity: 1; }
.bf-home-direction h3,.bf-home-product h3 { margin-top: 22px; }
.bf-home-direction__text { margin-block: 14px 18px; max-width: 40ch; font-size: clamp(17px, 1.5vw, 21px); line-height: 1.6; }
.bf-home-product h3 { font-size: clamp(22px, 2vw, 29px); }
.bf-home-product__price { margin-top: 12px; font-size: 19px; line-height: 1.5; }
.bf-home-product__price del { opacity: .65; }
.bf-home-product__price ins { text-decoration: none; }
.bf-home-about__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 88px); align-items: center; }
.bf-home-about__bio { font-size: clamp(19px, 1.8vw, 25px); line-height: 1.6; max-width: 43ch; }
.bf-home-about__bio p+p { margin-top: 1em; }
.bf-home-about__text > .bf-home-action { margin-top: 28px; display: inline-block; }
.bf-home-footer { padding-block: clamp(60px, 8vw, 112px) 28px; }
.bf-home-footer__top { display: flex; justify-content: space-between; gap: 48px; }
.bf-home-footer h2 { font-size: 22px; line-height: 1.3; margin-bottom: 18px; }
.bf-home-footer__email { font-size: clamp(21px, 2.6vw, 36px); text-decoration-thickness: 1px; text-underline-offset: 7px; overflow-wrap: anywhere; }
.bf-home-footer__top p { margin-top: 18px; }
.bf-home-footer__location { font-size: 14px; }
.bf-home-footer__social,.bf-home-footer__bottom ul { list-style: none; padding: 0; }
.bf-home-footer__social { display: flex; flex-wrap: wrap; max-width: 380px; gap: 14px 28px; }
.bf-home-footer__social a,.bf-home-footer__bottom a { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: text-decoration-color 150ms ease-out; }
.bf-home-footer a:hover,.bf-home-footer a:focus-visible { text-decoration-color: currentColor; }
.bf-home-footer__bottom { margin-top: 64px; display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 24px; font-size: 13px; }
.bf-home-footer__bottom ul { display: flex; gap: 16px 24px; flex-wrap: wrap; }
/* Motion is enhancement: without JS, every image and caption is visible. */
.bf-home [data-home-reveal].is-home-pending { opacity: 0; transform: translateY(24px); }
.bf-home [data-home-reveal] { transition: opacity 550ms ease-out, transform 550ms cubic-bezier(.22,.61,.36,1); transition-delay: calc(var(--home-index,0) * 65ms); }
@media (min-width:1024px) and (hover:hover) {
  .bf-home-work__image img { transition: transform 350ms ease-out; }
  .bf-home-work__image:hover img { transform: scale(1.012); }
}
@media (min-width:1600px) { .bf-home__container { width: min(90%, 1600px); } }
@media (max-width:1023px) {
  .bf-home-practice__media { min-height: 270px; }
  .bf-home-practice__panels { gap: 16px; }
  .bf-home-exhibitions__grid { gap: 28px; }
  .bf-home-about__grid { gap: 36px; }
}
@media (max-width:767px) {
  .bf-home__container { width: 92%; }
  .bf-home-section { padding-block: 40px; }
  .bf-home-heading { font-size: clamp(32px, 8.5vw, 44px); margin-bottom: 28px !important; }
  .bf-home-hero { --hero-occupied: 72px; padding-block: var(--hero-space); }
  .bf-home-hero__main { padding-inline: 32px; }
  .bf-home-hero__main .bf-home-arrow { width: 32px; font-size: 22px; opacity: .65; }
  .bf-home-available__grid,.bf-home-exhibitions__grid,.bf-home-directions__grid,.bf-home-shop__grid,.bf-home-about__grid { grid-template-columns: 1fr; gap: 40px; }
  .bf-home-arrow { top: 46%; }
  .bf-home-practice__panels { display: grid; grid-template-columns: 1fr; gap: 36px; }
  .bf-home-practice__media { min-height: 0; }
  .wp-site-blocks .bf-home-practice__media img.bf-home-image { max-height: none !important; max-width: 100% !important; width: 100%; }
  .bf-home-exhibition:first-child { grid-row: auto; }
  .bf-home-about__grid { gap: 30px; }
  .bf-home-footer__top { flex-direction: column; gap: 32px; }
  .bf-home-footer__bottom { margin-top: 44px; flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion:reduce) {
  .bf-home-section *, .bf-home-section *::before, .bf-home-section *::after { transition: none !important; animation: none !important; }
  .bf-home [data-home-reveal].is-home-pending { opacity: 1; transform: none; }
}
