/*
 * Beaver Builder overrides for Accountability4Bend
 * Applies design tokens to BB rows, columns, modules, and global UI
 */

/* ============================================================
   GLOBAL BB WRAPPER
   ============================================================ */

.fl-builder-content,
.fl-page-content {
  background-color: var(--paper);
}

/* ============================================================
   ROWS
   ============================================================ */

.fl-row {
  position: relative;
}

/* Full-width row max-width cap */
.fl-row-content-wrap {
  max-width: var(--max-width);
}

/* Dark section */
.fl-row.row-dark,
.fl-row.is-dark {
  background-color: var(--ink);
  color: var(--paper);
}

.fl-row.row-dark h1,
.fl-row.row-dark h2,
.fl-row.row-dark h3,
.fl-row.row-dark h4,
.fl-row.row-dark h5,
.fl-row.row-dark h6,
.fl-row.is-dark h1,
.fl-row.is-dark h2,
.fl-row.is-dark h3,
.fl-row.is-dark h4,
.fl-row.is-dark h5,
.fl-row.is-dark h6 {
  color: var(--paper);
}

.fl-row.row-dark p,
.fl-row.is-dark p {
  color: rgba(245,241,232,0.85);
}

/* Rust accent section */
.fl-row.row-rust {
  background-color: var(--rust);
  color: var(--paper);
}

.fl-row.row-rust h1,
.fl-row.row-rust h2,
.fl-row.row-rust h3,
.fl-row.row-rust h4 {
  color: var(--paper);
}

/* Sage section */
.fl-row.row-sage {
  background-color: var(--sage);
  color: var(--paper);
}

/* ============================================================
   COLUMNS
   ============================================================ */

.fl-col-content {
  height: 100%;
}

/* ============================================================
   HEADING MODULE
   ============================================================ */

.fl-module-heading h1,
.fl-module-heading h2,
.fl-module-heading h3,
.fl-module-heading h4,
.fl-module-heading h5,
.fl-module-heading h6 {
  font-family: var(--font-headline);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  line-height: var(--leading-tight);
}

/* ============================================================
   TEXT / RICH TEXT MODULE
   ============================================================ */

.fl-module-rich-text p,
.fl-module-text p {
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: inherit;
}

.fl-module-rich-text a,
.fl-module-text a {
  color: var(--rust);
}

.fl-module-rich-text a:hover,
.fl-module-text a:hover {
  color: var(--gold);
}

/* ============================================================
   BUTTON MODULE
   ============================================================ */

.fl-module-button .fl-button-wrap a.fl-button {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  border-radius: var(--radius-sm);
  border-width: var(--border-width);
  transition: background-color var(--transition-fast),
              color var(--transition-fast),
              border-color var(--transition-fast),
              transform var(--transition-fast);
}

.fl-module-button .fl-button-wrap a.fl-button:hover {
  transform: translateY(-1px);
}

/* Primary button */
.fl-module-button .fl-button-wrap a.fl-button-primary {
  background-color: var(--rust);
  border-color: var(--rust);
  color: var(--paper);
}

.fl-module-button .fl-button-wrap a.fl-button-primary:hover {
  background-color: #a33823;
  border-color: #a33823;
}

/* ============================================================
   CALLOUT MODULE
   ============================================================ */

.fl-module-callout .fl-callout-title {
  font-family: var(--font-headline);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
}

.fl-module-callout .fl-callout-text {
  font-family: var(--font-body);
  line-height: var(--leading-normal);
}

/* ============================================================
   ICON MODULE
   ============================================================ */

.fl-module-icon .fl-icon-text {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
}

/* ============================================================
   SEPARATOR / DIVIDER MODULE
   ============================================================ */

.fl-module-separator .fl-separator {
  border-color: var(--rust);
  border-width: 2px;
}

/* ============================================================
   PHOTO / IMAGE MODULE
   ============================================================ */

.fl-module-photo .fl-photo-img {
  border-radius: var(--radius-sm);
}

.fl-module-photo.photo-bordered .fl-photo-img {
  border: var(--border-width) solid var(--rust);
}

/* ============================================================
   VIDEO MODULE
   ============================================================ */

.fl-module-video .fl-video-wrap {
  border-radius: var(--radius-sm);
  overflow: hidden;
}

/* ============================================================
   ACCORDION MODULE
   ============================================================ */

.fl-module-accordion .fl-accordion-button {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  background-color: var(--ink);
  color: var(--paper);
  border-radius: var(--radius-sm);
}

.fl-module-accordion .fl-accordion-button.fl-active,
.fl-module-accordion .fl-accordion-button:hover {
  background-color: var(--rust);
  color: var(--paper);
}

.fl-module-accordion .fl-accordion-content {
  border-left: 3px solid var(--rust);
}

/* ============================================================
   TABS MODULE
   ============================================================ */

.fl-module-tabs .fl-tabs-labels .fl-tabs-label a {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--slate);
  border-bottom: 2px solid transparent;
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.fl-module-tabs .fl-tabs-labels .fl-tabs-label.fl-active a,
.fl-module-tabs .fl-tabs-labels .fl-tabs-label a:hover {
  color: var(--rust);
  border-bottom-color: var(--rust);
}

/* ============================================================
   SUBSCRIBE / OPTIN MODULE
   ============================================================ */

.fl-module-subscribe .fl-subscribe-form input[type="email"],
.fl-module-subscribe .fl-subscribe-form input[type="text"] {
  font-family: var(--font-body);
  border: var(--border-width) solid rgba(74,85,104,0.4);
  border-radius: var(--radius-sm);
  padding: var(--space-3) var(--space-4);
}

.fl-module-subscribe .fl-subscribe-form input[type="email"]:focus,
.fl-module-subscribe .fl-subscribe-form input[type="text"]:focus {
  border-color: var(--rust);
  outline: none;
}

.fl-module-subscribe .fl-subscribe-form .fl-subscribe-btn {
  font-family: var(--font-mono);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  background-color: var(--rust);
  border-color: var(--rust);
  color: var(--paper);
  border-radius: var(--radius-sm);
}

/* ============================================================
   GRAVITY FORMS (inside BB)
   ============================================================ */

.gform_wrapper .gform_title {
  font-family: var(--font-headline);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
}

.gform_wrapper .gfield_label {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--slate);
}

.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper textarea,
.gform_wrapper select {
  font-family: var(--font-body);
  border: var(--border-width) solid rgba(74,85,104,0.4);
  border-radius: var(--radius-sm);
  padding: var(--space-3) var(--space-4);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
  border-color: var(--rust);
  box-shadow: 0 0 0 3px rgba(196,67,43,0.15);
  outline: none;
}

.gform_wrapper .gform_submit_button,
.gform_wrapper input[type="submit"] {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  background-color: var(--rust);
  border: var(--border-width) solid var(--rust);
  color: var(--paper);
  border-radius: var(--radius-sm);
  padding: var(--space-4) var(--space-8);
  cursor: pointer;
  transition: background-color var(--transition-fast), transform var(--transition-fast);
}

.gform_wrapper .gform_submit_button:hover,
.gform_wrapper input[type="submit"]:hover {
  background-color: #a33823;
  border-color: #a33823;
  transform: translateY(-1px);
}

.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error textarea,
.gform_wrapper .gfield_error select {
  border-color: var(--rust);
}

.gform_wrapper .validation_message,
.gform_wrapper .gfield_description.validation_message {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-wide);
  color: var(--rust);
}

/* ============================================================
   POWERPACK FOR BB — PPB MODULES
   ============================================================ */

/* Info Box */
.fl-module-pp-info-box .pp-info-box-title {
  font-family: var(--font-headline);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
}

.fl-module-pp-info-box .pp-info-box-description {
  font-family: var(--font-body);
  line-height: var(--leading-normal);
}

/* Business Hours */
.fl-module-pp-business-hours .pp-business-hours-label {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
}

/* Team Member */
.fl-module-pp-team-member .pp-team-member-name {
  font-family: var(--font-headline);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
}

.fl-module-pp-team-member .pp-team-member-position {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--rust);
}

/* Dual Button */
.fl-module-pp-dual-button .pp-dual-button {
  font-family: var(--font-mono);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
}

/* ============================================================
   BB THEMER — HEADER / NAV
   ============================================================ */

.fl-page-header-wrap {
  background-color: var(--ink);
}

/* Nav links */
.fl-page-nav-wrap .fl-nav-item > a {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--paper);
  transition: color var(--transition-fast);
}

.fl-page-nav-wrap .fl-nav-item > a:hover,
.fl-page-nav-wrap .fl-nav-item.current-menu-item > a {
  color: var(--gold);
}

/* Dropdown */
.fl-page-nav-wrap .fl-nav-item .sub-menu {
  background-color: var(--ink);
  border-top: 2px solid var(--rust);
}

.fl-page-nav-wrap .fl-nav-item .sub-menu a {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: rgba(245,241,232,0.8);
}

.fl-page-nav-wrap .fl-nav-item .sub-menu a:hover {
  color: var(--gold);
  background-color: rgba(245,241,232,0.05);
}

/* Mobile nav toggle */
.fl-mobile-nav-toggle {
  color: var(--paper);
}

/* ============================================================
   BB THEMER — FOOTER
   ============================================================ */

.fl-page-footer-wrap {
  background-color: var(--ink);
  color: rgba(245,241,232,0.7);
}

.fl-page-footer-wrap p {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-wide);
  color: rgba(245,241,232,0.6);
}

.fl-page-footer-wrap a {
  color: var(--gold);
}

.fl-page-footer-wrap a:hover {
  color: var(--paper);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 1024px) {
  .fl-row-content-wrap {
    padding-left: var(--content-padding);
    padding-right: var(--content-padding);
  }
}

@media (max-width: 768px) {
  .fl-module-heading h1 { font-size: var(--text-4xl); }
  .fl-module-heading h2 { font-size: var(--text-3xl); }
  .fl-module-heading h3 { font-size: var(--text-2xl); }
}
