/*
Theme Name:   Black Flag Expeditions
Theme URI:    https://blackflagexpeditions.com
Description:  Divi child theme for Black Flag Expeditions, Edward Teach Charters, The Pirate Diving Company and Black Flag Media.
Author:       Black Flag Expeditions
Template:     Divi
Version:      1.4.1
Text Domain:  bfe
*/

/* =========================================================
   1. BRAND TOKENS (from the Black Flag brand guide)
   ========================================================= */
:root {
	--bfe-teal: #00838B;
	--bfe-dark-teal: #002324;
	--bfe-orange: #F24226;
	--bfe-cream: #FBF2DF;

	/* working shades derived from the brand colors */
	--bfe-abyss: #001819;            /* deepest background */
	--bfe-teal-light: #5CC3C9;       /* small teal text on dark, readable */
	--bfe-cream-muted: rgba(251, 242, 223, .78);
	--bfe-line: rgba(92, 195, 201, .30);
	--bfe-panel: rgba(0, 35, 36, .72);

	--bfe-font-display: 'Oswald', 'DIN Condensed', 'Arial Narrow', sans-serif;
	--bfe-font-body: 'Avenir Next', 'Avenir', 'Nunito Sans', 'Segoe UI', sans-serif;
	--bfe-font-note: 'Gochi Hand', 'Marker Felt', cursive;

	--bfe-max: 1280px;
	--bfe-radius: 2px;
}

/* =========================================================
   2. GLOBAL BASE (every section with the .bfe class)
   ========================================================= */
body,
#page-container,
#et-main-area,
#main-content {
	background-color: var(--bfe-abyss);
}

.et_pb_section.bfe {
	position: relative;
	background-color: var(--bfe-dark-teal);
	color: var(--bfe-cream-muted);
	font-family: var(--bfe-font-body);
	font-size: 16px;
	line-height: 1.55;
	padding: 0;
	overflow: hidden;
}

.et_pb_section.bfe .et_pb_row {
	width: 90%;
	max-width: var(--bfe-max);
	margin: 0 auto;
	padding: 0;
}

.et_pb_section.bfe .et_pb_module {
	margin-bottom: 0;
}

.et_pb_section.bfe h1,
.et_pb_section.bfe h2,
.et_pb_section.bfe h3,
.et_pb_section.bfe h4 {
	font-family: var(--bfe-font-display);
	color: var(--bfe-cream) !important;
	text-transform: uppercase;
	font-weight: 600;
	letter-spacing: .01em;
	line-height: 1.05;
	padding: 0;
	margin: 0;
}

.et_pb_section.bfe p {
	color: var(--bfe-cream-muted);
	padding: 0;
	margin: 0;
}

.et_pb_section.bfe p + p { margin-top: 1em; }

.et_pb_section.bfe a { color: var(--bfe-cream); }
.et_pb_section.bfe a:hover { color: var(--bfe-orange); }

/* Topographic chart texture */
.bfe--chart {
	background-image:
		linear-gradient(180deg, rgba(0, 24, 25, .35), rgba(0, 24, 25, .6)),
		url("assets/img/topo.svg") !important;
	background-size: auto, 1400px 900px !important;
	background-repeat: repeat !important;
}

/* Section labels */
.bfe-eyebrow {
	display: block;
	font-family: var(--bfe-font-display);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--bfe-teal-light) !important;
	margin-bottom: 12px;
}

.bfe-tagline {
	font-family: var(--bfe-font-display);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--bfe-orange) !important;
}

.bfe-note {
	font-family: var(--bfe-font-note);
	color: var(--bfe-teal-light);
	font-size: 22px;
	line-height: 1.1;
	text-transform: uppercase;
}

.bfe-coords {
	font-family: var(--bfe-font-display);
	font-size: 13px;
	letter-spacing: .12em;
	color: var(--bfe-cream);
	text-transform: uppercase;
	line-height: 1.5;
}

/* Section heading row: TITLE ———— LINK > */
.bfe-headline .et_pb_text_inner {
	display: flex;
	align-items: center;
	gap: 24px;
}

.bfe-headline h2 {
	font-size: 30px !important;
	white-space: nowrap;
}

.bfe-headline .bfe-rule {
	flex: 1 1 auto;
	height: 1px;
	background: linear-gradient(90deg, var(--bfe-orange) 0 60px, var(--bfe-line) 60px);
}

.bfe-headline .bfe-sub {
	font-family: var(--bfe-font-display);
	font-size: 12px;
	letter-spacing: .14em;
	color: var(--bfe-teal-light);
	text-transform: uppercase;
	white-space: nowrap;
}

/* =========================================================
   3. BUTTONS (Divi Button module + class)
   ========================================================= */
body #page-container .et_pb_section .et_pb_button.bfe-btn,
.et_pb_button.bfe-btn {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-family: var(--bfe-font-display) !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase;
	white-space: nowrap;
	line-height: 1 !important;
	padding: 15px 24px !important;
	min-height: 48px;
	box-sizing: border-box;
	border-radius: var(--bfe-radius) !important;
	border: 2px solid var(--bfe-cream) !important;
	background: transparent !important;
	color: var(--bfe-cream) !important;
	transition: background-color .2s, border-color .2s, color .2s;
}

/* Replace Divi's hover arrow with an always-on chevron */
body #page-container .et_pb_section .et_pb_button.bfe-btn:before { display: none !important; }
body #page-container .et_pb_section .et_pb_button.bfe-btn:after,
.et_pb_button.bfe-btn:after {
	content: "" !important;
	position: static !important;
	display: inline-block !important;
	opacity: 1 !important;
	margin: 0 !important;
	width: 8px;
	height: 13px;
	font-size: 0 !important;
	background-color: currentColor;
	-webkit-mask: url("assets/img/chevron.svg") center / contain no-repeat;
	mask: url("assets/img/chevron.svg") center / contain no-repeat;
	transition: transform .2s;
}

body #page-container .et_pb_section .et_pb_button.bfe-btn:hover,
.et_pb_button.bfe-btn:hover {
	padding: 15px 24px !important;
	border-color: var(--bfe-orange) !important;
	color: var(--bfe-orange) !important;
	background: transparent !important;
}

.et_pb_button.bfe-btn:hover:after { transform: translateX(3px); }

.et_pb_button.bfe-btn:focus-visible {
	outline: 3px solid var(--bfe-teal-light);
	outline-offset: 3px;
}

/* Solid orange */
body #page-container .et_pb_section .et_pb_button.bfe-btn--orange,
.et_pb_button.bfe-btn--orange {
	background: var(--bfe-orange) !important;
	border-color: var(--bfe-orange) !important;
	color: var(--bfe-cream) !important;
}

body #page-container .et_pb_section .et_pb_button.bfe-btn--orange:hover,
.et_pb_button.bfe-btn--orange:hover {
	background: #D9341A !important;
	border-color: #D9341A !important;
	color: var(--bfe-cream) !important;
}

/* Solid teal */
body #page-container .et_pb_section .et_pb_button.bfe-btn--teal,
.et_pb_button.bfe-btn--teal {
	background: var(--bfe-teal) !important;
	border-color: var(--bfe-teal) !important;
	color: var(--bfe-cream) !important;
}

body #page-container .et_pb_section .et_pb_button.bfe-btn--teal:hover,
.et_pb_button.bfe-btn--teal:hover {
	background: #006B72 !important;
	border-color: #006B72 !important;
	color: var(--bfe-cream) !important;
}

/* Outline orange (card CTA) */
body #page-container .et_pb_section .et_pb_button.bfe-btn--line-orange,
.et_pb_button.bfe-btn--line-orange {
	border-color: var(--bfe-orange) !important;
	color: var(--bfe-orange) !important;
}

/* Outline teal (card CTA) */
body #page-container .et_pb_section .et_pb_button.bfe-btn--line-teal,
.et_pb_button.bfe-btn--line-teal {
	border-color: var(--bfe-teal-light) !important;
	color: var(--bfe-cream) !important;
}

body #page-container .et_pb_section .et_pb_button.bfe-btn--sm,
.et_pb_button.bfe-btn--sm {
	font-size: 14px !important;
	padding: 10px 18px !important;
	min-height: 40px;
}

body #page-container .et_pb_section .et_pb_button.bfe-btn--sm:hover,
.et_pb_button.bfe-btn--sm:hover { padding: 10px 18px !important; }

/* Text link with chevron */
.bfe-link {
	font-family: var(--bfe-font-display);
	font-size: 13px;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--bfe-cream) !important;
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
}

.bfe-link:after {
	content: "";
	width: 7px;
	height: 11px;
	background-color: var(--bfe-orange);
	-webkit-mask: url("assets/img/chevron.svg") center / contain no-repeat;
	mask: url("assets/img/chevron.svg") center / contain no-repeat;
}

.bfe-link:hover { color: var(--bfe-orange) !important; }

/* Flex columns: Divi stacks modules; these let them sit in a row */
.et_pb_column.bfe-flex {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
}

.et_pb_column.bfe-flex > .et_pb_module { margin: 0 !important; }

/* =========================================================
   4. HEADER (Theme Builder → Global Header)
   ========================================================= */
.et_pb_section.bfe-header {
	background-color: rgba(0, 24, 25, .94) !important;
	border-bottom: 1px solid var(--bfe-line);
	z-index: 50;
	overflow: visible;
}

.bfe-header .et_pb_row { padding: 14px 0 !important; }

.bfe-header .et_pb_column.bfe-flex {
	flex-wrap: nowrap;
	justify-content: space-between;
	gap: 24px;
}

.bfe-logo a {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
}

.et_pb_text.bfe-logo { flex: 0 0 auto; }

.bfe-logo img {
	height: 68px;
	width: auto;
	max-width: none;
	display: block;
}

/* Divi Menu module */
.et_pb_menu.bfe-nav { flex: 1 1 auto; background: transparent !important; }
.et_pb_menu.bfe-nav .et_pb_menu__wrap { justify-content: flex-end; }

.et_pb_menu.bfe-nav .et-menu > li { padding-left: 16px; padding-right: 16px; }

.et_pb_menu.bfe-nav .et-menu > li > a {
	font-family: var(--bfe-font-display);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--bfe-cream) !important;
	padding: 12px 0 !important;
}

.et_pb_menu.bfe-nav .et-menu > li > a:hover,
.et_pb_menu.bfe-nav .et-menu > li.current-menu-item > a { color: var(--bfe-orange) !important; opacity: 1; }

.et_pb_menu.bfe-nav .et-menu .sub-menu {
	background: var(--bfe-dark-teal);
	border-top: 2px solid var(--bfe-orange);
}

.et_pb_menu.bfe-nav .et-menu .sub-menu a { color: var(--bfe-cream) !important; }

.et_pb_menu.bfe-nav .et_pb_menu__icon,
.et_pb_menu.bfe-nav .mobile_menu_bar {
	color: var(--bfe-cream);
	background: transparent;
	border: 0;
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.et_pb_menu.bfe-nav .et_pb_menu__search-button:after,
.et_pb_menu.bfe-nav .mobile_menu_bar:before {
	content: "" !important;
	font-family: inherit !important;
	display: block;
	width: 20px;
	height: 20px;
	background-color: var(--bfe-cream);
	-webkit-mask: url("assets/img/search.svg") center / contain no-repeat;
	mask: url("assets/img/search.svg") center / contain no-repeat;
}

.et_pb_menu.bfe-nav .mobile_menu_bar:before {
	width: 28px;
	height: 28px;
	-webkit-mask-image: url("assets/img/menu.svg");
	mask-image: url("assets/img/menu.svg");
}

.et_pb_menu.bfe-nav .et_mobile_menu {
	background: var(--bfe-dark-teal) !important;
	border-top: 2px solid var(--bfe-orange) !important;
}

.et_pb_menu.bfe-nav .et_mobile_menu a { color: var(--bfe-cream) !important; font-family: var(--bfe-font-display); text-transform: uppercase; letter-spacing: .08em; }

/* =========================================================
   5. HERO
   Chart background: a satellite-style coastline fading into bathymetric
   topo lines (assets/img/hero-map.jpg). The collage runs full height to the
   right edge, and on the home page the header floats over the chart.
   ========================================================= */
.et_pb_section.bfe-hero {
	padding: 0;
	background-color: var(--bfe-abyss) !important;
	background-image:
		linear-gradient(90deg, rgba(0, 24, 25, .55) 0%, rgba(0, 24, 25, 0) 32%),
		url("assets/img/hero-map.jpg") !important;
	background-size: auto, cover !important;
	background-position: 0 0, 20% 0 !important;
	background-repeat: no-repeat !important;
	border-bottom: 1px solid var(--bfe-line);
}

/* Header over the chart (home page only) */
body.home #page-container { position: relative; }
body.home .et-l--header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
}
body.home .et_pb_section.bfe-header,
body.home .et_pb_section.bfe-header.bfe--chart {
	background-color: transparent !important;
	background-image: linear-gradient(180deg, rgba(0, 18, 20, .78), rgba(0, 18, 20, .35)) !important;
	border-bottom-color: rgba(92, 195, 201, .22);
}
body.home .et_pb_section.bfe-hero { padding-top: 97px; }

.bfe-hero .et_pb_row.bfe-hero__row {
	display: grid !important;
	grid-template-columns: minmax(0, 44fr) minmax(0, 56fr);
	gap: 0;
	align-items: stretch;
	padding: 0 !important;
	width: 100%;
	max-width: none;
}

.bfe-hero .et_pb_row.bfe-hero__row > .et_pb_column {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}

.et_pb_column.bfe-hero__copy {
	padding: 34px 32px 44px max(5vw, calc((100vw - 1280px) / 2)) !important;
	align-content: center;
	align-self: center;
}

.bfe-hero h1 {
	font-size: clamp(56px, 7vw, 108px) !important;
	font-weight: 700 !important;
	line-height: .93 !important;
	letter-spacing: 0 !important;
	text-shadow: 0 4px 24px rgba(0, 0, 0, .55);
}

.bfe-hero h1 .bfe-accent { color: var(--bfe-orange); }

.bfe-hero .bfe-fly {
	display: block;
	margin: 18px 0 20px;
	font-family: var(--bfe-font-display);
	font-weight: 400;
	font-size: clamp(20px, 2vw, 28px);
	letter-spacing: .45em;
	color: var(--bfe-cream);
	text-transform: uppercase;
}

.bfe-hero__intro p {
	font-size: 16.5px;
	max-width: 470px;
	color: var(--bfe-cream);
	text-shadow: 0 1px 10px rgba(0, 0, 0, .8);
}

.bfe-hero .et_pb_text.bfe-hero__intro { flex: 1 1 100%; margin-bottom: 12px !important; }

/* Collage: four photo panels cut on the diagonal, flush to the top, bottom and right edge */
.et_pb_column.bfe-collage {
	position: relative;
	min-height: clamp(460px, 38vw, 600px);
}

.bfe-collage > .et_pb_module { position: absolute !important; margin: 0 !important; }

.bfe-collage .et_pb_image .et_pb_image_wrap,
.bfe-collage .et_pb_image img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

.bfe-collage__boat   { left: 1.5%; top: 0.0%; width: 59.5%; height: 53.5%; z-index: 3; clip-path: polygon(0.0% 0.0%, 100.0% 0.0%, 79.8% 100.0%, 12.6% 94.4%); }
.bfe-collage__wreck  { left: 50.5%; top: 0.0%; width: 23.0%; height: 56.0%; z-index: 2; clip-path: polygon(52.2% 0.0%, 100.0% 0.0%, 80.4% 100.0%, 0.0% 96.1%); }
.bfe-collage__diver  { left: 8.5%; top: 52.2%; width: 63.0%; height: 47.8%; z-index: 3; clip-path: polygon(8.7% 0.0%, 100.0% 12.1%, 93.2% 100.0%, 0.0% 100.0%); }
.bfe-collage__turtle { left: 68.8%; top: 43.0%; width: 31.2%; height: 57.0%; z-index: 4; clip-path: polygon(19.9% 4.4%, 100.0% 0.0%, 100.0% 100.0%, 0.0% 100.0%); }

.bfe-collage__note   { left: 3%;  top: 2%;  z-index: 5; transform: rotate(-10deg); width: 28%; }
.bfe-collage__note .bfe-note { font-size: clamp(18px, 1.7vw, 24px); text-shadow: 0 1px 8px rgba(0,0,0,.6); }
.bfe-collage__compass{ right: 3%; top: 4%;  z-index: 5; width: 17%; text-align: center; }
.bfe-collage__compass .bfe-coords { font-size: 12px; line-height: 1.45; }
.bfe-collage__compass img { width: 100%; height: auto; display: block; margin-bottom: 10px; }
.bfe-collage__words  { right: 3%; bottom: 5%; z-index: 6; }

.bfe-collage__words .bfe-coords { line-height: 1.6; text-shadow: 0 1px 6px rgba(0,0,0,.8); }

/* =========================================================
   6. BRAND CARDS
   ========================================================= */
.et_pb_section.bfe-brands { padding: 0 0 56px; background-color: var(--bfe-abyss) !important; }

.bfe-brands .et_pb_row.bfe-cards {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	padding-top: 16px !important;
}

.bfe-cards > .et_pb_column {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	position: relative;
	background: var(--bfe-panel);
	border: 1px solid var(--bfe-line);
	text-align: center;
	display: flex !important;
	flex-direction: column;
	align-items: center;
	padding-bottom: 28px;
}

.bfe-card__photo { width: 100%; }
.bfe-card__photo .et_pb_image_wrap,
.bfe-card__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 330 / 160;
	object-fit: cover;
}

.bfe-card__photo:after {    /* fade photo into card */
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 55%;
	background: linear-gradient(180deg, rgba(0,35,36,0), var(--bfe-dark-teal));
	pointer-events: none;
}

.bfe-card__photo { position: relative; }

/* Brand logo over the photo: sized by height so every mark sits on the same line */
.et_pb_image.bfe-card__logo {
	position: absolute !important;
	top: 18px;
	left: 0;
	right: 0;
	height: 132px;
	z-index: 2;
	display: flex;
	justify-content: center;
	align-items: center;
	pointer-events: none;
}

.et_pb_image.bfe-card__logo .et_pb_image_wrap { display: block; height: 100%; }

.et_pb_image.bfe-card__logo img {
	height: 100%;
	width: auto;
	max-width: 80%;
	object-fit: contain;
	margin: 0 auto;
	display: block;
	filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .7));
}

.et_pb_image.bfe-card__logo--wide { height: 100px; top: 34px; }

.bfe-card__body { padding: 14px 28px 22px; position: relative; z-index: 2; }

.bfe-card__body h3 { font-size: 28px !important; font-weight: 500 !important; }

.bfe-card__body .bfe-tagline { display: block; margin: 8px 0 14px; }

.bfe-card__body p { font-size: 15.5px; }

.bfe-cards .et_pb_button_module_wrapper { margin-top: auto !important; }

/* =========================================================
   7. FEATURED EXPERIENCES
   ========================================================= */
.et_pb_section.bfe-experiences { padding: 8px 0 40px; background-color: var(--bfe-abyss) !important; }

.bfe-experiences .et_pb_row.bfe-headline-row { padding-bottom: 22px !important; }

.bfe-experiences .et_pb_row.bfe-tiles {
	display: grid !important;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 10px;
}

.bfe-tiles > .et_pb_column {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	position: relative;
	border: 1px solid var(--bfe-line);
	overflow: hidden;
	cursor: pointer;
}

.bfe-tile__img .et_pb_image_wrap,
.bfe-tile__img img {
	display: block;
	width: 100%;
	aspect-ratio: 157 / 118;
	object-fit: cover;
	transition: transform .4s;
}

.bfe-tiles > .et_pb_column:hover .bfe-tile__img img { transform: scale(1.05); }

.et_pb_text.bfe-tile__label {
	position: absolute !important;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 34px 12px 10px;
	background: linear-gradient(180deg, rgba(0, 24, 25, 0), rgba(0, 24, 25, .92) 55%);
}

.bfe-tile__label .bfe-cat {
	display: block;
	font-family: var(--bfe-font-display);
	font-size: 11px;
	letter-spacing: .14em;
	color: var(--bfe-orange);
	text-transform: uppercase;
}

.bfe-tile__label h3 {
	font-size: 17px !important;
	font-weight: 500 !important;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}

.bfe-tile__label h3:after {
	content: "";
	flex: 0 0 7px;
	height: 11px;
	background-color: var(--bfe-orange);
	-webkit-mask: url("assets/img/chevron.svg") center / contain no-repeat;
	mask: url("assets/img/chevron.svg") center / contain no-repeat;
}

/* =========================================================
   8. ABOUT
   ========================================================= */
.et_pb_section.bfe-about {
	border-top: 1px solid var(--bfe-line);
	border-bottom: 1px solid var(--bfe-line);
}

.bfe-about .et_pb_row.bfe-about__row {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	width: 100%;
	max-width: none;
	gap: 0;
}

.bfe-about__row > .et_pb_column {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	position: relative;
}

.bfe-about__media .bfe-about__img,
.bfe-about__media .bfe-about__img .et_pb_image_wrap { height: 100%; display: block; }

.bfe-about__media .bfe-about__img img {
	width: 100%;
	height: 100%;
	min-height: 320px;
	object-fit: cover;
	display: block;
	-webkit-mask-image: linear-gradient(90deg, #000 70%, transparent);
	mask-image: linear-gradient(90deg, #000 70%, transparent);
}

.et_pb_text.bfe-about__note   { position: absolute !important; left: 4%; top: 8%; transform: rotate(-12deg); width: 160px; z-index: 2; }
.et_pb_text.bfe-about__coords { position: absolute !important; left: 9%; bottom: 10%; z-index: 2; }
.bfe-about__note .bfe-note { color: var(--bfe-orange); font-size: 24px; }

.bfe-about__copy {
	padding: 48px 6% 48px 4% !important;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 40px;
	align-content: center;
}

.bfe-about__copy > .et_pb_module { grid-column: 1; }
.bfe-about__copy > .et_pb_text.bfe-about__side { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.bfe-about__copy .et_pb_button_module_wrapper { margin-top: 18px !important; }

.bfe-about__copy h2 { font-size: clamp(32px, 3vw, 42px) !important; font-weight: 500 !important; margin-bottom: 18px !important; }
.bfe-about__copy p { font-size: 16.5px; max-width: 560px; }

.bfe-about__side img { width: 84px; display: block; margin: 0 auto 16px; opacity: .8; }

/* =========================================================
   9. JOURNAL (Divi Blog module, fullwidth layout)
   ========================================================= */
.et_pb_section.bfe-journal { padding: 22px 0 32px; background-color: var(--bfe-abyss) !important; }

.bfe-journal .et_pb_row.bfe-headline-row { padding-bottom: 18px !important; }

.bfe-posts .et_pb_ajax_pagination_container {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}

.bfe-posts article.et_pb_post {
	display: grid;
	grid-template-columns: minmax(0, 46%) minmax(0, 1fr);
	column-gap: 14px;
	align-items: start;
	margin: 0 !important;
	padding: 0 !important;
	border: 0;
}

.bfe-posts article.et_pb_post > * { grid-column: 2; }

.bfe-posts .entry-featured-image-url {
	grid-column: 1 !important;
	grid-row: 1 / span 4;
	margin: 0 !important;
	display: block;
}

.bfe-posts .entry-featured-image-url img {
	width: 100%;
	aspect-ratio: 4 / 3.3;
	object-fit: cover;
	display: block;
}

.bfe-posts .entry-title {
	font-size: 15px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	margin-bottom: 4px !important;
}

.bfe-posts .entry-title a { color: var(--bfe-cream) !important; text-decoration: none; }

.bfe-posts .post-meta {
	font-family: var(--bfe-font-display);
	font-size: 11px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--bfe-teal-light) !important;
	margin: 0 0 6px !important;
	padding: 0 !important;
}

.bfe-posts .post-meta a { color: inherit !important; }

.bfe-posts .post-content p { font-size: 13px; line-height: 1.45; }

.bfe-posts .more-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
	font-family: var(--bfe-font-display);
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bfe-orange) !important;
	text-decoration: none;
}

.bfe-posts .more-link:after {
	content: "";
	width: 6px;
	height: 10px;
	background-color: currentColor;
	-webkit-mask: url("assets/img/chevron.svg") center / contain no-repeat;
	mask: url("assets/img/chevron.svg") center / contain no-repeat;
}

/* =========================================================
   10. CTA BAND + FOOTER (Theme Builder → Global Footer)
   ========================================================= */
.et_pb_section.bfe-cta {
	border-top: 1px solid var(--bfe-line);
	background-image:
		linear-gradient(90deg, rgba(0, 24, 25, .96) 0%, rgba(0, 24, 25, .88) 55%, rgba(0, 24, 25, .72) 100%),
		url("assets/img/photo-compass-flag.jpg") !important;
	background-size: cover !important;
	background-position: center 40% !important;
}

.bfe-cta .et_pb_row { padding: 28px 0 !important; }

.bfe-cta .et_pb_column.bfe-flex { justify-content: space-between; gap: 18px 28px; flex-wrap: nowrap; }

.bfe-cta__title .et_pb_text_inner { display: flex; align-items: center; gap: 20px; }
.bfe-cta__title img { height: 64px; width: auto; max-width: none; display: block; }
.bfe-cta__title h2 { font-size: 26px !important; font-weight: 500 !important; line-height: 1.1 !important; white-space: nowrap; }
.et_pb_text.bfe-cta__title { flex: 0 0 auto; }

.et_pb_text.bfe-cta__text { flex: 1 1 260px; }
.bfe-cta__text p { font-size: 14.5px; }

.et_pb_section.bfe-footer { background-color: var(--bfe-abyss) !important; border-top: 1px solid var(--bfe-line); }
.bfe-footer .et_pb_row.bfe-footer__brands { padding: 32px 0 26px !important; border-bottom: 1px solid var(--bfe-line); }
.bfe-footer__logos .et_pb_text_inner { flex-direction: column; align-items: center; text-align: center; }
.bfe-footer__logos .bfe-eyebrow { margin: 4px 0 0; }
.bfe-footer__logos a.bfe-footer__main { opacity: 1; padding: 0; }
.bfe-footer__logos a.bfe-footer__main img { height: 120px; }
.bfe-footer__logos nav { align-items: center; justify-content: center; gap: 20px 56px; }
.bfe-footer__logos a { padding: 6px; opacity: .85; transition: opacity .2s; }
.bfe-footer__logos a:hover { opacity: 1; }
.bfe-footer__logos img { height: 78px; width: auto; display: block; }
.bfe-footer__logos nav a:first-child img { height: 54px; }
.bfe-footer .et_pb_row { padding: 20px 0 !important; }
.bfe-footer .et_pb_text_inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 24px;
	font-size: 13px;
	color: var(--bfe-cream-muted);
}
.bfe-footer nav { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.bfe-footer a { text-decoration: none; display: inline-block; padding: 4px 0; }

/* =========================================================
   11. RESPONSIVE (Divi breakpoints: 980 / 767)
   ========================================================= */
@media (max-width: 1180px) {
	.et_pb_section.bfe-hero { background-position: 0 0, 30% 0 !important; }
	.bfe-logo img { height: 46px; }
	.bfe-header .et_pb_column.bfe-flex { gap: 12px; }
	.et_pb_menu.bfe-nav .et-menu { flex-wrap: nowrap; }
	.et_pb_menu.bfe-nav .et-menu > li { padding-left: 7px; padding-right: 7px; }
	.et_pb_menu.bfe-nav .et-menu > li > a { font-size: 14px; letter-spacing: .04em; }
	body #page-container .et_pb_section.bfe-header .et_pb_button.bfe-btn,
	body #page-container .et_pb_section.bfe-header .et_pb_button.bfe-btn:hover { font-size: 14px !important; padding: 10px 16px !important; min-height: 40px; }
	.bfe-card__photo .et_pb_image_wrap, .bfe-card__photo img { aspect-ratio: 330 / 180; }
	.et_pb_image.bfe-card__logo { height: 116px; }
	.et_pb_image.bfe-card__logo--wide { height: 84px; top: 34px; }
	.bfe-experiences .et_pb_row.bfe-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.bfe-posts .et_pb_ajax_pagination_container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bfe-cta .et_pb_column.bfe-flex { flex-wrap: wrap; }
}

@media (max-width: 980px) {
	.bfe-header .et_pb_button_module_wrapper { display: none !important; }
	.bfe-hero .et_pb_row.bfe-hero__row { grid-template-columns: 1fr; }
	.et_pb_column.bfe-hero__copy { padding: 36px 5vw 32px !important; }
	.et_pb_column.bfe-collage { min-height: 62vw; }
	body.home .et_pb_section.bfe-hero { padding-top: 75px; }
	.et_pb_section.bfe-hero { background-position: 0 0, 30% 0 !important; }
	.bfe-brands .et_pb_row.bfe-cards { grid-template-columns: 1fr; max-width: 560px; }
	.bfe-about .et_pb_row.bfe-about__row { grid-template-columns: 1fr; }
	.bfe-about__media .bfe-about__img img { -webkit-mask-image: none; mask-image: none; min-height: 260px; }
	.bfe-headline .bfe-sub { display: none; }
	.bfe-card__photo .et_pb_image_wrap, .bfe-card__photo img { aspect-ratio: 330 / 160; }
	.bfe-cards > .et_pb_column { margin-bottom: 0 !important; }
}

@media (max-width: 767px) {
	.bfe-cta__title img { height: 52px; }
	.bfe-footer__logos a.bfe-footer__main img { height: 96px; }
	.bfe-logo img { height: 40px; }

	.bfe-hero h1 { font-size: 58px !important; }
	.bfe-hero .bfe-fly { letter-spacing: .32em; }
	.et_pb_column.bfe-collage { aspect-ratio: auto; display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; }
	.bfe-collage > .et_pb_module { position: static !important; width: auto !important; height: auto !important; clip-path: none !important; transform: none !important; }
	.bfe-collage .et_pb_image img { aspect-ratio: 4 / 3; }
	.bfe-collage__boat { grid-column: 1 / -1; }
	.bfe-collage__note, .bfe-collage__compass, .bfe-collage__words, .bfe-collage__wreck { display: none !important; }
	.et_pb_column.bfe-collage { min-height: 0; padding: 0 12px 16px !important; }
	body.home .et_pb_section.bfe-hero { padding-top: 69px; }
	.et_pb_section.bfe-hero {
		background-image: linear-gradient(180deg, rgba(0, 24, 25, .35), rgba(0, 24, 25, .6) 60%, rgba(0, 24, 25, .85)), url("assets/img/hero-map.jpg") !important;
		background-position: 0 0, 22% 0 !important;
	}

	.bfe-experiences .et_pb_row.bfe-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bfe-headline .et_pb_text_inner { flex-wrap: wrap; gap: 8px 16px; }
	.bfe-headline .bfe-rule { display: none; }
	.bfe-headline h2 { white-space: normal; font-size: 26px !important; }

	.bfe-about__copy { grid-template-columns: 1fr; padding: 36px 5% !important; }
	.bfe-about__copy > .et_pb_text.bfe-about__side { display: none !important; }

	.bfe-posts .et_pb_ajax_pagination_container { grid-template-columns: 1fr; }

	.bfe-cta .et_pb_column.bfe-flex { flex-direction: column; align-items: flex-start; }
	.bfe-cta .et_pb_text.bfe-cta__text { flex: none; }
	.bfe-cta .et_pb_button_module_wrapper, .bfe-cta .et_pb_button.bfe-btn { width: 100%; justify-content: space-between; }
}

@media (prefers-reduced-motion: reduce) {
	.bfe-tile__img img, .et_pb_button.bfe-btn, .et_pb_button.bfe-btn:after { transition: none; }
}

/* =========================================================
   12. MINI SITES (Edward Teach Charters, The Pirate Diving
   Company, Black Flag Media). Every mini-site section carries
   .bfe plus .bfe-site--charters / --diving / --media, which sets
   the accent color.
   ========================================================= */
.bfe-site--charters { --bfe-accent: var(--bfe-orange); }
.bfe-site--diving   { --bfe-accent: var(--bfe-teal-light); }
.bfe-site--media    { --bfe-accent: var(--bfe-cream); }

/* ---- Brand sub-navigation ---- */
.et_pb_section.bfe-subnav {
	background-color: var(--bfe-abyss) !important;
	border-bottom: 1px solid var(--bfe-line);
	overflow: visible;
	z-index: 20;
}
.bfe-subnav .et_pb_row { padding: 10px 0 !important; }
.bfe-subnav .et_pb_column.bfe-flex { flex-wrap: nowrap; gap: 28px; }
.et_pb_text.bfe-subnav__brand { flex: 0 0 auto; }
.bfe-subnav__brand img { height: 52px; width: auto; max-width: none; display: block; }
.bfe-subnav__brand--wide img { height: 36px; }
.et_pb_text.bfe-subnav__links { flex: 1 1 auto; min-width: 0; }
.bfe-subnav__links nav { display: flex; gap: 4px 26px; flex-wrap: wrap; }
.bfe-subnav__links a {
	font-family: var(--bfe-font-display);
	font-size: 14px;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--bfe-cream-muted) !important;
	padding: 12px 0;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
}
.bfe-subnav__links a:hover { color: var(--bfe-cream) !important; border-bottom-color: var(--bfe-accent); }

/* ---- Page hero (background photo set on the Divi section) ---- */
.et_pb_section.bfe-pagehero {
	position: relative;
	background-color: var(--bfe-abyss) !important;
	border-bottom: 1px solid var(--bfe-line);
}
.et_pb_section.bfe-pagehero:before,
.et_pb_section.bfe-pagehero:after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.et_pb_section.bfe-pagehero:before {
	background:
		linear-gradient(90deg, rgba(0, 24, 25, .94) 0%, rgba(0, 24, 25, .78) 42%, rgba(0, 24, 25, .25) 100%),
		linear-gradient(0deg, rgba(0, 24, 25, .9) 0%, rgba(0, 24, 25, 0) 45%);
}
.et_pb_section.bfe-pagehero:after {
	background: url("assets/img/topo.svg") 0 0 / 1400px 900px repeat;
	opacity: .55;
	-webkit-mask-image: linear-gradient(90deg, #000 0%, transparent 60%);
	mask-image: linear-gradient(90deg, #000 0%, transparent 60%);
}
.bfe-pagehero .et_pb_row { position: relative; z-index: 1; padding: 64px 0 40px !important; }
.bfe-pagehero--tall .et_pb_row { padding: 96px 0 88px !important; }
.bfe-pagehero .et_pb_column.bfe-flex { align-items: flex-start; gap: 14px; }
.bfe-pagehero .et_pb_text { flex: 1 1 100%; }
.et_pb_text.bfe-pagehero__copy { margin-bottom: 10px !important; }
.bfe-pagehero__copy .et_pb_text_inner { max-width: 720px; }
.bfe-pagehero__logo { display: block; height: 140px; width: auto; max-width: 100%; margin-bottom: 26px; filter: drop-shadow(0 6px 18px rgba(0,0,0,.6)); }
.bfe-pagehero h1 {
	font-size: clamp(42px, 5.4vw, 80px) !important;
	font-weight: 700 !important;
	line-height: .98 !important;
	text-wrap: balance;
	text-shadow: 0 4px 24px rgba(0, 0, 0, .5);
}
.bfe-lead { font-size: 19px; line-height: 1.55; max-width: 620px; margin-top: 18px !important; color: var(--bfe-cream) !important; }

.bfe-crumbs {
	font-family: var(--bfe-font-display);
	font-size: 13px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bfe-cream-muted);
	margin-bottom: 22px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 10px;
}
.bfe-crumbs a { text-decoration: none; color: var(--bfe-cream-muted) !important; }
.bfe-crumbs a:hover { color: var(--bfe-accent) !important; }
.bfe-crumbs span:last-child { color: var(--bfe-cream); }

.bfe-pagehero__facts { margin-top: 26px !important; }
.bfe-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	margin: 0;
	border-top: 1px solid var(--bfe-line);
	border-bottom: 1px solid var(--bfe-line);
	background: rgba(0, 24, 25, .55);
}
.bfe-facts > div { padding: 16px 20px; border-left: 1px solid var(--bfe-line); }
.bfe-facts > div:first-child { border-left: 0; }
.bfe-facts dt {
	font-family: var(--bfe-font-display);
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bfe-accent);
	margin-bottom: 4px;
}
.bfe-facts dd { margin: 0; font-family: var(--bfe-font-display); font-size: 20px; color: var(--bfe-cream); line-height: 1.2; }

/* ---- Bands and section headings ---- */
.et_pb_section.bfe-band { padding: 72px 0; }
.et_pb_section.bfe-band.bfe-related,
.et_pb_section.bfe-band.bfe-faq,
.et_pb_section.bfe-band.bfe-quotes,
.et_pb_section.bfe-band.bfe-clients { background-color: var(--bfe-abyss) !important; }
.et_pb_section.bfe-band + .et_pb_section.bfe-band { border-top: 1px solid var(--bfe-line); }

.bfe-secthead { padding-bottom: 30px !important; }
.bfe-secthead__text .et_pb_text_inner { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 32px; }
.bfe-secthead__text .et_pb_text_inner > div { max-width: 720px; }
.bfe-secthead h2 { font-size: clamp(30px, 3.2vw, 44px) !important; font-weight: 600 !important; }
.bfe-secthead p { margin-top: 12px !important; font-size: 17px; }
.bfe-site--charters .bfe-eyebrow,
.bfe-site--diving .bfe-eyebrow { color: var(--bfe-accent) !important; }

/* ---- Listing cards (charters, courses, portfolio) ---- */
.bfe-band .et_pb_row.bfe-listings,
.bfe-band .et_pb_row.bfe-infogrid,
.bfe-band .et_pb_row.bfe-quotes__row,
.bfe-band .et_pb_row.bfe-gallery__row,
.bfe-stats .et_pb_row.bfe-stats__row {
	display: grid !important;
	grid-auto-flow: column;
	grid-auto-columns: minmax(0, 1fr);
	gap: 20px;
}
.et_pb_row.bfe-listings + .et_pb_row.bfe-listings { margin-top: 20px; }
.bfe-listings > .et_pb_column,
.bfe-infogrid > .et_pb_column,
.bfe-quotes__row > .et_pb_column,
.bfe-gallery__row > .et_pb_column,
.bfe-stats__row > .et_pb_column { width: auto !important; margin: 0 !important; float: none !important; }

.et_pb_column.bfe-listing {
	background: var(--bfe-panel);
	border: 1px solid var(--bfe-line);
	display: flex !important;
	flex-direction: column;
	overflow: hidden;
	transition: transform .25s, border-color .25s;
}
.et_pb_column.bfe-listing.et_clickable:hover { transform: translateY(-3px); border-color: var(--bfe-accent); }
.et_pb_column.bfe-listing--empty { background: transparent; border: 0; }
.bfe-listing__img .et_pb_image_wrap, .bfe-listing__img img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.et_pb_text.bfe-listing__body { padding: 20px 22px 24px; flex: 1 1 auto; display: flex; }
.bfe-listing__body .et_pb_text_inner { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.bfe-listing__badge {
	font-family: var(--bfe-font-display);
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bfe-accent);
}
.bfe-listing__body h3 { font-size: 23px !important; font-weight: 500 !important; }
.bfe-listing__body h3 a { text-decoration: none; color: var(--bfe-cream) !important; }
.bfe-listing__body p { font-size: 15px; }
.bfe-listing__body .bfe-listing__meta { font-size: 13.5px; color: var(--bfe-teal-light); }
.bfe-listing__cta {
	margin-top: auto;
	padding-top: 8px;
	font-family: var(--bfe-font-display);
	font-size: 13px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bfe-cream);
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.bfe-listing__cta:after {
	content: "";
	width: 7px;
	height: 11px;
	background-color: var(--bfe-accent);
	-webkit-mask: url("assets/img/chevron.svg") center / contain no-repeat;
	mask: url("assets/img/chevron.svg") center / contain no-repeat;
}

/* ---- Split: main copy + side card ---- */
.et_pb_section.bfe-split { padding: 72px 0; }
.bfe-split .et_pb_row.bfe-split__row {
	display: grid !important;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: 56px;
	align-items: start;
}
.bfe-split__row > .et_pb_column { width: auto !important; margin: 0 !important; float: none !important; }
.bfe-prose h2 { font-size: clamp(30px, 3vw, 40px) !important; margin-bottom: 18px !important; }
.bfe-prose h3 { font-size: 21px !important; margin: 32px 0 14px !important; }
.bfe-prose p { font-size: 17px; max-width: 68ch; }
.bfe-prose .bfe-eyebrow { margin-bottom: 12px; }
.et_pb_column.bfe-sidecard {
	background: var(--bfe-panel);
	border: 1px solid var(--bfe-line);
	border-top: 3px solid var(--bfe-accent);
	padding: 28px !important;
	position: sticky;
	top: 24px;
}
.bfe-sidecard h3 { font-size: 19px !important; margin: 0 0 12px !important; }
.bfe-sidecard ul + h3 { margin-top: 24px !important; }
.bfe-sidecard .et_pb_button_module_wrapper { margin-top: 24px !important; }
.bfe-sidecard .et_pb_button.bfe-btn { width: 100%; justify-content: space-between; }

.bfe-check { list-style: none; margin: 0; padding: 0 !important; display: grid; gap: 9px; }
.bfe-check li { position: relative; padding-left: 28px; font-size: 15.5px; line-height: 1.45; color: var(--bfe-cream-muted); }
.bfe-check li:before {
	content: "";
	position: absolute;
	left: 0;
	top: .2em;
	width: 16px;
	height: 16px;
	background-color: var(--bfe-accent);
	-webkit-mask: url("assets/img/check.svg") center / contain no-repeat;
	mask: url("assets/img/check.svg") center / contain no-repeat;
}
.bfe-prose .bfe-check { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 28px; max-width: 640px; }

/* ---- Info grid ---- */
.et_pb_column.bfe-info { border-top: 2px solid var(--bfe-accent); padding-top: 18px !important; }
.bfe-info h3 { font-size: 20px !important; font-weight: 500 !important; margin-bottom: 8px !important; }
.bfe-info p { font-size: 15.5px; }
.bfe-infogrid + .bfe-infogrid { margin-top: 32px; }
.bfe-contact a { color: var(--bfe-cream) !important; overflow-wrap: anywhere; }

/* ---- FAQ (Divi Toggle modules) ---- */
.bfe-faq__list { max-width: 900px; }
.et_pb_toggle.bfe-toggle {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--bfe-line) !important;
	padding: 22px 0 !important;
	margin: 0 !important;
}
.et_pb_toggle.bfe-toggle .et_pb_toggle_title {
	font-family: var(--bfe-font-display);
	font-size: 20px !important;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .02em;
	color: var(--bfe-cream) !important;
	padding-right: 48px;
	cursor: pointer;
}
.et_pb_toggle.bfe-toggle .et_pb_toggle_title:before {
	content: "+" !important;
	font-family: var(--bfe-font-display) !important;
	font-size: 28px !important;
	color: var(--bfe-accent) !important;
	right: 4px !important;
	line-height: 1;
}
.et_pb_toggle_open.bfe-toggle .et_pb_toggle_title:before { content: "−" !important; }
.bfe-toggle .et_pb_toggle_content { padding-top: 12px; }
.bfe-toggle .et_pb_toggle_content p { font-size: 16.5px; max-width: 72ch; }

/* ---- Cross-sell and story ---- */
.et_pb_section.bfe-crosssell,
.et_pb_section.bfe-story { border-top: 1px solid var(--bfe-line); border-bottom: 1px solid var(--bfe-line); }
.bfe-crosssell .et_pb_row.bfe-crosssell__row,
.bfe-story .et_pb_row.bfe-story__row {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	gap: 48px;
	align-items: center;
	padding: 56px 0 !important;
}
.bfe-story .et_pb_row.bfe-story__row { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); padding: 72px 0 !important; }
.bfe-crosssell__row > .et_pb_column,
.bfe-story__row > .et_pb_column { width: auto !important; margin: 0 !important; float: none !important; }
.bfe-crosssell__img img, .bfe-crosssell__img .et_pb_image_wrap { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 1px solid var(--bfe-line); }
.bfe-story__img img, .bfe-story__img .et_pb_image_wrap { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border: 1px solid var(--bfe-line); }
.bfe-crosssell__copy.bfe-flex, .bfe-story__copy.bfe-flex { align-items: flex-start; gap: 22px; }
.bfe-crosssell__text, .bfe-story__text { flex: 1 1 100%; }
.bfe-crosssell h2, .bfe-story h2 { font-size: clamp(28px, 3vw, 40px) !important; margin-bottom: 14px !important; }
.bfe-crosssell p, .bfe-story p { font-size: 17px; max-width: 62ch; }
.bfe-story__sign { font-family: var(--bfe-font-note); font-size: 22px; color: var(--bfe-accent) !important; margin-top: 18px !important; }

/* ---- Stats ---- */
.et_pb_section.bfe-stats { background-color: var(--bfe-abyss) !important; border-bottom: 1px solid var(--bfe-line); }
.bfe-stats .et_pb_row { padding: 32px 0 !important; }
.bfe-stats .et_pb_row.bfe-stats__row { gap: 0; }
.bfe-stat { padding: 4px 24px !important; border-left: 1px solid var(--bfe-line); }
.bfe-stat:first-child { border-left: 0; padding-left: 0 !important; }
.bfe-stat .bfe-stat__num { display: block; font-family: var(--bfe-font-display); font-weight: 600; font-size: 42px; line-height: 1; color: var(--bfe-orange); text-transform: none; }
.bfe-stat .bfe-stat__label { display: block; margin-top: 8px; font-size: 14px; color: var(--bfe-cream-muted); }

/* ---- Testimonials ---- */
.et_pb_column.bfe-quote { border: 1px solid var(--bfe-line); background: var(--bfe-panel); padding: 28px !important; }
.bfe-quote blockquote { margin: 0; padding: 0; border: 0; }
.bfe-quote blockquote p { font-size: 18px; line-height: 1.5; color: var(--bfe-cream) !important; }
.bfe-quote blockquote:before { content: "“"; display: block; font-family: var(--bfe-font-display); font-size: 64px; line-height: .8; color: var(--bfe-accent); }
.bfe-quote__who { margin-top: 18px !important; font-size: 14px; }
.bfe-quote__who strong { color: var(--bfe-cream); font-family: var(--bfe-font-display); font-weight: 500; font-size: 16px; letter-spacing: .06em; text-transform: uppercase; }

/* ---- Clients ---- */
.bfe-clients__list ul { list-style: none; margin: 0; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 14px 40px; }
.bfe-clients__list li { font-family: var(--bfe-font-display); font-size: 24px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--bfe-cream); opacity: .85; }

/* ---- Gallery ---- */
.bfe-gallery__img img, .bfe-gallery__img .et_pb_image_wrap { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 1px solid var(--bfe-line); }
.bfe-gallery__row--video .bfe-gallery__img img, .bfe-gallery__row--video .bfe-gallery__img .et_pb_image_wrap { aspect-ratio: 16 / 9; }

/* Divi's clearfix pseudo-element would become an extra grid cell */
.et_pb_row.bfe-listings:after, .et_pb_row.bfe-infogrid:after, .et_pb_row.bfe-quotes__row:after,
.et_pb_row.bfe-gallery__row:after, .et_pb_row.bfe-stats__row:after, .et_pb_row.bfe-split__row:after,
.et_pb_row.bfe-crosssell__row:after, .et_pb_row.bfe-story__row:after,
.et_pb_row.bfe-hero__row:after, .et_pb_row.bfe-cards:after, .et_pb_row.bfe-tiles:after, .et_pb_row.bfe-about__row:after { content: none !important; display: none !important; }

/* ---- Mini-site responsive ---- */
@media (max-width: 980px) {
	.bfe-subnav .et_pb_column.bfe-flex { flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; }
	.et_pb_text.bfe-subnav__links { order: 3; flex: 1 1 100%; }
	.bfe-subnav__links nav { flex-wrap: nowrap; overflow-x: auto; gap: 22px; scrollbar-width: none; }
	.bfe-subnav__brand img { height: 44px; }
	.bfe-subnav__brand--wide img { height: 30px; }

	.bfe-band .et_pb_row.bfe-listings,
	.bfe-band .et_pb_row.bfe-infogrid,
	.bfe-band .et_pb_row.bfe-quotes__row,
	.bfe-band .et_pb_row.bfe-gallery__row,
	.bfe-stats .et_pb_row.bfe-stats__row { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bfe-band .et_pb_row.bfe-gallery__row--video { grid-template-columns: 1fr; }
	.et_pb_column.bfe-listing--empty { display: none !important; }
	.bfe-split .et_pb_row.bfe-split__row { grid-template-columns: 1fr; gap: 32px; }
	.et_pb_column.bfe-sidecard { position: static; }
	.bfe-crosssell .et_pb_row.bfe-crosssell__row,
	.bfe-story .et_pb_row.bfe-story__row { grid-template-columns: 1fr; gap: 28px; }
	.bfe-story__img img, .bfe-story__img .et_pb_image_wrap { aspect-ratio: 16 / 10; }
	.bfe-stat:nth-child(odd) { border-left: 0; padding-left: 0 !important; }
	.bfe-stats .et_pb_row.bfe-stats__row { row-gap: 24px; }
}

@media (max-width: 767px) {
	.et_pb_section.bfe-band, .et_pb_section.bfe-split { padding: 52px 0; }
	.bfe-pagehero .et_pb_row { padding: 44px 0 32px !important; }
	.bfe-pagehero--tall .et_pb_row { padding: 56px 0 48px !important; }
	.bfe-pagehero__logo { height: 96px; }
	.bfe-lead { font-size: 17px; }
	.bfe-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bfe-facts > div:nth-child(odd) { border-left: 0; }
	.bfe-facts > div:nth-child(n+3) { border-top: 1px solid var(--bfe-line); }
	.bfe-band .et_pb_row.bfe-listings,
	.bfe-band .et_pb_row.bfe-infogrid,
	.bfe-band .et_pb_row.bfe-quotes__row { grid-template-columns: 1fr; }
	.bfe-prose .bfe-check { grid-template-columns: 1fr; }
	.bfe-clients__list li { font-size: 19px; }
	.bfe-stat .bfe-stat__num { font-size: 34px; }
	.bfe-pagehero .et_pb_button_module_wrapper { flex: 1 1 100%; }
	.bfe-pagehero .et_pb_button.bfe-btn { width: 100%; justify-content: space-between; }
}

/* =========================================================
   13. DIVI 5 ADJUSTMENTS
   Divi 5 writes per-module CSS (row widths with !important,
   image widths) that would otherwise override the layout.
   ========================================================= */
.et_pb_section.bfe-hero .et_pb_row.bfe-hero__row,
.et_pb_section.bfe-about .et_pb_row.bfe-about__row { width: 100% !important; max-width: none !important; }

.bfe-collage .et_pb_image.bfe-collage__boat   { left: 1.5% !important; top: 0 !important;     width: 59.5% !important; height: 53.5% !important; }
.bfe-collage .et_pb_image.bfe-collage__wreck  { left: 50.5% !important; top: 0 !important;    width: 23% !important;   height: 56% !important; }
.bfe-collage .et_pb_image.bfe-collage__diver  { left: 8.5% !important; top: 52.2% !important; width: 63% !important;   height: 47.8% !important; }
.bfe-collage .et_pb_image.bfe-collage__turtle { left: 68.8% !important; top: 43% !important;  width: 31.2% !important; height: 57% !important; }

.et_pb_menu.bfe-nav { flex: 1 1 auto !important; }
.et_pb_menu.bfe-nav .et_pb_menu_inner_container,
.et_pb_menu.bfe-nav .et_pb_menu__wrap { justify-content: flex-end !important; width: 100%; }

.bfe-headline__link, .bfe-secthead__link { flex: 0 0 auto; }
.bfe-pagehero__logowrap, .bfe-compass, .bfe-cta__mark, .bfe-logo__link { line-height: 0; }

@media (max-width: 767px) {
	.bfe-collage .et_pb_image.bfe-collage__boat,
	.bfe-collage .et_pb_image.bfe-collage__diver,
	.bfe-collage .et_pb_image.bfe-collage__turtle { position: static !important; width: auto !important; height: auto !important; }
}
