/* =========================================================
   DR VIVEK
   PREMIUM FOOTER
========================================================= */

.site-footer {
	--footer-brand: #aa003e;
	--footer-brand-dark: #820031;
	--footer-deep: #56002d;

	--footer-text: #484245;
	--footer-muted: #675f63;
	--footer-border: #eadfe2;

	position: relative;

	width: 100%;

	background: #ffffff;

	color: var(--footer-text);

	overflow: hidden;
}


/* =========================================================
   CONTAINER
========================================================= */

.dv-footer-container {
	width: min(
		calc(100% - 70px),
		1380px
	);

	margin-inline: auto;
}


/* =========================================================
   CONSULTATION CTA
========================================================= */

.dv-footer-cta {
	position: relative;

	z-index: 5;

	padding:
		46px
		0
		30px;

	background: #ffffff;
}


.dv-footer-cta__box {
	position: relative;

	min-height: 168px;

	display: grid;

	grid-template-columns:
		1.35fr
		0.70fr;

	align-items: center;

	gap: 55px;

	padding:
		27px
		48px;

	overflow: hidden;

	border-radius: 16px;

	background:
		linear-gradient(
			100deg,
			#fff5f5 0%,
			#fff9f8 49%,
			#fceef1 100%
		);
}


/* =========================================================
   CTA CONTENT
========================================================= */

.dv-footer-cta__content {
	position: relative;

	z-index: 3;

	max-width: 560px;
}


.dv-footer-cta__eyebrow {
	display: block;

	margin-bottom: 10px;

	color: var(--footer-brand);

	font-size: 10px;
	font-weight: 700;

	letter-spacing: 3px;

	text-transform: uppercase;
}


.dv-footer-cta__title {
	margin:
		0
		0
		8px;

	color: #30272b;

	font-family:
		"Playfair Display",
		Georgia,
		serif;

	font-size: 35px;

	font-weight: 400;

	line-height: 1.08;

	letter-spacing: -0.7px;
}


.dv-footer-cta__description {
	max-width: 520px;

	margin: 0;

	color: var(--footer-muted);

	font-size: 14px;

	line-height: 1.43;
}


/* =========================================================
   CTA ACTIONS
========================================================= */

.dv-footer-cta__actions {
	position: relative;

	z-index: 4;

	width: 100%;

	max-width: 350px;

	display: flex;

	flex-direction: column;

	gap: 9px;
}


.dv-footer-cta__button {
	width: 100%;

	min-height: 50px;

	display: flex;

	align-items: center;

	justify-content: center;

	gap: 11px;

	padding:
		11px
		18px;

	border-radius: 5px;

	font-size: 14px;

	font-weight: 600;

	text-decoration: none;

	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease,
		background-color 0.25s ease,
		border-color 0.25s ease;
}


.dv-footer-cta__button--primary {
	color: #ffffff;

	background: var(--footer-brand);

	border:
		1px solid
		var(--footer-brand);

	box-shadow:
		0 10px 25px
		rgba(170, 0, 62, 0.13);
}


.dv-footer-cta__button--primary:hover {
	color: #ffffff;

	background: var(--footer-brand-dark);

	transform:
		translateY(-2px);

	box-shadow:
		0 15px 30px
		rgba(170, 0, 62, 0.22);
}


.dv-footer-cta__button--phone {
	color: var(--footer-brand);

	background:
		rgba(255, 255, 255, 0.45);

	border:
		1px solid
		var(--footer-brand);
}


.dv-footer-cta__button--phone:hover {
	background: #ffffff;

	transform:
		translateY(-2px);

	box-shadow:
		0 9px 20px
		rgba(170, 0, 62, 0.08);
}


.dv-footer-cta__arrow {
	margin-left: auto;

	font-size: 18px;
}


/* =========================================================
   CTA ART
========================================================= */

.dv-footer-cta__art {
	position: absolute;

	z-index: 1;

	top: 8px;
	right: 32px;

	width: 330px;
	height: 150px;

	color:
		rgba(170, 0, 62, 0.08);

	pointer-events: none;
}


.dv-footer-cta__pulse {
	position: absolute;

	left: 0;
	top: 61px;

	width: 190px;

	height: 50px;
}


.dv-footer-cta__pulse::before,
.dv-footer-cta__pulse::after {
	content: "";

	position: absolute;

	top: 24px;

	height: 2px;

	background:
		currentColor;
}


.dv-footer-cta__pulse::before {
	left: 0;

	width: 68px;
}


.dv-footer-cta__pulse::after {
	right: 0;

	width: 50px;
}


.dv-footer-cta__pulse span {
	position: absolute;

	left: 65px;
	top: 1px;

	width: 72px;
	height: 45px;

	border-left:
		2px solid
		currentColor;

	border-bottom:
		2px solid
		currentColor;

	transform:
		skewX(-18deg)
		rotate(-35deg);
}


.dv-footer-cta__heart {
	position: absolute;

	right: 0;
	top: 10px;
}


/* =========================================================
   MAIN FOOTER
========================================================= */

.dv-footer-main {
	position: relative;

	z-index: 4;

	padding:
		22px
		0
		62px;

	background: #ffffff;
}


.dv-footer-grid {
	display: grid;

	grid-template-columns:
		1.18fr
		0.70fr
		1.05fr
		0.78fr
		1fr;

	align-items: start;

	gap: 0;
}


/* =========================================================
   COLUMNS
========================================================= */

.dv-footer-column {
	min-height: 235px;

	padding:
		0
		27px;
}


.dv-footer-column:first-child {
	padding-left: 0;
}


.dv-footer-column:not(:first-child) {
	border-left:
		1px solid
		var(--footer-border);
}


/* =========================================================
   LOGO
========================================================= */

.dv-footer-logo {
	min-height: 64px;

	margin-bottom: 13px;

	display: flex;

	align-items: flex-start;
}


.dv-footer-logo img,
.dv-footer-logo .custom-logo {
	display: block;

	width: auto;

	max-width: 250px;

	height: 58px;

	object-fit: contain;
}


.dv-footer-logo .custom-logo-link {
	display: inline-block;

	line-height: 0;
}


/* =========================================================
   ABOUT
========================================================= */

.dv-footer-about__text {
	max-width: 285px;

	margin:
		0
		0
		20px;

	color: #625b5e;

	font-size: 13px;

	line-height: 1.53;
}


/* =========================================================
   SOCIAL
========================================================= */

.dv-footer-social {
	display: flex;

	gap: 11px;
}


.dv-footer-social a {
	width: 38px;
	height: 38px;

	display: flex;

	align-items: center;

	justify-content: center;

	border-radius: 50%;

	color: var(--footer-brand);

	background: #fff0f3;

	text-decoration: none;

	transition:
		transform 0.25s ease,
		color 0.25s ease,
		background-color 0.25s ease;
}


.dv-footer-social a:hover {
	color: #ffffff;

	background: var(--footer-brand);

	transform:
		translateY(-3px);
}


/* =========================================================
   HEADINGS
========================================================= */

.dv-footer-heading {
	position: relative;

	margin:
		3px
		0
		26px;

	color: #302a2d;

	font-family:
		"Playfair Display",
		Georgia,
		serif;

	font-size: 22px;

	font-weight: 400;

	line-height: 1.2;
}


.dv-footer-heading::after {
	content: "";

	position: absolute;

	left: 0;
	bottom: -10px;

	width: 31px;
	height: 2px;

	background: var(--footer-brand);
}


/* =========================================================
   LINKS
========================================================= */

.dv-footer-links {
	margin: 0;

	padding: 0;

	list-style: none;
}


.dv-footer-links li {
	margin: 0;
}


.dv-footer-links a {
	min-height: 34px;

	display: flex;

	align-items: center;

	justify-content: space-between;

	gap: 10px;

	color: #514b4e;

	font-size: 13px;

	text-decoration: none;

	transition:
		color 0.2s ease,
		transform 0.2s ease;
}


.dv-footer-links a i {
	color: #706a6d;

	font-size: 18px;

	font-style: normal;

	line-height: 1;
}


.dv-footer-links a:hover {
	color: var(--footer-brand);

	transform:
		translateX(3px);
}


.dv-footer-links--services a {
	min-height: 28px;

	font-size: 12px;
}


/* =========================================================
   CONTACT
========================================================= */

.dv-footer-contact {
	display: flex;

	flex-direction: column;

	gap: 18px;
}


.dv-footer-contact__row {
	display: flex;

	align-items: flex-start;

	gap: 11px;

	color: #5d5659;

	font-size: 12px;

	line-height: 1.4;

	text-decoration: none;
}


.dv-footer-icon {
	width: 25px;

	flex:
		0
		0
		25px;

	color: var(--footer-brand);
}


a.dv-footer-contact__row {
	transition:
		color 0.2s ease,
		transform 0.2s ease;
}


a.dv-footer-contact__row:hover {
	color: var(--footer-brand);

	transform:
		translateX(2px);
}


/* =========================================================
   PRACTICE LOCATIONS
========================================================= */

.dv-footer-location-list {
	display: flex;

	flex-direction: column;

	gap: 21px;
}


.dv-footer-location {
	display: flex;

	align-items: flex-start;

	gap: 11px;
}


.dv-footer-location__icon {
	width: 25px;

	flex:
		0
		0
		25px;

	padding-top: 1px;

	color: var(--footer-brand);
}


.dv-footer-location strong {
	display: block;

	margin-bottom: 5px;

	color: #322c2f;

	font-size: 13px;

	font-weight: 700;
}


.dv-footer-location p {
	margin: 0;

	color: #615a5d;

	font-size: 12px;

	line-height: 1.48;
}


/* =========================================================
   PREMIUM BOTTOM
========================================================= */

.dv-footer-bottom {
	position: relative;

	z-index: 2;

	min-height: 150px;

	margin-top: 0;

	padding-top: 47px;

	overflow: visible;

	color: #ffffff;

	background:
		linear-gradient(
			104deg,
			#a30746 0%,
			#7b0035 48%,
			#55002d 100%
		);
}


/* =========================================================
   WAVE LAYERS
   NO SVG
========================================================= */

.dv-footer-wave-layer {
	position: absolute;

	left: -8%;

	width: 116%;

	pointer-events: none;
}


/*
 * Pale pink wave.
 */
.dv-footer-wave-layer--blush {
	z-index: 2;

	top: -46px;

	height: 66px;

	background: #f3dce2;

	border-radius:
		50% 50% 0 0 /
		90% 90% 0 0;

	transform:
		rotate(-0.8deg);
}


/*
 * White layer sitting above pink.
 */
.dv-footer-wave-layer--white {
	z-index: 3;

	top: -63px;

	height: 67px;

	background: #ffffff;

	border-radius:
		0 0 50% 50% /
		0 0 70% 70%;

	transform:
		rotate(0.5deg);
}


/* =========================================================
   DARK BURGUNDY SHAPES
========================================================= */

.dv-footer-dark-shape {
	position: absolute;

	z-index: 1;

	pointer-events: none;

	border-radius: 50%;
}


.dv-footer-dark-shape--left {
	left: -14%;
	bottom: -102px;

	width: 78%;
	height: 160px;

	background:
		rgba(75, 0, 40, 0.30);

	transform:
		rotate(3deg);
}


.dv-footer-dark-shape--right {
	right: -13%;
	bottom: -110px;

	width: 70%;
	height: 165px;

	background:
		rgba(55, 0, 32, 0.34);

	transform:
		rotate(-5deg);
}


/* =========================================================
   BOTTOM CONTENT
========================================================= */

.dv-footer-bottom__inner {
	position: relative;

	z-index: 5;

	min-height: 103px;

	display: grid;

	grid-template-columns:
		1fr
		1.3fr
		0.72fr;

	align-items: end;

	gap: 25px;

	padding-bottom: 27px;
}


.dv-footer-copyright {
	margin: 0;

	color:
		rgba(255, 255, 255, 0.92);

	font-size: 11px;
}


/* =========================================================
   LEGAL
========================================================= */

.dv-footer-legal {
	display: flex;

	align-items: center;

	justify-content: center;

	flex-wrap: wrap;

	gap: 9px;
}


.dv-footer-legal a {
	color:
		rgba(255, 255, 255, 0.9);

	font-size: 10px;

	text-decoration: none;

	transition:
		color 0.2s ease;
}


.dv-footer-legal a:hover {
	color: #ffffff;
}


.dv-footer-legal span {
	width: 1px;
	height: 11px;

	background:
		rgba(255, 255, 255, 0.55);
}


/* =========================================================
   DEVELOPER CREDIT
========================================================= */

.dv-footer-credit {
	display: flex;

	align-items: center;

	justify-content: flex-end;

	gap: 23px;
}


.dv-footer-credit > i {
	width: 1px;
	height: 40px;

	background:
		rgba(255,255,255,0.63);
}


.dv-footer-credit p {
	margin: 0;

	color:
		rgba(255,255,255,0.8);

	font-size: 9px;

	line-height: 1.5;
}


.dv-footer-credit a {
	display: block;

	color: #ffffff;

	font-size: 12px;

	font-weight: 600;

	text-decoration: none;
}


/* =========================================================
   LAPTOP
========================================================= */

@media (max-width: 1200px) {

	.dv-footer-container {
		width:
			calc(100% - 50px);
	}


	.dv-footer-grid {
		grid-template-columns:
			1.08fr
			0.72fr
			1fr
			0.85fr
			0.95fr;
	}


	.dv-footer-column {
		padding:
			0
			20px;
	}

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

	.dv-footer-cta__box {
		grid-template-columns: 1fr;

		gap: 22px;

		padding:
			30px
			32px;
	}


	.dv-footer-cta__actions {
		max-width: 355px;
	}


	.dv-footer-cta__art {
		right: -80px;

		top: 55px;
	}


	.dv-footer-grid {
		grid-template-columns:
			1fr
			1fr;

		gap:
			38px
			0;
	}


	.dv-footer-column {
		min-height: auto;

		padding:
			0
			28px;
	}


	.dv-footer-column:nth-child(odd) {
		padding-left: 0;

		border-left: 0;
	}


	.dv-footer-main {
		padding-bottom: 75px;
	}


	.dv-footer-bottom {
		min-height: 205px;

		padding-top: 70px;
	}


	.dv-footer-wave-layer--blush {
		top: -40px;

		height: 58px;
	}


	.dv-footer-wave-layer--white {
		top: -54px;

		height: 57px;
	}


	.dv-footer-bottom__inner {
		min-height: 135px;

		grid-template-columns: 1fr;

		justify-items: center;

		gap: 12px;

		padding-bottom: 24px;

		text-align: center;
	}


	.dv-footer-credit {
		justify-content: center;
	}


	.dv-footer-credit > i {
		display: none;
	}

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

	.dv-footer-container {
		width:
			calc(100% - 30px);
	}


	.dv-footer-cta {
		padding:
			30px
			0
			24px;
	}


	.dv-footer-cta__box {
		padding:
			26px
			21px;

		border-radius: 14px;
	}


	.dv-footer-cta__title {
		font-size: 29px;
	}


	.dv-footer-cta__description {
		font-size: 13px;
	}


	.dv-footer-cta__art {
		display: none;
	}


	.dv-footer-cta__actions {
		max-width: none;
	}


	.dv-footer-main {
		padding:
			20px
			0
			72px;
	}


	.dv-footer-grid {
		grid-template-columns: 1fr;

		gap: 34px;
	}


	.dv-footer-column,
	.dv-footer-column:nth-child(odd) {
		min-height: auto;

		padding: 0;

		border-left: 0;
	}


	.dv-footer-about__text {
		max-width: none;
	}


	.dv-footer-logo img,
	.dv-footer-logo .custom-logo {
		max-width: 230px;

		height: auto;
	}


	.dv-footer-bottom {
		min-height: 230px;

		padding-top: 78px;
	}


	.dv-footer-wave-layer--blush {
		top: -32px;

		height: 47px;
	}


	.dv-footer-wave-layer--white {
		top: -43px;

		height: 46px;
	}


	.dv-footer-bottom__inner {
		min-height: 145px;

		padding-bottom: 24px;
	}


	.dv-footer-legal {
		gap:
			7px
			8px;
	}

}