/*
Theme Name:   Mallery Family Dental (Astra Child)
Template:     astra
Description:  Astra child theme for Mallery Family Dental. Sitewide look (typography, header, sub-navigation band, footer, home sections) lives here; page content is built in Elementor. Values ported from the original Sesame site.
Version:      1.1
Author:       CornerStone Digital Solutions
Text Domain:  mallery
*/

/* ==========================================================================
   Tokens
   ========================================================================== */
:root {
	--mfd-blue: #004b8d;
	--mfd-blue-2: #2b6ea8;
	--mfd-blue-3: #3075b2;
	--mfd-sky: #a9ddf3;
	--mfd-text: #333333;
	--mfd-heading: #797878;
	--mfd-grey-bg: #f1f3f4;
	--mfd-header-h: 94px;
}
@media (min-width: 1300px) { :root { --mfd-header-h: 104px; } }

/* ==========================================================================
   Base typography
   ========================================================================== */
body,
button, input, select, textarea {
	font-family: 'Lato', sans-serif;
}
body {
	font-size: 15px;
	line-height: 1.8;
	color: var(--mfd-text);
	background: #fff;
	overflow-x: hidden;
}
@media (min-width: 1300px) { body { font-size: 20px; } }
h1, h2, h3, h4, h5, h6,
.elementor-widget-heading .elementor-heading-title {
	font-family: 'Lato', sans-serif;
	text-transform: uppercase;
	font-weight: 400;
	line-height: 1;
	color: var(--mfd-blue);
	margin: 0 0 0.7em;
}
.elementor-widget-heading .elementor-heading-title { font-size: inherit; }
h1, .elementor-widget-heading h1.elementor-heading-title { font-weight: 300; font-size: min(10vw, 2.45em); }
h2, .elementor-widget-heading h2.elementor-heading-title { font-size: 1.2em; }
h3, .elementor-widget-heading h3.elementor-heading-title { font-size: 1.1em; color: var(--mfd-blue-3); }
.elementor-widget-text-editor, .elementor-widget-heading { font-size: inherit; line-height: inherit; }
a { color: var(--mfd-blue); text-decoration: none; transition: color .3s; }
a:hover, a:focus { color: var(--mfd-sky); }
p { margin: 0 0 1.58em; }

/* Body copy written in the Text Editor widget */
.mfd-copy ul li, .mfd-copy ol li { text-align: left; }
.mfd-copy ul, .mfd-copy ol { margin: 0 0 1.8em 1.5em; }
.mfd-copy img { height: auto; }
/* Photos: centred on phones, floated beside the text from 768px (original values) */
.mfd-copy .img-right, .mfd-copy .img-left { float: none; display: block; margin: 2.5% auto; clear: both; }
.mfd-copy .img-right { max-width: 50%; margin-top: 0; }
@media (min-width: 768px) {
	.mfd-copy p { text-align: justify; }
	.mfd-copy .img-right { float: right; max-width: 100%; margin: 0 0 2.5% 2.5%; clear: right; }
	.mfd-copy .img-left { float: left; margin: 0 2.5% 2.5% 0; clear: left; }
}
/* Headings must not clear (Astra makes every h1–h6 clear: both): the original
   lets text wrap past each floated photo */
.mfd-copy h1, .mfd-copy h2, .mfd-copy h3, .mfd-copy h4, .mfd-copy h5, .mfd-copy h6 { clear: none; }
.mfd-copy .clear { clear: both; }
/* Step-by-step lists (brushing / flossing instructions), from the original's global CSS */
.mfd-copy #toggle-content ul li { clear: both; list-style: none; }
.mfd-copy #toggle-content .hr { clear: both; }
.mfd-copy #toggle-content dt { font-size: 1.6em; line-height: 1.6; margin-bottom: 20px; font-weight: 400; }
.mfd-copy #toggle-content dd { margin-left: 0; }
.mfd-copy #toggle-content img { max-width: 100%; }
.mfd-copy .hr { visibility: hidden; }
.elementor .mfd-copy hr { clear: both; height: 1px; border: 0; background: #d4d4d4; margin: 1.58em 0; } /* beats Elementor's "body .elementor hr" */
.mfd-copy table { border-spacing: 0; border-collapse: separate; }
.mfd-copy table.office-hours td { padding: 0 1em 0 0; border: 0; }
.mfd-copy p.office-hours { margin-bottom: 0; }
.mfd-copy .embed-container { position: relative; padding-bottom: 45%; padding-top: 30px; height: 0; overflow: hidden; margin: .8em 0; }
.mfd-copy .embed-container iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }
body[class*="mfd-page-"][class*="office"] .mfd-copy .embed-container,
body[class*="mfd-page-"][class*="location"] .mfd-copy .embed-container { margin-top: 2em; padding-bottom: 55%; }
.mfd-copy::after { content: ''; display: table; clear: both; }

/* Page H1 */
.mfd-page-title .elementor-heading-title { color: var(--mfd-blue); margin-bottom: .8em; }

/* Sidebar photo with the offset blue frame */
.mfd-stock img {
	width: 100%;
	max-width: 324px;
	height: auto;
	box-shadow: 30px 30px 0 var(--mfd-blue);
	margin: 0 30px 30px 0;
}

/* Buttons */
.mfd-btn .elementor-button,
.mfd-copy .btn {
	background: var(--mfd-blue);
	color: #fff;
	text-transform: uppercase;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: .02em;
	border-radius: 0;
	padding: 1em 1.8em;
	transition: all .4s ease-in-out;
}
.mfd-btn .elementor-button:hover,
.mfd-copy .btn:hover {
	color: var(--mfd-blue);
	background: var(--mfd-sky);
	box-shadow: .3em .3em 0 #fff;
}

/* ==========================================================================
   Header (Elementor Header & Footer Builder template, container .mfd-header)
   ========================================================================== */
#masthead { position: relative; z-index: 3000; }
/* As on the original: a full-width bar in the page flow, which only becomes the
   fixed, inset bar at 1300px and wider. */
.mfd-header {
	position: relative !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	min-height: var(--mfd-header-h);
	background-color: rgba(255, 255, 255, .9);
	transition: background-color .33s ease;
	z-index: 3000;
}
@media (min-width: 1300px) {
	.mfd-header {
		position: fixed !important;
		top: 20px;
		left: 0;
		right: 0;
		width: 97% !important;
		margin: 0 auto !important;
	}
	.admin-bar .mfd-header { top: 52px; }
}
.mfd-header > .e-con-inner,
.mfd-header {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	flex-wrap: nowrap;
}
.mfd-header .elementor-widget { margin: 0 !important; }
/* The logo floats: small at the left of the bar, or large and centred over the
   home video. Absolutely positioned against the fixed header so both states
   animate (top/left/width), as on the original. */
.mfd-logo, .mfd-logo .elementor-widget-container { position: static !important; }
.mfd-logo { flex: 0 0 241px; height: 78px; }
.mfd-logo a {
	display: block;
	position: absolute;
	left: 20px;
	top: 50%;
	width: 199px;
	transform: translate(0, -50%);
	transition: top .33s ease, left .33s ease, width .33s ease, transform .33s ease;
	z-index: 2;
}
@media (min-width: 1300px) { .mfd-logo a { width: 221px; } }
.mfd-logo svg { width: 100%; height: auto; display: block; }
.mfd-logo svg path { transition: fill .33s ease; }

/* Menu (HFE Navigation Menu widget) */
.mfd-menu { flex: 1 1 auto; }
.mfd-menu .hfe-nav-menu > li a.hfe-menu-item { letter-spacing: 0; }
.mfd-menu .hfe-nav-menu > li a.hfe-menu-item,
.mfd-menu .hfe-nav-menu > li.current-menu-item a.hfe-menu-item {
	font-size: 13.5px !important;
	text-transform: uppercase !important;
	color: var(--mfd-text) !important;
	font-weight: 400 !important;
	padding: 0 10px !important;
	line-height: 2.5;
	position: relative;
}
@media (min-width: 1300px) {
	.mfd-menu .hfe-nav-menu > li a.hfe-menu-item,
	.mfd-menu .hfe-nav-menu > li.current-menu-item a.hfe-menu-item { font-size: 15px !important; }
}
.mfd-menu .hfe-nav-menu > li a.hfe-menu-item::before {
	content: '';
	position: absolute;
	left: 50%;
	right: 50%;
	bottom: -7.5px;
	height: 3px;
	background: var(--mfd-blue);
	transition: left .3s, right .3s;
}
.mfd-menu .hfe-nav-menu > li.current-menu-item a.hfe-menu-item,
.mfd-menu .hfe-nav-menu > li.current-menu-ancestor a.hfe-menu-item,
.mfd-menu .hfe-nav-menu > li a.hfe-menu-item:hover,
body .mfd-menu .hfe-nav-menu > li.current-menu-item a.hfe-menu-item { color: var(--mfd-blue) !important; }
.mfd-menu .hfe-nav-menu > li.current-menu-item a.hfe-menu-item::before,
.mfd-menu .hfe-nav-menu > li.current-menu-ancestor a.hfe-menu-item::before,
.mfd-menu .hfe-nav-menu > li a.hfe-menu-item:hover::before { left: 10px; right: 10px; }
@media (min-width: 1025px) {
.mfd-menu .sub-arrow { display: none !important; }
.mfd-menu .sub-menu {
	background: var(--mfd-blue) !important;
	padding: 1.55em 0 1.4em !important;
	min-width: 230px;
	box-shadow: none !important;
	border: 0 !important;
}
.mfd-menu .sub-menu a.hfe-sub-menu-item {
	color: #fff !important;
	font-size: 13px;
	text-transform: uppercase;
	line-height: 1.75;
	padding: 0 2.17em !important;
	white-space: nowrap;
	border: 0 !important;
}
.mfd-menu .sub-menu a.hfe-sub-menu-item:hover,
.mfd-menu .sub-menu .current-menu-item > a.hfe-sub-menu-item {
	background: #333 url(assets/texture50.png) repeat center center !important;
	color: #fff !important;
}
}
.mfd-menu .hfe-nav-menu__toggle { color: var(--mfd-text); }

/* Phone with the divider line */
.mfd-phone { flex: 0 0 auto; position: relative; padding-left: 28px; margin-right: 1.5% !important; }
.mfd-phone::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	width: 2px;
	height: 76px;
	margin-top: -38px;
	background: var(--mfd-blue);
	transition: background .33s;
}
.mfd-phone a { font-weight: 600; font-size: 14.4px; color: var(--mfd-blue); white-space: nowrap; }
@media (min-width: 1300px) { .mfd-phone a { font-size: 16px; } }
.mfd-phone a:hover { color: var(--mfd-sky); }

/* Home page, at the top (1300px and wider, as on the original): transparent bar,
   white nav, big centred white logo */
@media (min-width: 1300px) {
	body.mfd-at-top .mfd-header { background-color: rgba(255, 255, 255, 0); }
	body.mfd-at-top .mfd-menu .hfe-nav-menu > li a.hfe-menu-item,
	body.mfd-at-top .mfd-phone a { color: #fff !important; }
	body.mfd-at-top .mfd-menu .hfe-nav-menu > li a.hfe-menu-item::before,
	body.mfd-at-top .mfd-phone::before { background: #fff; }
	body.mfd-at-top .mfd-logo svg path { fill: #fff; }
	body.mfd-at-top .mfd-logo a {
		width: 567px;
		left: 50%;
		top: 360px;
		transform: translate(-50%, 0);
	}
}

/* Floating social bar (right edge) */
.mfd-social {
	position: fixed;
	top: 225px;
	right: 9px;
	width: 49px;
	padding: .8em 0;
	background: rgba(0, 75, 141, .9);
	z-index: 2999;
	text-align: center;
}
.mfd-social a {
	display: block;
	color: #fff;
	font-size: 18px;
	line-height: 31px;
	transition: transform .3s, color .3s;
}
.mfd-social a:hover { color: var(--mfd-sky); transform: scale(1.3); text-shadow: 1px 1px 0 var(--mfd-blue); }
.mfd-social svg { width: 18px; height: 18px; fill: currentColor; vertical-align: middle; }
@media (min-width: 1300px) { .mfd-social { top: 250px; right: 10px; } }

/* Elementor pages run edge to edge; Astra's content container must not box them */
.page-template-elementor_header_footer .site-content > .ast-container { max-width: none; padding: 0; display: block; }

/* Content starts below the fixed header on interior pages */
body:not(.home) #content { padding-top: 0; }

/* ==========================================================================
   Sub-navigation band (rendered by the theme on every interior page)
   ========================================================================== */
.mfd-subnav {
	position: relative;
	padding: 3em 0;
	background: #504e4d url(assets/texture.jpg) no-repeat center top / cover;
	text-align: center;
}
@media (min-width: 1024px) { .mfd-subnav { background-size: auto; } }
/* The fixed header sits over the band from 1300px */
@media (min-width: 1300px) { .mfd-subnav { padding: 201px 0 74px; } }
.mfd-subnav p {
	text-transform: uppercase;
	color: #fff;
	margin: 0 auto;
	width: 90%;
	max-width: 1200px;
	font-size: 13px;
	line-height: 22px;
}
.mfd-subnav a { color: #fff; position: relative; display: inline-block; margin: .2em .8em; white-space: nowrap; }
.mfd-subnav .divider { display: none; }
@media (min-width: 1024px) {
	.mfd-subnav p { line-height: 18px; }
	.mfd-subnav a { margin: 0; white-space: normal; }
	.mfd-subnav .divider { display: inline-block; }
}
.mfd-subnav a::before {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -1px;
	width: 0;
	height: 1px;
	background: #fff;
	transition: all .3s;
}
.mfd-subnav a.active::before, .mfd-subnav a:hover::before { width: 100%; left: 0; }
.mfd-subnav .divider { margin: 0 .35em; }
.mfd-breadcrumbs { margin-top: 1.2em; font-size: 12px; color: rgba(255, 255, 255, .8); text-transform: uppercase; }
.mfd-breadcrumbs a { color: #fff; }
.mfd-breadcrumbs .separator { margin: 0 .4em; }

/* Interior content area */
.mfd-body { padding: 3.8em 0 !important; position: relative; overflow: hidden; }
/* On phones the original keeps its (empty) sidebar's 4em gap above the heading */
@media (max-width: 767px) { .mfd-body { padding-top: 7.8em !important; } }
.mfd-body > .e-con-inner { max-width: 1200px; width: 90%; position: relative; z-index: 1; }
@media (min-width: 1024px) {
	.mfd-body { padding: 4.8em 0 !important; }
	/* Faint tooth-logo watermark behind the copy, as on the original */
	.mfd-body::after {
		content: '';
		position: absolute;
		left: 50%;
		bottom: 2.75em;
		width: 26.3em;
		height: 21.15em;
		margin-left: 9em;
		background: url(assets/logo-mark.svg) no-repeat center / contain;
		opacity: .1;
		pointer-events: none;
	}
}

/* Hub pages: list of spoke pages */
.mfd-spokes { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; margin: 2em 0; }
.mfd-spoke { display: block; border: 1px solid #e5e5e5; padding: 1.4em 1.5em; transition: all .3s; color: var(--mfd-text); }
.mfd-spoke:hover { border-color: var(--mfd-blue); box-shadow: .3em .3em 0 var(--mfd-sky); color: var(--mfd-text); }
.mfd-spoke h3 { margin: 0 0 .5em; }
.mfd-spoke p { margin: 0; font-size: 14px; text-align: left; }
.mfd-spoke .more { display: inline-block; margin-top: .8em; font-size: 12px; font-weight: 700; text-transform: uppercase; color: var(--mfd-blue); }

/* ==========================================================================
   Home sections (classes set on Elementor containers/widgets)
   ========================================================================== */
.mfd-hero { min-height: 53vw; background: #000; }
.mfd-hero .elementor-background-video-container { opacity: 1; }

.mfd-spot { background: linear-gradient(to right, transparent 50%, #fff 50%), #000 url(assets/texture100.jpg) center / cover; padding: 3.35em 0 2.2em !important; }
@media (max-width: 767px) { .mfd-spot { background: #000 url(assets/texture100.jpg) center / cover; } }
/* Sizes in em so they follow the 15px → 20px body size at 1300px, as on the original */
.mfd-spot-info {
	background: rgba(0, 75, 141, .9);
	padding: 4.85em 3em 4.65em 2em !important;
	text-align: right;
	max-width: 24.25em;
	margin-top: 1.95em !important;
}
@media (min-width: 768px) { .mfd-spot .e-con-inner > .e-con:not(.mfd-spot-info) { max-width: 28.05em; } }
@media (min-width: 1300px) { .mfd-spot-info { margin-left: 7.55em !important; } }
.mfd-spot-info .elementor-heading-title { color: #fff !important; font-size: 1.9em !important; text-align: right; white-space: nowrap; margin-bottom: .32em; }
.mfd-spot-info .elementor-widget-text-editor { color: #fff; font-size: .9em; line-height: 1.389; }
.mfd-spot-info .elementor-widget-text-editor p { text-align: right; margin-bottom: 1.4em; }
.mfd-spot-info .elementor-button {
	background: transparent;
	color: #fff;
	border: 0;
	font-size: .6em !important; /* Astra sizes every .elementor-button */
	font-weight: 700;
	text-transform: uppercase;
	padding: 1em 1.4em;
	background: rgba(255, 255, 255, .12);
}
.mfd-spot-info .elementor-button:hover { background: var(--mfd-sky); color: var(--mfd-blue); }

.mfd-callouts { background: var(--mfd-blue) url(assets/bg-callouts.jpg) no-repeat center bottom / cover; padding: 9.5em 0 8.85em !important; }
.mfd-callout { transition: transform .6s ease-in-out; }
.mfd-callout:hover { transform: scale(1.15); }
@media (min-width: 768px) {
	.mfd-callouts > .e-con-inner { justify-content: center !important; }
	.mfd-callout { flex: 0 0 auto !important; width: auto !important; margin: 0 2.9em !important; }
}
.mfd-callout .elementor-icon-box-icon .elementor-icon { color: #fff; font-size: 3.7em; }
.mfd-callout .elementor-icon-box-icon { margin-bottom: 18px; }
.mfd-callout .elementor-icon-box-icon .elementor-icon svg { fill: #fff; }
/* "Meet the team": the original shows a group of people (Font Awesome Pro, not
   licensed here). Lucide's "users" outline (ISC licence) stands in for it. */
.mfd-callout .elementor-icon svg.e-far-user { visibility: hidden; }
.mfd-callout .elementor-icon:has(svg.e-far-user) { position: relative; }
.mfd-callout .elementor-icon:has(svg.e-far-user)::before {
	content: '';
	position: absolute;
	inset: 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E") no-repeat center / contain;
}
.mfd-callout .elementor-icon-box-title,
.mfd-callout .elementor-icon-box-title a { color: #fff; font-size: 1.1em; line-height: 1.045; text-transform: uppercase; font-weight: 400; }
.mfd-callout .elementor-icon-box-title a { font-size: 1em; } /* the link sits inside the title: don't compound */
.mfd-callout .elementor-icon-box-title .trait { display: block; font-weight: 300; }
.mfd-callout:hover .elementor-icon, .mfd-callout:hover .elementor-icon-box-title a { color: var(--mfd-sky); fill: var(--mfd-sky); }

.mfd-welcome { background: url(assets/bg-hp.jpg) no-repeat center center / cover; padding: 3.8em 0 !important; }
@media (min-width: 1024px) { .mfd-welcome { border-top: 2.5em solid #fff; border-bottom: 2.5em solid #fff; background-position: center 20%; } }
.mfd-welcome .mfd-copy, .mfd-welcome .mfd-copy p, .mfd-welcome h1, .mfd-welcome h2 { color: #fff !important; }
.mfd-welcome .mfd-copy a { color: #fff; text-decoration: underline; }
.mfd-welcome .mfd-copy a:hover { color: var(--mfd-sky); }
.mfd-welcome h1 .trait { display: block; font-size: .673em; line-height: 1.2; }
.mfd-decor img { width: 100%; height: auto; }
/* From 1024px the sign photo hangs off the left edge and the copy sits right (original geometry) */
@media (min-width: 1024px) {
	.mfd-welcome { position: relative; }
	.mfd-welcome .e-con-inner > .e-con:has(.mfd-decor) { position: absolute !important; top: 3.8em; right: 50%; width: 40% !important; margin-right: 8em; }
	.mfd-welcome .e-con-inner > .e-con:not(:has(.mfd-decor)) { width: 80% !important; max-width: 35.75em; margin-left: auto; }
}
@media (min-width: 1600px) {
	.mfd-welcome .e-con-inner > .e-con:has(.mfd-decor) { width: 37.45em !important; }
}

.mfd-testimonials { background: #e5e5e5 url(assets/bg-testimonials.jpg) no-repeat center center / cover; font-size: 3.5vw; padding: 3em 1em !important; text-align: center; }
@media (min-width: 480px) and (max-width: 767px) { .mfd-testimonials { font-size: 2.5vw; } }
@media (min-width: 768px) { .mfd-testimonials { font-size: 1.5vw; padding: 8em 0 !important; } }
@media (min-width: 1024px) { .mfd-testimonials { font-size: inherit; min-height: 30em; padding: 9em 0 0 !important; } }
.mfd-rotator { position: relative; width: 70%; margin: 0 auto; }
@media (min-width: 1024px) { .mfd-rotator { width: 100%; max-width: 49.5em; } }
.mfd-rotator .mfd-quote { display: none; color: #000; }
.mfd-rotator .mfd-quote.is-active { display: block; animation: mfdFade .6s ease; }
.mfd-rotator .voluble { display: block; font-size: 1.4em; line-height: 1.2857; }
.mfd-rotator .cred { display: block; margin-top: 2em; font-size: .9em; text-transform: uppercase; color: var(--mfd-blue); }
@keyframes mfdFade { from { opacity: 0; } to { opacity: 1; } }
.mfd-review-links { margin-top: 2em; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.mfd-review-links .btn {
	display: inline-flex;
	align-items: center;
	gap: .6em;
	height: 40px;
	padding: 0 1.4em;
	background: var(--mfd-blue);
	color: #fff;
	font-size: 13px;
	text-transform: uppercase;
	transition: all .4s ease-in-out;
}
.mfd-review-links .btn01:hover { color: var(--mfd-blue); background: var(--mfd-sky); box-shadow: .3em .3em 0 #fff; }
.mfd-review-links .btn02 { background: var(--mfd-blue-2); }
.mfd-review-links .btn02 a { color: #fff; display: inline-flex; transition: transform .4s; }
.mfd-review-links .btn02 a:hover { color: var(--mfd-sky); transform: scale(1.2); }
.mfd-review-links svg { width: 15px; height: 15px; fill: currentColor; }

/* ==========================================================================
   Footer (HFE template, container .mfd-footer)
   ========================================================================== */
.mfd-footer {
	background: var(--mfd-grey-bg) url(assets/map.jpg) no-repeat center center;
	min-height: 570px;
	position: relative;
}
.mfd-footer-info {
	background: #000 url(assets/texture100.jpg) center / cover;
	width: 33.5% !important;
	min-height: 570px;
	justify-content: center !important;
	align-items: center !important;
	text-align: center;
	color: #fff;
}
.mfd-footer-info .mfd-mark svg { width: 145px; height: auto; display: block; margin: 0 auto 1em; }
.mfd-footer-info .mfd-ft-phone a { color: #fff; font-size: 25px; line-height: 1.5; letter-spacing: -.01em; }
.mfd-footer-info .mfd-ft-addy a { color: #fff; font-size: 15px; line-height: 1.6; display: block; }
.mfd-footer-info a:hover { color: var(--mfd-sky); }
.mfd-pin {
	position: absolute;
	left: 63.5%;
	top: 50%;
	transform: translate(-50%, -100%);
	z-index: 5;
}
.mfd-pin a { display: block; color: var(--mfd-blue); font-size: 66px; line-height: 1; transition: transform .4s; position: relative; }
.mfd-pin svg { width: 50px; height: 66px; fill: currentColor; display: block; }
.mfd-pin a::after {
	content: '';
	position: absolute;
	width: 78px;
	height: 65px;
	left: 6px;
	bottom: -8px;
	background: url(assets/shadow.png) no-repeat center / cover;
	z-index: -1;
}
.mfd-pin a:hover, body.mfd-addy-hover .mfd-pin a { color: var(--mfd-sky); transform: translateY(-8px); }

.mfd-credit { background: #fff; color: #b0afaf; padding: 1.5em 0 1.35em !important; }
.mfd-credit > .e-con-inner { max-width: 1200px; width: 90%; }
.mfd-credit a { color: #b0afaf; }
.mfd-credit a:hover { color: var(--mfd-sky); }
.mfd-credit .elementor-widget-text-editor p { margin: 0; font-size: 12px; }
.mfd-back-to-top .elementor-button {
	background: var(--mfd-blue);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	border-radius: 0;
	padding: 1.1em 1.4em;
}
.mfd-back-to-top .elementor-button:hover { background: var(--mfd-sky); color: #fff; }

/* ==========================================================================
   Appointment form (Contact Form 7)
   ========================================================================== */
.mfd-form legend { font-size: 22px; font-weight: 700; color: var(--mfd-text); text-transform: none; padding: 0; margin-bottom: .8em; border: 0; }
.mfd-form fieldset { border: 0; padding: 0; margin: 0 0 1.5em; }
.mfd-form .notice { font-style: italic; margin: 0 0 25px; font-size: 14px; }
.mfd-form label { display: block; margin-bottom: 1em; }
.mfd-form label > span:first-child { display: block; }
.mfd-form label.required > span:first-child { font-weight: 700; }
.mfd-form input[type=text], .mfd-form input[type=email], .mfd-form input[type=tel], .mfd-form textarea {
	width: 100%;
	max-width: 600px;
	border: 1px solid #ccc;
	border-radius: 0;
	padding: 6px 8px;
	background: #fff;
}
.mfd-form textarea { height: 230px; }
.mfd-form .quiet { font-style: italic; font-size: 14px; }
.mfd-form .loud { margin: 0 0 1em; }
.mfd-form .wpcf7-list-item { display: block; margin: 0 0 .4em; }
.mfd-form .wpcf7-list-item input { margin-right: .5em; }
.mfd-form hr { border: 0; border-top: 1px solid #ddd; margin: 2em 0; max-width: 600px; }
.mfd-form button[type=submit], .mfd-form input[type=submit] {
	background: var(--mfd-blue);
	color: #fff;
	border: 0;
	border-radius: 0;
	padding: .9em 1.6em;
	font-size: 15px;
	text-transform: uppercase;
	cursor: pointer;
	transition: all .3s;
}
.mfd-form button[type=submit]:hover, .mfd-form input[type=submit]:hover { background: var(--mfd-sky); color: var(--mfd-blue); }

/* ==========================================================================
   Responsive
   ========================================================================== */
/* Below 1024px the original stacks the header: logo and menu button, the phone
   number (beside them from 480px, on its own line below that), then the social
   icons as a full-width blue bar. (1024px matches the menu's own switch point.) */
@media (max-width: 1024px) {
	:root { --mfd-header-h: 0px; }
	.mfd-header { flex-wrap: wrap !important; align-items: center; padding: 0 !important; background-color: #fff; }
	.mfd-logo { order: 1; flex: 0 0 auto; height: auto; margin-right: auto !important; }
	.mfd-logo a { position: static; transform: none; width: 116px; margin: .5em 0 .4em 2%; }
	.mfd-phone { order: 2; padding-left: 0; margin: 0 8px 0 0 !important; }
	.mfd-phone::before { display: none; }
	.mfd-phone a { font-size: 16px; }
	.mfd-menu { order: 3; flex: 0 0 auto; width: 56px !important; } /* just the menu button */
	.mfd-social-wrap { order: 4; flex: 0 0 100%; }
	.mfd-social { position: static; width: 100%; padding: 0; display: flex; justify-content: center; gap: 10px; }
	.mfd-social a { font-size: 13.5px; line-height: 37px; }
	.mfd-social a:hover { transform: scale(1.3); }
	.mfd-footer { min-height: 0; }
	.mfd-footer-info { width: 100% !important; min-height: 0; padding: 3em 1em !important; }
	.mfd-pin { display: none; }
	.mfd-welcome .e-con-inner > .e-con:has(.mfd-decor), .mfd-decor { display: none !important; }
}
@media (max-width: 479px) {
	.mfd-phone { order: 4; flex: 0 0 100%; text-align: center; margin: 0 0 .5em !important; }
	.mfd-social-wrap { order: 5; }
}
@media (max-width: 1024px) {
	.mfd-testimonials { min-height: 0; padding: 4em 1em !important; }
	.mfd-rotator .voluble { font-size: 20px; }
}
/* Home spotlight and callouts on phones (original values) */
@media (max-width: 767px) {
	.mfd-spot { padding: 1em 0 0 !important; }
	.mfd-spot .e-con-inner > .e-con:not(.mfd-spot-info) { order: -1; width: 60% !important; max-width: 28.05em; margin: 0 auto; }
	.mfd-spot-info { order: 1; max-width: none; width: 100% !important; margin-top: 0 !important; padding: 2em !important; }
	.mfd-spot-info .elementor-heading-title { white-space: normal; text-align: center; font-size: 28.5px !important; }
	.mfd-spot-info .elementor-widget-text-editor { display: none; }
	.mfd-spot-info .elementor-widget-button { text-align: center !important; }
	.mfd-callouts { padding: 3em 0 !important; }
	.mfd-callout .elementor-icon-box-icon .elementor-icon { font-size: 14.8vw; }
	.mfd-callout .elementor-icon-box-title, .mfd-callout .elementor-icon-box-title a { font-size: 4.4vw; }
	.mfd-stock img { max-width: 100%; box-shadow: 15px 15px 0 var(--mfd-blue); margin: 0 15px 15px 0; }
}
@media (min-width: 768px) and (max-width: 1023px) {
	.mfd-callouts { padding: 5em 0 !important; }
	.mfd-welcome .e-con-inner > .e-con:not(:has(.mfd-decor)) { width: 80% !important; max-width: 35.75em; margin: 0 auto; }
}

/* HTML sitemap */
.mfd-sitemap, .mfd-sitemap ul, .mfd-copy .mfd-sitemap, .mfd-copy .mfd-sitemap ul { list-style: none; margin: 0; padding: 0; }
.mfd-sitemap > li { margin-top: 21px; }
.mfd-sitemap > li > a { font-weight: 400; font-size: 1.2em; text-transform: uppercase; }
/* The original sets Contact in a second column from 768px */
@media (min-width: 768px) {
	ul.mfd-sitemap:first-of-type { position: relative; }
	ul.mfd-sitemap:first-of-type > li:last-child { position: absolute; top: 0; left: 50%; }
}
.mfd-sitemap ul a { color: var(--mfd-text); }
.mfd-sitemap ul a:hover { color: var(--mfd-sky); }

/* Testimonials page */
.mfd-testimonial { margin: 0 0 2em; padding: 0 0 0 1.5em; border-left: 4px solid var(--mfd-sky); }
.mfd-testimonial p { font-size: 18px; line-height: 1.6; text-align: left; margin-bottom: .5em; }
.mfd-testimonial cite { font-style: normal; text-transform: uppercase; font-size: 13px; letter-spacing: .05em; color: var(--mfd-blue); }
.mfd-form, .mfd-form label, .mfd-form .wpcf7-list-item-label { font-size: inherit; }
.mfd-form .wpcf7-list-item-label { font-size: .85em; }

/* Mobile menu panel */
@media (max-width: 1024px) {
	.mfd-menu nav.hfe-dropdown { background: #fff !important; box-shadow: 0 12px 24px rgba(0, 0, 0, .12); }
	.mfd-menu .hfe-nav-menu > li a.hfe-menu-item::before { display: none; }
	.mfd-menu .hfe-nav-menu > li a.hfe-menu-item { padding: 12px 20px !important; line-height: 1.4; }
	.mfd-menu .sub-menu { background: var(--mfd-grey-bg) !important; }
	.mfd-menu .sub-menu a.hfe-sub-menu-item { color: var(--mfd-text) !important; padding: 10px 20px 10px 34px !important; font-size: 14px; text-transform: uppercase; }
	.mfd-menu .sub-menu .current-menu-item > a.hfe-sub-menu-item { color: var(--mfd-blue) !important; }
}
body.error404 .site-content, body.search .site-content { padding-top: 3em; }
@media (min-width: 1300px) {
	body.error404 .site-content, body.search .site-content { padding-top: 160px; }
}
