/**
 * The Success Farm — Beaver Builder design bridge
 *
 * These rules provide safe brand and responsive defaults for legacy and
 * client-created Beaver pages. Module-level Beaver controls remain free to
 * override normal properties where the client intentionally customizes them.
 */

.tsf-beaver-builder-page .fl-builder-content {
  color: var(--color-foreground);
  font-family: var(--font-sans);
  overflow-x: clip;
}

.tsf-beaver-builder-page .fl-builder-content,
.tsf-beaver-builder-page .fl-builder-content *,
.tsf-beaver-builder-page .fl-builder-content *::before,
.tsf-beaver-builder-page .fl-builder-content *::after {
  box-sizing: border-box;
}

.tsf-beaver-builder-page .fl-col,
.tsf-beaver-builder-page .fl-col-content,
.tsf-beaver-builder-page .fl-module,
.tsf-beaver-builder-page .fl-module-content {
  min-width: 0;
}

.tsf-beaver-builder-page .fl-row-fixed-width .fl-row-content {
  width: min(100%, var(--tsf-container-max));
}

.tsf-beaver-builder-page .fl-heading,
.tsf-beaver-builder-page .fl-rich-text h1,
.tsf-beaver-builder-page .fl-rich-text h2,
.tsf-beaver-builder-page .fl-rich-text h3,
.tsf-beaver-builder-page .fl-rich-text h4 {
  color: var(--color-foreground);
  font-family: var(--font-heading);
  line-height: 1.08;
  text-wrap: balance;
}

.tsf-beaver-builder-page .fl-rich-text,
.tsf-beaver-builder-page .fl-rich-text p,
.tsf-beaver-builder-page .fl-rich-text li {
  color: inherit;
  font-family: var(--font-sans);
  line-height: 1.65;
}

.tsf-beaver-builder-page .fl-rich-text p:last-child,
.tsf-beaver-builder-page .fl-rich-text ul:last-child,
.tsf-beaver-builder-page .fl-rich-text ol:last-child {
  margin-bottom: 0;
}

.tsf-beaver-builder-page .fl-builder-content img,
.tsf-beaver-builder-page .fl-photo-img,
.tsf-beaver-builder-page .fl-gallery img {
  max-width: 100%;
  height: auto;
}

.tsf-beaver-builder-page .fl-photo-content,
.tsf-beaver-builder-page .fl-video,
.tsf-beaver-builder-page .fl-video iframe,
.tsf-beaver-builder-page .fl-video video {
  max-width: 100%;
}

.tsf-beaver-builder-page .fl-button,
.tsf-beaver-builder-page a.fl-button {
  background: var(--color-primary);
  border: 1px solid var(--color-primary);
  border-radius: 999px;
  color: var(--color-primary-foreground);
  font-family: var(--font-sans);
  font-weight: 600;
  line-height: 1.2;
  min-height: 2.75rem;
  transition: transform 180ms ease, opacity 180ms ease, box-shadow 180ms ease;
}

.tsf-beaver-builder-page .fl-button:hover,
.tsf-beaver-builder-page .fl-button:focus,
.tsf-beaver-builder-page a.fl-button:hover,
.tsf-beaver-builder-page a.fl-button:focus {
  opacity: 0.94;
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(42, 31, 26, 0.12);
}

.tsf-beaver-builder-page .fl-button-text {
  color: inherit;
}

.tsf-beaver-builder-page .fl-builder-content a:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 3px;
}

.tsf-beaver-builder-page .fl-testimonials {
  max-width: 100%;
}

.tsf-beaver-builder-page .fl-gallery,
.tsf-beaver-builder-page .fl-photo-grid {
  max-width: 100%;
}

@media (max-width: 768px) {
  .tsf-beaver-builder-page .fl-heading h1,
  .tsf-beaver-builder-page h1.fl-heading,
  .tsf-beaver-builder-page .fl-rich-text h1 {
    font-size: clamp(2.25rem, 11vw, 3.5rem);
  }

  .tsf-beaver-builder-page .fl-heading h2,
  .tsf-beaver-builder-page h2.fl-heading,
  .tsf-beaver-builder-page .fl-rich-text h2 {
    font-size: clamp(1.8rem, 8vw, 2.75rem);
  }

  .tsf-beaver-builder-page .fl-button,
  .tsf-beaver-builder-page a.fl-button {
    max-width: 100%;
    white-space: normal;
  }
}
