/*
 * =========================================================
 * Local fonts
 *
 * Store these files in:
 * boot-flex-base/assets/fonts/
 * =========================================================
 */

@font-face {
    font-family: "Anton";
    font-weight: 400;
    src: url("../fonts/anton-400.woff2") format("woff2");
}

@font-face {
    font-family: "Inter";
    font-weight: 400;
    src: url("../fonts/inter-400.woff2") format("woff2");
}

@font-face {
    font-family: "Inter";
    font-weight: 500;
    src: url("../fonts/inter-500.woff2") format("woff2");
}

@font-face {
    font-family: "Inter";
    font-weight: 600;
    src: url("../fonts/inter-600.woff2") format("woff2");
}

@font-face {
    font-family: "Inter";
    font-weight: 700;
    src: url("../fonts/inter-700.woff2") format("woff2");
}

@font-face {
    font-family: "Montserrat";
    font-weight: 400;
    src: url("../fonts/montserrat-400.woff2") format("woff2");
}

@font-face {
    font-family: "Montserrat";
    font-weight: 500;
    src: url("../fonts/montserrat-500.woff2") format("woff2");
}

@font-face {
    font-family: "Montserrat";
    font-weight: 600;
    src: url("../fonts/montserrat-600.woff2") format("woff2");
}

@font-face {
    font-family: "Montserrat";
    font-weight: 700;
    src: url("../fonts/montserrat-700.woff2") format("woff2");
}

/*
 * =========================================================
 * Design tokens
 * =========================================================
 */

:root {
	/* Fonts */
	--bfb-font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--bfb-font-heading: "Montserrat", system-ui, sans-serif;
	--bfb-font-display: "Montserrat", system-ui, sans-serif;
	--bfb-font-impact: "Anton", "Montserrat", system-ui, sans-serif;

	/* Brand */
	--bs-primary: #233b53;
	--bfb-primary: #233b53;
	--bfb-primary-hover: #182c3f;
	--bfb-accent: #71836f;
	--bfb-accent-light: #a9b8a5;

	/* Typography */
	--bfb-heading: #243746;
	--bfb-text: #343b40;
	--bfb-muted: #68737a;

	/* Links */
	--bfb-link: #36566f;
	--bfb-link-hover: #263f53;

	/* Backgrounds */
	--bfb-light: #f2f4f3;
	--bfb-dark: #202c34;
	--bfb-surface: #ffffff;

	/* Status colors */
	--bfb-success: #71836f;
	--bfb-warning: #c8a85b;
	--bfb-danger: #a64b4b;
	--bfb-info: #4b6f8f;

	/* Borders and effects */
	--bfb-border: rgba(36, 55, 70, 0.12);
	--bfb-radius: 1rem;
	--bfb-radius-sm: 0.75rem;
	--bfb-shadow: 0 10px 28px rgba(24, 44, 63, 0.10);
}

body {
	font-family: var(--bfb-font-body);
	color: var(--bfb-text);
}

a {
	color: var(--bfb-link);
	text-decoration: none;
	transition: color 0.25s ease;
}

a:hover,
a:focus {
	color: var(--bfb-link-hover);
	text-decoration: none;
}

a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
	margin-bottom: 0.6em;
	color: var(--bfb-heading);
	font-family: var(--bfb-font-heading);
	line-height: 1.1;
	letter-spacing: 0.02em;
}

h1,
.h1 {
	font-family: var(--bfb-font-display);
	font-size: clamp(2.8rem, 6vw, 4rem);
	font-weight: 700;
	letter-spacing: -0.025em;
}

h2,
.h2 {
	font-weight: 600;
	font-size: clamp(2.2rem, 4.5vw, 2.8rem);
}

h3,
.h3 {
	font-weight: 600;
	font-size: clamp(1.8rem, 3vw, 2.2rem);
}

h4,
.h4 {
	font-weight: 600;
	font-size: clamp(1.4rem, 2.2vw, 1.7rem);
}

h5,
.h5 {
	font-size: clamp(1.15rem, 1.8vw, 1.3rem);
}

h6,
.h6 {
	font-size: clamp(1rem, 1.5vw, 1.1rem);
}

h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a,
.h1 a,
.h2 a,
.h3 a,
.h4 a,
.h5 a,
.h6 a {
	color: inherit;
	text-decoration: none;
}

.hero-title {
	margin-bottom: 0.4em;
	font-family: var(--bfb-font-display);
	font-size: clamp(2.5rem, 5vw, 4.2rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.025em;
}

.section-title,
.card-title,
.navbar-nav > li > a,
.mega-menu-link {
	font-family: var(--bfb-font-heading);
	font-weight: 600;
	letter-spacing: 0.015em;
}

.impact-title,
.cta-banner-title {
	font-family: var(--bfb-font-impact);
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

p,
li,
button,
input,
select,
textarea,
.btn,
.form-control {
	font-family: var(--bfb-font-body);
}

/*
 * =========================================================
 * Header
 * =========================================================
 */

.site-header {
	position: relative;
	z-index: 200;
	border-bottom: 1px solid var(--bfb-border);
	background: var(--bfb-surface);
}

.header-top-bar {
	background: var(--bfb-dark);
	color: #fff;
	font-size: 0.9rem;
}

.header-top-bar .container {
	padding-top: 0.55rem;
	padding-bottom: 0.55rem;
}

.header-top-bar a {
	color: #fff;
	text-decoration: none;
}

.header-top-bar a:hover,
.header-top-bar a:focus {
	color: var(--bfb-accent-light);
}

.header-main {
	background: var(--bfb-surface);
}

.site-branding img,
.navbar-brand img,
.custom-logo {
	width: auto;
	max-height: 148px;
}

.navbar-nav > li > a,
.primary-nav-wrap .mega-menu-link {
	color: var(--bfb-text);
	font-family: var(--bfb-font-heading);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.015em;
}

.navbar-nav > li > a:hover,
.navbar-nav > li > a:focus,
.primary-nav-wrap .mega-menu-link:hover,
.primary-nav-wrap .mega-menu-link:focus {
	color: var(--bfb-primary);
}

.btn-header-top,
.btn-header-main,
.btn-footer-cta {
	display: inline-block;
	padding: 0.7rem 1.15rem;
	border: 1px solid var(--bfb-primary);
	border-radius: 999px;
	background: var(--bfb-primary);
	box-shadow: 0 5px 16px rgba(24, 44, 63, 0.14);
	color: #fff;
	font-family: var(--bfb-font-heading);
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
}

.btn-header-top {
	padding: 0.45rem 0.85rem;
	font-size: 0.85rem;
}

.btn-header-top:hover,
.btn-header-top:focus,
.btn-header-main:hover,
.btn-header-main:focus,
.btn-footer-cta:hover,
.btn-footer-cta:focus {
	border-color: var(--bfb-primary-hover);
	background: var(--bfb-primary-hover);
	color: #fff;
}

/*
 * =========================================================
 * Footer
 * =========================================================
 */

.site-footer {
	background: var(--bfb-dark);
	color: #f3f3f3;
}

.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer h5,
.site-footer h6,
.site-footer .h1,
.site-footer .h2,
.site-footer .h3,
.site-footer .h4,
.site-footer .h5,
.site-footer .h6 {
	color: #fff;
}

.site-footer a {
	color: #f3f3f3;
	text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus {
	color: var(--bfb-accent-light);
}

.footer-site-title {
	font-family: var(--bfb-font-heading);
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.footer-bottom-menu .list-inline-item:not(:last-child) {
	margin-right: 1rem;
}

@media (max-width: 991.98px) {
	.header-contact,
	.header-top-bar .text-md-end {
		text-align: center !important;
	}

	.btn-header-main {
		margin-top: 1rem;
	}
}


.entry-content img,
.entry-content iframe {
	max-width: 100%;
	height: auto;
}

.btn,
.form-control,
.card {
	border-radius: var(--bfb-radius-sm);
}

.btn {
	display: inline-block;
	padding: 0.7rem 1.15rem;
	border: 1px solid var(--bfb-primary);
	border-radius: 999px;
	background: var(--bfb-primary);
	box-shadow: 0 5px 16px rgba(24, 44, 63, 0.14);
	color: #fff;
	font-family: var(--bfb-font-heading);
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
}

.btn:hover,
.btn:focus {
	border-color: var(--bfb-primary-hover);
	background: var(--bfb-primary-hover);
	color: #fff;
}

.footer-menu ul,
.footer-menu li {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-menu a {
	display: inline-block;
	padding: 0.25rem 0;
	text-decoration: none;
}

.review-stars {
	display: flex;
	gap: 0.35rem;
	margin-bottom: 0.75rem;
	color: #d79a00;
}

.content-split-copy {
	min-height: 100%;
}

.content-split-media {
	min-height: 360px;
	overflow: hidden;
	background: var(--bfb-light);
}

.content-split-img,
.content-split-video,
.content-split-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.content-split-img,
.content-split-video {
	object-fit: cover;
}

.content-split-bg {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

/*
 * =========================================================
 * Reveal animations
 * =========================================================
 */

.js-reveal,
.js-reveal-up,
.js-reveal-down,
.js-reveal-left,
.js-reveal-right,
.js-fade,
.js-zoom-in,
.js-zoom-out,
.js-blur-in,
.js-rotate-in {
	opacity: 0;

	transition:
		opacity 0.7s ease,
		transform 0.7s ease,
		filter 0.7s ease;

	will-change: opacity, transform, filter;
}

/* Default fade-up animation */
.js-reveal,
.js-reveal-up {
	transform: translateY(28px);
}

.js-reveal-down {
	transform: translateY(-28px);
}

.js-reveal-left {
	transform: translateX(-34px);
}

.js-reveal-right {
	transform: translateX(34px);
}

.js-fade {
	transform: none;
}

.js-zoom-in {
	transform: scale(0.9);
}

.js-zoom-out {
	transform: scale(1.08);
}

.js-blur-in {
	filter: blur(10px);
	transform: translateY(12px);
}

.js-rotate-in {
	transform: translateY(20px) rotate(-2deg);
}

/*
 * Final visible state.
 */
.js-reveal.is-visible,
.js-reveal-up.is-visible,
.js-reveal-down.is-visible,
.js-reveal-left.is-visible,
.js-reveal-right.is-visible,
.js-fade.is-visible,
.js-zoom-in.is-visible,
.js-zoom-out.is-visible,
.js-blur-in.is-visible,
.js-rotate-in.is-visible {
	opacity: 1;
	filter: none;
	transform: none;
}

/*
 * Animation delays.
 */
.js-delay-1 {
	transition-delay: 0.1s;
}

.js-delay-2 {
	transition-delay: 0.2s;
}

.js-delay-3 {
	transition-delay: 0.35s;
}

.js-delay-4 {
	transition-delay: 0.5s;
}

/*
 * Continuous floating animation.
 */
.js-float {
	animation: clientFloat 4s ease-in-out infinite;
}

@keyframes clientFloat {
	0% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-8px);
	}

	100% {
		transform: translateY(0);
	}
}


.img-hover-wrap {
  overflow: hidden;
  display: block;
}

.img-hover-zoom {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.6s ease;

  transform: scale(1);
  will-change: transform;
}

.img-hover-wrap:hover .img-hover-zoom {
  transform: scale(1.06);
}



/*
 * Respect reduced-motion preferences.
 */
@media (prefers-reduced-motion: reduce) {
	.js-reveal,
	.js-reveal-up,
	.js-reveal-down,
	.js-reveal-left,
	.js-reveal-right,
	.js-fade,
	.js-zoom-in,
	.js-zoom-out,
	.js-blur-in,
	.js-rotate-in,
	.js-float {
		opacity: 1 !important;
		filter: none !important;
		transform: none !important;
		animation: none !important;
		transition: none !important;
	}
}


/*
*  Flex cards
*
*/

.bfb-flex-section { position: relative; }
.bfb-section-intro > *:last-child { margin-bottom: 0; }

.bfb-flex-card {
  position: relative;
  min-height: 100%;
  overflow: hidden;
}

.bfb-flex-card--content {
  padding: 2.5rem;
}

.bfb-flex-card__inner {
  z-index: 2;
  width: 100%;
}

.bfb-flex-card--bg-image {
  position: relative;
}

.bfb-flex-card__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.35);
  z-index: 1;
}

.bfb-flex-card--image {
  min-height: 420px;
}

.bfb-flex-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 991.98px) {
  .bfb-flex-card--content {
    padding: 2rem;
  }

  .bfb-flex-card,
  .bfb-flex-card--image {
    min-height: 320px !important;
  }
}

/*
*  Mosaic / gallery
*
*/

.bfb-card-img { aspect-ratio: 4 / 3; object-fit: cover; }
.bfb-hcard-img { min-height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.bfb-gallery-grid__item { aspect-ratio: 1 / 1; overflow: hidden; border-radius: var(--bfb-radius); }
.bfb-mosaic { display: grid; gap: 1rem; padding: 0 1rem; }
.bfb-mosaic--thirds, .bfb-mosaic--halves, .bfb-mosaic--1photo { grid-template-columns: repeat(12, 1fr); }
.bfb-mosaic--thirds .bfb-mosaic__item { grid-column: span 4; }
.bfb-mosaic--halves .bfb-mosaic__item { grid-column: span 6; }
.bfb-mosaic--1photo .bfb-mosaic__item { grid-column: span 12; }
.bfb-mosaic--1then2, .bfb-mosaic--2then1, .bfb-mosaic--widethen1, .bfb-mosaic--1thenwide { grid-template-columns: repeat(12, 1fr); grid-auto-rows: minmax(220px, 1fr); }
.bfb-mosaic--1then2 .bfb-mosaic__item:nth-child(1), .bfb-mosaic--widethen1 .bfb-mosaic__item:nth-child(1) { grid-column: span 8; grid-row: span 2; }
.bfb-mosaic--1then2 .bfb-mosaic__item:nth-child(2), .bfb-mosaic--1then2 .bfb-mosaic__item:nth-child(3), .bfb-mosaic--widethen1 .bfb-mosaic__item:nth-child(2), .bfb-mosaic--widethen1 .bfb-mosaic__item:nth-child(3) { grid-column: span 4; }
.bfb-mosaic--2then1 .bfb-mosaic__item:nth-child(1), .bfb-mosaic--2then1 .bfb-mosaic__item:nth-child(2), .bfb-mosaic--1thenwide .bfb-mosaic__item:nth-child(1), .bfb-mosaic--1thenwide .bfb-mosaic__item:nth-child(2) { grid-column: span 4; }
.bfb-mosaic--2then1 .bfb-mosaic__item:nth-child(3), .bfb-mosaic--1thenwide .bfb-mosaic__item:nth-child(3) { grid-column: span 8; }
.bfb-mosaic__item { position: relative; overflow: hidden; min-height: 240px; border-radius: var(--bfb-radius); }
.bfb-mosaic__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bfb-mosaic__link, .bfb-mosaic__link:hover { color: inherit; text-decoration: none; }
.bfb-mosaic__overlay { position: absolute; inset: 0; display: flex; align-items: end; padding: 1.25rem; background: linear-gradient(to top, rgba(0,0,0,.6), rgba(0,0,0,.1)); }
.bfb-mosaic__copy { position: relative; z-index: 2; }


/*
*  Accordion
*
*/

.bfb-accordion-section {
	padding-top: 3rem;
	padding-bottom: 3rem;
}

.bfb-accordion .accordion-item {
	border-right: 0;
	border-left: 0;
	border-radius: 0;
}

.bfb-accordion .accordion-button {
	padding: 1.25rem 0;
	font-size: 1.25rem;
	font-weight: 600;
	background: transparent;
	box-shadow: none;
}

.bfb-accordion .accordion-button:not(.collapsed) {
	color: inherit;
	background: transparent;
	box-shadow: none;
}

.bfb-accordion .accordion-body {
	padding: 0 0 1.5rem;
}

.bfb-accordion .accordion-body > :last-child {
	margin-bottom: 0;
}

/*
*  misc/utility
*
*/

.py-6 { padding-top: 5rem; padding-bottom: 5rem; }

.light-shade {
	background: var(--bfb-light);
}

.dark-shade {
	background: var(--bfb-dark);
	color: #fff;
}

.dark-shade h2,
.dark-shade h3,
.dark-shade h4,
.dark-shade .h2,
.dark-shade .h3,
.dark-shade .h4 {
	color:#ffffff;
}

.panel_with_bg
{
	min-height:20vw;
}

.gfield_radio {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 15px !important;
}

.gfield_radio .gchoice {
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  margin: 0 !important;
}

.gfield_radio .gchoice label {
  margin-left: 6px !important;
  width: auto !important;
}

@media (max-width: 991.98px) {
  .bfb-mosaic, .bfb-mosaic--1then2, .bfb-mosaic--2then1, .bfb-mosaic--widethen1, .bfb-mosaic--1thenwide, .bfb-mosaic--thirds, .bfb-mosaic--halves, .bfb-mosaic--1photo { grid-template-columns: 1fr; padding: 0 .75rem; }
  .bfb-mosaic .bfb-mosaic__item { grid-column: auto !important; grid-row: auto !important; }
}

/*
 * =========================================================
 * Block card image / feature icon
 * =========================================================
 */

.bfb-block-media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 220px;
	padding: 2rem;
}

.bfb-block-image {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
}

.bfb-block-icon-wrap {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 150px;
	height: 150px;

	border-radius: 2rem;

	background: rgba(113, 131, 111, 0.10);

	box-shadow:
		0 1px 2px rgba(0,0,0,.04),
		inset 0 1px 0 rgba(255,255,255,.7);

	transition:
		transform .35s ease,
		box-shadow .35s ease,
		background-color .35s ease;
}

.bfb-block-icon-wrap i {
	display: block;

	font-size: clamp(5.5rem, 8vw, 6.75rem);

	line-height: 1;

	color: var(--bfb-primary);

	transition:
		transform .35s ease,
		color .35s ease;
}

/*
 * Hover
 */

.card:hover .bfb-block-icon-wrap,
.card:focus-within .bfb-block-icon-wrap {

	transform: translateY(-4px);

	background: rgba(113, 131, 111, 0.16);

	box-shadow:
		0 14px 32px rgba(0,0,0,.10),
		inset 0 1px 0 rgba(255,255,255,.9);
}

.card:hover .bfb-block-icon-wrap i,
.card:focus-within .bfb-block-icon-wrap i {

	transform: scale(1.08);
}

/*
 * Dark sections
 */

.dark-shade .bfb-block-icon-wrap {

	background: rgba(255,255,255,.08);

	box-shadow:
		0 1px 2px rgba(0,0,0,.25),
		inset 0 1px 0 rgba(255,255,255,.08);
}

.dark-shade .bfb-block-icon-wrap i {

	color: #fff;
}

/*
 * Mobile
 */

@media (max-width: 767.98px) {

	.bfb-block-media {

		height: 180px;
		padding: 1.5rem;
	}

	.bfb-block-icon-wrap {

		width: 125px;
		height: 125px;
		border-radius: 1.5rem;
	}

	.bfb-block-icon-wrap i {

		font-size: 4.75rem;
	}
}

/*
 * Reduced motion
 */

@media (prefers-reduced-motion: reduce) {

	.bfb-block-icon-wrap,
	.bfb-block-icon-wrap i {

		transition: none;
	}
}

/*
*  GALLERY
*
*/

/* =========================================================
   Dynamic gallery
   ========================================================= */

.dynamic-gallery {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-flow: dense;
	grid-auto-rows: 165px;
	gap: 8px;
}

.dynamic-gallery__item {
	position: relative;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	background: var(--bfb-light);
}

/*
 * Make some items larger to prevent the gallery from
 * looking like a repetitive row of identical thumbnails.
 */
.dynamic-gallery__item--wide {
	grid-column: span 2;
}

.dynamic-gallery__item--tall {
	grid-row: span 2;
}

.dynamic-gallery__item--featured {
	grid-column: span 2;
	grid-row: span 2;
}

.dynamic-gallery__link {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
	color: inherit;
	background: #222;
}

.dynamic-gallery__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transform: scale(1);
	transition:
		transform 500ms cubic-bezier(.2, .7, .2, 1),
		filter 350ms ease;
}

.dynamic-gallery__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0) 45%,
		rgba(0, 0, 0, 0.35) 100%
	);
	opacity: 0;
	transition: opacity 300ms ease;
}

/* Magnifying-glass icon without requiring an icon library. */
.dynamic-gallery__icon {
	position: relative;
	display: block;
	width: 46px;
	height: 46px;
	border: 2px solid rgba(255, 255, 255, 0.95);
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.35);
	backdrop-filter: blur(3px);
	transform: translateY(8px) scale(0.9);
	transition: transform 300ms ease;
}

.dynamic-gallery__icon::before {
	content: "";
	position: absolute;
	top: 12px;
	left: 12px;
	width: 14px;
	height: 14px;
	border: 2px solid #fff;
	border-radius: 50%;
}

.dynamic-gallery__icon::after {
	content: "";
	position: absolute;
	top: 27px;
	left: 27px;
	width: 10px;
	height: 2px;
	background: #fff;
	transform: rotate(45deg);
	transform-origin: left center;
}

.dynamic-gallery__link:hover .dynamic-gallery__image,
.dynamic-gallery__link:focus-visible .dynamic-gallery__image {
	transform: scale(1.055);
	filter: brightness(0.82);
}

.dynamic-gallery__link:hover .dynamic-gallery__overlay,
.dynamic-gallery__link:focus-visible .dynamic-gallery__overlay {
	opacity: 1;
}

.dynamic-gallery__link:hover .dynamic-gallery__icon,
.dynamic-gallery__link:focus-visible .dynamic-gallery__icon {
	transform: translateY(0) scale(1);
}

.dynamic-gallery__link:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: -3px;
}

.dynamic-gallery__caption {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	padding: 2rem 0.9rem 0.75rem;
	color: #fff;
	font-size: 0.9rem;
	line-height: 1.3;
	pointer-events: none;
	background: linear-gradient(
		to bottom,
		transparent,
		rgba(0, 0, 0, 0.72)
	);
}

/* =========================================================
   Tablet
   ========================================================= */

@media (min-width: 768px) {
	.dynamic-gallery {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		grid-auto-rows: 190px;
		gap: 10px;
	}
}

/* =========================================================
   Desktop
   ========================================================= */

@media (min-width: 1200px) {
	.dynamic-gallery {
		grid-template-columns: repeat(6, minmax(0, 1fr));
		grid-auto-rows: 180px;
	}

	.dynamic-gallery__item--featured {
		grid-column: span 2;
		grid-row: span 2;
	}
}

/* =========================================================
   Reduced motion
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
	.dynamic-gallery__image,
	.dynamic-gallery__overlay,
	.dynamic-gallery__icon {
		transition: none;
	}
}

/*
 * =========================================================
 * Card image hover
 * =========================================================
 */

.card-image-link {
	display: block;
	overflow: hidden;
}

.card-image-link .card-img-top {
	display: block;
	width: 100%;
	transform: scale(1);
	transition: transform .5s ease;
}

.card-image-link:hover .card-img-top,
.card-image-link:focus-visible .card-img-top {
	transform: scale(1.05);
}


/*
 * =========================================================
 * Page heading banner
 * =========================================================
 */

.page-heading-banner {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 25vw;
	overflow: hidden;
	background-color: var(--bfb-dark);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	color: #fff;
}

.page-heading-banner__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.page-heading-banner__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	padding-top: 3rem;
	padding-bottom: 3rem;
}

.page-heading-banner__title {
	max-width: 900px;
	margin: 0;
	color: #fff;
	font-size: clamp(2.5rem, 5vw, 5rem);
	font-weight: 700;
	line-height: 1.05;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

/*
 * Tablet
 */

@media (max-width: 991.98px) {
	.page-heading-banner {
		min-height: 42vw;
	}

	.page-heading-banner__inner {
		padding-top: 3.5rem;
		padding-bottom: 3.5rem;
	}
}

/*
 * Mobile
 */

@media (max-width: 767.98px) {
	.page-heading-banner {
		min-height: 65vw;
	}

	.page-heading-banner__inner {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}

	.page-heading-banner__title {
		font-size: clamp(2.25rem, 11vw, 4rem);
	}
}

/*
 * Very small screens
 */

@media (max-width: 480px) {
	.page-heading-banner {
		min-height: 78vw;
	}
}


.section-gap {
	margin-bottom: 5rem;
}

@media (max-width: 991.98px) {
	.section-gap {
		margin-bottom: 3rem;
	}
}

@media (max-width: 767.98px) {
	.section-gap {
		margin-bottom: 2rem;
	}
}



/* Full photo panel */
.bfb-photo-panel,
.bfb-photo-panel .row {
	margin: 0;
}

.bfb-photo-panel__item {
	flex: 1 1 auto;
	width: 100%;
	min-height: 28rem;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.bfb-photo-panel__item--stacked {
	min-height: 14rem;
}

.bfb-photo-panel__item--solo {
	min-height: clamp(24rem, 45vw, 46rem);
}

.bfb-photo-panel__link {
	color: inherit;
	text-decoration: none;
}

.bfb-photo-panel__overlay {
	background: rgba(0, 0, 0, 0.38);
	color: #fff;
	transition: background-color 0.25s ease;
}

.bfb-photo-panel__link:hover .bfb-photo-panel__overlay,
.bfb-photo-panel__link:focus-visible .bfb-photo-panel__overlay {
	background: rgba(0, 0, 0, 0.52);
}

.bfb-photo-panel__content {
	max-width: 42rem;
}

.bfb-photo-panel__heading {
	font-size: clamp(1.75rem, 3vw, 3.25rem);
	font-weight: 700;
	line-height: 1.1;
}

.bfb-photo-panel__text {
	margin-top: 0.75rem;
	font-size: 1.125rem;
}

.bfb-photo-panel__text > :last-child {
	margin-bottom: 0;
}

@media (max-width: 991.98px) {
	.bfb-photo-panel__item,
	.bfb-photo-panel__item--stacked {
		min-height: 24rem;
	}
}
