/**
 * Theme Name: Beaux Mondes
 * Author: Andrew Duthie
 * Author URI: https://andrewduthie.com
 * Template: tm-hairsalon
 * Version: 1.0
 */

/* Elements */

body {
	overflow-x: visible;
}

em {
	font-style: italic;
}

h2 {
	hyphens: none;
	-webkit-hyphens: none;
}

/* Global */

.site {
	position: static;
	overflow: visible;
}

.site-content {
	max-width: 79.95rem;
}

@media (min-width: 75rem) {
	.container {
		max-width: 79.75rem;
	}
}

/* Top Text */

.icon-flourish {
	display: inline-block;
	width: 68px;
	height: 68px;
	margin: 0 1.125rem;
	background: url(images/icon-scissors.png) no-repeat center;
	background-size: 68px 50px;
}

.site-top-text .col-md-12 {
	display: flex;
	justify-content: center;
	align-items: center;
}

.site-top-text .container {
	position: relative;
}

.site-top-text__phone-number {
	display: none;
	position: absolute;
	top: 0;
	height: 100%;
	align-items: center;
	right: 1.9125rem;
}

@media (min-width: 75rem) {
	.site-top-text__phone-number {
		display: flex;
	}
}

/* Header */

.site-header {
	position: sticky;
	top: 0;
	z-index: 10;
}

@media (min-width: 783px) {
	.admin-bar .site-header {
		top: 32px;
	}
}

@media (min-width: 62rem) {
	.site-header-container {
		max-width: 79.75rem;
	}
}

@media (max-width: 75rem) {
	#site-navigation .menu > ul > .menu-item,
	#site-navigation .menu > .menu-item {
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}
}

/* Mobile Navigation */

#open-left {
	padding: 1rem;
	margin-right: -1rem;
}

.snap-drawers {
	position: fixed;
}

body:not(.snapjs-left) .snap-drawers {
	z-index: -1;
}

.admin-bar .snap-drawers {
	top: 32px;
}

/* Home: Slider */

.text-shadow-white {
	text-shadow: 0 0 1px white;
}

/* Home: Philosophy */

.text-philosophy {
	line-height: 1.8;
}

@media (min-width: 75rem) {
	.text-philosophy {
		font-size: 1.17rem;
		line-height: 2;
	}
}

/* Home: Social Media */

.social-media__heading-links p {
	text-align: center;
	margin-top: 35px;
}

.social-media__content {
	background-size: 0;
	font-size: 1.4rem;
	line-height: 1.5;
	padding-bottom: 2rem;
}

@media (min-width: 75rem) {
	.social-media__heading-links p {
		margin-top: 0;
		text-align: right;
	}

	.social-media__content {
		padding-bottom: 0;
		height: 540px;
		background-position: right center;
		background-repeat: no-repeat;
		background-size: contain;
		text-shadow: 0 0 3px #fff;
	}

	.social-media__content .wpb_column {
		background-image: linear-gradient(
			to right,
			#fff,
			#fff 83%,
			rgba(255, 255, 255, 0)
		);
	}

	.social-media__content .wpb_column::before {
		position: absolute;
		top: 0;
		right: 100%;
		bottom: 0;
		width: 999rem;
		background: #fff;
	}
}

.social-media__content em {
	font-style: italic;
}

/* Social Link */

.social-link + .social-link {
	margin-left: 0.25rem;
}

/* Buttons */

input[type='submit'],
.schedule-appointment-button,
.schedule-appointment-button:visited {
	padding: 0.8rem 0.6rem;
	background-color: #000;
	color: #fff;
	border: 2px solid #fff;
	box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.4), 0 0 3px rgba(0, 0, 0, 0.4);
	font-weight: bold;
	text-transform: uppercase;
	font-family: PT Sans;
}

input[type='submit']:hover,
.schedule-appointment-button:hover {
	background-color: #686E5E;
	color: #fff;
}

/* Brand Products */

.brand-products {
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.brand-products__heading {
	margin: 4rem 0 2rem;
	font-size: 1.6rem;
	line-height: 1.2;
	text-align: center;
}

.brand-products__heading strong {
	display: block;
	text-transform: uppercase;
}

.brand-products__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
	text-align: center;
}

.brand-products__grid .wp-block-image {
	margin: 1.5rem;
	width: 100%;
}

@media (min-width: 62rem) {
	.brand-products__grid .wp-block-image {
		width: auto;
	}
}

/* Site Footer */

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

.site-footer h2 {
	font-size: 1.2rem;
}

.site-footer .social-menu .menu li a {
	border-color: #fff;
}

.site-footer__phone,
.site-footer__email,
.site-footer__cancellation {
	position: relative;
	margin: 1rem 0;
	padding-left: 2rem;
}

.site-footer__phone::before,
.site-footer__email::before,
.site-footer__cancellation::before {
	content: '';
	position: absolute;
	display: block;
	left: 0;
	top: 50%;
	width: 1.25rem;
	background-position: center;
	background-repeat: no-repeat;
	transform: translateY(-50%);
}

.site-footer__phone::before {
	height: 17px;
	background-image: url(images/icon-phone.png);
}

.site-footer__email::before {
	height: 14px;
	background-image: url(images/icon-email.png);
}

.site-footer__cancellation::before {
	height: 14px;
	background-image: url(images/icon-cancellation.png);
}

/* Hours Table */

.hours-table td {
	padding: 0;
}

.hours-table td:nth-child(2) {
	width: 65%;
}

/* Copyright */

.copyright {
	border-top: none;
}

/* Row Banners */

.banner-row {
	background-repeat: no-repeat;
}

@media (min-width: 75rem) {
	.banner-row--philosophy {
		height: 495px;
		background-image: url(https://beauxmondesalon.com/wp-content/themes/beauxmondes/images/row-bg-home-philosophy.png);
		background-position: left center;
		background-repeat: no-repeat;
	}
}

@media (min-width: 110rem) {
	.banner-row--philosophy {
		background-image: none;
	}

	.banner-row--philosophy .wpb_column:first-child {
		position: relative;
	}

	.banner-row--philosophy .wpb_column:first-child::before {
		content: '';
		position: absolute;
		display: block;
		top: 0;
		left: 0;
		bottom: 0;
		width: 1116px;
		background-image: url(https://beauxmondesalon.com/wp-content/themes/beauxmondes/images/row-bg-home-philosophy.png);
		background-position: left center;
	}
}

.banner-row--beaux-mondes {
	height: 165px;
	background-image: url(images/row-bg-beaux-mondes.png);
	background-position: right center;
}

@media (max-width: 62rem) {
	.banner-row--beaux-mondes {
		background-size: 100% auto;
	}
}

.banner-row--building {
	height: 85px;
}

.banner-row--massage {
	color: #fff;
}

.banner-row--massage p,
.banner-row--massage .wpb_content_element {
	margin: 0;
}

.banner-row--massage__intro {
	font-size: 2.7rem;
	line-height: 1.2;
}

.banner-row--massage .banner-row--massage__description {
	margin: 0.75rem 0 1.25rem;
	font-size: 1.1rem;
}

.banner-row--massage__call {
	font-size: 1.625rem;
	text-transform: uppercase;
}

.banner-row--massage__phone {
	font-size: 2.35rem;
	font-weight: bold;
}

/* About */

.about-salon__text {
	font-size: 1.2rem;
	line-height: 2;
	hyphens: none;
	-webkit-hyphens: none;
}

.about-salon {
	position: relative;
	z-index: 1;
}

.about-salon__description {
	margin-top: 3.75rem;
}

.about-salon__address {
	font-size: 1.1rem;
}

.about-salon__phone {
	line-height: 1.1;
	font-size: 2rem;
}

@media (min-width: 75rem) {
	.page-id-21 .banner-row--beaux-mondes {
		margin-top: -115px;
	}
}

.page-id-21 .banner-row--beaux-mondes.vc_row[data-vc-full-width] {
	overflow: visible;
}

.about-salon__bio > :first-child {
	order: 1;
}

@media (min-width: 75rem) {
	.about-salon__bio > :first-child {
		order: 0;
	}
}

/* Team */

.team__sub-heading ~ .wpb_row > .wpb_column:first-child .team__join {
	display: none;
}

@media (min-width: 768px) {
	.team__team {
		background: url(https://beauxmondesalon.com/wp-content/themes/beauxmondes/images/bg-team-bar-green.jpg) no-repeat;
		background-size: 100%;
	}

	.team__sub-heading ~ .wpb_row > .wpb_column:first-child .team__join {
		display: flex;
	}
}

.team__sub-heading.wpb_content_element {
	margin-bottom: 0;
}

.team__sub-heading h3 {
	font-size: 1.625rem;
	color: #000;
	text-transform: uppercase;
}

@media (min-width: 94rem) {
	.team__sub-heading {
		margin-left: -90px;
	}
}

@media (min-width: 116rem) {
	.team__team > .wpb_column {
		position: relative;
	}

	.team__team > .wpb_column::before {
		content: '';
		display: block;
		position: absolute;
		left: -265px;
		top: 30vw;
		width: 231px;
		height: 1288px;
		background: url(https://beauxmondesalon.com/wp-content/themes/beauxmondes/images/bg-team-banner-green.png);
	}
}

/* Contact */

.page-id-26 .wpb_text_column {
	font-size: 1.1rem;
}

.contact__text {
	max-width: 22rem;
	margin: 0 auto;
}

@media (max-width: 767px) {
	.contact__join .vc_column_container > .vc_column-inner {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Service */

.service ~ .service {
	margin-top: 8rem;
}

.service.vc_row[data-vc-full-width] {
	overflow: visible;
}

.service h3 {
	font-size: 2rem;
	margin-bottom: 0.8rem;
}

.service table {
	text-transform: uppercase;
}

.service table tr {
	display: flex;
	flex-direction: column;
}

.service table td {
	display: flex;
	white-space: nowrap;
}

.service table td:first-child::after {
	display: block;
	flex-grow: 1;
	content: '................................................................';
	white-space: nowrap;
	text-overflow: clip;
	overflow: hidden;
}

.service__description p {
	max-width: 44rem;
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 75rem) {
	.service table td {
		width: auto !important;
		padding: 0;
	}

	.service table td:nth-child(2) {
		padding-bottom: 1rem;
	}
}

@media (min-width: 75rem) {
	.service table tr {
		flex-direction: row;
	}
}

@media (min-width: 75rem) {
	.service .wpb_single_image {
		margin-top: -2rem;
		margin-bottom: -2rem;
	}

	.service .vc_single_image-wrapper {
		position: relative;
	}

	.service .vc_single_image-wrapper::before {
		content: '';
		position: absolute;
		top: 1rem;
		left: 1rem;
		right: -1rem;
		bottom: -1rem;
		background: #fff;
	}

	.service .vc_single_image-img {
		position: relative;
	}
}

.gallery-grid .wpb_image_grid_ul {
	max-width: 960px;
	margin: 0 auto;
}

.gallery-grid .wpb_image_grid .wpb_image_grid_ul .isotope-item {
	margin: 1rem 0;
}

.gallery-grid.gallery-grid--2 .wpb_image_grid .wpb_image_grid_ul .isotope-item {
	max-width: 400px;
	max-height: 277px;
}

.gallery-grid.gallery-grid--4 .wpb_image_grid .wpb_image_grid_ul .isotope-item {
	max-width: 220px;
	max-height: 147px;
}

@media (min-width: 960px) {
	.gallery-grid.gallery-grid--2
		.wpb_image_grid
		.wpb_image_grid_ul
		.isotope-item {
		margin: 40px;
	}

	.gallery-grid.gallery-grid--4
		.wpb_image_grid
		.wpb_image_grid_ul
		.isotope-item {
		margin: 10px;
	}
}

.gallery-grid.gallery-grid--2 .wpb_image_grid_ul::after {
	content: '';
	display: block;
	clear: both;
}

/* Service: Massage */

.service--message__about-me {
	line-height: 2;
}

/* Gift Cards */

.gift-cards__prompt {
	margin: 0;
}

.gift-cards__prompt p {
	font-size: 1.2rem;
	font-style: italic;
	color: #000;
}

@media (min-width: 48rem) {
	.gift-cards__prompt p {
		font-size: 1.4rem;
	}
}

@media (min-width: 62rem) {
	.gift-cards__prompt p {
		font-size: 1.8rem;
	}
}

.gift-cards__heading {
	margin: 0.5rem 0 1em;
}

.gift-cards__heading h1 {
	font-size: 2.125rem;
}

@media (min-width: 62rem) {
	.gift-cards__heading h1 {
		font-size: 3.125rem;
	}
}

.gift-cards__buy a,
.gift-cards__buy a:visited {
	display: block;
	padding: 1rem 0.7rem;
	background-color: #000;
	color: white;
	font-weight: bold;
	transition: none;
	text-align: center;
	text-transform: uppercase;
	line-height: 1.125;
	box-shadow: inset 0 0 0 5px #B9BDB2;
}

.gift-cards__buy a:hover {
	background-color: #B9BDB2;
	color: #000;
	box-shadow: none;
}

.gift-cards__terms {
	font-size: 1.1rem;
	font-weight: 400;
	font-style: italic;
}

.gift-cards__terms p {
	margin: 0.5rem 0;
}

.gift-cards__promo strong {
	display: block;
	font-size: 1.35rem;
	line-height: 1.4;
	margin-bottom: 0.5rem;
}

/* Utility Classes */

.display-none {
	display: none;
}

.padding-left-0 {
	padding-left: 0;
}

.margin-y-0 {
	margin-top: 0;
	margin-bottom: 0;
}

.text-align-center {
	text-align: center !important;
}

.font-size-205 {
	font-size: 1.25rem !important;
}

.font-size-2 {
	font-size: 1rem !important;
}

.overflow-visible {
	overflow: visible !important;
}

@media (min-width: 62rem) {
	.desktop-sm\:no-wrap {
		white-space: nowrap;
	}
}

@media (min-width: 75rem) {
	.desktop\:padding-left-4 {
		padding-left: 2rem;
	}

	.desktop\:padding-x-6 {
		padding-left: 3rem;
		padding-right: 3rem;
	}

	.desktop\:text-align-left {
		text-align: left !important;
	}

	.desktop\:text-align-right {
		text-align: right !important;
	}

	.desktop\:margin-y-neg-4 {
		margin-top: -2rem;
		margin-bottom: -2rem;
	}
}

/* Image Utilities */

.image--full-width.wpb_single_image .vc_figure,
.image--full-width.wpb_single_image .vc_single_image-wrapper {
	display: block;
}

.image--full-width.wpb_single_image img {
	width: 100%;
}

/* Common Theme Overrides */

.entry-content,
.entry-summary,
.page-content,
.comment-content {
	hyphens: none;
	-webkit-hyphens: none;
}

/* Component Override: Single Image */

.wpb_single_image .vc_figure-caption {
	font-size: 1rem;
	padding: 0.2rem 0;
	line-height: 1.2;
	text-align: center;
	font-style: italic;
}

/* Component Override: TM Our Team */

.thememove-ourteam.ourteam_type1 .ourteam_info .ourteam_name,
.thememove-ourteam.ourteam_type1 .ourteam_info .ourteam_name a {
	margin-top: 0.5rem;
	margin-bottom: 0;
	text-transform: uppercase;
	color: #000;
}

.thememove-ourteam.ourteam_type1 .ourteam_photo {
	position: relative;
}

.thememove-ourteam.ourteam_type1 .ourteam_photo img {
	position: absolute;
	top: 0;
	left: 0;
}
.thememove-ourteam.ourteam_type1 .ourteam_photo::after {
	content: '';
	padding-bottom: 100%;
	display: block;
}

.thememove-ourteam.ourteam_type1 .ourteam_desc:not(:empty) {
	min-height: 11rem;
}

.thememove-ourteam.ourteam_type1 {
	margin-bottom: 40px;
}

@media (min-width: 62rem) {
	.thememove-ourteam.ourteam_type1 {
		margin-bottom: 20px;
	}
}

@media (min-width: 62rem) {
	.thememove-ourteam.ourteam_type1 .ourteam_desc:not(:empty) {
		min-height: 21rem;
	}
}

@media (min-width: 80rem) {
	.thememove-ourteam.ourteam_type1 .ourteam_desc:not(:empty) {
		min-height: 0;
	}

	.thememove-ourteam.ourteam_type1 .ourteam_info .ourteam_name {
		margin-top: 0;
	}

	.thememove-ourteam.ourteam_type1 {
		margin-bottom: 90px;
	}
}

.thememove-ourteam.ourteam_type1 .ourteam_info .ourteam_byline {
	font-size: 1.1rem;
}

/* Component Override: TM Our Service */

.thememove-ourservice {
	margin-bottom: 3rem;
}

.thememove-ourservice .info {
	width: 76%;
	transform: none;
	position: absolute;
	bottom: 0;
	left: 12%;
	padding: 0.6rem 0.875rem;
	border-color: #e0e0e0;
	text-align: center;
}

.thememove-ourservice .info .title,
.thememove-ourservice .info .link {
	text-transform: uppercase;
}

.thememove-ourservice .info .text,
.thememove-ourservice .info .link a:after {
	display: none;
}

.thememove-ourservice .info .title {
	height: auto;
	font-size: 1.4rem;
	line-height: 1.5;
	font-family: PT Sans, sans-serif;
}

.thememove-ourservice .info .link {
	margin-top: 0;
}

.thememove-ourservice .info .link a {
	color: currentColor;
}

.thememove-ourservice .info .link a:hover {
	color: #686E5E;
}

/* Component Override: TM Opening Hour */

.thememove-openinghours {
	border: none;
	margin-right: auto;
	padding: 1.5rem 0;
}

.thememove-openinghours table.items tr td {
	padding-left: 0;
	padding-right: 0;
}

@media (min-width: 48rem) {
	.thememove-openinghours table.items tr td {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.thememove-openinghours {
		padding-left: 3.75rem;
		padding-right: 3.75rem;
	}
}

.thememove-openinghours::before {
	display: none;
}

.thememove-openinghours .title {
	text-transform: uppercase;
	font-family: Montserrat, serif;
	font-size: 1.125rem;
	line-height: 1.3;
}

.thememove-openinghours__phone {
	display: block;
	font-size: 1.5rem;
}

.thememove-openinghours table.items tr td.date {
	text-align: left;
	color: currentColor;
}

.thememove-openinghours table.items tr td.time {
	color: currentColor;
}

/* Component Override: Contact Form */

.wpcf7 .ajax-loader {
	display: none;
}

.page .wpcf7 p {
	text-align: left;
}

.wpcf7 label {
	font-size: 1.1rem;
}

.wpcf7 input[type='submit'] {
	display: block;
	margin: 0 auto;
}

/* Google reCAPTCHA */

.grecaptcha-badge {
	visibility: hidden;
}