/* ===== Namespaced, Porto-sicher ===== */
  .bf-sf{
    --bf-green:#057652;
    --bf-text:#111;
    --bf-muted:#777;
    --bf-border:#cfcfcf;
    --bf-bg:#fff;
    --bf-shadow:0 12px 30px rgba(0,0,0,0.08);
	font-size: clamp(0.85rem, 0.8rem + 0.3vw, 1.0rem);
	font-family: 'Jost-Medium';
	font-weight: normal;
	line-height: clamp(1.4rem, 1.25rem + 0.5vw, 1.6rem);
	letter-spacing: clamp(0.03rem, 0.02rem + 0.25vw, 0.1rem);
  }

.sidebar .bf-sf{
  margin-top: 0 !important;
  padding-top: 0 !important;
}

  /* Card */
  .bf-sf__card{
    background: var(--bf-bg);
    border-radius: 1.25rem;
    box-shadow: var(--bf-shadow);
    padding: 1.25rem 1.1rem 1.1rem;
    color: var(--bf-text);
  }

  /* Header */
  .bf-sf__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    margin-bottom:1rem;
  }

  .bf-sf__title{
	font-family: 'Jost-Medium';
    font-weight: normal;
    font-size: 1.05rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
  }

  .bf-sf__badge{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width: 2.2rem;
  }

  .bf-sf__count{
    position:absolute;
    top:-0.9rem;
    right:-1.35rem;
    background:#59BE49;
    color:#fff;
    font-size:0.8rem;
    width:2.4rem;
    height:1.4rem;
    border-radius:999px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:600;
    box-shadow: 0 0 0 2px #fff;
  }

  .bf-sf__hamburger{
    width:1.8rem;
    height:1.6rem;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
  }
  .bf-sf__hamburger span{
    display:block;
    height:3px;
    border-radius:999px;
    background: var(--bf-green);
  }

  /* Search */
  .bf-sf__search{ margin-bottom: 1rem; }
  .bf-sf__searchInner{
    border-radius:999px;
    border:2px solid #444;
    padding:0.55rem 0.85rem;
    display:flex;
    align-items:center;
    gap:0.6rem;
    background: transparent;
  }
  .bf-sf__searchInner input{
    flex: 1;
    line-height: 1;
    padding: 0;
	border:none;
    outline:none;
    width:100%;
    min-width:0;
    font-size:1rem;
    background:transparent;
    color:inherit;
  }
  .bf-sf__searchInner input::placeholder { color: var(--bf-muted); }
  .bf-sf__searchIcon { display: flex; align-items: center; justify-content: center; line-height: 1;font-size:1.15rem; color: var(--bf-muted); flex-shrink:0; }
  .bf-sf__searchIcon img{ display: block; height: 1.25rem; width: auto;}

  /* kein scrollen des Sticky-Menus */
.bf-sf__scroll{
  max-height: none;
  overflow: visible;
}

  /* Accordion */
  .bf-sf__cat{
    margin-bottom: 1.1rem;
    border-bottom: 1px solid var(--bf-border);
    padding-bottom: 1rem;
  }
  .bf-sf__cat:last-of-type{ border-bottom:none; margin-bottom:0; padding-bottom:0; }

  .bf-sf__cat summary{
    list-style:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    gap:0.75rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.16em;
    font-size:0.9rem;
    outline:none;
  }
  .bf-sf__cat summary::-webkit-details-marker{ display:none; }

  /* Tastaturfokus sichtbar */
  .bf-sf__cat summary:focus-visible{
    outline: 3px solid var(--bf-text);
    outline-offset: 4px;
    border-radius: 0.5rem;
  }

  .bf-sf__ind{
    position:relative;
    width:1.7rem;
    height:1.7rem;
    border-radius:50%;
    border:2px solid var(--bf-text);
    flex-shrink:0;
  }
  .bf-sf__cat[open] .bf-sf__ind{ border-color: var(--bf-green); }
  .bf-sf__cat[open] .bf-sf__ind::before{
    content:"";
    position:absolute;
    inset:4px;
    border-radius:50%;
    background: var(--bf-green);
  }

  .bf-sf__sub{
    margin: 0.75rem 0 0 3.05rem;
    padding:0;
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:0.35rem;
    font-size:1rem;
    line-height:1.35;
  }
  .bf-sf__sub .is-highlight{
    color: var(--bf-green);
    font-weight:600;
  }

  /* Porto Sticky greift erst ab 991px → darunter nicht scroll-zw&auml;ngen */
  @media (max-width: 991.98px){
    .bf-sf__scroll{ max-height:none; overflow:visible; padding-right:0; }
    .bf-sf__title{ letter-spacing: 0.12em; }
    .bf-sf__cat summary{ letter-spacing: 0.12em; }
  }

  /* Optional: respektiert reduzierte Bewegung */
  @media (prefers-reduced-motion: reduce){
    .bf-sf__scroll{ scroll-behavior: auto; }
  }

  /* Toggle für das Sidebarmenu eingeklappt - auf Mobile Devices */
.bf-sb-toggle{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border: 2px solid #cfcfcf;
  border-radius: 0.75rem;
  background: #fff;
  cursor: pointer;
}

.bf-sb-toggle__icon{
  width: 1.6rem;
  height: 1.15rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 0 0 auto;
}

.bf-sb-toggle__icon span{
  display: block;
  height: 3px;
  border-radius: 999px;
  background: #057652;
}

.bf-sb-toggle__label{
  font-family: 'Jost-Medium';
  font-weight: normal;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Sichtbarer Tastaturfokus (Lighthouse/WCAG) */
.bf-sb-toggle:focus-visible{
  outline: 3px solid #000;
  outline-offset: 3px;
}

/* Optional: auch für Links/Buttons im Sidebar-Menü */
#sidebarMenu a:focus-visible,
#sidebarMenu button:focus-visible,
#sidebarMenu summary:focus-visible{
  outline: 3px solid #000;
  outline-offset: 3px;
}


/* Optional: etwas Abstand unter dem Toggle */
@media (max-width: 991.98px){
  .bf-sb-toggle{ margin-bottom: 0.75rem; }
}

/* Warenkorb-Icon */
.bf-sf__icon{
  display: block;
  width: 2.2rem;
  height: 2.2rem;
  background: url("../img/bf-img/icons/shoppingcart.svg") no-repeat center / contain;
}

.bf-sf__badge:hover .bf-sf__hamburger{
  transform: scale(1.5);
}


