/*
 * 	Primary Styles for Cards
 *
 * 	@author		Kerry Kline
 * 	@copyright	Copyright (c) Kerry Kline
 * 	@link		http://www.bnecreative.com
 * 	@package 	BNE Cards
 *	@updated	March 25, 2020
 *
*/


/* ===========================================================
 *	General
 * ======================================================== */

/* == Utility == */
.clear {
    clear:both
}

.clear:before, .clear:after {
    display: table;
    content: " "
}

.clear:after {
    content: " ";
    visibility: hidden;
    display: block;
    height: 0;
    clear:both
}

.alignfull {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	width: auto;
	max-width: 100vw;
}


/* == Typography == */
html, body {
	font-size: 16px;
	font-family: 'Hind', sans-serif;
	line-height: 1.5;
	color: #888;
	font-weight: 400;
	font-style: normal;
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	word-wrap: break-word;
}

.header-font, h1, h2, h3, h4, h5, h6 {
	color: #333; 
	font-style: normal;
	font-family: 'Montserrat', sans-serif;
}

h1, .h1 { font-size: 2.29rem; }
h2, .h2 { font-size: 1.93rem; }
h3, .h3 { font-size: 1.42rem; }
h4, .h4 { font-size: 1.14rem; }
h5, .h5 { font-size: 1rem; }
h6, .h6 { font-size: 0.85rem; }

@media (max-width: 767px) {
	h1, .h1 { font-size: 1.9rem; }
	h2, .h2 { font-size: 1.7rem; }
}

a, a:hover, a:visited {
	color: var(--theme-primary-color);
}


/* == Media == */
img {
	height: auto;
	max-width: 100%;
}

/* == Buttons == */
.btn .bne-fa,
.btn svg {
	vertical-align: middle;
}

.share-btns {
	position: fixed;
	bottom: 50px;
	right: 30px;
	display: flex;
	flex-direction: column;
}

.share-btn {
	cursor: pointer;
}

.share-btns .share-btn {
	border-radius: 5px;
	height: 45px;
	text-align: center;
	line-height: 45px;
	color: white;
	font-size: 23px;
	padding: 0 10px;
	cursor: pointer;
}

.share-btns .share-btn + .share-btn {
	margin-top: 15px;
}

.share-btns .share-btn span {
	font-size: 16px;	
}

.share-btns .share-btn svg {
	vertical-align: middle;
}


/* == Colors == */
.has-primary-color { color: var(--theme-primary-color); }
.has-primary-background { background-color: var(--theme-primary-color); }
.has-primary-background.glow { box-shadow: 0px 0px 20px var(--theme-primary-color); }

/*
.has-secondary-color { color: var(--theme-secondary-color); }
.has-secondary-background { background-color: var(--theme-secondary-color); }
.has-secondary-background.glow { box-shadow: 0px 0px 20px var(--theme-secondary-color); }
*/

.has-accent-color { color: var(--theme-accent-color); }
.has-accent-background { background-color: var(--theme-accent-color); }
.has-accent-background.glow { box-shadow: 0px 0px 20px var(--theme-accent-color); }

.has-dark-background { background: var(--dark); }
.has-dark-background.glow  { box-shadow: 0px 0px 20px var(--dark); }

.bg-success.glow  { box-shadow: 0px 0px 20px var(--success); }
.bg-primary.glow  { box-shadow: 0px 0px 20px var(--primary); }
.bg-danger.glow  { box-shadow: 0px 0px 20px var(--danger); }




/* ===========================================================
 *	Layout
 * ======================================================== */

body {
	background: #222222;
}

#wrapper {
	position: relative;
	margin: 0 auto;
	padding: 0;
	width: 100%;
	max-width: 600px;
	overflow: hidden;
	background: #fff;
}

#container {
	margin: 0 auto;
	padding: 0px;
	width: 100%;
}

#header-wrapper, 
#main-content-wrapper, 
#footer-wrapper {
	position: relative;
	padding: 20px 30px;
}

#header-wrapper {
	background-size: cover;
	background-position: left top;
	background-repeat: no-repeat;
	z-index: 1;
}

body.has-banner-image #header-wrapper {
	min-height: 40vh;
	-webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 75%);
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 75%);
}




/* ===========================================================
 *	Header Buttons
 * ======================================================== */
 
.header-action-buttons {
	float: right;
}

.header-action-btn {
	display: inline-block;
	border-radius: 50%;
	width: 50px;
	height: 50px;
	text-align: center;
	line-height: 50px;
}

.header-action-btn + .header-action-btn {
	margin-left: 10px;
}

.header-action-btn a {
	display: block;
	color: white;
	font-size: 40px;
}

.header-action-btn svg {
	width: 30px;
	height: 30px;
}


/* ===========================================================
 *	USER SECTION
 * ======================================================== */

body.has-banner-image .user-block {
/* 	margin-top: calc( ( ( var(--size) / 2 ) + 20 ) * -1px ); */
	margin-top: -125px;
}

.portrait {
	--size: 125;
	margin: 0 0 20px 0;
	width: calc( var(--size) * 1px);
	height: calc( var(--size) * 1px);
	overflow: hidden;
	border-radius: 50%;
	box-shadow: 0 0 0 5px white,0px 0px 10px 6px rgba(0,0,0,.3);
	position: relative;
	z-index: 2;
}

.name {
	font-weight: 900;
}

.social-links {
	list-style: none;
	padding-left: 0;
	margin: 15px 0;
}

.social-links li {
	float: left;
	margin: 0 4px 0 0;
	width: 40px;
	height: 40px;
	border: 1px solid #000;
	text-align: center;
	line-height: 40px;
	border-radius: 50%;
}

.social-links li .icon-link {
	color: #393939;
}

.social-links .bne-fa {
	font-size: 20px;
	vertical-align: middle;
}

.contact-list {
	list-style: none;
	padding-left: 0;
}

.contact-list label {
	font-weight: bold;
	color: #000;
}

/* == User block grid == */
.user-block .user-buttons { 
	display: grid; 
	grid-column-gap: 10px;
	grid-template-areas: 
		"contact-btn contact-btn save-btn save-btn";
}
.user-block.has-review-btn .user-buttons {
	grid-template-areas: 
		"contact-btn contact-btn review-btn review-btn" 
		"save-btn save-btn save-btn save-btn";
}
.user-block .user-buttons .contact-btn { grid-area: contact-btn; }
.user-block .user-buttons .review-btn { grid-area: review-btn; }
.user-block .user-buttons .save-btn { grid-area: save-btn; }




/* ===========================================================
 *	COMPANY SECTION
 * ======================================================== */

.company-logo {
	display: block;
	text-align: center;
	margin: 0 auto;
}

/* ===========================================================
 *	Cards (Services / Badges )
 * ======================================================== */

.card-carousel {
	overflow-x: scroll;
}

.card-carousel .card {
    min-width: 65vw;
    margin-right: 15px;
}

.card-carousel.company-badges .card {
	min-width: 45vw;
}

@media(min-width: 600px) {
	.card-carousel.alignfull {
		margin-left: 0;
		margin-right: 0;
	}
	.card-carousel .card {
   		min-width: 300px;
	}
	.card-carousel.company-badges .card {
   		min-width: 200px;
	}

}

/* == Minimal Badges == */
.has-minimal-badges .company-badges {
	overflow-x: auto;
}

.has-minimal-badges .company-badges .card-carousel-inner {
	-ms-flex-wrap: wrap !important;
	flex-wrap: wrap !important;
}

.has-minimal-badges .company-badges .card-carousel-inner .card {
	margin: 0.5rem !important;
	-ms-flex: 0 0 calc( 33% - 1rem );
	flex: 0 0 calc( 33% - 1rem );
	max-width: calc( 33% - 1rem );
	min-width: auto;
}

.has-minimal-badges .company-badges .card {
	background: none;
	box-shadow: none !important;
	border: 0;	
}

.has-minimal-badges .company-badges .card-body,
.has-minimal-badges .company-badges .card-footer {
	display: none;
}

/* ===========================================================
 *	PROPERTIES SECTION
 * ======================================================== */


.property-single {
	display: grid;
	grid-column-gap: 20px;
}

.property-single {
	grid-template-columns: 1fr 1fr;
	grid-template-areas:
		"image image" 
		"title title"
		"address address"
		"price link";
}

@media( min-width: 400px ) {
	.property-single {
		grid-template-columns: 50% 1fr 1fr;
		grid-template-areas:
			"image title title" 
			"image address address"
			"price link link";
	}
}

@media( min-width: 650px ) {
	.property-single {
		grid-template-columns: 50% 1fr;
		grid-template-areas:
			"image title" 
			"image address"
			"image price"
			"image link";
	}
}

.property-single .image { grid-area: image;  }
.property-single .title { grid-area: title; }
.property-single .address { grid-area: address; margin: 0; }
.property-single .price { grid-area: price; margin: 0; align-self: center; }
.property-single .link { grid-area: link; align-self: center; }

.property-single .image {
	box-shadow: 0 3px 12px -1px rgba(7,10,25,.2),0 22px 27px -20px rgba(7,10,25,.2);
}

/* ===========================================================
 *	3rd Party Scripts
 * ======================================================== */

.message-limit .readmore, .message-limit p,
.message-limit-short .readmore, .message-limit-short p {
    display: inline;
}

.message-limit.expanded p,
.message-limit-short.expanded p {
    display: block;
}



/* ===========================================================
 *	Shapes
 * ======================================================== */

.shape-divider {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
    flex-direction: column;
    position: relative
}

.shape-divider svg {
    fill: currentColor;
    height: 100%;
    left: 0;
    bottom: -1px;
    position: absolute;
    width: 100%
}

.shape-divider-svg-wrapper {
    position: relative
}

.shape-divider-alt-wrapper {
    background-color: currentColor
}

.shape-divider.is-horizontally-flipped svg {
    transform: scaleX(-1)
}

.shape-divider.is-vertically-flipped {
    flex-direction: column-reverse
}

.shape-divider.is-vertically-flipped svg {
    bottom: 0;
    top: -1px;
    transform: scaleY(-1)
}

.shape-divider.is-vertically-flipped.is-horizontally-flipped svg {
    transform: scaleX(-1) scaleY(-1)
}

.shape-divider .bne-divider-waves path:nth-child(1) {
    opacity: 0.15
}

.shape-divider .bne-divider-waves path:nth-child(2) {
    opacity: 0.3
}

/* Brush */
.shape-divider.is-style-brush .shape-divider-svg-wrapper {
	transform: rotate(180deg);
}
.shape-divider .bne-divider-brush {
	bottom: 0;
}
.shape-divider.is-vertically-flipped .bne-divider-brush {
	top: 0;
}



/* ===========================================================
 *	Animated Page Loader
 * ======================================================== */

/* Loader Wrapper BG */
#loader-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1000;
    background: #222222;    
}

/* Loading Spiners */
#loader {
    display: block;
    position: relative;
    left: 50%;
    top: 50%;
    width: 100px;
    height: 100px;
    margin: -50px 0 0 -50px;
    border-radius: 50%;
    border: 3px solid transparent;
    border-top-color: #3498db;
    animation: spin 2s linear infinite;
    z-index: 1001;
}

/* Loading Spiners 2 */
#loader:before {
    content: "";
    position: absolute;
    top: 5px;
    left: 5px;
    right: 5px;
    bottom: 5px;
    border-radius: 50%;
    border: 3px solid transparent;
    border-top-color: #e74c3c;
    animation: spin 3s linear infinite;
}

/* Loading Spiners 3 */
#loader:after {
    content: "";
    position: absolute;
    top: 15px;
    left: 15px;
    right: 15px;
    bottom: 15px;
    border-radius: 50%;
    border: 3px solid transparent;
    border-top-color: #f9c922;
	animation: spin 1.5s linear infinite;
}

/* Spin Animation */
@-webkit-keyframes spin {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@-moz-keyframes spin {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@keyframes spin {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Finished */
.fontawesome-i2svg-complete #loader-wrapper,
.fontawesome-i2svg-complete #loader {
	visibility: hidden;
    opacity: 0;
    transition: all 0.3s ease-out;
}


/* ===========================================================
 *	Modals
 * ======================================================== */

.modal-dialog {
    margin: 0 auto;
    max-width: 600px;
}
.modal-content {
	min-height: 100vh;
}

.modal-header {
	border: none;
}

.modal-content .modal-title {
    font-weight: bold;
    font-size: 10vmin;
}
@media (min-width: 800px) {
	.modal-content .modal-title {
		font-size: 40px;
	}
}

.modal-content .close {
	font-size: 80px;
	opacity: 1 !important;
	padding: 0;
	margin: 0;
}

.modal-body {
	padding: 1em 1em 3em 1em;
}

.qr-code-image {
	display: block;
	margin: 20px auto;
	border-radius: 5px;
	max-width: 70%;
}


#modal-share .social-links li .icon-link {
	font-size: 30px;
}