/*
Theme Name: Beaver Builder Child Theme
Theme URI: https://www.wpbeaverbuilder.com
Version: 1.0
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
*/

/* Add your custom styles here...Remember to change the Version number above! */

/* Custom List Icons - adjust size here to change all icons universally */
.custom-list-icon {
	width: 50px;
	height: 50px;
	flex-shrink: 0;
}

/* Prevent text from wrapping under icons in BB List module */
.fl-list-item-content-text,
.fl-list-item-content-text p,
.fl-list h3.fl-list-item-heading span.fl-list-item-heading-text {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.fl-list-item-content-text .icon-text {
	flex: 1;
}

/* Indent list content under headings with icons - add class 'has-icon-heading' to module */
.has-icon-heading .fl-list-item-content {
	margin-left: 62px;
	/* icon width (50px) + gap (12px) */
}

.bb-mobile-menu {
	position: fixed;
	inset: 0;
	background: #fff;
	z-index: 9999;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .3s ease;
	display: none;
}

.bb-mobile-menu.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	display: block;
	right: 0;
	margin-right: 0;
}

.bb-mobile-menu.is-open .fl-row-content-wrap {
	align-items: start;
	height: 100%;
	overflow-y: auto;
}

.bb-mobile-menu.is-open .fl-col-content {
	position: relative;
	padding-bottom: 100px;
}

.bb_mobile_footer {
	position: absolute;
	left: 0;
	width: 100%;
	margin: 0;
	bottom: 0;
}

.bb-mobile-menu.is-open .fl-row-content-wrap .fl-row-content,
.bb-mobile-menu.is-open .fl-row-content-wrap .fl-col-group,
.bb-mobile-menu.is-open .fl-row-content-wrap .fl-col,
.bb-mobile-menu.is-open .fl-row-content-wrap .fl-col-content {
	height: 100%;
}

.custom_accordion .fl-accordion-item {
	padding: 20px;
	box-shadow: 0px 1px 3px 0px #0000004D;
	border-radius: 8px;
	border: none;
	margin-bottom: 20px;
}

.custom_accordion .fl-accordion-item .fl-accordion-button {
	padding: 0;
}

.custom_accordion .fl-accordion-item .fl-accordion-button-label {
	font-weight: 800;
	font-size: 18px;
	color: #00222B;
}

.custom_accordion .fl-accordion-item .fl-accordion-content {
	font-size: 16px;
	color: #00222B;
	padding: 10px 0 0;
}

.custom_accordion .fl-accordion-item .fl-accordion-content p {
	margin: 0;
}

.custom_accordion .fl-accordion-button .fl-accordion-button-icon .fa-minus:before {
	content: '';
	width: 20px;
	height: 20px;
	display: block;
	background: url(images/arrow_up.png) no-repeat center / cover;
}

.custom_accordion .fl-accordion-button .fl-accordion-button-icon .fa-plus:before {
	content: '';
	width: 20px;
	height: 20px;
	display: block;
	background: url(images/arrow_down.png) no-repeat center / cover;
}

.custom_accordion .fl-accordion-button .fl-accordion-button-icon-right {
	opacity: 1;
}

.fl-list-item-heading-text>span {
	width: 33px;
	height: 33px;
	text-align: center;
	background: #fff;
	display: inline-block;
	border-radius: 50%;
	color: #000;
	line-height: 29px;
	font-weight: 800;
}

.is-both-view #rr-property-results-list-col .fl-module-loop>ul {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.hung_custom_list .facetwp-map-filtering {
	display: none !important;
}

.hung_custom_list .rr-property-map .facetwp-facet-property_map,
.hung_custom_list .rr-property-map {
	height: 100%;
	min-height: 600px;
}

.hung-results-count p {
	margin: 0 0 0 10px;
	font-size: 14px;
}

#rr-property-results-map-col {
	display: block;
	flex: 1;
}

#rr-property-results-list-col {
	flex: 1;
}

#rr-property-results-map-col .facetwp-facet-property_map .facetwp-map-filtering {
	display: none !important;
}

.rrc-utilities {
	margin-left: auto;
	display: flex;
	align-items: center;
}

.rrc-pd-rt {
	display: flex;
	align-items: center;
	gap: 10px;
	position: absolute;
	top: 10px;
	left: 10px;
	width: calc(100% - 20px);
	z-index: 99;
}

.rrc-rt-item {
	border-radius: 20px;
	color: #ffffff;
	font-size: 12px;
	font-weight: bold;
	padding: 5px 20px;
	text-transform: uppercase;
}

.rrc-rt-label {}

.rrc-utilities>img {
	width: 14px;
	display: block;
	margin-right: 5px;
}

.rrc-utilities>span {
	font-size: 14px;
}

.hung_custom_list .rr-property-grid-box {
	position: relative;
}

@media screen and (max-width: 1800px) {
	.is-both-view #rr-property-results-list-col .fl-module-loop>ul {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media screen and (max-width: 1200px) {

	.hung_custom_list .rr-property-map .facetwp-facet-property_map,
	.hung_custom_list .rr-property-map {
		height: 600px;
	}

	.is-both-view #rr-student-property-results>ul {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media screen and (max-width: 767px) {
	.custom_heading_student {
		z-index: 9;
	}

	.custom_heading_student .fl-row-content-wrap {
		align-items: end !important;
		padding-bottom: 0;
	}

	.custom_heading_student .fl-row-content-wrap .custom_headnig_column {
		margin-bottom: -80px;
		margin-left: 10px;
		margin-right: 10px;
		max-width: calc(100% - 20px) !important;
	}

	.custom_heading_student .fl-row-content-wrap .custom_headnig_column .fl-col-content {
		border-radius: 15px !important;
	}

	.custom_heading_student .fl-row-content-wrap .custom_headnig_column .fl-col-content>div {
		text-align: center !important;
	}

	.custom_heading_student .fl-row-content-wrap .custom_headnig_column .fl-col-content>h1.fl-module-heading {
		margin: 20px 5px 5px;
		font-size: 30px;
		text-align: center;
	}

	.mobile_button_login .fl-button:after {
		display: none !important;
	}

	.is-both-view #rr-property-results-list-col .fl-module-loop>ul {
		grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
	}
}

/* =============================================
   Community Gallery Section
   3-image layout (1 hero + 2 stacked) for
   student community pages (split row w/ tabs)
   Applied to the fl-module-gallery module.
   ============================================= */
.it-community-gallery-section {
	height: 420px;
	width: 100%;
	position: relative;
	padding: 0 !important;
}

.it-community-gallery-section .fl-module-content {
	position: relative;
	height: 100%;
}

.it-community-gallery-section .fl-mosaicflow-col {
	width: 100% !important;
}

/* Hide all mosaic items by default */
.it-community-gallery-section .fl-mosaicflow-item {
	display: none !important;
	margin: 0;
}

/* Shared image styling for visible items */
.it-community-gallery-section .fl-mosaicflow-item .fl-photo,
.it-community-gallery-section .fl-mosaicflow-item .fl-photo-content {
	width: 100%;
	height: 100%;
}

.it-community-gallery-section .fl-mosaicflow-item .fl-photo-content a {
	display: flex;
	width: 100%;
	height: 100%;
}

.it-community-gallery-section .fl-mosaicflow-item .fl-photo-content a img {
	display: block;
	object-fit: cover;
	width: 100%;
	height: 100%;
}

/* Item 1: Hero image (left half, full height) */
.it-community-gallery-section #mosaic-0-itemid-1 {
	display: flex !important;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: calc(50% - 4px);
	height: 100%;
}

.it-community-gallery-section #mosaic-0-itemid-1 img {
	border-radius: 15px 0 0 15px;
}

/* Item 2: Top-right image (stacked) */
.it-community-gallery-section #mosaic-0-itemid-2 {
	display: flex !important;
	position: absolute;
	top: 0;
	right: 0;
	width: calc(50% - 4px);
	height: calc(50% - 4px);
}

.it-community-gallery-section #mosaic-0-itemid-2 img {
	border-radius: 0 15px 0 0;
}

/* Item 3: Bottom-right image (stacked) */
.it-community-gallery-section #mosaic-0-itemid-3 {
	display: flex !important;
	position: absolute;
	bottom: 0;
	right: 0;
	width: calc(50% - 4px);
	height: calc(50% - 4px);
}

.it-community-gallery-section #mosaic-0-itemid-3 img {
	border-radius: 0 0 15px 0;
}

/* Explicitly hide items 4+ */
.it-community-gallery-section #mosaic-0-itemid-4,
.it-community-gallery-section #mosaic-0-itemid-5 {
	display: none !important;
}

/* Image count badge (sibling module after community gallery) */
.it-community-gallery-section~.it-gallery-images-count {
	position: relative;
	z-index: 2;
	margin-top: -55px !important;
	margin-bottom: 0 !important;
	padding: 0 15px 15px 0 !important;
	display: flex !important;
	justify-content: flex-end;
	align-items: flex-end;
	height: 0;
	overflow: visible;
}

.it-community-gallery-section~.it-gallery-images-count .fl-module-content,
.it-community-gallery-section~.it-gallery-images-count>span {
	display: inline-flex;
	padding: 10px 19px 10px 15px;
	color: #00222B;
	font-size: 14px;
	font-weight: 800;
	line-height: normal;
	text-transform: uppercase;
	border-radius: 45px;
	background: #FFF;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.it-community-gallery-section~.it-gallery-images-count svg {
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-left: 4px;
	vertical-align: middle;
}


/* Responsive: tablet and below */
@media (max-width: 991px) {
	.it-community-gallery-section {
		height: auto;
	}

	.it-community-gallery-section .fl-mosaicflow {
		margin: 0;
	}

	.it-community-gallery-section #mosaic-0-itemid-1 {
		width: 100%;
		position: static;
	}

	.it-community-gallery-section #mosaic-0-itemid-1 img {
		border-radius: 15px;
		min-height: 0;
		max-height: 100%;
	}

	.it-community-gallery-section #mosaic-0-itemid-2,
	.it-community-gallery-section #mosaic-0-itemid-3 {
		display: none !important;
	}

	.it-community-gallery-section~.it-gallery-images-count {
		margin-top: -50px !important;
	}

	.it-community-gallery-section~.it-gallery-images-count>span {
		margin-right: 12px;
	}
}

/* =============================================
   Textured Red Background
   Usage: Add class 'bg-textured-red' to a BB
   row, column, or module. On rows, the
   background targets .fl-row-content-wrap so
   it respects BB's border-radius.
   ============================================= */

/* --- When applied to a BB Row --- */
.fl-row.bg-textured-red>.fl-row-content-wrap {
	position: relative;
	background-color: #C52D1F;
	overflow: hidden;
}

.fl-row.bg-textured-red>.fl-row-content-wrap::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url('images/texture_background_340896752.jpg');
	background-size: cover;
	background-position: center;
	mix-blend-mode: multiply;
	opacity: 0.4;
	pointer-events: none;
	z-index: 0;
}

.fl-row.bg-textured-red>.fl-row-content-wrap>* {
	position: relative;
	z-index: 1;
}

/* --- When applied to a column or module --- */
.fl-col.bg-textured-red,
.fl-module.bg-textured-red {
	position: relative;
	background-color: #C52D1F;
	overflow: hidden;
}

.fl-col.bg-textured-red::after,
.fl-module.bg-textured-red::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url('images/texture_background_340896752.jpg');
	background-size: cover;
	background-position: center;
	mix-blend-mode: multiply;
	opacity: 0.4;

	pointer-events: none;
	z-index: 0;
}

.fl-col.bg-textured-red>*,
.fl-module.bg-textured-red>* {
	position: relative;
	z-index: 1;
}