/* pfbhomebanner: all selectors are prefixed with .pfbhb to avoid any clash */
.pfbhb {
  --pfbhb-accent: #e8590c;
  --pfbhb-accent-dark: #c94a08;
  --pfbhb-radius: 20px;
  box-sizing: border-box;
  max-width: 1440px;
  margin: 16px auto 8px;
  padding: 0 16px;
}
.pfbhb *, .pfbhb *::before, .pfbhb *::after { box-sizing: border-box; }

.pfbhb__card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border: 1px solid #eee;
  border-radius: var(--pfbhb-radius);
  box-shadow: 0 6px 24px rgba(0, 0, 0, .10);
}

.pfbhb__media {
  position: relative;
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, #f3e9dc, #e4d3bd);
}
.pfbhb__media img { display: block; width: 100%; height: 100%; object-fit: cover; }

.pfbhb__badge {
  position: absolute;
  top: 12px;
  inset-inline-start: 12px;
  padding: 6px 14px;
  font-size: .875rem;
  font-weight: 700;
  color: #fff;
  background: var(--pfbhb-accent);
  border-radius: 999px;
}

.pfbhb__body { padding: 20px 18px 22px; }

.pfbhb__title {
  margin: 0 0 8px;
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.5;
  color: #222;
}
.pfbhb__text { margin: 0; font-size: 1rem; line-height: 1.9; color: #555; }

.pfbhb__list { margin: 14px 0 20px; padding: 0; list-style: none; }
.pfbhb__list li {
  position: relative;
  margin: 0;
  padding-block: 4px;
  padding-inline-start: 26px;
  font-size: .9375rem;
  color: #333;
}
.pfbhb__list li::before {
  content: "✓";
  position: absolute;
  inset-inline-start: 0;
  font-weight: 700;
  color: var(--pfbhb-accent);
}

/* Big touch-friendly CTA: 58px high, full width on mobile */
.pfbhb__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 58px;
  padding: 12px 20px;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
  color: #fff;
  text-decoration: none;
  background: var(--pfbhb-accent);
  border-radius: 14px;
  box-shadow: 0 4px 12px rgba(232, 89, 12, .35);
  -webkit-tap-highlight-color: transparent;
  transition: background .15s, transform .1s;
}
.pfbhb__btn:hover, .pfbhb__btn:focus { color: #fff; text-decoration: none; background: var(--pfbhb-accent-dark); }
.pfbhb__btn:active { transform: scale(.98); }
.pfbhb__btn:focus-visible { outline: 3px solid #222; outline-offset: 2px; }

/* ---------- Compact variant (category pages) ---------- */
.pfbhb--compact { max-width: none; margin: 12px 0 4px; padding: 0; }
.pfbhb--compact .pfbhb__card { flex-direction: column; gap: 12px; padding: 14px; border-radius: 16px; box-shadow: 0 3px 14px rgba(0, 0, 0, .08); }
.pfbhb--compact .pfbhb__row { display: flex; align-items: center; gap: 12px; }
.pfbhb--compact .pfbhb__thumb { flex: 0 0 72px; width: 72px; height: 72px; overflow: hidden; border-radius: 12px; background: #f3e9dc; }
.pfbhb--compact .pfbhb__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pfbhb--compact .pfbhb__info { min-width: 0; }
.pfbhb--compact .pfbhb__title { margin: 0 0 2px; font-size: 1.0625rem; line-height: 1.5; }
.pfbhb--compact .pfbhb__text { font-size: .875rem; line-height: 1.7; }
.pfbhb--compact .pfbhb__btn { min-height: 52px; font-size: 1.0625rem; }

/* Tablet / desktop */
@media (min-width: 768px) {
  .pfbhb__card { flex-direction: row; }
  .pfbhb__media { flex: 0 0 45%; aspect-ratio: auto; min-height: 320px; }
  .pfbhb__body { display: flex; flex: 1; flex-direction: column; justify-content: center; padding: 32px; }
  .pfbhb__title { font-size: 1.75rem; }
  .pfbhb__btn { width: auto; min-width: 280px; align-self: flex-start; }

  .pfbhb--compact .pfbhb__card { flex-direction: row; align-items: center; justify-content: space-between; padding: 16px 20px; }
  .pfbhb--compact .pfbhb__row { flex: 1; }
  .pfbhb--compact .pfbhb__title { font-size: 1.125rem; }
  .pfbhb--compact .pfbhb__btn { width: auto; min-width: 240px; align-self: auto; }
}
