/*
 * Dentasight IQ Elementor brand guardrails.
 * Loaded after Elementor's generated kit and post styles so pages remain fully
 * editable without allowing global widget defaults to replace the brand system.
 */

body.elementor-page,
body.elementor-template-full-width {
	background: var(--dsiq-white) !important;
	color: var(--dsiq-ink) !important;
	font-family: var(--dsiq-body) !important;
}

.elementor-page .elementor h1,
.elementor-page .elementor h2,
.elementor-page .elementor h3,
.elementor-page .elementor h4,
.elementor-page .elementor h5,
.elementor-page .elementor h6,
.elementor-page .elementor .elementor-heading-title {
	color: var(--dsiq-navy) !important;
	font-family: var(--dsiq-heading) !important;
	font-weight: 600 !important;
	letter-spacing: -0.025em !important;
	line-height: 1.04 !important;
}

.elementor-page .elementor h1,
.elementor-page .elementor h2,
.elementor-page .elementor h3,
.elementor-page .elementor p,
.elementor-page .elementor a,
.elementor-page .elementor li,
.elementor-page .elementor .elementor-widget-text-editor {
	font-family: var(--dsiq-body) !important;
}

.elementor-page .elementor h1,
.elementor-page .elementor h2,
.elementor-page .elementor h3,
.elementor-page .elementor .elementor-heading-title {
	font-family: var(--dsiq-heading) !important;
}

.elementor-page .elementor h1 {
	font-size: clamp(3rem, 7vw, 6.8rem) !important;
}

.elementor-page .elementor h2 {
	font-size: clamp(2.35rem, 5vw, 4.7rem) !important;
}

.elementor-page .elementor h3 {
	font-size: clamp(1.55rem, 2.3vw, 2rem) !important;
}

/* Header and desktop navigation. */
.elementor-page .dsiq-elementor-header .site-header__inner {
	--align-items: center !important;
	--flex-direction: row !important;
	--flex-wrap: nowrap !important;
	--justify-content: space-between !important;
	align-items: center !important;
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	justify-content: space-between !important;
	min-height: 76px !important;
	padding-inline: clamp(1.25rem, 4vw, 2.5rem) !important;
	width: 100% !important;
}

.elementor-page .dsiq-elementor-header .site-brand,
.elementor-page .dsiq-elementor-header .menu-toggle,
.elementor-page .dsiq-elementor-header .dsiq-header-cta {
	flex: 0 0 auto !important;
	width: auto !important;
}

.elementor-page .dsiq-elementor-header .site-brand__text,
.elementor-page .dsiq-elementor-header .primary-menu a {
	white-space: nowrap !important;
}

.elementor-page .dsiq-elementor-header .site-brand__text {
	font-family: var(--dsiq-heading) !important;
	font-size: 1.75rem !important;
	font-weight: 600 !important;
}

.elementor-page .dsiq-elementor-header .site-brand__text strong {
	font-family: var(--dsiq-body) !important;
}

.elementor-page .dsiq-elementor-header .primary-nav {
	--align-items: center !important;
	--flex-direction: row !important;
	--flex-wrap: nowrap !important;
	align-items: center !important;
	display: flex !important;
	flex: 1 1 auto !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: 1.25rem !important;
	justify-content: flex-end !important;
	width: auto !important;
}

.elementor-page .dsiq-elementor-header .primary-menu {
	align-items: center !important;
	display: flex !important;
	flex-direction: row !important;
	gap: clamp(0.5rem, 1vw, 0.9rem) !important;
}

.elementor-page .dsiq-elementor-header .primary-menu a {
	font-size: 0.82rem !important;
}

/* Buttons: gold is the primary brand action, navy outline is secondary. */
.elementor-page .elementor-widget-button .elementor-button,
.elementor-page .elementor button[type="submit"],
.elementor-page .elementor input[type="submit"] {
	background: var(--dsiq-gold) !important;
	border-color: var(--dsiq-gold) !important;
	border-radius: 999px !important;
	color: var(--dsiq-deep-navy) !important;
	font-family: var(--dsiq-body) !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	min-height: 50px !important;
}

.elementor-page .elementor-widget-button .elementor-button:hover,
.elementor-page .elementor button[type="submit"]:hover,
.elementor-page .elementor input[type="submit"]:hover {
	background: #ffd34e !important;
	border-color: #ffd34e !important;
	color: var(--dsiq-deep-navy) !important;
}

.elementor-page .dsiq-button-secondary .elementor-button {
	background: transparent !important;
	border-color: rgba(17, 34, 64, 0.25) !important;
	color: var(--dsiq-navy) !important;
}

.elementor-page .dsiq-button-secondary .elementor-button:hover {
	background: var(--dsiq-navy) !important;
	border-color: var(--dsiq-navy) !important;
	color: var(--dsiq-white) !important;
}

.elementor-page .content-section--navy .dsiq-button-secondary .elementor-button {
	background: transparent !important;
	border-color: rgba(255, 255, 255, 0.35) !important;
	color: var(--dsiq-white) !important;
}

/* Hero alignment and type hierarchy. */
.elementor-page .elementor .hero {
	--align-items: center !important;
	align-items: center !important;
	background: linear-gradient(180deg, rgba(242, 245, 247, 0.98), rgba(255, 255, 255, 0.94)), var(--dsiq-ivory) !important;
}

.elementor-page .elementor .hero__inner {
	--align-items: center !important;
	--flex-direction: column !important;
	align-items: center !important;
	flex-direction: column !important;
	padding-bottom: clamp(5rem, 10vw, 8rem) !important;
	padding-top: clamp(5rem, 10vw, 8rem) !important;
	text-align: center !important;
	width: 100% !important;
}

.elementor-page .elementor .hero__inner > .elementor-element,
.elementor-page .elementor .hero__inner .elementor-widget-container,
.elementor-page .elementor .hero__inner .elementor-heading-title,
.elementor-page .elementor .hero__inner p {
	text-align: center !important;
}

.elementor-page .elementor .hero h1,
.elementor-page .elementor .hero h1.elementor-heading-title {
	color: var(--dsiq-navy) !important;
	font-family: var(--dsiq-heading) !important;
	font-size: clamp(3rem, 7vw, 6.8rem) !important;
	font-weight: 600 !important;
	line-height: 1.04 !important;
	margin-inline: auto !important;
	max-width: 1050px !important;
}

.elementor-page .elementor .hero__body {
	color: var(--dsiq-muted) !important;
	font-family: var(--dsiq-body) !important;
	font-size: clamp(1.05rem, 1.8vw, 1.28rem) !important;
	margin: 0 auto 2rem !important;
	max-width: 790px !important;
	width: 100% !important;
}

.elementor-page .elementor .hero__body p,
.elementor-page .elementor .hero__note p {
	color: inherit !important;
	font-family: inherit !important;
}

.elementor-page .elementor .hero__actions,
.elementor-page .elementor .section-action {
	--align-items: center !important;
	--flex-direction: row !important;
	--flex-wrap: wrap !important;
	--justify-content: center !important;
	align-items: center !important;
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 0.8rem !important;
	justify-content: center !important;
	padding: 0 !important;
	width: 100% !important;
}

.elementor-page .elementor .hero__actions > .elementor-element,
.elementor-page .elementor .section-action > .elementor-element {
	flex: 0 0 auto !important;
	width: auto !important;
}

.elementor-page .elementor .hero__note {
	color: var(--dsiq-muted) !important;
	font-size: 0.84rem !important;
	margin: 1.2rem auto 0 !important;
	max-width: 650px !important;
	width: 100% !important;
}

/* Homepage ambient hero: dark brand canvas with a non-interactive Lottie layer. */
body.home .elementor .hero,
body.home .hero {
	background: #112240 !important;
	isolation: isolate !important;
	position: relative !important;
}

body.home .hero .hero__inner {
	position: relative !important;
	z-index: 2 !important;
}

body.home.elementor-page .elementor .hero h1,
body.home.elementor-page .elementor .hero h1.elementor-heading-title,
body.home .hero h1,
body.home .hero h1.elementor-heading-title {
	color: var(--dsiq-white) !important;
}

body.home .hero .eyebrow,
body.home .hero .eyebrow .elementor-heading-title {
	color: var(--dsiq-gold) !important;
}

body.home .hero .hero__body,
body.home .hero .hero__body p,
body.home .hero .hero__note,
body.home .hero .hero__note p {
	color: rgba(255, 255, 255, 0.76) !important;
}

body.home .hero .dsiq-button-secondary .elementor-button,
body.home .hero .button--secondary {
	background: transparent !important;
	border-color: rgba(255, 255, 255, 0.42) !important;
	color: var(--dsiq-white) !important;
}

body.home .hero .dsiq-button-secondary .elementor-button:hover,
body.home .hero .button--secondary:hover {
	background: var(--dsiq-white) !important;
	border-color: var(--dsiq-white) !important;
	color: var(--dsiq-deep-navy) !important;
}

.dsiq-ambient-animation {
	height: 100% !important;
	inset: 0 !important;
	opacity: 0.72 !important;
	overflow: hidden !important;
	pointer-events: none !important;
	position: absolute !important;
	width: 100% !important;
	z-index: 1 !important;
}

.dsiq-ambient-animation svg {
	display: block !important;
	height: 100% !important;
	width: 100% !important;
}

@media (prefers-reduced-motion: reduce) {
	.dsiq-ambient-animation {
		display: none !important;
	}
}

/* Eyebrows and centred section introductions. */
.elementor-page .elementor .eyebrow,
.elementor-page .elementor .eyebrow .elementor-heading-title {
	color: var(--dsiq-gold-dark) !important;
	font-family: var(--dsiq-body) !important;
	font-size: 0.78rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.16em !important;
	line-height: 1.4 !important;
	text-transform: uppercase !important;
}

.elementor-page .elementor .section-heading {
	--align-items: center !important;
	--flex-direction: column !important;
	align-items: center !important;
	flex-direction: column !important;
	margin: 0 auto clamp(2.2rem, 5vw, 4.2rem) !important;
	max-width: 860px !important;
	padding: 0 !important;
	text-align: center !important;
	width: 100% !important;
}

.elementor-page .elementor .section-heading > .elementor-element,
.elementor-page .elementor .section-heading .elementor-widget-container,
.elementor-page .elementor .section-heading .elementor-heading-title,
.elementor-page .elementor .section-heading p {
	max-width: 100% !important;
	text-align: center !important;
	width: 100% !important;
}

.elementor-page .elementor .section-heading .elementor-widget-text-editor p {
	color: var(--dsiq-muted) !important;
	font-family: var(--dsiq-body) !important;
	font-size: 1.08rem !important;
	margin-inline: auto !important;
	max-width: 740px !important;
}

/* Card grids and panels. Elementor's flex variables otherwise shrink cards. */
.elementor-page .elementor .card-grid {
	--display: grid !important;
	display: grid !important;
	gap: clamp(1rem, 2.2vw, 1.5rem) !important;
	grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
	padding: 0 !important;
	width: 100% !important;
}

.elementor-page .elementor .card-grid > .info-card {
	--width: auto !important;
	background: var(--dsiq-white) !important;
	border: 1px solid var(--dsiq-border) !important;
	border-radius: var(--dsiq-radius) !important;
	grid-column: span 4 !important;
	max-width: none !important;
	min-width: 0 !important;
	padding: clamp(1.5rem, 3.5vw, 2.3rem) !important;
	width: auto !important;
}

.elementor-page .elementor .card-grid > .info-card > .elementor-element,
.elementor-page .elementor .info-card .elementor-widget,
.elementor-page .elementor .info-card .elementor-widget-container {
	max-width: 100% !important;
	width: 100% !important;
}

.elementor-page .elementor .info-card h3,
.elementor-page .elementor .info-card .elementor-heading-title {
	color: var(--dsiq-navy) !important;
	font-family: var(--dsiq-heading) !important;
	font-size: clamp(1.55rem, 2.3vw, 2rem) !important;
}

.elementor-page .elementor .info-card p {
	color: var(--dsiq-muted) !important;
	font-family: var(--dsiq-body) !important;
	font-size: 0.96rem !important;
}

.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(2),
.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(2) ~ .info-card {
	grid-column: span 6 !important;
}

.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(4),
.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(4) ~ .info-card {
	grid-column: span 3 !important;
}

.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(5),
.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(5) ~ .info-card {
	grid-column: span 4 !important;
}

.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(5) ~ .info-card:nth-child(n+4) {
	grid-column: span 6 !important;
}

.elementor-page .elementor .application-panel {
	--display: grid !important;
	display: grid !important;
	grid-template-columns: minmax(0, 0.85fr) minmax(360px, 1.15fr) !important;
	width: 100% !important;
}

/* Dark sections keep high-contrast white type and subtle cards. */
.elementor-page .elementor .content-section--navy {
	background: var(--dsiq-deep-navy) !important;
	color: rgba(255, 255, 255, 0.78) !important;
}

.elementor-page .elementor .content-section--navy h2,
.elementor-page .elementor .content-section--navy h3,
.elementor-page .elementor .content-section--navy .elementor-heading-title {
	color: var(--dsiq-white) !important;
}

.elementor-page .elementor .content-section--navy .eyebrow,
.elementor-page .elementor .content-section--navy .eyebrow .elementor-heading-title {
	color: var(--dsiq-gold) !important;
}

.elementor-page .elementor .content-section--navy .section-heading p,
.elementor-page .elementor .content-section--navy .info-card p {
	color: rgba(255, 255, 255, 0.72) !important;
}

.elementor-page .elementor .content-section--navy .info-card {
	background: rgba(255, 255, 255, 0.05) !important;
	border-color: rgba(255, 255, 255, 0.13) !important;
}

.elementor-page .elementor .content-section--navy .info-card h3,
.elementor-page .elementor .content-section--navy .info-card .elementor-heading-title {
	color: var(--dsiq-white) !important;
}

/* Elementor-rendered footer follows the original four-column layout. */
.elementor-page .dsiq-elementor-footer .site-footer__grid {
	--display: grid !important;
	--flex-direction: row !important;
	display: grid !important;
	gap: 2rem !important;
	grid-template-columns: 1.6fr 1fr 1fr 1fr !important;
	padding-inline: clamp(1.25rem, 4vw, 2.5rem) !important;
	width: 100% !important;
}

.elementor-page .dsiq-elementor-footer .site-footer__grid > .e-con {
	--width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	width: auto !important;
}

.elementor-page .dsiq-elementor-footer h2,
.elementor-page .dsiq-elementor-footer .elementor-heading-title {
	color: var(--dsiq-white) !important;
	font-family: var(--dsiq-body) !important;
	font-size: 0.78rem !important;
	letter-spacing: 0.13em !important;
	line-height: 1.4 !important;
	text-transform: uppercase !important;
}

.elementor-page .dsiq-elementor-footer p,
.elementor-page .dsiq-elementor-footer a,
.elementor-page .dsiq-elementor-footer li {
	color: rgba(255, 255, 255, 0.76) !important;
	font-family: var(--dsiq-body) !important;
}

.elementor-page .dsiq-elementor-footer .site-footer__bottom {
	--flex-direction: row !important;
	--justify-content: space-between !important;
	display: flex !important;
	flex-direction: row !important;
	justify-content: space-between !important;
	padding-inline: clamp(1.25rem, 4vw, 2.5rem) !important;
	width: 100% !important;
}

@media (max-width: 1100px) {
	.elementor-page .dsiq-elementor-header .menu-toggle {
		display: inline-flex !important;
	}

	.elementor-page .dsiq-elementor-header .primary-nav {
		--align-items: stretch !important;
		--flex-direction: column !important;
		align-items: stretch !important;
		background: var(--dsiq-white) !important;
		bottom: 0 !important;
		display: none !important;
		flex-direction: column !important;
		left: 0 !important;
		overflow-y: auto !important;
		padding: 1.5rem !important;
		position: fixed !important;
		right: 0 !important;
		top: 76px !important;
		width: 100% !important;
	}

	.elementor-page .dsiq-elementor-header .primary-nav.is-open {
		display: flex !important;
	}

	.elementor-page .dsiq-elementor-header .primary-menu {
		align-items: stretch !important;
		flex-direction: column !important;
		gap: 0 !important;
	}

	.elementor-page .elementor .card-grid > .info-card,
	.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(4),
	.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(4) ~ .info-card,
	.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(5),
	.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(5) ~ .info-card,
	.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(5) ~ .info-card:nth-child(n+4) {
		grid-column: span 6 !important;
	}

	.elementor-page .dsiq-elementor-footer .site-footer__grid {
		grid-template-columns: 1.4fr 1fr 1fr !important;
	}

	.elementor-page .dsiq-elementor-footer .site-footer__grid > .e-con:last-child {
		grid-column: 2 / -1 !important;
	}
}

@media (max-width: 820px) {
	.elementor-page .elementor .hero h1,
	.elementor-page .elementor .hero h1.elementor-heading-title {
		font-size: clamp(3rem, 13vw, 4.6rem) !important;
	}

	.elementor-page .elementor .card-grid {
		grid-template-columns: 1fr !important;
	}

	.elementor-page .elementor .card-grid > .info-card,
	.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(2),
	.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(2) ~ .info-card,
	.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(4),
	.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(4) ~ .info-card,
	.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(5),
	.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(5) ~ .info-card,
	.elementor-page .elementor .card-grid > .info-card:first-child:nth-last-child(5) ~ .info-card:nth-child(n+4) {
		grid-column: 1 !important;
	}

	.elementor-page .elementor .application-panel {
		grid-template-columns: 1fr !important;
	}

	.elementor-page .dsiq-elementor-footer .site-footer__grid {
		grid-template-columns: 1fr 1fr !important;
	}

	.elementor-page .dsiq-elementor-footer .site-footer__brand {
		grid-column: 1 / -1 !important;
	}

	.elementor-page .dsiq-elementor-footer .site-footer__grid > .e-con:last-child {
		grid-column: auto !important;
	}

	.elementor-page .dsiq-elementor-footer .site-footer__bottom {
		--flex-direction: column !important;
		flex-direction: column !important;
	}
}

@media (max-width: 520px) {
	.elementor-page .dsiq-elementor-header .site-header__inner {
		min-height: 68px !important;
	}

	.elementor-page .dsiq-elementor-header .primary-nav {
		top: 68px !important;
	}

	.elementor-page .elementor .hero__actions {
		--align-items: stretch !important;
		--flex-direction: column !important;
		align-items: stretch !important;
		flex-direction: column !important;
	}

	.elementor-page .elementor .hero__actions > .elementor-element,
	.elementor-page .elementor .hero__actions .elementor-button {
		width: 100% !important;
	}

	.elementor-page .dsiq-elementor-footer .site-footer__grid {
		grid-template-columns: 1fr !important;
	}

	.elementor-page .dsiq-elementor-footer .site-footer__brand,
	.elementor-page .dsiq-elementor-footer .site-footer__grid > .e-con:last-child {
		grid-column: auto !important;
	}
}
