:root{
  --sbf-primary:#111827;
  --sbf-text:#111827;
  --sbf-muted:#6b7280;
  --sbf-bg:#f5f7fb;
  --sbf-card:#ffffff;
  --sbf-border:#e5e7eb;
  --sbf-accent:#34d399;
  --sbf-accent-dark:#065f46;
  --sbf-shadow:0 10px 25px rgba(17,24,39,.08);
  --sbf-radius:24px;
}

/*
  Base resets scoped to the SBF app shell.
  Prevent default browser/WordPress button borders and list bullets from
  appearing on some templates when only utility classes are used.
*/
.sbf-app button,
.sbf-app input[type="button"],
.sbf-app input[type="submit"],
.sbf-app input[type="reset"]{
  border:0;
  background:transparent;
  -webkit-appearance:none;
  appearance:none;
}

.sbf-nav-list,
.sbf-mobile-nav-list{
  list-style:none;
  margin:0;
  padding:0;
}

.sbf-header-nav .sbf-nav-list{
  display:flex;
  gap:2rem;
  align-items:center;
}

.sbf-mobile-nav .sbf-mobile-nav-list{
  display:flex;
  flex-direction:column;
  gap:1rem;
}

/* ===== Utility classes (used in templates) ===== */

.min-h-screen{min-height:100vh;}
.flex{display:flex;}
.flex-col{flex-direction:column;}
.flex-grow{flex:1;}
.items-center{align-items:center;}
.justify-between{justify-content:space-between;}
.justify-center{justify-content:center;}
.gap-3{gap:.75rem;}
.gap-4{gap:1rem;}
.gap-8{gap:2rem;}

.hidden{display:none;}
.block{display:block;}

.fixed{position:fixed;}
.sticky{position:sticky;}
.top-0{top:0;}
.inset-0{top:0;right:0;bottom:0;left:0;}
.z-40{z-index:40;}
.z-50{z-index:50;}
.ml-auto{margin-left:auto;}
.bg-black\/50{background:rgba(0,0,0,.5);}

.h-20{height:5rem;}
.h-full{height:100%;}
.w-80{width:20rem;}
.w-10{width:2.5rem;}
.h-10{height:2.5rem;}
.w-8{width:2rem;}
.h-8{height:2rem;}

.rounded-lg{border-radius:.5rem;}
.rounded-xl{border-radius:.75rem;}
.rounded-2xl{border-radius:1rem;}

.p-6{padding:1.5rem;}
.px-4{padding-left:1rem;padding-right:1rem;}
.px-6{padding-left:1.5rem;padding-right:1.5rem;}
.px-8{padding-left:2rem;padding-right:2rem;}
.py-2{padding-top:.5rem;padding-bottom:.5rem;}
.mb-8{margin-bottom:2rem;}

.text-lg{font-size:1.125rem;line-height:1.75rem;}
.text-2xl{font-size:1.5rem;line-height:2rem;}
.text-sm{font-size:.875rem;line-height:1.25rem;}
.text-xs{font-size:.75rem;line-height:1rem;}
.font-bold{font-weight:700;}
.font-semibold{font-weight:600;}

.bg-white{background:#fff;}
.bg-gray-50{background:#f9fafb;}
.hover\:bg-gray-100:hover{background:#f3f4f6;}
.text-white{color:#fff;}
.text-primary{color:var(--sbf-primary);}
.text-text-muted{color:var(--sbf-muted);}

.border-b{border-bottom:1px solid var(--sbf-border);}
.border-gray-100{border-color:#f3f4f6;}

.transition-colors{transition:background-color .15s ease,color .15s ease,border-color .15s ease;}

.max-w-7xl{max-width:80rem;}
.mx-auto{margin-left:auto;margin-right:auto;}

/* Responsive helpers */
@media (min-width:640px){
  .sm\:px-6{padding-left:1.5rem;padding-right:1.5rem;}
  .sm\:flex{display:flex;}
  .sm\:block{display:block;}
}
@media (min-width:768px){
  .md\:hidden{display:none;}
  .md\:flex{display:flex;}
}
@media (min-width:1024px){
  .lg\:px-8{padding-left:2rem;padding-right:2rem;}
}
