/* =========================================
   BH Feature Cards (reusable)
   Fonts, sizes and colors come from theme settings.
   Layout options are classes set by the Style tab.
   ========================================= */

.bh-fc {
  --bh-fc-ink: var(--clr-title-lt, #071A31);
  --bh-fc-text: var(--clr-text-lt, #3A3A3A);
  --bh-fc-tint: var(--clr-background-accent-lt, #F4F6FA);
  --bh-fc-border: #dfe4e8;
  --bh-fc-gap: 20px;
  --bh-fc-pad: 26px;
  /* --bh-fc-cols, --bh-fc-accent, --bh-fc-icon are set by the module */
}

/* ---------- Header ---------- */
.bh-fc .bh-fc__header { margin-bottom: 36px; }
.bh-fc.bh-fc--head-center .bh-fc__header { text-align: center; }
.bh-fc.bh-fc--head-center .bh-fc__heading,
.bh-fc.bh-fc--head-center .bh-fc__intro { margin-left: auto; margin-right: auto; }

.bh-fc .bh-fc__heading {
  max-width: 760px;
  margin: 0 0 14px;
  color: var(--bh-fc-ink);
  font-family: var(--ff-h2, inherit);
  font-size: var(--fs-h2, 44px);
  font-weight: var(--fw-h2, 700);
  letter-spacing: var(--ls-h2, normal);
  line-height: 1.15;
  text-wrap: balance;
}
.bh-fc .bh-fc__heading--h3 {
  font-family: var(--ff-h3, inherit);
  font-size: var(--fs-h3, 28px);
  font-weight: var(--fw-h3, 700);
  letter-spacing: var(--ls-h3, normal);
}
.bh-fc .bh-fc__intro {
  max-width: 640px;
  margin: 0;
  color: var(--bh-fc-text);
  font-family: var(--ff-paragraph, inherit);
  font-size: var(--fs-paragraph, 18px);
  line-height: 1.6;
}

/* ---------- Grid ---------- */
.bh-fc .bh-fc__list {
  display: grid;
  grid-template-columns: repeat(var(--bh-fc-cols, 2), minmax(0, 1fr));
  gap: var(--bh-fc-gap);
}
.bh-fc .bh-fc__card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: var(--bh-fc-pad);
  border-radius: 16px;
  text-align: left;
}
.bh-fc--text-center .bh-fc__card { text-align: center; align-items: center; }

/* Aligned mode: cards share 7 rows so sections line up across the row */
.bh-fc--aligned .bh-fc__list { row-gap: var(--bh-fc-gap); }
@supports (grid-template-rows: subgrid) {
  .bh-fc--aligned .bh-fc__card {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 7;
    row-gap: 0;
    align-content: start;
  }
  .bh-fc--aligned.bh-fc--text-center .bh-fc__card { justify-items: center; }
}
.bh-fc .bh-fc__empty { margin: 0 !important; padding: 0 !important; border: 0 !important; }

/* Card styles */
.bh-fc--card-outline .bh-fc__card { background: #ffffff; border: 1px solid var(--bh-fc-border); }
.bh-fc--card-white   .bh-fc__card { background: #ffffff; box-shadow: 0 4px 18px rgba(7, 26, 49, 0.06); }
.bh-fc--card-tinted  .bh-fc__card { background: var(--bh-fc-tint); }
.bh-fc--card-plain   .bh-fc__card { background: transparent; padding: 0; border-radius: 0; }
.bh-fc .bh-fc__card--highlight { background: var(--bh-fc-tint); }
.bh-fc--card-tinted .bh-fc__card--highlight { background: #ffffff; border: 1px solid var(--bh-fc-border); }

/* ---------- Media ---------- */
.bh-fc .bh-fc__media { width: 100%; }
.bh-fc .bh-fc__img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  margin-bottom: 16px;
  object-fit: cover;
  border-radius: 10px;
}
.bh-fc--ratio-3-2 .bh-fc__img { aspect-ratio: 3 / 2; }
.bh-fc--ratio-4-3 .bh-fc__img { aspect-ratio: 4 / 3; }
.bh-fc--ratio-1-1 .bh-fc__img { aspect-ratio: 1 / 1; }
.bh-fc .bh-fc__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed var(--bh-fc-icon);
  background: var(--bh-fc-tint);
  color: var(--bh-fc-ink);
  font-size: 14px;
  font-weight: 600;
}
.bh-fc .bh-fc__media--icon { margin-bottom: 16px; }
.bh-fc .bh-fc__icon { display: inline-flex; color: var(--bh-fc-icon); }
.bh-fc .bh-fc__icon svg { width: 40px; height: 40px; fill: currentColor; }

/* ---------- Badge ---------- */
.bh-fc .bh-fc__badge {
  display: inline-block;
  margin-bottom: 12px;
  padding: 5px 11px;
  border: 1.5px solid var(--bh-fc-icon);
  border-radius: 999px;
  color: var(--bh-fc-accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
}
.bh-fc .bh-fc__badge--solid {
  border-color: var(--bh-fc-accent);
  background: var(--bh-fc-accent);
  color: #ffffff;
}

/* ---------- Text ---------- */
.bh-fc .bh-fc__title {
  margin: 0 0 14px;
  color: var(--bh-fc-ink);
  font-family: var(--ff-h4, inherit);
  font-size: var(--fs-h5, 20px);
  font-weight: var(--fw-h4, 700);
  line-height: 1.3;
}
.bh-fc .bh-fc__lead {
  margin: 0 0 14px;
  color: var(--bh-fc-text);
  font-family: var(--ff-paragraph, inherit);
  font-size: max(15px, calc(var(--fs-paragraph, 18px) * 0.9));
  line-height: 1.55;
}
.bh-fc .bh-fc__lead strong,
.bh-fc .bh-fc__features strong,
.bh-fc .bh-fc__note strong { color: var(--bh-fc-ink); font-weight: 700; }

/* Checklist */
.bh-fc .bh-fc__features {
  display: grid;
  align-content: start;
  gap: 10px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
  text-align: left;
}
.bh-fc .bh-fc__features li {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  gap: 10px;
  margin: 0;
  padding: 0;
  color: var(--bh-fc-text);
  font-family: var(--ff-paragraph, inherit);
  font-size: max(15px, calc(var(--fs-paragraph, 18px) * 0.9));
  line-height: 1.5;
  list-style: none;
}
.bh-fc .bh-fc__features li::before,
.bh-fc .bh-fc__features li::marker { content: none; display: none; }
.bh-fc .bh-fc__check { width: 16px; height: 16px; margin-top: 0.2em; color: var(--bh-fc-icon); }

/* Note */
.bh-fc .bh-fc__note {
  margin: 0 0 20px;
  padding-top: 16px;
  border-top: 1px solid var(--bh-fc-border);
  color: var(--bh-fc-text);
  font-family: var(--ff-paragraph, inherit);
  font-size: max(14px, calc(var(--fs-paragraph, 18px) * 0.8));
  line-height: 1.55;
}
.bh-fc--text-center .bh-fc__note { width: 100%; }

/* ---------- Buttons ---------- */
.bh-fc .bh-fc__cta-row { align-self: end; }
.bh-fc--aligned .bh-fc__cta-row { align-self: start; }
.bh-fc a.bh-fc__btn {
  display: inline-block;
  border: 2px solid var(--bh-fc-accent);
  border-radius: var(--br-btn, 6px);
  font-family: var(--ff-btn, inherit);
  font-size: var(--fs-btn, 14px);
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.bh-fc a.bh-fc__btn--solid,
.bh-fc a.bh-fc__btn--outline { padding: 11px 19px; text-transform: uppercase; }
.bh-fc a.bh-fc__btn--solid { background: var(--bh-fc-accent); color: #ffffff; }
.bh-fc a.bh-fc__btn--solid:hover { background: var(--bh-fc-ink); border-color: var(--bh-fc-ink); }
.bh-fc a.bh-fc__btn--outline { background: transparent; color: var(--bh-fc-accent); }
.bh-fc a.bh-fc__btn--outline:hover { background: var(--bh-fc-accent); color: #ffffff; }
.bh-fc a.bh-fc__btn--link {
  padding: 0;
  border: 0;
  color: var(--bh-fc-accent);
  font-family: var(--ff-paragraph, inherit);
  font-size: var(--fs-paragraph, 18px);
}
.bh-fc a.bh-fc__btn--link:hover { text-decoration: underline; text-underline-offset: 3px; }
.bh-fc a.bh-fc__btn:focus-visible { outline: 3px solid var(--bh-fc-icon); outline-offset: 2px; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .bh-fc--cols-3 .bh-fc__list,
  .bh-fc--cols-4 .bh-fc__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .bh-fc { --bh-fc-pad: 20px; }
  .bh-fc .bh-fc__list { grid-template-columns: 1fr; }
  .bh-fc .bh-fc__header { margin-bottom: 24px; }
  .bh-fc .bh-fc__heading { font-size: var(--fs-h2-mobile, 30px); }
  .bh-fc .bh-fc__heading--h3 { font-size: var(--fs-h3-mobile, 24px); }
  .bh-fc .bh-fc__intro { font-size: var(--fs-paragraph-mobile, 16px); }
  .bh-fc .bh-fc__title { font-size: var(--fs-h5-mobile, 18px); }
}
