/* ============================================================
   BEAVER BUILDER → THEME LAYER (TextSpot)
   Site-wide defaults so any Beaver Builder content matches the TextSpot design
   out of the box. Scoped to .fl-builder-content; NO !important, loaded late,
   so per-module Builder settings still win. Tokens mirror css/global.css.
   ============================================================ */
.fl-builder-content {
  font-family: var(--ts-sans);
  color: var(--ts-ink);
}

.fl-builder-content .fl-heading,
.fl-builder-content .fl-heading .fl-heading-text {
  font-family: var(--ts-display); color: var(--ts-ink); font-weight: 800; line-height: 1.14;
}
.fl-builder-content .fl-rich-text,
.fl-builder-content .fl-rich-text p,
.fl-builder-content .fl-rich-text li { font-family: var(--ts-sans); color: var(--ts-text); font-size: 16px; line-height: 1.6; }
.fl-builder-content .fl-rich-text a { color: var(--ts-blue); font-weight: 600; text-decoration: none; }
.fl-builder-content .fl-rich-text a:hover { text-decoration: underline; }

.fl-builder-content .fl-button-wrap a.fl-button {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--ts-blue); color: #fff;
  border: 1px solid transparent; border-radius: var(--ts-r-md);
  padding: 13px 22px; font-family: var(--ts-sans); font-weight: 600; font-size: 15px;
  box-shadow: var(--ts-sh-cta);
  transition: transform .15s, filter .15s, box-shadow .15s;
}
.fl-builder-content .fl-button-wrap a.fl-button:hover { transform: translateY(-2px); filter: brightness(1.06); box-shadow: 0 10px 22px rgba(16,156,241,0.45); }
.fl-builder-content a.fl-button .fl-button-text,
.fl-builder-content a.fl-button .fl-button-icon { color: #fff; }

.fl-builder-content .fl-separator { border-top-color: var(--ts-line); }
.fl-builder-content .fl-row-content-wrap { background: transparent; }

/* Full-bleed sections: Beaver Builder adds a default 20px margin to every
   .fl-module-content, which insets our full-width section backgrounds from the
   viewport edges. Our TextSpot modules are full-bleed <section>s that carry their
   own padding, so zero that wrapper margin inside full-width rows. */
.fl-builder-content .fl-row-full-width .fl-module,
.fl-builder-content .fl-row-full-width .fl-module-content { margin: 0; }

.fl-builder-content input[type="text"],
.fl-builder-content input[type="email"],
.fl-builder-content input[type="tel"],
.fl-builder-content input[type="url"],
.fl-builder-content textarea,
.fl-builder-content select {
  font-family: var(--ts-sans); font-size: 15px; color: var(--ts-ink); background: #fff;
  border: 1px solid var(--ts-line-2); border-radius: 12px; padding: 12px 14px;
  transition: border-color .15s, box-shadow .15s;
}
.fl-builder-content input:focus, .fl-builder-content textarea:focus, .fl-builder-content select:focus {
  outline: none; border-color: var(--ts-blue); box-shadow: 0 0 0 4px rgba(16,156,241,.15);
}
