/*
 * DCN — WordPress & Elementor integration.
 *
 * app.css (Tailwind v4) ships every rule inside cascade layers. Unlayered CSS from
 * WordPress core and Elementor therefore beats it regardless of specificity, so:
 *   1. Inside raw markup blocks (.dcn-raw) conflicting properties are handed back to
 *      the layered Tailwind utilities with `revert-layer`.
 *   2. Native Elementor widgets used by the templates are styled here with the same
 *      design tokens (--color-*, --font-*, --shadow-*) that app.css defines.
 * Breakpoints match Tailwind: sm 40rem, md 48rem, lg 64rem.
 */

/* ---------------------------------------------------------------------------
 * 1. Compatibility
 * ------------------------------------------------------------------------ */

body a:where(:not(.wp-element-button)) {
	text-decoration: revert-layer;
}

.dcn-site .elementor .dcn-raw img {
	height: revert-layer;
	max-width: revert-layer;
	border: revert-layer;
	border-radius: revert-layer;
	box-shadow: revert-layer;
}

.dcn-site .elementor .dcn-raw a {
	box-shadow: revert-layer;
	text-decoration: revert-layer;
}

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: var(--color-surface);
	box-shadow: var(--shadow-border-hover);
	clip-path: none;
	color: var(--color-ink);
	display: block;
	font-size: 0.875rem;
	font-weight: 600;
	height: auto;
	left: 0.5rem;
	padding: 0.75rem 1rem;
	text-decoration: none;
	top: 0.5rem;
	width: auto;
	z-index: 100000;
}

/* Containers created for this site carry no default padding or gaps; layout is set below. */
.dcn-site .elementor .e-con.dcn {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--widgets-spacing: 0px;
	gap: 0;
}

.dcn-site .elementor .e-con.dcn > .elementor-widget:not(:last-child) {
	margin-block-end: 0;
}

.dcn-site .elementor .e-con.dcn-section > .elementor-widget {
	width: 100%;
}

/* Widgets with their own max-width: outrank Elementor's `.elementor.elementor .e-con > .elementor-widget { max-width: 100% }`
 * by including the parent container in the selector (see .dcn-contact__lead, .dcn-hero__title, .dcn-hero__lead, .dcn-footer__tagline). */

/* Widget text resets (Elementor sets line-height: 1 on headings and margins on paragraphs). */
.dcn-site .elementor .elementor-element[class*="dcn-"]:not(.dcn-raw) .elementor-heading-title,
.dcn-site .elementor .elementor-element[class*="dcn-"]:not(.dcn-raw) .elementor-widget-container > p,
.dcn-site .elementor .elementor-element[class*="dcn-"].elementor-widget-text-editor p {
	margin: 0;
	padding: 0;
}

/* ---------------------------------------------------------------------------
 * 2. Shared pieces
 * ------------------------------------------------------------------------ */

.elementor-location-header,
.dcn-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
}

.admin-bar .elementor-location-header,
.admin-bar .dcn-site-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .elementor-location-header,
	.admin-bar .dcn-site-header {
		top: 46px;
	}
}

@media (max-width: 600px) {
	.admin-bar .elementor-location-header,
	.admin-bar .dcn-site-header {
		top: 0;
	}
}

.dcn-site .elementor .elementor-element.dcn-eyebrow .elementor-heading-title {
	color: var(--color-muted);
	font-family: var(--font-sans);
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.5;
}

.dcn-site .elementor .elementor-element.dcn-section-title {
	margin-top: 0.75rem;
}

.dcn-site .elementor .elementor-element.dcn-section-title .elementor-heading-title {
	color: var(--color-ink);
	font-family: var(--font-display);
	font-size: 1.875rem;
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: 1.2;
}

/* Buttons */
.dcn-site .elementor .elementor-element.dcn-btn .elementor-button {
	align-items: center;
	border: 0;
	display: inline-flex;
	fill: currentColor;
	font-family: var(--font-sans);
	font-weight: 600;
	gap: 0.5rem;
	justify-content: center;
	letter-spacing: -0.025em;
	text-decoration: none;
	transition: background-color 150ms cubic-bezier(0, 0, 0.2, 1), color 150ms cubic-bezier(0, 0, 0.2, 1), box-shadow 150ms cubic-bezier(0, 0, 0.2, 1), transform 150ms cubic-bezier(0, 0, 0.2, 1);
}

.dcn-site .elementor .elementor-element.dcn-btn .elementor-button:active {
	transform: scale(0.96);
}

.dcn-site .elementor .elementor-element.dcn-btn--accent .elementor-button {
	background-color: var(--color-accent);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-border);
	color: var(--color-accent-fg);
	font-size: 0.875rem;
	height: 2.5rem;
	line-height: calc(1.25 / 0.875);
	padding: 0 0.875rem;
}

.dcn-site .elementor .elementor-element.dcn-btn--accent .elementor-button:hover,
.dcn-site .elementor .elementor-element.dcn-btn--accent .elementor-button:focus-visible {
	background-color: var(--color-accent-hover);
	color: var(--color-accent-fg);
}

.dcn-site .elementor .elementor-element.dcn-btn--paper .elementor-button {
	background-color: var(--color-paper);
	border-radius: var(--radius-lg);
	color: var(--color-ink);
	font-size: 1rem;
	height: 3rem;
	line-height: 1.5;
	padding: 0 1.25rem;
}

.dcn-site .elementor .elementor-element.dcn-btn--paper .elementor-button:hover,
.dcn-site .elementor .elementor-element.dcn-btn--paper .elementor-button:focus-visible {
	background-color: var(--color-surface);
	color: var(--color-ink);
}

/* Site logo (header and footer) */
.dcn-site .elementor .elementor-element.dcn-site-logo,
.dcn-site .elementor .elementor-element.dcn-site-logo .elementor-widget-container {
	text-align: left;
}

.dcn-site .elementor .elementor-element.dcn-site-logo a {
	align-items: center;
	display: flex;
}

.dcn-site .elementor .elementor-element.dcn-site-logo img {
	display: block;
	height: 4rem;
	max-width: min(100%, 17.5rem);
	object-fit: contain;
	object-position: left;
	width: auto;
}

@media (min-width: 40rem) {
	.dcn-site .elementor .elementor-element.dcn-site-logo img {
		height: 4.75rem;
		max-width: 20rem;
	}
}

/* ---------------------------------------------------------------------------
 * 3. Header template
 * ------------------------------------------------------------------------ */

.dcn-site .elementor .e-con.dcn-header {
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	background-color: color-mix(in oklab, var(--color-paper) 92%, transparent);
	border-bottom: 1px solid color-mix(in oklab, var(--color-line) 80%, transparent);
}

.dcn-site .elementor .e-con.dcn-announcement {
	background-color: var(--color-accent);
	border-bottom: 1px solid var(--color-accent);
	padding: 0.5rem 1.25rem;
	text-align: center;
}

.dcn-site .elementor .elementor-element.dcn-announcement__text .elementor-heading-title {
	color: var(--color-accent-fg);
	font-family: var(--font-sans);
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.375;
	text-align: center;
}

.dcn-site .elementor .elementor-element.dcn-announcement__text .elementor-heading-title a {
	color: inherit;
	text-decoration: none;
}

.dcn-site .elementor .elementor-element.dcn-announcement__text .elementor-heading-title a:hover {
	text-decoration: underline;
}

.dcn-site .elementor .e-con.dcn-header__bar {
	align-items: center;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 1rem;
	justify-content: space-between;
	margin-inline: auto;
	max-width: 72rem;
	min-height: 5.5rem;
	padding: 0.5rem 1.25rem;
	width: 100%;
}

.dcn-site .elementor .e-con.dcn-header__bar > .elementor-widget {
	flex: 0 1 auto;
	width: auto;
}

.dcn-site .elementor .elementor-element.dcn-header__cta {
	display: none;
}

@media (min-width: 40rem) {
	.dcn-site .elementor .e-con.dcn-header__bar {
		min-height: 6.25rem;
	}

	.dcn-site .elementor .elementor-element.dcn-header__cta {
		display: block;
	}
}

/* Primary navigation (Nav Menu widget) */
.dcn-site .elementor .e-con.dcn-header__nav {
	border-top: 1px solid var(--color-line);
}

.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-menu-toggle,
.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--dropdown {
	display: none !important;
}

.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main {
	display: block;
	width: 100%;
}

.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main > .elementor-nav-menu {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-inline: auto;
	max-width: 72rem;
	padding: 0;
}

.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu > li {
	display: flex;
	margin: 0;
	position: static;
}

.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .elementor-item {
	align-items: center;
	color: color-mix(in oklab, var(--color-ink) 70%, transparent);
	display: flex;
	font-family: var(--font-sans);
	font-size: 0.875rem;
	font-weight: 500;
	gap: 0.375rem;
	height: 3rem;
	justify-content: center;
	line-height: calc(1.25 / 0.875);
	margin: 0;
	padding: 0 0.5rem;
	position: relative;
	text-align: center;
	text-decoration: none;
	transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1);
	width: 100%;
}

.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .elementor-item::after {
	background-color: var(--color-accent);
	border-radius: 9999px;
	bottom: 0;
	content: "";
	height: 2px;
	left: 0.75rem;
	opacity: 0;
	position: absolute;
	right: 0.75rem;
	top: auto;
	transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
	width: auto;
}

.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .elementor-item:hover,
.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .elementor-item:focus-visible,
.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .elementor-item-active,
.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .current-menu-item > .elementor-item,
.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .current-menu-ancestor > .elementor-item,
.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .current-page-ancestor > .elementor-item {
	color: var(--color-ink);
}

.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .elementor-item-active::after,
.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .current-menu-item > .elementor-item::after,
.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .current-menu-ancestor > .elementor-item::after,
.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .current-page-ancestor > .elementor-item::after {
	opacity: 1;
}

/* "Free" badge, added to menu items with the nav-badge-free class (see dcn_nav_menu_badge()).
 * A real element, not a pseudo-element: Elementor's hover pointers animate ::before/::after. */
.dcn-site .dcn-nav-badge {
	align-items: center;
	background-color: var(--color-accent);
	border-radius: 9999px;
	color: var(--color-accent-fg);
	display: inline-flex;
	flex-shrink: 0;
	font-family: var(--font-sans);
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1;
	opacity: 1;
	padding: 0.125rem 0.375rem;
	text-decoration: none;
	text-transform: none;
	visibility: visible;
}

@media (min-width: 40rem) {
	.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main > .elementor-nav-menu {
		align-items: stretch;
		display: flex;
		flex-wrap: nowrap;
		padding-inline: 1.25rem;
	}

	.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu > li {
		flex: 1 1 0%;
	}

	.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .elementor-item {
		font-size: 0.9375rem;
		padding: 0 0.75rem;
	}

	.dcn-site .elementor .elementor-element.dcn-primary-nav .elementor-nav-menu--main .elementor-item::after {
		left: 1rem;
		right: 1rem;
	}

}

/* ---------------------------------------------------------------------------
 * 4. Footer template
 * ------------------------------------------------------------------------ */

.dcn-site .elementor .e-con.dcn-footer {
	background-color: var(--color-ink);
	color: var(--color-paper);
}

.dcn-site .elementor .e-con.dcn-footer__grid {
	display: grid;
	gap: 2.5rem;
	grid-template-columns: minmax(0, 1fr);
	margin-inline: auto;
	max-width: 72rem;
	padding: 3.5rem 1.25rem;
	width: 100%;
}

.dcn-site .elementor .e-con.dcn-footer__grid > .e-con {
	max-width: none;
	width: auto;
}

@media (min-width: 40rem) {
	.dcn-site .elementor .e-con.dcn-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 64rem) {
	.dcn-site .elementor .e-con.dcn-footer__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.dcn-site .elementor .e-con > .elementor-element.dcn-footer__tagline {
	margin-top: 1rem;
	max-width: 20rem;
}

.dcn-site .elementor .elementor-element.dcn-footer__tagline p {
	color: color-mix(in oklab, var(--color-paper) 70%, transparent);
	font-size: 0.875rem;
	line-height: 1.625;
}

.dcn-site .elementor .elementor-element.dcn-footer__label .elementor-heading-title {
	color: color-mix(in oklab, var(--color-paper) 55%, transparent);
	font-family: var(--font-sans);
	font-size: 0.72rem;
	font-weight: 600;
	line-height: 1.5;
}

.dcn-site .elementor .elementor-element.dcn-footer__label--app {
	margin-top: 1.5rem;
}

.dcn-site .elementor .elementor-element.dcn-footer__label--company {
	margin-top: 2rem;
}

.dcn-site .elementor .elementor-element.dcn-footer-menu {
	margin-top: 0.75rem;
}

.dcn-site .elementor .elementor-element.dcn-footer-menu .elementor-menu-toggle,
.dcn-site .elementor .elementor-element.dcn-footer-menu .elementor-nav-menu--dropdown {
	display: none !important;
}

.dcn-site .elementor .elementor-element.dcn-footer-menu .elementor-nav-menu--main > .elementor-nav-menu {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 0;
}

.dcn-site .elementor .elementor-element.dcn-footer-menu .elementor-nav-menu > li {
	display: block;
	margin: 0;
}

.dcn-site .elementor .elementor-element.dcn-footer-menu .elementor-nav-menu--main .elementor-item {
	color: color-mix(in oklab, var(--color-paper) 80%, transparent);
	display: inline;
	font-family: var(--font-sans);
	font-size: 0.875rem;
	font-weight: 400;
	line-height: calc(1.25 / 0.875);
	padding: 0;
	text-decoration: none;
	transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1);
}

.dcn-site .elementor .elementor-element.dcn-footer-menu .elementor-nav-menu--main .elementor-item::after {
	content: none;
}

.dcn-site .elementor .elementor-element.dcn-footer-menu .elementor-nav-menu--main .elementor-item:hover,
.dcn-site .elementor .elementor-element.dcn-footer-menu .elementor-nav-menu--main .elementor-item:focus-visible {
	color: var(--color-paper);
}

.dcn-site .elementor .e-con.dcn-footer__bottom {
	border-top: 1px solid color-mix(in oklab, var(--color-paper) 10%, transparent);
}

.dcn-site .elementor .e-con.dcn-footer__legal {
	color: color-mix(in oklab, var(--color-paper) 50%, transparent);
	display: flex;
	flex-direction: column;
	font-size: 0.75rem;
	gap: 1rem;
	line-height: calc(1 / 0.75);
	margin-inline: auto;
	max-width: 72rem;
	padding: 1.25rem;
	width: 100%;
}

.dcn-site .elementor .e-con.dcn-footer__legal > .elementor-widget {
	flex: 0 1 auto;
	width: auto;
}

.dcn-site .elementor .e-con.dcn-footer__legal p {
	color: inherit;
	font-size: inherit;
	line-height: inherit;
}

@media (min-width: 40rem) {
	.dcn-site .elementor .e-con.dcn-footer__legal {
		align-items: center;
		flex-direction: row;
		justify-content: space-between;
	}
}

/* Social Icons widget */
.dcn-site .elementor .elementor-element.dcn-social .elementor-social-icons-wrapper {
	align-items: center;
	display: flex;
	gap: 0.75rem;
}

.dcn-site .elementor .elementor-element.dcn-social .elementor-grid-item {
	margin: 0;
}

.dcn-site .elementor .elementor-element.dcn-social .elementor-social-icon {
	--icon-padding: 0;
	--icon-size: 1rem;
	background: transparent;
	border-radius: 0;
	color: color-mix(in oklab, var(--color-paper) 70%, transparent);
	font-size: 1rem;
	height: auto;
	padding: 0;
	transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1);
	width: auto;
}

.dcn-site .elementor .elementor-element.dcn-social .elementor-social-icon:hover {
	color: var(--color-paper);
	opacity: 1;
}

.dcn-site .elementor .elementor-element.dcn-social .elementor-social-icon svg {
	fill: none;
	height: 1rem;
	stroke: currentColor;
	width: 1rem;
}

/* ---------------------------------------------------------------------------
 * 5. Resource templates (hero, article, related cards, CTA)
 * ------------------------------------------------------------------------ */

.dcn-site .elementor .e-con.dcn-hero {
	color: var(--color-paper);
	isolation: isolate;
	overflow: hidden;
	position: relative;
}

.dcn-site .elementor .e-con.dcn-hero__inner {
	margin-inline: auto;
	max-width: 72rem;
	padding: 4rem 1.25rem;
	position: relative;
	width: 100%;
}

@media (min-width: 40rem) {
	.dcn-site .elementor .e-con.dcn-hero__inner {
		padding-block: 5rem;
	}
}

.dcn-site .elementor .elementor-element.dcn-hero__eyebrow .elementor-heading-title,
.dcn-site .elementor .elementor-element.dcn-hero__eyebrow .elementor-icon-list-text,
.dcn-site .elementor .elementor-element.dcn-hero__eyebrow .elementor-icon-list-text time {
	color: color-mix(in oklab, var(--color-paper) 75%, transparent);
	font-family: var(--font-sans);
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.5;
	padding: 0;
}

.dcn-site .elementor .elementor-element.dcn-hero__eyebrow .elementor-icon-list-items {
	margin: 0;
	padding: 0;
}

.dcn-site .elementor .elementor-element.dcn-hero__eyebrow .elementor-icon-list-item {
	margin: 0;
	padding: 0;
}

.dcn-site .elementor .e-con > .elementor-element.dcn-hero__title {
	margin-top: 0.75rem;
	max-width: 48rem;
}

.dcn-site .elementor .elementor-element.dcn-hero__title .elementor-heading-title {
	color: var(--color-paper);
	font-family: var(--font-display);
	font-size: 2.15rem;
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: 1.5;
}

@media (min-width: 40rem) {
	.dcn-site .elementor .elementor-element.dcn-hero__title .elementor-heading-title {
		font-size: 3rem;
		line-height: 1;
	}
}

.dcn-site .elementor .e-con > .elementor-element.dcn-hero__lead {
	color: color-mix(in oklab, var(--color-paper) 88%, transparent);
	font-size: 1.125rem;
	line-height: 1.625;
	margin-top: 1.25rem;
	max-width: 42rem;
}

.dcn-site .elementor .elementor-element.dcn-hero__lead .elementor-heading-title,
.dcn-site .elementor .elementor-element.dcn-hero__lead p {
	color: inherit;
	font-family: var(--font-sans);
	font-size: inherit;
	font-weight: 400;
	line-height: inherit;
}

.dcn-site .elementor .e-con.dcn-article {
	margin-inline: auto;
	max-width: 48rem;
	padding: 4rem 1.25rem;
	width: 100%;
}

.dcn-site .elementor .e-con.dcn-related {
	background-color: var(--color-surface);
	border-top: 1px solid var(--color-line);
}

.dcn-site .elementor .e-con.dcn-related__inner,
.dcn-site .elementor .e-con.dcn-archive {
	margin-inline: auto;
	max-width: 72rem;
	padding: 4rem 1.25rem;
	width: 100%;
}

/* Posts / Archive Posts widgets as resource cards */
.dcn-site .elementor .elementor-element.dcn-cards--related {
	margin-top: 2.5rem;
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-posts-container {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 40rem) {
	.dcn-site .elementor .elementor-element.dcn-cards--archive .elementor-posts-container {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 48rem) {
	.dcn-site .elementor .elementor-element.dcn-cards--related .elementor-posts-container {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 64rem) {
	.dcn-site .elementor .elementor-element.dcn-cards--archive .elementor-posts-container {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-post {
	background-color: var(--color-surface);
	border: 0;
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-border);
	display: flex;
	flex-direction: column;
	margin: 0;
	overflow: hidden;
	position: relative;
	transition: box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1);
}

.dcn-site .elementor .elementor-element.dcn-cards--related .elementor-post {
	background-color: var(--color-paper);
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-post:hover,
.dcn-site .elementor .elementor-element.dcn-cards .elementor-post:focus-within {
	box-shadow: var(--shadow-border-hover);
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-post__thumbnail__link {
	aspect-ratio: 16 / 10;
	display: block;
	margin: 0;
	overflow: hidden;
	padding: 0;
	position: relative;
	width: 100%;
}

.dcn-site .elementor .elementor-element.dcn-cards--related .elementor-post__thumbnail__link {
	aspect-ratio: 16 / 9;
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-post__thumbnail {
	inset: 0;
	padding: 0;
	position: absolute;
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-post__thumbnail img {
	height: 100%;
	inset: 0;
	max-width: none;
	object-fit: cover;
	outline: 1px solid color-mix(in oklab, var(--color-ink) 10%, transparent);
	outline-offset: -1px;
	position: absolute;
	transform: none;
	width: 100%;
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-post__text {
	display: flex;
	flex: 1;
	flex-direction: column;
	margin: 0;
	padding: 1.25rem;
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-post__meta-data {
	border: 0;
	color: var(--color-muted);
	font-size: 0.75rem;
	letter-spacing: 0.025em;
	line-height: calc(1 / 0.75);
	margin: 0;
	order: -1;
	padding: 0;
	text-transform: uppercase;
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-post__title {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: calc(1.75 / 1.25);
	margin: 0.5rem 0 0;
}

.dcn-site .elementor .elementor-element.dcn-cards--related .elementor-post__title {
	font-size: 1.125rem;
	letter-spacing: normal;
	line-height: calc(1.75 / 1.125);
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-post__title a {
	color: var(--color-ink);
	text-decoration: none;
	transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* The whole card is clickable, as in the original design. */
.dcn-site .elementor .elementor-element.dcn-cards .elementor-post__title a::after {
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.dcn-site .elementor .elementor-element.dcn-cards--archive .elementor-post:hover .elementor-post__title a {
	color: var(--color-accent);
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-post__excerpt {
	margin: 0.5rem 0 0;
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-post__excerpt p {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	color: var(--color-muted);
	display: -webkit-box;
	font-size: 0.875rem;
	line-height: calc(1.25 / 0.875);
	margin: 0;
	overflow: hidden;
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-pagination,
.dcn-pagination .nav-links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	font-size: 0.875rem;
	font-weight: 600;
	gap: 0.5rem;
	justify-content: center;
	margin-top: 2.5rem;
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-pagination .page-numbers,
.dcn-pagination .page-numbers {
	border-radius: var(--radius-sm);
	color: var(--color-ink);
	padding: 0.375rem 0.75rem;
	text-decoration: none;
}

.dcn-site .elementor .elementor-element.dcn-cards .elementor-pagination .page-numbers.current,
.dcn-pagination .page-numbers.current {
	background-color: var(--color-ink);
	color: var(--color-paper);
}

/* Call to action */
.dcn-site .elementor .e-con.dcn-cta {
	background-color: var(--color-ink);
	color: var(--color-paper);
}

.dcn-site .elementor .e-con.dcn-cta__inner {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	justify-content: space-between;
	margin-inline: auto;
	max-width: 72rem;
	padding: 4rem 1.25rem;
	width: 100%;
}

.dcn-site .elementor .e-con.dcn-cta__inner > .elementor-element {
	flex: 0 1 auto;
	width: auto;
}

.dcn-site .elementor .e-con.dcn-cta__text {
	max-width: 36rem;
}

@media (min-width: 40rem) {
	.dcn-site .elementor .e-con.dcn-cta__inner {
		align-items: center;
		flex-direction: row;
	}
}

.dcn-site .elementor .elementor-element.dcn-cta__title .elementor-heading-title {
	color: var(--color-paper);
	font-family: var(--font-display);
	font-size: 1.875rem;
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: 1.2;
}

.dcn-site .elementor .elementor-element.dcn-cta__lead {
	margin-top: 0.75rem;
}

.dcn-site .elementor .elementor-element.dcn-cta__lead p {
	color: color-mix(in oklab, var(--color-paper) 75%, transparent);
	font-size: 1rem;
	line-height: 1.5;
}

.dcn-site .elementor .elementor-element.dcn-cta__button {
	flex-shrink: 0;
}

/* ---------------------------------------------------------------------------
 * 6. Contact page and form
 * ------------------------------------------------------------------------ */

.dcn-site .elementor .e-con.dcn-contact {
	display: grid;
	gap: 3rem;
	grid-template-columns: minmax(0, 1fr);
	margin-inline: auto;
	max-width: 72rem;
	padding: 4rem 1.25rem;
	width: 100%;
}

.dcn-site .elementor .e-con.dcn-contact > .e-con {
	max-width: none;
	width: auto;
}

@media (min-width: 64rem) {
	.dcn-site .elementor .e-con.dcn-contact {
		align-items: start;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.dcn-site .elementor .elementor-element.dcn-contact__title {
	margin-top: 0.75rem;
}

.dcn-site .elementor .elementor-element.dcn-contact__title .elementor-heading-title {
	color: var(--color-ink);
	font-family: var(--font-display);
	font-size: 2.25rem;
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: calc(2.5 / 2.25);
}

.dcn-site .elementor .e-con > .elementor-element.dcn-contact__lead {
	margin-top: 1rem;
	max-width: 28rem;
}

.dcn-site .elementor .elementor-element.dcn-contact__lead p {
	color: var(--color-muted);
	font-size: 1.125rem;
	line-height: calc(1.75 / 1.125);
}

.dcn-site .elementor .elementor-element.dcn-contact__phone {
	margin-top: 1.5rem;
}

.dcn-site .elementor .elementor-element.dcn-contact__phone p {
	color: color-mix(in oklab, var(--color-ink) 90%, transparent);
	font-size: 0.875rem;
	line-height: calc(1.25 / 0.875);
}

.dcn-site .elementor .elementor-element.dcn-contact__phone a {
	color: var(--color-accent);
	font-weight: 500;
	text-decoration: none;
}

.dcn-site .elementor .elementor-element.dcn-contact__phone a:hover {
	color: var(--color-accent-hover);
}

.dcn-site .elementor .elementor-element.dcn-contact__photo {
	display: none;
	margin-top: 2.5rem;
}

.dcn-site .elementor .elementor-element.dcn-contact__photo img {
	aspect-ratio: 4 / 3;
	border-radius: var(--radius-xl);
	height: auto;
	object-fit: cover;
	outline: 1px solid color-mix(in oklab, var(--color-ink) 10%, transparent);
	outline-offset: -1px;
	width: 100%;
}

@media (min-width: 64rem) {
	.dcn-site .elementor .elementor-element.dcn-contact__photo {
		display: block;
	}
}

.dcn-site .elementor .e-con.dcn-contact__card {
	background-color: var(--color-surface);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-border);
	padding: 1.5rem;
}

@media (min-width: 40rem) {
	.dcn-site .elementor .e-con.dcn-contact__card {
		padding: 2rem;
	}
}

/* Elementor Pro Form widget */
.dcn-site .elementor .elementor-element.dcn-form .elementor-form-fields-wrapper {
	display: grid;
	gap: 1rem;
	margin: 0;
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-field-group {
	display: block;
	margin: 0;
	padding: 0;
	width: 100%;
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-field-label {
	color: var(--color-ink);
	display: block;
	font-family: var(--font-sans);
	font-size: 0.875rem;
	font-weight: 500;
	line-height: calc(1.25 / 0.875);
	margin: 0 0 0.375rem;
	padding: 0;
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-field-group .elementor-field-textual,
.dcn-site .elementor .elementor-element.dcn-form .elementor-field-group select {
	background-color: var(--color-surface);
	border: 0;
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-border);
	color: var(--color-ink);
	font-family: var(--font-sans);
	font-size: 1rem;
	height: 2.75rem;
	line-height: 1.5;
	min-height: 0;
	outline: none;
	padding: 0 0.75rem;
	transition: box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1);
	width: 100%;
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-field-group textarea.elementor-field-textual {
	height: auto;
	padding-block: 0.625rem;
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-field-group .elementor-field-textual:focus,
.dcn-site .elementor .elementor-element.dcn-form .elementor-field-group select:focus {
	box-shadow: var(--shadow-border-hover);
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-field-group .elementor-select-wrapper select {
	-webkit-appearance: auto;
	appearance: auto;
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-select-wrapper::before,
.dcn-site .elementor .elementor-element.dcn-form .select-caret-down-wrapper {
	display: none;
}

.dcn-site .elementor .elementor-element.dcn-form .e-form__buttons {
	margin-top: 0.5rem;
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-button {
	align-items: center;
	background-color: var(--color-ink);
	border: 0;
	border-radius: var(--radius-lg);
	color: var(--color-paper);
	display: inline-flex;
	font-family: var(--font-sans);
	font-size: 1rem;
	font-weight: 600;
	height: 3rem;
	justify-content: center;
	letter-spacing: -0.025em;
	line-height: 1.5;
	padding: 0 1.25rem;
	transition: background-color 150ms cubic-bezier(0, 0, 0.2, 1), transform 150ms cubic-bezier(0, 0, 0.2, 1);
	width: 100%;
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-button:hover,
.dcn-site .elementor .elementor-element.dcn-form .elementor-button:focus-visible {
	background-color: var(--color-ink-soft);
	color: var(--color-paper);
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-button:active {
	transform: scale(0.96);
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-message {
	font-size: 0.875rem;
	line-height: 1.5;
	margin-top: 1rem;
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-message::before {
	content: none;
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-message-success {
	color: var(--color-ok);
	font-weight: 600;
}

.dcn-site .elementor .elementor-element.dcn-form .elementor-message-danger,
.dcn-site .elementor .elementor-element.dcn-form .elementor-error .elementor-message {
	color: var(--color-red-500);
}

/* ---------------------------------------------------------------------------
 * 7. Native Elementor pages — the few design details Elementor has no control for
 * ------------------------------------------------------------------------ */

/* Image crops to a fixed aspect ratio (Image widget + class dcn-ar-W-H). */
.dcn-site .elementor .elementor-widget-image[class*="dcn-ar-"] img {
	height: auto;
	object-fit: cover;
	width: 100%;
}

.dcn-site .elementor .elementor-widget-image.dcn-ar-16-10 img {
	aspect-ratio: 16 / 10;
}

.dcn-site .elementor .elementor-widget-image.dcn-ar-16-9 img {
	aspect-ratio: 16 / 9;
}

.dcn-site .elementor .elementor-widget-image.dcn-ar-4-3 img {
	aspect-ratio: 4 / 3;
}

.dcn-site .elementor .elementor-widget-image.dcn-crop-top img {
	object-position: top;
}

/* Hairline that keeps light photos from bleeding into the page. */
.dcn-site .elementor .elementor-widget-image.dcn-photo img {
	outline: 1px solid color-mix(in oklab, var(--color-ink) 10%, transparent);
	outline-offset: -1px;
}

/* Line icons (uploaded SVGs drawn with strokes). */
.dcn-site .elementor .elementor-widget-icon.dcn-icon .elementor-icon svg[stroke],
.dcn-site .elementor .elementor-widget-button .elementor-button-icon svg[stroke] {
	fill: none;
	stroke: currentColor;
}

.dcn-site .elementor .elementor-button-icon svg[stroke] {
	height: 1em;
	width: 1em;
}

.dcn-site .elementor .elementor-widget-icon.dcn-icon .elementor-icon-wrapper {
	display: flex;
	line-height: 1;
}

/* Card hover: title/arrow turn accent and the arrow nudges right (container class "group"). */
.dcn-site .elementor .e-con.group .dcn-gh-accent .elementor-heading-title,
.dcn-site .elementor .e-con.group .dcn-gh-accent .elementor-icon {
	transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1);
}

.dcn-site .elementor .e-con.group:hover .dcn-gh-accent .elementor-heading-title,
.dcn-site .elementor .e-con.group:hover .dcn-gh-accent .elementor-icon {
	color: var(--color-accent);
}

.dcn-site .elementor .e-con.group .dcn-gh-nudge .elementor-icon {
	transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1), color 150ms cubic-bezier(0.4, 0, 0.2, 1);
}

.dcn-site .elementor .e-con.group:hover .dcn-gh-nudge .elementor-icon {
	transform: translateX(2px);
}

/* Customer logo marquee: the row is as wide as its logos and scrolls (animation in app.css). */
.dcn-site .elementor .e-con.logo-track {
	flex-wrap: nowrap;
	max-width: none;
	width: max-content;
}

/* Buttons sit on their own line: no inherited line-box strut around the inline button. */
.dcn-site .elementor .elementor-widget-button.dcn-button {
	line-height: 0;
}

/* FAQ accordion: the open/close mark is top-aligned with the first line of the question. */
.dcn-site .elementor .dcn-faq .e-n-accordion-item-title {
	align-items: flex-start;
}

.dcn-site .elementor .dcn-faq .e-n-accordion-item-title-icon {
	align-items: center;
	display: flex;
	/* One line of question text: 17px body size x 1.55 line height. */
	min-height: 26.35px;
}

.dcn-site .elementor .dcn-faq--offset .e-n-accordion-item-title-icon {
	margin-top: 2px;
}

.dcn-site .elementor .dcn-faq .e-n-accordion-item-title-icon .e-closed svg[stroke] {
	fill: none;
	stroke: var(--n-accordion-icon-normal-color, currentColor);
}

.dcn-site .elementor .dcn-faq .e-n-accordion-item-title-icon .e-opened svg[stroke] {
	fill: none;
	stroke: var(--n-accordion-icon-active-color, currentColor);
}
