/*
 * SMILE ARC DENTAL CLINIC — Child Theme Stylesheet (CLEANED + POLISHED)
 * -----------------------------------------------------------------
 * v1: De-duplicated the original style.css, which had 2-6 layered,
 *     conflicting redeclarations of the same selectors (.sa-hero was
 *     defined 6 times; .sa-value-card was split across a shared "card"
 *     block and its own later "list" block that silently overrode it).
 *     Every selector now has exactly one definition per media-query
 *     scope — verified with an automated duplicate/conflict scan.
 *
 * v2: Polish pass on top of the now-stable base:
 *     - Added hover states to .sa-contact-card and .sa-review-card,
 *       so all four card types (service / value / contact / review)
 *       respond consistently on hover, not just two of them.
 *     - Replaced generic "ease" timing with a refined cubic-bezier
 *       easing curve on buttons and cards for a smoother, more
 *       premium-feeling motion.
 *     - Removed a dead redundant margin declaration.
 *     - Confirmed prefers-reduced-motion support already covers all
 *       of the above (it targets every element universally).
 *
 * Nothing structural was reinvented — the existing palette (teal /
 * mint / sand / gold), Lora + Inter type pairing, and layout system
 * were already a genuinely well-built, premium-appropriate design.
 * This pass makes it internally consistent and removes the dead code
 * that was causing unpredictable rendering.
 */

:root {
	--sa-ink: #0d3032;
	--sa-ink-soft: #40595a;
	--sa-teal: #0b817a;
	--sa-teal-dark: #075e5b;
	--sa-mint: #dcebe6;
	--sa-mint-soft: #eef4f0;
	--sa-sand: #ecdfce;
	--sa-cream: #f8f4ec;
	--sa-white: #ffffff;
	--sa-line: #d6dfda;
	--sa-shadow: 0 28px 70px rgba(7, 47, 49, 0.16);
	--sa-shadow-soft: 0 14px 38px rgba(7, 47, 49, 0.09);
	--sa-radius: 14px;
	--sa-radius-sm: 8px;
	--sa-gold: #b8894d;
}

html {
	scroll-behavior: smooth;
}

body {
	background: var(--sa-cream);
	color: var(--sa-ink-soft);
	font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6,
.site-title {
	color: var(--sa-ink);
	font-family: "Lora", Georgia, serif;
	font-weight: 500;
	letter-spacing: -0.035em;
	line-height: 1.13;
}

a {
	text-underline-offset: 3px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	border-radius: 4px;
	outline: 3px solid rgba(19, 125, 128, 0.48);
	outline-offset: 3px;
}

body.elementor-page .entry-header,
body.elementor-page .hero-section,
body.elementor-page .page-title,
#header .site-branding .site-description,
#header .ct-header-search,
.sa-mobile-cta {
	display: none;
}

body.elementor-page .site-main,
body.elementor-page .ct-container-full,
body.elementor-page .content-area {
	padding-bottom: 0;
	padding-top: 0;
}

body.elementor-page [data-content="normal"] > article {
	--has-background: var(--sa-cream);
	margin: 0;
	padding: 0;
}

#header {
	position: relative;
	top: auto;
	z-index: 100;
}

#header [data-row*="middle"] {
	background: rgba(255, 255, 255, 0.97);
	border-bottom: 1px solid rgba(20, 92, 96, 0.10);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom-color: rgba(13, 48, 50, 0.10);
	box-shadow: 0 8px 30px rgba(13, 48, 50, 0.05);
}

#header [data-row*="middle"] > div {
	min-height: 80px;
}

#header .site-title {
	font-family: "Inter", sans-serif;
	font-size: clamp(1rem, 2vw, 1.18rem);
	font-weight: 800;
	letter-spacing: 0.10em;
	text-transform: uppercase;
}

#header .site-logo-container {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
}

#header .site-logo-container a {
	align-items: center;
	display: flex;
}

#header .site-branding .site-title {
	display: block;
	font-size: 0;
	line-height: 1;
	margin: 0;
	font-family: "Inter", sans-serif;
}

#header .custom-logo,
#header .default-logo {
	height: 66px;
	max-height: 70px;
	object-fit: contain;
	width: auto;
}

#header .site-description {
	color: var(--sa-teal);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

#header .ct-header-trigger {
	align-items: center;
	display: inline-flex;
	height: 44px;
	justify-content: center;
	min-width: 44px;
}

.header-menu-1 .menu-item > a {
	color: var(--sa-ink);
	font-size: 0.84rem;
	font-weight: 750;
	transition: color 160ms ease;
	letter-spacing: 0.025em;
}

.header-menu-1 .menu-item > a:hover,
.header-menu-1 .current-menu-item > a,
.header-menu-1 .menu-item:not(.sa-menu-cta) > a:hover,
.header-menu-1 .current-menu-item:not(.sa-menu-cta) > a {
	color: var(--sa-teal);
}

.header-menu-1 .sa-menu-cta > a {
	align-items: center;
	background: var(--sa-ink);
	border-radius: 8px;
	color: #ffffff !important;
	display: inline-flex !important;
	height: 46px !important;
	line-height: 1 !important;
	margin-left: 0;
	min-height: 44px !important;
	padding: 0 19px !important;
	white-space: nowrap;
	border: 1px solid var(--sa-ink);
	box-shadow: 0 9px 22px rgba(13, 48, 50, 0.16);
	font-size: 0.77rem;
	font-weight: 800;
	letter-spacing: 0.035em;
	padding-inline: 21px !important;
	text-transform: uppercase;
	transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.header-menu-1 .sa-menu-cta > a:hover {
	background: var(--sa-teal);
	transform: translateY(-1px);
	border-color: var(--sa-teal-dark) !important;
	box-shadow: 0 10px 22px rgba(7, 94, 91, 0.20);
}

.header-menu-1 .sa-menu-cta {
	align-items: center;
	display: flex;
	margin-left: 12px;
}

.elementor-section.sa-section > .elementor-container,
.elementor-section.sa-section-wide > .elementor-container {
	margin-inline: auto;
	max-width: 1240px;
}

.elementor-section.sa-section {
	padding: 88px 24px;
	padding-block: 96px;
}

.elementor-section.sa-section-wide {
	padding: 72px 24px;
	padding-block: 74px;
}

.elementor-section.sa-section-tight {
	padding-bottom: 68px;
	padding-top: 24px;
}

.elementor-section.sa-intro {
	padding-bottom: 28px;
}

.elementor-section.sa-intro + .elementor-section.sa-section-tight,
.elementor-section.sa-section-wide.sa-section-tight + .elementor-section.sa-section-wide.sa-section-tight {
	padding-top: 0;
}

.elementor-section.sa-hero {
	background: radial-gradient(circle at 7% 10%, rgba(255, 255, 255, 0.08), transparent 28%),
		linear-gradient(135deg, #0a292b 0%, #0f3c3e 62%, #0c3234 100%);
	overflow: hidden;
	padding: 84px 24px 92px;
	border-bottom: 0;
	min-height: 660px;
	padding-bottom: 84px;
	padding-top: 84px;
	position: relative;
}

.sa-hero .elementor-container {
	align-items: center;
	gap: clamp(36px, 4vw, 64px);
	max-width: 1280px !important;
}

.sa-eyebrow .elementor-heading-title,
.sa-eyebrow {
	color: var(--sa-teal-dark);
	font-family: "Inter", sans-serif !important;
	font-size: 0.7rem;
	font-weight: 800 !important;
	letter-spacing: 0.17em;
	line-height: 1.4 !important;
	text-transform: uppercase;
}

.sa-display .elementor-heading-title {
	font-size: clamp(3.2rem, 6vw, 5.7rem);
	letter-spacing: -0.06em;
	line-height: 0.98;
	max-width: 720px;
}

.sa-page-title .elementor-heading-title {
	font-size: clamp(2.7rem, 5vw, 4.8rem);
	letter-spacing: -0.055em;
	line-height: 1.02;
}

.sa-section-title .elementor-heading-title {
	font-size: clamp(2.45rem, 4.1vw, 4.35rem);
	margin-bottom: 12px;
	letter-spacing: -0.052em;
	line-height: 1.04;
}

.sa-lead,
.sa-lead p {
	color: var(--sa-ink-soft);
	font-size: clamp(1.05rem, 1.7vw, 1.25rem);
	line-height: 1.65;
	max-width: 660px;
}

.sa-copy,
.sa-copy p {
	color: var(--sa-ink-soft);
	font-size: 1rem;
	line-height: 1.78;
}

.sa-hero-photo {
	isolation: isolate;
	position: relative;
	padding-left: 34px;
}

.sa-hero-photo::before {
	background: var(--sa-sand);
	border-radius: 26px;
	content: "";
	inset: 22px -16px -18px 22px;
	position: absolute;
	transform: rotate(1deg);
	z-index: -1;
	display: none;
}

.elementor-widget-image.sa-hero-photo img {
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 5px !important;
	box-shadow: 0 34px 70px rgba(0, 0, 0, 0.26) !important;
	display: block;
	object-fit: cover;
	position: relative;
	width: 100%;
	aspect-ratio: 5 / 4;
	object-position: center;
	filter: contrast(1.04) saturate(0.91);
	min-height: 500px;
}

.elementor-widget-image.sa-photo img {
	border: 1px solid rgba(10, 91, 96, 0.10);
	border-radius: 6px;
	box-shadow: var(--sa-shadow) !important;
	display: block;
	object-fit: cover;
	position: relative;
	width: 100%;
	filter: contrast(1.035) saturate(0.92);
}

.elementor-widget-image.sa-photo-landscape img {
	aspect-ratio: 16 / 10 !important;
	object-fit: cover;
}

.elementor-widget-image.sa-photo-square img {
	aspect-ratio: 1 / 1 !important;
	object-fit: cover;
}

.elementor-widget-image.sa-photo-portrait img {
	aspect-ratio: 4 / 3 !important;
	object-fit: cover;
}

.elementor-widget-image.sa-photo-soft img {
	box-shadow: var(--sa-shadow-soft) !important;
}

.sa-photo-detail {
	margin-top: 26px;
	max-width: 280px;
}

.elementor-widget-image.sa-photo-detail img {
	aspect-ratio: 4 / 5 !important;
	object-position: center;
}

.sa-btn .elementor-button {
	align-items: center;
	border-radius: 999px;
	display: inline-flex;
	font-family: "Inter", sans-serif;
	font-size: 0.92rem;
	font-weight: 750;
	justify-content: center;
	letter-spacing: 0.01em;
	min-height: 48px;
	padding: 12px 26px;
	transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 220ms cubic-bezier(0.22, 1, 0.36, 1), background 220ms cubic-bezier(0.22, 1, 0.36, 1);
	background: var(--sa-teal-dark);
	box-shadow: 0 12px 26px rgba(10, 91, 96, 0.22);
	color: var(--sa-white);
}

.sa-btn-outline .elementor-button {
	align-items: center;
	border-radius: 999px;
	display: inline-flex;
	font-family: "Inter", sans-serif;
	font-size: 0.92rem;
	font-weight: 750;
	justify-content: center;
	letter-spacing: 0.01em;
	min-height: 48px;
	padding: 12px 26px;
	transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 220ms cubic-bezier(0.22, 1, 0.36, 1), background 220ms cubic-bezier(0.22, 1, 0.36, 1);
	background: transparent;
	border: 1px solid var(--sa-teal-dark);
	color: var(--sa-teal-dark);
}

.sa-btn .elementor-button:hover {
	background: var(--sa-ink);
	box-shadow: 0 15px 32px rgba(22, 52, 60, 0.22);
	transform: translateY(-2px);
}

.sa-btn-outline .elementor-button-icon,
.sa-btn-outline .elementor-button:hover .elementor-button-icon {
	color: var(--sa-teal-dark);
}

.sa-btn-outline .elementor-button-icon svg,
.sa-service-card .elementor-icon svg,
.sa-value-card .elementor-icon svg,
.sa-contact-card .elementor-icon svg {
	fill: currentColor !important;
}

.sa-btn-outline .elementor-button:hover {
	background: var(--sa-mint);
	transform: translateY(-2px);
}

.sa-hero .sa-btn,
.sa-hero .sa-btn-outline {
	display: inline-block !important;
	margin-right: 10px;
	vertical-align: top;
	width: auto !important;
}

.sa-trustbar {
	background: #071f21;
	color: var(--sa-white);
	padding: 26px 24px;
	border-bottom: 0;
}

.sa-trustbar .elementor-container {
	max-width: 1180px;
}

.sa-trust-item .elementor-heading-title {
	color: var(--sa-white);
	font-family: "Inter", sans-serif;
	font-size: 0.76rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-align: center;
	text-transform: uppercase;
}

.sa-trust-item {
	border-right: 1px solid rgba(255, 255, 255, 0.18);
	padding: 3px 16px;
	color: rgba(255, 255, 255, 0.90);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
}

.sa-trust-item-last {
	border-right: 0;
}

.sa-surface {
	background: #ffffff;
}

.sa-surface-mint {
	background: var(--sa-mint-soft);
}

.sa-surface-sand,
.sa-band .sa-btn .elementor-button:hover {
	background: var(--sa-sand);
}

.sa-service-card > .elementor-widget-container,
.sa-service-card > .elementor-icon-box-wrapper {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	height: 100%;
	padding: 30px 10px 20px 0;
	transition: border-color 220ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 220ms cubic-bezier(0.22, 1, 0.36, 1), transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
	border-top: 1px solid rgba(13, 48, 50, 0.20);
	min-height: 240px;
}

.sa-value-card > .elementor-widget-container,
.sa-value-card > .elementor-icon-box-wrapper {
	background: #f8f4ec;
	border: 0;
	border-radius: 4px;
	box-shadow: none;
	height: 100%;
	padding: 20px 22px;
	transition: border-color 220ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 220ms cubic-bezier(0.22, 1, 0.36, 1), transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
	border-left: 3px solid var(--sa-gold);
	min-height: 0;
}

.sa-contact-card > .elementor-widget-container,
.sa-contact-card > .elementor-icon-box-wrapper {
	background: rgba(255, 255, 255, 0.88);
	border: 1px solid var(--sa-line);
	border-radius: var(--sa-radius);
	box-shadow: var(--sa-shadow-soft);
	height: 100%;
	padding: 30px;
	transition: border-color 220ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 220ms cubic-bezier(0.22, 1, 0.36, 1), transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.sa-service-card:hover > .elementor-widget-container,
.sa-service-card:hover > .elementor-icon-box-wrapper {
	border-color: rgba(19, 125, 128, 0.36);
	box-shadow: none;
	transform: translateY(-4px);
	border-top-color: var(--sa-teal);
}

.sa-value-card:hover > .elementor-widget-container,
.sa-value-card:hover > .elementor-icon-box-wrapper {
	border-color: rgba(19, 125, 128, 0.36);
	box-shadow: var(--sa-shadow);
	transform: translateY(-5px);
}

.sa-contact-card:hover > .elementor-widget-container,
.sa-contact-card:hover > .elementor-icon-box-wrapper {
	border-color: rgba(19, 125, 128, 0.30);
	box-shadow: var(--sa-shadow);
	transform: translateY(-4px);
}

.sa-service-card .elementor-icon {
	color: #ffffff;
	font-size: 26px;
	align-items: center;
	background: var(--sa-ink);
	border-radius: 6px;
	display: inline-flex;
	height: 48px;
	justify-content: center;
	width: 48px;
}

.sa-value-card .elementor-icon {
	color: var(--sa-teal-dark);
	font-size: 1.45rem;
}

.sa-contact-card .elementor-icon {
	color: var(--sa-teal);
	font-size: 26px;
}

.sa-service-card .elementor-icon-box-title {
	color: var(--sa-ink);
	font-family: "Inter", sans-serif;
	font-size: 1.06rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin-top: 18px;
}

.sa-value-card .elementor-icon-box-title {
	color: var(--sa-ink);
	font-family: "Inter", sans-serif;
	font-size: 0.96rem;
	font-weight: 800;
	letter-spacing: -0.015em;
	margin: 0 0 3px;
}

.sa-contact-card .elementor-icon-box-title {
	color: var(--sa-ink);
	font-family: "Lora", Georgia, serif;
	font-size: 1.35rem;
	font-weight: 500;
	letter-spacing: -0.02em;
	margin-top: 18px;
}

.sa-service-card .elementor-icon-box-description {
	color: var(--sa-ink-soft);
	font-size: 0.91rem;
	line-height: 1.66;
}

.sa-value-card .elementor-icon-box-description {
	color: var(--sa-ink-soft);
	font-size: 0.84rem;
	line-height: 1.5;
}

.sa-contact-card .elementor-icon-box-description {
	color: var(--sa-ink-soft);
	font-size: 0.94rem;
	line-height: 1.65;
}

.sa-metric .elementor-heading-title {
	color: var(--sa-teal-dark);
	font-family: "Lora", Georgia, serif;
	font-size: clamp(2.2rem, 4vw, 3.4rem);
}

.sa-metric-label,
.sa-metric-label p {
	color: var(--sa-ink-soft);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sa-testimonials,
.sa-review-grid,
.sa-form input[type="submit"]:hover {
	background: var(--sa-ink);
}

.sa-testimonials > .elementor-container {
	align-items: stretch;
}

.sa-testimonials .elementor-column > .elementor-widget-wrap {
	align-content: stretch;
}

.sa-testimonials .sa-section-title {
	margin-top: 20px;
}

.sa-testimonials .sa-section-title .elementor-heading-title {
	font-size: clamp(2rem, 3.2vw, 3rem);
	color: #ffffff;
}

.sa-review-intro > .elementor-container {
	max-width: 860px;
}

.sa-review-intro .elementor-widget-wrap,
.sa-review-intro .elementor-widget-button {
	text-align: center;
}

.sa-review-intro .sa-copy {
	margin-inline: auto;
	max-width: 690px;
}

.sa-review-card {
	align-items: stretch !important;
	background: #f8f4ec;
	border: 0;
	border-radius: 6px;
	box-shadow: 0 22px 55px rgba(0, 0, 0, 0.22);
	display: flex !important;
	flex-direction: column !important;
	height: 100%;
	padding: 38px 34px;
	min-height: 320px;
	position: relative;
	transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.sa-review-card:hover {
	box-shadow: 0 30px 68px rgba(0, 0, 0, 0.28);
	transform: translateY(-4px);
}

.sa-review-stars {
	color: var(--sa-gold);
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	line-height: 1;
}

.sa-review-card blockquote {
	border: 0;
	color: var(--sa-ink);
	font-family: "Lora", Georgia, serif;
	font-size: 1.08rem;
	line-height: 1.62;
	margin: 22px 0 30px;
	padding: 0;
}

.sa-review-card blockquote p {
	color: inherit;
	font: inherit;
	margin: 0;
}

.sa-review-author {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: auto 0 0;
}

.sa-review-author strong {
	color: var(--sa-ink);
	font-size: 0.9rem;
	font-weight: 800;
}

.sa-review-author span {
	color: var(--sa-ink-soft);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.sa-band {
	background: var(--sa-teal-dark);
	border-radius: 28px;
	margin-inline: 24px;
	overflow: hidden;
	padding: 72px 48px;
}

.sa-band .elementor-heading-title,
.sa-band .sa-copy,
.sa-band .sa-copy p,
.sa-band .sa-lead,
.sa-band .sa-lead p,
.sa-footer a:hover {
	color: var(--sa-white);
}

.sa-band .sa-eyebrow .elementor-heading-title {
	color: #9ee0d9;
}

.sa-band .sa-btn .elementor-button {
	background: var(--sa-white);
	box-shadow: none;
	color: var(--sa-teal-dark);
}

.sa-divider .elementor-divider-separator {
	border-color: var(--sa-line);
}

.sa-quote .elementor-widget-container {
	background: var(--sa-white);
	border-left: 3px solid var(--sa-teal);
	border-radius: 0 var(--sa-radius-sm) var(--sa-radius-sm) 0;
	box-shadow: var(--sa-shadow-soft);
	padding: 28px 30px;
}

.sa-quote,
.sa-quote p {
	color: var(--sa-ink);
	font-family: "Lora", Georgia, serif;
	font-size: 1.22rem;
	line-height: 1.65;
}

.sa-accordion .elementor-tab-title {
	background: var(--sa-white);
	border-bottom: 1px solid var(--sa-line);
	color: var(--sa-ink);
	font-family: "Inter", sans-serif;
	font-weight: 700;
	padding: 22px 24px;
}

.sa-accordion .elementor-tab-content {
	background: var(--sa-white);
	color: var(--sa-ink-soft);
	line-height: 1.75;
	padding: 0 24px 24px;
}

.sa-gallery .gallery {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sa-gallery .gallery-item {
	background: #dfe9e7;
	border: 1px solid rgba(10, 91, 96, 0.10);
	border-radius: 6px;
	box-shadow: none;
	margin: 0 !important;
	max-width: none !important;
	overflow: hidden;
	position: relative;
	width: 100% !important;
}

.sa-gallery .gallery-icon,
.sa-gallery .gallery-icon a {
	display: block;
	height: 100%;
}

.sa-gallery img {
	aspect-ratio: 4 / 3;
	border: 0 !important;
	border-radius: 0 !important;
	height: 100% !important;
	object-fit: cover;
	transition: transform 320ms ease, filter 320ms ease;
	width: 100% !important;
}

.sa-gallery a:hover img {
	filter: saturate(1.02) contrast(1.02);
	transform: scale(1.025);
}

.sa-gallery .gallery-caption {
	background: transparent;
	border-radius: 0;
	bottom: 16px;
	color: #ffffff;
	font-family: "Inter", sans-serif;
	font-size: 0.68rem;
	font-weight: 700;
	left: 14px;
	letter-spacing: 0.10em;
	line-height: 1.35;
	margin: 0;
	max-width: calc(100% - 28px);
	padding: 9px 12px;
	position: absolute;
	text-align: left;
	width: auto;
	z-index: 2;
	border: 0;
	text-transform: uppercase;
}

.sa-gallery-welcome .gallery {
	grid-auto-flow: dense;
	grid-auto-rows: 220px;
	grid-template-columns: repeat(12, minmax(0, 1fr));
}

.sa-gallery-welcome .gallery-item:nth-child(1) {
	grid-column: span 7;
	grid-row: span 2;
}

.sa-gallery-welcome .gallery-item:nth-child(2),
.sa-gallery-welcome .gallery-item:nth-child(3),
.sa-gallery-welcome .gallery-item:nth-child(5) {
	grid-column: span 5;
}

.sa-gallery-welcome .gallery-item:nth-child(4) {
	grid-column: span 7;
}

.sa-gallery-treatment .gallery {
	grid-auto-rows: 360px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sa-gallery-hygiene .gallery {
	grid-auto-rows: 440px;
	grid-template-columns: 1.55fr 0.75fr;
}

.sa-gallery-welcome img,
.sa-gallery-treatment img,
.sa-gallery-hygiene img {
	aspect-ratio: auto;
}

.sa-map iframe {
	border: 0;
	border-radius: var(--sa-radius);
	box-shadow: var(--sa-shadow-soft);
	min-height: 460px;
	width: 100%;
}

.sa-form {
	background: var(--sa-white);
	border: 1px solid var(--sa-line);
	border-radius: var(--sa-radius);
	box-shadow: var(--sa-shadow);
	padding: 34px;
}

.sa-form .wpcf7-form {
	display: grid;
	gap: 18px;
}

.sa-form .sa-form-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sa-form label {
	color: var(--sa-ink);
	display: block;
	font-size: 0.82rem;
	font-weight: 750;
	letter-spacing: 0.02em;
}

.sa-form input:not([type="submit"]),
.sa-form select {
	background: var(--sa-cream);
	border: 1px solid var(--sa-line);
	border-radius: 10px;
	color: var(--sa-ink);
	margin-top: 7px;
	min-height: 50px;
	padding: 12px 14px;
	width: 100%;
}

.sa-form textarea {
	background: var(--sa-cream);
	border: 1px solid var(--sa-line);
	border-radius: 10px;
	color: var(--sa-ink);
	margin-top: 7px;
	min-height: 125px;
	padding: 12px 14px;
	width: 100%;
	resize: vertical;
}

.sa-form input:focus,
.sa-form select:focus,
.sa-form textarea:focus {
	border-color: var(--sa-teal);
	box-shadow: 0 0 0 3px rgba(19, 125, 128, 0.12);
	outline: 0;
}

.sa-form input[type="submit"] {
	background: var(--sa-teal-dark);
	border: 0;
	border-radius: 999px;
	color: var(--sa-white);
	cursor: pointer;
	font-weight: 750;
	min-height: 48px;
	padding: 12px 26px;
}

.sa-form .wpcf7-spinner {
	margin: 0 8px;
}

.sa-form .wpcf7-response-output {
	border-color: var(--sa-teal) !important;
	border-radius: 10px;
	margin: 0 !important;
	padding: 12px 16px !important;
}

.sa-footer {
	background: #071f21;
	color: rgba(255, 255, 255, 0.76);
	padding: 76px 24px 26px;
}

.sa-footer__inner {
	display: grid;
	gap: 44px;
	grid-template-columns: 1.25fr 0.75fr 0.9fr 0.9fr;
	margin: 0 auto;
	max-width: 1180px;
}

.sa-footer h2 {
	color: var(--sa-white);
	font-family: "Inter", sans-serif;
	letter-spacing: 0.08em;
	font-size: 1.25rem;
	font-weight: 800;
	text-transform: uppercase;
}

.sa-footer h3 {
	color: var(--sa-white);
	font-family: "Inter", sans-serif;
	letter-spacing: 0.10em;
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.sa-footer__logo {
	display: block;
	height: auto;
	margin-bottom: 22px;
	max-width: 120px;
	width: 100%;
	background: #ffffff;
	border-radius: 6px;
	box-sizing: content-box;
	padding: 10px;
}

.sa-footer p {
	font-size: 0.92rem;
	line-height: 1.75;
	margin: 0 0 10px;
}

.sa-footer a {
	color: rgba(255, 255, 255, 0.82);
	text-decoration: none;
}

.sa-footer__nav {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sa-footer__nav li {
	margin-bottom: 9px;
}

.sa-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	font-size: 0.78rem;
	margin: 46px auto 0;
	max-width: 1180px;
	padding-top: 22px;
}

.ct-footer,
.header-menu-1 .menu-item:not(.sa-menu-cta) > a::after,
.header-menu-1 .sa-menu-call {
	display: none !important;
}

@media (max-width: 1024px) {
  .elementor-section.sa-section {
  	padding: 72px 28px;
  }

  .sa-display .elementor-heading-title {
  	font-size: clamp(3rem, 7vw, 4.6rem);
  }

  .sa-band {
  	margin-inline: 18px;
  	padding: 58px 32px;
  }

  .sa-gallery-welcome .gallery {
  	grid-auto-rows: 190px;
  }

  .sa-gallery-treatment .gallery {
  	grid-auto-rows: 310px;
  }

  .sa-gallery-hygiene .gallery {
  	grid-auto-rows: 380px;
  }

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

}

@media (min-width: 768px) and (max-width: 900px) {
  .sa-hero .elementor-column:first-child,
  .sa-hero .elementor-column:last-child {
  	width: 100% !important;
  }

  .sa-hero-photo {
  	margin-top: 48px;
  	padding-left: 0;
  }

  .elementor-widget-image.sa-hero-photo img {
  	aspect-ratio: 16 / 10 !important;
  	min-height: 0;
  	width: 100%;
  }

}

#header [data-row="middle"] > div {
	min-height: 88px;
}

.header-menu-1 .sa-menu-cta > a::after {
	border-right: 1.5px solid currentColor;
	border-top: 1.5px solid currentColor;
	content: "";
	height: 6px;
	margin-left: 10px;
	transform: rotate(45deg);
	width: 6px;
	display: none !important;
	font-size: 0.92rem;
	transition: transform 160ms ease;
}

.header-menu-1 .sa-menu-cta > a:hover::after {
	transform: rotate(45deg) translate(2px, -2px);
}

@media (max-width: 1024px) {
  #header [data-row="middle"] > div {
  	min-height: 78px;
  }

  #header .ct-header-trigger {
  	background: var(--sa-ink) !important;
  	border: 1px solid var(--sa-ink) !important;
  	border-radius: 8px !important;
  	box-shadow: 0 9px 22px rgba(13, 48, 50, 0.18);
  	color: #ffffff !important;
  	height: 48px !important;
  	min-width: 48px !important;
  }

  #header .ct-header-trigger .ct-icon {
  	height: 16px;
  	width: 21px;
  }

  #offcanvas .mobile-menu .menu-item:not(.sa-menu-cta):not(.sa-menu-call) > a::after {
  	border-right: 1px solid currentColor;
  	border-top: 1px solid currentColor;
  	content: "";
  	height: 6px;
  	transform: rotate(45deg);
  	width: 6px;
  }

  #offcanvas .mobile-menu .sa-menu-cta > a::after {
  	border-right: 1.5px solid currentColor;
  	border-top: 1.5px solid currentColor;
  	content: "";
  	height: 6px;
  	margin-left: 10px;
  	transform: rotate(45deg);
  	width: 6px;
  }

  #offcanvas .mobile-menu .sa-menu-call > a::before {
  	border-left: 1.5px solid currentColor;
  	border-top: 1.5px solid currentColor;
  	content: "";
  	height: 6px;
  	margin-right: 10px;
  	transform: rotate(-45deg);
  	width: 6px;
  }

}

#header [data-row="middle"] {
	background: rgba(255, 255, 255, 0.98);
	border-bottom: 1px solid rgba(13, 48, 50, 0.12);
	box-shadow: 0 10px 34px rgba(13, 48, 50, 0.065);
}

#header [data-row="middle"] > .ct-container {
	max-width: 1288px;
	padding-inline: 24px;
}

#header .site-branding {
	align-items: center;
	display: flex;
	flex-direction: row !important;
	gap: 12px;
}

#header .site-branding .default-logo,
#header .site-branding .custom-logo {
	height: 48px;
	max-height: 48px;
	object-fit: contain;
	width: 52px;
}

#header .site-title-container {
	border-left: 1px solid rgba(13, 48, 50, 0.16);
	display: flex;
	min-height: 42px;
	padding-left: 13px;
	flex-direction: column;
	justify-content: center;
}

#header .site-branding .site-title a {
	color: var(--sa-ink);
	display: block;
	font-size: 0;
	text-decoration: none;
}

#header .site-branding .site-title a::before {
	content: "SMILE ARC";
	font-family: "Inter", sans-serif;
	font-size: 0.91rem;
	font-weight: 850;
	letter-spacing: 0.13em;
	line-height: 1.1;
	text-transform: none;
}

#header .site-title-container::after {
	display: none !important;
	color: var(--sa-teal-dark);
	content: "Dental Clinic · Lalitpur";
	font-family: "Inter", sans-serif;
	font-size: 0.59rem;
	font-weight: 700;
	letter-spacing: 0.105em;
	line-height: 1.35;
	margin-top: 5px;
	text-transform: uppercase;
}

.header-menu-1 .menu-item:not(.sa-menu-cta) > a {
	color: var(--sa-ink);
	font-size: 0.74rem;
	font-weight: 750;
	height: 78px;
	letter-spacing: 0.075em;
	padding-inline: 13px;
	text-transform: uppercase;
}

@media (max-width: 1024px) {
  #header [data-row="middle"] > div {
  	min-height: 70px;
  }

  #header [data-row="middle"] > .ct-container {
  	padding-inline: 18px;
  }

  #header .site-branding {
  	gap: 8px;
  }

  #header .site-branding .default-logo,
  #header .site-branding .custom-logo {
  	height: 42px;
  	max-height: 42px;
  	width: 46px;
  }

  #header .site-branding .site-title a::before {
  	font-size: 1.16rem;
  }

  #header .ct-header-trigger {
  	background: #f7f2e9 !important;
  	border: 1px solid rgba(16, 55, 58, 0.11) !important;
  	border-radius: 12px !important;
  	box-shadow: 0 7px 18px rgba(16, 55, 58, 0.1);
  	color: var(--sa-ink) !important;
  	height: 46px !important;
  	min-width: 46px !important;
  	transition: background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
  }

  #header .ct-header-trigger:hover {
  	background: var(--sa-sand) !important;
  	box-shadow: 0 10px 22px rgba(16, 55, 58, 0.14);
  	transform: translateY(-1px);
  }

  #offcanvas {
  	background: rgba(7, 31, 33, 0.46);
  	backdrop-filter: blur(7px);
  }

  #offcanvas .ct-panel-inner {
  	background: radial-gradient(circle at 95% 8%, rgba(27, 163, 154, 0.18), transparent 32%),
			linear-gradient(155deg, #0c3032 0%, #071f21 68%);
  	border-radius: 32px 0 0 32px;
  	box-shadow: -18px 0 50px rgba(5, 23, 25, 0.34);
  	height: 100%;
  	margin-left: auto;
  	max-width: 410px;
  	overflow-y: auto;
  	padding: 0 24px 28px;
  	width: min(calc(100% - 38px), 410px);
  }

  #offcanvas .ct-panel-actions {
  	align-items: center;
  	border: 0;
  	display: flex;
  	justify-content: flex-end;
  	min-height: 76px;
  	padding: 10px 0;
  }

  #offcanvas .ct-panel-actions::before,
  #offcanvas .mobile-menu .sa-menu-cta > a::after {
  	display: none !important;
  }

  #offcanvas .ct-toggle-close {
  	background: var(--sa-gold) !important;
  	border: 1px solid rgba(255, 255, 255, 0.42) !important;
  	border-radius: 14px !important;
  	box-shadow: 0 0 0 3px #071f21, 0 0 0 5px rgba(215, 181, 127, 0.72);
  	color: var(--sa-ink) !important;
  	height: 48px !important;
  	min-width: 48px !important;
  }

  #offcanvas .ct-panel-content-inner {
  	padding: 0 !important;
  }

  #offcanvas .mobile-menu {
  	counter-reset: sa-mobile-nav;
  	padding: 0;
  }

  #offcanvas .mobile-menu::before {
  	color: #ffffff;
  	content: "SMILE ARC.";
  	display: block;
  	font-family: "Inter", Arial, sans-serif;
  	font-size: 1.38rem;
  	font-weight: 850;
  	letter-spacing: -0.045em;
  	line-height: 1;
  	margin: 58px 0 28px;
  }

  #offcanvas .mobile-menu .menu-item:not(.sa-menu-cta):not(.sa-menu-call) {
  	background: rgba(255, 255, 255, 0.055);
  	border: 1px solid rgba(255, 255, 255, 0.13);
  	border-radius: 16px;
  	margin-bottom: 8px;
  	overflow: hidden;
  	transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
  }

  #offcanvas .mobile-menu .menu-item:not(.sa-menu-cta):not(.sa-menu-call):hover {
  	background: rgba(255, 255, 255, 0.09);
  	border-color: rgba(215, 181, 127, 0.52);
  	transform: translateX(-2px);
  }

  #offcanvas .mobile-menu .menu-item:not(.sa-menu-cta):not(.sa-menu-call) > a {
  	align-items: center;
  	border: 0 !important;
  	display: grid;
  	font-size: 0.98rem;
  	grid-template-columns: 34px 1fr auto;
  	min-height: 56px;
  	padding: 0 16px;
  }

  #offcanvas .mobile-menu .menu-item:not(.sa-menu-cta):not(.sa-menu-call) > a::before {
  	color: var(--sa-gold);
  	font-size: 0.66rem;
  	font-weight: 800;
  	letter-spacing: 0.08em;
  }

  #offcanvas .mobile-menu .menu-item:not(.sa-menu-cta):not(.sa-menu-call) > a::after,
  #offcanvas .mobile-menu .sa-menu-call > a::before {
  	color: var(--sa-gold);
  }

  #offcanvas .mobile-menu .sa-menu-cta {
  	margin-top: 14px !important;
  }

  #offcanvas .mobile-menu .sa-menu-cta > a {
  	background: var(--sa-gold) !important;
  	border: 1px solid var(--sa-gold) !important;
  	border-radius: 16px !important;
  	box-shadow: 0 10px 24px rgba(3, 18, 20, 0.24);
  	color: var(--sa-ink) !important;
  	justify-content: center;
  	min-height: 56px;
  	padding: 0 18px;
  }

  #offcanvas .mobile-menu .sa-menu-call {
  	margin-top: 8px !important;
  }

  #offcanvas .mobile-menu .sa-menu-call > a {
  	background: rgba(27, 163, 154, 0.2) !important;
  	border: 1px solid rgba(86, 206, 195, 0.36) !important;
  	border-radius: 16px !important;
  	color: #ffffff !important;
  	justify-content: center;
  	min-height: 54px;
  	padding: 0 18px;
  }

  #offcanvas .mobile-menu::after {
  	border-top: 1px solid rgba(255, 255, 255, 0.13);
  	color: rgba(255, 255, 255, 0.66);
  	margin-top: 24px;
  	padding-top: 20px;
  }

  body:has(#offcanvas.active) .sa-mobile-cta {
  	opacity: 0;
  	pointer-events: none;
  }

}

@media (max-width: 480px) {
  #offcanvas .ct-panel-inner {
  	border-radius: 30px 0 0 30px;
  	padding-inline: 20px;
  	width: calc(100% - 38px);
  }

  #offcanvas .mobile-menu::before {
  	margin-top: 52px;
  }

}

.header-menu-1 .menu {
	align-items: center;
	gap: 1px;
}

.header-menu-1 .menu-item:not(.sa-menu-cta):not(.sa-menu-call) > a {
	align-items: center;
	color: #28494b;
	display: flex;
	font-size: 0.78rem;
	font-weight: 750;
	height: 88px;
	letter-spacing: 0.045em;
	padding-inline: 13px;
	position: relative;
	text-transform: uppercase;
}

.header-menu-1 .menu-item:not(.sa-menu-cta):not(.sa-menu-call) > a::after {
	background: var(--sa-gold);
	bottom: 0;
	content: "";
	height: 3px;
	left: 50%;
	position: absolute;
	transform: translateX(-50%) scaleX(0);
	transition: transform 180ms ease;
	width: calc(100% - 26px);
}

.header-menu-1 .menu-item:not(.sa-menu-cta):not(.sa-menu-call) > a:hover,
.header-menu-1 .menu-item.current-menu-item:not(.sa-menu-cta) > a {
	color: var(--sa-ink);
}

.header-menu-1 .menu-item:not(.sa-menu-cta):not(.sa-menu-call) > a:hover::after,
.header-menu-1 .menu-item.current-menu-item:not(.sa-menu-cta) > a::after {
	transform: translateX(-50%) scaleX(1);
}

@media (max-width: 1024px) {
  #header [data-row="middle"] > div {
  	min-height: 78px;
  }

  #header .default-logo,
  #header .custom-logo {
  	height: 56px;
  	max-height: 56px;
  	width: 61px;
  }

  #header .site-title-container {
  	min-height: 38px;
  	padding-left: 10px;
  }

  #header .site-branding .site-title a::before {
  	font-size: 0.78rem;
  }

  #header .site-title-container::after {
  	content: "Dental Clinic · Lalitpur";
  	font-size: 0.51rem;
  }

  #header .ct-header-trigger {
  	background: var(--sa-ink);
  	border: 1px solid rgba(255, 255, 255, 0.14);
  	border-radius: 8px;
  	box-shadow: 0 9px 22px rgba(13, 48, 50, 0.18);
  	color: #ffffff;
  	height: 48px;
  	min-width: 48px;
  	transition: background 160ms ease, transform 160ms ease;
  }

  #header .ct-header-trigger:hover,
  #header .ct-header-trigger:focus-visible {
  	background: var(--sa-teal-dark);
  	color: #ffffff;
  	transform: translateY(-1px);
  }

  #header .ct-header-trigger .ct-icon {
  	height: 16px;
  	width: 21px;
  }

  #header .ct-header-trigger .ct-icon rect {
  	fill: currentColor;
  }

  #offcanvas {
  	background: rgba(4, 24, 25, 0.72);
  	backdrop-filter: blur(8px);
  	-webkit-backdrop-filter: blur(8px);
  }

  #offcanvas .ct-panel-inner {
  	background: radial-gradient(circle at 100% 0%, rgba(54, 150, 141, 0.18), transparent 34%),
			#071f21;
  	box-shadow: -28px 0 70px rgba(0, 0, 0, 0.30);
  	margin-left: auto;
  	max-width: 410px;
  	padding: 0 24px 28px;
  	width: min(92vw, 410px);
  }

  #offcanvas .ct-panel-actions {
  	align-items: center;
  	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  	display: flex;
  	justify-content: space-between;
  	min-height: 94px;
  	padding: 18px 0;
  }

  #offcanvas .ct-panel-actions::before {
  	color: #ffffff;
  	content: "SMILE ARC\A DENTAL CLINIC · LALITPUR";
  	font-family: "Inter", sans-serif;
  	font-size: 0.92rem;
  	font-weight: 850;
  	letter-spacing: 0.13em;
  	line-height: 1.7;
  	white-space: pre;
  }

  #offcanvas .ct-panel-actions::first-line,
  #offcanvas .mobile-menu .menu-item.current-menu-item:not(.sa-menu-cta) > a {
  	color: #ffffff;
  }

  #offcanvas .ct-toggle-close {
  	background: rgba(255, 255, 255, 0.07);
  	border: 1px solid rgba(255, 255, 255, 0.26);
  	border-radius: 8px;
  	color: #ffffff;
  	height: 46px;
  	min-width: 46px;
  }

  #offcanvas .ct-toggle-close:hover,
  #offcanvas .ct-toggle-close:focus-visible {
  	background: #d7b57f;
  	border-color: #d7b57f;
  	color: var(--sa-ink);
  }

  #offcanvas .ct-panel-content-inner {
  	padding-top: 8px;
  }

  #offcanvas .mobile-menu {
  	counter-reset: sa-mobile-menu;
  	padding-top: 0;
  }

  #offcanvas .mobile-menu .menu-item {
  	border-bottom: 0;
  	min-height: 0;
  }

  #offcanvas .mobile-menu .menu-item:not(.sa-menu-cta):not(.sa-menu-call) {
  	border-bottom: 1px solid rgba(255, 255, 255, 0.11);
  	counter-increment: sa-mobile-menu;
  }

  #offcanvas .mobile-menu .menu-item:not(.sa-menu-cta):not(.sa-menu-call) > a {
  	align-items: center;
  	color: rgba(255, 255, 255, 0.88);
  	display: grid;
  	font-size: 1.02rem;
  	font-weight: 700;
  	grid-template-columns: 36px 1fr auto;
  	letter-spacing: -0.01em;
  	min-height: 57px;
  	padding: 0;
  }

  #offcanvas .mobile-menu .menu-item:not(.sa-menu-cta):not(.sa-menu-call) > a::before {
  	color: #d7b57f;
  	content: counter(sa-mobile-menu, decimal-leading-zero);
  	font-size: 0.61rem;
  	font-weight: 850;
  	letter-spacing: 0.12em;
  }

  #offcanvas .mobile-menu .menu-item:not(.sa-menu-cta):not(.sa-menu-call) > a::after {
  	color: rgba(255, 255, 255, 0.34);
  	content: "↗";
  	font-size: 0.8rem;
  }

  #offcanvas .mobile-menu .menu-item.current-menu-item:not(.sa-menu-cta) > a::before,
  #offcanvas .mobile-menu .menu-item.current-menu-item:not(.sa-menu-cta) > a::after {
  	color: #d7b57f;
  }

  #offcanvas .mobile-menu .sa-menu-cta {
  	border-bottom: 0;
  	margin-top: 24px;
  }

  #offcanvas .mobile-menu .sa-menu-call {
  	border-bottom: 0;
  	margin-top: 10px;
  }

  #offcanvas .mobile-menu .menu-item:last-child {
  	border-bottom: 0;
  	margin-top: 0;
  }

  #offcanvas .mobile-menu .sa-menu-cta > a {
  	align-items: center;
  	border-radius: 7px;
  	box-shadow: none;
  	display: flex;
  	font-size: 0.84rem;
  	font-weight: 800;
  	justify-content: center;
  	letter-spacing: 0.04em;
  	min-height: 50px;
  	padding: 0 18px;
  	text-transform: uppercase;
  	background: #d7b57f;
  	border: 1px solid #d7b57f;
  	color: var(--sa-ink);
  }

  #offcanvas .mobile-menu .sa-menu-call > a,
  #offcanvas .mobile-menu .menu-item:last-child > a {
  	align-items: center;
  	border-radius: 7px;
  	box-shadow: none;
  	display: flex;
  	font-size: 0.84rem;
  	font-weight: 800;
  	justify-content: center;
  	letter-spacing: 0.04em;
  	min-height: 50px;
  	padding: 0 18px;
  	text-transform: uppercase;
  	background: transparent;
  	border: 1px solid rgba(255, 255, 255, 0.34);
  	color: #ffffff;
  }

  #offcanvas .mobile-menu .sa-menu-cta > a::after {
  	content: "↗";
  	margin-left: 9px;
  }

  #offcanvas .mobile-menu .sa-menu-call > a::before {
  	content: "↗";
  	margin-right: 9px;
  	transform: rotate(135deg);
  }

  #offcanvas .mobile-menu::after {
  	color: rgba(255, 255, 255, 0.54);
  	content: "SUNDAY–FRIDAY · 10 AM–6 PM\A M858+QR, 4TH FLOOR, LALITPUR";
  	display: block;
  	font-size: 0.61rem;
  	font-weight: 750;
  	letter-spacing: 0.12em;
  	line-height: 1.85;
  	margin-top: 28px;
  	white-space: pre;
  }

}

@media (max-width: 480px) {
  #header [data-row="middle"] > .ct-container {
  	padding-inline: 16px;
  }

  #header .default-logo,
  #header .custom-logo {
  	height: 50px;
  	max-height: 50px;
  	width: 54px;
  }

  #header .site-branding {
  	gap: 8px;
  }

  #header .site-title-container {
  	padding-left: 9px;
  }

  #header .site-branding .site-title a::before {
  	font-size: 0.7rem;
  }

  #header .site-title-container::after {
  	content: "Dental Clinic · Lalitpur";
  	font-size: 0.46rem;
  	letter-spacing: 0.08em;
  }

  #offcanvas .ct-panel-inner {
  	padding-inline: 22px;
  	width: 100%;
  }

}

@media (max-width: 767px) {
  body {
  	font-size: 15px;
  	padding-bottom: 70px;
  }

  #header [data-row*="middle"] > div {
  	min-height: 70px;
  }

  #header .ct-header-trigger {
  	align-items: center;
  	background: var(--sa-teal-dark);
  	border: 1px solid var(--sa-teal-dark);
  	border-radius: 12px;
  	box-shadow: 0 8px 18px rgba(10, 91, 96, 0.16);
  	color: var(--sa-white);
  	display: inline-flex;
  	height: 44px;
  	justify-content: center;
  	min-width: 44px;
  	transition: background 160ms ease, transform 160ms ease;
  }

  #header .ct-header-trigger:hover,
  #header .ct-header-trigger:focus-visible {
  	background: var(--sa-ink);
  	color: var(--sa-white);
  	transform: translateY(-1px);
  }

  #offcanvas .ct-panel-inner {
  	background: var(--sa-ink);
  	padding: 0 20px 28px;
  }

  #offcanvas .ct-panel-actions {
  	padding: 18px 0 0;
  }

  #offcanvas .ct-toggle-close {
  	align-items: center;
  	background: rgba(255, 255, 255, 0.04);
  	border: 1px solid rgba(255, 255, 255, 0.32);
  	border-radius: 12px;
  	color: var(--sa-white);
  	display: inline-flex;
  	height: 44px;
  	justify-content: center;
  	padding: 10px;
  	width: 44px;
  }

  #offcanvas .ct-toggle-close:hover,
  #offcanvas .ct-toggle-close:focus-visible {
  	background: var(--sa-teal-dark);
  	border-color: var(--sa-teal-dark);
  	color: var(--sa-white);
  }

  #offcanvas .mobile-menu {
  	padding-top: 24px;
  }

  #offcanvas .mobile-menu .menu-item {
  	border-bottom: 1px solid rgba(255, 255, 255, 0.10);
  	min-height: 48px;
  }

  #offcanvas .mobile-menu .menu-item > a {
  	align-items: center;
  	color: rgba(255, 255, 255, 0.92);
  	font-size: 1.06rem;
  	font-weight: 750;
  	min-height: 48px;
  	padding: 8px 0;
  	transition: color 160ms ease, background 160ms ease;
  }

  #offcanvas .mobile-menu .menu-item.current-menu-item:not(:last-child) > a,
  #offcanvas .mobile-menu .menu-item > a:hover,
  #offcanvas .mobile-menu .menu-item > a:focus-visible {
  	color: var(--sa-teal-light);
  }

  #offcanvas .mobile-menu .menu-item:last-child {
  	border-bottom: 0;
  	margin-top: 20px;
  }

  #offcanvas .mobile-menu .menu-item:last-child > a {
  	background: var(--sa-teal-dark);
  	border: 1px solid var(--sa-teal-dark);
  	border-radius: 999px;
  	box-shadow: 0 12px 24px rgba(10, 91, 96, 0.25);
  	color: var(--sa-white);
  	justify-content: center;
  	min-height: 52px;
  	padding: 10px 18px;
  }

  #offcanvas .mobile-menu .menu-item:last-child > a:hover,
  #offcanvas .mobile-menu .menu-item:last-child > a:focus-visible {
  	background: var(--sa-teal);
  	border-color: var(--sa-teal);
  	color: var(--sa-white);
  }

  .elementor-section.sa-section,
  .elementor-section.sa-section-wide {
  	padding: 56px 20px;
  }

  .elementor-section.sa-section-tight {
  	padding-bottom: 40px;
  	padding-top: 20px;
  }

  .elementor-section.sa-intro {
  	padding-bottom: 22px;
  }

  .elementor-section.sa-hero {
  	min-height: 0;
  	padding: 56px 20px 70px;
  }

  .sa-hero .elementor-column:first-child {
  	order: 1;
  }

  .sa-hero .elementor-column:last-child {
  	order: 2;
  }

  .sa-display .elementor-heading-title {
  	font-size: clamp(2.65rem, 13vw, 3.7rem);
  }

  .sa-page-title .elementor-heading-title {
  	font-size: clamp(2.45rem, 12vw, 3.5rem);
  }

  .sa-section-title .elementor-heading-title {
  	font-size: clamp(2rem, 10vw, 2.9rem);
  }

  .sa-hero-photo {
  	margin-top: 38px;
  }

  .sa-hero-photo::before {
  	border-radius: 24px;
  	inset: 24px -10px -18px 18px;
  }

  .sa-hero-photo img {
  	aspect-ratio: 4 / 3;
  	border-radius: 18px !important;
  }

  .sa-trustbar {
  	padding: 22px 16px;
  }

  .sa-trustbar .elementor-column {
  	width: 50% !important;
  }

  .sa-trust-item .elementor-widget-container {
  	border: 0;
  	padding: 0;
  }

  .sa-trust-item {
  	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  	border-right: 0;
  	margin: 0 6px;
  	padding: 12px 6px;
  }

  .sa-band {
  	border-radius: 20px;
  	margin-inline: 12px;
  	padding: 48px 20px;
  }

  .sa-review-grid .elementor-column {
  	margin-bottom: 18px;
  }

  .sa-review-grid .elementor-column:last-child {
  	margin-bottom: 0;
  }

  .sa-review-card {
  	padding: 26px 24px;
  }

  .sa-gallery .gallery {
  	gap: 12px;
  	grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sa-gallery-welcome .gallery,
  .sa-gallery-treatment .gallery {
  	grid-auto-rows: 240px;
  	grid-template-columns: 1fr;
  }

  .sa-gallery-hygiene .gallery {
  	grid-auto-rows: 290px;
  	grid-template-columns: 1fr;
  }

  .sa-gallery-welcome .gallery-item:nth-child(1),
  .sa-gallery-welcome .gallery-item:nth-child(2),
  .sa-gallery-welcome .gallery-item:nth-child(3),
  .sa-gallery-welcome .gallery-item:nth-child(4),
  .sa-gallery-welcome .gallery-item:nth-child(5) {
  	grid-column: auto;
  	grid-row: auto;
  }

  .sa-gallery .gallery-caption {
  	bottom: 10px;
  	font-size: 0.72rem;
  	left: 10px;
  	max-width: calc(100% - 20px);
  }

  .sa-photo-detail {
  	max-width: 220px;
  }

  .sa-map iframe {
  	min-height: 360px;
  }

  .sa-form {
  	padding: 24px 18px;
  }

  .sa-form .sa-form-grid {
  	grid-template-columns: 1fr;
  }

  .sa-footer {
  	padding: 58px 22px 28px;
  }

  .sa-footer__inner {
  	gap: 34px;
  	grid-template-columns: 1fr;
  }

  .sa-mobile-cta {
  	align-items: center;
  	background: rgba(255, 255, 255, 0.97);
  	border-top: 1px solid var(--sa-line);
  	bottom: 0;
  	box-shadow: 0 -10px 30px rgba(22, 52, 60, 0.12);
  	display: grid;
  	gap: 8px;
  	grid-template-columns: 0.75fr 1.25fr;
  	left: 0;
  	padding: 9px 12px;
  	position: fixed;
  	right: 0;
  	z-index: 999;
  }

  .sa-mobile-cta a {
  	align-items: center;
  	border: 1px solid var(--sa-teal-dark);
  	border-radius: 999px;
  	color: var(--sa-teal-dark);
  	display: inline-flex;
  	font-size: 0.82rem;
  	font-weight: 800;
  	justify-content: center;
  	min-height: 44px;
  	padding: 8px 12px;
  	text-align: center;
  	text-decoration: none;
  }

  .sa-mobile-cta a:last-child {
  	background: var(--sa-teal-dark);
  	color: var(--sa-white);
  }

  #header .custom-logo,
  #header .default-logo {
  	max-height: 53px;
  	width: 230px;
  }

  .sa-hero .sa-btn,
  .sa-hero .sa-btn-outline {
  	display: block !important;
  	margin-right: 0;
  	width: 100% !important;
  }

}

@media (prefers-reduced-motion: reduce) {
  html {
  	scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
  	animation-duration: 0.01ms !important;
  	animation-iteration-count: 1 !important;
  	scroll-behavior: auto !important;
  	transition-duration: 0.01ms !important;
  }

}

.elementor-section.sa-hero::before {
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 50%;
	content: "";
	height: 520px;
	position: absolute;
	right: -245px;
	top: -260px;
	width: 520px;
}

.sa-hero .elementor-column:first-child {
	width: 51% !important;
}

.sa-hero .elementor-column:last-child {
	width: 49% !important;
}

.sa-hero .elementor-widget-wrap {
	align-content: center;
}

.sa-hero .sa-eyebrow,
.sa-hero .sa-eyebrow .elementor-heading-title,
.sa-testimonials .sa-eyebrow,
.sa-testimonials .sa-eyebrow .elementor-heading-title {
	color: #d7b57f;
}

.sa-hero .sa-display .elementor-heading-title,
.sa-hero .sa-page-title .elementor-heading-title {
	color: #ffffff;
	font-size: clamp(3.55rem, 5.4vw, 5.9rem);
	letter-spacing: -0.055em;
	line-height: 0.99;
	max-width: 720px;
}

.sa-hero .sa-lead,
.sa-hero .sa-lead p {
	color: rgba(255, 255, 255, 0.76);
	font-size: 1.08rem;
	line-height: 1.75;
	max-width: 570px;
}

.sa-hero .sa-btn .elementor-button {
	background: #ffffff;
	border: 1px solid #ffffff;
	border-radius: 8px;
	color: var(--sa-ink);
	box-shadow: 0 13px 28px rgba(0, 0, 0, 0.15);
}

.sa-hero .sa-btn .elementor-button:hover {
	background: #d7b57f;
	border-color: #d7b57f;
	color: var(--sa-ink);
}

.sa-hero .sa-btn-outline .elementor-button {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.48);
	border-radius: 8px;
	color: #ffffff;
	box-shadow: none;
}

.sa-hero .sa-btn-outline .elementor-button:hover {
	background: rgba(255, 255, 255, 0.10);
	border-color: #ffffff;
	color: #ffffff;
}

.sa-hero-photo::after {
	background: #d7b57f;
	bottom: 22px;
	color: var(--sa-ink);
	content: "SMILE ARC  ·  LALITPUR";
	font-size: 0.68rem;
	font-weight: 850;
	letter-spacing: 0.17em;
	padding: 12px 16px;
	position: absolute;
	right: -10px;
	z-index: 2;
}

.sa-trust-item::before {
	color: #d7b57f;
	content: "✦";
	margin-right: 9px;
}

.sa-intro {
	border-bottom: 1px solid rgba(13, 48, 50, 0.08);
}

.sa-photo::after {
	border-color: rgba(184, 137, 77, 0.35);
	border-radius: 4px;
	inset: 14px -14px -14px 14px;
}

.sa-value-card .elementor-icon-box-wrapper {
	align-items: center;
	display: grid !important;
	gap: 0 16px;
	grid-template-columns: 40px minmax(0, 1fr);
	text-align: left !important;
}

.sa-value-card .elementor-icon-box-content {
	text-align: left;
}

.sa-value-card .elementor-icon-box-icon {
	grid-row: 1 / 3;
	margin: 0 !important;
}

.sa-testimonials .sa-copy,
.sa-testimonials .sa-copy p {
	color: rgba(255, 255, 255, 0.68);
}

.sa-testimonials .sa-btn .elementor-button {
	background: #d7b57f;
	border-color: #d7b57f;
	border-radius: 8px;
	color: var(--sa-ink);
}

.sa-review-card > .elementor-widget-container {
	background: #f8f4ec;
	border: 0;
	border-radius: 6px;
	box-shadow: 0 22px 55px rgba(0, 0, 0, 0.22);
	min-height: 320px;
	padding: 38px 34px;
	position: relative;
}

.sa-review-card > .elementor-widget-container::before {
	color: rgba(184, 137, 77, 0.36);
	content: "“";
	font-family: Georgia, serif;
	font-size: 6rem;
	line-height: 1;
	position: absolute;
	right: 24px;
	top: 12px;
}

.sa-review-grid .elementor-column:nth-child(2) .sa-review-card {
	transform: translateY(-18px);
}

.sa-cta-band {
	background: linear-gradient(90deg, rgba(5, 33, 35, 0.95), rgba(13, 67, 68, 0.95)),
		var(--sa-ink);
}

.sa-gallery .gallery-item::before {
	background: linear-gradient(to top, rgba(4, 24, 25, 0.58), transparent 48%);
	bottom: 0;
	content: "";
	left: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 1;
}

.elementor-accordion .elementor-tab-title {
	align-items: center;
	display: flex;
	min-height: 48px;
}

@media (max-width: 1024px) {
  .elementor-section.sa-section {
  	padding-block: 76px;
  }

  .sa-hero .sa-display .elementor-heading-title,
  .sa-hero .sa-page-title .elementor-heading-title {
  	font-size: clamp(3.1rem, 6vw, 4.8rem);
  }

  .sa-hero-photo {
  	padding-left: 22px;
  }

  .elementor-widget-image.sa-hero-photo img {
  	min-height: 430px;
  }

  .sa-review-card > .elementor-widget-container {
  	min-height: 350px;
  	padding: 32px 26px;
  }

}

@media (max-width: 767px) {
  #header [data-row*="middle"] > div {
  	min-height: 72px;
  }

  #header .custom-logo,
  #header .default-logo {
  	max-height: 58px;
  	width: auto;
  }

  .elementor-section.sa-section {
  	padding-block: 58px;
  }

  .elementor-section.sa-section-wide {
  	padding-block: 50px;
  }

  .elementor-section.sa-section-tight {
  	padding-bottom: 48px;
  	padding-top: 8px;
  }

  .elementor-section.sa-hero {
  	min-height: 0;
  	padding: 64px 20px 76px;
  }

  .sa-hero .elementor-column:first-child,
  .sa-hero .elementor-column:last-child {
  	width: 100% !important;
  }

  .sa-hero .sa-display .elementor-heading-title,
  .sa-hero .sa-page-title .elementor-heading-title {
  	font-size: clamp(3rem, 14vw, 4.15rem);
  	line-height: 1;
  }

  .sa-hero .sa-lead,
  .sa-hero .sa-lead p {
  	font-size: 1rem;
  }

  .sa-hero-photo {
  	margin-top: 42px;
  	padding-left: 0;
  }

  .sa-hero-photo::after {
  	bottom: -12px;
  	right: -2px;
  }

  .elementor-widget-image.sa-hero-photo img {
  	aspect-ratio: 4 / 3;
  	min-height: 0;
  }

  .sa-section-title .elementor-heading-title {
  	font-size: clamp(2.25rem, 11vw, 3.25rem);
  }

  .sa-service-card > .elementor-widget-container {
  	min-height: 0;
  	padding-bottom: 26px;
  }

  .sa-review-grid .elementor-column:nth-child(2) .sa-review-card {
  	transform: none;
  }

  .sa-review-card > .elementor-widget-container {
  	min-height: 0;
  }

  .sa-photo::after {
  	display: none;
  }

  #offcanvas .mobile-menu .menu-item.current-menu-item:not(:last-child) > a {
  	color: #d7b57f;
  }

}

@media (min-width: 768px) and (max-width: 900px) {
  .sa-hero .elementor-column:first-child,
  .sa-hero .elementor-column:last-child {
  	width: 100% !important;
  }

  .sa-hero-photo {
  	margin-top: 48px;
  	padding-left: 0;
  }

  .elementor-widget-image.sa-hero-photo img {
  	aspect-ratio: 16 / 10 !important;
  	min-height: 0;
  	width: 100%;
  }

}

@media (max-width: 1024px) {
  #header [data-row="middle"] > div {
  	min-height: 78px;
  }

  #header .ct-header-trigger {
  	background: var(--sa-ink) !important;
  	border: 1px solid var(--sa-ink) !important;
  	border-radius: 8px !important;
  	box-shadow: 0 9px 22px rgba(13, 48, 50, 0.18);
  	color: #ffffff !important;
  	height: 48px !important;
  	min-width: 48px !important;
  }

  #header .ct-header-trigger .ct-icon {
  	height: 16px;
  	width: 21px;
  }

  #offcanvas .mobile-menu .menu-item:not(.sa-menu-cta):not(.sa-menu-call) > a::after {
  	border-right: 1px solid currentColor;
  	border-top: 1px solid currentColor;
  	content: "";
  	height: 6px;
  	transform: rotate(45deg);
  	width: 6px;
  }

  #offcanvas .mobile-menu .sa-menu-cta > a::after {
  	border-right: 1.5px solid currentColor;
  	border-top: 1.5px solid currentColor;
  	content: "";
  	height: 6px;
  	margin-left: 10px;
  	transform: rotate(45deg);
  	width: 6px;
  }

  #offcanvas .mobile-menu .sa-menu-call > a::before {
  	border-left: 1.5px solid currentColor;
  	border-top: 1.5px solid currentColor;
  	content: "";
  	height: 6px;
  	margin-right: 10px;
  	transform: rotate(-45deg);
  	width: 6px;
  }

}