@import url("https://fonts.googleapis.com/css2?family=Oswald:wght@400&family=Quicksand:wght@500;600&family=Roboto:wght@300;700&display=swap");

/**
 * Elementor chrome fixes for *_new pages
 * (kit/frontend cascade otherwise resets buttons to gray).
 */

/*
 * Legacy column gaps — snapshots still wrap columns in .elementor-row.
 * Newer elementor-frontend.min.css only targets direct .elementor-column children,
 * so gaps collapse (e.g. Patient Testimonials hero images).
 * Mirrors Elementor frontend-legacy.min.css.
 */
.elementor-column-gap-narrow > .elementor-row > .elementor-column > .elementor-element-populated {
	padding: 5px;
}
.elementor-column-gap-default > .elementor-row > .elementor-column > .elementor-element-populated {
	padding: 10px;
}
.elementor-column-gap-extended > .elementor-row > .elementor-column > .elementor-element-populated {
	padding: 15px;
}
.elementor-column-gap-wide > .elementor-row > .elementor-column > .elementor-element-populated {
	padding: 20px;
}
.elementor-column-gap-wider > .elementor-row > .elementor-column > .elementor-element-populated {
	padding: 30px;
}

/* Brand teal buttons — match live Kirki/theme button color */
.elementor-widget-button .elementor-button,
.elementor-button {
	background-color: #0098b2;
	color: #ffffff;
	fill: #ffffff;
}

.elementor-widget-button .elementor-button:hover,
.elementor-widget-button .elementor-button:focus,
.elementor-button:hover,
.elementor-button:focus {
	background-color: #00778b;
	color: #ffffff;
	fill: #ffffff;
}

/* Blog hero - Theme Builder chrome for *_new posts + blog listing */
.rbd-blog-hero {
	position: relative;
	min-height: 655px;
	display: flex;
	align-items: center;
	background-color: #0c0708;
	overflow: hidden;
	margin: 0;
	padding: 0;
}

.rbd-blog-hero__bg {
	position: absolute;
	inset: 0;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	z-index: 0;
}

/*
 * Blog listing banner — ~3–4× header height (not the taller single-post hero).
 * Matches client reference crop: full-width, dentist on the right.
 */
.rbd-blog-hero--archive {
	min-height: 380px;
	height: 380px;
}

.rbd-blog-hero--archive .rbd-blog-hero__bg {
	background-position: center right;
}

.rbd-blog-hero--archive .rbd-blog-hero__inner {
	padding: 48px 50px 64px;
}

.rbd-blog-hero--archive .rbd-blog-hero__title {
	margin-bottom: 0;
}

/* Default banner when no featured image (dark radial from reference) */
.rbd-blog-hero--default,
.rbd-blog-hero__bg--default {
	background-color: #000000;
	background-image: radial-gradient(ellipse at center, #1a0d0d 0%, #0c0708 45%, #000000 100%);
}

.rbd-blog-hero--default .rbd-blog-hero__overlay {
	display: none;
}

.rbd-blog-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background-image: linear-gradient(180deg, rgba(37, 29, 28, 0.38) 43%, #251d1c 94%);
	opacity: 0.78;
	filter: brightness(112%) contrast(100%) saturate(200%);
	pointer-events: none;
}

/* Blog listing cards — elevated, brand-teal polish */
.elementor-posts .elementor-post-avatar,
.elementor-posts .elementor-post-info__item--type-comments {
	display: none !important;
}

/*
 * Elementor stores the posts image ratio in widget:after { content:"0.66" }
 * for its JS. Without Elementor runtime that number prints on the page.
 */
.elementor-widget-posts:after {
	content: none !important;
	display: none !important;
	speak: never;
}

.elementor-widget-posts.elementor-element-28bdec0,
.elementor-widget-posts {
	--grid-column-gap: 28px;
	--grid-row-gap: 36px;
}

.elementor-widget-posts .elementor-widget-container {
	padding-top: 8px;
	padding-bottom: 24px;
}

.elementor-posts-container.elementor-grid {
	display: grid;
	grid-column-gap: var(--grid-column-gap, 28px);
	grid-row-gap: var(--grid-row-gap, 36px);
	column-gap: var(--grid-column-gap, 28px);
	row-gap: var(--grid-row-gap, 36px);
	align-items: stretch;
}

.elementor-grid-3 .elementor-posts-container.elementor-grid {
	grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 1024px) {
	.elementor-grid-tablet-2 .elementor-posts-container.elementor-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.elementor-grid-mobile-1 .elementor-posts-container.elementor-grid {
		grid-template-columns: 1fr;
	}
}

.elementor-posts.elementor-posts--skin-classic .elementor-post {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 0;
	margin: 0;
	background: #ffffff;
	border: 1px solid rgba(0, 133, 156, 0.1);
	border-radius: 18px;
	overflow: hidden;
	box-shadow:
		0 10px 28px rgba(12, 40, 48, 0.07),
		0 2px 6px rgba(12, 40, 48, 0.04);
	transition:
		transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.35s ease,
		border-color 0.35s ease;
}

.elementor-posts.elementor-posts--skin-classic .elementor-post:hover,
.elementor-posts.elementor-posts--skin-classic .elementor-post:focus-within {
	transform: translateY(-8px);
	border-color: rgba(0, 168, 197, 0.28);
	box-shadow:
		0 22px 44px rgba(0, 133, 156, 0.16),
		0 8px 16px rgba(12, 40, 48, 0.08);
}

.elementor-posts--thumbnail-top .elementor-post__thumbnail__link {
	display: block;
	width: 100%;
	margin-bottom: 0;
	flex-shrink: 0;
	position: relative;
	overflow: hidden;
}

.elementor-posts--thumbnail-top .elementor-post__thumbnail__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(
		180deg,
		rgba(0, 50, 60, 0) 42%,
		rgba(0, 80, 95, 0.22) 100%
	);
	opacity: 0.55;
	transition: opacity 0.35s ease;
}

.elementor-posts.elementor-posts--skin-classic .elementor-post:hover .elementor-post__thumbnail__link::after {
	opacity: 0.85;
}

.elementor-posts-container .elementor-post__thumbnail {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
	background: #eef6f8;
}

/* Live image ratio ~0.66 (desktop), 0.5 (mobile) */
.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail {
	padding-bottom: 66%;
}

@media (max-width: 767px) {
	.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail {
		padding-bottom: 56%;
	}
}

.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img {
	height: 100%;
	width: 100%;
	max-width: none;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(1.02);
	object-fit: cover;
	transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.elementor-posts.elementor-posts--skin-classic .elementor-post:hover .elementor-post__thumbnail img {
	transform: translate(-50%, -50%) scale(1.1);
}

/* No featured image — logo placeholder, same aspect box (never empty) */
.elementor-posts-container .elementor-post__thumbnail.rbd-post-thumb--logo {
	background: linear-gradient(160deg, #f3fafb 0%, #e7f3f6 55%, #dceef2 100%);
}

.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.rbd-post-thumb--logo img {
	width: 58%;
	max-width: 240px;
	height: auto;
	max-height: 52%;
	object-fit: contain;
	transform: translate(-50%, -50%);
	filter: none;
}

.elementor-posts.elementor-posts--skin-classic .elementor-post:hover .elementor-post__thumbnail.rbd-post-thumb--logo img {
	transform: translate(-50%, -50%) scale(1.04);
}

.elementor-posts .elementor-post__text {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 22px 22px 24px;
	box-sizing: border-box;
	background:
		linear-gradient(180deg, #ffffff 0%, #f8fcfd 100%);
}

.elementor-posts .elementor-post__title {
	margin: 0 0 10px;
	font-size: 19px;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	min-height: 2.6em;
}

.elementor-posts .elementor-post__title,
.elementor-posts .elementor-post__title a {
	color: #0a6f82;
	font-family: Quicksand, sans-serif;
	font-weight: 700;
	letter-spacing: -0.01em;
	text-transform: capitalize;
	text-decoration: none;
	transition: color 0.2s ease;
}

.elementor-posts .elementor-post__title a:hover,
.elementor-posts .elementor-post__title a:focus {
	color: #00a8c5;
}

.elementor-posts .elementor-post__meta-data {
	margin: 0 0 12px;
	padding: 0;
	color: #8a9aa0;
	font-family: Roboto, sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-transform: uppercase;
}

.elementor-posts .elementor-post-date {
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
}

.elementor-posts .elementor-post__excerpt {
	margin: 0 0 20px;
	color: #5a6a70;
	font-family: Roboto, sans-serif;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0.01em;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	flex: 1 1 auto;
}

.elementor-posts .elementor-post__excerpt p {
	margin: 0;
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
	line-height: inherit;
}

.elementor-posts .elementor-post__read-more {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	align-self: flex-start;
	margin: auto 0 0 !important;
	padding: 13px 26px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: linear-gradient(135deg, #00b4d4 0%, #00859c 100%) !important;
	color: #ffffff !important;
	font-family: Quicksand, Roboto, sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	line-height: 1.2 !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	box-shadow: 0 8px 18px rgba(0, 168, 197, 0.28);
	transition:
		background 0.25s ease,
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

.elementor-posts .elementor-post__read-more::after {
	content: "→";
	font-size: 1.05em;
	line-height: 1;
	transition: transform 0.25s ease;
}

.elementor-posts .elementor-post__read-more:hover,
.elementor-posts .elementor-post__read-more:focus {
	background: linear-gradient(135deg, #00c4e4 0%, #0098b2 100%) !important;
	color: #ffffff !important;
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(0, 168, 197, 0.36);
}

.elementor-posts .elementor-post__read-more:hover::after,
.elementor-posts .elementor-post__read-more:focus::after {
	transform: translateX(3px);
}

@media (max-width: 767px) {
	.elementor-posts .elementor-post__text {
		padding: 18px 18px 20px;
	}

	.elementor-posts .elementor-post__title {
		font-size: 18px;
		min-height: 0;
	}
}

.rbd-blog-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	padding: 80px 50px 100px;
	box-sizing: border-box;
}

.rbd-blog-hero__date {
	font-family: Oswald, sans-serif;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 6px;
	text-transform: uppercase;
	color: #ffffff;
	margin: 0 0 18px;
}

.rbd-blog-hero__title {
	font-family: "Nunito Sans", Quicksand, sans-serif;
	font-size: 40px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0;
	text-transform: uppercase;
	color: #ffffff;
	margin: 0 0 30px;
	max-width: 920px;
}

.rbd-blog-hero__shape {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	line-height: 0;
	overflow: hidden;
	pointer-events: none;
}

.rbd-blog-hero__shape svg {
	display: block;
	width: calc(100% + 1.3px);
	height: 40px;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}

.rbd-blog-hero__shape-fill {
	fill: #f4f4f4;
}

.rbd-blog-featured {
	max-width: 880px;
	margin: 50px auto;
	padding: 0 20px;
	box-sizing: border-box;
}

.rbd-blog-featured img {
	display: block;
	width: 100%;
	height: auto;
}

/* Plain blog-post body (no Elementor snapshot) — match boxed content side gaps */
.rbd-blog-body {
	max-width: 1140px;
	margin: 0 auto;
	padding: 10px 50px 60px;
	box-sizing: border-box;
	color: #666666;
	font-family: Roboto, sans-serif;
	font-size: 17px;
	font-weight: 300;
	letter-spacing: 0.32px;
	line-height: 1.6;
}

.rbd-blog-body > *:first-child {
	margin-top: 0;
}

.rbd-blog-body img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 24px auto;
}

.rbd-blog-body h2,
.rbd-blog-body h3 {
	color: #00859c;
	font-family: Quicksand, sans-serif;
	font-weight: 500;
	line-height: 1.3;
	margin: 1.4em 0 0.6em;
}

.rbd-blog-body p {
	margin: 0 0 1em;
}

.rbd-blog-body ul,
.rbd-blog-body ol {
	margin: 0 0 1em;
	padding-left: 0;
	list-style: none;
}

/* Checkmark bullets (theme reset clears native list markers) */
.rbd-blog-body ul > li {
	position: relative;
	padding-left: 1.65em;
	margin: 0 0 0.45em;
}

.rbd-blog-body ul > li::before {
	content: "";
	position: absolute;
	left: 0.2em;
	top: 0.42em;
	width: 0.34em;
	height: 0.62em;
	border-right: 2px solid #555555;
	border-bottom: 2px solid #555555;
	transform: rotate(40deg);
	box-sizing: border-box;
}

.rbd-blog-body ol {
	counter-reset: rbd-blog-ol;
	padding-left: 0;
}

.rbd-blog-body ol > li {
	position: relative;
	padding-left: 1.65em;
	margin: 0 0 0.45em;
	counter-increment: rbd-blog-ol;
}

.rbd-blog-body ol > li::before {
	content: counter(rbd-blog-ol) ".";
	position: absolute;
	left: 0;
	top: 0;
	color: #555555;
	font-weight: 500;
}

.rbd-blog-body a {
	color: #00859c;
}

@media (max-width: 1024px) {
	.rbd-blog-hero__inner {
		padding: 50px 40px;
	}

	.rbd-blog-hero--archive {
		min-height: 320px;
		height: 320px;
	}

	.rbd-blog-hero--archive .rbd-blog-hero__inner {
		padding: 40px 40px 56px;
	}

	.rbd-blog-body {
		padding: 10px 40px 50px;
	}
}

@media (max-width: 767px) {
	.rbd-blog-hero {
		min-height: 75vh;
	}

	.rbd-blog-hero--archive {
		min-height: 240px;
		height: 240px;
	}

	.rbd-blog-hero__inner {
		padding: 40px 20px 70px;
	}

	.rbd-blog-hero--archive .rbd-blog-hero__inner {
		padding: 36px 20px 48px;
	}

	.rbd-blog-hero__title {
		font-size: 33px;
	}

	.rbd-blog-body {
		padding: 10px 20px 40px;
	}
}

/* Legacy title-only wrap (kept for safety if still present) */
.rbd-blog-title-wrap {
	max-width: 800px;
	margin: 40px auto 24px;
	padding: 0 20px;
	text-align: center;
}

.rbd-blog-title-wrap .elementor-heading-title,
.rbd-blog-title-wrap h1 {
	font-family: Quicksand, sans-serif;
	font-size: 36px;
	font-weight: 500;
	line-height: 1.2;
	color: #08434c;
	text-transform: capitalize;
	margin: 0;
}

@media (max-width: 767px) {
	.rbd-blog-title-wrap .elementor-heading-title,
	.rbd-blog-title-wrap h1 {
		font-size: 28px;
	}
}

/* Free Smile Design Preview — Upload Your Picture button + modal (Great Bridge pattern) */
.elementor-element-rbd-smile-modal {
	z-index: 9 !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	transform: none !important;
}

/* Desktop only: center CTA on the image column */
@media (min-width: 1025px) {
	.elementor-element-rbd-smile-modal.elementor-hidden-phone {
		position: absolute !important;
		inset: 0 !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: 0 !important;
		height: 100% !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
	}
}

.elementor-element-rbd-smile-modal .premium-modal-box-container,
.elementor-element-rbd-smile-modal .premium-modal-box-selector-container {
	width: 100%;
	text-align: center;
}

.elementor-element-rbd-smile-modal .premium-modal-box-button-selector {
	color: #ffffff !important;
	background-color: #0098b2 !important;
	border: 1px solid #ffffff !important;
	border-radius: 0 !important;
	padding: 12px 24px;
	cursor: pointer;
}

.elementor-element-rbd-smile-modal .premium-modal-box-button-selector:hover {
	background-color: #00778b !important;
}

.elementor-element-rbd-smile-modal.elementor-hidden-desktop .premium-modal-box-selector-container,
.elementor-element-rbd-smile-modal.elementor-hidden-tablet .premium-modal-box-selector-container {
	text-align: center;
	margin-top: 15px;
}

/*
 * Free Smile Design Preview card (Smile Makeover + SureSmile + shared pattern).
 * Match Great Bridge: 50/50 white | image, button centered on image.
 */
body.page-id-2976 .elementor-element-59a54917 > .elementor-container,
body.page-id-2971 .elementor-element-67ab7484 > .elementor-container,
body.page-id-2973 .elementor-element-625a479 > .elementor-container {
	width: 100% !important;
	max-width: 100% !important;
}

body.page-id-2976 .elementor-element-59a54917 > .elementor-container > .elementor-row,
body.page-id-2971 .elementor-element-67ab7484 > .elementor-container > .elementor-row,
body.page-id-2973 .elementor-element-625a479 > .elementor-container > .elementor-row {
	display: flex !important;
	flex-wrap: wrap;
	width: 100% !important;
	align-items: stretch;
}

body.page-id-2976 .elementor-element-4c1da0e2,
body.page-id-2976 .elementor-element-3436a1f,
body.page-id-2971 .elementor-element-78e2b15b,
body.page-id-2971 .elementor-element-407fa2c2,
body.page-id-2973 .elementor-element-28ff8801,
body.page-id-2973 .elementor-element-2951ea55 {
	width: 50% !important;
	float: none !important;
	position: relative;
	min-height: 190px;
}

/* Left white panel — desktop radius (square join to image) */
body.page-id-2976 .elementor-element-4c1da0e2 > .elementor-element-populated,
body.page-id-2976 .elementor-element-4c1da0e2 > .elementor-element-populated > .elementor-background-overlay,
body.page-id-2971 .elementor-element-78e2b15b > .elementor-element-populated,
body.page-id-2971 .elementor-element-78e2b15b > .elementor-element-populated > .elementor-background-overlay,
body.page-id-2973 .elementor-element-28ff8801 > .elementor-element-populated,
body.page-id-2973 .elementor-element-28ff8801 > .elementor-element-populated > .elementor-background-overlay {
	border-radius: 15px 0 0 15px !important;
}

/* Right image panel */
body.page-id-2976 .elementor-element-3436a1f > .elementor-element-populated,
body.page-id-2976 .elementor-element-3436a1f > .elementor-element-populated > .elementor-background-overlay,
body.page-id-2971 .elementor-element-407fa2c2 > .elementor-element-populated,
body.page-id-2971 .elementor-element-407fa2c2 > .elementor-element-populated > .elementor-background-overlay,
body.page-id-2973 .elementor-element-2951ea55 > .elementor-element-populated,
body.page-id-2973 .elementor-element-2951ea55 > .elementor-element-populated > .elementor-background-overlay {
	border-radius: 0 15px 15px 0 !important;
}

body.page-id-2976 .elementor-element-3436a1f > .elementor-column-wrap,
body.page-id-2976 .elementor-element-3436a1f .elementor-widget-wrap,
body.page-id-2971 .elementor-element-407fa2c2 > .elementor-column-wrap,
body.page-id-2971 .elementor-element-407fa2c2 .elementor-widget-wrap,
body.page-id-2973 .elementor-element-2951ea55 > .elementor-column-wrap,
body.page-id-2973 .elementor-element-2951ea55 .elementor-widget-wrap {
	position: relative !important;
	min-height: 190px;
	height: 100% !important;
}

@media (max-width: 1024px) {
	body.page-id-2976 .elementor-element-4c1da0e2,
	body.page-id-2976 .elementor-element-3436a1f,
	body.page-id-2971 .elementor-element-78e2b15b,
	body.page-id-2971 .elementor-element-407fa2c2,
	body.page-id-2973 .elementor-element-28ff8801,
	body.page-id-2973 .elementor-element-2951ea55 {
		width: 100% !important;
	}

	body.page-id-2976 .elementor-element-4c1da0e2 > .elementor-element-populated,
	body.page-id-2976 .elementor-element-4c1da0e2 > .elementor-element-populated > .elementor-background-overlay,
	body.page-id-2971 .elementor-element-78e2b15b > .elementor-element-populated,
	body.page-id-2971 .elementor-element-78e2b15b > .elementor-element-populated > .elementor-background-overlay,
	body.page-id-2973 .elementor-element-28ff8801 > .elementor-element-populated,
	body.page-id-2973 .elementor-element-28ff8801 > .elementor-element-populated > .elementor-background-overlay {
		border-radius: 15px 15px 0 0 !important;
	}

	body.page-id-2976 .elementor-element-3436a1f > .elementor-element-populated,
	body.page-id-2976 .elementor-element-3436a1f > .elementor-element-populated > .elementor-background-overlay,
	body.page-id-2971 .elementor-element-407fa2c2 > .elementor-element-populated,
	body.page-id-2971 .elementor-element-407fa2c2 > .elementor-element-populated > .elementor-background-overlay,
	body.page-id-2973 .elementor-element-2951ea55 > .elementor-element-populated,
	body.page-id-2973 .elementor-element-2951ea55 > .elementor-element-populated > .elementor-background-overlay {
		border-radius: 0 0 15px 15px !important;
	}

	.elementor-element-rbd-smile-modal.elementor-hidden-phone {
		display: none !important;
	}
}

/* Smile Design modal form polish */
.premium-modal-box-modal .premium-modal-box-modal-dialog {
	width: min(560px, calc(100vw - 28px));
	max-height: min(90vh, 720px);
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

.premium-modal-box-modal .premium-modal-box-modal-content {
	border-radius: 8px;
	border: 0;
	box-shadow: 0 18px 48px rgba(0, 30, 36, .28);
}

.premium-modal-box-modal .premium-modal-box-modal-header {
	padding: 22px 28px 8px;
	border-bottom: 0;
	text-align: center;
	position: relative;
}

.premium-modal-box-modal .premium-modal-box-close-button-container {
	float: none;
	position: absolute;
	top: 10px;
	right: 12px;
}

.premium-modal-box-modal .premium-modal-box-modal-title {
	margin: 0;
	color: #08434c;
	font-size: clamp(22px, 3vw, 28px);
	font-weight: 600;
	line-height: 1.25;
	text-align: center;
}

.premium-modal-box-modal .premium-modal-box-modal-body {
	padding: 8px 28px 28px;
}

.premium-modal-box-modal .rbd-smile-modal-lead,
.premium-modal-box-modal-body > p.rbd-smile-modal-lead {
	margin: 0 0 18px;
	padding: 0 !important;
	color: #8a9398;
	font-size: 15px;
	line-height: 1.45;
	text-align: center;
}

.premium-modal-box-modal .rbd-smile-modal-form {
	width: 100%;
}

.premium-modal-box-modal .rbd-smile-upload-form,
.premium-modal-box-modal .contact-form.rbd-smile-upload-form {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.premium-modal-box-modal .rbd-smile-upload-form .contact-form__row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 12px;
	align-items: stretch;
}

.premium-modal-box-modal .rbd-smile-upload-form .contact-form__col {
	flex: 1 1 0;
	min-width: 0;
	width: auto;
	padding: 0 !important;
}

.premium-modal-box-modal .rbd-smile-upload-form .contact-form__row:first-child .contact-form__col,
.premium-modal-box-modal .rbd-smile-upload-form .contact-form__row:nth-child(3) .contact-form__col {
	flex: 1 1 100%;
}

.premium-modal-box-modal .rbd-smile-upload-form p {
	margin: 0 !important;
	padding: 0 !important;
}

.premium-modal-box-modal .rbd-smile-upload-form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.premium-modal-box-modal .rbd-smile-upload-form input[type="text"],
.premium-modal-box-modal .rbd-smile-upload-form input[type="tel"],
.premium-modal-box-modal .rbd-smile-upload-form input[type="email"] {
	display: block !important;
	width: 100% !important;
	height: 48px !important;
	min-height: 48px !important;
	max-height: 48px !important;
	margin: 0 !important;
	padding: 0 14px !important;
	box-sizing: border-box !important;
	border: 1px solid rgba(112, 112, 112, .22) !important;
	border-radius: 4px !important;
	background: #f3f3f3 !important;
	color: #333 !important;
	font-size: 15px !important;
	line-height: 48px !important;
	box-shadow: none !important;
	appearance: none;
	-webkit-appearance: none;
}

.premium-modal-box-modal .rbd-smile-upload-form input[type="text"]:focus,
.premium-modal-box-modal .rbd-smile-upload-form input[type="tel"]:focus,
.premium-modal-box-modal .rbd-smile-upload-form input[type="email"]:focus {
	border-color: #0098b2 !important;
	outline: none;
	background: #fff !important;
}

.premium-modal-box-modal .rbd-smile-upload-form input[type="file"] {
	display: block;
	width: 100% !important;
	height: auto !important;
	min-height: 48px;
	margin: 0 !important;
	padding: 10px 12px !important;
	box-sizing: border-box;
	border: 1px dashed rgba(0, 152, 178, .45);
	border-radius: 4px;
	background: #f7fbfc;
	color: #08434c;
	font-size: 14px;
	cursor: pointer;
}

.premium-modal-box-modal .rbd-smile-upload-form input[type="file"]::file-selector-button,
.premium-modal-box-modal .rbd-smile-upload-form input[type="file"]::-webkit-file-upload-button {
	margin-right: 12px;
	padding: 8px 14px;
	border: 0;
	border-radius: 4px;
	background: #0098b2;
	color: #fff;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .02em;
	cursor: pointer;
}

.premium-modal-box-modal .rbd-smile-upload-form .contact-form__btn {
	width: 100%;
	display: flex;
	justify-content: center;
	margin-top: 4px;
}

.premium-modal-box-modal .rbd-smile-upload-form .contact-form__btn p {
	width: 100%;
	display: flex;
	justify-content: center;
}

.premium-modal-box-modal .rbd-smile-upload-form input.wpcf7-submit,
.premium-modal-box-modal .rbd-smile-upload-form .wpcf7-submit {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	min-width: 160px;
	height: 48px !important;
	margin: 8px auto 0 !important;
	padding: 0 32px !important;
	border: 0 !important;
	border-radius: 28px !important;
	background: #00a7c3 !important;
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: none !important;
}

.premium-modal-box-modal .rbd-smile-upload-form input.wpcf7-submit:hover,
.premium-modal-box-modal .rbd-smile-upload-form .wpcf7-submit:hover {
	background: #00859c !important;
}

.premium-modal-box-modal .rbd-smile-upload-form .wpcf7-not-valid-tip {
	margin: 6px 0 0;
	font-size: 13px;
}

.premium-modal-box-modal .wpcf7-response-output {
	margin: 12px 0 0;
	padding: 10px 12px;
	border-radius: 4px;
}

@media (max-width: 640px) {
	.premium-modal-box-modal .premium-modal-box-modal-header,
	.premium-modal-box-modal .premium-modal-box-modal-body {
		padding-left: 18px;
		padding-right: 18px;
	}

	.premium-modal-box-modal .rbd-smile-upload-form .contact-form__row {
		flex-direction: column;
		gap: 10px;
	}

	.premium-modal-box-modal .rbd-smile-upload-form .contact-form__col {
		flex: 1 1 100%;
		width: 100%;
	}

	.premium-modal-box-modal .rbd-smile-upload-form input.wpcf7-submit,
	.premium-modal-box-modal .rbd-smile-upload-form .wpcf7-submit {
		width: 100% !important;
	}
}

/*
 * Meet Our Doctors — Elementor testimonial carousel (image_above).
 * Elementor JS/layout CSS does not run on *_new snapshots, so without this
 * the image sits below the bio and name/Read More stay inline (broken).
 * Great Bridge _new: page-id-2973 / 17b17552
 * Virginia Beach _new: page-id-2968 / 1173f0ea
 */
body.page-id-2973 .elementor-element-17b17552 .elementor-testimonial,
body.page-id-2968 .elementor-element-1173f0ea .elementor-testimonial {
	display: flex !important;
	flex-direction: column-reverse !important;
	align-items: center !important;
	text-align: center !important;
}

body.page-id-2973 .elementor-element-17b17552 .elementor-testimonial__content,
body.page-id-2968 .elementor-element-1173f0ea .elementor-testimonial__content {
	text-align: center !important;
}

body.page-id-2973 .elementor-element-17b17552 .elementor-testimonial__cite,
body.page-id-2968 .elementor-element-1173f0ea .elementor-testimonial__cite {
	display: block !important;
	font-style: normal !important;
	margin-top: 12px;
}

body.page-id-2973 .elementor-element-17b17552 .elementor-testimonial__name,
body.page-id-2973 .elementor-element-17b17552 .elementor-testimonial__title,
body.page-id-2968 .elementor-element-1173f0ea .elementor-testimonial__name,
body.page-id-2968 .elementor-element-1173f0ea .elementor-testimonial__title {
	display: block !important;
}

body.page-id-2973 .elementor-element-17b17552 .elementor-testimonial__title a,
body.page-id-2968 .elementor-element-1173f0ea .elementor-testimonial__title a {
	color: #00859c !important;
	text-decoration: none;
	text-transform: uppercase;
	font-weight: 700;
}

body.page-id-2973 .elementor-element-17b17552 .elementor-testimonial__image img,
body.page-id-2968 .elementor-element-1173f0ea .elementor-testimonial__image img {
	width: 200px !important;
	height: 200px !important;
	border-radius: 50% !important;
	object-fit: cover;
	border: 2px solid #00a7c3 !important;
}

body.page-id-2973 .elementor-element-17b17552.elementor-testimonial--layout-image_above .elementor-testimonial__footer,
body.page-id-2968 .elementor-element-1173f0ea.elementor-testimonial--layout-image_above .elementor-testimonial__footer {
	margin-bottom: 23px !important;
}

/* Keep carousel to one slide width when Swiper has not initialized yet */
body.page-id-2973 .elementor-element-17b17552 .swiper-wrapper,
body.page-id-2968 .elementor-element-1173f0ea .swiper-wrapper {
	display: flex;
}

body.page-id-2973 .elementor-element-17b17552 .swiper-slide,
body.page-id-2968 .elementor-element-1173f0ea .swiper-slide {
	flex-shrink: 0;
	width: 100%;
}

/* ------------------------------------------------------------------
   Visibility polyfill for *_new snapshots (no root .elementor wrapper).
   Elementor core rules are `.elementor .elementor-hidden-*` and never match.
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
	.elementor-hidden-phone {
		display: none !important;
	}

	/*
	 * Free Smile Design Preview — phone shows a dedicated <img> in the text
	 * column; hide the desktop background image column to stop double images.
	 */
	.elementor-inner-section:has(.elementor-widget-image.elementor-hidden-desktop.elementor-hidden-tablet)
		> .elementor-container
		> .elementor-row
		> .elementor-column.elementor-col-50:has(> .elementor-column-wrap > .elementor-background-overlay) {
		display: none !important;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-hidden-tablet {
		display: none !important;
	}
}

@media (min-width: 1025px) {
	.elementor-hidden-desktop {
		display: none !important;
	}
}

/* Keep mobile smile CTA available below desktop breakpoint (overrides hidden-tablet). */
@media (max-width: 1024px) {
	.elementor-element-rbd-smile-modal.elementor-hidden-desktop {
		display: block !important;
		position: relative !important;
		inset: auto !important;
		height: auto !important;
	}

	.elementor-element-rbd-smile-modal.elementor-hidden-phone {
		display: none !important;
	}
}

/*
 * Patient Testimonials (page 2961) — video stories as a polished 3-column card grid.
 * Snapshot markup is legacy Elementor 50/50 rows; flatten into CSS grid.
 */
body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 > .elementor-container {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 > .elementor-container > .elementor-row > .elementor-column > .elementor-column-wrap > .elementor-widget-wrap {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	align-items: stretch;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-widget-heading,
body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-widget-divider {
	grid-column: 1 / -1;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-inner-section {
	display: contents;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-inner-section > .elementor-container,
body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-inner-section > .elementor-container > .elementor-row {
	display: contents !important;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-inner-section .elementor-column {
	width: 100% !important;
	max-width: none !important;
	flex: none !important;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-inner-section .elementor-column > .elementor-column-wrap {
	height: 100%;
	margin: 0 !important;
	padding: 0 !important;
	background: #ffffff;
	border: 1px solid rgba(0, 133, 156, 0.12);
	border-radius: 18px;
	overflow: hidden;
	box-shadow:
		0 12px 30px rgba(12, 40, 48, 0.08),
		0 2px 6px rgba(12, 40, 48, 0.04);
	transition:
		transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.35s ease,
		border-color 0.35s ease;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-inner-section .elementor-column:hover > .elementor-column-wrap {
	transform: translateY(-6px);
	border-color: rgba(0, 168, 197, 0.3);
	box-shadow:
		0 20px 40px rgba(0, 133, 156, 0.14),
		0 6px 14px rgba(12, 40, 48, 0.08);
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-inner-section .elementor-column > .elementor-column-wrap > .elementor-widget-wrap {
	display: flex !important;
	flex-direction: column;
	height: 100%;
	padding: 0 !important;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-widget-video {
	margin: 0 !important;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-widget-video .elementor-widget-container {
	padding: 0 !important;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-custom-embed-image-overlay img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-column:hover .elementor-custom-embed-image-overlay img {
	transform: scale(1.06);
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-custom-embed-play {
	transition: transform 0.25s ease;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-column:hover .elementor-custom-embed-play {
	transform: scale(1.08);
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-widget-icon-list {
	margin: 0 !important;
	flex: 1 1 auto;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-widget-icon-list .elementor-widget-container {
	padding: 16px 18px 20px !important;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-icon-list-items {
	margin: 0;
	padding: 0;
	list-style: none;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-icon-list-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-icon-list-icon {
	margin-top: 3px;
}

body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-icon-list-text {
	color: #0a6f82 !important;
	font-family: Quicksand, sans-serif !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	padding-left: 0 !important;
}

@media (max-width: 1024px) {
	body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 > .elementor-container > .elementor-row > .elementor-column > .elementor-column-wrap > .elementor-widget-wrap {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px;
	}
}

@media (max-width: 767px) {
	body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 > .elementor-container > .elementor-row > .elementor-column > .elementor-column-wrap > .elementor-widget-wrap {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	body.page-id-2961 .elementor-1886 .elementor-element-5fac8ba3 .elementor-inner-section .elementor-column:hover > .elementor-column-wrap {
		transform: none;
	}
}

/* Google reviews block — keep a clear 3-up card rhythm on desktop */
body.page-id-2961 .rbr-reviews-shell {
	--rbr-visible: 3;
}

@media (max-width: 1024px) {
	body.page-id-2961 .rbr-reviews-shell {
		--rbr-visible: 2;
	}
}

@media (max-width: 767px) {
	body.page-id-2961 .rbr-reviews-shell {
		--rbr-visible: 1;
	}
}

