/*
Theme Name: Beaver Builder Child Theme
Theme URI: https://www.wpbeaverbuilder.com
Version: 1.1
Description: An example child theme that can be used as a starting point for custom development.
Author: The Beaver Builder Team
Author URI: https://www.fastlinemedia.com
Template: bb-theme
*/

/* BOH global design system layer
 *
 * Global CSS is a low-authority defaults surface. It defines tokens and base
 * typography, but it must not overpower component-owned colors or internals.
 * Component renderers/global rows/Themer layouts own their scoped visuals.
 */

:root {
	--boh-navy: #00263d;
	--boh-onyx: #232830;
	--boh-sand: #fbf7f2;
	--boh-brick: #a24d39;
	--boh-walnut: #594638;
	--boh-sky: #bed5e2;
}

body {
	margin: 0;
	font-family: "Trade Gothic Next LT Pro", sans-serif;
	color: var(--boh-onyx);
	line-height: 1.3;
}

.fl-builder-content {
	font-family: "Trade Gothic Next LT Pro", sans-serif;
	color: inherit;
	line-height: 1.3;
}

.fl-builder-content :where(p, li, blockquote, input, textarea, select) {
	font-family: "Trade Gothic Next LT Pro", sans-serif;
	color: inherit;
	line-height: 1.3;
}

.fl-builder-content :where(
	h1,
	h2,
	h3,
	h4,
	.fl-module-heading h1,
	.fl-module-heading h2,
	.fl-module-heading h3,
	.fl-module-heading h4,
	.fl-post-title,
	.fl-post-feed-title,
	.fl-post-feed-title a,
	.fl-post-grid-title,
	.fl-post-grid-title a,
	.fl-callout-title,
	.uabb-heading-text
) {
	font-family: "Pliego", serif;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.03em;
}

.fl-builder-content :where(
	h5,
	h6,
	.fl-accordion-button-label,
	.fl-tabs-label,
	.fl-post-grid-post .fl-post-meta,
	.fl-post-feed-meta
) {
	font-family: "Trade Gothic Next LT Pro", sans-serif;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.fl-builder-content :where(
	.fl-button,
	.fl-button-wrap a,
	button,
	input[type="button"],
	input[type="submit"],
	input[type="reset"]
) {
	font-family: "Trade Gothic Next LT Pro", sans-serif;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.fl-page-nav :where(.navbar-nav > li > a, .sub-menu a, .fl-page-nav-toggle-button, .menu > li > a) {
	font-family: "Trade Gothic Next LT Pro", sans-serif;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.fl-builder-content :where(.fl-rich-text a, .fl-post-feed-title a:hover, .fl-post-grid-title a:hover) {
	color: var(--boh-brick);
}

.fl-builder-content :where(
	.fl-button:hover,
	.fl-button-wrap a:hover,
	button:hover,
	input[type="button"]:hover,
	input[type="submit"]:hover,
	input[type="reset"]:hover
) {
	color: inherit;
}

/* BOH Component: BB Dual Panel — Box hierarchy correction
   Reusable dual-panel class: .boh-bb-dual-panel.
   Legacy CM alias retained: .boh-cm-bb-dual-panel.
   Box owns panel padding and inter-panel gap; modules only carry vertical exceptions. */
.boh-cm-bb-dual-row .boh-cm-bb-dual {
	gap: 20px;
}
.boh-cm-bb-dual-row .boh-bb-dual-panel,
.boh-cm-bb-dual-row .boh-cm-bb-dual-panel {
	box-sizing: border-box;
	padding: 56px;
}
.boh-cm-bb-dual-row .boh-bb-dual-panel > .fl-module > .fl-module-content,
.boh-cm-bb-dual-row .boh-cm-bb-dual-panel > .fl-module > .fl-module-content {
	margin-left: 0 !important;
	margin-right: 0 !important;
}
@media (max-width: 768px) {
	.boh-cm-bb-dual-row > .fl-row-content-wrap {
		padding-left: 20px;
		padding-right: 20px;
	}
	.boh-cm-bb-dual-row > .fl-row-content-wrap > .fl-row-content {
		width: 100% !important;
		max-width: none !important;
	}
	.boh-cm-bb-dual-row .boh-cm-bb-dual {
		gap: 20px;
	}
	.boh-cm-bb-dual-row .boh-bb-dual-panel,
	.boh-cm-bb-dual-row .boh-cm-bb-dual-panel {
		padding: 80px 40px;
	}
}

/* BOH Component: BH-CM-06B — breakpoint spacing refinements
   Large: panels touch; Medium/Mobile: row gutters collapse to zero while panels keep their own padding. */
@media (min-width: 993px) and (max-width: 1200px) {
	.boh-cm-bb-dual-row .boh-cm-bb-dual {
		gap: 0;
	}
}
@media (max-width: 992px) {
	.boh-cm-bb-dual-row > .fl-row-content-wrap {
		padding-left: 0;
		padding-right: 0;
	}
	.boh-cm-bb-dual-row > .fl-row-content-wrap > .fl-row-content {
		width: 100% !important;
		max-width: none !important;
	}
}

/* BOH Component: BH-CM-06B — final medium/mobile gutter override
   Keep after earlier temporary QA rules; BB/cache CSS may reintroduce 20px mobile padding. */
@media (max-width: 992px) {
	.fl-builder-content .boh-cm-bb-dual-row > .fl-row-content-wrap,
	.fl-page .fl-builder-content .boh-cm-bb-dual-row > .fl-row-content-wrap {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* BOH Component: BH-CM-06B — zero inter-block gap below desktop
   Desktop keeps the 20px gap; large/medium/mobile blocks touch. */
@media (max-width: 1200px) {
	.fl-builder-content .boh-cm-bb-dual-row .boh-cm-bb-dual,
	.fl-page .fl-builder-content .boh-cm-bb-dual-row .boh-cm-bb-dual {
		gap: 0 !important;
	}
}

/* BOH Component: BB-native split CTA rows (BH-CM-04D/E, BH-CM-05D/E)
   Portable shell/rhythm/button styles for rows now mounted outside Campus Ministry.
   Typography scale is intentionally left to boh-heading/boh-eyebrow modifiers. */
.boh-cm-bb-split-row > .fl-row-content-wrap {
	padding: 0;
	background: #FBF7F2;
}
.boh-cm-bb-split-row--navy > .fl-row-content-wrap {
	background: #00263D;
}
.boh-cm-bb-split-row > .fl-row-content-wrap > .fl-row-content {
	width: min(1300px, calc(100vw - 140px)) !important;
	max-width: 1300px !important;
	margin: 0 auto !important;
}
.boh-cm-bb-split-row .fl-col-group {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
	gap: 0 !important;
	align-items: stretch;
}
.boh-cm-bb-split-row .fl-col-group:before,
.boh-cm-bb-split-row .fl-col-group:after {
	display: none !important;
	content: none !important;
}
.boh-cm-bb-split-row .fl-col {
	width: auto !important;
	max-width: none !important;
	float: none !important;
	display: flex;
}
.boh-cm-bb-split-row .fl-col-content {
	width: 100%;
	min-height: 440px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.boh-cm-bb-copy-col > .fl-col-content {
	padding: 56px !important;
	background: #FBF7F2;
	color: #00263D;
}
.boh-cm-bb-copy-col--navy > .fl-col-content {
	background: #00263D;
	color: #fff;
}
.boh-cm-bb-image-col > .fl-col-content {
	padding: 0 !important;
	background: #00263D;
}
.boh-cm-bb-title {
	margin-top: 16px !important;
}
.boh-cm-bb-body {
	margin-top: 24px !important;
	max-width: 620px;
}
.boh-cm-bb-body .fl-rich-text,
.boh-cm-bb-body .fl-rich-text * {
	color: currentColor !important;
	font-family: trade-gothic-next, "Trade Gothic Next LT Pro", Arial, sans-serif !important;
	font-size: 20px !important;
	font-weight: 400 !important;
	line-height: 1.3 !important;
}
.boh-cm-bb-body .fl-rich-text p {
	margin: 0 !important;
}
.boh-cm-bb-button {
	margin-top: 28px !important;
}
.boh-cm-bb-button .fl-button-wrap {
	text-align: left !important;
}
.boh-cm-bb-button a.fl-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 15px !important;
	min-height: 53px !important;
	padding: 0 20px !important;
	border: 2px solid currentColor !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: currentColor !important;
	text-decoration: none !important;
	font-family: trade-gothic-next, "Trade Gothic Next LT Pro", Arial, sans-serif !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
}
.boh-cm-bb-button--brick a.fl-button {
	background: #A24D39 !important;
	border-color: #A24D39 !important;
	color: #fff !important;
}
.boh-cm-bb-button--navy a.fl-button {
	background: #00263D !important;
	border-color: #00263D !important;
	color: #fff !important;
}
.boh-cm-bb-button a.fl-button::after {
	content: "";
	display: block;
	flex: 0 0 auto;
	width: 25px;
	height: 11px;
	background: currentColor;
	mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 25 11%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M1 5.5h22M18.5 1l5 4.5-5 4.5%22/%3E%3C/svg%3E") center/contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 25 11%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M1 5.5h22M18.5 1l5 4.5-5 4.5%22/%3E%3C/svg%3E") center/contain no-repeat;
	transition: transform .2s ease;
}
.boh-cm-bb-button a.fl-button:hover::after,
.boh-cm-bb-button a.fl-button:focus-visible::after {
	transform: translateX(2px);
}
.cm04d-button a.fl-button,
.cm04e-button a.fl-button {
	width: 312px !important;
	box-sizing: border-box;
}
.cm05d-button a.fl-button,
.cm05e-button a.fl-button {
	width: 445px !important;
	box-sizing: border-box;
}
.boh-cm-bb-button .fl-button-text {
	display: inline !important;
	width: auto !important;
	white-space: nowrap !important;
}
.boh-cm-bb-photo,
.boh-cm-bb-photo .fl-module-content,
.boh-cm-bb-photo .fl-photo,
.boh-cm-bb-photo .fl-photo-content {
	height: 100% !important;
	width: 100% !important;
	margin: 0 !important;
}
.boh-cm-bb-photo img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 440px;
	object-fit: cover;
	object-position: center;
}
@media (max-width: 992px) {
	.boh-cm-bb-copy-col > .fl-col-content {
		padding: 42px !important;
	}
}
@media (max-width: 768px) {
	.boh-cm-bb-split-row > .fl-row-content-wrap > .fl-row-content {
		width: calc(100vw - 40px) !important;
		max-width: 362px !important;
	}
	.boh-cm-bb-split-row .fl-col-group {
		grid-template-columns: 1fr !important;
	}
	.boh-cm-bb-copy-col > .fl-col-content {
		min-height: auto;
		padding: 32px !important;
	}
	.boh-cm-bb-image-col > .fl-col-content {
		min-height: 330px;
	}
	.boh-cm-bb-photo img {
		min-height: 330px;
	}
	.boh-cm-bb-body .fl-rich-text,
	.boh-cm-bb-body .fl-rich-text * {
		font-size: 18px !important;
	}
	.boh-cm-bb-button a.fl-button {
		font-size: 16px !important;
		white-space: nowrap !important;
		letter-spacing: .075em !important;
	}
	.cm04d-button a.fl-button,
	.cm04e-button a.fl-button {
		width: 287px !important;
	}
	.cm05d-button a.fl-button,
	.cm05e-button a.fl-button {
		width: 298px !important;
	}
}

/* BOH Design Modifiers: Heading + Eyebrow system
   Module owns content; modifier owns reusable typography. */
.boh-heading:not(.fl-module),
.fl-module.boh-heading .fl-heading,
.fl-module.boh-heading .fl-heading-text {
	font-family: pliego, "Pliego", Georgia, serif !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	letter-spacing: -0.03em !important;
	text-transform: none !important;
	color: currentColor !important;
}
.boh-heading--large,
.fl-module.boh-heading--large .fl-heading,
.fl-module.boh-heading--large .fl-heading-text {
	font-size: 50px !important;
}
.boh-heading--large-sm,
.fl-module.boh-heading--large-sm .fl-heading,
.fl-module.boh-heading--large-sm .fl-heading-text {
	font-size: 48px !important;
}
.boh-heading--card-lg,
.fl-module.boh-heading--card-lg .fl-heading,
.fl-module.boh-heading--card-lg .fl-heading-text {
	font-size: 42px !important;
}
.boh-heading--card,
.fl-module.boh-heading--card .fl-heading,
.fl-module.boh-heading--card .fl-heading-text {
	font-size: 40px !important;
}
.boh-heading--card-sm,
.fl-module.boh-heading--card-sm .fl-heading,
.fl-module.boh-heading--card-sm .fl-heading-text {
	font-size: 36px !important;
}
.boh-text--balance,
.fl-module.boh-text--balance .fl-heading,
.fl-module.boh-text--balance .fl-heading-text {
	text-wrap: balance;
}
@media (max-width: 768px) {
	.boh-heading--large,
	.fl-module.boh-heading--large .fl-heading,
	.fl-module.boh-heading--large .fl-heading-text,
	.boh-heading--large-sm,
	.fl-module.boh-heading--large-sm .fl-heading,
	.fl-module.boh-heading--large-sm .fl-heading-text,
	.boh-heading--card-lg,
	.fl-module.boh-heading--card-lg .fl-heading,
	.fl-module.boh-heading--card-lg .fl-heading-text {
		font-size: 40px !important;
	}
	.boh-heading--card,
	.fl-module.boh-heading--card .fl-heading,
	.fl-module.boh-heading--card .fl-heading-text {
		font-size: 36px !important;
	}
	.boh-heading--card-sm,
	.fl-module.boh-heading--card-sm .fl-heading,
	.fl-module.boh-heading--card-sm .fl-heading-text {
		font-size: 32px !important;
	}
}

.boh-eyebrow:not(.fl-module),
.fl-module.boh-eyebrow .fl-heading,
.fl-module.boh-eyebrow .fl-heading-text {
	font-family: trade-gothic-next, "Trade Gothic Next LT Pro", Arial, sans-serif !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	color: currentColor !important;
}
.boh-eyebrow--section,
.fl-module.boh-eyebrow--section .fl-heading,
.fl-module.boh-eyebrow--section .fl-heading-text {
	font-size: 18px !important;
}
@media (max-width: 768px) {
	.boh-eyebrow--compact-mobile,
	.fl-module.boh-eyebrow--compact-mobile .fl-heading,
	.fl-module.boh-eyebrow--compact-mobile .fl-heading-text {
		font-size: 13px !important;
	}
}

/* BOH Typography Modifier Scales — Figma 90/70/50 heading system */
.boh-heading--hero,
.fl-module.boh-heading--hero .fl-heading,
.fl-module.boh-heading--hero .fl-heading-text {
	font-size: 90px !important;
}
.boh-heading--display,
.fl-module.boh-heading--display .fl-heading,
.fl-module.boh-heading--display .fl-heading-text {
	font-size: 70px !important;
}
@media (max-width: 768px) {
	.boh-heading--hero,
	.fl-module.boh-heading--hero .fl-heading,
	.fl-module.boh-heading--hero .fl-heading-text {
		font-size: 58px !important;
	}
	.boh-heading--display,
	.fl-module.boh-heading--display .fl-heading,
	.fl-module.boh-heading--display .fl-heading-text {
		font-size: 50px !important;
	}
}

/* BOH Typography Modifier: card eyebrow scale */
.boh-eyebrow--card,
.fl-module.boh-eyebrow--card .fl-heading,
.fl-module.boh-eyebrow--card .fl-heading-text {
	font-size: 16px !important;
}

/* BOH Typography Modifier: enforce approved 90→58 hero scale in hero context. */
@media (max-width: 768px) {
	.boh-hero .boh-heading.boh-heading--hero.boh-hero__headline,
	.fl-builder-content .boh-hero .boh-heading.boh-heading--hero.boh-hero__headline {
		font-size: 58px !important;
		line-height: .92 !important;
	}
}

/* BOH Component Rhythm: Hero
   Typography modifiers are spacing-neutral; hero part classes own hero rhythm. */
.boh-hero .boh-hero__eyebrow {
	margin-bottom: 20px !important;
}

/* BOH Component Shell: Campus Ministry partner grid
   Prevent BB fixed-width mobile max-width from creating huge tablet gutters.
   Component shell owns outer gutters; card grid owns columns/gap. */
@media (min-width: 769px) and (max-width: 992px) {
	.fl-builder-content .boh-cm-partner-grid-row > .fl-row-content-wrap > .fl-row-content,
	.fl-page .fl-builder-content .boh-cm-partner-grid-row > .fl-row-content-wrap > .fl-row-content {
		width: calc(100vw - 40px) !important;
		max-width: none !important;
	}
}
@media (max-width: 768px) {
	.fl-builder-content .boh-cm-partner-grid-row > .fl-row-content-wrap > .fl-row-content,
	.fl-page .fl-builder-content .boh-cm-partner-grid-row > .fl-row-content-wrap > .fl-row-content {
		width: calc(100vw - 40px) !important;
		max-width: none !important;
	}
}

/* BOH Component Shell: CM03 mobile/tablet 20px gutters must beat BB flex stretching. */
@media (max-width: 992px) {
	.fl-builder-content .boh-cm-partner-grid-row.fl-row > .fl-row-content-wrap > .fl-row-content,
	.fl-page .fl-builder-content .boh-cm-partner-grid-row.fl-row > .fl-row-content-wrap > .fl-row-content {
		width: calc(100vw - 40px) !important;
		max-width: calc(100vw - 40px) !important;
		flex: 0 0 calc(100vw - 40px) !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

/* BOH Component Rhythm: CM03 mobile row bottom padding */
@media (max-width: 768px) {
	.fl-builder-content .boh-cm-partner-grid-row.fl-row > .fl-row-content-wrap,
	.fl-page .fl-builder-content .boh-cm-partner-grid-row.fl-row > .fl-row-content-wrap {
		padding-bottom: 20px !important;
	}
}

/* BOH Card Mobile Reveal: descriptions reveal as cards enter viewport on scroll. */
@media (max-width: 768px) {
	.boh-cm-card.is-mobile-revealed .boh-cm-card__media:after {
		opacity: 1;
	}
	.boh-cm-card.is-mobile-revealed .boh-cm-card__text {
		max-height: 420px;
		margin-top: 16px;
		opacity: 1;
		transform: translateY(0);
	}
}

/* BOH BB Dual Panel: anchor final button to bottom by letting body copy grow. */
.boh-cm-bb-dual-row .boh-bb-dual-panel,
.boh-cm-bb-dual-row .boh-cm-bb-dual-panel {
	justify-content: flex-start !important;
}
.boh-cm-bb-dual-row .boh-bb-dual-panel .boh-cm-bb-body,
.boh-cm-bb-dual-row .boh-cm-bb-dual-panel .boh-cm-bb-body {
	flex: 1 1 auto !important;
}

/* BOH | Beaver Builder editor compatibility
 * Keep frontend component stacking intact, but ensure BB node menus/settings stay above
 * shortcode/component internals while editing. This prevents hero layers/text from
 * visually or interactively covering Box/row/module settings menus in the builder UI.
 */
html.fl-builder-edit .boh-hero,
body.fl-builder .boh-hero {
  isolation: auto !important;
}

html.fl-builder-edit .boh-hero__media,
html.fl-builder-edit .boh-hero__overlay,
body.fl-builder .boh-hero__media,
body.fl-builder .boh-hero__overlay {
  pointer-events: none !important;
}

html.fl-builder-edit .fl-block-overlay-actions,
html.fl-builder-edit .fl-builder-has-submenu > ul.fl-builder-submenu,
html.fl-builder-edit .fl-builder--main-menu-panel,
html.fl-builder-edit .fl-builder-panel,
html.fl-builder-edit .fl-lightbox-wrap,
body.fl-builder .fl-block-overlay-actions,
body.fl-builder .fl-builder-has-submenu > ul.fl-builder-submenu,
body.fl-builder .fl-builder--main-menu-panel,
body.fl-builder .fl-builder-panel,
body.fl-builder .fl-lightbox-wrap {
  z-index: 10000020 !important;
}
