/* ========================================
   MedXFactor Native Footer - Desktop
   ======================================== */

.mxf-site-footer {
	position: relative;
	width: 100%;
	background: #fff;
	color: var(--mxf-muted);
}

.mxf-footer-main {
	width: 100%;
	background: #fff;
}

.mxf-footer-inner {
	display: grid;
	grid-template-columns: 294px 336px 336px minmax(0, 1fr);
	align-items: stretch;
	width: min(var(--mxf-container), calc(100% - 48px));
	margin: 0 auto;
	padding: 80px 0 55px;
}

/* Contact card */
.mxf-footer-contact-card {
	position: relative;
	min-height: 395px;
	padding: 58px 24px 24px;
	border-radius: 26px;
	background: var(--mxf-primary);
	color: #fff;
	overflow: visible;
}

/* White logo pocket cut into the blue card. */
.mxf-footer-contact-card::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 50%;
	z-index: 1;
	width: 126px;
	height: 42px;
	transform: translateX(-50%);
	background: #fff;
	border-radius: 0 0 50px 50px;
	pointer-events: none;
}

.mxf-footer-logo-link {
	position: absolute;
	left: 50%;
	top: -23px;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 116px;
	transform: translateX(-50%);
	text-decoration: none;
}

.mxf-footer-logo {
	display: block;
	width: 96px;
	max-width: 96px;
	height: auto;
}

.mxf-footer-card-title {
	margin: 0 0 14px;
	color: #fff;
	font-family: var(--mxf-font-display);
	font-size: 31px;
	font-weight: 400;
	line-height: 1.1;
	text-align: center;
}

.mxf-footer-card-divider {
	height: 1px;
	margin: 0 -24px 16px;
	background: rgb(255 255 255 / 16%);
}

.mxf-footer-description {
	max-width: 230px;
	margin: 0 0 32px;
	color: #fff;
	font-family: var(--mxf-font-body);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.72;
}

.mxf-footer-socials {
	display: flex;
	align-items: center;
	gap: 11px;
	margin: 0 0 22px;
}

.mxf-footer-socials a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: rgb(255 255 255 / 16%);
	color: #fff;
	text-decoration: none;
	transition: background-color 160ms ease, transform 160ms ease;
}

.mxf-footer-socials a:hover,
.mxf-footer-socials a:focus-visible {
	background: rgb(255 255 255 / 26%);
	color: #fff;
	transform: translateY(-1px);
}

.mxf-footer-socials svg {
	width: 21px;
	height: 21px;
}

.mxf-footer-card-phones {
	display: grid;
	gap: 14px;
}

.mxf-footer-card-phones a {
	color: #fff;
	font-family: var(--mxf-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.3;
	text-decoration: none;
}

/* Main footer columns */
.mxf-footer-column {
	min-width: 0;
	padding-top: 63px;
}

.mxf-footer-product {
	padding-left: 76px;
}

.mxf-footer-company,
.mxf-footer-touch {
	padding-left: 76px;
	border-left: 1px solid #d7e8f4;
}

.mxf-footer-heading {
	margin: 0 0 35px;
	color: #111;
	font-family: var(--mxf-font-display);
	font-size: 36px;
	font-weight: 400;
	line-height: 1.1;
}

.mxf-footer-menu {
	display: grid;
	gap: 23px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mxf-footer-menu li {
	margin: 0;
	padding: 0;
}

.mxf-footer-menu a,
.mxf-footer-contact-details a,
.mxf-footer-contact-details address {
	color: #666;
	font-family: var(--mxf-font-body);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.55;
	text-decoration: none;
	font-style: normal;
}

.mxf-footer-menu a {
	transition: color 160ms ease;
}

.mxf-footer-menu a:hover,
.mxf-footer-menu a:focus-visible,
.mxf-footer-contact-details a:hover,
.mxf-footer-contact-details a:focus-visible {
	color: var(--mxf-primary);
}

/* Get in touch */
.mxf-footer-touch {
	padding-right: 0;
}

.mxf-footer-newsletter {
	width: 100%;
	max-width: 242px;
	margin-bottom: 23px;
}

.mxf-footer-newsletter-placeholder {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	height: 48px;
	padding: 5px 10px 5px 15px;
	border-radius: var(--mxf-radius-pill);
	background: #ededed;
	color: #8a8a8a;
	font-family: var(--mxf-font-body);
	font-size: 12px;
}

.mxf-footer-newsletter-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 72px;
	height: 36px;
	padding: 0 16px;
	border-radius: var(--mxf-radius-pill);
	background: var(--mxf-primary);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
}

/* Common styling for a form plugin shortcode placed in the footer. */
.mxf-footer-newsletter form {
	position: relative;
	margin: 0;
}

.mxf-footer-newsletter input[type="email"] {
	width: 100%;
	height: 48px;
	padding: 5px 90px 5px 15px;
	border: 0;
	border-radius: var(--mxf-radius-pill);
	outline: none;
	background: #ededed;
	color: #555;
	font-size: 12px;
}

.mxf-footer-newsletter input[type="submit"],
.mxf-footer-newsletter button[type="submit"] {
	position: absolute;
	top: 6px;
	right: 9px;
	height: 36px;
	padding: 0 18px;
	border: 0;
	border-radius: var(--mxf-radius-pill);
	background: var(--mxf-primary);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
}

.mxf-footer-contact-details {
	display: grid;
	gap: 17px;
}

.mxf-footer-contact-details address {
	max-width: 240px;
}

/* Copyright bar */
.mxf-footer-bottom {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 8px 20px;
	/* border-radius: 0 0 28px 28px; */
	background: var(--mxf-navy);
	color: #fff;
	text-align: center;
}

.mxf-footer-bottom p {
	margin: 0;
	color: #fff;
	font-family: var(--mxf-font-body);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.3;
}

/* Keep the desktop footer from collapsing badly before mobile styling is added. */
@media (max-width: 1180px) {
	.mxf-footer-inner {
		grid-template-columns: 270px 1fr 1fr 1.1fr;
		width: calc(100% - 32px);
	}

	.mxf-footer-product,
	.mxf-footer-company,
	.mxf-footer-touch {
		padding-left: 40px;
	}
}

/* ==========================================
   Footer refinement
   ========================================== */

.mxf-footer {
    font-family: var(--mxf-font-family);
}

/* Footer headings */
.mxf-footer h1,
.mxf-footer h2,
.mxf-footer h3,
.mxf-footer h4 {
    font-family: var(--mxf-font-family) !important;
    letter-spacing: -0.02em;
}

.mxf-footer-contact h2,
.mxf-footer-product h2,
.mxf-footer-company h2,
.mxf-footer-touch h2,
.mxf-footer-contact h3,
.mxf-footer-product h3,
.mxf-footer-company h3,
.mxf-footer-touch h3 {
    font-size: 30px;
    line-height: 1.15;
    font-weight: 500;
}

/* Contact card title */
.mxf-footer-contact h2,
.mxf-footer-contact h3 {
    color: #fff !important;
}

/* Footer links */
.mxf-footer-product a,
.mxf-footer-company a {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #59616c;
}

/* Contact details */
.mxf-footer-touch p,
.mxf-footer-touch a {
    font-size: 16px;
    line-height: 1.55;
    color: #59616c;
}

/* Footer columns */
.mxf-footer-product,
.mxf-footer-company,
.mxf-footer-touch {
    padding-top: 55px !important;
}

/* Contact card */
.mxf-footer-contact {
    border-radius: 25px !important;
}

/* Newsletter placeholder */
.mxf-footer-touch input {
    font-family: inherit;
}

.mxf-footer-touch button {
    font-family: inherit;
    font-weight: 500;
}

/* Copyright */
.mxf-footer-bottom {
    font-family: var(--mxf-font-family);
}