/*
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;
	background-color: #ffffff;
	border-radius: 50%;
	padding: 8px;
	box-sizing: border-box;
}

/* 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%;
}

.bb-login-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-login-mobile-menu.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	display: block;
	right: 0;
	margin-right: 0;
}

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

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

.bb-login-mobile-menu.is-open .fl-row-content-wrap .fl-row-content,
.bb-login-mobile-menu.is-open .fl-row-content-wrap .fl-col-group,
.bb-login-mobile-menu.is-open .fl-row-content-wrap .fl-col,
.bb-login-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;
	width: 110px;
	justify-content: end;
}

.rrc-pd-col-pets {
	justify-content: end;
}

/* ===== Property Card: Move rent price up beside availability date ===== */
.rrc-pd-meta {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: baseline;
}

.rrc-pd-tag-date {
	display: contents;
}

.rrc-pd-price {
	grid-row: 1;
	grid-column: 1;
	padding: 0 0 12px 0;
}

.rrc-pd-col-date {
	grid-row: 1;
	grid-column: 2;
}

.rrc-pd-features,
.rrc-group-address {
	grid-column: 1 / -1;
}

#rrc-sbf-submit-sales .fwp-submit,
#rrc-sbf-submit-student .fwp-submit,
#rrc-sbf-submit-residential .fwp-submit {
	text-transform: uppercase;
	padding: 8px 1.5rem;
}

#rrc-sbf-submit-sales,
#rrc-sbf-submit-student,
#rrc-sbf-submit-residential {
	margin-bottom: 4px;
}

#rrc-sbf-submit-sales .fwp-submit:hover {
	background: #829399;
	color: #fff;
	border-color: #829399;
}

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

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

.rrc-rt-label {}

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

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

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

.fl-list-item-content-text ul {
	padding-left: 15px;
}

.rrc-student-filters #rrc-sb-ui-mobile-filters .btn img {
	width: 18px;
}

#rrc-sb-ui-mobile-idx .btn img {
	width: 18px;
}

.it-testimonials-slider .it-testimonials-card {
	width: 100% !important;
}

@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 {
		position: relative;
		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;
	}

	#rrc-sbf-submit-sales .fwp-submit {
		font-size: 16px;
	}

	.has-icon-heading .fl-list-item-content {
		margin-left: 0;
	}
}

/* =============================================
   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;
}

.facetwp-type-search .facetwp-icon {
	opacity: 1;
}

.facetwp-type-search .facetwp-icon:before {
	display: inline-block;
	content: '';
	width: 30px;
	height: 100%;
	background: url('images/icon_search.svg') no-repeat;
	background-size: 20px 20px;
	background-position: 5px 50%;
}

/* ===========================================
   ALL BUTTONS - Arrow by default
=========================================== */

.fl-button-wrap .fl-button {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.fl-button-wrap .fl-button::after {
	content: '';
	display: inline-block;
	width: 14px;
	/* Adjust to match your SVG proportions */
	height: 14px;
	min-width: 14px;
	background-image: url('/wp-content/themes/bb-theme-child/images/white_arrow.svg');
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	flex-shrink: 0;
	margin-left: 8px;
	position: relative;
	top: 1px;
	/* Nudge down */
}

/* Red button hover: grey background, white text */
.fl-button-wrap .fl-button:hover {
	background-color: #829399 !important;
	color: #fff !important;
}

.fl-button-wrap .fl-button:hover .fl-button-text {
	color: #fff !important;
}

/* ===========================================
   OUTLINE VARIANT - Add .btn-outline class =========================================== */

.btn-outline .fl-button {
	background-color: transparent !important;
	border: 1px solid white !important;
}

.btn-outline .fl-button .fl-button-text {
	color: white;
}

/* Outline hover state: solid white bg, grey text */
.btn-outline .fl-button:hover {
	background-color: #fff !important;
	color: #829399 !important;
}

.btn-outline .fl-button:hover .fl-button-text {
	color: #829399 !important;
}

/* Turn the white arrow grey to match text on hover */
.btn-outline .fl-button:hover::after {
	filter: brightness(0) saturate(100%) invert(63%) sepia(8%) saturate(400%) hue-rotate(169deg) brightness(92%) contrast(88%);
}

/* ===========================================
   OPT-OUT - Add .btn-no-arrow if needed  =========================================== */

.btn-no-arrow .fl-button::after {
	display: none;
}

.btn-no-arrow .fl-button {
	gap: 0;
}

/* ===== Login Button for Menu Custom Link ===== */
/* Usage: Add "menu-btn" as CSS class to the menu item */

.menu-btn>a,
.menu-btn .fl-has-submenu-container>a {
	background-color: #C52D1F !important;
	border-radius: 25px !important;
	padding: 12px 20px !important;
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	display: inline-block !important;
	text-decoration: none !important;
	transition: background-color 0.2s ease !important;
}

.menu-btn>a:hover,
.menu-btn .fl-has-submenu-container>a:hover {
	background-color: #829399 !important;
	color: #fff !important;
}

/* Dropdown toggle arrow styling */
.menu-btn .fl-has-submenu-container>a {
	padding-right: 35px !important;
	/* Extra room for arrow */
}

.menu-btn .fl-menu-toggle::before {
	border-color: #fff !important;
	border-right-color: #fff !important;
	border-bottom-color: #fff !important;
}

/* ===== Red Top Header Bar - Reduce Height ===== */
.fl-node-uorn258gaxk1 .fl-row-content-wrap {
	padding-top: 2px !important;
	padding-bottom: 2px !important;
}

.fl-node-uorn258gaxk1 .fl-module-content {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.fl-node-uorn258gaxk1 .fl-menu li a {
	padding-top: 8px !important;
	padding-bottom: 8px !important;
}

/* ===== Circular Card Design - Works with Loop & Standalone Box Modules ===== */

/* Parent container reset - must come FIRST */
.fl-module-box.circular-cards {
	background: transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	margin-top: 0 !important;
	padding-top: 88px !important;
	border: none !important;
	overflow: visible !important;
}

/* Grid spacing for loop modules */
.circular-cards .fl-loop-grid {
	padding-top: 88px;
}

/* Card styling - any box inside circular-cards */
.circular-cards .fl-module-box {
	background: #fff !important;
	border-radius: 14px !important;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08) !important;
	padding-top: 108px !important;
	padding-bottom: 24px !important;
	margin-top: 88px !important;
	position: relative !important;
	border: none !important;
	overflow: visible !important;
}

/* Circular photo positioning */
.circular-cards .fl-module-box .fl-module-photo {
	position: absolute !important;
	top: -88px;
	left: 50%;
	transform: translateX(-50%);
	width: 175px;
	height: 175px;
	margin: 0 !important;
	padding: 0 !important;
}

.circular-cards .fl-module-box .fl-module-photo img {
	width: 175px !important;
	height: 175px !important;
	border-radius: 50%;
	object-fit: cover;
	border: none;
	box-shadow:
		0 0 0 1px #000,
		0 4px 12px rgba(0, 0, 0, 0.1);
}

/* ===== Power Pack Content Grid - Circular Cards ===== */
/* Usage: Add .circular-cards class to the PP Content Grid module */

/* Grid container spacing */
.circular-cards .pp-content-post-grid {
	padding-top: 20px;
}

/* Individual card styling */
.circular-cards .pp-content-post {
	background: #fff !important;
	border-radius: 14px !important;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08) !important;
	padding: 108px 24px 24px 24px !important;
	margin-top: 130px !important;
	position: relative !important;
	border: none !important;
	overflow: visible !important;
}

/* Circular photo positioning */
.circular-cards .pp-content-post .pp-content-grid-post-image {
	position: absolute !important;
	top: -88px !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	width: 175px !important;
	height: 175px !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
}

/* Make the link inside fill the container */
.circular-cards .pp-content-post .pp-content-grid-post-image a {
	display: block;
	width: 175px !important;
	height: 175px !important;
}

/* Circular photo styling with double-ring border */
.circular-cards .pp-content-post .pp-content-grid-post-image img {
	width: 175px !important;
	height: 175px !important;
	border-radius: 50% !important;
	object-fit: cover !important;
	border: none !important;
	box-shadow:
		0 0 0 1px #000,
		0 4px 12px rgba(0, 0, 0, 0.1) !important;
}

/* Center the content below photo */
.circular-cards .pp-content-post .pp-content-body,
.circular-cards .pp-content-post .pp-content-grid-post-content,
.circular-cards .pp-content-post .pp-content-grid-post-text {
	text-align: center;
}

/* Extra padding for main text in circular cards */
.circular-cards .fl-module-box .fl-module-rich-text,
.circular-cards .fl-module-rich-text {
	padding-left: 24px !important;
	padding-right: 24px !important;
}

/* ===== Logo Cards Design - Simple cards with logo + button ===== */
/* Usage: Add .logo-cards class to the Loop module */

/* Grid container */
.logo-cards .fl-loop-grid {
	gap: 24px;
}

/* Individual card styling */
.logo-cards .fl-module-box {
	background: #fff !important;
	border-radius: 14px !important;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08) !important;
	padding: 32px 24px !important;
	border: none !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: space-between !important;
	min-height: 200px;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.logo-cards .fl-module-box:hover {
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12) !important;
	transform: translateY(-2px);
}

/* Logo/image styling */
.logo-cards .fl-module-box .fl-module-photo {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin-bottom: 20px !important;
}

.logo-cards .fl-module-box .fl-module-photo img {
	max-width: 100%;
	max-height: 120px;
	width: auto !important;
	height: auto !important;
	object-fit: contain;
}

/* Button styling */
.logo-cards .fl-module-box .fl-button-wrap {
	margin-top: auto;
}

/* .logo-cards .fl-module-box .fl-button {
	background-color: #C73E3A !important;
	border-radius: 25px !important;
	padding: 10px 24px !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
} */

/* .logo-cards .fl-module-box .fl-button:hover {
	background-color: #a83330 !important;
} */

/* ===== Rental Property Cards ===== */
/* Usage: Add .rental-cards class to the Loop module */

/* Grid layout */
.rental-cards .fl-loop-grid {
	gap: 24px;
}

/* Each card (loop item box) */
.rental-cards .fl-loop-grid>.fl-loop-item>.fl-module-box,
.rental-cards .fl-module-box.fl-node-content {
	background: #fff !important;
	border-radius: 14px !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12) !important;
	border: none !important;
	overflow: hidden;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
}

.rental-cards .fl-loop-item:hover .fl-module-box {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1), 0 12px 32px rgba(0, 0, 0, 0.15) !important;
}

/* Photo styling */
.rental-cards .fl-module-photo,
.rental-cards .fl-photo {
	margin: 0 !important;
	padding: 0 !important;
	width: 100%;
}

.rental-cards .fl-photo-img,
.rental-cards .fl-module-photo img {
	width: 100% !important;
	height: 200px !important;
	object-fit: cover;
	border-radius: 14px 14px 0 0 !important;
	display: block;
}

/* All content modules below photo get padding */
.rental-cards .fl-module-heading,
.rental-cards .fl-module-html,
.rental-cards .fl-module-button {
	padding-left: 20px !important;
	padding-right: 20px !important;
	margin: 0 !important;
}

/* Price (heading module) */
.rental-cards .fl-module-heading .fl-heading,
.rental-cards .fl-heading h3 {
	font-size: 28px !important;
	font-weight: 700 !important;
	color: #C52D1F !important;
	margin: 16px 0 8px 0 !important;
	padding: 0 !important;
}

/* Address text */
.rental-cards .listing-address {
	font-size: 14px !important;
	color: #444 !important;
	line-height: 1.5 !important;
	margin-bottom: 8px !important;
}

/* Beds/Baths text */
.rental-cards .listing-details {
	font-size: 14px !important;
	color: #333 !important;
	margin-bottom: 12px !important;
}

/* Available date */
.rental-cards .available-date {
	font-size: 13px !important;
	color: #666 !important;
	padding: 12px 20px 0 20px !important;
	margin: 0 !important;
	text-align: right;
}

/* Button row container */
.rental-cards .fl-module-button {
	margin-bottom: 0 !important;
	padding-top: 12px !important;
	padding-bottom: 12px !important;
}

/* Price */
.rental-cards .listing-price,
.rental-cards .listing-price h3 {
	font-size: 28px !important;
	font-weight: 700 !important;
	color: #C52D1F !important;
	/* Teal color from Figma */
	margin: 0 0 12px 0 !important;
	padding: 0 20px;
}

/* Details row (Beds, Baths, Pets) */
.rental-cards .listing-details {
	display: flex;
	flex-wrap: nowrap;
	gap: 12px;
	font-size: 13px;
	color: #333;
	padding: 0 20px;
	margin-bottom: 12px;
}

/* Icons for details - using CSS content */
.rental-cards .listing-details .detail-beds::before {
	content: '🛏️ ';
}

.rental-cards .listing-details .detail-baths::before {
	content: '🚿 ';
}

/* Pet info styling (inside listing-details) */
.rental-cards .listing-details .pet-cats:not(:empty)::before {
	content: '🐱 Cats';
	font-size: 13px;
}

.rental-cards .listing-details .pet-dogs:not(:empty)::before {
	content: '🐕 Dogs';
	font-size: 13px;
}

/* Hide the "1" value */
.rental-cards .listing-details .pet-cats,
.rental-cards .listing-details .pet-dogs {
	font-size: 0;
}

/* Address */
.rental-cards .listing-address {
	font-size: 14px;
	color: #444;
	line-height: 1.5;
	padding: 0 20px;
	margin-bottom: 16px;
}

/* Action buttons row */
.rental-cards .listing-actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 20px;
	background: #f5f5f5;
	margin: auto -20px -20px -20px;
	border-radius: 0 0 14px 14px;
}

/* View Details link */
.rental-cards .view-details {
	background: transparent !important;
	color: #1a1a1a !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	padding: 0 !important;
	border: none !important;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.rental-cards .view-details:hover {
	color: #C52D1F !important;
}

/* View Details arrow */
.rental-cards .view-details::after {
	content: '→';
	font-size: 14px;
	font-weight: 400;
}

/* Apply Now button */
.rental-cards .apply-btn {
	background-color: #C52D1F !important;
	border-radius: 25px !important;
	padding: 12px 24px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	color: #fff !important;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	transition: background-color 0.2s ease;
}

.rental-cards .apply-btn:hover {
	background-color: #a32418 !important;
}

/* Apply Now arrow */
.rental-cards .apply-btn::after {
	content: '→';
	font-size: 14px;
	font-weight: 400;
}

/* ===========================================
   FLUENT FORMS - Submit Button Styling
=========================================== */

.fluentform .ff-btn-submit {
	background-color: transparent !important;
	border: 1px solid #fff !important;
	border-radius: 50px !important;
	color: #fff !important;
	padding: 12px 24px !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	cursor: pointer;
	display: inline-flex !important;
	align-items: center !important;
	gap: 12px !important;
	transition: background-color 0.2s ease !important;
}

.fluentform .ff-btn-submit::after {
	content: '';
	display: inline-block;
	width: 14px;
	height: 14px;
	min-width: 14px;
	background-image: url('/wp-content/themes/bb-theme-child/images/white_arrow.svg');
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	flex-shrink: 0;
}

.fluentform .ff-btn-submit:hover {
	background-color: #fff !important;
	color: #829399 !important;
}

.fluentform .ff-btn-submit:hover::after {
	filter: brightness(0) saturate(100%) invert(63%) sepia(8%) saturate(400%) hue-rotate(169deg) brightness(92%) contrast(88%);
}

/* Modal Fluent Form submit: match standard red-button hover */
.pp-modal-content .fluentform .ff-btn-submit:hover {
	background-color: #829399 !important;
	color: #fff !important;
	border-color: #829399 !important;
}

.pp-modal-content .fluentform .ff-btn-submit:hover::after {
	filter: none;
}

select.ff-el-form-control {
	font-size: 14px;
}

/* Career Form */
.fluentform_wrapper_5.ffs_default_wrap .ff-el-input--content .error,
.fluentform_wrapper_5.ffs_default_wrap .error-text {
	color: #ffffff !important;
}

/* Form 6 - Success message white text */
.fluentform_wrapper_6 .ff-message-success {
	color: #ffffff !important;
}

/* Team Popouts */

.rr-post-quick-view-container {
	position: relative;
}

.rr-post-quick-view-image-link {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1/1;
	background-repeat: no-repeat;
	background-size: cover;
	text-decoration: none;
}

.rr-post-quick-view-image-link:hover,
.rr-post-quick-view-image-link:focus,
.rr-post-quick-view-image-link:active {
	text-decoration: none;
}

.rr-quick-view-post-title {
	color: #ffffff;
	line-height: 1.2;
	margin: 0;
	z-index: 1;
}

.rr-quick-view-post-title span {
	display: block;
	text-align: center;
	font-size: 150%;
	font-weight: 300;
}

.rr-quick-view-post-title:after {
	content: '';
	position: absolute;
	background-color: rgba(0, 96, 152, .5);
	transition: 600ms;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
}

.rr-quick-view-post-title:hover:after {
	background-color: rgba(0, 96, 152, 0);
}

.rr-post-quick-view-modal-container {
	padding: 15px;
}

.rr-post-quick-view-modal-title {
	margin: 0 0 10px 0;
}

/* ===== Force Site Button Defaults Inside PP Modal ===== */
.pp-modal-content .fl-button-wrap .fl-button {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	border-radius: 50px !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	font-size: 16px !important;
	border: none !important;
}

/* ===== Step Number Circle (replaces image-based numbers) ===== */
/* Usage: In BB, add an HTML module with: <span class="step-number">1</span> */
.step-number {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #fff;
	color: #C52D1F !important;
	font-size: 14px;
	font-weight: 800;
	flex-shrink: 0;
	line-height: 1;
	box-shadow: 0 3px 8px rgba(0, 0, 0, 0.35);
}

/* ===== Pagination (BB Loop Module) ===== */
/* Matches mockup: clean numbers, bold active, circle-arrow next */

.fl-builder-content .fl-builder-pagination ul.page-numbers {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 24px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 30px 0 0 !important;
}

.fl-builder-content .fl-builder-pagination ul.page-numbers li {
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
}

/* All page number links and spans */
.fl-builder-content .fl-builder-pagination ul.page-numbers .page-numbers {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
	color: #00222B !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	text-decoration: none !important;
	padding: 0 !important;
	min-width: auto !important;
}

/* Current / Active page */
.fl-builder-content .fl-builder-pagination ul.page-numbers .page-numbers.current {
	color: #00222B !important;
	font-weight: 800 !important;
	font-size: 22px !important;
}

/* Hover state for linked pages — grey like arrow hover */
.fl-builder-content .fl-builder-pagination ul.page-numbers a.page-numbers:not(.next):not(.prev):hover {
	color: #829399 !important;
}

/* Ellipsis dots between page gaps */
.fl-builder-content .fl-builder-pagination ul.page-numbers .page-numbers.dots {
	display: inline-flex !important;
	color: #00222B !important;
	font-weight: 400 !important;
	letter-spacing: 2px !important;
}

/* Next arrow — Feather arrow-right-circle icon */
.fl-builder-content .fl-builder-pagination ul.page-numbers a.next.page-numbers {
	font-size: 0 !important;
	width: 26px !important;
	height: 26px !important;
	border: none !important;
	background: none !important;
}

.fl-builder-content .fl-builder-pagination ul.page-numbers a.next.page-numbers::after {
	content: '' !important;
	display: block !important;
	width: 26px !important;
	height: 26px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2300222B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 16 16 12 12 8'/%3E%3Cline x1='8' y1='12' x2='16' y2='12'/%3E%3C/svg%3E") !important;
	background-size: contain !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	filter: none !important;
}

/* Next arrow hover — grey (#829399) */
.fl-builder-content .fl-builder-pagination ul.page-numbers a.next.page-numbers:hover::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23829399' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 16 16 12 12 8'/%3E%3Cline x1='8' y1='12' x2='16' y2='12'/%3E%3C/svg%3E") !important;
}

/* Previous arrow — Feather arrow-left-circle icon */
.fl-builder-content .fl-builder-pagination ul.page-numbers a.prev.page-numbers {
	font-size: 0 !important;
	width: 26px !important;
	height: 26px !important;
	border: none !important;
	background: none !important;
}

.fl-builder-content .fl-builder-pagination ul.page-numbers a.prev.page-numbers::after {
	content: '' !important;
	display: block !important;
	width: 26px !important;
	height: 26px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2300222B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 8 8 12 12 16'/%3E%3Cline x1='16' y1='12' x2='8' y2='12'/%3E%3C/svg%3E") !important;
	background-size: contain !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	filter: none !important;
}

/* Prev arrow hover — grey (#829399) */
.fl-builder-content .fl-builder-pagination ul.page-numbers a.prev.page-numbers:hover::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23829399' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 8 8 12 12 16'/%3E%3Cline x1='16' y1='12' x2='8' y2='12'/%3E%3C/svg%3E") !important;
}

/* ===== Fix PP Content Grid inside PP Tabs ===== */
/* PP Tabs sets .pp-tabs-panel-content p:last-child { margin-bottom: 0 } */
.pp-tabs-panel-content .pp-content-grid-post-excerpt {
	margin-bottom: 16px !important;
}

.pp-tabs-panel-content .pp-content-grid-post-excerpt p {
	margin-bottom: 16px !important;
}

.pp-tabs-panel-content .pp-content-grid-post-text,
.pp-tabs-panel-content .pp-content-grid-post-title,
.pp-tabs-panel-content .pp-content-grid-post-excerpt {
	color: #00222B !important;
}

/* ===== HOA Page: White Circle Backgrounds for SVG Icons ===== */
.fl-node-cwiduo6kvz74 .fl-photo-img-svg img {
	background-color: #ffffff;
	border-radius: 50%;
	padding: 12px;
	box-sizing: border-box;
}

/* ===== About Page: Center HOA Tab Headings ===== */
.it-rra-hoa-tabs .pp-tabs-labels {
	justify-content: center;
	width: 100%;
}

/* ===== Homepage Header: Background Video Fill ===== */
/* BB hardcodes object-fit:contain on bg videos — override to cover */
.fl-node-4bo6mkch8se3 .fl-bg-video video {
	object-fit: cover !important;
}

/* ===== Homepage: Dark bar half-overlay on mobile ===== */
@media (max-width: 767px) {

	/* Allow content to hang out below the hero row */
	.fl-node-4bo6mkch8se3,
	.fl-node-4bo6mkch8se3>.fl-row-content-wrap {
		overflow: visible !important;
	}

	/* Push the bar down past the bottom edge of the hero */
	.fl-node-wefa3bt8jo02>.fl-col-content {
		transform: translateY(150px) !important;
		margin-bottom: -150px !important;
		position: relative;
		z-index: 10;
	}
}

.search-clear {
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	cursor: pointer;
	font-size: 20px;
	display: none;
	line-height: 1;
	padding: 10px;
	z-index: 2;
	-webkit-tap-highlight-color: transparent;
}

/* ===== PP Content Grid Post Position ===== */
.pp-content-grid-post-position {
	font-weight: 700;
}

/* ===== fluent forms styles for ID 6 and 7 ===== */
.fluent_form_6 p {
	color: #ffffff;
}

.fluent_form_7 .ff-el-input--label label,
.fluent_form_7 .ff-el-help-message,
.fluent_form_7 .ff_upload_btn_txt {
	color: #ffffff !important;
}

.fluentform .fluent_form_7 .ff-btn-submit {
	border-color: #c52d1f !important;
	background-color: #c52d1f !important;
}