﻿/* ==========================================================================
   Site.css - Place Perfect Web Application Styles
   ========================================================================== */

/* ==========================================================================
   CSS Custom Properties (Variables)
   ========================================================================== */
:root {
	/* Brand Colors */
	--ppr-blue: #090bfe;
	--ppr-blue-rgb: rgb(9, 11, 254);
	--ppr-blue-alt: rgb(30, 84, 250);
	--ppr-blue-light: #5254fe;
	/* Background Colors */
	--bg-tertiary: #f8f9fa; /* Bootstrap's tertiary background */
	/* Typography */
	--base-font-size: 16px;
	/* Responsive font sizing */
	font-size: var(--base-font-size);
	--bs-link-underline-opacity:.8;
}

.text-primary  {
	color: var(--ppr-blue) !important;
}
.btn-primary {
	background-color: var(--ppr-blue) ;
}
	.btn-primary:hover {
		background-color: white;
		border-color: var(--ppr-blue);
		color: var(--ppr-blue);
	}

.btn-outline-primary{
	color: var(--ppr-blue);
	border-color: var(--ppr-blue);
}
	.btn-outline-primary:hover {
		color: white;
		background-color: var(--ppr-blue);
		border-color: var(--ppr-blue);
	}
.btn-check:checked {
	color: white;
	background-color: var(--ppr-blue);
	border-color: var(--ppr-blue);
}
/* ==========================================================================
   Responsive Typography
   ========================================================================== */
@media (max-width: 575.98px) {
	: root {
		font-size: 14px;
	}
}

@media (min-width: 576px) and (max-width: 767.98px) {
	:root {
		font-size: 15px;
	}
}

@media (min-width: 768px) and (max-width: 991.98px) {
	:root {
		font-size: 15px;
	}
}

@media (min-width: 992px) and (max-width: 1199.98px) {
	:root {
		font-size: 17px;
	}
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
	:root {
		font-size: 18px;
	}
}

@media (min-width: 1400px) {
	:root {
		font-size: 19px;
	}
}

/* ==========================================================================
   Base Form Elements
   ========================================================================== */
.form-check-input {
	width: 20px;
	height: 20px;
}

.form-check:hover:not(:focus) {
	cursor: pointer;
	background-color: var(--bg-tertiary);
}

.form-select:hover:not(:focus) {
	cursor: pointer;
	border-color: var(--ppr-blue);
	background-color: var(--bg-tertiary);
}

.list-group-item-action:hover:not(:focus) input,
.form-check:hover:not(:focus) input {
	border: solid 1px var(--ppr-blue);
}


/* ==========================================================================
   Card Components
   ========================================================================== */

/* Agent Cards */
.agent-card {
	display: grid;
	grid-template-columns: 120px 1fr;
	grid-template-rows: 100%;
	grid-column-gap: 0.5em;
	height: 220px;
	border-radius: 10px;
	border: 1px solid rgba(0, 0, 0, 0.2);
}

	.agent-card:hover {
		box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
	}

.agent-card-body {
	display: grid;
	grid-template-rows: auto 1fr auto;
	grid-template-columns: minmax(0, 1fr);
	row-gap: 0.7em;
}

.agent-card .agent-img-wrap {
	height: inherit;
}

.agent-card .agent-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.agent-bio-preview {
	overflow:hidden;
	text-overflow:ellipsis;
	margin-bottom:0;
}
	

		@media (min-width: 576px) {
			.agent-card {
				grid-template-columns: 160px 1fr;
				height: 240px;
				min-width: 300px;
			}
		}

		@media (min-width: 1200px) {
			.agent-card {
				font-size: 15px;
			}
		}
		/* Property Cards */
		.property-card {
	border-radius: 10px;
	padding: 0;
	box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
	font-size: 0.95rem;
	scroll-snap-align: start;
	background-color: white;
}

	.property-card:focus-within {
		box-shadow: rgba(0, 0, 0, 0.55) 0px 5px 10px;
	}

	.property-card:hover {
		cursor: pointer;
		box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
	}

	.property-card a {
		all: unset;
	}

		.property-card a:hover {
			cursor: pointer;
		}

.property-card-body address {
	margin-bottom: 0;
	white-space: nowrap;
	overflow-x: hidden;
	text-overflow: ellipsis;
	font-size:14px;
}

@media(min-width: 768px) {
	.property-card-body address {
		font-size: 16px;
	}
}


.property-card-image {
	height: 180px;
}

	.property-card-image img {
		object-fit: cover;
		height: 100%;
		width: 100%;
		border-top-right-radius: 10px;
		border-top-left-radius: 10px;
	}

	.property-card-image .placeholder {
		object-fit: fill;
		height: 100%;
		width: 100%;
		border-top-right-radius: 10px;
		border-top-left-radius: 10px;
	}

/* ==========================================================================
   Layout Components
   ========================================================================== */

/* Grid Layouts */
.agent-grid {
	display: grid;
	grid-template-columns: repeat(1, minmax(auto, 480px));
	gap: 1rem;
	justify-content: space-between;
}

@media (min-width: 768px) {
	.agent-grid {
		grid-template-columns: repeat(2, minmax(auto, 480px));
		justify-content: space-between;
	}
}

.office-locations-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); 
	grid-template-rows: auto;
	gap: 1rem;
}

.office-location {
	display: grid;
	grid-template-rows: auto auto 1fr;
	border: 1px solid #ddd;
	padding: 0.5rem .7rem;
}

	.office-location a {
		display: grid;
		grid-template-columns: auto 1fr;
		column-gap:1em;
		color: inherit;
	}

/* ==========================================================================
   Interactive Components
   ========================================================================== */

/* Combobox */
.combobox-input {
	display: flex;
	font-size: 1.2rem;
	justify-content: space-between;
	background-color: var(--bs-body-bg);
	background-clip: padding-box;
	border: var(--bs-border-width) solid var(--bs-border-color);
	border-radius: var(--bs-border-radius);
}

	.combobox-input:focus-within {
		color: #212529;
		background-color: #fff;
		border-color: #86b7fe;
		outline: 0;
		box-shadow: 0 0 0 0.25rem rgb(13 110 253 / 25%);
		z-index: 3;
		border-radius: 0.25rem;
	}

	.combobox-input:hover:not(:focus-within) {
		cursor: pointer;
		border-color: var(--ppr-blue);
		background-color: var(--bg-tertiary);
	}

	.combobox-input * {
		border: none;
		cursor: pointer;
		background: unset;
	}

		.combobox-input *:focus {
			border: none;
			box-shadow: none;
			background: unset;
		}

.combobox-options-list {
	position: absolute;
	z-index: 2;
	overflow-y: scroll;
	max-height: 300px;
	background-color: white;
	border-radius: 5px;
	box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
}

.combobox-option.selected {
	background-color: rgb(13 110 253 / 7%);
}

.combobox-option:hover {
	background-color: rgb(13 110 253 / 7%);
	cursor: pointer;
}

/* Remove number input spinners */
.combobox-input input::-webkit-outer-spin-button,
.combobox-input input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.combobox-input input[type=number] {
	-moz-appearance: textfield;
}

/* Accordion */
.accordion {
	flex: 0 0 100%;
	max-width: 100%;
}

.accordion-container {
	container-type: inline-size;
	display: flex;
	flex-wrap: wrap;
	max-width: 100%;
}

@container (min-width: 576px) {
	.accordion {
		flex: 0 0 50%;
		max-width: 50%;
	}
}

@container (min-width: 992px) {
	.accordion {
		flex: 0 0 25%;
		max-width: 25%;
	}
}

.accordion-body {
	display: flex;
	flex-direction: column;
}

	.accordion-body > a {
		flex: 0 0 100%;
		max-width: 100%;
	}

/* ==========================================================================
   Carousel Components
   ========================================================================== */

/* Property Carousel */
.property-carousel {
	-ms-overflow-style: none; /* IE and Edge */
	scrollbar-width: none; /* Firefox */
	scroll-snap-type: x mandatory;
	flex-wrap: nowrap;
	overflow-x: scroll;
	scroll-padding-left: 0.6em;
	gap: 1.2em;
	padding: 0.6em;
}

	.property-carousel::-webkit-scrollbar {
		display: none; /* Chrome, Safari, Opera */
	}

	.property-carousel > * {
		scroll-snap-align: start;
	}

	.property-carousel .property-card {
		width: 320px;
		scroll-snap-align: start;
	}

/* Carousel Controls */
.carousel-control-prev,
.carousel-control-next {
	opacity: 1;
	text-align: center;
}

/* ==========================================================================
   Button Components
   ========================================================================== */

/* Icon Buttons */
.icon-btn {
	font-size: 1.2rem;
	line-height: 1.2rem;
	background-color: black;
	border-radius: 50%;
	border: none;
	opacity: 0.5;
	width: 2.5rem;
	height: 2.5rem;
	text-align: center;
	color: white;
}

	.icon-btn .bi {
		font-size: 1em;
		line-height: 1em;
		vertical-align: middle;
		text-align: center;
		height: 100%;
	}

	.icon-btn:hover, .icon-btn:focus {
		opacity: 0.8;
		cursor: pointer;
	}

/* ==========================================================================
   Footer Components
   ========================================================================== */
footer {
	background-color: var(--bg-tertiary);
}
.footer-icon {
	width: 30px;
	height: 30px;
}

footer .social-media {
	display: flex;
	gap: .5em;
	justify-content: space-between;
	align-items: end;
}

.social-media img {
	background-color: var(--ppr-blue);
	height: calc(80px + .5em);
	width:160px;
	margin-right:auto;
}

.social-media .social-icons {
	display: flex;
	flex-wrap: wrap-reverse;
	flex-direction: row;
	gap: .5em;
	justify-content: end;
	align-items: end;
}

	.social-media .social-icons a {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 40px;
		height: 40px;
	}

.disclaimer {
	grid-column: 1;
}

	.disclaimer img {
		width: 20%;
		max-width: 150px;
		object-fit: cover;
	}

/* ==========================================================================
   Utility Classes
   ========================================================================== */

/* Add any utility classes here */

/* ==========================================================================
   Media Query Placeholders
   ========================================================================== */

@media (min-width: 576px) {
	/* Small devices styles */
}

@media (min-width: 768px) {
	/* Medium devices styles */
}

@media (min-width: 992px) {
	/* Large devices styles */
}

@media (min-width: 1200px) {
	/* X-Large devices styles */
}

@media (min-width: 1400px) {
	/* XX-Large devices styles */
}
