﻿:root {
	--mid-blue: #1376f8;
	--sky-blue: #25b4f8;
	--dark-blue: #011632;
	--body-text: #3c4959;
	--light-blue: #e6f6fe;
	--white: #ffffff;
	--warning: #ec942c;
	--card-shadow: rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.05) 0px 4px 6px -2px;
}

* {
	box-sizing: border-box;
}

html,
body {
	overflow-x: hidden;
}

body {
	margin: 0;
	font-family: "General Sans", sans-serif;
	color: var(--dark-blue);
	background: var(--white);
	position: relative;
}

body.cert-preview-open {
	overflow: hidden;
}

body.page-inner {
	background-color: var(--white);
	background-image: linear-gradient(180deg, #E6F6FE 0.58%, rgba(235, 248, 254, 0) 25.6%);
	background-repeat: no-repeat;
}

body::after {
	width: 640px;
	height: 640px;
	right: -220px;
	bottom: -280px;
	background: radial-gradient(circle at center, rgba(19, 118, 248, 0.13) 0%, rgba(19, 118, 248, 0.02) 68%, transparent 74%);
}

p {
	margin: 0;
	font-family: "General Sans", sans-serif;
	font-weight: 400;
	font-size: 17px;
	line-height: 155%;
	letter-spacing: 0.015em;
	color: var(--body-text);
}

a {
	text-decoration: none;
}

.container {
	max-width: 1200px;
}

.container-wide {
	max-width: 1886px;
}

.section-space {
	padding: 54px 0;
}

.section-space-sm {
	padding: 54px 108px;
}

.section-kicker {
	margin-bottom: 10px;
	font-size: 17px;
	line-height: 155%;
	letter-spacing: 0.015em;
	color: var(--body-text);
}

.section-title {
	margin: 0;
	font-weight: 600;
	font-size: clamp(32px, 4vw, 40px);
	line-height: 125%;
	text-transform: capitalize;
	color: var(--dark-blue);
}

.title-brush {
	position: relative;
	display: inline-block;
}

.title-brush::before {
	content: "";
	position: absolute;
	left: 6px;
	bottom: -3px;
	width: 60%;
	height: 2px;
	border-radius: 109px;
	background: #f16b2e;
	transform: rotate(358deg);
	opacity: 0.95;
}

.title-brush::after {
	content: "";
	position: absolute;
	left: 6px;
	bottom: -5px;
	width: 100%;
	height: 2px;
	border-radius: 109px;
	background: linear-gradient(90deg, #f16b2e 0%, #ffc44e 54.62%, #ffd870 100%);
	transform: rotate(360deg);
	opacity: 0.98;
}

.section-subtitle,
.section-text {
	margin-top: 18px;
	margin-bottom: 18px;
	max-width: 640px;
}

.centered-copy {
	max-width: 580px;
	margin-left: auto;
	margin-right: auto;
}

.btn-brand {
	border: 0;
	border-radius: 10px;
	background: var(--mid-blue);
	color: var(--white);
	font-weight: 600;
	font-size: 16px;
	line-height: 155%;
	letter-spacing: 0.015em;
	padding: 15px 30px;
}

.btn-brand:hover {
	color: var(--white);
	background: #0f67da;
}

.site-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 1060;
	backdrop-filter: blur(4px);
}

body {
	padding-top: 124px;
}

.site-header-home {
	background: transparent;
}

.site-header-inner {
	background: linear-gradient(180deg, #E6F6FE 0.58%, rgba(235, 248, 254, 0) 98.6%);
}

.navbar {
	min-height: 90px;
	padding: 0.75rem 1.2rem;
	border-radius: 10px;
}

.navbar>.container {
	background: var(--light-blue);
	padding: 14px;
	border-radius: 10px;
}

.site-header-inner .navbar>.container {
	background: var(--white);
}

.navbar-brand {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.logo {
	color: var(--dark-blue);
	font-weight: 700;
	font-size: 20px;
	line-height: 1;
}

.nav-link {
	color: var(--dark-blue);
	font-weight: 500;
	font-size: 16px;
	line-height: 155%;
	letter-spacing: 0.015em;
}

.nav-link.active,
.nav-link:hover {
	color: var(--dark-blue);
	text-decoration: underline;
	text-decoration-thickness: 1.5px;
	text-underline-offset: 4px;
}

.hero-wrap {
	padding-top: 22px;
}

.hero-carousel,
.hero-carousel .carousel-item {
	border-radius: 10px;
}

.hero-carousel {
	cursor: grab;
	touch-action: pan-y;
}

.hero-carousel.is-dragging {
	cursor: grabbing;
}

.hero-panel {
	border-radius: 10px;
	overflow: hidden;
	position: relative;
	min-height: 755px;
	background-image: var(--hero-bg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
}

.hero-panel::before {
	content: "";
	position: absolute;
	inset: 0;
	/* background-image: radial-gradient(circle at 18% 27%, rgba(255, 255, 255, 0.14), transparent 34%), radial-gradient(circle at 42% 79%, rgba(255, 255, 255, 0.12), transparent 38%); */
	pointer-events: none;
}

.hero-inner {
	position: relative;
	z-index: 1;
	min-height: 704px;
	max-width: 850px;
	padding: 72px 56px 56px;
	display: flex;
	flex-direction: column;
}

.hero-kicker {
	margin: 0;
	color: var(--dark-blue);
	font-weight: 400;
	font-size: 17px;
	line-height: 155%;
	letter-spacing: 0.015em;
	text-transform: uppercase;
}

.hero-title {
	margin: 20px 0 0;
	max-width: 726px;
	color: var(--dark-blue);
	font-weight: 600;
	font-size: 62px;
	line-height: 120%;
	letter-spacing: -0.02em;
	text-transform: capitalize;
}

.hero-title-brush {
	position: relative;
	display: inline-block;
	padding-bottom: 22px;
}

.hero-title-brush::before,
.hero-title-brush::after {
	content: "";
	position: absolute;
	border-radius: 109px;
}

.hero-title-brush::before {
	left: 16%;
	width: 56%;
	bottom: 14px;
	height: 4px;
	background: linear-gradient(90deg, #f16b2e 0%, #ff8f2e 72%, #ffa63f 100%);
	transform: rotate(358deg);
}

.hero-title-brush::after {
	left: 10%;
	right: 6%;
	bottom: 8px;
	height: 3px;
	background: linear-gradient(90deg, #f7a533 0%, #ffc44e 54.62%, #ffd76a 100%);
	transform: rotate(-0.15deg);
}

.hero-copy {
	margin-top: 16px;
	max-width: 708px;
	color: var(--dark-blue);
}

.hero-actions {
	margin-top: 30px;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 30px;
}

.hero-call {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--white);
}

.hero-call-icon {
	width: 55px;
	height: 55px;
	border-radius: 10px;
	border: 2px solid var(--white);
	background: rgba(255, 255, 255, 0.12);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	color: var(--white);
}

.hero-call small,
.hero-call strong {
	display: block;
	color: var(--dark-blue);
}

.hero-call small {
	font-family: "General Sans", sans-serif;
	font-weight: 600;
	font-size: 14px;
	line-height: 155%;
}

.hero-call strong {
	margin-top: 6px;
	font-family: "General Sans", sans-serif;
	font-weight: 500;
	font-size: 14px;
	line-height: 155%;
}

.hero-doctor-card {
	margin-top: 26px;
	width: min(600px, 100%);
	background: #ffffffd9;
	border-radius: 10px;
	box-shadow: var(--card-shadow);
	padding: 16px 16px 14px;
}

.hero-doctor-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
}

.hero-doctor-meta {
	display: flex;
	align-items: center;
	gap: 10px;
}

.hero-doctor-card img {
	width: 42px;
	height: 42px;
	border-radius: 20px;
	object-fit: cover;
}

.hero-doctor-card h3 {
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 155%;
	letter-spacing: 0.02em;
	color: var(--dark-blue);
}

.hero-doctor-card .hero-doctor-meta p {
	margin: 0;
	font-size: 12px;
	color: var(--dark-blue);
}

.hero-doctor-social {
	width: 25px;
	height: 25px;
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 25px;
}

.hero-doctor-card>p {
	margin-top: 12px;
	font-size: 12px;
	line-height: 155%;
	color: var(--dark-blue);
}

.hero-review-card {
	margin-top: 26px;
	width: min(820px, 65%);
	background: #f0f0f0;
	border-radius: 10px;
	padding: 28px 36px 26px;
	box-shadow: var(--card-shadow);
}

.hero-review-top {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 18px 18px;
}

.hero-review-score {
	font-family: "General Sans", sans-serif;
	color: #1f6de5;
	font-weight: 500;
	font-size: clamp(18px, 2.4vw, 18px);
	line-height: 1;
}

.hero-review-main {
	margin-top: 12px;
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 12px 18px;
	font-family: "General Sans", sans-serif;
}

.hero-review-main strong {
	margin: 0;
	color: #ef7f1f;
	font-weight: 500;
	font-size: clamp(30px, 5.7vw, 18px);
	line-height: 1;
}

.hero-review-main span {
	margin: 0;
	color: var(--dark-blue);
	font-weight: 500;
	font-size: clamp(30px, 5.4vw, 18px);
	line-height: 1;
}

#heroCarousel .carousel-indicators {
	display: none;
}

.carousel-inner {
	border-radius: 10px;
}

.hero-outside-control {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 54px;
	height: 54px;
	border-radius: 10px;
	background: var(--dark-blue);
	color: var(--white);
	opacity: 1;
	border: 0;
}

.hero-outside-control.carousel-control-prev {
	left: -27px;
}

.hero-outside-control.carousel-control-next {
	right: -27px;
}

.hero-outside-control span {
	font-size: 24px;
}

@media (max-width: 1399.98px) {

	.hero-panel,
	.hero-inner {
		min-height: 640px;
	}

	.hero-inner {
		padding: 64px 48px 48px;
	}

	.hero-title {
		font-size: 54px;
	}
}

@media (max-width: 1199.98px) {

	.hero-panel,
	.hero-inner {
		min-height: 580px;
	}

	.hero-inner {
		padding: 48px 36px 40px;
	}

	.hero-title {
		font-size: 48px;
	}

	.hero-doctor-card {
		width: 100%;
	}

	.hero-outside-control {
		width: 48px;
		height: 48px;
	}

	.hero-outside-control.carousel-control-prev {
		left: -16px;
	}

	.hero-outside-control.carousel-control-next {
		right: -16px;
	}

	.hero-review-card {
		width: 80%;
		border-radius: 10px;
		padding: 22px 24px;
	}

	.hero-review-main strong {
		font-size: clamp(44px, 6vw, 60px);
	}

	.hero-review-main span {
		font-size: clamp(42px, 5.7vw, 58px);
	}
}

@media (max-width: 991.98px) {
	body {
		padding-top: 112px;
	}

	.hero-wrap {
		padding-top: 14px;
	}

	.hero-panel,
	.hero-inner {
		min-height: 520px;
	}

	.hero-inner {
		padding: 34px 24px 28px;
	}

	.hero-title {
		font-size: 40px;
	}

	.hero-title-brush::before {
		left: 2%;
		width: 68%;
		bottom: 18px;
		height: 3px;
	}

	.hero-title-brush::after {
		left: 2%;
		right: 22%;
		bottom: 13px;
		height: 3px;
		transform: rotate(0.68deg);
	}

	.hero-copy {
		margin-top: 14px;
	}

	.hero-actions {
		gap: 14px;
	}

	.hero-outside-control {
		width: 42px;
		height: 42px;
	}

	.hero-outside-control span {
		font-size: 20px;
	}

	.hero-outside-control.carousel-control-prev {
		left: 8px;
	}

	.hero-outside-control.carousel-control-next {
		right: 8px;
	}

	.hero-review-card {
		border-radius: 10px;
		padding: 16px 18px 15px;
		margin-top: 20px;
	}

	.hero-review-top {
		gap: 10px 12px;
	}

	.hero-review-score {
		font-size: 17px;
	}

	.hero-review-main {
		margin-top: 9px;
		gap: 8px 10px;
	}

	.hero-review-main strong {
		font-size: 34px;
	}

	.hero-review-main span {
		font-size: 32px;
	}
}

@media (max-width: 575.98px) {
	body {
		padding-top: 102px;
	}

	.hero-inner {
		padding: 24px 18px;
	}

	.hero-panel,
	.hero-inner {
		min-height: 460px;
	}

	.hero-kicker {
		font-size: 14px;
	}

	.hero-title {
		font-size: 28px;
		padding-bottom: 16px;
	}

	.hero-title-brush::before {
		left: 2%;
		width: 62%;
		bottom: 8px;
		height: 3px;
	}

	.hero-title-brush::after {
		left: 1.5%;
		right: 2.5%;
		height: 4px;
		bottom: 3px;
	}

	.hero-copy {
		font-size: 15px;
	}

	.hero-call {
		width: 100%;
	}

	.hero-review-card {
		border-radius: 10px;
		padding: 14px 14px 13px;
	}

	.hero-review-score {
		font-size: 17px;
	}

	.hero-review-main strong {
		font-size: 25px;
	}

	.hero-review-main span {
		font-size: 23px;
	}
}

.services-strip {
	background: #d9eaf5;
	border-radius: 10px;
	padding: 32px;
}

.services-viewport {
	overflow: hidden;
	cursor: grab;
	touch-action: pan-y;
}

.services-track {
	display: flex;
	gap: var(--services-gap);
	transition: transform 0.45s ease;
	will-change: transform;
}

.services-viewport.is-dragging {
	cursor: grabbing;
}

.service-slide {
	flex: 0 0 var(--service-card-width);
	width: var(--service-card-width);
}

.service-card-link {
	display: block;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.service-card-link:hover,
.service-card-link:focus-visible {
	color: inherit;
}

.services-slider-dots {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin-top: 26px;
}

.service-dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 109px;
	background: rgba(1, 22, 50, 0.22);
	transition: width 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.service-dot.is-active {
	width: 32px;
	background: var(--dark-blue);
}

.service-dot:hover,
.service-dot:focus-visible {
	background: var(--mid-blue);
	transform: translateY(-1px);
}

.service-card {
	background: #ffffff;
	border-radius: 10px;
	padding: 14px 26px 20px;
	text-align: center;
	min-height: 276px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
}

.service-card-visual {
	min-height: 214px;
	padding: 8px 10px 14px;
	background: #ffffff;
	border-radius: 8px;
	box-shadow: none;
}

.service-icon {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	background: linear-gradient(180deg, #49b4f7 0%, #33a8f5 100%);
	color: var(--white);
	font-size: 30px;
	margin-bottom: 22px;
	box-shadow: var(--card-shadow);
}

.service-card-media {
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 190px;
	margin-bottom: 12px;
	border-radius: 6px;
	background-color: #dbe7f1;
	background-image: var(--service-card-bg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	box-shadow: inset 0 200px 0 rgba(0, 0, 0, 0.38)
}

.service-card-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(7, 20, 37, 0.06) 0%, rgba(7, 20, 37, 0.02) 34%, rgba(7, 20, 37, 0.34) 100%);
	pointer-events: none;
}

.service-icon svg {
	width: 31px;
	height: 31px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.service-card h3 {
	margin: 0;
	font-weight: 500;
	font-size: 24px;
	line-height: 1.25;
	text-transform: capitalize;
	color: var(--dark-blue);
}

.service-card p {
	margin-top: 12px;
	max-width: 400px;
	font-size: 17px;
	line-height: 1.45;
}

.service-card-visual h3 {
	font-size: 24px;
	line-height: 1.2;
	color: var(--dark-blue);
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	margin-top: auto;
	padding-top: 24px;
	color: var(--dark-blue);
	font-family: "General Sans", sans-serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 155%;
	letter-spacing: 0.015em;
}

.text-link i {
	width: 20px;
	height: 20px;
	border: 1.6px solid var(--dark-blue);
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	text-decoration: none;
}

.text-link:hover,
.text-link:focus-visible {
	color: var(--dark-blue);
}

.services-page-hero {
	background: transparent;
	padding: 42px 0 84px;
}

.services-page-heading {
	margin-bottom: 58px;
}

.services-page-title {
	font-size: clamp(44px, 4vw, 58px);
	line-height: 1;
	letter-spacing: -0.03em;
}

.services-page-title .title-brush::before {
	left: 10px;
	bottom: -4px;
	width: 56%;
	height: 3px;
}

.services-page-title .title-brush::after {
	left: 10px;
	bottom: -6px;
	height: 3px;
}

.service-detail-page {
	background: transparent;
}

.service-detail-hero {
	padding: 34px 0 72px;
}

.service-detail-heading {
	margin-bottom: 56px;
}

.service-detail-title {
	font-size: clamp(44px, 4vw, 58px);
	line-height: 1.04;
	letter-spacing: -0.03em;
	text-transform: none;
}

.service-detail-title .title-brush::before {
	left: 9px;
	bottom: -4px;
	width: 60%;
	height: 3px;
}

.service-detail-title .title-brush::after {
	left: 8px;
	bottom: -6px;
	height: 3px;
}

.service-detail-subtitle {
	max-width: 430px;
	font-size: 16px;
	line-height: 1.6;
	color: #6a7689;
}

.service-detail-layout {
	--bs-gutter-x: 34px;
	--bs-gutter-y: 30px;
}

.service-detail-image-wrap {
	border-radius: 10px;
	overflow: hidden;
	background: #dfe7f0;
}

.service-detail-image {
	display: block;
	width: 100%;
	height: 400px;
	aspect-ratio: 1.34;
	object-fit: cover;
}

.service-detail-copy {
	padding-top: 20px;
	max-width: 760px;
}

.service-detail-copy h2 {
	margin: 0 0 14px;
	font-size: clamp(28px, 3vw, 24px);
	font-weight: 600;
	line-height: 1.18;
	letter-spacing: -0.02em;
	color: var(--dark-blue);
}

.service-detail-copy p {
	font-size: 18px;
	line-height: 1.72;
	color: #5f6878;
}

.service-detail-copy p+p {
	margin-top: 14px;
}

.service-detail-advantages {
	margin-top: 24px;
}

.service-detail-advantages h3 {
	margin: 0 0 14px;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--dark-blue);
}

.service-detail-advantages-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 11px;
}

.service-detail-advantages-list li {
	display: flex;
	align-items: center;
	gap: 11px;
	font-size: 18px;
	line-height: 1.5;
	color: #5b677b;
}

.service-detail-advantages-list li i {
	margin-top: 4px;
	font-size: 17px;
	color: var(--mid-blue);
}

.service-detail-sidebar {
	display: grid;
	gap: 18px;
}

.service-detail-sidebar-card,
.service-detail-contact-card {
	padding: 30px 22px;
	border-radius: 10px;
	background: #eaf6fd;
}

.service-detail-sidebar-card h3,
.service-detail-contact-card h3 {
	margin: 0 0 18px;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--dark-blue);
}

.service-detail-service-links {
	display: grid;
	gap: 12px;
}

.service-detail-service-pill {
	display: block;
	padding: 13px 16px;
	border: 1px solid #dbe2ea;
	border-radius: 999px;
	background: #f8f8f8;
	font-size: 16px;
	line-height: 1.35;
	color: var(--dark-blue);
	transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.service-detail-service-pill:hover,
.service-detail-service-pill:focus-visible,
.service-detail-service-pill.is-active {
	color: var(--dark-blue);
	background: var(--white);
	border-color: #ffffff;
	transform: translateY(-1px);
}

.service-detail-contact-copy {
	margin-bottom: 18px;
	font-size: 22px;
	line-height: 1.45;
	color: #3f4d60;
}

.service-detail-contact-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 13px;
}

.service-detail-contact-list li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 16px;
	line-height: 1.55;
	color: #445065;
}

.service-detail-contact-list i {
	margin-top: 3px;
	font-size: 17px;
	color: var(--mid-blue);
}

.service-detail-contact-list a,
.service-detail-contact-list span {
	color: inherit;
}

.service-detail-contact-list a:hover {
	color: var(--mid-blue);
}

.service-detail-appointment-wrap .services-page-appointment {
	padding: 0 48px;
}

.service-detail-appointment-wrap .services-appointment-card {
	max-width: 390px;
	margin-left: auto;
	padding: 26px 30px 30px;
}

.service-detail-appointment-wrap .services-appointment-card h3 {
	margin-bottom: 22px;
	font-size: 22px;
}

.service-detail-appointment-wrap .services-compact-form .form-control {
	min-height: 38px;
	padding: 8px 12px;
	border: 1px solid #c9ced8;
	border-radius: 3px;
	background: var(--white);
	box-shadow: none;
}

.service-detail-appointment-wrap .services-compact-form .form-control:focus {
	border-color: rgba(19, 118, 248, 0.65);
	box-shadow: 0 0 0 0.18rem rgba(19, 118, 248, 0.12);
	background: var(--white);
}

.service-detail-appointment-wrap .services-compact-form .form-control::placeholder {
	color: #a8afbb;
}

.service-detail-appointment-wrap .services-compact-submit {
	min-width: 112px;
	padding: 10px 22px;
	border-radius: 6px;
}

.service-detail-page .services-doctor-card {
	min-height: 322px;
}

@media (min-width: 992px) {
	.service-detail-sidebar {
		position: sticky;
		top: 112px;
	}
}

.services-page-grid {
	--bs-gutter-x: 30px;
	--bs-gutter-y: 30px;
}


.services-page-card .service-icon {
	width: 70px;
	height: 70px;
	margin-bottom: 18px;
	box-shadow: none;
}

.services-page-card .service-icon img {
	width: 48px;
	height: auto;
}

.services-page-card h2 {
	margin: 0;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.35;
	color: var(--dark-blue);
}

.services-page-card p {
	margin-top: 18px;
	font-size: 18px;
	line-height: 1.7;
	color: #6c7482;
}

.services-page-appointment-wrap {
	background: #001a49;
	padding: 60px 0 60px;
	box-shadow: var(--card-shadow);
}

.services-page-appointment {
	padding: 0 46px;
}

.services-page-appointment-title {
	margin: 0;
	color: var(--white);
	font-size: clamp(36px, 4vw, 42px);
	font-weight: 600;
	line-height: 1.25;
}

.services-page-appointment-title .title-brush::before {
	left: 6px;
	bottom: 4px;
	width: 55%;
	height: 3px;
}

.services-page-appointment-title .title-brush::after {
	left: 4px;
	bottom: 0;
	height: 3px;
}

.services-page-copy p {
	margin-top: 20px;
	font-size: 18px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.82);
}

.services-page-cta-btn {
	margin-top: 26px;
	padding-left: 20px;
	padding-right: 20px;
}

.services-appointment-card {
	background: var(--white);
	border-radius: 10px;
	padding: 18px 16px 24px;
	box-shadow: none;
}

.services-appointment-card h3 {
	margin: 0 0 39px;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	color: var(--dark-blue);
}

.services-compact-form .form-control {
	min-height: 38px;
	border: 1px solid #c9ced8;
	border-radius: 3px;
	padding: 8px 12px;
	font-size: 14px;
	color: #4b5970;
	box-shadow: none;
}

.services-compact-form .form-control::placeholder {
	color: #a8afbb;
}

.services-compact-form .form-control:focus {
	border-color: rgba(19, 118, 248, 0.65);
	box-shadow: 0 0 0 0.18rem rgba(19, 118, 248, 0.12);
}

.services-compact-form .form-control.is-invalid {
	border-color: #dc5a5a;
	background-image: none;
}

.services-page-link {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	margin-top: auto;
	padding-top: 18px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--dark-blue);
}

.services-page-link i {
	width: 24px;
	height: 24px;
	border: 1px solid currentColor;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	text-decoration: none;
}

.services-page-link:hover,
.services-page-link:focus-visible {
	color: var(--dark-blue);
}

.services-compact-submit {
	min-width: 157px;
	padding: 9px 22px;
	font-size: 14px;
	border-radius: 6px;
}

.services-appointment-card .form-feedback {
	margin-bottom: 14px;
	font-size: 12px;
	padding: 10px 12px;
}

.services-page-welcome {
	padding: 82px 0 96px;
	background: #fff;
}

.services-page-welcome .welcome-play-icon {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.36);
	border: 2px solid rgba(255, 255, 255, 0.85);
	box-shadow: none;
}

.services-page-welcome .welcome-play-icon i {
	font-size: 28px;
	margin-left: 3px;
}

.services-page-welcome .welcome-playlist-btn {
	min-width: 117px;
	padding: 11px 20px;
	font-size: 16px;
	border-radius: 6px;
}

.services-specialists-block {
	position: relative;
	overflow: hidden;
	background: #eaf6fd;
	padding: 74px 0 84px;
}

.services-specialists-block::after {
	bottom: 36px;
	height: 188px;
	transform: rotate(5deg);
}

.services-specialists-block .container {
	position: relative;
	z-index: 1;
}

.services-specialists-heading {
	margin-bottom: 34px;
}

.services-specialists-grid {
	--bs-gutter-x: 14px;
}

.services-page-cta-wrap {
	padding: 78px 0 54px;
	background: #fff;
}

.stack-image {
	position: relative;
}

.stack-image::after {
	content: "";
	position: absolute;
	width: 555px;
	height: 99%;
	max-width: 92%;
	right: -24px;
	top: -22px;
	border-radius: 10px;
	background: linear-gradient(52.56deg, rgba(37, 180, 248, 0) 0%, rgba(37, 180, 248, 0.47) 64.42%, #25b4f8 126.21%);
	z-index: -1;
}

.value-block {
	background: var(--light-blue);
	position: relative;
}

.value-points {
	margin-top: 30px;
	display: grid;
	gap: 20px;
}

.value-point {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}

.value-icon {
	width: 50px;
	height: 28px;
	border-radius: 10px;
	border: 1px solid var(--mid-blue);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--mid-blue);
	margin-top: 2px;
}

.value-point h3 {
	margin: 0;
	font-size: 17px;
	line-height: 155%;
	font-weight: 500;
	letter-spacing: 0.015em;
	color: var(--body-text);
}

.value-point p {
	margin-top: 6px;
	font-size: 16px;
}


.welcome-video-subtitle {
	max-width: 760px;
}

.welcome-image-wrap {
	max-width: 1064px;
	margin-top: 16px;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: var(--card-shadow);
}

.welcome-video-link {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	text-align: left;
}

.welcome-video-link::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(1, 22, 50, 0.03) 0%, rgba(1, 22, 50, 0.2) 100%);
	transition: opacity 0.2s ease;
}

.welcome-video-link:hover::after,
.welcome-video-link:focus-visible::after {
	opacity: 0.65;
}

.welcome-video-link.is-hidden {
	display: none;
}

.welcome-video-image {
	display: block;
	width: 100%;
	aspect-ratio: 16/7.4;
	object-fit: cover;
}

.welcome-play-icon {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 60px;
	height: 60px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.86);
	border: 2px solid rgba(255, 255, 255, 0.95);
	box-shadow: var(--card-shadow);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--mid-blue);
	z-index: 1;
}

.welcome-play-icon i {
	font-size: 32px;
	line-height: 1;
	margin-left: 3px;
}

.welcome-playlist-btn {
	min-width: 125px;
}

.welcome-inline-player {
	position: relative;
	aspect-ratio: 16/9;
	background: #000;
	border-radius: 10px;
	overflow: hidden;
}

.welcome-inline-player[hidden] {
	display: none !important;
}

.welcome-inline-video {
	width: 100%;
	height: 100%;
	display: none;
	border: 0;
}

.welcome-inline-video.is-active {
	display: block;
}

.certifications-showcase-section {
	padding: 16px 0 54px;
	background: linear-gradient(180deg, #edf7ff 0%, #e7f1fb 100%);
	overflow: hidden;
}

.certifications-showcase {
	padding: clamp(30px, 4vw, 40px) 0 clamp(28px, 3.8vw, 36px);
}

.certifications-kicker {
	margin-bottom: 8px;
	color: #657487;
}

.certifications-heading {
	max-width: 760px;
	margin-bottom: clamp(24px, 3vw, 32px);
}

.certifications-title {
	font-size: clamp(34px, 4vw, 46px);
	line-height: 1.08;
	letter-spacing: -0.035em;
	text-transform: none;
}

.certifications-title .title-brush::before {
	left: 8px;
	bottom: -4px;
	width: 57%;
	height: 3px;
}

.certifications-title .title-brush::after {
	left: 8px;
	bottom: -7px;
	height: 3px;
}

.certifications-copy {
	margin-top: 14px;
	max-width: 620px;
	color: #667487;
}

.certifications-slider {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	overflow: hidden;
	cursor: grab;
	touch-action: pan-y;
	padding: clamp(12px, 1.8vw, 16px);
}

.certifications-slider.is-dragging {
	cursor: grabbing;
}

.certifications-track {
	display: flex;
	gap: var(--certifications-gap, 20px);
	transition: transform 0.45s ease;
	will-change: transform;
}

.certifications-slide {
	flex: 0 0 var(--certification-card-width, 100%);
	width: var(--certification-card-width, 100%);
}

.certification-badge {
	min-height: 92px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.certification-badge-inner {
	display: block;
	height: 100%;
}

.certification-logo-media {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 92px;
	height: 100%;
	padding: 12px 18px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.12);
}

.certification-logo-placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 14px;
	border: 1px dashed rgba(102, 160, 220, 0.54);
	border-radius: 8px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.78) 0%, rgba(237, 246, 253, 0.94) 100%);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
	color: #6f8094;
	transition: opacity 0.2s ease;
}

.certification-logo-image {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: clamp(46px, 6vw, 86px);
	object-fit: contain;
	opacity: 0;
	transition: opacity 0.2s ease;
}

.certification-logo-media.is-loaded .certification-logo-image {
	opacity: 1;
}

.certification-logo-media.is-loaded .certification-logo-placeholder {
	opacity: 0;
	pointer-events: none;
}

.certifications-dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 14px;
}

.certification-dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(92, 143, 224, 0.52);
	transition: transform 0.2s ease, background-color 0.2s ease, opacity 0.2s ease;
}

.certification-dot.is-active {
	background: #4d8df2;
	transform: scale(1.08);
}

.certification-dot:hover,
.certification-dot:focus-visible {
	background: #3d82eb;
	outline: 0;
}

.certification-dot:focus-visible {
	box-shadow: 0 0 0 3px rgba(61, 130, 235, 0.24);
}

@media (max-width: 991.98px) {
	.certifications-showcase-section {
		padding: 28px 0 40px;
	}

	.certifications-showcase {
		padding: 20px 0 10px;
	}

	.certifications-slider {
		max-width: 100%;
	}
}

@media (max-width: 575.98px) {
	.certifications-showcase-section {
		padding: 24px 0 34px;
	}

	.certifications-showcase {
		padding: 10px 0 0;
	}

	.certifications-heading {
		margin-bottom: 22px;
	}

	.certifications-title {
		font-size: clamp(28px, 8vw, 34px);
	}

	.certifications-slider {
		padding: 10px;
		border-radius: 8px;
	}

	.certification-badge {
		min-height: 82px;
	}

	.certification-logo-media {
		min-height: 82px;
		padding: 10px 14px;
	}

	.certification-logo-placeholder {
		font-size: 14px;
	}

	.certification-logo-image {
		height: 80px;
	}
}

.specialists-block {
	position: relative;
	background: var(--light-blue);
	overflow: hidden;
}

.diagnosis-section {
	padding-top: 76px;
	padding-bottom: 82px;
}

.diagnosis-section .container {
	max-width: 1420px;
}

.diagnosis-section-head {
	max-width: 780px;
	margin: 0 auto 58px;
}

.diagnosis-section-title {
	font-size: clamp(38px, 4.4vw, 42px);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.08;
	text-transform: capitalize;
}

.diagnosis-section-title .title-brush::before {
	left: 4px;
	bottom: -7px;
	width: 58%;
	height: 4px;
}

.diagnosis-section-title .title-brush::after {
	left: 4px;
	bottom: -10px;
	height: 3px;
}

.diagnosis-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 520px) minmax(0, 1fr);
	align-items: center;
	gap: clamp(18px, 3vw, 52px);
}

.diagnosis-features {
	display: grid;
	gap: clamp(26px, 4vw, 64px);
}

.diagnosis-feature {
	display: flex;
	align-items: center;
	gap: 18px;
}

.diagnosis-feature-left {
	justify-content: flex-end;
	text-align: right;
}

.diagnosis-feature-right {
	justify-content: flex-start;
	text-align: left;
}

.diagnosis-feature-copy {
	max-width: 320px;
}

.diagnosis-feature h3 {
	margin: 0 0 10px;
	font-size: clamp(24px, 2vw, 18px);
	font-weight: 600;
	line-height: 1.15;
	color: var(--dark-blue);
}

.diagnosis-feature p {
	margin: 0;
	font-size: 14.53px;
	line-height: 1.7;
	color: rgba(60, 73, 89, 0.86);
}

.diagnosis-feature-icon {
	flex: 0 0 76px;
	width: 76px;
	height: 76px;
	border-radius: 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 36px;
	color: var(--mid-blue);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.76) 0%, rgba(255, 255, 255, 0.18) 100%);
	border: 1px solid rgba(19, 118, 248, 0.14);
	box-shadow: 0 16px 28px rgba(19, 118, 248, 0.08);
}

.diagnosis-visual {
	display: flex;
	align-items: center;
	justify-content: center;
}

.diagnosis-orbit {
	position: relative;
	width: min(100%, 520px);
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.diagnosis-orbit::before {
	content: "";
	position: absolute;
	inset: 18px;
	border-radius: 50%;
	border: 1.5px solid rgba(19, 118, 248, 0.14);
}

.diagnosis-orbit::after {
	content: "";
	position: absolute;
	inset: 38px;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 40%, rgba(255, 255, 255, 0.98) 0%, #fbfdff 62%, #f1f6fb 100%);
	box-shadow: inset 0 0 0 14px rgba(255, 255, 255, 0.58), 0 24px 54px rgba(19, 118, 248, 0.08);
}

.diagnosis-orbit-dots {
	position: absolute;
	inset: 18px;
	z-index: 2;
	animation: diagnosis-orbit-spin 12s linear infinite;
	transform-origin: center;
	pointer-events: none;
}

.diagnosis-orbit-marker {
	position: absolute;
	inset: 0;
	transform: rotate(var(--diagnosis-orbit-angle));
	transform-origin: center;
}

.diagnosis-orbit-core {
	position: relative;
	z-index: 1;
	width: min(70%, 320px);
	display: flex;
	align-items: center;
	justify-content: center;
}

.diagnosis-orbit-core::after {
	content: "";
	position: absolute;
	left: 18%;
	right: 18%;
	bottom: 18px;
	height: 30px;
	border-radius: 50%;
	background: radial-gradient(circle at center, rgba(168, 180, 194, 0.48) 0%, rgba(168, 180, 194, 0) 72%);
	filter: blur(7px);
}

.diagnosis-tooth-image {
	position: relative;
	z-index: 1;
	width: 100%;
	height: auto;
}

.diagnosis-orbit-dot {
	position: absolute;
	top: 0;
	left: 50%;
	width: 14px;
	height: 14px;
	margin-top: -7px;
	margin-left: -7px;
	border-radius: 50%;
	background: var(--mid-blue);
	box-shadow: 0 0 0 10px rgba(19, 118, 248, 0.08);
}

.diagnosis-orbit-dot-1 {
	--diagnosis-orbit-angle: 0deg;
}

.diagnosis-orbit-dot-2 {
	--diagnosis-orbit-angle: 60deg;
}

.diagnosis-orbit-dot-3 {
	--diagnosis-orbit-angle: 120deg;
}

.diagnosis-orbit-dot-4 {
	--diagnosis-orbit-angle: 180deg;
}

.diagnosis-orbit-dot-5 {
	--diagnosis-orbit-angle: 240deg;
}

.diagnosis-orbit-dot-6 {
	--diagnosis-orbit-angle: 300deg;
}

@keyframes diagnosis-orbit-spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.diagnosis-orbit-dots {
		animation: none;
	}
}

.specialists-slider {
	--specialists-gap: 20px;
	width: 100%;
	max-width: none;
	margin: 0;
}

.specialists-slider-shell {
	padding-left: clamp(16px, 5.9vw, 80px);
	padding-right: 0;
}

.specialists-viewport {
	overflow: hidden;
}

.specialists-track {
	display: flex;
	gap: var(--specialists-gap);
	transition: transform 0.52s ease;
	will-change: transform;
}


.section-head .section-title {
	position: relative;
	display: inline-block;
	padding-bottom: 22px;
}

.section-head .section-title::before {
	content: "";
	position: absolute;
	left: 6px;
	bottom: 10px;
	width: 56%;
	height: 4px;
	border-radius: 109px;
	background: #f16b2e;
	transform: rotate(-0.75deg);
	opacity: 0.95;
}

.section-head .section-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 3px;
	width: 100%;
	height: 5px;
	border-radius: 109px;
	background: linear-gradient(90deg, #f16b2e 0%, #ffc44e 54.62%, #ffd870 100%);
	transform: rotate(-0.18deg);
	opacity: 0.98;
}

.doctor-card {
	position: relative;
	border-radius: 10px;
	overflow: hidden;
	background: #d7dee8;
}

.doctor-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.doctor-link {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 34px;
	height: 34px;
	border-radius: 10px;
	background: #050505;
	color: var(--white);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
}

.doctor-link:hover,
.doctor-link:focus-visible {
	background: #121212;
	color: var(--white);
}

.doctor-info {
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 14px;
	border-radius: 10px;
	padding: 14px 16px 13px;
	background: linear-gradient(96deg, rgba(116, 173, 214, 0.92) 0%, rgba(191, 201, 211, 0.92) 100%);
	backdrop-filter: blur(8px);
}

.doctor-info h3 {
	margin: 0;
	font-size: 24px;
	line-height: 1.04;
	font-weight: 500;
	color: var(--white);
	text-transform: capitalize;
}

.doctor-info p {
	margin-top: 4px;
	color: rgba(255, 255, 255, 0.92);
	font-weight: 400;
	font-size: 15px;
	line-height: 1.15;
}

.specialists-block .slider-actions {
	margin-top: 32px;
}

.specialists-block .specialists-control {
	width: 84px;
	height: 46px;
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.specialists-block .specialists-control span {
	font-size: 24px;
}

.specialists-block .specialists-control:hover,
.specialists-block .specialists-control:focus-visible {
	background: #f4f7fb;
	color: var(--dark-blue);
}

.specialists-block .specialists-control:disabled {
	opacity: 0.45;
	cursor: not-allowed;
	background: #f0f4f8;
	color: #6f7a8b;
}

.patients-say-section {
	overflow: hidden;
}

.section-space-va {
	padding: 55px 102px;
}

.patients-say-head {
	max-width: 660px;
	margin: 0 auto 48px;
}

.patients-say-title {
	font-size: clamp(34px, 3vw, 42px);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.1;
}

.patients-say-title .title-brush::before {
	left: 8px;
	bottom: -5px;
	width: 62%;
	height: 3px;
}

.patients-say-title .title-brush::after {
	left: 8px;
	bottom: -7px;
	height: 2px;
}

.patients-say-head .section-subtitle {
	max-width: 460px;
	margin-top: 14px;
	font-size: 16px;
	line-height: 1.55;
	color: #566071;
}

.slider-actions {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin-top: 28px;
}

.custom-control {
	position: static;
	width: 96px;
	height: 44px;
	opacity: 1;
	border: 0;
	border-radius: 10 background: var(--white);
	color: var(--dark-blue);
}

.dark-control {
	background: var(--dark-blue);
	color: var(--white);
}

.custom-control span {
	font-size: 20px;
}

.testimonials-slider-shell {
	padding-left: clamp(40px, 4.8vw, 66px);
	padding-right: 0;
	overflow: hidden;
}

.testimonials-slider {
	--testimonials-gap: 16px;
	width: 100%;
	/* max-width: 1270px; */
	margin: 0;
}

.testimonials-viewport {
	overflow: hidden;
	padding: 20px 0 24px;
	margin: -10px 0 -24px;
}

.testimonials-track {
	display: flex;
	align-items: stretch;
	gap: var(--testimonials-gap);
	transition: transform 0.52s ease;
	will-change: transform;
}

.testimonial-card {
	background: var(--white);
	border-radius: 10px;
	padding: 24px 26px 22px;
	min-height: 222px;
	box-shadow: var(--card-shadow);
}

.testimonials-track .testimonial-card {
	flex: 0 0 var(--testimonial-card-width, 366px);
	width: var(--testimonial-card-width, 366px);
}

.testimonial-card-head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 16px;
}

.testimonial-avatar {
	width: 54px;
	height: 54px;
	border-radius: 10px;
	object-fit: cover;
	flex: 0 0 auto;
}

.testimonial-author {
	min-width: 0;
}

.testimonial-author h3 {
	margin: 0;
	font-size: 17px;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--dark-blue);
	font-weight: 500;
}

.stars {
	margin-top: 8px;
	display: flex;
	gap: 3px;
}

.stars i {
	color: var(--warning);
	font-size: 16px;
}

.testimonial-card p {
	margin-top: 0;
	font-size: 16px;
	line-height: 1.72;
	color: #5f6878;
}

.testimonials-slider .slider-actions {
	margin-top: 26px;
	gap: 8px;
}

.testimonials-control {
	width: 82px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.testimonials-control span {
	font-size: 28px;
	line-height: 1;
}

.testimonials-control:hover,
.testimonials-control:focus-visible {
	background: #032049;
	color: var(--white);
	transform: translateY(-1px);
}

.testimonials-control:disabled {
	opacity: 0.45;
	cursor: not-allowed;
	transform: none;
}

.article-card {
	border: 0;
	border-radius: 10px;
	overflow: hidden;
	background: var(--light-blue);
	min-height: 452px;
	display: flex;
	flex-direction: column;
}

.article-card img {
	width: calc(100% - 40px);
	margin: 20px 20px 0;
	height: 230px;
	border-radius: 10px;
	object-fit: cover;
}

.article-card-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
}

.article-tag {
	display: inline-flex;
	align-self: flex-start;
	align-items: center;
	height: 35px;
	padding: 0 13px;
	border-radius: 5px;
	background: var(--dark-blue);
	color: var(--white);
	font-family: "General Sans", sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 100%;
	letter-spacing: 0.015em;
	margin-bottom: 14px;
	max-width: 100px;
	justify-content: center;
}

.article-card h3 {
	margin: 0;
	font-size: 17px;
	font-weight: 500;
	line-height: 155%;
	letter-spacing: 0.015em;
	color: var(--dark-blue);
}

.article-card p {
	margin-top: 10px;
	font-size: 17px;
}

.article-meta {
	margin-top: auto;
	padding-top: 12px;
	display: flex;
	justify-content: flex-end;
	width: 100%;
}

.article-author {
	display: block;
	text-align: right;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.35;
	color: #6b7687;
	letter-spacing: 0.01em;
}

.contact-showcase-heading {
	margin-bottom: 44px;
}

.contact-showcase-heading .section-subtitle {
	max-width: 420px;
}

.contact-map-shell {
	border-radius: 10px;
	overflow: hidden;
	background: #dfe8f4;
	box-shadow: var(--card-shadow);
}

.contact-map-shell iframe {
	width: 100%;
	height: 227px;
	border: 0;
	display: block;
	filter: saturate(0.9);
}

.contact-detail-stack {
	margin-top: 18px;
	display: grid;
	gap: 16px;
}

.contact-detail-card {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 20px 22px;
	border-radius: 10px;
	background: var(--white);
	box-shadow: var(--card-shadow);
}

.contact-detail-icon {
	width: 46px;
	height: 46px;
	border-radius: 10px;
	flex: 0 0 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(180deg, #3a89ff 0%, #196ef5 100%);
	color: var(--white);
	font-size: 18px;
}

.contact-detail-card h3 {
	margin: 0 0 4px;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--dark-blue);
}

.contact-detail-card p {
	font-size: 15px;
	line-height: 1.6;
	color: #6d7788;
}

.contact-detail-card a {
	color: inherit;
}

.contact-detail-card a:hover {
	color: var(--mid-blue);
}

.contact-form-panel {
	height: 100%;
	padding: 24px;
	border: 1px solid #25B4F8;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.92);
	/* box-shadow: var(--card-shadow); */
}

.form-feedback {
	margin-bottom: 18px;
	padding: 14px 16px;
	border-radius: 12px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
}

.form-feedback-success {
	background: #e9f8ef;
	color: #16643a;
	border: 1px solid #bfe3cc;
}

.form-feedback-error {
	background: #fff0f0;
	color: #b33434;
	border: 1px solid #f0c4c4;
}

.contact-appointment-form .form-label {
	margin-bottom: 8px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	color: #2d3b52;
}

.required-mark {
	color: #d44343;
}

.contact-appointment-form .form-control,
.contact-appointment-form .form-select {
	min-height: 50px;
	border-radius: 10px;
	border: 1px solid #d8e0ec;
	background: #fbfcfe;
	padding: 12px 14px;
	font-size: 14px;
	color: #4b5970;
	box-shadow: none;
}

.contact-appointment-form .form-control::placeholder {
	color: #a0acbd;
}

.contact-appointment-form .form-control:focus,
.contact-appointment-form .form-select:focus {
	border-color: rgba(19, 118, 248, 0.65);
	box-shadow: 0 0 0 0.2rem rgba(19, 118, 248, 0.12);
}

.contact-appointment-form .form-control.is-invalid,
.contact-appointment-form .form-select.is-invalid {
	border-color: #dc5a5a;
	background-image: none;
}

.contact-appointment-form .form-control.is-invalid:focus,
.contact-appointment-form .form-select.is-invalid:focus {
	border-color: #dc5a5a;
	box-shadow: 0 0 0 0.2rem rgba(220, 90, 90, 0.14);
}

.contact-appointment-form textarea.form-control {
	min-height: 223px;
	resize: vertical;
}

.field-error {
	display: block;
	margin-top: 7px;
	font-size: 13px;
	line-height: 1.4;
	color: #c13d3d;
}

.contact-submit-btn {
	min-width: 190px;
}

.contact-page {
	padding-bottom: 56px;
}

.contact-page-hero {
	padding: 58px 0 44px;
}

.contact-page-heading {
	max-width: 780px;
	margin: 0 auto;
}

.contact-page-title {
	margin: 0;
	font-weight: 600;
	font-size: clamp(46px, 6vw, 64px);
	line-height: 1.08;
	letter-spacing: -0.04em;
	color: var(--dark-blue);
}

.contact-page-heading .section-subtitle {
	max-width: 560px;
	margin-top: 28px;
	font-size: 18px;
	line-height: 1.6;
	color: #667284;
}

.contact-page-grid {
	margin-top: 56px;
}

.contact-page-map-card {
	border-radius: 18px;
}

.contact-page-map-shell {
	overflow: hidden;
	border-radius: 16px;
	background: #dfe8f4;
	box-shadow: 0 18px 35px rgba(17, 37, 63, 0.08);
}

.contact-page-map-shell iframe {
	width: 100%;
	height: 288px;
	border: 0;
	display: block;
}

.contact-page-detail-list {
	margin-top: 20px;
	display: grid;
	gap: 20px;
}

.contact-page-detail-card {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 22px 24px;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 16px 32px rgba(17, 37, 63, 0.08);
}

.contact-page-detail-icon {
	width: 54px;
	height: 54px;
	border-radius: 50%;
	flex: 0 0 54px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(180deg, #2f84ff 0%, #1d6ff1 100%);
	color: var(--white);
	font-size: 24px;
	box-shadow: 0 14px 24px rgba(19, 118, 248, 0.24);
}

.contact-page-detail-copy h2 {
	margin: 0 0 6px;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--dark-blue);
}

.contact-page-detail-copy p {
	font-size: 15px;
	line-height: 1.55;
	color: #627084;
}

.contact-page-detail-copy p+p {
	margin-top: 2px;
}

.contact-page-detail-copy a {
	color: inherit;
}

.contact-page-detail-copy a:hover {
	color: var(--mid-blue);
}

.contact-page-form-card {
	height: 100%;
	padding: 38px 40px;
	border: 1.5px solid rgba(37, 180, 248, 0.95);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.76);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
}

.contact-page-form .form-label {
	margin-bottom: 10px;
	font-size: 16px;
	font-weight: 500;
	color: #39485d;
}

.contact-page-form .form-control {
	min-height: 54px;
	padding: 14px 16px;
	border-radius: 12px;
	border-color: #cfd7e3;
	background: rgba(255, 255, 255, 0.9);
	font-size: 15px;
	color: #556274;
}

.contact-page-form textarea.form-control {
	min-height: 184px;
}

.contact-page-form .form-control::placeholder {
	color: #a6b0bd;
}

.contact-page-form-card .form-feedback {
	margin-bottom: 24px;
}

.contact-page-form .contact-submit-btn {
	min-width: 226px;
	padding: 15px 28px;
	border-radius: 12px;
}

.contact-page-welcome {
	padding: 112px 0 22px;
}

.contact-page-welcome-heading {
	max-width: 860px;
	margin: 0 auto 44px;
}

.contact-page-welcome .section-title {
	font-size: clamp(40px, 5vw, 58px);
	line-height: 1.16;
	letter-spacing: -0.04em;
	text-transform: none;
}

.contact-page-welcome .section-subtitle {
	max-width: 760px;
	margin-top: 22px;
	font-size: 18px;
	line-height: 1.6;
	color: #667284;
}

.contact-page-welcome-media {
	max-width: 1120px;
	border-radius: 16px;
	box-shadow: 0 20px 40px rgba(17, 37, 63, 0.1);
}

.contact-page-welcome-media .welcome-video-image,
.contact-page-welcome-media .welcome-inline-player {
	border-radius: 16px;
}

.faq-wrap {
	max-width: 630px;
}

.custom-accordion .accordion-item {
	border: 0;
	border-radius: 10px;
	margin-bottom: 12px;
	overflow: hidden;
}

.custom-accordion .accordion-button {
	font-family: "General Sans", sans-serif;
	font-weight: 500;
	font-size: 17px;
	line-height: 155%;
	letter-spacing: 0.015em;
	color: var(--dark-blue);
	padding: 21px 30px;
}

.custom-accordion .accordion-button:not(.collapsed) {
	color: var(--white);
	background: var(--mid-blue);
	box-shadow: none;
}

.custom-accordion .accordion-button:focus {
	box-shadow: none;
}

.custom-accordion .accordion-body {
	font-size: 17px;
	line-height: 155%;
	letter-spacing: 0.015em;
}

.cta-banner {
	background: var(--dark-blue);
	border-radius: 10px;
	padding: 44px;
	color: var(--white);
}

.cta-banner h2 {
	margin: 0;
	font-size: clamp(34px, 4vw, 42px);
	line-height: 125%;
	text-transform: capitalize;
}

.cta-banner p {
	margin-top: 20px;
	max-width: 504px;
	color: var(--white);
}

.blogs-page {
	padding-bottom: 82px;
}

.blogs-page-hero {
	padding: 38px 0 30px;
}

.blogs-page-heading {
	max-width: 700px;
	margin: 0 auto;
}

.blogs-page-title {
	font-size: clamp(44px, 5vw, 56px);
	line-height: 1.06;
	letter-spacing: -0.04em;
	text-transform: none;
}

.blogs-page-heading .section-subtitle {
	max-width: 520px;
	margin-top: 22px;
	font-size: 17px;
	line-height: 1.65;
	color: #677487;
}

.blogs-page-featured {
	padding: 32px 0 62px;
}

.blogs-featured-shell {
	padding-left: clamp(40px, 4.8vw, 66px);
	padding-right: 0;
}

.blogs-featured-slider {
	--featured-gap: 20px;
	--featured-card-width: 413px;
	--featured-card-height: 497px;
	--featured-image-width: 373px;
	--featured-image-height: 290px;
	width: 100%;
	max-width: none;
	margin: 0;
}

.blogs-featured-viewport {
	overflow: hidden;
}

.blogs-featured-track {
	display: flex;
	gap: var(--featured-gap);
	transition: transform 0.45s ease;
	will-change: transform;
}

.blogs-featured-slide {
	flex: 0 0 var(--featured-card-width);
	max-width: var(--featured-card-width);
}

.blogs-featured-card {
	height: var(--featured-card-height);
	min-height: var(--featured-card-height);
	border-radius: 10px;
	box-shadow: none;
}

.blogs-featured-card img {
	width: var(--featured-image-width);
	height: var(--featured-image-height);
	margin: 20px auto 0;
	border-radius: 8px;
	display: block;
}

.blogs-featured-meta {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 10px;
}

.blogs-featured-meta .article-author {
	flex-shrink: 0;
	padding-top: 6px;
	white-space: nowrap;
}


.blogs-featured-card h2 {
	margin: 0;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.45;
	color: var(--dark-blue);
}

.blogs-featured-actions {
	margin-top: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

.blogs-featured-control {
	width: 96px;
	height: 44px;
	border: 0;
	border-radius: 0;
	background: var(--dark-blue);
	color: var(--white);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	transition: background-color 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
}

.blogs-featured-control:hover:not(:disabled) {
	background: #0b2348;
	transform: translateY(-1px);
}

.blogs-featured-control:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.blogs-page-articles {
	padding: 6px 0 76px;
}

.blogs-page-articles-head {
	margin-bottom: 26px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.blogs-page-articles-head .section-title {
	font-size: clamp(36px, 4vw, 48px);
	line-height: 1.08;
	text-transform: none;
}

.blogs-sort-wrap {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.blogs-sort-wrap::after {
	content: "\F282";
	font-family: "bootstrap-icons";
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 13px;
	color: #34465f;
	pointer-events: none;
}

.blogs-sort-select {
	min-width: 138px;
	padding: 11px 38px 11px 14px;
	border: 1px solid #d5dce6;
	border-radius: 4px;
	background: var(--white);
	color: var(--dark-blue);
	font-size: 14px;
	line-height: 1.4;
	appearance: none;
	box-shadow: none;
}

.blogs-sort-select:focus {
	outline: none;
	border-color: rgba(19, 118, 248, 0.7);
	box-shadow: 0 0 0 0.2rem rgba(19, 118, 248, 0.12);
}

.blogs-articles-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

.blogs-grid-card {
	min-height: 0;
	border-radius: 8px;
}

.blogs-grid-card h3 {
	font-size: 21px;
	line-height: 1.45;
}

.blogs-grid-card .article-meta {
	padding-top: 10px;
}

.blogs-page-welcome {
	padding: 10px 0 56px;
}

.blogs-page-welcome-title {
	font-size: clamp(38px, 5vw, 56px);
	line-height: 1.15;
	text-transform: none;
}

.blogs-page-welcome-media {
	max-width: 1120px;
}

.blogs-page-cta-wrap {
	padding: 0 0 28px;
}

.about-page {
	padding: 28px 0 28px;
}

.about-page-heading {
	margin-bottom: 52px;
}

.about-page-title {
	font-size: clamp(44px, 5vw, 58px);
	line-height: 1.04;
	letter-spacing: -0.03em;
}

.about-page-title .title-brush::before {
	left: 8px;
	bottom: -4px;
	width: 58%;
	height: 3px;
}

.about-page-title .title-brush::after {
	left: 8px;
	bottom: -7px;
	height: 3px;
}

.about-mission-row {
	margin-bottom: 102px;
}

.about-block-title {
	margin: 0 0 22px;
	font-size: clamp(34px, 4vw, 44px);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -0.02em;
	color: var(--dark-blue);
}

.about-copy-body {
	max-width: 740px;
	font-size: 16px;
	line-height: 1.78;
	color: #5f6878;
}

.about-copy-body+.about-copy-body {
	margin-top: 16px;
}

.about-copy-emphasis {
	margin: 24px 0 16px;
	max-width: 760px;
	font-size: 26px;
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: -0.01em;
	color: var(--dark-blue);
}

.about-image-panel,
.about-specialist-photo,
.about-technology-image {
	border-radius: 10px;
	overflow: hidden;
	background: #e7edf3;
}

.about-image-panel img,
.about-specialist-photo img,
.about-technology-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.about-image-panel img {
	aspect-ratio: 0.86;
}

.about-section-heading {
	margin-bottom: 46px;
}

.about-specialist-list {
	display: grid;
	gap: 42px;
}

.about-specialist-card {
	padding: 0;
}

.about-specialist-card:not(:last-child) {
	padding-bottom: 42px;
	border-bottom: 1px solid #d9dee6;
}

.about-specialist-photo {
	max-width: 280px;
}

.about-specialist-photo img {
	aspect-ratio: 0.84;
}

.about-specialist-content h3 {
	margin: 0;
	font-size: clamp(28px, 3vw, 34px);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--dark-blue);
}

.about-specialist-role {
	margin: 10px 0 18px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	color: #616d81;
}

.about-inline-btn {
	margin-top: 22px;
	padding: 12px 22px;
	border-radius: 8px;
	font-size: 14px;
}

/* Latest Technology section temporarily disabled.
.about-technology-section {
	padding-top: 104px;
}

.about-technology-row {
	margin-bottom: 64px;
}

.about-technology-image img {
	aspect-ratio: 1.25;
}

.about-technology-copy h3 {
	margin: 0 0 18px;
	max-width: 760px;
	font-size: clamp(30px, 3.2vw, 38px);
	font-weight: 600;
	line-height: 1.18;
	letter-spacing: -0.02em;
	color: var(--dark-blue);
}

.about-highlights-strip {
	padding: 28px;
	border-radius: 10px;
	background: #001a49;
}

.about-highlight-card {
	background: var(--white);
	border-radius: 10px;
	padding: 28px 24px 24px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.about-highlight-icon {
	width: 64px;
	height: 64px;
	margin-bottom: 20px;
	box-shadow: none;
}

.about-highlight-icon img {
	width: 38px;
	height: 38px;
	object-fit: contain;
}

.about-highlight-card h3 {
	margin: 0;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.25;
	color: var(--dark-blue);
}

.about-highlight-card p {
	margin-top: 14px;
	font-size: 16px;
	line-height: 1.6;
	color: #5f6878;
}

.about-highlight-link {
	margin-top: auto;
	padding-top: 22px;
}
*/

.about-welcome-section {
	padding-top: 50px;
}

.about-welcome-title {
	line-height: 1.12;
}

.about-welcome-title .title-brush::before {
	left: 8px;
	bottom: -4px;
	width: 55%;
	height: 3px;
}

.about-welcome-title .title-brush::after {
	left: 8px;
	bottom: -6px;
	height: 3px;
}

.about-welcome-media {
	margin-top: 18px;
	box-shadow: none;
}

.about-welcome-section .welcome-video-image {
	aspect-ratio: 16/7.3;
}

.about-welcome-section .welcome-play-icon {
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.32);
	border: 2px solid rgba(255, 255, 255, 0.88);
	box-shadow: none;
}

.about-welcome-section .welcome-play-icon i {
	font-size: 30px;
}

.about-watch-btn {
	margin-top: 26px;
	min-width: 132px;
	padding: 11px 20px;
	border-radius: 6px;
	font-size: 15px;
}

.footer-panel {
	width: min(90%, 1340px);
	margin: 0 auto;
	padding: 26px 48px 18px;
}

.footer-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
}

.footer-logo {
	display: inline-flex;
	align-items: center;
}

.footer-logo img {
	width: 190px;
	height: auto;
	display: block;
}

.footer-nav {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 32px;
	margin-top: 3px;
}

.footer-nav a {
	color: #1d2d45;
	font-family: "General Sans", sans-serif;
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: 0;
}

.footer-nav a:hover {
	color: var(--mid-blue);
}

.footer-divider {
	margin-top: 22px;
	border-top: 2px solid #5c6678;
}

.footer-bottom {
	margin-top: 20px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.footer-bottom p {
	font-family: "General Sans", sans-serif;
	font-size: 14px;
	line-height: 1.25;
	letter-spacing: 0;
	color: #24354b;
	margin-right: 14px;
	white-space: nowrap;
}

.footer-bottom p a {
	color: #24354b;
	text-decoration: underline;
}

.footer-bottom p a:hover {
	color: var(--mid-blue);
}

.social-links {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-shrink: 0;
}

.social-links a {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--dark-blue);
	color: var(--white);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	line-height: 1;
}

.social-links a:hover {
	background: var(--mid-blue);
	color: var(--white);
}

@keyframes floating-contact-ring-blink {
	0%,
	100% {
		opacity: 0;
		transform: scale(0.82);
	}

	18% {
		opacity: 0;
		transform: scale(0.82);
	}

	42% {
		opacity: 0.42;
		transform: scale(1);
	}

	70% {
		opacity: 0;
		transform: scale(1.24);
	}
}

@keyframes floating-contact-icon-blink {
	0%,
	18%,
	32%,
	52%,
	100% {
		opacity: 1;
	}

	25%,
	45% {
		opacity: 0.42;
	}
}

.floating-contact-widget {
	position: fixed;
	right: 30px;
	bottom: 20px;
	z-index: 1080;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 14px;
}

.floating-whatsapp-panel {
	width: min(320px, calc(100vw - 32px));
	border-radius: 10px;
	overflow: hidden;
	background: #ece8de;
	box-shadow: 0 22px 40px rgba(1, 22, 50, 0.22);
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px) scale(0.96);
	transform-origin: bottom right;
	pointer-events: none;
	transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}

.floating-contact-widget.is-whatsapp-open .floating-whatsapp-panel {
	opacity: 1;
	visibility: visible;
	transform: translateY(0) scale(1);
	pointer-events: auto;
}

.floating-whatsapp-panel-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	background: linear-gradient(135deg, #3aa76d 0%, #44b77a 100%);
	color: var(--white);
}

.floating-whatsapp-panel-title {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.3;
}

.floating-whatsapp-panel-title i {
	font-size: 24px;
}

.floating-whatsapp-panel-close {
	border: 0;
	padding: 0;
	background: transparent;
	color: var(--white);
	font-size: 22px;
	line-height: 1;
}

.floating-whatsapp-panel-body {
	min-height: 220px;
	padding: 20px 16px;
	background:
		radial-gradient(circle at 1px 1px, rgba(150, 150, 150, 0.08) 1px, transparent 0) 0 0/18px 18px,
		#ece8de;
}

.floating-whatsapp-bubble {
	display: inline-flex;
	max-width: 82%;
	padding: 12px 14px;
	border-radius: 0 12px 12px 12px;
	background: var(--white);
	box-shadow: 0 8px 18px rgba(1, 22, 50, 0.08);
}

.floating-whatsapp-bubble strong {
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	color: #29405a;
}

.floating-whatsapp-form {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 12px 16px;
	background: #f7f5f1;
}

.floating-whatsapp-input {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	border-radius: 12px;
	padding: 12px 16px;
	font-size: 15px;
	line-height: 1.4;
	color: var(--dark-blue);
	background: var(--white);
	box-shadow: inset 0 0 0 1px rgba(1, 22, 50, 0.08);
}

.floating-whatsapp-input:focus {
	outline: none;
	box-shadow: inset 0 0 0 2px rgba(19, 118, 248, 0.22);
}

.floating-whatsapp-send {
	flex: 0 0 auto;
	width: 50px;
	height: 50px;
	border: 0;
	border-radius: 50%;
	background: #2dc957;
	color: var(--white);
	font-size: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 10px 20px rgba(45, 201, 87, 0.24);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.floating-whatsapp-send:hover,
.floating-whatsapp-send:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 14px 24px rgba(45, 201, 87, 0.28);
	background: #27b84e;
}

.floating-contact-actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px) scale(0.92);
	transform-origin: bottom center;
	pointer-events: none;
	transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}

.floating-contact-widget.is-open .floating-contact-actions {
	opacity: 1;
	visibility: visible;
	transform: translateY(0) scale(1);
	pointer-events: auto;
}

.floating-contact-toggle,
.floating-contact-action {
	width: 60px;
	height: 60px;
	border: 0;
	border-radius: 50%;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 18px 32px rgba(1, 22, 50, 0.18);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.floating-contact-toggle::before,
.floating-contact-action::before {
	content: attr(data-floating-label);
	position: absolute;
	right: calc(100% + 12px);
	top: 50%;
	transform: translateY(-50%) translateX(8px);
	padding: 8px 12px;
	border-radius: 10px;
	background: rgba(1, 22, 50, 0.92);
	color: var(--white);
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	box-shadow: 0 10px 22px rgba(1, 22, 50, 0.18);
	transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
}

.floating-contact-toggle:hover,
.floating-contact-toggle:focus-visible,
.floating-contact-action:hover,
.floating-contact-action:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 20px 34px rgba(1, 22, 50, 0.24);
}

.floating-contact-toggle:hover::before,
.floating-contact-toggle:focus-visible::before,
.floating-contact-action:hover::before,
.floating-contact-action:focus-visible::before {
	opacity: 1;
	visibility: visible;
	transform: translateY(-50%) translateX(0);
}

.floating-contact-toggle {
	position: relative;
	background: linear-gradient(135deg, #1376f8 0%, #25b4f8 100%);
	color: var(--white);
	isolation: isolate;
	overflow: visible;
}

.floating-contact-toggle::after {
	content: "";
	position: absolute;
	inset: -8px;
	border-radius: 50%;
	border: 2px solid rgba(37, 180, 248, 0.34);
	opacity: 0;
	transform: scale(0.82);
	pointer-events: none;
}

.floating-contact-toggle-icon {
	position: absolute;
	font-size: 24px;
	transition: opacity 0.18s ease, transform 0.18s ease;
}

.floating-contact-widget:not(.is-open) .floating-contact-toggle::after {
	animation: floating-contact-ring-blink 2.2s ease-out infinite;
}

.floating-contact-widget:not(.is-open) .floating-contact-toggle-icon-chat {
	animation: floating-contact-icon-blink 2.2s ease-in-out infinite;
}

.floating-contact-toggle-icon-close {
	opacity: 0;
	transform: scale(0.7) rotate(-14deg);
}

.floating-contact-widget.is-open .floating-contact-toggle-icon-chat {
	opacity: 0;
	transform: scale(0.7) rotate(14deg);
}

.floating-contact-widget.is-open .floating-contact-toggle-icon-close {
	opacity: 1;
	transform: scale(1) rotate(0deg);
}

.floating-contact-action {
	font-size: 24px;
	color: var(--white);
	text-decoration: none;
	cursor: pointer;
}

.floating-contact-action-whatsapp {
	background: #25d366;
}

.floating-contact-action-call {
	background: #0f67da;
}

.floating-contact-action:hover,
.floating-contact-action:focus-visible {
	color: var(--white);
}

@media (prefers-reduced-motion: reduce) {
	.floating-contact-widget:not(.is-open) .floating-contact-toggle::after,
	.floating-contact-widget:not(.is-open) .floating-contact-toggle-icon-chat {
		animation: none;
	}
}

@media (max-width: 1199.98px) {
	.section-space {
		padding: 74px 0;
	}

	.section-space-sm {
		padding: 58px 0;
	}

	.diagnosis-layout {
		grid-template-columns: minmax(0, 1fr) minmax(280px, 430px) minmax(0, 1fr);
		gap: 20px;
	}

	.diagnosis-feature-copy {
		max-width: 280px;
	}

	.diagnosis-feature h3 {
		font-size: 24px;
	}

	.service-card {
		min-height: 260px;
	}

	.article-card {
		min-height: 410px;
	}

	.article-card img {
		height: 200px;
	}

	.service-detail-hero {
		padding: 28px 0 62px;
	}

	.service-detail-heading {
		margin-bottom: 40px;
	}

	.service-detail-appointment-wrap .services-page-appointment {
		padding: 0 24px;
	}

	.services-page-appointment {
		padding: 0 24px;
	}

	.services-page-cta img {
		max-width: 280px;
		height: 228px;
	}

	.about-page {
		padding-bottom: 78px;
	}

	.about-specialist-photo {
		max-width: 100%;
	}
}

@media (max-width: 991.98px) {

	.diagnosis-section {
		padding-top: 62px;
		padding-bottom: 72px;
	}

	.diagnosis-section-head {
		margin-bottom: 38px;
	}

	.diagnosis-layout {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.diagnosis-visual {
		order: -1;
	}

	.diagnosis-orbit {
		width: min(100%, 440px);
	}

	.diagnosis-features {
		gap: 24px;
	}

	.diagnosis-feature,
	.diagnosis-feature-left,
	.diagnosis-feature-right {
		justify-content: flex-start;
		text-align: left;
	}

	.diagnosis-feature-left .diagnosis-feature-copy {
		order: 2;
	}

	.diagnosis-feature-left .diagnosis-feature-icon {
		order: 1;
	}

	.service-detail-hero {
		padding: 24px 0 54px;
	}

	.service-detail-heading {
		margin-bottom: 32px;
	}

	.service-detail-copy {
		padding-top: 18px;
	}

	.service-detail-copy h2 {
		font-size: 30px;
	}

	.service-detail-sidebar {
		position: static;
	}

	.service-detail-appointment-wrap .services-page-appointment {
		padding: 0;
	}

	.service-detail-appointment-wrap .services-appointment-card {
		max-width: none;
		margin-left: 0;
	}

	.services-page-hero {
		padding-top: 34px;
		padding-bottom: 62px;
	}

	.services-page-heading {
		margin-bottom: 34px;
	}

	.services-page-card {
		min-height: 0;
	}

	.services-page-appointment {
		padding: 0;
	}

	.services-page-copy {
		max-width: none;
	}

	.services-page-copy p {
		max-width: none;
	}

	.services-appointment-card {
		max-width: none;
		margin-left: 0;
	}

	.services-page-welcome {
		padding: 62px 0 72px;
	}

	.services-specialists-block {
		padding: 62px 0 72px;
	}

	.services-page-cta-wrap {
		padding: 62px 0 44px;
	}

	.services-page-cta img {
		max-width: 100%;
	}

	.welcome-video-section .section-title,
	.welcome-video-subtitle {
		max-width: 640px;
	}

	.welcome-play-icon {
		width: 54px;
		height: 54px;
	}

	.welcome-play-icon i {
		font-size: 28px;
	}

	.navbar {
		min-height: 82px;
		padding: 0.7rem 0.9rem;
	}

	.services-strip {
		padding: 24px;
	}

	.stack-image::after {
		right: -12px;
		top: -10px;
	}

	.specialists-slider {
		max-width: 100%;
	}

	.specialists-slider-shell {
		padding-left: 18px;
		padding-right: 0;
	}

	.doctor-card {
		height: 300px;
	}

	.doctor-info h3 {
		font-size: 30px;
	}

	.specialists-block .specialists-control {
		width: 72px;
		height: 40px;
	}

	.custom-control {
		width: 72px;
		height: 40px;
	}

	.testimonials-slider-shell {
		padding-left: 18px;
		padding-right: 18px;
	}

	.testimonial-card {
		min-height: 250px;
		padding: 20px;
	}

	.article-card {
		min-height: 360px;
	}

	.article-card img {
		width: calc(100% - 28px);
		margin: 14px 14px 0;
		height: 170px;
	}

	.contact-showcase-heading {
		margin-bottom: 30px;
	}

	.contact-form-panel {
		padding: 22px;
	}

	.cta-banner {
		padding: 28px;
	}

	.about-page {
		padding-top: 18px;
		padding-bottom: 64px;
	}

	.about-page-heading {
		margin-bottom: 34px;
	}

	.about-mission-row {
		margin-bottom: 74px;
	}

	.about-copy-emphasis {
		font-size: 22px;
	}

	.about-specialist-list {
		gap: 30px;
	}

	.about-specialist-photo {
		max-width: 320px;
		margin: 0 auto;
	}

	.about-specialist-content {
		text-align: center;
	}

	/* Latest Technology section temporarily disabled.
	.about-technology-section {
		padding-top: 74px;
	}

	.about-technology-row {
		margin-bottom: 44px;
	}

	.about-highlights-strip {
		padding: 22px;
	}
	*/

	.about-welcome-section {
		padding-top: 74px;
	}

	.footer-panel {
		width: min(94%, 1280px);
		padding: 24px 20px 16px;
	}

	.footer-top {
		flex-direction: column;
		align-items: flex-start;
	}

	.footer-nav {
		gap: 18px;
		margin-top: 0;
	}

	.footer-bottom {
		flex-direction: column;
		align-items: flex-start;
	}

	.footer-bottom p {
		font-size: 10px;
		margin-right: 0;
		white-space: normal;
	}
}

@media (max-width: 575.98px) {
	.service-detail-hero {
		padding-top: 18px;
		padding-bottom: 42px;
	}

	.service-detail-title {
		font-size: 40px;
	}

	.service-detail-copy h2 {
		font-size: 26px;
	}

	.service-detail-sidebar-card,
	.service-detail-contact-card {
		padding: 22px 18px;
	}

	.service-detail-service-pill {
		padding: 12px 14px;
		font-size: 15px;
	}

	.service-detail-contact-copy,
	.service-detail-contact-list li,
	.service-detail-advantages-list li {
		font-size: 15px;
	}

	.service-detail-appointment-wrap .services-appointment-card {
		padding: 22px 18px 24px;
	}

	.services-page-hero {
		padding-top: 24px;
		padding-bottom: 44px;
	}

	.services-page-title {
		font-size: 40px;
	}

	.services-page-grid {
		--bs-gutter-x: 14px;
		--bs-gutter-y: 14px;
	}

	.services-page-card {
		padding: 18px 18px 20px;
		min-height: 0;
	}

	.services-page-card h2 {
		font-size: 22px;
	}

	.services-page-appointment-wrap {
		padding: 34px 0 38px;
	}

	.services-page-appointment {
		padding: 0;
	}

	.services-page-appointment-title {
		font-size: 34px;
	}

	.services-page-copy p {
		font-size: 15px;
	}

	.services-appointment-card {
		padding: 22px 18px 20px;
	}

	.services-appointment-card h3 {
		font-size: 24px;
		margin-bottom: 18px;
	}

	.services-compact-submit {
		width: 100%;
	}

	.services-specialists-block::before,
	.services-specialists-block::after {
		display: none;
	}

	.services-specialists-block {
		padding: 48px 0 54px;
	}

	.services-doctor-card {
		min-height: 320px;
	}

	.services-page-welcome {
		padding: 48px 0 56px;
	}

	.services-page-cta-wrap {
		padding: 46px 0 34px;
	}


	.contact-map-shell iframe {
		height: 230px;
	}

	.contact-detail-card {
		padding: 18px;
	}

	.contact-detail-card h3 {
		font-size: 18px;
	}

	.contact-form-panel {
		padding: 18px;
	}

	.contact-submit-btn {
		width: 100%;
	}

	.section-space {
		padding: 42px 0;
	}

	.section-space-sm {
		padding: 34px 0;
	}

	.diagnosis-section {
		padding-top: 42px;
		padding-bottom: 48px;
	}

	.diagnosis-section-head {
		margin-bottom: 28px;
	}

	.diagnosis-section-title {
		font-size: 34px;
	}

	.diagnosis-feature {
		gap: 14px;
		align-items: flex-start;
	}

	.diagnosis-feature h3 {
		font-size: 22px;
	}

	.diagnosis-feature p {
		font-size: 15px;
		line-height: 1.6;
	}

	.diagnosis-feature-icon {
		flex-basis: 58px;
		width: 58px;
		height: 58px;
		border-radius: 18px;
		font-size: 28px;
	}

	.diagnosis-orbit {
		width: min(100%, 320px);
	}

	.diagnosis-orbit::before {
		inset: 12px;
	}

	.diagnosis-orbit::after {
		inset: 28px;
		box-shadow: inset 0 0 0 10px rgba(255, 255, 255, 0.58), 0 18px 34px rgba(19, 118, 248, 0.08);
	}

	.diagnosis-orbit-dot {
		width: 12px;
		height: 12px;
		margin-top: -6px;
		margin-left: -6px;
		box-shadow: 0 0 0 7px rgba(19, 118, 248, 0.08);
	}

	.section-space-va {
		padding: 30px 16px;
	}

	.section-space .row.g-5,
	.section-space-sm .row.g-5 {
		--bs-gutter-y: 1.5rem;
	}

	p {
		font-size: 16px;
	}

	.services-strip {
		padding: 16px;
	}

	.services-strip .row {
		--bs-gutter-x: 12px;
		--bs-gutter-y: 12px;
	}

	.service-card {
		min-height: 0;
		padding: 16px 18px 18px;
	}

	.service-icon {
		width: 46px;
		height: 46px;
		margin-bottom: 16px;
		font-size: 24px;
	}

	.service-card p {
		font-size: 15px;
		margin-top: 10px;
	}

	.text-link {
		padding-top: 16px;
		gap: 10px;
		font-size: 15px;
	}

	.stack-image::after {
		display: none;
	}

	.value-block {
		padding: 18px 14px;
		border-radius: 10px;
	}

	.value-points {
		margin-top: 22px;
		gap: 16px;
	}

	.value-icon {
		width: 42px;
		height: 42px;
		flex: 0 0 42px;
	}

	.value-point h3 {
		font-size: 16px;
	}

	.value-point p {
		font-size: 15px;
	}

	.welcome-video-image {
		aspect-ratio: 16/10;
	}

	.welcome-inline-player {
		aspect-ratio: 16/10;
	}

	.welcome-play-icon {
		width: 48px;
		height: 48px;
	}

	.welcome-play-icon i {
		font-size: 24px;
		margin-left: 2px;
	}

	.welcome-playlist-btn {
		width: auto;
	}

	.btn-brand,
	.btn-sm-custom {
		width: 100%;
		text-align: center;
	}

	.section-title {
		font-size: 30px;
	}

	.service-card h3 {
		font-size: 22px;
	}

	.doctor-card {
		height: 280px;
	}

	.specialists-slider-shell {
		padding-left: 14px;
		padding-right: 14px;
	}

	.testimonials-slider-shell {
		padding-left: 14px;
		padding-right: 14px;
	}

	.doctor-info {
		left: 12px;
		right: 12px;
		bottom: 12px;
		padding: 10px 12px 11px;
	}

	.doctor-info h3 {
		font-size: 24px;
	}

	.doctor-info p {
		margin-top: 6px;
		font-size: 14px;
	}

	.specialists-block .specialists-control {
		width: 64px;
		height: 38px;
	}

	.specialists-block .specialists-control span {
		font-size: 20px;
	}

	.testimonial-author h3 {
		font-size: 17px;
	}

	.welcome-video-section .section-title,
	.welcome-video-subtitle {
		max-width: none;
	}

	.patients-say-head {
		margin-bottom: 28px;
	}

	.patients-say-title {
		font-size: 30px;
		line-height: 1.16;
	}

	.patients-say-head .section-subtitle {
		max-width: 320px;
		font-size: 15px;
	}

	.testimonial-card {
		min-height: 0;
		padding: 18px 16px;
	}

	.testimonial-card-head {
		gap: 10px;
		margin-bottom: 12px;
	}

	.testimonial-avatar {
		width: 44px;
		height: 44px;
	}

	.testimonial-author h3 {
		font-size: 16px;
	}

	.stars {
		margin-top: 4px;
	}

	.stars i {
		font-size: 13px;
	}

	.testimonial-card p {
		font-size: 15px;
		line-height: 1.6;
	}

	.testimonials-slider .slider-actions {
		margin-top: 20px;
	}

	.testimonials-control {
		width: 56px;
		height: 34px;
	}

	.testimonials-control span {
		font-size: 20px;
	}

	.article-card {
		min-height: 0;
	}

	.article-card img {
		height: 160px;
	}

	.cta-banner h2 {
		font-size: 30px;
	}

	.about-page {
		padding-top: 10px;
		padding-bottom: 44px;
	}

	.about-page-title {
		font-size: 40px;
	}

	.about-block-title {
		font-size: 30px;
	}

	.about-copy-body {
		font-size: 15px;
		line-height: 1.7;
	}

	.about-copy-emphasis {
		font-size: 20px;
	}

	.about-mission-row {
		margin-bottom: 52px;
	}

	.about-section-heading {
		margin-bottom: 28px;
	}

	.about-specialist-list {
		gap: 24px;
	}

	.about-specialist-card:not(:last-child) {
		padding-bottom: 24px;
	}

	.about-specialist-content h3 {
		font-size: 26px;
	}

	.about-inline-btn {
		width: 100%;
	}

	/* Latest Technology section temporarily disabled.
	.about-technology-section {
		padding-top: 52px;
	}

	.about-technology-copy h3 {
		font-size: 27px;
	}

	.about-highlights-strip {
		padding: 16px;
	}

	.about-highlight-card {
		padding: 22px 18px 20px;
	}

	.about-highlight-card h3 {
		font-size: 22px;
	}
	*/

	.about-welcome-section {
		padding-top: 54px;
	}

	.about-watch-btn {
		width: auto;
	}

	.site-footer {
		margin-top: 0;
		padding-bottom: 20px;
	}

	.footer-panel {
		width: min(96%, 1280px);
		padding: 20px 12px 14px;
	}

	.footer-nav {
		flex-wrap: wrap;
		gap: 16px;
	}

	.footer-divider {
		margin-top: 16px;
	}

	.floating-contact-widget {
		right: 16px;
		bottom: 16px;
		gap: 10px;
		z-index: 1;
	}

	.floating-whatsapp-panel {
		width: min(320px, calc(100vw - 24px));
	}

	.floating-contact-toggle,
	.floating-contact-action {
		width: 54px;
		height: 54px;
	}

	.floating-contact-toggle-icon,
	.floating-contact-action {
		font-size: 22px;
	}
}

@media (max-width: 991.98px) {
	.contact-page-hero {
		padding: 38px 0 32px;
	}

	.contact-page-grid {
		margin-top: 40px;
	}

	.contact-page-form-card {
		padding: 28px;
	}

	.contact-page-welcome {
		padding-top: 82px;
	}

	.blogs-page-featured {
		padding-top: 22px;
	}

	.blogs-featured-shell {
		padding-left: 34px;
	}

	.blogs-featured-slider {
		--featured-card-width: 340px;
		--featured-card-height: 458px;
		--featured-image-width: 304px;
		--featured-image-height: 236px;
	}

	.blogs-page-articles {
		padding-bottom: 64px;
	}

	.blogs-articles-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.blogs-page-cta {
		padding: 26px;
	}

	.blogs-page-cta-media img {
		max-width: 100%;
		margin-left: 0;
	}
}

@media (max-width: 575.98px) {
	.contact-page {
		padding-bottom: 28px;
	}

	.contact-page-title {
		font-size: clamp(38px, 11vw, 52px);
	}

	.contact-page-heading .section-subtitle,
	.contact-page-welcome .section-subtitle {
		font-size: 16px;
	}

	.contact-page-map-shell iframe {
		height: 250px;
	}

	.contact-page-detail-card {
		padding: 18px;
		align-items: flex-start;
	}

	.contact-page-form-card {
		padding: 22px 18px;
	}

	.contact-page-form .contact-submit-btn {
		width: 100%;
		min-width: 0;
	}

	.contact-page-welcome {
		padding-top: 68px;
	}

	.contact-page-welcome-heading {
		margin-bottom: 28px;
	}

	.blogs-page {
		padding-bottom: 34px;
	}

	.blogs-page-hero {
		padding: 18px 0 20px;
	}

	.blogs-page-heading .section-subtitle {
		font-size: 15px;
	}

	.blogs-page-featured {
		padding-bottom: 42px;
	}

	.blogs-featured-shell {
		padding-left: 16px;
	}

	.blogs-featured-slider {
		--featured-gap: 12px;
		--featured-card-width: calc(100vw - 32px);
		--featured-card-height: auto;
		--featured-image-width: calc(100vw - 56px);
		--featured-image-height: 220px;
	}

	.blogs-featured-card img {
		height: 190px;
	}

	.blogs-featured-meta {
		align-items: flex-start;
		flex-direction: column;
	}

	.blogs-featured-actions {
		margin-top: 16px;
	}

	.blogs-page-articles {
		padding-bottom: 52px;
	}

	.blogs-page-articles-head {
		align-items: flex-start;
		flex-direction: column;
	}

	.blogs-sort-select {
		min-width: 150px;
	}

	.blogs-articles-grid {
		grid-template-columns: 1fr;
	}

	.blogs-page-welcome {
		padding-bottom: 44px;
	}

	.blogs-page-cta {
		padding: 20px 18px;
	}

	.blogs-page-cta h2 {
		font-size: 30px;
	}

	.blogs-page-cta-media img {
		height: 210px;
	}
}
