/* ==========================================================================
   Dices Agency — site styles
   One stylesheet for the whole site: tokens, Astra header and footer, Elementor
   layout, components, blog and case study classes, motion states.

   Colours and the type scale come from the Elementor kit (Site Settings >
   Global Colors / Global Fonts). The fallbacks below are the same values, used
   only where the kit stylesheet is missing.

   Class prefix: dx-   ·   Sections: dx-section   ·   Layout: dx-wrap, dx-grid
   ========================================================================== */

/* ---------- 1. Fonts (self-hosted DM Sans, variable weight + optical size) ---------- */
@font-face {
	font-family: "DM Sans";
	font-style: normal;
	font-weight: 100 1000;
	font-display: swap;
	src: url("../fonts/dm-sans-latin-opsz-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "DM Sans";
	font-style: normal;
	font-weight: 100 1000;
	font-display: swap;
	src: url("../fonts/dm-sans-latin-ext-opsz-normal.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- 2. Tokens ---------- */
body {
	/* brand colours (Elementor kit globals) */
	--dx-black: var(--e-global-color-dxblack, #000000);
	--dx-yellow: var(--e-global-color-dxyellow, #FFF94B);
	--dx-cream: var(--e-global-color-dxcream, #F3F3E1);
	--dx-orange: var(--e-global-color-dxorange, #F56329);
	--dx-pink: var(--e-global-color-dxpink, #FFCBF1);
	--dx-magenta: var(--e-global-color-dxmagenta, #B950B0);
	--dx-ink: var(--e-global-color-dxink, #201E19);
	--dx-tan: var(--e-global-color-dxtan, #C0B194);
	--dx-peach: var(--e-global-color-dxpeach, #FDDBCD);

	/* type scale (Elementor kit global fonts) */
	--dx-fs-display: var(--e-global-typography-dxdisplay-font-size, clamp(2.625rem, 1.33rem + 5.53vw, 6rem));
	--dx-fs-h1: var(--e-global-typography-dxh1-font-size, clamp(2.375rem, 1.45rem + 3.94vw, 4.75rem));
	--dx-fs-h2: var(--e-global-typography-dxh2-font-size, clamp(2rem, 1.42rem + 2.46vw, 3.5rem));
	--dx-fs-h3: var(--e-global-typography-dxh3-font-size, clamp(1.375rem, 1.1rem + 1.17vw, 2.125rem));
	--dx-fs-h4: var(--e-global-typography-dxh4-font-size, clamp(1.125rem, 1.02rem + 0.47vw, 1.375rem));
	--dx-fs-lead: var(--e-global-typography-dxlead-font-size, clamp(1.1875rem, 1.07rem + 0.47vw, 1.5rem));
	--dx-fs-body: var(--e-global-typography-dxbody-font-size, clamp(1.0625rem, 1.02rem + 0.18vw, 1.1875rem));
	--dx-fs-small: var(--e-global-typography-dxsmall-font-size, clamp(0.9375rem, 0.91rem + 0.12vw, 1rem));
	--dx-fs-label: var(--e-global-typography-dxlabel-font-size, 0.8125rem);
	--dx-fs-source: var(--e-global-typography-dxsource-font-size, 0.875rem);

	/* layout */
	--dx-max: 1360px;
	--dx-gutter: clamp(20px, 4.2vw, 56px);
	--dx-section: clamp(72px, 8.4vw, 136px);
	--dx-gap: clamp(16px, 2vw, 28px);
	--dx-header: 76px;
	--dx-r-sm: 8px;
	--dx-r-md: 16px;
	--dx-r-lg: 24px;

	/* motion: one easing family, one duration ladder */
	--dx-ease: cubic-bezier(0.19, 1, 0.22, 1);
	--dx-ease-2: cubic-bezier(0.33, 1, 0.68, 1);
	--dx-ease-io: cubic-bezier(0.65, 0, 0.35, 1);
	--dx-fast: 0.25s;
	--dx-base: 0.6s;
	--dx-slow: 1.1s;

	/* surface pair (set again by every dx-on-* surface) */
	--dx-fg: var(--dx-cream);
	--dx-bg: var(--dx-black);
	--dx-muted: color-mix(in srgb, var(--dx-cream) 74%, transparent);
	--dx-line: color-mix(in srgb, var(--dx-cream) 16%, transparent);
	--dx-focus: var(--dx-yellow);
	--dx-btn-bg: var(--dx-orange);
	--dx-btn-fg: #000;
	--dx-btn-hover: var(--dx-yellow);
}
@media (max-width: 1024px) { body { --dx-header: 68px; } }
@media (max-width: 767px) { body { --dx-header: 64px; } }

/* ---------- 3. Base ---------- */
html { -webkit-text-size-adjust: 100%; }
body,
body.elementor-kit-4 {
	background: var(--dx-black);
	color: var(--dx-cream);
	font-family: "DM Sans", system-ui, sans-serif;
	font-size: var(--dx-fs-body);
	line-height: 1.6;
	font-optical-sizing: auto;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
::selection { background: var(--dx-yellow); color: #000; }
:where(h1, h2, h3, h4, h5, h6) { font-family: "DM Sans", system-ui, sans-serif; color: inherit; text-wrap: balance; }
:where(p, li) { text-wrap: pretty; }
img, svg { max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
:focus-visible { outline: 3px solid var(--dx-focus); outline-offset: 3px; border-radius: 4px; }
[id] { scroll-margin-top: calc(var(--dx-header) + 72px); }
fieldset { min-inline-size: 0; }
.skip-link:focus { background: var(--dx-yellow); color: #000; z-index: 100000; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* surfaces: every surface sets its own text colour, never only a background */
.dx-on-black { --dx-bg: var(--dx-black); --dx-fg: var(--dx-cream); --dx-muted: color-mix(in srgb, var(--dx-cream) 74%, transparent); --dx-line: color-mix(in srgb, var(--dx-cream) 16%, transparent); --dx-focus: var(--dx-yellow); --dx-btn-bg: var(--dx-orange); --dx-btn-fg: #000; --dx-btn-hover: var(--dx-yellow); }
.dx-on-ink { --dx-bg: var(--dx-ink); --dx-fg: var(--dx-cream); --dx-muted: color-mix(in srgb, var(--dx-cream) 74%, transparent); --dx-line: color-mix(in srgb, var(--dx-cream) 16%, transparent); --dx-focus: var(--dx-yellow); --dx-btn-bg: var(--dx-orange); --dx-btn-fg: #000; --dx-btn-hover: var(--dx-yellow); }
.dx-on-yellow, .dx-on-cream, .dx-on-pink, .dx-on-tan, .dx-on-peach, .dx-on-orange, .dx-on-magenta {
	--dx-fg: #000; --dx-muted: rgb(0 0 0 / 0.74); --dx-line: rgb(0 0 0 / 0.18); --dx-focus: #000;
	--dx-btn-bg: #000; --dx-btn-fg: var(--dx-cream); --dx-btn-hover: var(--dx-ink);
}
.dx-on-yellow { --dx-bg: var(--dx-yellow); }
.dx-on-cream { --dx-bg: var(--dx-cream); --dx-btn-bg: var(--dx-orange); --dx-btn-fg: #000; --dx-btn-hover: var(--dx-yellow); }
.dx-on-pink { --dx-bg: var(--dx-pink); }
.dx-on-tan { --dx-bg: var(--dx-tan); }
.dx-on-peach { --dx-bg: var(--dx-peach); }
.dx-on-orange { --dx-bg: var(--dx-orange); }
.dx-on-magenta { --dx-bg: var(--dx-magenta); }
[class*="dx-on-"] { background-color: var(--dx-bg); color: var(--dx-fg); }

/* ---------- 4. Astra frame ---------- */
#page, .site-content, .ast-container, #primary, .site-main { overflow: visible; }
.site-content > .ast-container { max-width: none; padding: 0; display: block; }
.dx-page-elementor .entry-header, .elementor-page .entry-header { display: none; }
.elementor-page #primary, .elementor-page .site-main, .elementor-page .site-main > article { margin: 0; padding: 0; }
.ast-separate-container, .ast-plain-container, .ast-page-builder-template { background: var(--dx-black); }
.entry-content > .elementor { margin: 0; }

/* header */
#masthead.site-header {
	position: sticky; top: 0; z-index: 100;
	background: var(--dx-black);
	transition: transform 0.45s var(--dx-ease), box-shadow 0.3s ease;
}
.admin-bar #masthead.site-header { top: var(--wp-admin--admin-bar--height, 32px); }
#masthead.dx-header--hidden { transform: translateY(-101%); }
#masthead.dx-header--scrolled { box-shadow: 0 1px 0 var(--dx-line); }
#masthead .main-header-bar,
#masthead .ast-primary-header-bar,
#masthead .ast-mobile-header-wrap .ast-primary-header-bar { background: var(--dx-black); border-bottom: 1px solid color-mix(in srgb, var(--dx-cream) 12%, transparent); }
#masthead .site-primary-header-wrap { max-width: calc(var(--dx-max) + 2 * var(--dx-gutter)); padding-inline: var(--dx-gutter); min-height: var(--dx-header); }
#masthead .custom-logo-link img, #masthead .custom-logo { width: 148px; height: auto; max-height: none; }
@media (max-width: 1024px) { #masthead .custom-logo-link img, #masthead .custom-logo { width: 128px; } }

/* desktop menu */
#masthead .main-header-menu { gap: 2px; align-items: center; }
#masthead .main-header-menu > .menu-item { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; position: relative; }
#masthead .main-header-menu > .menu-item > .menu-link,
#masthead .main-header-menu > .menu-item > .dx-menu-button {
	color: var(--dx-cream); font-size: 0.9375rem; font-weight: 500; letter-spacing: -0.005em;
	padding: 0 12px; line-height: 44px; min-height: 44px;
	background: none; border: 0; cursor: pointer; font-family: inherit;
	display: inline-flex; align-items: center; gap: 6px;
	text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 6px; text-decoration-thickness: 1.5px;
	transition: color var(--dx-fast) ease, text-decoration-color var(--dx-fast) ease;
}
#masthead .main-header-menu > .menu-item > .menu-link:hover,
#masthead .main-header-menu > .menu-item > .dx-menu-button:hover,
#masthead .main-header-menu > .menu-item.dx-open > .dx-menu-button { color: var(--dx-yellow); text-decoration-color: currentColor; }
#masthead .main-header-menu > .current-menu-item > .menu-link,
#masthead .main-header-menu > .current-menu-ancestor > .menu-link,
#masthead .main-header-menu > .current-menu-ancestor > .dx-menu-button,
#masthead .main-header-menu > .current-menu-parent > .dx-menu-button { color: var(--dx-yellow); }
#masthead .main-header-menu > .current-menu-item > .menu-link::before,
#masthead .main-header-menu > .current-menu-ancestor > :is(.menu-link, .dx-menu-button)::before {
	content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--dx-yellow); margin-right: 2px;
}
/* separate dropdown arrows (Astra's .ast-menu-toggle) */
#ast-desktop-header .main-header-menu .ast-menu-toggle {
	display: inline-flex; align-items: center; justify-content: center;
	width: 30px; height: 44px; margin-left: -10px; padding: 0;
	background: none; border: 0; color: var(--dx-cream); cursor: pointer;
}
#ast-desktop-header .main-header-menu .ast-menu-toggle .ast-arrow-svg,
.dx-chevron { width: 10px; height: 10px; }
#ast-desktop-header .main-header-menu .ast-menu-toggle svg { fill: currentColor; transition: transform var(--dx-fast) var(--dx-ease); }
#ast-desktop-header .main-header-menu .ast-menu-toggle:hover { color: var(--dx-yellow); }
#ast-desktop-header .main-header-menu .dx-open > .ast-menu-toggle svg { transform: rotate(180deg); }
.dx-chevron { display: inline-block; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; width: 7px; height: 7px; transform: translateY(-2px) rotate(45deg); transition: transform var(--dx-fast) var(--dx-ease); }
.dx-open > .dx-menu-button .dx-chevron { transform: translateY(1px) rotate(-135deg); }
#masthead .main-header-menu .sub-menu .ast-icon.icon-arrow { display: none; }

/* desktop dropdown panel */
#ast-desktop-header .main-header-menu .sub-menu {
	background: var(--dx-ink); border: 1px solid var(--dx-line); border-radius: var(--dx-r-md);
	padding: 8px; min-width: 240px; top: calc(100% + 6px); left: 0;
	box-shadow: 0 24px 60px rgb(0 0 0 / 0.5);
	opacity: 0; visibility: hidden; transform: translateY(-6px);
	transition: opacity 0.2s ease, transform 0.35s var(--dx-ease), visibility 0s linear 0.35s;
	display: block; pointer-events: none;
}
#ast-desktop-header .main-header-menu .menu-item.dx-open > .sub-menu {
	opacity: 1; visibility: visible; transform: none; pointer-events: auto;
	transition: opacity 0.2s ease, transform 0.35s var(--dx-ease), visibility 0s;
}
#ast-desktop-header .main-header-menu .sub-menu .menu-link {
	color: var(--dx-cream); padding: 11px 14px; border-radius: 10px; font-size: 0.9375rem; font-weight: 500; min-height: 44px; display: flex; align-items: center;
	transition: background var(--dx-fast) ease, color var(--dx-fast) ease;
}
#ast-desktop-header .main-header-menu .sub-menu .menu-link:hover,
#ast-desktop-header .main-header-menu .sub-menu .menu-link:focus-visible { background: var(--dx-yellow); color: #000; outline-offset: 0; }
#ast-desktop-header .main-header-menu .sub-menu .current-menu-item > .menu-link { color: var(--dx-yellow); }
#ast-desktop-header .main-header-menu .sub-menu .current-menu-item > .menu-link:hover { color: #000; }
#ast-desktop-header .main-header-menu .sub-menu .menu-item { border: 0; }

/* header button (Astra button 1) */
#masthead .ast-builder-button-wrap .ast-custom-button,
.ast-mobile-popup-content .ast-builder-button-wrap .ast-custom-button {
	background: var(--dx-orange); color: #000; border: 0; border-radius: var(--dx-r-sm);
	font-size: 0.9375rem; font-weight: 600; padding: 0 20px; min-height: 44px; line-height: 44px;
	transition: background var(--dx-fast) ease, transform var(--dx-fast) var(--dx-ease);
}
#masthead .ast-builder-button-wrap .ast-custom-button:hover,
.ast-mobile-popup-content .ast-builder-button-wrap .ast-custom-button:hover { background: var(--dx-yellow); color: #000; }
#masthead .ast-builder-button-wrap { margin-left: 14px; }
#masthead .ast-builder-button-wrap .ast-custom-button-link:focus-visible { outline: 3px solid var(--dx-yellow); outline-offset: 3px; }

/* mobile header and full-screen menu */
#masthead .ast-mobile-header-wrap .site-primary-header-wrap { min-height: var(--dx-header); }
#masthead .menu-toggle.main-header-menu-toggle {
	background: transparent; color: var(--dx-cream); border: 1px solid var(--dx-line); border-radius: var(--dx-r-sm);
	min-width: 48px; min-height: 44px; padding: 0 12px; display: inline-flex; align-items: center; gap: 8px;
}
#masthead .menu-toggle .ast-mobile-svg, #masthead .menu-toggle svg { fill: var(--dx-cream); width: 20px; }
#masthead .menu-toggle::after { content: "Menu"; font-size: 0.9375rem; font-weight: 600; }
.ast-mobile-popup-drawer .ast-mobile-popup-inner { background: var(--dx-black); color: var(--dx-cream); width: 100%; max-width: none; }
.ast-mobile-popup-drawer .ast-mobile-popup-header { padding: 12px var(--dx-gutter); min-height: var(--dx-header); justify-content: flex-end; border-bottom: 1px solid var(--dx-line); }
.ast-mobile-popup-drawer .menu-toggle-close { color: var(--dx-cream); background: none; border: 1px solid var(--dx-line); border-radius: var(--dx-r-sm); width: 48px; height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.ast-mobile-popup-drawer .menu-toggle-close svg { fill: var(--dx-cream); width: 18px; height: 18px; }
.ast-mobile-popup-drawer .ast-mobile-popup-content { padding: 12px var(--dx-gutter) 32px; display: flex; flex-direction: column; gap: 20px; min-height: calc(100% - var(--dx-header)); }
.ast-mobile-popup-content .main-header-menu { flex-direction: column; align-items: stretch; background: transparent; border: 0; }
.ast-mobile-popup-content .main-header-menu > .menu-item { border-bottom: 1px solid var(--dx-line); position: relative; display: flex; flex-wrap: wrap; align-items: center; }
.ast-mobile-popup-content .main-header-menu > .menu-item > .menu-link,
.ast-mobile-popup-content .main-header-menu > .menu-item > .dx-menu-button {
	flex: 1; color: var(--dx-cream); font-size: clamp(1.5rem, 6vw, 2rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.1;
	padding: 16px 0; min-height: 56px; background: none; border: 0; text-align: left; font-family: inherit; display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.ast-mobile-popup-content .main-header-menu .current-menu-item > .menu-link,
.ast-mobile-popup-content .main-header-menu .current-menu-ancestor > :is(.menu-link, .dx-menu-button) { color: var(--dx-yellow); }
.ast-mobile-popup-content .main-header-menu .ast-menu-toggle {
	position: static; width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center;
	color: var(--dx-cream); background: none; border: 1px solid var(--dx-line); border-radius: var(--dx-r-sm);
}
.ast-mobile-popup-content .main-header-menu .ast-menu-toggle svg { fill: currentColor; width: 12px; transition: transform var(--dx-fast) var(--dx-ease); }
.ast-mobile-popup-content .main-header-menu .ast-submenu-expanded > .ast-menu-toggle svg,
.ast-mobile-popup-content .main-header-menu .dx-open > .ast-menu-toggle svg { transform: rotate(180deg); }
.ast-mobile-popup-content .main-header-menu .sub-menu { flex-basis: 100%; background: transparent; border: 0; padding: 0 0 14px; }
.ast-mobile-popup-content .main-header-menu .sub-menu .menu-link { color: var(--dx-cream); font-size: 1.125rem; padding: 10px 0 10px 4px; min-height: 44px; border: 0; }
.ast-mobile-popup-content .main-header-menu .sub-menu .menu-item { border: 0; }
.ast-mobile-popup-content .main-header-menu .dx-menu-toggle-only > .sub-menu { display: none; }
.ast-mobile-popup-content .main-header-menu .dx-menu-toggle-only.dx-open > .sub-menu { display: block; }
.ast-mobile-popup-content .ast-builder-button-wrap,
.ast-mobile-popup-content .ast-builder-button-wrap .ast-custom-button-link,
.ast-mobile-popup-content .ast-builder-button-wrap .ast-custom-button { width: 100%; display: block; text-align: center; }
.ast-mobile-popup-content .ast-builder-button-wrap .ast-custom-button { min-height: 56px; line-height: 56px; font-size: 1.0625rem; }
.ast-mobile-popup-content .ast-header-html { margin-top: auto; }
.dx-menu-mail a { color: var(--dx-cream); font-size: 1.125rem; font-weight: 500; text-decoration: underline; text-underline-offset: 5px; }
.dx-menu-mail a:hover { color: var(--dx-yellow); }
body.dx-menu-open { overflow: hidden; }
#ast-desktop-header .ast-header-html { display: none; }

/* breadcrumbs */
.dx-crumbs { width: 100%; box-sizing: border-box; max-width: calc(var(--dx-max) + 2 * var(--dx-gutter)); margin-inline: auto; text-align: left; padding: 18px var(--dx-gutter) 0; font-size: var(--dx-fs-source); color: var(--dx-muted); }
.dx-crumbs__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 4px 0; }
.dx-crumbs__item { display: inline-flex; align-items: center; }
.dx-crumbs__item + .dx-crumbs__item::before { content: "/"; margin: 0 10px; opacity: 0.5; }
.dx-crumbs a { color: var(--dx-muted); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: color var(--dx-fast), text-decoration-color var(--dx-fast); }
.dx-crumbs a:hover { color: var(--dx-yellow); text-decoration-color: currentColor; }
.dx-crumbs [aria-current] { color: var(--dx-cream); }

/* footer */
.site-footer { background: var(--dx-black); color: var(--dx-cream); border-top: 1px solid var(--dx-line); }
.site-footer .site-primary-footer-wrap { padding: clamp(56px, 7vw, 104px) 0 clamp(40px, 5vw, 64px); background: var(--dx-black); }
.site-footer .ast-builder-grid-row-container-inner,
.site-footer .site-below-footer-wrap > .ast-builder-grid-row-container-inner { max-width: calc(var(--dx-max) + 2 * var(--dx-gutter)); margin-inline: auto; padding-inline: var(--dx-gutter); }
.site-footer .site-primary-footer-inner-wrap { grid-template-columns: 1.7fr repeat(4, 1fr); gap: 40px clamp(20px, 3vw, 48px); align-items: start; }
.site-footer .widget-title, .site-footer h2.widget-title {
	font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase;
	color: color-mix(in srgb, var(--dx-cream) 72%, transparent); margin: 0 0 18px;
}
.site-footer .widget_nav_menu ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.site-footer .widget_nav_menu a, .site-footer .widget_nav_menu a.menu-link,
.site-footer .ast-builder-html-element a, .site-footer .ast-footer-copyright a {
	color: var(--dx-cream); font-size: 1rem; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 5px; text-decoration-thickness: 1.5px;
	display: inline-flex; min-height: 36px; align-items: center;
	transition: color var(--dx-fast), text-decoration-color var(--dx-fast);
}
.site-footer .widget_nav_menu a:hover, .site-footer .ast-builder-html-element a:hover { color: var(--dx-yellow); text-decoration-color: currentColor; }
.site-footer .site-footer-section-1 .footer-widget-area, .site-footer .ast-builder-html-element, .site-footer .site-footer-section { text-align: left; justify-content: flex-start; align-items: flex-start; }
.site-footer .site-below-footer-inner-wrap { align-items: center; }
.site-footer .footer-widget-area[data-section="section-fb-html-1"], .site-footer .footer-widget-area[data-section="section-fb-html-1"] .ast-builder-html-element,
.site-footer .footer-widget-area[data-section="section-fb-html-2"] .ast-builder-html-element, .site-footer .footer-widget-area[data-section="section-footer-builder"] { text-align: left; justify-content: flex-start; }
.site-footer .ast-footer-copyright { text-align: left; }
.site-footer .dx-footer-logo img { width: 190px; height: auto; display: block; }
.site-footer .dx-footer-logo { min-height: 0; }
.site-footer .dx-footer-line { max-width: 34ch; color: var(--dx-muted); margin: 22px 0 18px; font-size: 1rem; line-height: 1.55; }
.site-footer .dx-footer-mail a { font-size: 1.25rem; font-weight: 600; text-decoration-color: currentColor !important; }
.site-footer .ast-builder-html-element .dx-btn-link--orange,
.dx-btn-link--orange {
	display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; margin-top: 18px;
	background: var(--dx-orange); color: #000 !important; border-radius: var(--dx-r-sm); font-weight: 600; text-decoration: none !important;
	transition: background var(--dx-fast) ease;
}
.dx-btn-link--orange:hover { background: var(--dx-yellow); }
.site-footer .site-below-footer-wrap { background: var(--dx-black); border-top: 1px solid var(--dx-line); padding: 20px 0; }
.site-footer .ast-footer-copyright, .site-footer .ast-footer-copyright p { color: var(--dx-muted); font-size: var(--dx-fs-source); margin: 0; }
.site-footer .dx-company-details { color: var(--dx-muted); font-size: var(--dx-fs-source); margin: 0; text-align: right; }
@media (max-width: 1024px) {
	.site-footer .site-primary-footer-inner-wrap { grid-template-columns: 1fr 1fr; }
	.site-footer .site-footer-section-1 { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
	/* phones keep two link columns side by side, under the full-width brand column */
	.site-footer .site-primary-footer-inner-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; }
	.site-footer .dx-company-details { text-align: left; }
}

/* ---------- 5. Elementor layout ---------- */
.elementor .e-con { --gap: 0px; --row-gap: 0px; --column-gap: 0px; }
.elementor .e-con.dx-section { --padding-top: var(--dx-section); --padding-bottom: var(--dx-section); --padding-left: 0px; --padding-right: 0px; padding-block: var(--dx-section); position: relative; }
.elementor .e-con.dx-section--tight { padding-block: clamp(48px, 6vw, 96px); }
.elementor .e-con.dx-section--flush-top { padding-top: 0; }
.elementor > .e-con.dx-on-black:not(.dx-pending):not(.dx-proof-empty) + .e-con.dx-section.dx-on-black,
.elementor > .e-con.dx-on-cream:not(.dx-pending):not(.dx-proof-empty) + .e-con.dx-section.dx-on-cream,
.elementor > .e-con.dx-on-yellow:not(.dx-pending):not(.dx-proof-empty) + .e-con.dx-section.dx-on-yellow { padding-top: 0; }
.elementor .e-con.dx-wrap { width: min(100% - 2 * var(--dx-gutter), var(--dx-max)); margin-inline: auto; --width: min(100% - 2 * var(--dx-gutter), var(--dx-max)); display: flex; flex-direction: column; gap: clamp(22px, 2.6vw, 36px); }
.elementor .e-con.dx-stack { display: flex; flex-direction: column; gap: var(--dx-stack-gap, 20px); }
.elementor .e-con.dx-row { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; }
.elementor .e-con.dx-grid { display: grid; gap: var(--dx-gap); grid-template-columns: repeat(var(--dx-cols, 3), minmax(0, 1fr)); }
.elementor .e-con.dx-grid > * { min-width: 0; }
.elementor .e-con.dx-grid--2 { --dx-cols: 2; }
.elementor .e-con.dx-grid--3 { --dx-cols: 3; }
.elementor .e-con.dx-grid--4 { --dx-cols: 4; }
.elementor .e-con.dx-grid--5 { --dx-cols: 5; }
@media (max-width: 1024px) {
	.elementor .e-con.dx-grid--3, .elementor .e-con.dx-grid--4, .elementor .e-con.dx-grid--5 { --dx-cols: 2; }
}
@media (max-width: 767px) {
	.elementor .e-con.dx-grid { --dx-cols: 1; }
}
.elementor .elementor-widget { min-width: 0; }
.elementor .elementor-widget-text-editor > :last-child { margin-bottom: 0; }
.elementor .elementor-widget-text-editor p { margin: 0 0 0.9em; }
.elementor .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* section header: label, H2, lead */
.elementor .e-con.dx-head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 20px clamp(24px, 5vw, 80px); align-items: end; margin-bottom: clamp(10px, 2vw, 28px); }
.elementor .e-con.dx-head--stack { grid-template-columns: minmax(0, 1fr); max-width: 52rem; }
.elementor .e-con.dx-head--center { grid-template-columns: minmax(0, 1fr); max-width: 48rem; margin-inline: auto; text-align: center; }
@media (max-width: 1024px) { .elementor .e-con.dx-head { grid-template-columns: minmax(0, 1fr); } }.elementor .dx-label .elementor-heading-title, .dx-label p, p.dx-label {
	font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; line-height: 1.2; color: var(--dx-muted);
	display: inline-flex; align-items: center; gap: 10px;
}.elementor .dx-label .elementor-heading-title::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; opacity: 0.9; }.elementor .dx-h2 .elementor-heading-title { font-size: var(--dx-fs-h2); font-weight: 700; line-height: 1; letter-spacing: -0.03em; color: var(--dx-fg); margin: 0; }.elementor .dx-h3 .elementor-heading-title { font-size: var(--dx-fs-h3); font-weight: 600; line-height: 1.1; letter-spacing: -0.02em; color: var(--dx-fg); margin: 0; }.elementor .dx-h4 .elementor-heading-title { font-size: var(--dx-fs-h4); font-weight: 600; line-height: 1.2; letter-spacing: -0.01em; color: var(--dx-fg); margin: 0; }
.dx-lead, .dx-lead p { font-size: var(--dx-fs-lead); line-height: 1.42; letter-spacing: -0.012em; color: var(--dx-fg); }
.dx-muted, .dx-muted p { color: var(--dx-muted); }
.dx-body, .dx-body p { font-size: var(--dx-fs-body); line-height: 1.6; color: var(--dx-fg); max-width: 66ch; }
.elementor .elementor-widget-text-editor a:not([class*="dx-cta-"]), .dx-body a, .dx-lead a, .dx-text a { color: inherit; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; transition: color var(--dx-fast); }
.dx-on-black .dx-body a:hover, .dx-on-ink .dx-body a:hover, .dx-on-black .dx-lead a:hover { color: var(--dx-yellow); }
.dx-body ul, .dx-body ol { margin: 0 0 1em; padding-left: 1.2em; }
.dx-body li { margin-bottom: 0.4em; }
.dx-small, .dx-small p { font-size: var(--dx-fs-small); line-height: 1.5; color: var(--dx-muted); }

/* ---------- 6. Buttons and links ---------- */
.elementor-widget.dx-btn .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 54px; padding: 0 26px; border-radius: var(--dx-r-sm); border: 1.5px solid transparent;
	font-family: inherit; font-size: 1rem; font-weight: 600; line-height: 1.1; letter-spacing: -0.005em; text-align: center;
	background: var(--dx-btn-bg); color: var(--dx-btn-fg); fill: var(--dx-btn-fg);
	transition: background var(--dx-fast) ease, color var(--dx-fast) ease, border-color var(--dx-fast) ease, transform var(--dx-fast) var(--dx-ease);
}
.elementor-widget.dx-btn .elementor-button:hover, .elementor-widget.dx-btn .elementor-button:focus-visible { background: var(--dx-btn-hover); color: var(--dx-btn-fg); }
.dx-on-black .elementor-widget.dx-btn:not(.dx-btn--ghost) .elementor-button:hover, .dx-on-ink .elementor-widget.dx-btn:not(.dx-btn--ghost) .elementor-button:hover, .dx-on-cream .elementor-widget.dx-btn:not(.dx-btn--ghost) .elementor-button:hover { color: #000; }
.elementor-widget.dx-btn--ghost .elementor-button { background: transparent; color: var(--dx-fg); border-color: color-mix(in srgb, var(--dx-fg) 45%, transparent); }
.elementor-widget.dx-btn--ghost .elementor-button:hover, .elementor-widget.dx-btn--ghost .elementor-button:focus-visible { background: var(--dx-fg); color: var(--dx-bg); border-color: var(--dx-fg); }
.elementor-widget.dx-btn--ghost .elementor-button-text::after { content: "\2192"; display: inline-block; margin-left: 10px; transition: transform var(--dx-fast) var(--dx-ease); }
.elementor-widget.dx-btn--ghost .elementor-button:hover .elementor-button-text::after { transform: translateX(4px); }
.elementor-widget.dx-btn--block .elementor-button { width: 100%; }
@media (max-width: 767px) { .dx-btns .dx-btn, .dx-btns .elementor-widget.dx-btn .elementor-button { width: 100%; } }
.elementor .e-con.dx-btns { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px 14px; align-items: center; justify-content: flex-start; }
.elementor .e-con.dx-btns--links { gap: 4px 28px; }

/* text link with an arrow; inside a card it stretches over the whole card */
.elementor-widget.dx-link .elementor-button {
	text-align: left; justify-content: flex-start;
	background: none; border: 0; padding: 0; min-height: 44px; border-radius: 0;
	color: var(--dx-fg); font-size: 1rem; font-weight: 600; letter-spacing: -0.005em;
	display: inline-flex; align-items: center; gap: 10px;
	text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 6px; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
	transition: text-decoration-color var(--dx-fast), color var(--dx-fast);
}
.elementor-widget.dx-link .elementor-button-text::after { content: "\2192"; display: inline-block; margin-left: 10px; transition: transform var(--dx-fast) var(--dx-ease); }
.elementor-widget.dx-link .elementor-button:hover { text-decoration-color: currentColor; }
.elementor-widget.dx-link .elementor-button:hover .elementor-button-text::after { transform: translateX(5px); }
.dx-card .elementor-widget.dx-link .elementor-button::after { content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: 1; }
.dx-card .elementor-widget.dx-link .elementor-button:focus-visible { outline: none; }
.dx-card:has(.elementor-widget.dx-link .elementor-button:focus-visible) { outline: 3px solid var(--dx-focus); outline-offset: 3px; }
/* Elementor sets .elementor-widget { position: relative }, which would shrink the overlay to the
   link itself: the link widget goes static so the overlay measures from the card. Other links in
   the card (price chips, links in the text) sit above the overlay and keep their own targets. */
.dx-card > .elementor-widget.dx-link, .dx-rowlink > .elementor-widget.dx-link { position: static; }
.dx-card > .elementor-widget.dx-chip, .dx-card > .elementor-widget:not(.dx-link) a { position: relative; z-index: 2; }
.dx-textlinks, .dx-textlinks p { font-size: var(--dx-fs-small); color: var(--dx-muted); }
.elementor .dx-textlinks a, .elementor .dx-textlinks a:visited { color: var(--dx-fg); text-decoration: underline; text-underline-offset: 4px; font-weight: 600; }
.elementor .dx-textlinks a:hover { text-decoration-thickness: 2px; }

/* ---------- 7. Hero ---------- */
.elementor .e-con.dx-hero { position: relative; padding-block: clamp(36px, 6vw, 96px) clamp(56px, 7vw, 120px); overflow: clip; isolation: isolate; }
.elementor .e-con.dx-hero .dx-wrap { position: static; }
.elementor .e-con.dx-hero .dx-hero__grid, .elementor .e-con.dx-hero .dx-hero__foot, .elementor .dx-hero .dx-h1 { position: relative; z-index: 2; }
.elementor .e-con.dx-hero .dx-hero__copy { position: relative; }.elementor .dx-hero h1.elementor-heading-title, .elementor .dx-hero .dx-h1 .elementor-heading-title {
	font-size: var(--dx-fs-h1); font-weight: 700; line-height: 0.95; letter-spacing: -0.032em; color: var(--dx-cream); margin: 0;
}.elementor .dx-hero--home h1.elementor-heading-title, .elementor .dx-hero--display h1.elementor-heading-title {
	font-size: var(--dx-fs-display); line-height: 0.9; letter-spacing: -0.035em; text-transform: uppercase;
}
.elementor .e-con.dx-hero--home { min-height: calc(100svh - var(--dx-header) - 40px); display: flex; flex-direction: column; justify-content: flex-end; }
.elementor .e-con.dx-hero__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.elementor .e-con.dx-hero__copy { display: flex; flex-direction: column; gap: 22px; }
.elementor .e-con.dx-hero__foot { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 28px clamp(28px, 5vw, 80px); align-items: end; margin-top: clamp(32px, 4.5vw, 64px); padding-top: clamp(24px, 3vw, 36px); border-top: 1px solid var(--dx-line); }.elementor .dx-hero .dx-sub .elementor-heading-title, .dx-hero .dx-sub p { font-size: var(--dx-fs-lead); line-height: 1.35; font-weight: 500; letter-spacing: -0.015em; color: var(--dx-cream); margin: 0; }
.dx-hero .dx-intro, .dx-hero .dx-intro p { color: var(--dx-muted); font-size: var(--dx-fs-body); max-width: 60ch; }
@media (max-width: 1024px) {
	.elementor .e-con.dx-hero__grid, .elementor .e-con.dx-hero__foot { grid-template-columns: minmax(0, 1fr); }
}
.dx-proofline, .dx-proofline p { font-size: var(--dx-fs-source); line-height: 1.5; color: var(--dx-muted); margin: 0; }
.dx-proofline p { position: relative; padding-left: 22px; max-width: 52ch; }
.dx-proofline p::before { content: ""; position: absolute; left: 2px; top: 0.5em; width: 8px; height: 8px; border-radius: 50%; background: var(--dx-yellow); box-shadow: 0 0 0 4px color-mix(in srgb, var(--dx-yellow) 18%, transparent); }
.dx-proofline a { margin-left: 4px; }
.dx-proofline a { color: var(--dx-cream); text-decoration: underline; text-underline-offset: 4px; }
.dx-proofline a:hover { color: var(--dx-yellow); }

/* LED lettering behind a headline: decoration only (aria-hidden in the markup) */
.elementor .elementor-widget.dx-led { position: absolute; left: 0; right: 0; top: var(--dx-led-top, 0); z-index: 0; pointer-events: none; user-select: none; margin: 0; }
.elementor .dx-hero--home .elementor-widget.dx-led { left: max(var(--dx-gutter), calc((100% - var(--dx-max)) / 2)); right: max(var(--dx-gutter), calc((100% - var(--dx-max)) / 2)); top: clamp(16px, 3.4vw, 56px); }
.dx-led p {
	margin: 0; font-weight: 800; text-transform: uppercase; line-height: 0.84; letter-spacing: 0.01em; white-space: nowrap;
	font-size: var(--dx-led-size, clamp(64px, 13.4vw, 230px));
	color: transparent;
	background-image: radial-gradient(circle at center, color-mix(in srgb, var(--dx-cream) 15%, transparent) 0 1.7px, transparent 2.1px);
	background-size: 7px 7px;
	-webkit-background-clip: text; background-clip: text;
}
.dx-led.is-board p { display: none; }
.elementor .elementor-widget.dx-led { -webkit-mask-image: linear-gradient(to bottom, #000 0 62%, transparent 96%); mask-image: linear-gradient(to bottom, #000 0 62%, transparent 96%); }
.dx-led__board { display: block; width: 100%; height: auto; overflow: visible; }
.dx-led__board circle { fill: var(--dx-cream); }
@media (max-width: 767px) { .dx-led p { --dx-led-size: 22vw; white-space: normal; } }

/* drawing tile */
.elementor .e-con.dx-tile {
	--dx-tile: var(--dx-ink);
	background: var(--dx-tile); border-radius: var(--dx-r-lg); aspect-ratio: 1 / 1; padding: 7%;
	display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden;
}
.elementor .e-con.dx-tile--yellow { --dx-tile: var(--dx-yellow); }
.elementor .e-con.dx-tile--cream { --dx-tile: var(--dx-cream); }
.elementor .e-con.dx-tile--pink { --dx-tile: var(--dx-pink); }
.elementor .e-con.dx-tile--tan { --dx-tile: var(--dx-tan); }
.elementor .e-con.dx-tile--wide { aspect-ratio: 4 / 3; }
.elementor .e-con.dx-tile--sm { border-radius: var(--dx-r-md); padding: clamp(8px, 1.2vw, 16px); }
/* a small drawing tile inside a card sits above the title as a thumbnail */
.elementor .e-con.dx-card > .e-con.dx-tile--sm { order: -1; flex: none; width: clamp(88px, 9vw, 120px); padding: 8%; }
.dx-tile .elementor-widget-image, .dx-tile .dx-drawing { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.dx-tile img, .dx-tile svg { width: 100%; height: 100%; object-fit: contain; display: block; }
.dx-tile svg path { stroke-width: 1.25; }
.dx-tile::after {
	/* faint isometric grid behind the drawing */
	content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.5;
	background-image: radial-gradient(circle, color-mix(in srgb, var(--dx-cream) 9%, transparent) 1px, transparent 1.5px);
	background-size: 22px 22px; mask-image: radial-gradient(circle at 50% 50%, #000 0 55%, transparent 80%);
}
.dx-tile--yellow::after, .dx-tile--cream::after, .dx-tile--pink::after, .dx-tile--tan::after { background-image: radial-gradient(circle, rgb(0 0 0 / 0.12) 1px, transparent 1.5px); }

/* ---------- 8. Coloured split card ---------- */
.elementor .e-con.dx-split {
	display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 4vw, 72px) clamp(28px, 5vw, 88px);
	padding: clamp(28px, 5vw, 80px); border-radius: var(--dx-r-lg); position: relative; overflow: hidden;
}
.elementor .e-con.dx-split > .dx-split__label { grid-column: 1 / -1; }
.elementor .e-con.dx-split__aside { display: flex; flex-direction: column; justify-content: center; gap: 16px; min-width: 0; }
.elementor .e-con.dx-split__body { display: flex; flex-direction: column; gap: 22px; min-width: 0; }.elementor .dx-split .dx-label .elementor-heading-title { color: var(--dx-fg); }
@media (max-width: 767px) {
	.elementor .e-con.dx-split { grid-template-columns: minmax(0, 1fr); }
	.elementor .e-con.dx-split > .dx-split__body { order: 1; }
	.elementor .e-con.dx-split > .dx-split__aside { order: 2; }
}

/* left-half fillers: a report vs the work */
.dx-versus ul, ul.dx-versus { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1.5px solid var(--dx-line); }
.dx-versus li { display: grid; grid-template-columns: auto 1fr; gap: 6px 18px; align-items: baseline; padding: 20px 0; border-bottom: 1.5px solid var(--dx-line); }
.dx-versus li strong { justify-self: start; font-size: var(--dx-fs-h3); font-weight: 700; letter-spacing: -0.025em; line-height: 1; }
.dx-versus li span { font-size: var(--dx-fs-small); color: var(--dx-muted); grid-column: 2; }
.dx-versus li em { font-style: normal; font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; grid-row: span 2; align-self: center; width: 2.6em; height: 2.6em; display: grid; place-items: center; border-radius: 50%; border: 1.5px solid currentColor; }
.dx-versus li.is-no strong { position: relative; color: color-mix(in srgb, var(--dx-fg) 60%, transparent); }
.dx-versus li.is-no strong::after { content: ""; position: absolute; left: -2px; right: -4px; top: 54%; height: 0.09em; background: currentColor; transform-origin: left; }
.dx-versus li.is-yes em { background: var(--dx-fg); color: var(--dx-bg); border-color: var(--dx-fg); }

/* left-half fillers: numbered or dotted list */
.dx-points ul, ul.dx-points { list-style: none; margin: 0; padding: 0; counter-reset: dx; display: grid; gap: 0; }
.dx-points li { counter-increment: dx; display: grid; grid-template-columns: 2.4em 1fr; align-items: baseline; gap: 12px; padding: 16px 0; border-bottom: 1.5px solid var(--dx-line); font-size: var(--dx-fs-h4); font-weight: 600; letter-spacing: -0.01em; line-height: 1.2; }
.dx-points li:first-child { border-top: 1.5px solid var(--dx-line); }
.dx-points li::before { content: counter(dx, decimal-leading-zero); font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.06em; color: var(--dx-muted); }
.dx-points li span { display: block; grid-column: 2; font-size: var(--dx-fs-small); font-weight: 400; color: var(--dx-muted); margin-top: 4px; letter-spacing: 0; }

/* left-half fillers: three-point timeline */
.dx-timeline ol, ol.dx-timeline { list-style: none; margin: 0; padding: 0; position: relative; display: grid; gap: 22px; }
ol.dx-timeline::before, .dx-timeline ol::before { content: ""; position: absolute; left: 7px; top: 10px; bottom: 10px; border-left: 2px dotted var(--dx-fg); opacity: 0.5; }
.dx-timeline li { position: relative; padding-left: 34px; font-size: var(--dx-fs-small); line-height: 1.45; }
.dx-timeline li::before { content: ""; position: absolute; left: 0; top: 4px; width: 16px; height: 16px; border-radius: 50%; background: var(--dx-fg); box-shadow: 0 0 0 4px var(--dx-bg); }
.dx-timeline li strong { display: block; font-size: var(--dx-fs-h4); font-weight: 700; letter-spacing: -0.01em; margin-bottom: 4px; }.elementor /* key number with its source */
.dx-keynum .elementor-heading-title { font-size: clamp(3.5rem, 2rem + 6vw, 8rem); font-weight: 700; letter-spacing: -0.05em; line-height: 0.85; color: var(--dx-fg); margin: 0; }

/* ---------- 9. Method steps (Fix. Publish. Build. Prove.) ---------- */
.elementor .e-con.dx-steps { display: grid; grid-template-columns: repeat(var(--dx-steps, 4), minmax(0, 1fr)); gap: 0; border-top: 1.5px solid var(--dx-line); }
.elementor .e-con.dx-steps--3 { --dx-steps: 3; }
.elementor .e-con.dx-steps--5 { --dx-steps: 5; }
@media (min-width: 1025px) and (max-width: 1360px) {
	.elementor .e-con.dx-steps--5 .dx-step__text .dx-h3 .elementor-heading-title { font-size: var(--dx-fs-body); }
}
.elementor .e-con.dx-step { display: flex; flex-direction: column; gap: 16px; padding: clamp(24px, 3vw, 40px) clamp(18px, 2.4vw, 36px) 8px 0; position: relative; }
.elementor .e-con.dx-step + .dx-step { padding-left: clamp(18px, 2.4vw, 36px); border-left: 1.5px dotted var(--dx-line); }
.dx-step .dx-numeral img, .dx-step .dx-numeral svg { height: clamp(44px, 4vw, 60px); width: auto; display: block; }
.dx-numeral svg circle { fill: var(--dx-fg); transition: fill 0.3s ease, transform 0.4s var(--dx-ease); transform-box: fill-box; transform-origin: center; }
.dx-step:hover .dx-numeral svg circle { fill: var(--dx-yellow); }
.dx-on-yellow .dx-step:hover .dx-numeral svg circle, .dx-on-cream .dx-step:hover .dx-numeral svg circle { fill: var(--dx-orange); }.elementor .dx-step .dx-h3 .elementor-heading-title { font-size: var(--dx-fs-h4); line-height: 1.2; }.elementor .dx-step .dx-h3 .elementor-heading-title .dx-key { display: block; font-size: var(--dx-fs-h3); line-height: 1; letter-spacing: -0.025em; margin-bottom: 6px; color: var(--dx-fg); }
.dx-step .dx-body, .dx-step .dx-body p { font-size: var(--dx-fs-small); color: var(--dx-muted); }
@media (max-width: 1024px) {
	.elementor .e-con.dx-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.elementor .e-con.dx-step:nth-child(odd) { padding-left: 0; border-left: 0; }
	.elementor .e-con.dx-step:nth-child(n+3) { border-top: 1.5px dotted var(--dx-line); }
}
@media (max-width: 767px) {
	.elementor .e-con.dx-steps { grid-template-columns: minmax(0, 1fr); }
	.elementor .e-con.dx-step, .elementor .e-con.dx-step + .dx-step { padding: 26px 0; border-left: 0; flex-direction: row; gap: 20px; align-items: flex-start; }
	.elementor .e-con.dx-step + .dx-step { border-top: 1.5px dotted var(--dx-line); }
	.dx-step .dx-numeral { flex: none; width: 76px; }
	.elementor .e-con.dx-step > .e-con { flex: 1; }
}
.elementor .e-con.dx-step__text { display: flex; flex-direction: column; gap: 10px; }

/* service step row: text left, dark drawing tile right (old service page template) */
.elementor .e-con.dx-steprow { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(24px, 5vw, 80px); align-items: center; padding: clamp(28px, 4vw, 56px) 0; border-top: 1.5px solid var(--dx-line); }
.elementor .e-con.dx-steprow--text { grid-template-columns: minmax(0, 1fr); }
.elementor .e-con.dx-steprow__text { display: grid; grid-template-columns: clamp(60px, 7vw, 108px) minmax(0, 1fr); gap: 8px clamp(18px, 3vw, 40px); align-items: start; }
.elementor .e-con.dx-steprow__text > .dx-numeral { grid-row: span 3; padding-top: 6px; }
.dx-steprow .dx-numeral img, .dx-steprow .dx-numeral svg { width: 100%; height: auto; }
.dx-steprow .dx-body { max-width: 60ch; }
@media (max-width: 767px) {
	.elementor .e-con.dx-steprow { grid-template-columns: minmax(0, 1fr); }
	.elementor .e-con.dx-steprow__text { grid-template-columns: 56px minmax(0, 1fr); }
}

/* ---------- 10. Cards ---------- */
.elementor .e-con.dx-card {
	position: relative; display: flex; flex-direction: column; gap: 14px; min-width: 0;
	padding: clamp(22px, 2.4vw, 32px); border-radius: var(--dx-r-md);
	background: var(--dx-card-bg, var(--dx-ink)); color: var(--dx-card-fg, var(--dx-cream));
	isolation: isolate; overflow: hidden;
	transition: transform 0.45s var(--dx-ease), color 0.35s ease;
}
.dx-card > :is(.elementor-widget.dx-link, .elementor-widget.dx-btn, .e-con.dx-btns):last-child { margin-top: auto; }.elementor .dx-card .dx-label .elementor-heading-title { color: color-mix(in srgb, currentColor 72%, transparent); }.elementor .dx-card .dx-h3 .elementor-heading-title, .elementor .dx-card .dx-h4 .elementor-heading-title, .dx-card .elementor-widget.dx-link .elementor-button { color: inherit; }
.dx-card .dx-body, .dx-card .dx-body p { color: color-mix(in srgb, currentColor 78%, transparent); font-size: var(--dx-fs-small); }
/* hover: the card floods with its accent colour from the bottom edge */
.elementor .e-con.dx-card--flood::after {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
	background: var(--dx-accent, var(--dx-yellow));
	clip-path: inset(100% 0 0 0); transition: clip-path 0.6s var(--dx-ease);
}
.elementor .e-con.dx-card--flood:hover, .elementor .e-con.dx-card--flood:focus-within { color: #000; transform: translateY(-4px); }
.elementor .e-con.dx-card--flood:hover::after, .elementor .e-con.dx-card--flood:focus-within::after { clip-path: inset(0 0 0 0); }
.dx-cards > .dx-card--flood:nth-child(6n+1) { --dx-accent: var(--dx-yellow); }
.dx-cards > .dx-card--flood:nth-child(6n+2) { --dx-accent: var(--dx-orange); }
.dx-cards > .dx-card--flood:nth-child(6n+3) { --dx-accent: var(--dx-pink); }
.dx-cards > .dx-card--flood:nth-child(6n+4) { --dx-accent: var(--dx-cream); }
.dx-cards > .dx-card--flood:nth-child(6n+5) { --dx-accent: var(--dx-tan); }
.dx-cards > .dx-card--flood:nth-child(6n+6) { --dx-accent: var(--dx-magenta); }
.elementor .e-con.dx-card--tall { min-height: clamp(260px, 26vw, 360px); }
.elementor .e-con.dx-card--outline { background: transparent; border: 1.5px solid var(--dx-line); }
.elementor .e-con.dx-card--light { --dx-card-bg: var(--dx-cream); --dx-card-fg: #000; }

/* compact row list with arrows (industry list on the Services hub) */
.elementor .e-con.dx-rowlist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--dx-gap); border-top: 1.5px solid var(--dx-line); }
.elementor .e-con.dx-rowlink { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 20px; align-items: center; padding: 22px 0; border-bottom: 1.5px solid var(--dx-line); transition: padding 0.4s var(--dx-ease); }
.elementor .e-con.dx-rowlink:hover { padding-left: 12px; }
.dx-rowlink .elementor-widget.dx-link .elementor-button::after { content: ""; position: absolute; inset: 0; }
@media (max-width: 767px) { .elementor .e-con.dx-rowlist { grid-template-columns: minmax(0, 1fr); } }

/* price chip */
.elementor-widget.dx-chip .elementor-button, a.dx-chip {
	display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border-radius: 999px;
	background: color-mix(in srgb, var(--dx-fg) 10%, transparent); color: var(--dx-fg); border: 1px solid var(--dx-line);
	font-size: 0.9375rem; font-weight: 600; text-decoration: none; transition: background var(--dx-fast), color var(--dx-fast);
}
.elementor-widget.dx-chip .elementor-button:hover, a.dx-chip:hover { background: var(--dx-yellow); color: #000; border-color: var(--dx-yellow); }

/* ---------- 11. Proof: stat tiles, case study cards, source labels ---------- */
.dx-source, .dx-source p, p.dx-source, span.dx-source {
	font-size: var(--dx-fs-source); line-height: 1.45; color: var(--dx-muted); margin: 0;
}
.dx-source a, a.dx-source { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.dx-source a:hover { color: var(--dx-fg); }
.elementor .e-con.dx-case { gap: 12px; }.elementor .dx-case .dx-metric .elementor-heading-title, .elementor .dx-stat .dx-metric .elementor-heading-title {
	font-size: clamp(2.75rem, 1.6rem + 4vw, 5.25rem); font-weight: 700; line-height: 0.9; letter-spacing: -0.045em; color: inherit; margin: 0;
	font-variant-numeric: tabular-nums;
}.elementor .dx-case .dx-metric .elementor-heading-title .dx-arrow-sep { color: var(--dx-yellow); margin: 0 0.12em; }
.elementor .dx-case .dx-metric.dx-metric--long .elementor-heading-title, .elementor .dx-stat .dx-metric.dx-metric--long .elementor-heading-title { font-size: clamp(2.25rem, 1.3rem + 2.4vw, 3.5rem); }
.elementor .dx-case--large .dx-metric.dx-metric--long .elementor-heading-title { font-size: clamp(2.5rem, 1.4rem + 3.4vw, 4.75rem); }.elementor .dx-case .dx-client .elementor-heading-title { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-yellow); margin: 0; }
.dx-case .dx-source { padding-top: 14px; border-top: 1px solid var(--dx-line); margin-top: 6px; }
.elementor .e-con.dx-case--large { grid-row: span 2; }
.elementor .e-con.dx-stat { padding: clamp(20px, 2.4vw, 30px); border-radius: var(--dx-r-md); background: var(--dx-ink); display: flex; flex-direction: column; gap: 10px; }
.dx-on-cream .dx-stat, .dx-on-yellow .dx-stat { background: rgb(0 0 0 / 0.06); }

/* testimonial */
.elementor .e-con.dx-quote-card { padding: clamp(24px, 3vw, 44px); border-radius: var(--dx-r-md); background: var(--dx-ink); gap: 18px; }
.dx-quote-card .dx-quote-text, .dx-quote-card .dx-quote-text p { font-size: var(--dx-fs-h4); line-height: 1.4; }
.elementor .e-con.dx-quote-card { position: relative; padding-top: clamp(64px, 6vw, 88px); }
.elementor .e-con.dx-quote-card::after { content: "\201C"; position: absolute; top: 14px; left: clamp(20px, 3vw, 40px); font-size: 5.5rem; line-height: 1; font-weight: 700; color: var(--dx-yellow); pointer-events: none; }

/* ---------- 12. Bands ---------- */
.elementor .e-con.dx-quote { padding: clamp(32px, 6vw, 96px); border-radius: var(--dx-r-lg); background: var(--dx-ink); position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px clamp(28px, 5vw, 80px); align-items: start; }
.elementor .e-con.dx-quote::after { content: "\201C"; position: absolute; top: clamp(-8px, 0vw, 8px); right: clamp(18px, 3vw, 52px); left: auto; width: auto; height: auto; font-size: clamp(7rem, 14vw, 15rem); line-height: 1; font-weight: 700; color: var(--dx-yellow); pointer-events: none; }
.dx-quote .dx-lead p { font-size: var(--dx-fs-h4); line-height: 1.45; }
.elementor .e-con.dx-quote > .dx-head { margin-bottom: 0; }
@media (max-width: 1024px) { .elementor .e-con.dx-quote { grid-template-columns: minmax(0, 1fr); } }

.dx-read p { font-size: var(--dx-fs-h3); font-weight: 600; line-height: 1.22; letter-spacing: -0.022em; color: var(--dx-fg); max-width: 30ch; }
.dx-read .dx-word { transition: opacity 0.25s linear; }
.elementor .e-con.dx-statement { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px clamp(28px, 5vw, 80px); align-items: start; }
@media (max-width: 1024px) { .elementor .e-con.dx-statement { grid-template-columns: minmax(0, 1fr); } }

/* three text columns on a dark panel */
.elementor .e-con.dx-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-radius: var(--dx-r-lg); background: var(--dx-ink); overflow: hidden; }
.elementor .e-con.dx-col { padding: clamp(24px, 3vw, 44px); display: flex; flex-direction: column; gap: 12px; }
.elementor .e-con.dx-col + .dx-col { border-left: 1px solid var(--dx-line); }
@media (max-width: 767px) { .elementor .e-con.dx-cols { grid-template-columns: minmax(0, 1fr); } .elementor .e-con.dx-col + .dx-col { border-left: 0; border-top: 1px solid var(--dx-line); } }

/* cross list (what we do not sell) */
.dx-crosslist ul, ul.dx-crosslist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--dx-gap); }
.dx-crosslist li { display: grid; grid-template-columns: 30px 1fr; gap: 14px; padding: 18px 0; border-bottom: 1.5px solid var(--dx-line); line-height: 1.45; }
.dx-crosslist li::before { content: "\00D7"; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid currentColor; display: grid; place-items: center; font-size: 1.25rem; line-height: 1; font-weight: 500; }
.dx-crosslist li strong { display: block; font-weight: 700; }
@media (max-width: 767px) { .dx-crosslist ul, ul.dx-crosslist { grid-template-columns: minmax(0, 1fr); } }

/* checklist */
.dx-checklist ul, ul.dx-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
/* block + absolute tick, so an item with a bold lead-in and its text stays one flowing line */
.dx-checklist li { position: relative; display: block; padding: 14px 0 14px 40px; border-bottom: 1px solid var(--dx-line); line-height: 1.45; }
.dx-checklist li::before { content: ""; position: absolute; left: 0; top: 16px; width: 20px; height: 20px; border-radius: 50%; background: var(--dx-yellow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px no-repeat; }
.dx-on-yellow .dx-checklist li::before, .dx-on-cream .dx-checklist li::before { background-color: #000; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23F3F3E1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.dx-checklist--2 ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--dx-gap); }
@media (max-width: 767px) { .dx-checklist--2 ul { grid-template-columns: minmax(0, 1fr); } }

/* terms list under plan tables */
.dx-terms ul, ul.dx-terms { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--dx-gap); }
.dx-terms li { padding: 14px 0 14px 26px; border-bottom: 1px solid var(--dx-line); position: relative; font-size: var(--dx-fs-small); line-height: 1.45; }
.dx-terms li::before { content: ""; position: absolute; left: 2px; top: 21px; width: 8px; height: 8px; border-radius: 2px; background: var(--dx-yellow); transform: rotate(45deg); }
.dx-on-yellow .dx-terms li::before, .dx-on-cream .dx-terms li::before { background: #000; }
@media (max-width: 767px) { .dx-terms ul, ul.dx-terms { grid-template-columns: minmax(0, 1fr); } }

/* ---------- 13. Tables (comparison, routing, plan rows, terms) ---------- */
.dx-tablebox { overflow-x: auto; position: relative; border-radius: var(--dx-r-md); -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
table.dx-table { border: 0; width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--dx-fs-small); line-height: 1.45; margin: 0; color: var(--dx-fg); }
table.dx-table caption { caption-side: bottom; text-align: left; padding-top: 14px; font-size: var(--dx-fs-source); color: var(--dx-muted); }
table.dx-table th, table.dx-table td { text-align: left; vertical-align: top; padding: 18px 20px; border: 0; border-bottom: 1px solid var(--dx-line); background: transparent; }
table.dx-table thead th { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); border-bottom: 1.5px solid var(--dx-fg); padding-top: 12px; padding-bottom: 12px; }
table.dx-table tbody th { font-weight: 700; font-size: var(--dx-fs-body); letter-spacing: -0.01em; }
table.dx-table tbody tr { transition: background 0.25s ease; }
table.dx-table tbody tr:hover { background: color-mix(in srgb, var(--dx-fg) 6%, transparent); }
table.dx-table td strong { font-weight: 700; }
table.dx-table a { color: inherit; text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
table.dx-table .dx-yes::before, table.dx-table .dx-no::before { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; margin-right: 8px; font-size: 0.75rem; font-weight: 700; vertical-align: -2px; }
table.dx-table .dx-yes::before { content: "\2713"; background: var(--dx-yellow); color: #000; }
table.dx-table .dx-no::before { content: "\00D7"; border: 1.5px solid currentColor; }
/* a table that becomes stacked cards on phones */
@media (max-width: 767px) {
	table.dx-table--stack, table.dx-table--stack tbody, table.dx-table--stack tr, table.dx-table--stack th, table.dx-table--stack td { display: block; width: 100%; }
	table.dx-table--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	table.dx-table--stack caption { display: block; width: 100%; }
	table.dx-table--stack tr { border: 1px solid var(--dx-line); border-radius: var(--dx-r-md); padding: 6px 18px; margin-bottom: 12px; }
	table.dx-table--stack tbody tr:hover { background: transparent; }
	table.dx-table--stack th, table.dx-table--stack td { border-bottom: 1px solid var(--dx-line); padding: 12px 0; }
	table.dx-table--stack tr > :last-child { border-bottom: 0; }
	table.dx-table--stack td[data-label]::before { content: attr(data-label); display: block; font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); margin-bottom: 4px; }
}
/* a wide table that scrolls inside its own box, first column pinned */
table.dx-table--scroll { min-width: 760px; }
table.dx-table--scroll th:first-child, table.dx-table--scroll td:first-child { position: sticky; left: 0; z-index: 1; background: var(--dx-bg); box-shadow: 1px 0 0 var(--dx-line); }
table.dx-table--plans td, table.dx-table--plans th { width: auto; }
table.dx-table--plans .is-rec { background: color-mix(in srgb, var(--dx-yellow) 10%, transparent); }
table.dx-table--plans thead .is-rec { color: var(--dx-yellow); }

/* two-column comparison block (worry and answer, a report and the work) */
table.dx-compare { border: 0; width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
table.dx-compare th, table.dx-compare td { padding: 22px clamp(16px, 2vw, 28px); text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid var(--dx-line); font-size: var(--dx-fs-body); line-height: 1.5; background: transparent; color: var(--dx-fg); }
table.dx-compare thead th { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); border-bottom: 1.5px solid var(--dx-fg); }
table.dx-compare td:last-child, table.dx-compare th:last-child { background: color-mix(in srgb, var(--dx-yellow) 9%, transparent); }
.dx-on-yellow table.dx-compare td:last-child, .dx-on-yellow table.dx-compare th:last-child { background: rgb(0 0 0 / 0.06); }
table.dx-compare td:last-child::before { content: ""; display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--dx-yellow); margin-right: 12px; vertical-align: 2px; }
.dx-on-yellow table.dx-compare td:last-child::before, .dx-on-cream table.dx-compare td:last-child::before { background: #000; }
table.dx-compare td strong { display: block; font-weight: 700; margin-bottom: 2px; }
@media (max-width: 767px) {
	table.dx-compare, table.dx-compare tbody, table.dx-compare tr, table.dx-compare td { display: block; width: 100%; }
	table.dx-compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	table.dx-compare tr { margin-bottom: 14px; border: 1px solid var(--dx-line); border-radius: var(--dx-r-md); overflow: hidden; }
	table.dx-compare td::after { content: none; }
	table.dx-compare td[data-label]::before { content: attr(data-label); display: block; width: auto; height: auto; border-radius: 0; background: none !important; margin: 0 0 6px; font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); }
}

/* ---------- 14. Plans and prices ---------- */
.elementor .e-con.dx-plans { display: grid; grid-template-columns: repeat(var(--dx-plans, 4), minmax(0, 1fr)); gap: 14px; align-items: stretch; }
.elementor .e-con.dx-plans--3 { --dx-plans: 3; }
.elementor .e-con.dx-plans--2 { --dx-plans: 2; }
@media (max-width: 1024px) { .elementor .e-con.dx-plans { --dx-plans: 2; } }
@media (max-width: 767px) { .elementor .e-con.dx-plans { --dx-plans: 1; } }
.elementor .e-con.dx-plan { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 2.4vw, 32px); border-radius: var(--dx-r-md); background: var(--dx-ink); border: 1.5px solid transparent; position: relative; }
.elementor .e-con.dx-plan--rec { background: var(--dx-yellow); color: #000; --dx-fg: #000; --dx-muted: rgb(0 0 0 / 0.72); --dx-line: rgb(0 0 0 / 0.18); --dx-focus: #000; --dx-btn-bg: #000; --dx-btn-fg: var(--dx-cream); --dx-btn-hover: var(--dx-ink); }.elementor .dx-plan .dx-plan-name .elementor-heading-title { font-size: var(--dx-fs-h3); font-weight: 700; letter-spacing: -0.025em; line-height: 1; margin: 0; color: var(--dx-fg); }
.dx-plan .dx-price, .dx-plan .dx-price p { font-size: var(--dx-fs-h4); font-weight: 600; line-height: 1.25; color: var(--dx-fg); }
.dx-plan .dx-price strong { display: block; font-size: clamp(2rem, 1.6rem + 1.6vw, 2.75rem); letter-spacing: -0.035em; line-height: 1; font-weight: 700; }.elementor .dx-plan .dx-badge .elementor-heading-title { display: inline-flex; padding: 6px 10px; border-radius: 999px; background: #000; color: var(--dx-yellow); font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; margin: 0; }
.dx-plan .dx-checklist li { padding: 10px 0 10px 32px; font-size: var(--dx-fs-small); }
.dx-plan .dx-checklist li::before { top: 11px; width: 18px; height: 18px; background-size: 18px; }
.dx-plan .dx-btn { margin-top: auto; }
.dx-plan .elementor-widget.dx-btn .elementor-button { width: 100%; }
.dx-plan--rec .dx-checklist li::before { background-color: #000; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23FFF94B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

/* 'from' price band */
.elementor .e-con.dx-pricerow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.elementor .e-con.dx-price-card { padding: clamp(22px, 2.6vw, 34px); border-radius: var(--dx-r-md); background: var(--dx-ink); display: flex; flex-direction: column; gap: 8px; position: relative; }.elementor .dx-price-card .dx-price-big .elementor-heading-title { font-size: clamp(2.25rem, 1.5rem + 2.6vw, 3.75rem); font-weight: 700; letter-spacing: -0.04em; line-height: 0.95; margin: 0; color: var(--dx-fg); }
.dx-price-card .dx-price-unit p { font-size: var(--dx-fs-small); font-weight: 600; color: var(--dx-muted); margin: 0; }
@media (max-width: 767px) { .elementor .e-con.dx-pricerow { grid-template-columns: minmax(0, 1fr); } }


/* ---------- 15. Free offer cards (dot-matrix dice) ---------- */
.elementor .e-con.dx-offer { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 14px; padding: clamp(24px, 2.8vw, 40px); padding-bottom: clamp(32px, 4vw, 56px); border-radius: var(--dx-r-md); background: var(--dx-ink); min-height: 280px; isolation: isolate; }
.dx-offer > .dx-btn, .dx-offer > .dx-link { padding-right: clamp(0px, 10vw, 150px); }
.elementor .e-con.dx-offer::after { content: ""; position: absolute; right: clamp(-28px, -1vw, -6px); bottom: clamp(-28px, -1vw, -6px); top: auto; width: clamp(120px, 12vw, 180px); aspect-ratio: 1; background: url("../svg/dot-matrix.svg") center / contain no-repeat; opacity: 0.85; z-index: -1; pointer-events: none; transition: transform 0.8s var(--dx-ease), opacity 0.4s; }
.elementor .e-con.dx-offer:hover::after { transform: rotate(-8deg) scale(1.05); opacity: 1; }
.elementor .e-con.dx-offer.has-field::after { display: none; }
.dx-offer canvas.dx-dotfield { position: absolute; right: clamp(-28px, -1vw, -6px); bottom: clamp(-28px, -1vw, -6px); top: auto; width: clamp(120px, 12vw, 180px); height: clamp(120px, 12vw, 180px); z-index: -1; pointer-events: none; }
.elementor .e-con.dx-offer--paid { background: var(--dx-yellow); color: #000; --dx-fg: #000; --dx-muted: rgb(0 0 0 / 0.72); --dx-line: rgb(0 0 0 / 0.18); --dx-focus: #000; --dx-btn-bg: #000; --dx-btn-fg: var(--dx-cream); --dx-btn-hover: var(--dx-ink); }
.elementor .e-con.dx-offer--paid::after { filter: invert(1); opacity: 0.5; }
.dx-offer > .dx-btn, .dx-offer > .dx-link { margin-top: auto; }

/* ---------- 16. FAQ (Elementor accordion) ---------- */
.elementor .dx-faq .e-n-accordion { border-top: 1.5px solid var(--dx-line); }
.elementor .dx-faq .e-n-accordion-item { border-bottom: 1.5px solid var(--dx-line); }
.elementor .dx-faq .e-n-accordion-item-title {
	border: 0; border-radius: 0; flex-direction: row;
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
	padding: clamp(18px, 2.2vw, 28px) 0; cursor: pointer; list-style: none; background: transparent; border: 0;
	color: var(--dx-fg);
}
.elementor .dx-faq .e-n-accordion-item-title::-webkit-details-marker { display: none; }
.elementor .dx-faq .e-n-accordion-item-title-text { font-size: var(--dx-fs-h4); font-weight: 600; line-height: 1.25; letter-spacing: -0.012em; color: var(--dx-fg); transition: color var(--dx-fast); }
.elementor .dx-faq .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: var(--dx-yellow); }
.elementor .dx-on-yellow .dx-faq .e-n-accordion-item-title:hover .e-n-accordion-item-title-text, .elementor .dx-on-cream .dx-faq .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: inherit; text-decoration: underline; }
.elementor .dx-faq .e-n-accordion-item-title-icon, .elementor .dx-faq .e-n-accordion-item-title-header::before { display: none !important; }
.elementor .dx-faq .e-n-accordion-item-title-header { flex: 1; }
.elementor .dx-faq .e-n-accordion-item-title::after {
	content: ""; flex: none; width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--dx-line);
	background:
		linear-gradient(currentColor, currentColor) center / 14px 1.5px no-repeat,
		linear-gradient(currentColor, currentColor) center / 1.5px 14px no-repeat;
	transition: transform 0.45s var(--dx-ease), background-color var(--dx-fast), border-color var(--dx-fast);
}
.elementor .dx-faq .e-n-accordion-item[open] > .e-n-accordion-item-title::after { transform: rotate(135deg); background-color: var(--dx-yellow); border-color: var(--dx-yellow); color: #000; }
.elementor .dx-faq .e-n-accordion-item > .e-con { padding: 0 0 clamp(20px, 2.4vw, 32px); max-width: 72ch; border: 0; }
.elementor .dx-faq .e-n-accordion-item > .e-con .dx-body, .elementor .dx-faq .e-n-accordion-item > .e-con p { color: var(--dx-muted); font-size: var(--dx-fs-body); }
.elementor .e-con.dx-faqgrid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 28px clamp(28px, 5vw, 96px); align-items: start; }
.elementor .e-con.dx-faqcol { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.elementor .e-con.dx-faqgrid > .dx-head { position: sticky; top: calc(var(--dx-header) + 32px); margin-bottom: 0; grid-template-columns: minmax(0, 1fr); }
@media (max-width: 1024px) { .elementor .e-con.dx-faqgrid { grid-template-columns: minmax(0, 1fr); } .elementor .e-con.dx-faqgrid > .dx-head { position: static; } }

/* ---------- 17. Closing CTA band ---------- */
.elementor .e-con.dx-cta { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); border-radius: var(--dx-r-lg); overflow: hidden; min-height: clamp(360px, 34vw, 520px); }
.elementor .e-con.dx-cta__main { position: relative; padding: clamp(28px, 5vw, 80px); display: flex; flex-direction: column; justify-content: flex-end; gap: 20px; overflow: hidden; isolation: isolate; }
.elementor .e-con.dx-cta__mark { position: relative; display: grid; place-items: center; padding: clamp(28px, 4vw, 64px); min-height: 220px; }
.elementor .e-con.dx-cta__mark::after { content: ""; width: min(78%, 260px); aspect-ratio: 1; background: url("../svg/arrow.svg") center / contain no-repeat; }
.elementor .e-con.dx-cta__mark.has-arrow::after { display: none; }
.dx-cta__mark svg.dx-arrow { width: min(78%, 260px); height: auto; overflow: visible; }
.dx-cta__mark svg.dx-arrow circle { transition: transform 0.6s var(--dx-ease); transform-box: fill-box; transform-origin: center; }
.dx-cta:hover .dx-cta__mark svg.dx-arrow circle { transform: translate(calc(var(--i) * 3px + 6px), calc(var(--i) * -3px - 6px)); transition-delay: calc(var(--i) * 30ms); }.elementor .dx-cta .dx-cta-title .elementor-heading-title { font-size: clamp(2.375rem, 1.3rem + 4.6vw, 5.25rem); font-weight: 700; line-height: 0.9; letter-spacing: -0.04em; text-transform: uppercase; color: #000; margin: 0; max-width: 14ch; }
.dx-cta .dx-body, .dx-cta .dx-body p { color: rgb(0 0 0 / 0.78); font-size: var(--dx-fs-lead); max-width: 44ch; }
.dx-cta .dx-led p { background-image: radial-gradient(circle at center, rgb(0 0 0 / 0.12) 0 1.7px, transparent 2.1px); }
.dx-cta .dx-led__board circle { fill: #000; }
.elementor .e-con.dx-cta--slim { grid-template-columns: minmax(0, 1fr) auto; min-height: 0; align-items: center; }
.elementor .e-con.dx-cta--slim .dx-cta__main { padding: clamp(24px, 3vw, 44px); }
.elementor .e-con.dx-cta--slim .dx-cta__mark { min-height: 0; padding: 24px 40px; }
.elementor .e-con.dx-cta--slim .dx-cta__mark::after, .dx-cta--slim .dx-cta__mark svg.dx-arrow { width: 110px; }.elementor .dx-cta--slim .dx-cta-title .elementor-heading-title { font-size: var(--dx-fs-h2); }
@media (max-width: 767px) {
	.elementor .e-con.dx-cta, .elementor .e-con.dx-cta--slim { grid-template-columns: minmax(0, 1fr); }
	.elementor .e-con.dx-cta__mark { min-height: 160px; }
	.elementor .e-con.dx-cta__mark::after, .dx-cta__mark svg.dx-arrow { width: 120px; }
}

/* ---------- 18. Logo wall, team ---------- */
.elementor .e-con.dx-logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 1px; background: var(--dx-line); border: 1px solid var(--dx-line); border-radius: var(--dx-r-md); overflow: hidden; }
.elementor .e-con.dx-logo-cell { background: var(--dx-black); min-height: 120px; display: grid; place-items: center; padding: 24px; }
.elementor .e-con.dx-team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--dx-gap); }
.elementor .e-con.dx-person { display: flex; flex-direction: column; gap: 12px; }
.elementor .e-con.dx-person__photo { aspect-ratio: 4 / 5; border-radius: var(--dx-r-md); overflow: hidden; display: grid; place-items: center; background: var(--dx-yellow); color: #000; }
.dx-person:nth-child(4n+2) .dx-person__photo { background: var(--dx-pink); }
.dx-person:nth-child(4n+3) .dx-person__photo { background: var(--dx-orange); }
.dx-person:nth-child(4n+4) .dx-person__photo { background: var(--dx-magenta); }.elementor .dx-person__initials .elementor-heading-title { font-size: clamp(3rem, 2rem + 4vw, 6rem); font-weight: 700; letter-spacing: -0.05em; color: #000; margin: 0; }
@media (max-width: 1024px) { .elementor .e-con.dx-team { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .elementor .e-con.dx-team { grid-template-columns: minmax(0, 1fr); } }

/* report image with callouts (falls back to a checklist) */
.elementor .e-con.dx-report { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(24px, 4vw, 64px); align-items: center; }
@media (max-width: 1024px) { .elementor .e-con.dx-report { grid-template-columns: minmax(0, 1fr); } }
.elementor .e-con.dx-report-sheet { background: var(--dx-cream); color: #000; border-radius: var(--dx-r-md); padding: clamp(20px, 3vw, 40px); aspect-ratio: 210 / 230; position: relative; display: flex; flex-direction: column; gap: 14px; overflow: hidden; --dx-fg: #000; --dx-muted: rgb(0 0 0 / 0.6); --dx-line: rgb(0 0 0 / 0.14); }

/* ---------- 19. Hidden-until-cleared blocks on staging ---------- */
/* shown by the staging switch (28k) exactly as they will look once cleared: no outline, no tag */

/* ---------- 20. Blog and case study classes (block HTML from the REST API) ---------- */
.single-post .entry-content, .dx-prose { font-size: var(--dx-fs-body); line-height: 1.7; color: var(--dx-cream); }
.single-post .entry-content > * { max-width: 70ch; margin-left: auto; margin-right: auto; }
.single-post .entry-content h2 { font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.5rem); font-weight: 700; letter-spacing: -0.028em; line-height: 1.05; margin: 2em auto 0.6em; }
.single-post .entry-content h3 { font-size: var(--dx-fs-h4); font-weight: 650; letter-spacing: -0.012em; line-height: 1.25; margin: 1.6em auto 0.5em; }
.single-post .entry-content a { color: var(--dx-yellow); text-decoration: underline; text-underline-offset: 3px; }
.single-post .entry-content blockquote { border-left: 3px solid var(--dx-yellow); padding: 0.2em 0 0.2em 1.2em; font-size: var(--dx-fs-lead); color: var(--dx-cream); }
.single-post .entry-content figcaption { font-size: var(--dx-fs-source); color: var(--dx-muted); }
.single-post .entry-content details:not(.dx-toc-box) { border-bottom: 1.5px solid var(--dx-line); padding: 18px 0; }
.single-post .entry-content details:not(.dx-toc-box) summary { font-weight: 600; font-size: var(--dx-fs-h4); cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 20px; }
.single-post .entry-content details:not(.dx-toc-box) summary::after { content: "+"; flex: none; align-self: flex-start; font-weight: 400; font-size: 1.6em; line-height: 0.8; transition: transform 0.4s var(--dx-ease); }
.single-post .entry-content details:not(.dx-toc-box)[open] summary::after { transform: rotate(45deg); }

/* the short answer (first 100 words) */
.dx-summary { background: var(--dx-cream); color: #000; border-radius: var(--dx-r-md); padding: clamp(20px, 2.6vw, 32px); margin: 1.6em auto; }
.dx-summary > :first-child { margin-top: 0; }
.dx-summary > :last-child { margin-bottom: 0; }
.dx-summary .dx-summary__label, .dx-summary h2:first-child { font-size: var(--dx-fs-label) !important; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; margin: 0 0 10px !important; color: rgb(0 0 0 / 0.7); }
.dx-summary a { color: #000 !important; }

/* CTA card inside a post */
.dx-cta-card { background: var(--dx-ink); border: 1px solid var(--dx-line); border-radius: var(--dx-r-md); padding: clamp(20px, 2.6vw, 32px); margin: 2em auto; display: grid; gap: 12px; }
.dx-cta-card > * { margin: 0 !important; }
.dx-cta-card .dx-cta-card__title { font-size: var(--dx-fs-h4); font-weight: 700; letter-spacing: -0.01em; color: var(--dx-cream); }
.dx-cta-card a.dx-cta-card__button, .dx-cta-band a.dx-cta-band__button {
	justify-self: start; display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; border-radius: var(--dx-r-sm);
	background: var(--dx-orange); color: #000 !important; font-weight: 600; text-decoration: none !important;
}
.dx-cta-card a.dx-cta-card__button:hover, .dx-cta-band a.dx-cta-band__button:hover { background: var(--dx-yellow); }

/* CTA band inside a post (simple version of the closing band) */
.dx-cta-band { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; border-radius: var(--dx-r-lg); background: var(--dx-pink); color: #000; padding: clamp(24px, 3.4vw, 44px); margin: 2.4em auto; }
.dx-cta-band > * { margin: 0 !important; }
.dx-cta-band .dx-cta-band__title { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1; text-transform: uppercase; color: #000; }
.dx-cta-band a.dx-cta-band__button { background: #000; color: var(--dx-cream) !important; }
.dx-cta-band a.dx-cta-band__button:hover { background: var(--dx-ink); }
.dx-cta-band--yellow { background: var(--dx-yellow); }
/* light panels inside an article keep black text (the article's own text rule is cream) */
.single-post .entry-content .dx-cta-band, .single-post .entry-content .dx-cta-band p, .single-post .entry-content .dx-summary p, .single-post .entry-content .dx-summary li { color: #000; }
.dx-cta-band--cream { background: var(--dx-cream); }
@media (max-width: 767px) { .dx-cta-band { grid-template-columns: 1fr; } }

/* callout */
.dx-callout { border-left: 4px solid var(--dx-yellow); background: var(--dx-ink); border-radius: 0 var(--dx-r-md) var(--dx-r-md) 0; padding: 18px 22px; margin: 1.6em auto; }
.dx-callout > :last-child { margin-bottom: 0; }
.dx-callout--pink { border-left-color: var(--dx-pink); }

/* stat tile inside a post or case study */
.dx-stat-tile, .dx-stat { display: grid; gap: 6px; }
div.dx-stat-tile { background: var(--dx-ink); border-radius: var(--dx-r-md); padding: 20px 22px; }
.dx-stat-tile .dx-stat-tile__value { font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.5rem); font-weight: 700; letter-spacing: -0.04em; line-height: 0.95; margin: 0; }
.dx-stat-tile .dx-stat-tile__label { font-weight: 600; margin: 0; }
.dx-stat-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin: 1.6em auto; }

/* numbered sources list */
ol.dx-sources, .dx-sources ol { font-size: var(--dx-fs-small); color: var(--dx-muted); padding-left: 1.4em; }
ol.dx-sources li, .dx-sources li { margin-bottom: 0.5em; }
.dx-sources a { color: var(--dx-cream); }

/* ---------- 21. Motion states (only when the script runs and motion is allowed) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.dx-js .dx-reveal { opacity: 0; transform: translate3d(0, 26px, 0); }
	.dx-js .dx-reveal.is-in { opacity: 1; transform: none; transition: opacity 0.9s var(--dx-ease), transform 1.1s var(--dx-ease); transition-delay: var(--dx-delay, 0s); }
	.dx-js .dx-wipe { clip-path: inset(0 100% 0 0 round var(--dx-r-lg)); }
	.dx-js .dx-wipe.is-in { clip-path: inset(0 0 0 0 round var(--dx-r-lg)); transition: clip-path 1.2s var(--dx-ease); transition-delay: var(--dx-delay, 0s); }
	.dx-js .dx-versus li.is-no strong::after { transform: scaleX(0); }
	.dx-js .is-in .dx-versus li.is-no strong::after, .dx-js .dx-versus.is-in li.is-no strong::after { transform: scaleX(1); transition: transform 0.7s var(--dx-ease) 0.6s; }
	.dx-js .dx-draw path { stroke-dasharray: 1; stroke-dashoffset: 1; }
	.dx-js .dx-draw.is-drawn path { stroke-dashoffset: 0; transition: stroke-dashoffset var(--dx-draw-dur, 1.6s) var(--dx-ease-io); transition-delay: var(--dx-draw-delay, 0s); }
}
.dx-progress { position: fixed; left: 0; top: 0; height: 3px; width: 100%; background: var(--dx-yellow); transform-origin: 0 50%; transform: scaleX(0); z-index: 101; pointer-events: none; }
.admin-bar .dx-progress { top: var(--wp-admin--admin-bar--height, 32px); }

/* on-this-page rail for long pages (built by the script from the H2s) */

/* ---------- 22. Plan table as aligned cards (subgrid) ---------- */
.elementor .e-con.dx-plangrid { display: grid; grid-template-columns: repeat(var(--dx-plancols, 4), minmax(0, 1fr)); gap: 0 14px; align-items: stretch; }
.elementor .e-con.dx-plangrid--3 { --dx-plancols: 3; }
.elementor .e-con.dx-plangrid--2 { --dx-plancols: 2; }
.elementor .e-con.dx-plangrid > .dx-plan--rows { display: grid; grid-template-rows: subgrid; gap: 0; padding: clamp(22px, 2.2vw, 30px) clamp(18px, 2vw, 26px); margin-bottom: 14px; }
.dx-rows-10 > .dx-plan--rows { grid-row: span 10; } .dx-rows-11 > .dx-plan--rows { grid-row: span 11; } .dx-rows-12 > .dx-plan--rows { grid-row: span 12; }
.dx-rows-13 > .dx-plan--rows { grid-row: span 13; } .dx-rows-14 > .dx-plan--rows { grid-row: span 14; } .dx-rows-15 > .dx-plan--rows { grid-row: span 15; }
.dx-rows-8 > .dx-plan--rows { grid-row: span 8; } .dx-rows-9 > .dx-plan--rows { grid-row: span 9; } .dx-rows-7 > .dx-plan--rows { grid-row: span 7; } .dx-rows-6 > .dx-plan--rows { grid-row: span 6; }
.dx-plan--rows .dx-badge { position: absolute; top: clamp(18px, 2vw, 26px); right: clamp(16px, 2vw, 24px); }
.dx-plan--rows .dx-price { padding-top: 12px; }
.dx-plan--rows .dx-best p, .dx-plan--rows .dx-best { font-size: var(--dx-fs-small); color: var(--dx-muted); margin: 0; padding: 8px 0 18px; }
.dx-plan--rows .dx-plan-row p { margin: 0; padding: 13px 0; border-top: 1px solid var(--dx-line); font-size: var(--dx-fs-small); line-height: 1.4; font-weight: 600; color: var(--dx-fg); }
.dx-plan--rows .dx-plan-row .dx-row-label { display: block; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dx-muted); margin-bottom: 3px; }
.dx-plan--rows > .dx-btn { margin-top: 0; padding-top: 18px; align-self: end; }
.dx-plan--rows .dx-price strong { font-size: clamp(1.875rem, 1.4rem + 1.6vw, 2.625rem); }
@media (max-width: 1024px) { .elementor .e-con.dx-plangrid { --dx-plancols: 2; } }
@media (max-width: 767px) { .elementor .e-con.dx-plangrid { --dx-plancols: 1; } }

/* label and answer pairs */
.dx-pairs { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); margin: 0; border-top: 1.5px solid var(--dx-line); }
.dx-pairs dt, .dx-pairs dd { margin: 0; padding: 18px 0; border-bottom: 1px solid var(--dx-line); line-height: 1.5; }
.dx-pairs dt { font-weight: 700; padding-right: 24px; font-size: var(--dx-fs-body); letter-spacing: -0.01em; }
.dx-pairs dd { color: var(--dx-muted); }
@media (max-width: 767px) { .dx-pairs { grid-template-columns: minmax(0, 1fr); } .dx-pairs dt { border-bottom: 0; padding-bottom: 2px; } .dx-pairs dd { padding-top: 4px; } }

/* compact link tiles */
.elementor .e-con.dx-card--tile { min-height: clamp(200px, 17vw, 250px); gap: 12px; }
.dx-tiles .dx-card .dx-h4 .elementor-heading-title { font-size: var(--dx-fs-h4); }

/* screenshot or figure slot inside a split card */
.elementor .e-con.dx-figure { border-radius: var(--dx-r-md); overflow: hidden; background: rgb(0 0 0 / 0.08); display: grid; place-items: center; min-height: 220px; padding: 20px; }
.dx-figure img { width: 100%; height: auto; display: block; border-radius: 10px; }
/* placeholder notes stay fully legible on coloured panels (staging only: figures wait for real images) */
.dx-figure .dx-small, .dx-figure .dx-small p, .dx-figure .dx-source { color: currentColor; opacity: 1; }

/* three figures in a row (25 / 50 / 100 tracked questions) */
.elementor .e-con.dx-figures { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1.5px solid var(--dx-line); }
.elementor .e-con.dx-figures > .e-con { padding: 18px 16px 0 0; display: flex; flex-direction: column; gap: 6px; }
.elementor .e-con.dx-figures > .e-con + .e-con { border-left: 1px solid var(--dx-line); padding-left: 16px; }
.elementor .dx-figure-num .elementor-heading-title { font-size: clamp(2.5rem, 1.6rem + 3vw, 4rem); font-weight: 700; letter-spacing: -0.045em; line-height: 0.9; color: var(--dx-fg); margin: 0; }
.elementor .e-con.dx-plangrid--5 { --dx-plancols: 5; }
@media (max-width: 1280px) { .elementor .e-con.dx-plangrid--5 { --dx-plancols: 3; } }
@media (max-width: 1024px) { .elementor .e-con.dx-plangrid--5 { --dx-plancols: 2; } }
@media (max-width: 767px) { .elementor .e-con.dx-plangrid--5 { --dx-plancols: 1; } }

/* ---------- 23. Contact page and the site form (SureForms) ---------- */
.elementor .e-con.dx-hero--contact { padding-block: clamp(20px, 3vw, 48px) clamp(12px, 2vw, 28px); }
.elementor .e-con.dx-hero--contact .dx-hero__grid { align-items: end; }
.elementor .e-con.dx-formgrid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--dx-gap); align-items: start; }
.elementor .e-con.dx-formpanel { padding: clamp(24px, 3.6vw, 52px); border-radius: var(--dx-r-lg); display: flex; flex-direction: column; gap: 14px; }
.elementor .e-con.dx-sidepanel { display: flex; flex-direction: column; gap: 18px; padding: clamp(8px, 1.6vw, 24px) 0; position: sticky; top: calc(var(--dx-header) + 24px); }
.elementor .e-con.dx-sidebox { padding: 22px; border-radius: var(--dx-r-md); display: flex; flex-direction: column; gap: 8px; }
.elementor .e-con.dx-tile--side { max-width: 220px; aspect-ratio: 1; }
a.dx-bigmail, .elementor .elementor-widget-text-editor a.dx-bigmail { font-size: clamp(1.375rem, 1.1rem + 1.1vw, 2rem); font-weight: 700; letter-spacing: -0.02em; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; word-break: break-word; }
.elementor .elementor-widget-text-editor a.dx-bigmail:hover { color: var(--dx-yellow); }
.dx-form-note p { margin: 0; }
.dx-mobile-only { display: none !important; }
@media (max-width: 767px) { .dx-mobile-only { display: flex !important; } }
@media (max-width: 1024px) { .elementor .e-con.dx-formgrid { grid-template-columns: minmax(0, 1fr); } .elementor .e-con.dx-sidepanel { position: static; } }
.elementor .e-con.dx-steppick > .dx-offer { min-height: 0; }

/* SureForms: brand colours through its own variables, labels above fields, 40% borders */
.dx-form .srfm-form-container {
	--srfm-bg-color: transparent;
	--srfm-color-input-border: color-mix(in srgb, var(--dx-cream) 45%, transparent);
	--srfm-color-input-border-hover: var(--dx-cream);
	--srfm-color-input-border-focus-glow: color-mix(in srgb, var(--dx-orange) 30%, transparent);
	--srfm-color-input-background: color-mix(in srgb, var(--dx-cream) 4%, transparent);
	--srfm-input-height: 54px;
	--srfm-input-field-font-size: 17px;
	--srfm-input-field-padding: 13px 16px;
	--srfm-label-font-size: 15px;
	--srfm-row-gap-between-blocks: 22px;
	--srfm-btn-padding: 16px 28px;
	--srfm-btn-font-size: 17px;
	background: transparent;
}
.dx-form .srfm-form-container.srfm-bg-color { background: transparent; }
.dx-form .srfm-block-label, .dx-form .srfm-block-legend { font-weight: 600; color: var(--dx-cream); letter-spacing: -0.005em; margin-bottom: 2px; }
.dx-form .srfm-required { color: var(--dx-orange); }
.dx-form .srfm-description { color: color-mix(in srgb, var(--dx-cream) 72%, transparent); }
.dx-form .srfm-input-common, .dx-form .ts-control, .dx-form .srfm-dropdown-common { border-radius: var(--dx-r-sm) !important; font-family: inherit; }
.dx-form .srfm-input-common:focus, .dx-form .srfm-input-common:focus-visible { outline: 3px solid var(--dx-orange); outline-offset: 1px; }
.dx-form .srfm-error-message { color: #ffb4a0; font-size: 14px; font-weight: 600; }
.dx-form .srfm-error .srfm-input-common, .dx-form .srfm-error .ts-control { border-color: #ff8a6b !important; }
.dx-form .srfm-common-error-message { background: color-mix(in srgb, var(--dx-orange) 14%, transparent); border: 1px solid var(--dx-orange); border-radius: var(--dx-r-sm); padding: 12px 14px; color: var(--dx-cream); }
.dx-form .srfm-submit-button, .dx-form #srfm-submit-btn { background: var(--dx-orange) !important; color: #000 !important; border-radius: var(--dx-r-sm) !important; font-weight: 600; min-height: 56px; width: 100%; transition: background 0.25s ease; }
.dx-form .srfm-submit-button:hover, .dx-form #srfm-submit-btn:hover { background: var(--dx-yellow) !important; }
.dx-form .srfm-submit-button[disabled], .dx-form .srfm-submit-button.dx-sending { opacity: 0.85; cursor: progress; }
.dx-form .srfm-submit-container .wp-block-button { width: 100%; }
.dx-form .dx-extra.is-hidden { display: none; }
/* contact: compact top so the form starts above the fold on desktop */
.elementor .e-con.dx-hero--contact .dx-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 22rem); gap: 16px clamp(24px, 4vw, 64px); }
.elementor .dx-hero--contact .dx-h1 .elementor-heading-title { font-size: clamp(2.25rem, 1.35rem + 3.4vw, 4.25rem); }
.elementor .dx-hero--contact .dx-hero__copy { gap: 12px; }
.dx-page-contact-us .elementor .e-con#first-step { padding-block: 8px 28px; }
.dx-page-contact-us #first-step .dx-head { margin-bottom: 0; }
.dx-page-contact-us #first-step .dx-h2 .elementor-heading-title { font-size: var(--dx-fs-h3); }
.elementor .e-con.dx-steppick { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.elementor .e-con.dx-steppick > .dx-offer { min-height: 0; padding: 20px 22px 18px; gap: 8px; }
.dx-steppick > .dx-offer .dx-h3 .elementor-heading-title { font-size: var(--dx-fs-h4); }
.dx-steppick > .dx-offer .dx-body p { font-size: var(--dx-fs-small); line-height: 1.45; }
.elementor .e-con.dx-steppick > .dx-offer::after, .dx-steppick .dx-offer canvas.dx-dotfield { width: 84px; height: 84px; opacity: 0.6; }
.dx-steppick > .dx-offer > .dx-link { padding-right: 70px; }
.dx-steppick > .dx-offer.is-picked { outline: 2px solid var(--dx-yellow); outline-offset: 2px; }
.elementor .dx-formpanel .dx-h2 .elementor-heading-title { font-size: var(--dx-fs-h3); }
.elementor .e-con.dx-formpanel { padding-top: clamp(22px, 2.6vw, 36px); }

/* ---------- 24. Legal pages, centred heroes ---------- */
.elementor .e-con.dx-legal { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 46rem); gap: clamp(28px, 5vw, 96px); align-items: start; }
.elementor .elementor-widget.dx-toc { position: sticky; top: calc(var(--dx-header) + 32px); }
.dx-toc .dx-toc__label { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); margin: 0 0 12px; }
.dx-toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; border-left: 1px solid var(--dx-line); }
.dx-toc a, .elementor .elementor-widget-text-editor.dx-toc a { display: block; padding: 6px 0 6px 14px; margin-left: -1px; border-left: 2px solid transparent; font-size: 0.9375rem; color: var(--dx-muted); text-decoration: none; transition: color 0.2s, border-color 0.2s; }
.dx-toc a:hover { color: var(--dx-cream); }
.dx-toc a[aria-current="true"] { color: var(--dx-yellow); border-left-color: var(--dx-yellow); }
.elementor .e-con.dx-legal__body { display: flex; flex-direction: column; gap: clamp(28px, 3vw, 44px); }
.elementor .e-con.dx-legal__section { display: flex; flex-direction: column; gap: 14px; }
.elementor .e-con.dx-summary-box { padding: clamp(22px, 3vw, 36px); border-radius: var(--dx-r-md); gap: 12px; }
.dx-summary-box ul { margin: 0; padding-left: 1.2em; }
.dx-summary-box li { margin-bottom: 0.4em; }
.dx-chip-static { display: inline-flex; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--dx-line); font-size: var(--dx-fs-source); color: var(--dx-cream); }
@media (max-width: 1024px) { .elementor .e-con.dx-legal { grid-template-columns: minmax(0, 1fr); } .elementor .elementor-widget.dx-toc { position: static; } }
.elementor .e-con.dx-hero--center .dx-hero__copy { align-items: center; text-align: center; max-width: 44rem; margin-inline: auto; }
.elementor .e-con.dx-tile--badge { width: 140px; aspect-ratio: 1; padding: 14px; }

/* ---------- 25. Blog index, categories, search, articles, 404 ---------- */
.blog .site-content > .ast-container, .archive .site-content > .ast-container, .search .site-content > .ast-container, .single-post .site-content > .ast-container, .error404 .site-content > .ast-container { max-width: none; padding: 0; }
.blog #primary, .archive #primary, .search #primary, .error404 #primary { width: 100%; margin: 0; padding: 0; background: transparent; border: 0; }
.ast-separate-container .ast-article-post, .ast-separate-container .ast-article-single, .ast-separate-container .comment-respond, .ast-separate-container .ast-author-box, .ast-separate-container .ast-archive-description { background: transparent; }
.ast-separate-container .site-main > .ast-row { margin: 0; }

/* index and archive grid */
.blog .site-main, .archive .site-main, .search .site-main { width: min(100% - 2 * var(--dx-gutter), var(--dx-max)); margin-inline: auto; }
.blog .site-main > .ast-row, .archive .site-main > .ast-row, .search .site-main > .ast-row, .blog #main > div.ast-row, .archive #main > div.ast-row, .search #main > div.ast-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--dx-gap); margin: 0 !important; padding: 0 0 clamp(48px, 6vw, 96px); }
.blog .ast-row::before, .blog .ast-row::after, .archive .ast-row::before, .archive .ast-row::after, .search .ast-row::before, .search .ast-row::after { display: none; }
@media (max-width: 1024px) { .blog .ast-row, .archive .ast-row, .search .ast-row { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 767px) { .blog .ast-row, .archive .ast-row, .search .ast-row { grid-template-columns: minmax(0, 1fr) !important; } }
.blog article.ast-article-post, .archive article.ast-article-post, .search article.ast-article-post { width: auto !important; max-width: none; padding: 0 !important; margin: 0 !important; float: none; }
.ast-article-post .ast-article-inner { position: relative; height: 100%; background: var(--dx-ink) !important; border-radius: var(--dx-r-md); overflow: hidden; transition: transform 0.45s var(--dx-ease); padding: 0 !important; box-shadow: none !important; }
.ast-article-post .ast-article-inner:hover { transform: translateY(-4px); }
.ast-article-post .post-content { padding: 0 0 22px !important; display: flex; flex-direction: column; gap: 10px; height: 100%; }
.ast-article-post .post-content > :not(.post-thumb) { margin-inline: 22px !important; }
.ast-article-post .post-thumb { margin: 0 0 6px !important; }
.ast-article-post .post-thumb img { aspect-ratio: 1408 / 768; object-fit: cover; width: 100%; height: auto; border-radius: 0; }
.ast-article-post .cat-links a, .dx-tag { display: inline-flex; font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-yellow) !important; text-decoration: none; }
.ast-article-post .entry-title { font-size: var(--dx-fs-h4) !important; line-height: 1.22; letter-spacing: -0.012em; font-weight: 650; margin: 0 !important; }
.ast-article-post .entry-title a { color: var(--dx-cream) !important; text-decoration: none; }
.ast-article-post .entry-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ast-article-post .ast-excerpt-container, .ast-article-post .ast-excerpt-container p { color: var(--dx-muted) !important; font-size: var(--dx-fs-small); line-height: 1.5; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ast-article-post .entry-meta, .ast-article-post .entry-meta * { color: var(--dx-muted) !important; font-size: var(--dx-fs-source); }
.ast-article-post .ast-blog-meta-container { margin-top: auto !important; padding: 0 !important; }
.ast-article-post .entry-content:empty { display: none; }
.ast-article-post:focus-within .ast-article-inner { outline: 3px solid var(--dx-yellow); outline-offset: 3px; }
/* featured card (four posts or more): full row, image beside the text */
.blog article.dx-featured { grid-column: 1 / -1; }
.blog article.dx-featured .post-content { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: auto auto 1fr auto; column-gap: 0; padding: 0 !important; }
.blog article.dx-featured .post-thumb { grid-row: 1 / -1; margin: 0 !important; }
.blog article.dx-featured .post-content > :not(.post-thumb) { margin: 28px 32px 0 !important; }
.blog article.dx-featured .entry-title { font-size: var(--dx-fs-h3) !important; }
@media (max-width: 767px) { .blog article.dx-featured .post-content { display: flex; } }

/* branded title card (featured image fallback) */
.dx-titlecard { position: relative; aspect-ratio: 1408 / 768; background: #000; color: var(--dx-cream); display: flex; flex-direction: column; justify-content: flex-end; gap: 10px; padding: clamp(16px, 5%, 40px); overflow: hidden; border-bottom: 1px solid var(--dx-line); --accent: var(--dx-yellow); }
.dx-titlecard::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--accent); }
.dx-titlecard::after { content: ""; position: absolute; right: -6%; top: -18%; width: 52%; aspect-ratio: 1; background: radial-gradient(circle, color-mix(in srgb, var(--accent) 55%, transparent) 1.6px, transparent 2.2px) 0 0 / 14px 14px; mask-image: radial-gradient(circle at 60% 40%, #000 0 40%, transparent 70%); opacity: 0.7; }
.dx-titlecard__cat { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); position: relative; }
.dx-titlecard__title { font-size: clamp(1rem, 0.7rem + 1vw, 1.5rem); font-weight: 700; letter-spacing: -0.02em; line-height: 1.12; position: relative; max-width: 22ch; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.dx-titlecard[data-cat="ai-search"], .dx-titlecard[data-cat="saas"] { --accent: var(--dx-pink); }
.dx-titlecard[data-cat="content"] { --accent: var(--dx-cream); }
.dx-titlecard[data-cat="link-building"], .dx-titlecard[data-cat="affiliate-networks"] { --accent: var(--dx-orange); }
.dx-titlecard[data-cat="igaming"] { --accent: var(--dx-magenta); }
.dx-titlecard[data-cat="ecommerce"] { --accent: var(--dx-tan); }
.single-post .dx-titlecard { border-radius: var(--dx-r-lg); margin: 8px 0 28px; }
.single-post .dx-titlecard__title { font-size: clamp(1.5rem, 1rem + 2vw, 2.75rem); }

/* archive header, chips */
.dx-archive-head { padding: clamp(32px, 5vw, 72px) 0 clamp(24px, 3vw, 40px); display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.dx-archive-head > * { min-width: 0; }
.dx-archive-title { font-size: var(--dx-fs-h1); font-weight: 700; letter-spacing: -0.032em; line-height: 0.95; margin: 0; color: var(--dx-cream); }
.dx-archive-intro { max-width: 62ch; color: var(--dx-muted); font-size: var(--dx-fs-lead); line-height: 1.45; }
.dx-archive-intro p { margin: 0 0 0.8em; }
.dx-cat-card a { display: inline-flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: var(--dx-r-sm); background: var(--dx-ink); border: 1px solid var(--dx-line); color: var(--dx-cream) !important; font-weight: 600; text-decoration: none; font-size: var(--dx-fs-body); }
.dx-cat-card a::after { content: "\2192"; transition: transform var(--dx-fast) var(--dx-ease); }
.dx-cat-card a:hover::after { transform: translateX(4px); }
.dx-chips ul { list-style: none; margin: 0; padding: 0 0 4px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; position: relative; }
.dx-chips ul::-webkit-scrollbar { display: none; }
.dx-chips li { flex: none; }
a.dx-chip-link, .elementor .elementor-widget-text-editor a.dx-chip-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--dx-line); color: var(--dx-cream); text-decoration: none; font-size: 0.9375rem; font-weight: 500; white-space: nowrap; transition: background var(--dx-fast), color var(--dx-fast), border-color var(--dx-fast); }
a.dx-chip-link:hover, a.dx-chip-link[aria-current] { background: var(--dx-yellow); color: #000 !important; border-color: var(--dx-yellow); }
.elementor .dx-latest-title .elementor-heading-title { margin-top: 12px; }

/* search form, empty states, 404 search */
.dx-searchform label { display: block; font-weight: 600; margin-bottom: 8px; color: var(--dx-cream); }
.dx-searchform__row { display: flex; gap: 8px; max-width: 34rem; }
.dx-searchform input[type="search"] { flex: 1; min-width: 0; min-height: 52px; padding: 0 16px; border-radius: var(--dx-r-sm); border: 1px solid color-mix(in srgb, var(--dx-cream) 45%, transparent); background: color-mix(in srgb, var(--dx-cream) 4%, transparent); color: var(--dx-cream); font: inherit; }
.dx-searchform input[type="search"]:focus { outline: 3px solid var(--dx-yellow); outline-offset: 1px; }
.dx-searchform button { min-height: 52px; padding: 0 22px; border: 0; border-radius: var(--dx-r-sm); background: var(--dx-orange); color: #000; font: inherit; font-weight: 600; cursor: pointer; }
.dx-searchform button:hover { background: var(--dx-yellow); }
.dx-type { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); margin: 18px 22px 0 !important; }
.dx-empty { grid-column: 1 / -1; padding: 24px 0 48px; color: var(--dx-cream); }
.dx-empty__title { font-size: var(--dx-fs-h3); font-weight: 700; letter-spacing: -0.02em; margin: 0 0 10px; color: var(--dx-cream); }
.dx-empty__links { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.dx-empty__links a, .dx-empty a { color: var(--dx-cream); text-decoration: underline; text-underline-offset: 4px; }
.dx-empty__links a { display: inline-flex; min-height: 44px; align-items: center; padding: 0 16px; border: 1px solid var(--dx-line); border-radius: 999px; text-decoration: none; }
.dx-search404 { width: min(100% - 2 * var(--dx-gutter), var(--dx-max)); margin: 0 auto; padding: 8px 0 clamp(40px, 5vw, 72px); }
.dx-search404__title { font-size: var(--dx-fs-h3); font-weight: 700; letter-spacing: -0.02em; margin: 0 0 16px; color: var(--dx-cream); }
.error404 .page-header, .error404 .ast-404-layout-1 { display: none; }
.elementor .e-con.dx-btns--center { justify-content: center; }

/* single article */
.single-post .site-main { width: min(100% - 2 * var(--dx-gutter), 46rem); margin: 0 auto; padding: clamp(20px, 3vw, 40px) 0 clamp(48px, 6vw, 88px); }
.single-post #primary { width: 100%; margin: 0; padding: 0; background: transparent; }
.single-post .ast-article-single { padding: 0 !important; margin: 0 !important; border: 0; }
.single-post .entry-header { margin-bottom: 8px; text-align: left; }
.single-post .entry-header .entry-title { font-size: clamp(2rem, 1.3rem + 2.8vw, 3.5rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1.02; color: var(--dx-cream); margin: 14px 0 16px; }
.single-post .entry-header .entry-meta, .single-post .entry-header .entry-meta * { color: var(--dx-muted); font-size: var(--dx-fs-source); }
.single-post .entry-header .entry-meta a { color: var(--dx-cream); text-decoration: underline; text-underline-offset: 3px; }
.single-post .entry-content, .single-post .entry-content p, .single-post .entry-content li, .single-post .entry-content td { color: var(--dx-cream); }
.single-post .entry-content > * { max-width: none; }
.single-post .entry-content h2, .single-post .entry-content h3 { color: var(--dx-cream); }
.single-post .entry-content ul, .single-post .entry-content ol { padding-left: 1.3em; }
.single-post .entry-content .dx-summary p, .single-post .entry-content .dx-summary li { color: #000; }
.single-post .entry-content table.dx-table th, .single-post .entry-content table.dx-table td { color: var(--dx-cream); }
.dx-toc-box { margin: 1.4em 0 2em; border: 1px solid var(--dx-line); border-radius: var(--dx-r-md); padding: 18px 22px; }
.dx-toc-box summary { cursor: pointer; list-style: none; font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); display: flex; justify-content: space-between; }
.dx-toc-box summary::after { content: "+"; font-size: 1.2rem; line-height: 1; }
.dx-toc-box[open] summary::after { content: "\2212"; }
.dx-toc-box ol { margin: 12px 0 0; padding-left: 1.2em; display: grid; gap: 4px; }
.dx-toc-box a { color: var(--dx-cream) !important; text-decoration: none; }
.dx-toc-box a:hover { text-decoration: underline; }
.dx-author { margin: 40px 0 0; padding: 22px 24px; border-radius: var(--dx-r-md); background: var(--dx-ink); display: grid; gap: 4px; }
.dx-author p { margin: 0; color: var(--dx-cream); }
.dx-author__label { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted) !important; margin-bottom: 6px !important; }
.dx-author__name { font-weight: 700; font-size: var(--dx-fs-h4); }
.dx-author__role, .dx-author__bio { color: var(--dx-muted) !important; }
.dx-author__link a { color: var(--dx-cream); text-decoration: underline; text-underline-offset: 3px; }
.dx-related { margin: 48px 0 0; }
.dx-related__title { font-size: var(--dx-fs-h3); font-weight: 700; letter-spacing: -0.02em; margin: 0 0 16px; color: var(--dx-cream); }
.dx-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.dx-related__card a { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 0 0 16px; border-radius: var(--dx-r-md); background: var(--dx-ink); overflow: hidden; color: var(--dx-cream); text-decoration: none; transition: transform 0.4s var(--dx-ease); }
.dx-related__card a:hover { transform: translateY(-3px); }
.dx-related__card .dx-titlecard { border-radius: 0; }
.dx-related__cat { margin: 4px 14px 0; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-yellow); }
.dx-related__name { margin: 0 14px; font-weight: 600; line-height: 1.3; }
@media (max-width: 767px) { .dx-related__grid { grid-template-columns: minmax(0, 1fr); } }
.single-post .post-navigation { border-top: 1px solid var(--dx-line); margin-top: 40px; padding-top: 20px; }
.single-post .post-navigation a, .single-post .post-navigation .ast-post-nav { color: var(--dx-cream); }
.dx-role { color: var(--dx-muted); }
body.ast-separate-container, body.ast-plain-container, body.ast-page-builder-template, .ast-separate-container .site-content, .ast-separate-container #primary, .ast-separate-container .ast-article-single:not(.ast-related-post), .ast-separate-container .comments-area, .ast-separate-container .ast-woocommerce-container { background-color: var(--dx-black) !important; }
.dx-titlecard { container-type: inline-size; }
.dx-titlecard__title { font-size: clamp(0.95rem, 7.2cqi, 2.75rem); }
.single-post .dx-titlecard__title { font-size: clamp(1.4rem, 5.2cqi, 2.75rem); }
.dx-titlecard__cat { font-size: clamp(0.625rem, 2.6cqi, 0.8125rem); }
.dx-featured-img { margin: 8px 0 28px; }
.dx-featured-img img { width: 100%; height: auto; aspect-ratio: 1408 / 768; object-fit: cover; border-radius: var(--dx-r-lg); }
.dx-toc-box summary { font-size: var(--dx-fs-label) !important; }
.elementor .e-con.dx-cta--slim { align-items: stretch; }
.elementor .e-con.dx-cta--slim .dx-cta__main { justify-content: center; }
.elementor .e-con.dx-cta--slim .dx-cta__mark { display: grid; place-items: center; }
.dx-search404 .dx-search404__title, .dx-related .dx-related__title, .dx-empty .dx-empty__title { font-size: var(--dx-fs-h3); line-height: 1.1; }
.site-footer .site-below-footer-wrap .site-footer-section, .site-footer .site-below-footer-wrap .ast-builder-layout-element { justify-content: flex-start; text-align: left; }
.site-footer .site-below-footer-wrap .site-footer-below-section-2 { justify-content: flex-end; }
.dx-archive-head { width: min(100% - 2 * var(--dx-gutter), var(--dx-max)); margin-inline: auto; box-sizing: border-box; }
.dx-archive-intro p:last-child > a:only-child { display: inline-flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: var(--dx-r-sm); background: var(--dx-ink); border: 1px solid var(--dx-line); color: var(--dx-cream); font-weight: 600; text-decoration: none; font-size: var(--dx-fs-body); }
.dx-archive-intro p:last-child > a:only-child::after { content: "\2192"; transition: transform var(--dx-fast) var(--dx-ease); }
.dx-archive-intro p:last-child > a:only-child:hover::after { transform: translateX(4px); }

/* ---------- 26. Case study posts (pattern dices/case-study) ---------- */
.dx-case-study .entry-header .entry-meta { display: none; }
.dx-case-study .entry-header .entry-title { margin-bottom: 10px; }
.dx-tag--industry { color: var(--dx-pink) !important; }
.dx-cs-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: var(--dx-fs-source); color: var(--dx-muted) !important; margin: 0 0 24px; }
.dx-badge-check { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--dx-line); font-size: 0.8125rem; font-weight: 600; color: var(--dx-cream); }
.dx-badge-check::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--dx-yellow); }
.single-post .entry-content .dx-cs-h { margin-top: 1.8em; }
.dx-cs-client { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.dx-cs-facts { margin: 0; padding: 18px 20px; border-radius: var(--dx-r-md); background: var(--dx-ink); display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; font-size: var(--dx-fs-small); }
.dx-cs-facts dt { color: var(--dx-muted); font-weight: 600; }
.dx-cs-facts dd { margin: 0; color: var(--dx-cream); }
@media (max-width: 767px) { .dx-cs-client { grid-template-columns: minmax(0, 1fr); } }
.dx-cs-steps { list-style: none; margin: 0; padding: 0 !important; display: grid; gap: 0; border-top: 1.5px solid var(--dx-line); }
.dx-cs-step { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 4px 18px; padding: 20px 0; border-bottom: 1px dotted var(--dx-line); }
.dx-cs-step::before { content: ""; grid-row: span 2; width: 66px; height: 42px; background: center / contain no-repeat; }
.dx-cs-step[data-n="01"]::before { background-image: url("../svg/numeral-01.svg"); }
.dx-cs-step[data-n="02"]::before { background-image: url("../svg/numeral-02.svg"); }
.dx-cs-step[data-n="03"]::before { background-image: url("../svg/numeral-03.svg"); }
.dx-cs-step[data-n="04"]::before { background-image: url("../svg/numeral-04.svg"); }
.dx-cs-step h3 { margin: 0 !important; font-size: var(--dx-fs-h4); }
.dx-cs-step p { margin: 0; color: var(--dx-muted) !important; }
.dx-cs-shot img { border-radius: var(--dx-r-md); }
.dx-cs-shot a { cursor: zoom-in; }
.single-post .entry-content .dx-cs-quote { border-left: 0; padding: 24px 28px; border-radius: var(--dx-r-md); background: var(--dx-ink); position: relative; }
.dx-cs-quote::before { content: "\201C"; position: absolute; top: -6px; right: 18px; font-size: 5rem; line-height: 1; color: var(--dx-yellow); font-weight: 700; }
.dx-cs-quote cite { display: block; margin-top: 10px; font-style: normal; font-size: var(--dx-fs-source); color: var(--dx-muted); }
.dx-cs-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 2em 0; }
.single-post .entry-content a.dx-cs-link { display: flex; flex-direction: column; gap: 4px; padding: 18px 20px; border-radius: var(--dx-r-md); border: 1px solid var(--dx-line); color: var(--dx-cream); text-decoration: none; font-weight: 600; transition: background var(--dx-fast), color var(--dx-fast); }
.dx-cs-link span { font-size: 0.75rem; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); font-weight: 600; }
.single-post .entry-content a.dx-cs-link:hover { background: var(--dx-yellow); color: #000; }
.single-post .entry-content a.dx-cs-link:hover span { color: rgb(0 0 0 / 0.7); }
@media (max-width: 767px) { .dx-cs-links { grid-template-columns: minmax(0, 1fr); } }
.dx-stat-tile .dx-source { margin-top: 6px; }

/* a single card that should not run the full width (Contact's deep audit card) */
.elementor .e-con.dx-narrow { width: 100%; max-width: 760px; }

/* ---------- 26b. Case study hub grid ([dices_case_studies]) ---------- */
.dx-cg { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
.dx-cg-filter ul { list-style: none; margin: 0; padding: 0 0 4px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; position: relative; }
.dx-cg-filter ul::-webkit-scrollbar { display: none; }
.dx-cg-filter li { flex: none; }
.dx-cg-head, .dx-cg-empty { margin: 0; color: var(--dx-muted); font-size: var(--dx-fs-body); max-width: 62ch; }
.dx-cg-head a, .dx-cg-empty a { color: var(--dx-cream); text-decoration: underline; text-underline-offset: 4px; }
.dx-cg-empty { padding: 28px; border: 1.5px dashed var(--dx-line); border-radius: var(--dx-r-md); max-width: none; }
.dx-cg-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--dx-gap); }
.dx-cg-grid:not(:has(.dx-cg-card:not([hidden]))) { display: none; }
.dx-cg-card[hidden], .dx-cg-head[hidden], .dx-cg-empty[hidden] { display: none; }
.dx-cg-card {
	position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; gap: 12px; min-width: 0;
	padding: clamp(22px, 2.4vw, 32px); border-radius: var(--dx-r-md); background: var(--dx-ink); color: var(--dx-cream);
	transition: transform 0.45s var(--dx-ease), color 0.35s ease;
}
.dx-cg-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--dx-yellow); clip-path: inset(100% 0 0 0); transition: clip-path 0.6s var(--dx-ease); }
.dx-cg-card:hover, .dx-cg-card:focus-within { color: #000; transform: translateY(-4px); }
.dx-cg-card:hover::after, .dx-cg-card:focus-within::after { clip-path: inset(0 0 0 0); }
.dx-cg-card p { margin: 0; }
.dx-cg-label { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-yellow); }
.dx-cg-card:hover .dx-cg-label, .dx-cg-card:focus-within .dx-cg-label { color: inherit; }
.dx-cg-metric { font-size: clamp(2.5rem, 1.6rem + 3.4vw, 4.5rem); font-weight: 700; line-height: 0.9; letter-spacing: -0.045em; font-variant-numeric: tabular-nums; }
.dx-cg-metric.dx-cg-metric--long { font-size: clamp(2.25rem, 1.3rem + 2.4vw, 3.5rem); }
.dx-cg-metric .dx-arrow-sep { color: var(--dx-yellow); margin: 0 0.12em; }
.dx-cg-card:hover .dx-arrow-sep, .dx-cg-card:focus-within .dx-arrow-sep { color: inherit; }
.dx-cg-title { margin: 0; font-size: var(--dx-fs-h4); line-height: 1.2; letter-spacing: -0.015em; font-weight: 700; }
.dx-cg-title a { color: inherit; text-decoration: none; }
.dx-cg-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.dx-cg-title a:focus-visible { outline: none; }
.dx-cg-card:has(.dx-cg-title a:focus-visible) { outline: 3px solid var(--dx-focus); outline-offset: 3px; }
.dx-cg-text { font-size: var(--dx-fs-small); color: color-mix(in srgb, currentColor 78%, transparent); }
.dx-cg-card .dx-source { color: color-mix(in srgb, currentColor 70%, transparent); }
.dx-cg-more { margin-top: auto !important; padding-top: 6px; font-weight: 600; font-size: 1rem; text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1.5px; }
.dx-cg-more::after { content: "\2192"; display: inline-block; margin-left: 10px; transition: transform var(--dx-fast) var(--dx-ease); }
.dx-cg-card:hover .dx-cg-more::after { transform: translateX(5px); }
body.dx-has-cases .dx-cases-empty { display: none !important; }
@media (max-width: 1024px) { .dx-cg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .dx-cg-grid { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .dx-cg-card, .dx-cg-card::after { transition: none; } .dx-cg-card:hover, .dx-cg-card:focus-within { transform: none; } }

/* ---------- 27. Style guide page and the cookie banner design ---------- */
.elementor .e-con.dx-swatch { padding: 20px; border-radius: var(--dx-r-md); min-height: 150px; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; border: 1px solid var(--dx-line); }
.dx-swatch code { font-size: 0.8125rem; }
.dx-swatch--dxblack { background: #000; color: var(--dx-cream); }
.dx-swatch--dxyellow { background: var(--dx-yellow); color: #000; --dx-fg: #000; --dx-muted: rgb(0 0 0 / .7); }
.dx-swatch--dxcream { background: var(--dx-cream); color: #000; --dx-fg: #000; --dx-muted: rgb(0 0 0 / .7); }
.dx-swatch--dxorange { background: var(--dx-orange); color: #000; --dx-fg: #000; --dx-muted: rgb(0 0 0 / .72); }
.dx-swatch--dxpink { background: var(--dx-pink); color: #000; --dx-fg: #000; --dx-muted: rgb(0 0 0 / .7); }
.dx-swatch--dxmagenta { background: var(--dx-magenta); color: #000; --dx-fg: #000; --dx-muted: #000; } /* small text on magenta: black only (4.84:1) */
.dx-swatch--dxink { background: var(--dx-ink); color: var(--dx-cream); }
.dx-swatch--dxtan { background: var(--dx-tan); color: #000; --dx-fg: #000; --dx-muted: rgb(0 0 0 / .72); }
.dx-swatch--dxpeach { background: var(--dx-peach); color: #000; --dx-fg: #000; --dx-muted: rgb(0 0 0 / .7); }
.elementor .e-con.dx-typerows { display: grid; gap: 0; border-top: 1px solid var(--dx-line); }
.elementor .e-con.dx-typerow { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: 20px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--dx-line); }
.dx-type-sample p { margin: 0; color: var(--dx-cream); }
.dx-type-dxdisplay .dx-type-sample p { font-size: var(--dx-fs-display); line-height: .9; letter-spacing: -.035em; font-weight: 700; text-transform: uppercase; }
.dx-type-dxh1 .dx-type-sample p { font-size: var(--dx-fs-h1); line-height: .95; letter-spacing: -.032em; font-weight: 700; }
.dx-type-dxh2 .dx-type-sample p { font-size: var(--dx-fs-h2); line-height: 1; letter-spacing: -.03em; font-weight: 700; }
.dx-type-dxh3 .dx-type-sample p { font-size: var(--dx-fs-h3); line-height: 1.1; letter-spacing: -.02em; font-weight: 600; }
.dx-type-dxh4 .dx-type-sample p { font-size: var(--dx-fs-h4); line-height: 1.2; font-weight: 600; }
.dx-type-dxlead .dx-type-sample p { font-size: var(--dx-fs-lead); line-height: 1.4; }
.dx-type-dxbody .dx-type-sample p { font-size: var(--dx-fs-body); line-height: 1.6; }
.dx-type-dxsmall .dx-type-sample p { font-size: var(--dx-fs-small); }
.dx-type-dxlabel .dx-type-sample p { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.dx-type-dxsource .dx-type-sample p { font-size: var(--dx-fs-source); color: var(--dx-muted); }
.dx-type-dxbutton .dx-type-sample p { font-size: 1rem; font-weight: 600; }
@media (max-width: 767px) { .elementor .e-con.dx-typerow { grid-template-columns: minmax(0, 1fr); gap: 6px; } }
.elementor .e-con.dx-states { display: grid; gap: 0; border-top: 1px solid var(--dx-line); }
.elementor .e-con.dx-state { display: grid; grid-template-columns: 10rem minmax(0, 1fr); gap: 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--dx-line); }
.dx-force-hover .elementor-widget.dx-btn:not(.dx-btn--ghost) .elementor-button { background: var(--dx-btn-hover); color: #000; }
.dx-force-hover .elementor-widget.dx-btn--ghost .elementor-button { background: var(--dx-fg); color: var(--dx-bg); border-color: var(--dx-fg); }
.dx-force-hover .elementor-widget.dx-link .elementor-button { text-decoration-color: currentColor; }
.dx-force-focus .elementor-button { outline: 3px solid var(--dx-focus); outline-offset: 3px; }
.dx-force-disabled .elementor-button { opacity: .45; pointer-events: none; cursor: not-allowed; }
@media (max-width: 767px) { .elementor .e-con.dx-state { grid-template-columns: minmax(0, 1fr); } }
.elementor .e-con.dx-drawing-cell { display: flex; flex-direction: column; gap: 8px; }
.elementor .e-con.dx-pad { padding: 16px; border-radius: var(--dx-r-md); }
.elementor .e-con.dx-numeral-row { gap: 28px; }
.dx-numeral-row .dx-numeral img { height: 56px; width: auto; }
.dx-logo-demo img { width: 220px; height: auto; }
.dx-formdemo { max-width: 34rem; display: grid; gap: 18px; }
.dx-formdemo__field label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--dx-cream); }
.dx-formdemo__field label span { color: var(--dx-orange); }
.dx-formdemo__field input { width: 100%; min-height: 54px; padding: 0 16px; border-radius: var(--dx-r-sm); border: 1px solid color-mix(in srgb, var(--dx-cream) 45%, transparent); background: color-mix(in srgb, var(--dx-cream) 4%, transparent); color: var(--dx-cream); font: inherit; box-sizing: border-box; }
.dx-formdemo__field input[aria-invalid="true"] { border-color: #ff8a6b; }
.dx-formdemo__error { margin: 6px 0 0; color: #ffb4a0; font-size: 14px; font-weight: 600; }
.dx-formdemo__btn { min-height: 56px; border: 0; border-radius: var(--dx-r-sm); background: var(--dx-orange); color: #000; font: inherit; font-weight: 600; opacity: .85; }
.dx-formdemo__fail { margin: 0; padding: 12px 14px; border-radius: var(--dx-r-sm); border: 1px solid var(--dx-orange); background: color-mix(in srgb, var(--dx-orange) 14%, transparent); color: var(--dx-cream); }
.dx-cookie { position: fixed; right: 16px; bottom: 16px; z-index: 200; width: min(380px, calc(100vw - 32px)); padding: 18px 18px 16px; border-radius: var(--dx-r-md); background: var(--dx-ink); color: var(--dx-cream); border: 1px solid var(--dx-line); box-shadow: 0 20px 60px rgb(0 0 0 / .5); display: grid; gap: 12px; font-size: var(--dx-fs-small); }
.dx-cookie p { margin: 0; }
.dx-cookie a { color: var(--dx-cream); text-decoration: underline; }
.dx-cookie__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.dx-cookie__btns button { min-height: 44px; border-radius: var(--dx-r-sm); font: inherit; font-weight: 600; cursor: pointer; border: 1.5px solid var(--dx-cream); background: transparent; color: var(--dx-cream); }
.dx-cookie__btns button:last-child { background: var(--dx-cream); color: #000; }
.dx-cookie__btns button:focus-visible { outline: 3px solid var(--dx-yellow); outline-offset: 2px; }
.dx-cookie--demo { position: relative; right: auto; bottom: auto; }
.elementor .e-con.dx-prose-demo { display: grid; gap: 28px; max-width: 46rem; }
.elementor .e-con.dx-prose-item { display: grid; gap: 8px; }
.dx-prose { color: var(--dx-cream); }
.dx-prose .dx-summary p { color: #000; margin: 0 0 .4em; }
.dx-prose table.dx-table th, .dx-prose table.dx-table td { color: var(--dx-cream); }

/* ======================================================================================
   28. Redesign v2: colour slabs, the signature hero, moving drawings, interactive parts
   ====================================================================================== */

/* ---------- 28a. Colour slabs (full-width bold blocks, from the old design) ---------- */
.elementor .e-con.dx-section--slab { padding-block: clamp(72px, 9vw, 148px); background: var(--dx-bg); color: var(--dx-fg); overflow: clip; }
.elementor .e-con.dx-split--slab { background: transparent; padding: 0; border-radius: 0; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-areas: "label label" "body aside"; gap: clamp(20px, 2.4vw, 32px) clamp(32px, 6vw, 112px); align-items: center; box-shadow: none; }
.elementor .e-con.dx-split--slab::before, .elementor .e-con.dx-split--slab::after { display: none; }
.elementor .e-con.dx-split--slab > .dx-split__label { grid-area: label; }
.elementor .e-con.dx-split--slab > .dx-split__body { grid-area: body; gap: 26px; }
.elementor .e-con.dx-split--slab > .dx-split__aside { grid-area: aside; }
.elementor .e-con.dx-split--slab.dx-split--flip { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "label label" "aside body"; }
.elementor .dx-split--slab .dx-h2 .elementor-heading-title { font-size: clamp(2.375rem, 1.4rem + 3.6vw, 4.75rem); line-height: 0.95; letter-spacing: -0.035em; max-width: 16ch; color: inherit; }
.dx-split--slab > .dx-split__body > .elementor-widget.dx-body, .dx-split--slab > .dx-split__body > .elementor-widget.dx-body p { font-size: var(--dx-fs-lead); line-height: 1.45; color: inherit; max-width: 46ch; }
.dx-split--slab .dx-split__aside .dx-tile { background: transparent; padding: 0; aspect-ratio: 1; }
.dx-split--slab .dx-split__aside .dx-tile::after { display: none; }
.elementor .e-con.dx-split--slab .dx-label .elementor-heading-title { color: inherit; opacity: 0.8; }
@media (max-width: 1024px) {
	.elementor .e-con.dx-split--slab, .elementor .e-con.dx-split--slab.dx-split--flip { grid-template-columns: minmax(0, 1fr); grid-template-areas: "label" "body" "aside"; }
	.dx-split--slab .dx-split__aside .dx-tile { max-width: 420px; }
}

/* ---------- 28b. Moving drawings ---------- */
/* parts rise into place as their lines draw; then the top part floats and the parts spread
   apart under the pointer. --px/--py come from the pointer (-1 to 1), --depth from the part. */
.dx-js svg.dx-draw [data-part] {
	--rise: calc(16px + var(--depth, 0) * 52px);
	transform: translate3d(0, var(--rise), 0);
	opacity: 0;
	transition: transform 1.05s var(--dx-ease) calc(var(--i, 0) * 0.14s), opacity 0.45s ease calc(var(--i, 0) * 0.14s);
}
.dx-js svg.dx-draw :is(path, line, polyline, polygon, circle, ellipse, rect) { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.3s var(--dx-ease-io) calc(var(--i, 0) * 0.14s + 0.06s); }
.dx-js svg.dx-draw.is-drawn [data-part] {
	transform: translate3d(calc(var(--px, 0) * var(--depth, 0) * 12px), calc(var(--py, 0) * var(--depth, 0) * 9px + var(--spread, 0px) * var(--depth, 0)), 0);
	opacity: 1;
}
.dx-js svg.dx-draw.is-drawn :is(path, line, polyline, polygon, circle, ellipse, rect) { stroke-dashoffset: 0; }
.dx-js svg.dx-draw.is-built [data-part] { transition: transform 0.7s var(--dx-ease) calc(var(--i, 0) * 0.035s), opacity 0.3s ease; }
.dx-js svg.dx-draw.is-built :is(path, line, polyline, polygon, circle, ellipse, rect) { transition: stroke 0.4s ease; }
.dx-js svg.dx-draw.is-built .dx-part-top { animation: dx-float 5.6s ease-in-out infinite; }
@keyframes dx-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
:is(.dx-tile, .dx-hero__scene, .dx-card--art):hover svg.dx-draw.is-built { --spread: -18px; }
svg.dx-draw .dx-part-top.is-pulse { filter: drop-shadow(0 0 6px var(--dx-yellow)); }
svg.dx-draw .dx-part-top.is-pulse :is(path, line, polyline, polygon) { stroke-width: 2.2px; }
.dx-tile svg.dx-draw, .dx-hero__scene svg.dx-draw { overflow: visible; }
.dx-tile.is-assembling svg.dx-draw { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
	.dx-js svg.dx-draw [data-part] { transform: none !important; opacity: 1 !important; animation: none !important; }
	.dx-js svg.dx-draw :is(path, line, polyline, polygon, circle, ellipse, rect) { stroke-dashoffset: 0 !important; }
}
.dx-particles { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 3; }

/* ---------- 28c. The signature hero (home) ---------- */
.elementor .e-con.dx-hero--home { min-height: 0; display: block; padding-block: clamp(18px, 2.6vw, 40px) clamp(48px, 6vw, 96px); }
.elementor .dx-hero--home .elementor-widget.dx-led--queries { position: relative; left: auto; right: auto; top: auto; z-index: 1; margin: 0 0 clamp(16px, 2.4vw, 34px); pointer-events: none; }
.dx-qboard { display: block; width: 100%; height: auto; max-height: 110px; }
.dx-qboard circle { fill: var(--dx-cream); opacity: 0.09; transform-box: fill-box; transform-origin: center; transform: scale(0.36); transition: transform 0.28s var(--dx-ease) calc(var(--c, 0) * 7ms), opacity 0.28s ease calc(var(--c, 0) * 7ms), fill 0.28s ease calc(var(--c, 0) * 7ms); }
.dx-qboard circle.on { fill: var(--dx-yellow); opacity: 1; transform: scale(1); }
.dx-qboard.is-instant circle { transition: none; }
.dx-qboard.is-dim circle.on { opacity: 0.18; transform: scale(0.6); transition: transform 0.45s ease, opacity 0.45s ease; }
.elementor .e-con.dx-hero--home .dx-hero__grid { grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr); align-items: center; gap: clamp(24px, 4vw, 72px); }
.elementor .dx-hero--home h1.elementor-heading-title { font-size: clamp(2.6rem, 1.2rem + 4.4vw, 5.4rem); line-height: 0.9; letter-spacing: -0.04em; }
.elementor .e-con.dx-hero--home .dx-hero__copy { gap: 20px; }
.dx-hero--home .dx-intro, .dx-hero--home .dx-intro p { font-size: var(--dx-fs-small); max-width: 54ch; }
.elementor .e-con.dx-hero__scene { position: relative; width: 100%; max-width: 560px; aspect-ratio: 1; justify-self: end; display: flex; align-items: center; justify-content: center; }
.dx-hero__scene .elementor-widget-image, .dx-hero__scene .elementor-widget-container { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.dx-hero__scene img, .dx-hero__scene svg { width: 100%; height: 100%; display: block; }
.dx-hero__scene svg :is(path, line, polyline, polygon) { stroke-width: 1.5px; }
.dx-hero__scene::before { content: ""; position: absolute; inset: 6%; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--dx-yellow) 10%, transparent), transparent 70%); pointer-events: none; }
.elementor .e-con.dx-hero__cue { margin-top: clamp(28px, 4vw, 56px); padding-top: 18px; border-top: 1px solid var(--dx-line); }
.dx-cue p { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0; }
.dx-cue .dx-hero__cue-label { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); margin-right: 8px; }
.dx-cue a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--dx-line); color: var(--dx-cream); text-decoration: none; font-weight: 600; font-size: 0.9375rem; transition: background var(--dx-fast), color var(--dx-fast), border-color var(--dx-fast); }
.dx-cue a::after { content: "\2193"; font-size: 0.85em; opacity: 0.7; }
.dx-cue a:hover, .dx-cue a:focus-visible { background: var(--dx-yellow); border-color: var(--dx-yellow); color: #000; }
@media (max-width: 900px) {
	.elementor .e-con.dx-hero--home .dx-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.elementor .e-con.dx-hero--home .dx-hero__scene { order: -1; max-width: 300px; justify-self: center; margin-block: -6px 4px; }
	.dx-qboard { max-height: 92px; }
}

/* ---------- 28d. Inner heroes: bigger, freer drawing ---------- */
.elementor .e-con.dx-hero--service .dx-tile { background: transparent; padding: 4%; }
.elementor .e-con.dx-hero--service .dx-tile::after { display: none; }
.elementor .e-con.dx-hero--service .dx-tile svg :is(path, line, polyline, polygon) { stroke-width: 1.4px; }
.elementor .e-con.dx-hero--service .dx-tile::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(color-mix(in srgb, var(--dx-cream) 16%, transparent) 1.2px, transparent 1.3px); background-size: 16px 16px; -webkit-mask: radial-gradient(closest-side, #000 55%, transparent); mask: radial-gradient(closest-side, #000 55%, transparent); opacity: 0.55; pointer-events: none; transition: opacity 1.2s ease; }
.elementor .e-con.dx-hero--service .dx-tile.is-assembling::before { opacity: 0.15; }

/* ---------- 28e. Method steps with a stage ---------- */
.elementor .e-con.dx-stepstage { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); }
.elementor .e-con.dx-stage { position: relative; height: clamp(220px, 26vw, 360px); display: block; }
.elementor .e-con.dx-stage > .dx-tile--stage { position: absolute; inset: 0; margin: auto; width: auto; height: 100%; aspect-ratio: 1; background: transparent; padding: 0; opacity: 0; visibility: hidden; transition: opacity 0.4s ease, visibility 0s linear 0.4s; }
.elementor .e-con.dx-stage > .dx-tile--stage::after { display: none; }
.elementor .e-con.dx-stage > .dx-tile--stage.is-active { opacity: 1; visibility: visible; transition: opacity 0.4s ease; }
.elementor .e-con.dx-stage:not(:has(.is-active)) > .dx-tile--stage:first-child { opacity: 1; visibility: visible; }
.dx-steps--stage > .dx-step { cursor: pointer; transition: background 0.35s ease; border-radius: 0; outline-offset: -3px; }
.dx-steps--stage > .dx-step::before { content: ""; position: absolute; left: 0; right: 0; top: -1.5px; height: 3px; background: var(--dx-yellow); transform: scaleX(0); transform-origin: left; transition: transform 0.55s var(--dx-ease); }
.dx-steps--stage > .dx-step.is-active::before { transform: scaleX(1); }
.dx-steps--stage > .dx-step.is-active .dx-numeral svg circle { fill: var(--dx-yellow); }
.dx-on-yellow .dx-steps--stage > .dx-step::before, .dx-on-cream .dx-steps--stage > .dx-step::before { background: #000; }
.dx-steps--stage > .dx-step .dx-numeral { transition: opacity 0.3s ease; }
.dx-steps--stage > .dx-step:not(.is-active) .dx-numeral { opacity: 0.45; }


/* ---------- 28f. Tabbed explorer (Elementor nested tabs) ---------- */
.elementor .elementor-widget-n-tabs.dx-explorer {
	--n-tabs-title-color: var(--dx-muted); --n-tabs-title-color-hover: var(--dx-fg); --n-tabs-title-color-active: var(--dx-fg);
	--n-tabs-title-background-color: transparent; --n-tabs-title-background-color-hover: color-mix(in srgb, var(--dx-fg) 5%, transparent); --n-tabs-title-background-color-active: color-mix(in srgb, var(--dx-fg) 7%, transparent);
	--n-tabs-title-font-size: var(--dx-fs-h4); --n-tabs-title-border-radius: 0px; --n-tabs-border-width: 0px; --n-tabs-title-justify-content: flex-start; --n-tabs-title-text-align: start;
	--n-tabs-title-padding-top: 16px; --n-tabs-title-padding-bottom: 16px; --n-tabs-title-padding-left: 18px; --n-tabs-title-padding-right: 18px;
	--n-tabs-icon-color: var(--dx-fg); --n-tabs-icon-color-active: var(--dx-fg);
}
.elementor-widget.dx-explorer .e-n-tabs { --n-tabs-gap: 0px; gap: clamp(20px, 3vw, 48px); }
.elementor-widget.dx-explorer .e-n-tabs-heading { gap: 6px; flex: 0 0 clamp(220px, 26%, 320px); }
.elementor-widget.dx-explorer .e-n-tab-title { justify-content: flex-start; text-align: left; background: transparent; border: 0; border-left: 3px solid var(--dx-line); border-radius: 0; padding: 16px 18px; color: var(--dx-muted); font-family: "DM Sans", sans-serif; font-size: var(--dx-fs-h4); font-weight: 600; letter-spacing: -0.01em; transition: color 0.25s ease, border-color 0.25s ease, background 0.25s ease; }
.elementor-widget.dx-explorer .e-n-tab-title:hover { color: var(--dx-fg); background: color-mix(in srgb, var(--dx-fg) 5%, transparent); }
.elementor-widget.dx-explorer .e-n-tab-title[aria-selected="true"] { color: var(--dx-fg); border-left-color: var(--dx-yellow); background: color-mix(in srgb, var(--dx-fg) 6%, transparent); }
.dx-on-cream .elementor-widget.dx-explorer .e-n-tab-title[aria-selected="true"], .dx-on-yellow .elementor-widget.dx-explorer .e-n-tab-title[aria-selected="true"], .dx-on-pink .elementor-widget.dx-explorer .e-n-tab-title[aria-selected="true"] { border-left-color: #000; }
.elementor-widget.dx-explorer .e-n-tab-title-text { font-size: inherit; font-weight: inherit; }
.elementor-widget.dx-explorer .e-n-tabs-content > .e-con { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; border: 0; }
.elementor .e-con.dx-explorer__panel { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(20px, 4vw, 64px); align-items: center; }
.elementor .e-con.dx-explorer__panel > .dx-tile--panel { aspect-ratio: 1; }
.elementor .e-con.dx-explorer__text { display: flex; flex-direction: column; gap: 16px; }
.elementor .dx-explorer__text .dx-h3 .elementor-heading-title { font-size: var(--dx-fs-h3); }
@media (max-width: 1024px) { .elementor .e-con.dx-explorer__panel { grid-template-columns: minmax(0, 1fr); } .elementor .e-con.dx-explorer__panel > .dx-tile--panel { max-width: 320px; } }
@media (max-width: 767px) {
	.elementor-widget.dx-explorer .e-n-tab-title { border-left: 0; border-top: 1px solid var(--dx-line); padding: 18px 4px; }
	.elementor-widget.dx-explorer .e-n-tab-title[aria-selected="true"] { background: transparent; border-top-color: var(--dx-yellow); }
}

/* ---------- 28g. Cards with drawings ---------- */
.elementor .e-con.dx-card > .e-con.dx-tile--card { order: -1; flex: none; width: 100%; aspect-ratio: 4 / 3; background: transparent; padding: 0; margin: -6px 0 2px; }
.elementor .e-con.dx-card > .e-con.dx-tile--card::after { display: none; }
.dx-card--art .dx-tile--card svg :is(path, line, polyline, polygon) { stroke-width: 1.25px; }
.dx-card--flood:hover .dx-tile--card svg, .dx-card--flood:focus-within .dx-tile--card svg { stroke: #000; }

/* ---------- 28h. Flip cards ---------- */
.elementor .e-con.dx-flips { gap: clamp(12px, 1.6vw, 20px); }
.elementor .e-con.dx-flip { position: relative; display: grid; min-height: clamp(240px, 22vw, 300px); perspective: 1200px; border-radius: var(--dx-r-md); outline-offset: 4px; }
.elementor .e-con.dx-flip > .e-con { grid-area: 1 / 1; display: flex; flex-direction: column; gap: 12px; padding: clamp(20px, 2vw, 28px); border-radius: var(--dx-r-md); backface-visibility: hidden; -webkit-backface-visibility: hidden; transition: transform 0.7s var(--dx-ease); }
.elementor .e-con.dx-flip__front { background: var(--dx-cream); color: #000; }
.elementor .e-con.dx-flip__back { background: var(--dx-yellow); color: #000; transform: rotateY(180deg); }
.dx-flip:is(:hover, .is-flipped) .dx-flip__front, .dx-flip:has(.dx-flip__back :focus-visible) .dx-flip__front { transform: rotateY(-180deg); }
.dx-flip:is(:hover, .is-flipped) .dx-flip__back, .dx-flip:has(.dx-flip__back :focus-visible) .dx-flip__back { transform: rotateY(0deg); }
.dx-flip:not(.is-flipped) .dx-flip__back { visibility: hidden; transition: visibility 0s linear 0.35s; }
.dx-flip:is(:hover, .is-flipped) .dx-flip__back, .dx-flip:has(.dx-flip__back :focus-visible) .dx-flip__back { visibility: visible; transition: none; }
html body button.dx-flip__btn { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding: 8px 0; background: none; border: 0; border-radius: 0; color: #000; font: 600 0.9375rem/1.2 "DM Sans", sans-serif; text-decoration: underline; text-underline-offset: 5px; cursor: pointer; align-self: flex-start; box-shadow: none; }
html body button.dx-flip__btn::after { content: "\21BB"; text-decoration: none; }
html body button.dx-flip__btn--back::after { content: "\2190"; }
html body button.dx-flip__btn:hover { background: none; color: #000; }
@media (hover: none) { .dx-flip:hover:not(.is-flipped) .dx-flip__front { transform: none; } .dx-flip:hover:not(.is-flipped) .dx-flip__back { transform: rotateY(180deg); } }
.elementor .dx-flip .dx-flip__n .elementor-heading-title { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; color: rgb(0 0 0 / 0.6); margin: 0; }
.elementor .dx-flip .dx-h4 .elementor-heading-title { color: #000; font-size: var(--dx-fs-h4); line-height: 1.2; }
.dx-flip .dx-small, .dx-flip .dx-small p { color: rgb(0 0 0 / 0.72); }
.dx-flip .dx-body, .dx-flip .dx-body p { color: #000; font-size: var(--dx-fs-small); }
.dx-flip .dx-label .elementor-heading-title { color: rgb(0 0 0 / 0.7) !important; }
.dx-flip__hint { margin-top: auto; }
.dx-flip__hint p { margin: 0; font-weight: 600; font-size: 0.9375rem; display: inline-flex; gap: 8px; align-items: center; }
.dx-flip__hint p::after { content: "\21BB"; }
@media (prefers-reduced-motion: reduce) { .elementor .e-con.dx-flip > .e-con { transition: none; } }
@media (max-width: 1024px) { .elementor .e-con.dx-flips { --dx-cols: 2; } }
@media (max-width: 560px) { .elementor .e-con.dx-flips { --dx-cols: 1; } .elementor .e-con.dx-flip { min-height: 200px; } }

/* ---------- 28i. Read more ---------- */
.dx-more-btn { display: inline-flex; align-items: center; gap: 12px; margin-top: 6px; padding: 4px 0; background: none; border: 0; color: inherit; font: 600 0.9375rem/1.2 "DM Sans", sans-serif; text-decoration: none; cursor: pointer; position: relative; z-index: 2; }
.dx-more > p:last-child { margin-bottom: 0.4em; }

/* ---------- 28k. Staging: blocks hidden on live stay hidden until the switch is on ---------- */
body.dx-show-pending:not(.dx-pending-on):not(.elementor-editor-active) :is(.dx-pending, .dx-proof-empty) { display: none !important; }
.dx-pending-switch { position: fixed; right: 14px; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); z-index: 60; min-height: 36px; padding: 0 14px; opacity: 0.8; border-radius: 999px; border: 1px solid var(--dx-line); background: var(--dx-black); color: var(--dx-cream); font: 500 0.8125rem/1 "DM Sans", sans-serif; cursor: pointer; }
.dx-pending-switch:hover, .dx-pending-switch:focus-visible { opacity: 1; }
@media (max-width: 1024px) { .dx-pending-switch { right: auto; left: 14px; max-width: calc(100vw - 200px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } }
/* the Elementor kit styles every <button> (.elementor-kit-N button): these small controls keep their own look */
html body button:is(.dx-pending-switch, .dx-more-btn) { box-shadow: none; text-transform: none; letter-spacing: normal; }
html body button.dx-more-btn { background: none; border: 0; color: inherit; padding: 6px 0; border-radius: 0; font: 600 0.9375rem/1.2 "DM Sans", sans-serif; }
html body button.dx-more-btn:hover, html body button.dx-more-btn:focus-visible { background: none; color: inherit; text-decoration-color: currentColor; }
html body button.dx-pending-switch { background: var(--dx-black); color: var(--dx-cream); border: 1px solid var(--dx-line); border-radius: 999px; }
html body button.dx-pending-switch:hover { background: var(--dx-black); color: var(--dx-cream); }
.elementor .elementor-widget.dx-cue a, .elementor .elementor-widget.dx-cue a:hover { text-decoration: none; color: var(--dx-cream); }
.elementor .elementor-widget.dx-cue a:hover, .elementor .elementor-widget.dx-cue a:focus-visible { color: #000; }

/* ---------- 28l. Mega menu: dropdown items with their drawing and a one-line description ---------- */
#ast-desktop-header .main-header-menu > .menu-item > .sub-menu:has(.dx-menu-art) { width: min(620px, 80vw); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding: 10px; }
#ast-desktop-header .main-header-menu .sub-menu .menu-item:has(.dx-menu-art) > .menu-link { display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 14px; padding: 10px 12px; border-radius: 12px; white-space: normal; }
.dx-menu-art { width: 56px; height: 56px; border-radius: 10px; background: var(--dx-ink); display: grid; place-items: center; overflow: hidden; }
.dx-menu-art img { width: 46px; height: 46px; transition: transform 0.45s var(--dx-ease), filter 0.25s ease; }
.dx-menu-text { display: grid; gap: 3px; min-width: 0; }
.dx-menu-title { font-weight: 600; font-size: 1rem; line-height: 1.2; }
.dx-menu-desc { font-size: 0.8125rem; line-height: 1.35; color: var(--dx-muted); font-weight: 400; }
#ast-desktop-header .main-header-menu .sub-menu .menu-link:is(:hover, :focus-visible) .dx-menu-art { background: rgb(0 0 0 / 0.12); }
#ast-desktop-header .main-header-menu .sub-menu .menu-link:is(:hover, :focus-visible) .dx-menu-art img { filter: brightness(0); transform: translateY(-3px) scale(1.06); }
#ast-desktop-header .main-header-menu .sub-menu .menu-link:is(:hover, :focus-visible) .dx-menu-desc { color: rgb(0 0 0 / 0.72); }
.ast-mobile-popup-content .main-header-menu .sub-menu .menu-link:has(.dx-menu-art) { display: flex; align-items: center; gap: 12px; }
.ast-mobile-popup-content .dx-menu-art { width: 40px; height: 40px; border-radius: 8px; }
.ast-mobile-popup-content .dx-menu-art img { width: 32px; height: 32px; }
.ast-mobile-popup-content .dx-menu-desc { display: none; }
@media (max-width: 900px) { .elementor .e-con.dx-hero--home .dx-hero__scene { max-width: 240px; margin-block: -10px 0; } }
@media (max-width: 767px) {
	.elementor .e-con.dx-card > .e-con.dx-tile--card { aspect-ratio: 16 / 7; margin: -4px 0 0; }
	.dx-card--art .dx-tile--card svg { max-height: 100%; }
	.elementor .e-con.dx-card--tall { min-height: 0; }
}

/* ---------- 28m. Closing band: the dice-dot arrow assembles when the band arrives ---------- */
.dx-js .dx-cta.dx-reveal:not(.is-in) .dx-cta__mark svg.dx-arrow circle { transform: translate(-60px, 60px) scale(0.4); opacity: 0; }
.dx-js .dx-cta.dx-reveal.is-in .dx-cta__mark svg.dx-arrow circle { transition: transform 0.8s var(--dx-ease) calc(var(--i) * 80ms + 0.35s), opacity 0.4s ease calc(var(--i) * 80ms + 0.35s); }
.dx-js .dx-cta.dx-reveal.is-in:hover .dx-cta__mark svg.dx-arrow circle { transition: transform 0.6s var(--dx-ease) calc(var(--i) * 30ms); }

/* ---------- 28n. Blog category header: the topic's drawing beside the title ---------- */
.dx-archive-head:has(.dx-archive-art) { grid-template-columns: minmax(0, 1fr) clamp(180px, 24vw, 320px); column-gap: clamp(24px, 4vw, 64px); }
.dx-archive-head:has(.dx-archive-art) > :not(.dx-archive-art) { grid-column: 1; }
.dx-archive-art { grid-column: 2; grid-row: 1 / span 3; align-self: center; aspect-ratio: 1; width: 100%; }
.dx-archive-art img, .dx-archive-art svg { width: 100%; height: 100%; display: block; overflow: visible; }
@media (max-width: 767px) { .dx-archive-head:has(.dx-archive-art) { grid-template-columns: minmax(0, 1fr); } .dx-archive-art { grid-column: 1; grid-row: auto; order: -1; width: 160px; } }

/* ---------- 28o. Gaps found while restructuring the pages ---------- */
/* contact hero: one column below tablet width */
@media (max-width: 1024px) { .elementor .e-con.dx-hero--contact .dx-hero__grid { grid-template-columns: minmax(0, 1fr); } }
/* six method steps: three by two on wide screens */
.elementor .e-con.dx-steps--6 { --dx-steps: 3; }
.elementor .e-con.dx-steps--6 > .dx-step:nth-child(n+4) { border-top: 1.5px dotted var(--dx-line); }
.elementor .e-con.dx-steps--6 > .dx-step:nth-child(4) { padding-left: 0; border-left: 0; }
/* method stages and steps on light slabs: black highlights instead of yellow */
:is(.dx-on-yellow, .dx-on-cream, .dx-on-pink, .dx-on-tan, .dx-on-peach, .dx-on-orange) .dx-steps--stage > .dx-step.is-active .dx-numeral svg circle,
:is(.dx-on-yellow, .dx-on-cream, .dx-on-pink, .dx-on-tan, .dx-on-peach, .dx-on-orange) .dx-step:hover .dx-numeral svg circle { fill: #000; }
:is(.dx-on-pink, .dx-on-tan, .dx-on-peach, .dx-on-orange) .dx-steps--stage > .dx-step::before { background: #000; }

/* a block inside a merged section: space above it, a hairline when it follows a grid */
.elementor .e-con.dx-sub { display: flex; flex-direction: column; gap: 20px; margin-top: clamp(40px, 5vw, 72px); }
.elementor .e-con.dx-sub--rule { padding-top: clamp(28px, 3.5vw, 48px); border-top: 1px solid var(--dx-line); }
/* outline cards and callouts on light slabs take the slab's black text */
:is(.dx-on-yellow, .dx-on-cream, .dx-on-pink, .dx-on-tan, .dx-on-peach, .dx-on-orange) .e-con.dx-card--outline { --dx-card-fg: #000; color: #000; border-color: rgb(0 0 0 / 0.25); }
:is(.dx-on-yellow, .dx-on-cream, .dx-on-pink, .dx-on-tan, .dx-on-peach, .dx-on-orange) .dx-callout { background: rgb(0 0 0 / 0.06); border-left-color: #000; }
:is(.dx-on-yellow, .dx-on-cream, .dx-on-pink, .dx-on-tan, .dx-on-peach, .dx-on-orange) .dx-callout, :is(.dx-on-yellow, .dx-on-cream, .dx-on-pink, .dx-on-tan, .dx-on-peach, .dx-on-orange) .dx-callout p { color: #000; }
/* dark cards keep their own cream text when they sit on a light slab (the slab's black text is for the slab) */
:is(.dx-on-yellow, .dx-on-cream, .dx-on-pink, .dx-on-tan, .dx-on-peach, .dx-on-orange) :is(.e-con.dx-card:not(.dx-card--light):not(.dx-card--outline), .e-con.dx-plan:not(.dx-plan--rec), .e-con.dx-price-card, .e-con.dx-offer:not(.dx-offer--paid)) {
	--dx-bg: var(--dx-ink); --dx-fg: var(--dx-cream); --dx-muted: color-mix(in srgb, var(--dx-cream) 74%, transparent); --dx-line: color-mix(in srgb, var(--dx-cream) 16%, transparent); --dx-focus: var(--dx-yellow);
	--dx-btn-bg: var(--dx-orange); --dx-btn-fg: #000; --dx-btn-hover: var(--dx-yellow); --dx-card-fg: var(--dx-cream); color: var(--dx-cream);
}
/* text-only tab panels use the full width; tabs line up at the top */
.elementor .e-con.dx-explorer__panel:not(:has(> .dx-tile--panel)) { grid-template-columns: minmax(0, 1fr); }
.elementor-widget.dx-explorer .e-n-tabs-heading { justify-content: flex-start; align-self: flex-start; }
/* drawing tiles on orange and peach */
.elementor .e-con.dx-tile--orange { --dx-tile: var(--dx-orange); }
.elementor .e-con.dx-tile--peach { --dx-tile: var(--dx-peach); }
/* list markers, ticks and the active tab in black on every light slab, orange, tan and peach included */
:is(.dx-on-orange, .dx-on-tan, .dx-on-peach) .dx-terms li::before { background: #000; }
:is(.dx-on-orange, .dx-on-tan, .dx-on-peach) .dx-checklist li::before { background-color: #000; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23F3F3E1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
:is(.dx-on-orange, .dx-on-tan, .dx-on-peach) .elementor-widget.dx-explorer .e-n-tab-title[aria-selected="true"] { border-left-color: #000; }
/* free offer cards in narrow columns: less room kept for the dot pattern, so labels stay on one line */
.dx-offer > .dx-btn, .dx-offer > .dx-link { padding-right: clamp(0px, 20%, 120px); }

/* explorer tabs above their panel (tablets): the tab row wraps instead of overflowing */
.elementor .elementor-widget-n-tabs.dx-explorer { --n-tabs-heading-wrap: wrap; --n-tabs-heading-overflow-x: visible; }
.elementor-widget.dx-explorer .e-n-tabs-heading { flex-wrap: wrap; }
/* a drawing on the front of a flip card */
.elementor .dx-flip__front > .e-con.dx-tile--flip { width: 72px; aspect-ratio: 1; padding: 6px; background: rgb(0 0 0 / 0.06); border-radius: 12px; flex: none; }
.elementor .dx-flip__front > .e-con.dx-tile--flip::after { display: none; }
/* text links that wrap: room between the lines so the first line's underline stays clear of the second */
.elementor-widget.dx-link .elementor-button-text { line-height: 1.55; }
.elementor-widget.dx-link .elementor-button { text-underline-offset: 4px; }
/* stat pairs: two across on phones (AI search question tiles) */
@media (max-width: 767px) { .elementor .e-con.dx-grid--pairs { --dx-cols: 2; grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* the search board's space is reserved before the script draws it, so the hero never moves */
.elementor .dx-hero--home .elementor-widget.dx-led--queries { height: clamp(52px, 5.6vw, 84px); overflow: hidden; }
.dx-led--queries p { display: none; }
.dx-qboard { width: 100%; height: 100%; max-height: none; }
@media (max-width: 900px) { .dx-qboard { max-height: none; } }

/* ==========================================================================
   v3 (after the second review): quieter heroes, open-on-demand text
   ========================================================================== */

/* ---------- 29a. Hero: a short first screen ---------- */
.elementor .e-con.dx-hero .dx-hero__copy { gap: 20px; }
.elementor .dx-hero .elementor-widget.dx-sub--lead p { font-size: var(--dx-fs-lead); line-height: 1.35; font-weight: 500; letter-spacing: -0.015em; color: var(--dx-cream); margin: 0; max-width: 34ch; }
.elementor .dx-hero .elementor-widget.dx-sub .elementor-heading-title { max-width: 34ch; }
.elementor .dx-hero .elementor-widget.dx-intro p:last-child { margin-bottom: 0; }

/* the eyebrow as a search pill: the main keyword, as searched, types itself in */
.elementor .elementor-widget.dx-hero__eyebrow { align-self: flex-start; max-width: 100%; }
.elementor .dx-hero .dx-hero__eyebrow .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 10px; min-height: 44px; max-width: 100%; padding: 6px 20px 6px 14px;
	border: 1px solid var(--dx-line); border-radius: 999px; background: var(--dx-ink); color: var(--dx-cream);
	font-size: 0.9375rem; font-weight: 500; line-height: 1.3; letter-spacing: 0; text-transform: none; opacity: 1;
}
.dx-hero__eyebrow .elementor-heading-title::before, .dx-searches a::before {
	content: ""; flex: none; width: 16px; height: 16px; background: var(--dx-yellow);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='6.8' cy='6.8' r='5'/%3E%3Cpath d='M10.6 10.6 14.5 14.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='6.8' cy='6.8' r='5'/%3E%3Cpath d='M10.6 10.6 14.5 14.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.dx-q { display: block; min-width: 0; }
.dx-q::after { content: ""; display: inline-block; width: 2px; height: 1.1em; margin-left: 3px; vertical-align: -0.2em; background: var(--dx-yellow); opacity: 0; }
@media (prefers-reduced-motion: no-preference) {
	.dx-js .dx-hero .dx-q { clip-path: inset(0 100% 0 0); animation: dx-type 1s steps(22, end) 0.35s forwards; }
	.dx-js .dx-hero .dx-q::after { animation: dx-caret 0.8s linear 1.35s 3; }
}
@keyframes dx-type { to { clip-path: inset(0 0 0 0); } }
@keyframes dx-caret { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }

/* "Read more": the rest of the intro and the proof line, folded */
.dx-more-panel > summary { list-style: none; display: inline-flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; color: var(--dx-fg); font-size: 0.9375rem; font-weight: 600; user-select: none; -webkit-tap-highlight-color: transparent; }
.dx-more-panel > summary::-webkit-details-marker { display: none; }
.dx-more-panel > summary:focus-visible { outline: 3px solid var(--dx-focus); outline-offset: 4px; border-radius: 999px; }
.dx-more-panel__icon, .dx-more-btn__icon { position: relative; flex: none; width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid currentColor; transition: background var(--dx-fast), border-color var(--dx-fast), color var(--dx-fast); }
.dx-more-panel__icon::before, .dx-more-panel__icon::after, .dx-more-btn__icon::before, .dx-more-btn__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; margin: -0.75px 0 0 -6px; background: currentColor; border-radius: 1px; }
.dx-more-panel__icon::after, .dx-more-btn__icon::after { transform: rotate(90deg); transition: transform 0.35s var(--dx-ease); }
.dx-more-panel[open] > summary .dx-more-panel__icon::after, .dx-more-btn[aria-expanded="true"] .dx-more-btn__icon::after { transform: rotate(0deg); }
.dx-more-panel > summary:hover .dx-more-panel__icon, .dx-more-btn:hover .dx-more-btn__icon { background: var(--dx-yellow); border-color: var(--dx-yellow); color: #000; }
.dx-on-yellow :is(.dx-more-panel > summary:hover .dx-more-panel__icon, .dx-more-btn:hover .dx-more-btn__icon) { background: #000; border-color: #000; color: var(--dx-yellow); }
.dx-more-panel__body { display: grid; gap: 12px; padding-top: 10px; max-width: 60ch; }
.dx-more-panel__body p { margin: 0; font-size: var(--dx-fs-small); line-height: 1.6; color: var(--dx-muted); }
.elementor .dx-more-panel__body a, .elementor .dx-more-panel__body a:visited { color: var(--dx-fg); text-decoration: underline; text-underline-offset: 4px; }
.dx-more-panel__body .dx-proofline__p { position: relative; padding-left: 22px; font-size: var(--dx-fs-source); }
.dx-more-panel__body .dx-proofline__p::before { content: ""; position: absolute; left: 2px; top: 0.55em; width: 8px; height: 8px; border-radius: 50%; background: var(--dx-yellow); box-shadow: 0 0 0 4px color-mix(in srgb, var(--dx-yellow) 18%, transparent); }
.elementor .elementor-widget.dx-hero__more { margin-top: -4px; }

/* ---------- 29b. Home: the searches under the board ---------- */
.elementor .e-con.dx-hero__searches { margin-top: clamp(28px, 4vw, 56px); padding-top: 18px; border-top: 1px solid var(--dx-line); }
.elementor .elementor-widget.dx-searches-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.dx-searches__label { margin: 0; font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); }
.dx-searches { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; flex: 1 1 auto; min-width: 0; }
.dx-searches li { margin: 0; }
.elementor .dx-searches a, .elementor .dx-searches a:visited { display: inline-flex; align-items: center; gap: 9px; min-height: 42px; padding: 0 18px 0 14px; border-radius: 999px; border: 1px solid var(--dx-line); color: var(--dx-cream); text-decoration: none; font-size: 0.9375rem; font-weight: 500; line-height: 1.2; transition: background var(--dx-fast), color var(--dx-fast), border-color var(--dx-fast); }
.dx-searches a::before { width: 14px; height: 14px; background: currentColor; opacity: 0.75; }
.dx-searches a::after { content: "\2192"; margin-left: -4px; width: 0; opacity: 0; overflow: hidden; transition: width var(--dx-fast), opacity var(--dx-fast), margin var(--dx-fast); }
.elementor .dx-searches a:hover, .elementor .dx-searches a:focus-visible { border-color: var(--dx-cream); }
.dx-searches a:hover::after, .dx-searches a:focus-visible::after { width: 1em; margin-left: 0; opacity: 1; }
.elementor .dx-searches a.is-active { background: var(--dx-yellow); border-color: var(--dx-yellow); color: #000; }
html body button.dx-searches__pause { flex: none; display: inline-grid; place-items: center; width: 42px; height: 42px; min-height: 0; padding: 0; border-radius: 50%; border: 1px solid var(--dx-line); background: transparent; color: var(--dx-cream); cursor: pointer; box-shadow: none; transition: background var(--dx-fast), color var(--dx-fast), border-color var(--dx-fast); }
html body button.dx-searches__pause:hover { background: var(--dx-cream); color: #000; border-color: var(--dx-cream); }
.dx-searches__pause svg { width: 14px; height: 14px; display: block; fill: currentColor; }
.dx-searches__pause .is-play, .dx-searches__pause[aria-pressed="true"] .is-pause { display: none; }
.dx-searches__pause[aria-pressed="true"] .is-play { display: block; }
.dx-led--queries > .dx-searches__pause { position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
.dx-hero.is-paused svg.dx-draw .dx-part-top { animation-play-state: paused; }

/* the drawing changes with the search: the new one builds where the old one fades */
.elementor .e-con.dx-hero__scene > .elementor-widget-image { position: relative; }
.dx-hero__scene svg.dx-draw-svg.is-incoming, .dx-hero__scene svg.dx-draw-svg.is-leaving { position: absolute; inset: 0; }
.dx-hero__scene svg.dx-draw-svg.is-incoming { visibility: hidden; }
.dx-hero__scene svg.dx-draw-svg.is-leaving { opacity: 0; transform: scale(0.94); transition: opacity 0.45s ease, transform 0.6s var(--dx-ease); pointer-events: none; }
@media (max-width: 900px) {
	.elementor .e-con.dx-hero__searches { margin-top: 24px; }
	.dx-searches__label { flex: 1 0 100%; }
}

/* a drawing just measured hides at once (no fade-out) before it builds */
.dx-js svg.dx-draw.dx-notrans [data-part], .dx-js svg.dx-draw.dx-notrans :is(path, line, polyline, polygon, circle, ellipse, rect) { transition: none !important; }

/* the home hero fits a laptop screen with its searches in view */
.elementor .e-con.dx-hero--home { padding-block: clamp(12px, 2vw, 32px) clamp(40px, 5vw, 80px); }
.elementor .dx-hero--home .elementor-widget.dx-led--queries { margin-bottom: clamp(12px, 2vw, 28px); }
.elementor .e-con.dx-hero--home .dx-hero__scene { max-width: 500px; }
.elementor .e-con.dx-hero--home .dx-hero__searches { margin-top: clamp(20px, 3vw, 40px); }
.elementor .e-con.dx-hero--home > .e-con.dx-wrap { --gap: 0px; --row-gap: 0px; row-gap: 0; }
.elementor .dx-hero--home .elementor-widget.dx-led--queries { margin-bottom: clamp(16px, 2vw, 24px); }
.elementor .e-con.dx-hero--home .dx-hero__searches { margin-top: clamp(24px, 2.6vw, 32px); }
@media (max-width: 900px) {
	.elementor .e-con.dx-hero--home .dx-hero__scene { max-width: 210px; margin-block: 0 8px; }
}
/* the staging switch stays small on phones, out of the way of the buttons */
@media (max-width: 767px) {
	html body button.dx-pending-switch { left: auto; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); min-height: 30px; padding: 0 10px; font-size: 0.75rem; max-width: 60vw; opacity: 0.7; }
}
/* the pill's magnifier wins over the label dot; the lead reads in two lines, not three */
.elementor .dx-hero .dx-hero__eyebrow .elementor-heading-title::before { width: 16px; height: 16px; border-radius: 0; background: var(--dx-yellow); opacity: 1; }
.elementor .dx-hero .elementor-widget.dx-sub .elementor-heading-title, .elementor .dx-hero .elementor-widget.dx-sub--lead p { max-width: 42ch; }
.elementor .dx-more-panel__body p, .elementor .dx-more-panel__body p:last-child { margin: 0; }

/* ---------- 29c. Slabs: calmer headlines; the text keeps its place beside a long aside ---------- */
.elementor .dx-split--slab .dx-h2 .elementor-heading-title { font-size: clamp(2.125rem, 1.45rem + 2.3vw, 3.75rem); line-height: 0.98; letter-spacing: -0.032em; max-width: 18ch; }
.elementor .e-con.dx-split--slab { align-items: start; }
.elementor .e-con.dx-split--slab:has(> .dx-split__aside > .dx-tile:only-child) { align-items: center; }
@media (min-width: 1025px) {
	.elementor .e-con.dx-split--slab:not(:has(> .dx-split__aside > .dx-tile:only-child)) > .dx-split__body,
	.elementor .e-con.dx-statement > .e-con.dx-head { position: sticky; top: calc(var(--dx-header) + 40px); }
}

/* ---------- 29d. Numbered points beside a slab become tiles ---------- */
.dx-split--slab .dx-split__aside .dx-points ul, .dx-split--slab .dx-split__aside ul.dx-points { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.dx-split--slab .dx-split__aside .dx-points li { display: flex; flex-direction: column; gap: 6px; min-height: 148px; padding: 20px 22px 22px; border: 0; border-radius: var(--dx-r-md); background: #000; color: var(--dx-cream); font-size: var(--dx-fs-h4); transition: transform 0.45s var(--dx-ease); }
.dx-split--slab .dx-split__aside .dx-points li:first-child { border-top: 0; }
.dx-split--slab .dx-split__aside .dx-points li::before { color: var(--dx-yellow); margin-bottom: auto; padding-bottom: 16px; }
.dx-split--slab .dx-split__aside .dx-points li span { color: color-mix(in srgb, var(--dx-cream) 74%, transparent); margin-top: 0; }
.dx-split--slab .dx-split__aside .dx-points li:last-child:nth-child(odd) { grid-column: 1 / -1; min-height: 0; }
.dx-split--slab .dx-split__aside .dx-points li:hover { transform: translateY(-4px); }
.dx-split--slab .dx-split__aside .dx-points a { color: inherit; }
@media (max-width: 480px) {
	.dx-split--slab .dx-split__aside .dx-points ul, .dx-split--slab .dx-split__aside ul.dx-points { grid-template-columns: minmax(0, 1fr); }
	.dx-split--slab .dx-split__aside .dx-points li { min-height: 0; }
}
/* points in the text column: the number in a circle */
.dx-split__body .dx-points li::before { width: 2.2em; height: 2.2em; display: grid; place-items: center; border-radius: 50%; border: 1.5px solid currentColor; color: inherit; align-self: start; }
.dx-split__body .dx-points li { grid-template-columns: 2.6em 1fr; align-items: start; }

/* ---------- 29e. Pairs as cards ---------- */
.dx-pairs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 12px; margin: 0; border: 0; }
.dx-pair { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px; border-radius: var(--dx-r-md); background: color-mix(in srgb, var(--dx-fg) 7%, transparent); }
.dx-pairs dt, .dx-pairs dd { margin: 0; padding: 0; border: 0; }
.dx-pairs dt { font-size: var(--dx-fs-h4); font-weight: 700; letter-spacing: -0.01em; line-height: 1.2; padding-right: 0; }
.dx-pairs dd { font-size: var(--dx-fs-small); line-height: 1.55; color: var(--dx-muted); }
@media (max-width: 767px) { .dx-pairs dt { border-bottom: 0; padding-bottom: 0; } .dx-pairs dd { padding-top: 0; } }

/* ---------- 29f. Terms as small tiles ---------- */
.dx-terms ul, ul.dx-terms { gap: 10px; }
.dx-terms li { padding: 15px 18px 15px 44px; border: 0; border-radius: 12px; background: color-mix(in srgb, var(--dx-fg) 6%, transparent); }
.dx-terms li::before { left: 20px; top: 22px; }

/* ---------- 29g. Two-column checklists become tiles ---------- */
.dx-checklist--2 ul { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 12px; }
.dx-checklist--2 li { padding: 62px 22px 22px; border: 0; border-radius: var(--dx-r-md); background: color-mix(in srgb, var(--dx-fg) 6%, transparent); transition: transform 0.45s var(--dx-ease); }
.dx-checklist--2 li::before { left: 22px; top: 22px; width: 26px; height: 26px; background-size: 26px; }
.dx-checklist--2 li strong { display: block; font-size: var(--dx-fs-h4); line-height: 1.25; letter-spacing: -0.01em; margin-bottom: 6px; }
.dx-checklist--2 li:hover { transform: translateY(-3px); }
@media (max-width: 767px) {
	.dx-checklist--2 li { padding: 18px 18px 18px 58px; }
	.dx-checklist--2 li::before { left: 18px; top: 18px; }
}

/* ---------- 29h. Yes and no lists: calmer titles; two panels on dark sections ---------- */
.dx-versus li { padding: 16px 0; }
.dx-versus li strong { font-size: var(--dx-fs-h4); line-height: 1.2; letter-spacing: -0.01em; }
.dx-versus li em { width: 2.5em; height: 2.5em; }
.elementor .dx-on-black .e-con.dx-stack:has(> .dx-versus-wrap) { gap: 10px; padding: clamp(22px, 2.6vw, 36px); border-radius: var(--dx-r-lg); background: var(--dx-ink); }
.dx-on-black .dx-stack:has(> .dx-versus-wrap) .dx-versus { border-top: 0; }
.dx-on-black .dx-stack:has(> .dx-versus-wrap) .dx-versus li:last-child { border-bottom: 0; }
.dx-on-black .dx-versus li.is-yes em { background: var(--dx-yellow); border-color: var(--dx-yellow); color: #000; }

/* ---------- 29i. Explorer: numbered tabs and a solid panel in the tab's colour ---------- */
.elementor .elementor-widget.dx-explorer .e-n-tabs-heading { counter-reset: dxtab; gap: 8px; }
.elementor .elementor-widget.dx-explorer .e-n-tab-title {
	counter-increment: dxtab; gap: 14px; min-height: 58px; padding: 14px 18px;
	border: 1px solid var(--dx-line); border-radius: 14px; background: transparent; color: var(--dx-muted);
	font-size: 1.125rem; line-height: 1.25; transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.elementor .elementor-widget.dx-explorer .e-n-tab-title::before { content: counter(dxtab, decimal-leading-zero); flex: none; font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.08em; opacity: 0.75; }
.elementor .elementor-widget.dx-explorer .e-n-tab-title::after { content: "\2192"; margin-left: auto; padding-left: 10px; opacity: 0; transform: translateX(-6px); transition: opacity 0.3s ease, transform 0.45s var(--dx-ease); }
.elementor .elementor-widget.dx-explorer .e-n-tab-title:hover { border-color: var(--dx-fg); background: transparent; color: var(--dx-fg); }
.elementor .elementor-widget.dx-explorer .e-n-tab-title[aria-selected="true"] { background: var(--dx-panel); border-color: var(--dx-panel); color: var(--dx-panel-fg); }
.elementor .elementor-widget.dx-explorer .e-n-tab-title[aria-selected="true"]::after { opacity: 1; transform: none; }
.elementor-widget.dx-explorer :is(.e-n-tab-title, .e-n-tabs-content > .e-con) { --dx-panel: var(--dx-yellow); --dx-panel-fg: #000; }
.elementor-widget.dx-explorer :is(.e-n-tab-title, .e-n-tabs-content > .e-con):is([data-tab-index="2"], [data-tab-index="7"]) { --dx-panel: var(--dx-pink); }
.elementor-widget.dx-explorer :is(.e-n-tab-title, .e-n-tabs-content > .e-con):is([data-tab-index="3"], [data-tab-index="8"]) { --dx-panel: var(--dx-orange); }
.elementor-widget.dx-explorer :is(.e-n-tab-title, .e-n-tabs-content > .e-con):is([data-tab-index="4"], [data-tab-index="9"]) { --dx-panel: var(--dx-peach); }
.elementor-widget.dx-explorer :is(.e-n-tab-title, .e-n-tabs-content > .e-con):is([data-tab-index="5"], [data-tab-index="10"]) { --dx-panel: var(--dx-tan); }
.elementor-widget.dx-explorer.dx-explorer--dark :is(.e-n-tab-title, .e-n-tabs-content > .e-con)[data-tab-index] { --dx-panel: #000; --dx-panel-fg: var(--dx-cream); }
.elementor .elementor-widget.dx-explorer .e-n-tabs-content > .e-con.dx-explorer__panel {
	--padding-top: clamp(24px, 3vw, 48px); --padding-bottom: clamp(24px, 3vw, 48px); --padding-left: clamp(22px, 3vw, 48px); --padding-right: clamp(22px, 3vw, 48px);
	--dx-fg: #000; --dx-muted: rgb(0 0 0 / 0.74); --dx-line: rgb(0 0 0 / 0.18); --dx-focus: #000;
	padding: var(--padding-top) var(--padding-right) var(--padding-bottom) var(--padding-left);
	background: var(--dx-panel); color: #000; border-radius: var(--dx-r-lg);
	min-height: clamp(320px, 28vw, 430px); grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center;
}
.elementor .elementor-widget.dx-explorer.dx-explorer--dark .e-n-tabs-content > .e-con.dx-explorer__panel { --dx-fg: var(--dx-cream); --dx-muted: color-mix(in srgb, var(--dx-cream) 74%, transparent); --dx-line: color-mix(in srgb, var(--dx-cream) 16%, transparent); --dx-focus: var(--dx-yellow); color: var(--dx-cream); }
.elementor .e-con.dx-explorer__panel > .e-con.dx-explorer__text { order: -1; }
.elementor .e-con.dx-explorer__panel > .e-con.dx-tile--panel { width: 100%; max-width: 360px; justify-self: end; background: transparent; padding: 0; }
.elementor .e-con.dx-explorer__panel > .e-con.dx-tile--panel::before, .elementor .e-con.dx-explorer__panel > .e-con.dx-tile--panel::after { display: none; }
.dx-explorer__panel .dx-body, .dx-explorer__panel .dx-body p { color: var(--dx-fg); }
.elementor .dx-explorer__panel .dx-label .elementor-heading-title { color: var(--dx-muted); }
.elementor .elementor-widget.dx-explorer:not(.dx-explorer--dark) .dx-explorer__panel .dx-checklist li::before { background-color: #000; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23F3F3E1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.elementor .elementor-widget.dx-explorer:not(.dx-explorer--dark) .dx-explorer__panel .dx-terms li::before { background: #000; }
@keyframes dx-panel-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.elementor-widget.dx-explorer .e-n-tabs-content > .e-con.e-active { animation: dx-panel-in 0.5s var(--dx-ease) both; }
@media (max-width: 1024px) {
	.elementor .elementor-widget.dx-explorer .e-n-tabs-content > .e-con.dx-explorer__panel { grid-template-columns: minmax(0, 1fr); min-height: 0; }
	.elementor .e-con.dx-explorer__panel > .e-con.dx-tile--panel { order: -2; max-width: 220px; justify-self: start; }
	.elementor .elementor-widget.dx-explorer .e-n-tab-title { min-height: 48px; padding: 10px 16px; font-size: 1rem; }
}
@media (max-width: 767px) {
	.elementor .elementor-widget.dx-explorer .e-n-tab-title { border-left: 1px solid var(--dx-line); border-top: 1px solid var(--dx-line); padding: 12px 16px; }
	.elementor .elementor-widget.dx-explorer .e-n-tab-title[aria-selected="true"] { border-color: var(--dx-panel); }
}

/* ---------- 29j. Flip cards: coloured fronts, the house numerals, the answer on ink ---------- */
.elementor .e-con.dx-flip { min-height: clamp(230px, 20vw, 290px); }
.elementor .e-con.dx-flip > .e-con.dx-flip__front { --dx-fg: #000; --dx-muted: rgb(0 0 0 / 0.72); --dx-line: rgb(0 0 0 / 0.18); --dx-focus: #000; background: var(--dx-flip, var(--dx-yellow)); color: #000; gap: 10px; }
.dx-flips > .dx-flip:nth-child(5n+1) { --dx-flip: var(--dx-yellow); }
.dx-flips > .dx-flip:nth-child(5n+2) { --dx-flip: var(--dx-pink); }
.dx-flips > .dx-flip:nth-child(5n+3) { --dx-flip: var(--dx-orange); }
.dx-flips > .dx-flip:nth-child(5n+4) { --dx-flip: var(--dx-peach); }
.dx-flips > .dx-flip:nth-child(5n+5) { --dx-flip: var(--dx-tan); }
.elementor .e-con.dx-flip > .e-con.dx-flip__back { --dx-fg: var(--dx-cream); --dx-muted: color-mix(in srgb, var(--dx-cream) 74%, transparent); --dx-line: color-mix(in srgb, var(--dx-cream) 16%, transparent); --dx-focus: var(--dx-yellow); background: var(--dx-ink); color: var(--dx-cream); box-shadow: inset 0 0 0 2px var(--dx-flip, var(--dx-yellow)); }
.elementor .dx-flip .dx-flip__back .dx-label .elementor-heading-title { color: var(--dx-flip, var(--dx-yellow)) !important; }
.dx-flip .dx-flip__back .dx-body, .dx-flip .dx-flip__back .dx-body p { color: var(--dx-cream); }
.elementor .dx-flip__front > .elementor-widget.dx-flip__n { margin-bottom: 4px; }
.dx-flip__front .dx-numeral img, .dx-flip__front .dx-numeral svg { height: clamp(30px, 2.6vw, 38px); width: auto; display: block; }
.dx-flip__front .dx-numeral svg circle { fill: #000; }
.elementor .dx-flip .dx-h4 .elementor-heading-title { font-size: clamp(1.25rem, 0.95rem + 1vw, 1.75rem); font-weight: 700; line-height: 1.12; letter-spacing: -0.02em; }
.elementor .dx-grid--5 .dx-flip .dx-h4 .elementor-heading-title, .elementor .dx-grid--4 .dx-flip .dx-h4 .elementor-heading-title { font-size: clamp(1.125rem, 0.95rem + 0.6vw, 1.4rem); }
.elementor .dx-flip__front > .e-con.dx-tile--flip, .elementor .dx-flip__front > .e-con.dx-tile--badge { position: absolute; top: clamp(16px, 1.6vw, 22px); right: clamp(16px, 1.6vw, 22px); width: 64px; margin: 0; background: rgb(0 0 0 / 0.08); }
html body button.dx-flip__btn { gap: 12px; padding: 4px 0; text-decoration: none; color: #000; }
html body button.dx-flip__btn::after { content: none; }
html body button.dx-flip__btn::before { content: "\21BB"; display: inline-grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid currentColor; font-size: 1rem; line-height: 1; transition: background var(--dx-fast), color var(--dx-fast), border-color var(--dx-fast); }
html body button.dx-flip__btn:hover { color: #000; }
html body button.dx-flip__btn:hover::before { background: #000; border-color: #000; color: var(--dx-flip, var(--dx-yellow)); }
html body button.dx-flip__btn--back, html body button.dx-flip__btn--back:hover { color: var(--dx-cream); }
html body button.dx-flip__btn--back::before { content: "\2190"; }
html body button.dx-flip__btn--back:hover::before { background: var(--dx-flip, var(--dx-yellow)); border-color: var(--dx-flip, var(--dx-yellow)); color: #000; }

/* ---------- 29k. Method steps with a stage: the stage beside the steps, the steps two by two ---------- */
/* (the brief: steps across on desktop, stacked on phones, no scroll animation; the stage changes on
   hover, focus or tap). Steps built in several rows (How we work's six) flow into the same two columns. */
@media (min-width: 1025px) {
	.elementor .e-con.dx-stepstage { grid-template-columns: minmax(0, 5fr) repeat(2, minmax(0, 3.5fr)); gap: 0; align-items: stretch; }
	.elementor .e-con.dx-stepstage > .e-con.dx-stage { grid-column: 1; grid-row: 1 / span 3; position: relative; height: auto; min-height: clamp(380px, 32vw, 480px); margin-right: clamp(24px, 3vw, 48px); border-radius: var(--dx-r-lg); background: var(--dx-ink); }
	.elementor .e-con.dx-stepstage > .e-con.dx-stage > .dx-tile--stage { inset: 10%; width: auto; height: auto; max-height: 80%; }
	.elementor .e-con.dx-stepstage > .e-con.dx-steps { display: contents; }
	.elementor .e-con.dx-stepstage > .e-con.dx-steps > .e-con.dx-step { padding: clamp(22px, 2.2vw, 30px) clamp(16px, 1.8vw, 26px) clamp(24px, 2.4vw, 32px); border: 0; border-top: 1.5px solid var(--dx-line); }
	:is(.dx-on-yellow, .dx-on-cream, .dx-on-pink, .dx-on-tan, .dx-on-peach, .dx-on-orange) .e-con.dx-stepstage > .e-con.dx-stage { background: rgb(0 0 0 / 0.06); }
	.dx-stepstage .dx-steps--stage > .dx-step.is-active { background: color-mix(in srgb, var(--dx-fg) 5%, transparent); }
}

/* ---------- 29l. A testimonial on its own spans the row ---------- */
.elementor .e-con.dx-quote-card:only-child { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 10fr); gap: 12px clamp(24px, 4vw, 64px); align-items: start; padding: clamp(32px, 4.4vw, 64px); }
.elementor .e-con.dx-quote-card:only-child::after { position: static; grid-column: 1; grid-row: 1 / span 2; font-size: clamp(6rem, 11vw, 12rem); line-height: 0.75; }
.elementor .e-con.dx-quote-card:only-child > * { grid-column: 2; }
.dx-quote-card:only-child .dx-quote-text, .dx-quote-card:only-child .dx-quote-text p { font-size: var(--dx-fs-h3); font-weight: 500; line-height: 1.3; letter-spacing: -0.015em; max-width: 36ch; }
@media (max-width: 767px) {
	.elementor .e-con.dx-quote-card:only-child { grid-template-columns: minmax(0, 1fr); padding-top: clamp(64px, 6vw, 88px); }
	.elementor .e-con.dx-quote-card:only-child::after { position: absolute; }
	.elementor .e-con.dx-quote-card:only-child > * { grid-column: 1; }
}

/* ---------- 29m. Image slots that wait for a file read as image slots ---------- */
.dx-on-black .elementor .e-con.dx-figure, .elementor .dx-on-black .e-con.dx-figure, .elementor .dx-on-ink .e-con.dx-figure { background: var(--dx-ink) radial-gradient(color-mix(in srgb, var(--dx-cream) 14%, transparent) 1px, transparent 1.2px) 0 0 / 16px 16px; }
.elementor .e-con.dx-figure { align-content: end; justify-items: start; text-align: left; }

/* ---------- 29n. Cards in the brand colours ---------- */
.elementor .e-con.dx-card--color { --dx-card-bg: var(--dx-tone, var(--dx-yellow)); --dx-card-fg: #000; --dx-fg: #000; --dx-muted: rgb(0 0 0 / 0.72); --dx-line: rgb(0 0 0 / 0.18); --dx-focus: #000; color: #000; transition: transform 0.45s var(--dx-ease); }
.elementor .e-con.dx-card--color:hover, .elementor .e-con.dx-card--color:focus-within { transform: translateY(-4px); }
.dx-cards > .dx-card--color:nth-child(5n+1) { --dx-tone: var(--dx-yellow); }
.dx-cards > .dx-card--color:nth-child(5n+2) { --dx-tone: var(--dx-pink); }
.dx-cards > .dx-card--color:nth-child(5n+3) { --dx-tone: var(--dx-orange); }
.dx-cards > .dx-card--color:nth-child(5n+4) { --dx-tone: var(--dx-peach); }
.dx-cards > .dx-card--color:nth-child(5n+5) { --dx-tone: var(--dx-tan); }
.dx-on-cream .dx-cards > .dx-card--color:nth-child(5n+4) { --dx-tone: #000; --dx-card-fg: var(--dx-cream); --dx-fg: var(--dx-cream); --dx-muted: color-mix(in srgb, var(--dx-cream) 74%, transparent); color: var(--dx-cream); }
.dx-card--color .dx-body, .dx-card--color .dx-body p { color: rgb(0 0 0 / 0.8); }
.dx-card--color .dx-checklist li::before { background-color: #000; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23F3F3E1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.dx-card--color .dx-checklist li { border-bottom-color: rgb(0 0 0 / 0.16); }
.dx-card--color .dx-number { color: #000; }
/* card numbers: a small count in the corner of numbered card sets */
.dx-cards--numbered { counter-reset: dxcard; }
.dx-cards--numbered > .dx-card { counter-increment: dxcard; }
.dx-cards--numbered > .dx-card::before { content: counter(dxcard, decimal-leading-zero); font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.08em; opacity: 0.7; }
.elementor .e-con.dx-flip > .e-con.dx-flip__front { position: relative; }

/* ---------- 29o. Solid black pieces on colour slabs (cards, panels, check tiles) ---------- */
.elementor .dx-split--slab .dx-split__aside > .e-con.dx-card--outline, .elementor .dx-split--slab .dx-split__aside > .e-con.dx-panel, .elementor .e-con.dx-panel {
	--dx-fg: var(--dx-cream); --dx-muted: color-mix(in srgb, var(--dx-cream) 74%, transparent); --dx-line: color-mix(in srgb, var(--dx-cream) 16%, transparent); --dx-focus: var(--dx-yellow);
	--dx-card-fg: var(--dx-cream); background: #000; color: var(--dx-cream); border: 0; border-radius: var(--dx-r-md);
}
.elementor .e-con.dx-panel { padding: clamp(22px, 2.4vw, 32px); gap: 12px; }
.dx-split--slab .dx-split__aside > .dx-card--outline :is(.dx-small, .dx-small p, .dx-body, .dx-body p), .dx-panel :is(.dx-small, .dx-small p) { color: var(--dx-muted); }
.elementor .dx-split--slab .dx-split__aside > .dx-card--outline .dx-h4 .elementor-heading-title, .elementor .dx-panel .dx-h4 .elementor-heading-title { color: var(--dx-cream); }
.elementor .dx-panel .dx-checklist li::before, .elementor .dx-split--slab .dx-split__aside .dx-checklist--2 li::before { background-color: var(--dx-yellow); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.dx-panel .dx-checklist li { border-bottom-color: var(--dx-line); }
.dx-panel a { color: var(--dx-cream); }
.dx-split--slab .dx-split__aside .dx-checklist--2 ul { grid-template-columns: minmax(0, 1fr); }
.dx-split--slab .dx-split__aside .dx-checklist--2 li { background: #000; color: var(--dx-cream); }
.dx-split--slab .dx-split__aside .dx-checklist--2 li strong { color: var(--dx-cream); }

/* ---------- 29p. Comparison cards (one card per option) ---------- */
.dx-ccards { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 12px; }
.dx-ccards--2 { --n: 2; }
.dx-ccards--3 { --n: 3; }
.dx-ccard { padding: clamp(22px, 2.6vw, 34px); border-radius: var(--dx-r-lg); background: var(--dx-ink); color: var(--dx-cream); --dx-muted: color-mix(in srgb, var(--dx-cream) 70%, transparent); --dx-line: color-mix(in srgb, var(--dx-cream) 16%, transparent); }
:is(.dx-on-yellow, .dx-on-cream, .dx-on-pink, .dx-on-tan, .dx-on-peach, .dx-on-orange) .dx-ccard { background: #000; }
.dx-ccard__name { display: inline-flex; align-items: center; min-height: 34px; margin: 0 0 16px; padding: 0 14px; border-radius: 999px; background: var(--chip, var(--dx-yellow)); color: #000; font-size: 1rem; font-weight: 700; letter-spacing: -0.005em; }
.dx-ccard:nth-child(2) { --chip: var(--dx-pink); }
.dx-ccard:nth-child(3) { --chip: var(--dx-orange); }
.dx-ccard:nth-child(4) { --chip: var(--dx-peach); }
.dx-ccard dl { margin: 0; display: grid; }
.dx-ccard dl > div { padding: 14px 0; border-top: 1px solid var(--dx-line); }
.dx-ccard dt { margin: 0 0 4px; font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dx-muted); }
.dx-ccard dd { margin: 0; font-size: var(--dx-fs-body); line-height: 1.45; color: var(--dx-cream); }
.dx-ccards-wrap .dx-source { margin-top: 12px; }
@media (max-width: 900px) { .dx-ccards { grid-template-columns: minmax(0, 1fr); } }

/* ---------- 29q. A headline beside one key figure (agency pricing) ---------- */
.elementor .e-con.dx-duo { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px clamp(28px, 5vw, 80px); align-items: center; }
.elementor .e-con.dx-keycard { padding: clamp(26px, 3.4vw, 48px); border-radius: var(--dx-r-lg); background: var(--dx-yellow); color: #000; gap: 14px; --dx-fg: #000; --dx-muted: rgb(0 0 0 / 0.72); --dx-line: rgb(0 0 0 / 0.18); }
.elementor .dx-keycard .dx-keynum .elementor-heading-title { font-size: clamp(2.75rem, 1.6rem + 4vw, 5.5rem); color: #000; line-height: 0.9; }
.dx-keycard .dx-body, .dx-keycard .dx-body p { color: #000; font-size: var(--dx-fs-lead); line-height: 1.35; margin: 0; }
@media (max-width: 1024px) { .elementor .e-con.dx-duo { grid-template-columns: minmax(0, 1fr); } }

/* ---------- 29r. Guarantees: a yellow list beside an ink list ---------- */
.elementor .e-con.dx-card--never { background: var(--dx-ink); }
.dx-card .dx-crosslist ul, .dx-card ul.dx-crosslist { grid-template-columns: minmax(0, 1fr); }
.dx-card--never .dx-crosslist li::before { background: var(--dx-orange); border-color: var(--dx-orange); color: #000; }
.dx-card--never .dx-crosslist li:last-child { border-bottom: 0; }
.elementor .e-con.dx-card--color.dx-on-yellow { --dx-tone: var(--dx-yellow); }

/* ---------- 29s. Cards that are one big link (industries) ---------- */
.dx-card--link .elementor-widget.dx-link .elementor-button::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.dx-card--link .elementor-widget.dx-link { position: static; }
.elementor .dx-card--link .elementor-widget.dx-card__title .elementor-button { font-size: var(--dx-fs-h4); font-weight: 700; letter-spacing: -0.01em; text-decoration: none; }
.elementor .dx-card--link .elementor-widget.dx-card__title .elementor-button-text { text-decoration: none; }
.dx-card--link .dx-small, .dx-card--link .dx-small p { color: color-mix(in srgb, currentColor 78%, transparent); }
.elementor .e-con.dx-card--link > .e-con.dx-tile--card { aspect-ratio: 16 / 10; }

/* ---------- 29t. Result cards: the source sits at the foot; a few dice dots in the corner ---------- */
.dx-case > .dx-source:last-child { margin-top: auto; }
/* (Elementor positions a container's ::before with logical insets, so all four are set here) */
.elementor .e-con.dx-case::before { content: ""; position: absolute; inset: clamp(20px, 2.2vw, 30px) clamp(20px, 2.2vw, 30px) auto auto; width: 46px; height: 46px; border: 0; border-radius: 0; background: radial-gradient(circle, var(--dx-yellow) 1.6px, transparent 1.9px) 0 0 / 11.5px 11.5px; opacity: 0.4; mix-blend-mode: normal; pointer-events: none; }
/* Elementor colours the tab titles through its own variables (with a high-specificity rule), so the
   panel colour goes into those variables on each title */
.elementor .elementor-widget.dx-explorer .e-n-tab-title {
	--n-tabs-title-background-color-active: var(--dx-panel); --n-tabs-title-color-active: var(--dx-panel-fg);
	--n-tabs-title-background-color-hover: transparent; --n-tabs-title-color-hover: var(--dx-fg); --n-tabs-title-color: var(--dx-muted);
}
/* placeholder figures in stat cards ("[Marketplace]") stay inside their card */
.elementor .dx-stat .dx-metric.dx-metric--long .elementor-heading-title { font-size: clamp(1.75rem, 1.1rem + 1.6vw, 2.25rem); }
/* Elementor keeps a container's ::before for its background overlay (absolute, full size): the card number is put back in the flow */
.elementor .dx-cards--numbered > .e-con.dx-card::before { position: static; inset: auto; width: auto; height: auto; display: block; background: none; border-radius: 0; mix-blend-mode: normal; z-index: auto; transition: none; }
/* the search chips keep their pill look inside Elementor's text widget (its lists and links are styled for prose) */
.elementor .elementor-widget.dx-searches-wrap ul.dx-searches { margin: 0; padding: 0; list-style: none; }
.elementor .elementor-widget.dx-searches-wrap .dx-searches li { margin: 0; padding: 0; }
.elementor .elementor-widget.dx-searches-wrap .dx-searches a, .elementor .elementor-widget.dx-searches-wrap .dx-searches a:visited { text-decoration: none; }
.elementor .elementor-widget.dx-searches-wrap p.dx-searches__label { margin: 0; }
@media (max-width: 767px) {
	.elementor .elementor-widget.dx-searches-wrap .dx-searches a { min-height: 38px; padding: 0 14px 0 12px; font-size: 0.875rem; gap: 7px; }
	.dx-searches { gap: 6px; }
	.elementor .e-con.dx-flip { min-height: 0; }
}
/* "a report" against "the work" beside a slab: two tiles, the struck one faint, the real one solid black */
.dx-split--slab .dx-split__aside .dx-versus { border-top: 0; gap: 12px; }
.dx-split--slab .dx-split__aside .dx-versus li { padding: 22px 24px; border: 0; border-radius: var(--dx-r-md); }
.dx-split--slab .dx-split__aside .dx-versus li.is-no { background: rgb(0 0 0 / 0.1); }
.dx-split--slab .dx-split__aside .dx-versus li.is-yes { background: #000; color: var(--dx-cream); }
.dx-split--slab .dx-split__aside .dx-versus li strong { font-size: var(--dx-fs-h3); line-height: 1.05; letter-spacing: -0.02em; }
.dx-split--slab .dx-split__aside .dx-versus li.is-yes em { background: var(--dx-yellow); border-color: var(--dx-yellow); color: #000; }
.dx-split--slab .dx-split__aside .dx-versus li.is-yes span { color: color-mix(in srgb, var(--dx-cream) 74%, transparent); }
/* flip cards past the sixth have no dotted numeral file: the number is set large instead */
.elementor .dx-flip__front > .elementor-widget-heading.dx-flip__n .elementor-heading-title { font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); font-weight: 700; letter-spacing: -0.02em; line-height: 1; color: #000; }
.dx-split--slab .dx-split__aside .dx-versus li.is-no span { color: #000; }
.dx-pairs dd { color: color-mix(in srgb, var(--dx-fg) 88%, transparent); }

/* ---------- 30. Contact v3: the form at the top, beside the H1 and the first-step picker ---------- */
.elementor .e-con.dx-hero--contact { padding-block: clamp(12px, 2vw, 28px) clamp(56px, 6vw, 96px); }
.elementor .e-con.dx-contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "intro form" "side form"; grid-template-rows: auto 1fr; gap: clamp(28px, 3vw, 44px) clamp(32px, 4.5vw, 72px); align-items: start; }
.elementor .e-con.dx-contact > .e-con.dx-contact__intro { grid-area: intro; display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.elementor .e-con.dx-contact > .e-con.dx-formpanel { grid-area: form; min-width: 0; }
.elementor .e-con.dx-contact > .e-con.dx-sidepanel { grid-area: side; padding: 0; gap: 12px; min-width: 0; }
.elementor .dx-hero--contact .dx-h1 .elementor-heading-title { font-size: clamp(2.4rem, 1.5rem + 2.4vw, 3.75rem); line-height: 0.95; }
.elementor .dx-hero--contact .elementor-widget.dx-sub .elementor-heading-title { max-width: 30ch; }

/* the first-step picker: cards that act like options; the picked one turns yellow with a filled dot */
.elementor .e-con.dx-picker { gap: 12px; margin-top: clamp(10px, 1.6vw, 22px); }
.elementor .dx-picker .dx-picker__title .elementor-heading-title { font-size: var(--dx-fs-h4); letter-spacing: -0.01em; }
.elementor .e-con.dx-picker__list { display: grid; gap: 10px; }
.elementor .e-con.dx-pick { position: relative; gap: 6px; padding: 18px 20px; border-radius: var(--dx-r-md); background: var(--dx-ink); border: 1.5px solid transparent; color: var(--dx-cream); transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.45s var(--dx-ease); }
.elementor .e-con.dx-pick:hover { border-color: color-mix(in srgb, var(--dx-cream) 40%, transparent); transform: translateX(4px); }
.elementor .e-con.dx-pick:focus-within { border-color: var(--dx-yellow); }
.elementor .dx-pick .dx-pick__title .elementor-heading-title { display: flex; align-items: center; gap: 12px; color: inherit; font-size: 1.1875rem; }
.dx-pick__dot { position: relative; flex: none; width: 20px; height: 20px; border-radius: 50%; border: 2px solid currentColor; opacity: 0.85; }
.dx-pick__dot::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: currentColor; transform: scale(0); transition: transform 0.3s var(--dx-ease); }
.elementor .dx-pick .elementor-widget.dx-pick__text { padding-left: 32px; }
.dx-pick .dx-pick__text p { margin: 0; color: color-mix(in srgb, var(--dx-cream) 74%, transparent); line-height: 1.5; }
.elementor .dx-pick.is-picked .dx-pick__text p, .elementor .dx-pick.is-picked .dx-pick__text a { color: rgb(0 0 0 / 0.78); }
.elementor .dx-pick.is-picked .dx-pick__link .elementor-button { color: #000; }
.dx-pick .dx-pick__text a { position: relative; z-index: 2; color: inherit; }
.elementor .dx-pick .elementor-widget.dx-pick__link { padding-left: 32px; position: static; }
.elementor .dx-pick .elementor-widget.dx-pick__link .elementor-button { font-size: 0.875rem; color: inherit; }
.dx-pick .elementor-widget.dx-pick__link .elementor-button::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.elementor .e-con.dx-pick.is-picked { background: var(--dx-yellow); color: #000; border-color: var(--dx-yellow); --dx-fg: #000; --dx-focus: #000; }
.dx-pick.is-picked .dx-pick__dot { opacity: 1; }
.dx-pick.is-picked .dx-pick__dot::after { transform: scale(1); }

/* the form on a cream panel: black labels, white fields, dark error colours */
.elementor .e-con.dx-formpanel.dx-on-cream { background: var(--dx-cream); color: #000; padding: clamp(24px, 3.4vw, 48px); gap: 12px; }
.elementor .dx-formpanel.dx-on-cream .dx-h2 .elementor-heading-title { color: #000; font-size: var(--dx-fs-h3); }
.dx-formpanel.dx-on-cream .dx-small, .dx-formpanel.dx-on-cream .dx-small p { color: rgb(0 0 0 / 0.72); }
.elementor .dx-formpanel.dx-on-cream .dx-form-note a { color: #000; }
.dx-on-cream .dx-form .srfm-form-container {
	--srfm-color-input-label: #000; --srfm-color-input-text: #000; --srfm-color-input-description: rgb(0 0 0 / 0.68);
	--srfm-color-input-placeholder: rgb(0 0 0 / 0.5); --srfm-color-input-prefix: rgb(0 0 0 / 0.6);
	--srfm-color-input-background: #fff; --srfm-color-input-background-hover: #fff; --srfm-color-input-background-disabled: rgb(0 0 0 / 0.05);
	--srfm-color-input-border: rgb(0 0 0 / 0.42); --srfm-color-input-border-hover: #000; --srfm-color-input-border-disabled: rgb(0 0 0 / 0.2);
	--srfm-color-input-border-focus-glow: rgb(245 99 41 / 0.3); --srfm-color-input-selected: rgb(245 99 41 / 0.12);
	--srfm-error-color: #a2240f; --srfm-error-color-border: #c0391b;
}
.dx-on-cream .dx-form .srfm-block-label, .dx-on-cream .dx-form .srfm-block-legend { color: #000; }
.dx-on-cream .dx-form .srfm-required { color: #a2240f; }
.dx-on-cream .dx-form .srfm-description { color: rgb(0 0 0 / 0.68); }
.dx-on-cream .dx-form .srfm-error-message { color: #a2240f; }
.dx-on-cream .dx-form .srfm-error .srfm-input-common, .dx-on-cream .dx-form .srfm-error .ts-control { border-color: #c0391b !important; }
.dx-on-cream .dx-form .srfm-common-error-message { color: #000; background: rgb(245 99 41 / 0.12); }
.dx-on-cream .dx-form .srfm-input-common:focus, .dx-on-cream .dx-form .srfm-input-common:focus-visible { outline-color: #000; }
.dx-on-cream .dx-form .srfm-submit-button:focus-visible, .dx-on-cream .dx-form #srfm-submit-btn:focus-visible { outline: 3px solid #000; outline-offset: 3px; }
/* a picked card lights up the request field beside it */
@keyframes dx-flash { 0%, 100% { box-shadow: 0 0 0 0 rgb(245 99 41 / 0); } 30% { box-shadow: 0 0 0 5px rgb(245 99 41 / 0.45); } }
.dx-form .dx-flash .ts-control, .dx-form .dx-flash select { animation: dx-flash 1.3s ease; }

/* the email panel: address, location and the target drawing; it stays in view beside the form */
.elementor .e-con.dx-mailpanel { display: grid; grid-template-columns: minmax(0, 1fr) clamp(72px, 7vw, 104px); gap: 16px; align-items: start; padding: clamp(22px, 2.4vw, 30px); border-radius: var(--dx-r-md); background: var(--dx-ink); }
.elementor .e-con.dx-mailpanel > .e-con.dx-stack { gap: 12px; min-width: 0; }
.dx-mailpanel .dx-mailpanel__art img { width: 100%; height: auto; display: block; }
.dx-mailpanel .dx-body p { font-size: var(--dx-fs-small); }
.elementor .e-con.dx-contact .e-con.dx-sidebox { padding: 20px 22px; }
@media (min-width: 1025px) { .elementor .e-con.dx-contact > .e-con.dx-sidepanel { position: sticky; top: calc(var(--dx-header) + 24px); } }
@media (max-width: 1024px) {
	.elementor .e-con.dx-contact { grid-template-columns: minmax(0, 1fr); grid-template-areas: "intro" "form" "side"; }
}
@media (max-width: 480px) {
	.elementor .e-con.dx-mailpanel { grid-template-columns: minmax(0, 1fr); }
	.dx-mailpanel .dx-mailpanel__art { display: none; }
}
/* placeholders and dropdown text on the cream form (the kit styles them for the dark site) */
.dx-on-cream .dx-form .srfm-input-common::placeholder, .dx-on-cream .dx-form .ts-control input::placeholder, .dx-on-cream .dx-form textarea::placeholder { color: rgb(0 0 0 / 0.5); opacity: 1; }
.dx-on-cream .dx-form .ts-control, .dx-on-cream .dx-form .ts-control .item, .dx-on-cream .dx-form .ts-control input { color: #000; opacity: 1; }
.dx-on-cream .dx-form .ts-dropdown { background: #fff; color: #000; border-color: rgb(0 0 0 / 0.2); }
.dx-on-cream .dx-form .ts-dropdown .option, .dx-on-cream .dx-form .ts-dropdown .active { color: #000; }
.dx-on-cream .dx-form .ts-dropdown .active, .dx-on-cream .dx-form .ts-dropdown .option:hover { background: var(--dx-yellow); }
/* a tighter form: less room between fields (the error line keeps its reserved space) */
.dx-on-cream .dx-form .srfm-form-container { --srfm-row-gap-between-blocks: 14px; --srfm-input-field-margin-top: 4px; --srfm-input-field-margin-bottom: 2px; --srfm-input-height: 50px; }
/* SureForms colours its placeholders and dropdowns through its dropdown variables (set for the dark site) */
.dx-on-cream .dx-form .srfm-form-container {
	--srfm-dropdown-placeholder-color: rgb(0 0 0 / 0.5); --srfm-dropdown-option-selected-text: #000; --srfm-dropdown-option-text-color: #000;
	--srfm-dropdown-icon-color: #000; --srfm-dropdown-menu-border-color: rgb(0 0 0 / 0.2); --srfm-dropdown-input-background-hover: #fff;
	--srfm-dropdown-option-background-hover: rgb(255 249 75 / 0.6); --srfm-dropdown-option-background-selected: rgb(245 99 41 / 0.14);
	--srfm-dropdown-badge-background: rgb(0 0 0 / 0.08); --srfm-dropdown-badge-background-hover: rgb(0 0 0 / 0.14);
	--srfm-dropdown-option-selected-icon: #000; --srfm-dropdown-badge-delete-icon: #000;
}
.dx-on-cream .dx-form .ts-dropdown, .dx-on-cream .dx-form .ts-dropdown .ts-dropdown-content { background: #fff; }
/* the dropdowns keep their final height before SureForms swaps in its own widget, so the form never moves */
.dx-form select.srfm-dropdown-common:not(.ts-hidden-accessible) { box-sizing: border-box; height: var(--srfm-input-height, 50px); min-height: var(--srfm-input-height, 50px); margin-top: var(--srfm-input-field-margin-top, 4px); margin-bottom: var(--srfm-input-field-margin-bottom, 2px); }

/* ==========================================================================================
   31. Phase 2: the growth layer layouts (BRIEF-PHASE2.md, 'Growth templates')
   Block pages (T4 templates and checklists, T5 resources hub, T7 person pages, T11 company pages)
   and blog posts (T8 to T10) are plain block HTML with these classes, published by script; the
   class names are the brief's own (dices-*), next to the phase 1 dx-* classes. Tool pages (T3) and
   the service and platform pages (T1, T2) are Elementor pages built from the sections above.
   ========================================================================================== */

/* ---------- 31a. Block pages: one wide frame, a reading column for prose ---------- */
body.dx-blocks #primary { width: 100%; margin: 0; padding: 0; background: transparent; }
body.dx-blocks .ast-article-single, body.dx-blocks .ast-article-post { padding: 0 !important; margin: 0 !important; border: 0; background: transparent !important; }
body.dx-blocks .entry-content { width: min(100% - 2 * var(--dx-gutter), var(--dx-max)); margin: 0 auto; padding: 0 0 var(--dx-section); font-size: var(--dx-fs-body); line-height: 1.65; color: var(--dx-cream); --dx-fg: var(--dx-cream); --dx-bg: var(--dx-black); }
body.dx-blocks .entry-content > * { max-width: 48rem; margin-left: 0; margin-right: 0; }
body.dx-blocks .entry-content > .dices-wide, body.dx-blocks .entry-content > .dices-hero, body.dx-blocks .entry-content > .dices-cards,
body.dx-blocks .entry-content > .dices-template, body.dx-blocks .entry-content > .dx-cta-band, body.dx-blocks .entry-content > .dices-profile,
body.dx-blocks .entry-content > .dices-related, body.dx-blocks .entry-content > figure, body.dx-blocks .entry-content > .dx-if-posts { max-width: none; }
/* Astra pads every top-level group block (--wp--custom--ast-default-block-left-padding): block pages and posts align
   them with the text (the FAQ, hidden blocks, the articles grid). A group with its own background keeps the padding. */
:is(body.dx-blocks, .single-post) .entry-content > .wp-block-group:not(.has-background) { padding-left: 0; padding-right: 0; }
body.dx-blocks .entry-content p, body.dx-blocks .entry-content li, body.dx-blocks .entry-content td { color: var(--dx-cream); }
body.dx-blocks .entry-content h2 { font-size: var(--dx-fs-h2); font-weight: 700; letter-spacing: -0.03em; line-height: 1.02; margin: 2.2em 0 0.55em; color: var(--dx-cream); }
body.dx-blocks .entry-content h3 { font-size: var(--dx-fs-h4); font-weight: 650; letter-spacing: -0.012em; line-height: 1.25; margin: 1.6em 0 0.45em; color: var(--dx-cream); }
body.dx-blocks .entry-content a { color: var(--dx-yellow); text-decoration: underline; text-underline-offset: 3px; }
body.dx-blocks .entry-content ul, body.dx-blocks .entry-content ol { padding-left: 1.3em; }
body.dx-blocks .entry-content :is(h2, h3)[id], .single-post .entry-content :is(h2, h3, section)[id], .dices-entry { scroll-margin-top: calc(var(--dx-header) + 24px); }
/* FAQ from core details blocks, as on articles */
.dices-faq details { border-bottom: 1.5px solid var(--dx-line); padding: 18px 0; }
.dices-faq details > summary { font-weight: 600; font-size: var(--dx-fs-h4); cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 20px; color: var(--dx-cream); }
.dices-faq details > summary::-webkit-details-marker { display: none; }
.dices-faq details > summary::after { content: "+"; flex: none; align-self: flex-start; font-weight: 400; font-size: 1.6em; line-height: 0.8; transition: transform 0.4s var(--dx-ease); }
.dices-faq details[open] > summary::after { transform: rotate(45deg); }
.dices-faq details > :not(summary) { margin: 12px 0 0; }

/* ---------- 31b. Block page hero: label, H1, one line, chips, actions, 'made by' ---------- */
.dices-hero { padding: clamp(28px, 5vw, 72px) 0 clamp(24px, 3.4vw, 44px); display: grid; gap: 16px; justify-items: start; }
.dices-hero > * { margin: 0 !important; }
.dices-hero .dices-hero__label { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-yellow); }
body.dx-blocks .entry-content .dices-hero__title, .dices-hero__title { font-size: var(--dx-fs-h1); font-weight: 700; letter-spacing: -0.035em; line-height: 0.96; color: var(--dx-cream); max-width: 18ch; }
.dices-hero__line { font-size: var(--dx-fs-lead); line-height: 1.4; max-width: 44ch; color: var(--dx-cream); }
.dices-hero__made { font-size: var(--dx-fs-source); color: var(--dx-muted) !important; }
.dices-hero__made a { color: var(--dx-cream) !important; }
.dices-chips { list-style: none; margin: 0; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 8px; }
.dices-chip { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--dx-line); font-size: var(--dx-fs-source); font-weight: 600; color: var(--dx-cream); }
.dices-chip a { color: inherit !important; text-decoration: none !important; }
.dices-chip--demo { min-height: 24px; padding: 0 9px; border: 0; background: var(--dx-magenta); color: #000 !important; font-size: 0.75rem; letter-spacing: 0.04em; vertical-align: 1px; }
.dices-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
a.dices-button, body.dx-blocks .entry-content a.dices-button, .single-post .entry-content a.dices-button {
	display: inline-flex; align-items: center; min-height: 52px; padding: 0 24px; border-radius: var(--dx-r-sm);
	background: var(--dx-orange); color: #000 !important; font-weight: 600; text-decoration: none !important; transition: background var(--dx-fast) ease;
}
a.dices-button:hover, a.dices-button:focus-visible { background: var(--dx-yellow); }
a.dices-button:focus-visible, a.dices-textlink:focus-visible { outline: 2px solid var(--dx-yellow); outline-offset: 3px; }
a.dices-textlink { color: var(--dx-cream) !important; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }

/* ---------- 31c. Article blocks (T8): made line, answer box, tables, checklist, check-us box ---------- */
.dices-made { font-size: var(--dx-fs-source) !important; line-height: 1.55; color: var(--dx-muted) !important; margin: 0 0 22px !important; }
/* underlined: the names must read as links without relying on colour (WCAG 1.4.1) */
.dices-made a { color: var(--dx-cream) !important; text-decoration: underline !important; text-underline-offset: 3px; }
/* the answer box is the blog's short answer box under the brief's name */
.dices-answer { background: var(--dx-cream); color: #000; border-radius: var(--dx-r-md); padding: clamp(20px, 2.6vw, 32px); margin: 1.6em 0; }
.dices-answer > * { margin: 0; }
.dices-answer > * + * { margin-top: 8px; }
.dices-answer p, .single-post .entry-content .dices-answer p, body.dx-blocks .entry-content .dices-answer p { color: #000; }
.dices-answer .dices-answer__label { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: rgb(0 0 0 / 0.72) !important; }
.dices-answer a { color: #000 !important; }
/* tables in their own scroll box, first column pinned: concept comparisons, price tables, templates */
:is(.dices-compare, .dices-price-table, .dices-template-table, .dices-data-table, .dices-rerun) { margin: 1.8em 0; }
.dices-tablebox { overflow-x: auto; border-radius: var(--dx-r-md); border: 1px solid var(--dx-line); -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
/* a table pasted straight into its figure, without the scroll box (the brief's raw HTML), scrolls inside the figure */
figure:is(.dices-compare, .dices-price-table, .dices-template-table, .dices-data-table, .dices-rerun) { overflow-x: auto; max-width: 100%; }
.dices-tablebox:focus-visible { outline: 2px solid var(--dx-yellow); outline-offset: 2px; }
:is(.dices-compare, .dices-price-table, .dices-template-table, .dices-data-table, .dices-rerun) table { width: 100%; min-width: 620px; border: 0; border-collapse: separate; border-spacing: 0; margin: 0; font-size: var(--dx-fs-small); line-height: 1.5; }
:is(.dices-compare, .dices-price-table, .dices-template-table, .dices-data-table, .dices-rerun) caption { caption-side: bottom; text-align: left; padding: 12px 18px 14px; font-size: var(--dx-fs-source); color: var(--dx-muted); border-top: 1px solid var(--dx-line); }
:is(.dices-compare, .dices-price-table, .dices-template-table, .dices-data-table, .dices-rerun) caption a { color: var(--dx-cream); }
:is(.dices-compare, .dices-price-table, .dices-template-table, .dices-data-table, .dices-rerun) :is(th, td) { text-align: left; vertical-align: top; padding: 14px 18px; border: 0; border-bottom: 1px solid var(--dx-line); background: transparent; color: var(--dx-cream); }
:is(.dices-compare, .dices-price-table, .dices-template-table, .dices-data-table, .dices-rerun) thead th { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); background: var(--dx-ink); }
:is(.dices-compare, .dices-price-table, .dices-template-table, .dices-data-table, .dices-rerun) tbody tr:last-child > * { border-bottom: 0; }
:is(.dices-compare, .dices-price-table, .dices-template-table, .dices-data-table, .dices-rerun) tbody th { font-weight: 700; color: var(--dx-cream); }
:is(.dices-compare, .dices-price-table, .dices-template-table, .dices-data-table, .dices-rerun) :is(th, td):first-child { position: sticky; left: 0; z-index: 1; background: var(--dx-black); box-shadow: 1px 0 0 var(--dx-line); }
:is(.dices-compare, .dices-price-table, .dices-template-table, .dices-data-table, .dices-rerun) thead :is(th, td):first-child { background: var(--dx-ink); }
/* concept comparisons stay neutral: no column is highlighted */
.dices-price-table td:nth-child(2) { font-weight: 700; white-space: nowrap; }
.dices-price-table + p a, .dices-price-more { font-weight: 600; }
/* a short checklist inside a post, linking to its template: square ticks drawn in CSS */
.dices-checklist { background: var(--dx-ink); border: 1px solid var(--dx-line); border-radius: var(--dx-r-md); padding: clamp(20px, 2.6vw, 30px); margin: 1.8em 0; }
.dices-checklist > * { margin: 0; }
.dices-checklist .dices-checklist__label { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-yellow) !important; margin-bottom: 14px; }
.dices-checklist ol { list-style: none; padding: 0 !important; display: grid; gap: 12px; counter-reset: dices-check; }
.dices-checklist li { position: relative; padding-left: 36px; }
.dices-checklist li::before { content: ""; position: absolute; left: 0; top: 0.2em; width: 20px; height: 20px; border: 1.5px solid var(--dx-yellow); border-radius: 4px; }
.dices-checklist li::after { content: ""; position: absolute; left: 7px; top: calc(0.2em + 3px); width: 6px; height: 11px; border: solid var(--dx-yellow); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.dices-checklist li strong { color: var(--dx-cream); }
.dices-checklist .dices-checklist__more { margin-top: 16px; font-weight: 600; }
.dices-checklist .dices-checklist__more a { color: var(--dx-cream) !important; }
/* 'check us the same way' (buyer guide): yellow panel, black text */
.dices-checkus { background: var(--dx-yellow); color: #000; border-radius: var(--dx-r-md); padding: clamp(20px, 2.6vw, 32px); margin: 1.8em 0; }
.dices-checkus > * { margin: 0; }
.dices-checkus p, .dices-checkus li, .single-post .entry-content .dices-checkus li, .single-post .entry-content .dices-checkus p { color: #000 !important; }
.dices-checkus .dices-checkus__label { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; margin-bottom: 12px; }
.dices-checkus ul { padding-left: 1.2em !important; display: grid; gap: 6px; }
.dices-checkus a { color: #000 !important; font-weight: 600; }
.dices-source { font-size: var(--dx-fs-source); color: var(--dx-muted); }
.dices-source a { color: var(--dx-cream) !important; }

/* ---------- 31d. Comparison list posts (T9): disclosure, method, one entry card per agency ---------- */
.dices-disclosure { background: var(--dx-pink); color: #000; border-radius: var(--dx-r-md); padding: clamp(18px, 2.4vw, 28px); margin: 1.6em 0; }
.dices-disclosure p, .single-post .entry-content .dices-disclosure p { color: #000 !important; margin: 0; }
.dices-method { border: 1px solid var(--dx-line); background: var(--dx-ink); border-radius: var(--dx-r-md); padding: clamp(18px, 2.4vw, 28px); margin: 1.6em 0; }
.dices-method > * { margin: 0; }
.dices-method .dices-method__label { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-yellow) !important; margin-bottom: 12px; }
.dices-method ul { display: grid; gap: 8px; }
/* every entry identical, Dices included: no highlight, badge or colour */
.dices-entry { border: 1px solid var(--dx-line); border-radius: var(--dx-r-md); padding: clamp(20px, 2.6vw, 30px); margin: 1.4em 0; }
:is(.single-post, body.dx-blocks) .entry-content .dices-entry h2 { margin: 0 0 4px; font-size: var(--dx-fs-h3); }
:is(.single-post, body.dx-blocks) .entry-content .dices-entry h3 { margin: 1.1em 0 0.3em; font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); }
.dices-entry p, .dices-entry ul { margin: 0; }
.dices-entry .dices-entry__site { font-weight: 600; }
.dices-entry .dices-source { display: block; margin-top: 4px; }

/* ---------- 31e. Original research (T10): findings, cite line, data tables, chart, CSV ---------- */
.dices-findings { background: var(--dx-yellow); color: #000; border-radius: var(--dx-r-md); padding: clamp(20px, 2.6vw, 32px); margin: 1.6em 0; }
.dices-findings > * { margin: 0; }
.dices-findings p, .dices-findings li, .single-post .entry-content .dices-findings li, .single-post .entry-content .dices-findings p { color: #000 !important; }
.dices-findings .dices-findings__label { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; margin-bottom: 12px; }
.dices-findings ul { display: grid; gap: 10px; padding-left: 1.2em !important; }
.dices-findings .dices-source { color: rgb(0 0 0 / 0.72) !important; display: block; }
.dices-findings .dices-source a { color: #000 !important; }
.dices-cite { border: 1px solid var(--dx-line); border-radius: var(--dx-r-sm); padding: 12px 16px; font-size: var(--dx-fs-source) !important; color: var(--dx-muted) !important; margin: 1.2em 0 !important; }
.dices-chart { margin: 1.6em 0; }
.dices-chart svg, .dices-chart img { display: block; width: 100%; height: auto; }
/* the bar chart in HTML and CSS: label, bar and value per row; on phones the bar takes its own line */
.dices-bars { display: grid; gap: 12px; }
.dices-bar { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr) auto; gap: 6px 14px; align-items: center; }
.dices-bar__label { font-size: var(--dx-fs-small); font-weight: 600; color: var(--dx-cream); }
.dices-bar__track { height: 14px; border-radius: 999px; background: var(--dx-ink); border: 1px solid var(--dx-line); overflow: hidden; }
.dices-bar__fill { display: block; height: 100%; width: calc(var(--v, 0) * 1%); background: var(--dx-yellow); border-radius: inherit; }
.dices-bar__value { font-weight: 700; font-variant-numeric: tabular-nums; min-width: 3.5ch; text-align: right; color: var(--dx-cream); }
@media (max-width: 767px) { .dices-bar { grid-template-columns: minmax(0, 1fr) auto; } .dices-bar__track { grid-column: 1 / -1; grid-row: 2; } }
@media print { .dices-bar__fill { background: #000 !important; } .dices-bar__track { border-color: #999; } }
.dices-chart figcaption { margin-top: 10px; font-size: var(--dx-fs-source); color: var(--dx-muted); }
a.dices-download { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px; border-radius: var(--dx-r-sm); border: 1.5px solid var(--dx-cream); color: var(--dx-cream) !important; font-weight: 600; text-decoration: none !important; }
a.dices-download::before { content: "\2193"; }
a.dices-download:hover { background: var(--dx-cream); color: #000 !important; }

/* ---------- 31f. Template and checklist pages (T4): copy block, the template in full, example ---------- */
.dices-copy { display: grid; gap: 10px; justify-items: start; border: 1px solid var(--dx-line); border-radius: var(--dx-r-md); padding: clamp(18px, 2.4vw, 28px); margin: 1.6em 0; }
.dices-copy > * { margin: 0 !important; }
.dices-copy .dices-copy__note { font-size: var(--dx-fs-source); color: var(--dx-muted) !important; }
.dices-template { margin: 2.4em 0 1.6em; display: grid; gap: 22px; }
.dices-template > * { margin: 0 !important; }
.dices-template__tabs { list-style: none; padding: 0 !important; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.dices-template__tabs::-webkit-scrollbar { display: none; }
.dices-template__tabs a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--dx-line); color: var(--dx-cream) !important; text-decoration: none !important; font-weight: 600; font-size: 0.9375rem; white-space: nowrap; }
.dices-template__tabs a:hover, .dices-template__tabs a:focus-visible { background: var(--dx-yellow); border-color: var(--dx-yellow); color: #000 !important; }
.dices-template__part { scroll-margin-top: calc(var(--dx-header) + 24px); display: grid; gap: 10px; }
.dices-template__part > * { margin: 0 !important; }
body.dx-blocks .entry-content .dices-template__part h3 { font-size: var(--dx-fs-h3); letter-spacing: -0.02em; }
.dices-template-table td:first-child, .dices-template-table th:first-child { min-width: 11rem; }
.dices-template__changed { font-size: var(--dx-fs-source) !important; color: var(--dx-muted) !important; }
/* a doc template (content brief): headed sections and fields, as the doc reads */
.dices-docfield { border-left: 3px solid var(--dx-yellow); background: var(--dx-ink); border-radius: 0 var(--dx-r-sm) var(--dx-r-sm) 0; padding: 14px 18px; }
.dices-docfield > * { margin: 0 !important; }
.dices-docfield > * + * { margin-top: 6px !important; }
.dices-docfield .dices-docfield__name { font-weight: 700; color: var(--dx-cream); }
.dices-docfield .dices-docfield__help { font-size: var(--dx-fs-small); color: var(--dx-muted) !important; }
/* inside a worked example (the cream demo panel) the fields go light, so the black text keeps its contrast */
.dices-example .dices-docfield { background: rgb(0 0 0 / 0.06); }
.dices-example .dices-docfield .dices-docfield__name, .dices-example .dices-docfield p { color: #000 !important; }
/* worked example: cream panel with black text, 'Demo data' on every number */
.dices-example { background: var(--dx-cream); color: #000; border-radius: var(--dx-r-md); padding: clamp(20px, 2.6vw, 32px); margin: 1.6em 0; display: grid; gap: 12px; }
.dices-example > * { margin: 0 !important; }
.dices-example p, .dices-example li, .dices-example td, .dices-example th, body.dx-blocks .entry-content .dices-example :is(p, li, td, th), .single-post .entry-content .dices-example :is(p, li, td, th) { color: #000 !important; }
.dices-example .dices-example__head { font-weight: 700; font-size: var(--dx-fs-h4); display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.dices-example .dices-example__caption { font-size: var(--dx-fs-source); color: rgb(0 0 0 / 0.72) !important; }
.dices-example table { width: 100%; border-collapse: collapse; font-size: var(--dx-fs-small); }
.dices-example :is(th, td) { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid rgb(0 0 0 / 0.18); background: transparent; }
.dices-example thead th { font-size: var(--dx-fs-label); letter-spacing: 0.08em; text-transform: uppercase; }
.dices-example .dices-tablebox { border-color: rgb(0 0 0 / 0.18); }
.dices-example a { color: #000 !important; }
.dices-steps { counter-reset: dices-step; list-style: none; padding: 0 !important; display: grid; gap: 14px; }
.dices-steps > li { counter-increment: dices-step; position: relative; padding-left: 56px; min-height: 40px; }
.dices-steps > li::before { content: counter(dices-step, decimal-leading-zero); position: absolute; left: 0; top: -2px; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--dx-yellow); color: #000; font-weight: 700; font-size: 0.875rem; }
/* print: the checklist and template on A4 or Letter, without header, footer or CTA bands */
@media print {
	@page { margin: 16mm 14mm; }
	body.dx-blocks, body.dx-blocks .entry-content { background: #fff !important; color: #000 !important; }
	body.dx-blocks .site-header, body.dx-blocks .site-footer, body.dx-blocks .dx-crumbs, body.dx-blocks .dx-cta-band, body.dx-blocks .dx-cta-card,
	body.dx-blocks .dices-actions, body.dx-blocks .dices-copy, body.dx-blocks .dices-related, body.dx-blocks .dices-cards, body.dx-blocks .dices-template__tabs,
	body.dx-blocks .dx-pending-switch, #wpadminbar { display: none !important; }
	body.dx-blocks .entry-content { width: 100%; padding: 0; }
	body.dx-blocks .entry-content * { color: #000 !important; background: transparent !important; box-shadow: none !important; }
	body.dx-blocks .entry-content a { text-decoration: none; }
	body.dx-blocks .dices-tablebox, body.dx-blocks figure:is(.dices-compare, .dices-price-table, .dices-template-table, .dices-data-table, .dices-rerun) { overflow: visible; border: 0; }
	body.dx-blocks :is(.dices-template-table, .dices-compare, .dices-price-table) table { min-width: 0; }
	body.dx-blocks :is(.dices-template-table, .dices-compare) :is(th, td) { border-bottom: 1px solid #999; position: static; }
	body.dx-blocks .dices-template__part, body.dx-blocks tr { break-inside: avoid; }
	body.dx-blocks .dices-hero__title { font-size: 26pt; }
	body.dx-blocks .entry-content h2 { font-size: 18pt; }
}

/* ---------- 31g. Resources hub (T5): type labels in text and colour, equal-height cards ---------- */
.dices-filter { list-style: none; padding: 0 0 4px !important; margin: 0 0 8px !important; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; max-width: none !important; }
.dices-filter::-webkit-scrollbar { display: none; }
.dices-filter li { flex: none; }
.dices-filter a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--dx-line); color: var(--dx-cream) !important; text-decoration: none !important; font-weight: 500; font-size: 0.9375rem; white-space: nowrap; }
.dices-filter a:hover, .dices-filter a:focus-visible { background: var(--dx-yellow); border-color: var(--dx-yellow); color: #000 !important; }
.dices-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 1.2em 0 2em; }
.dices-card { position: relative; display: grid; grid-template-rows: auto auto 1fr auto auto; gap: 8px; padding: clamp(18px, 2.2vw, 26px); border-radius: var(--dx-r-md); background: var(--dx-ink); border: 1px solid var(--dx-line); transition: transform var(--dx-fast) var(--dx-ease), border-color var(--dx-fast) ease; }
.dices-card > * { margin: 0 !important; }
.dices-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--dx-cream) 40%, transparent); }
.dices-card .dices-card__name { font-size: var(--dx-fs-h4) !important; font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; }
.dices-card .dices-card__name a { color: var(--dx-cream) !important; text-decoration: none !important; }
/* the whole card is the link (one link per card) */
.dices-card .dices-card__name a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.dices-card .dices-card__name a:focus-visible { outline: none; }
.dices-card:has(a:focus-visible) { outline: 2px solid var(--dx-yellow); outline-offset: 3px; }
.dices-card .dices-card__line { color: var(--dx-cream) !important; }
.dices-card .dices-card__meta { font-size: var(--dx-fs-source); color: var(--dx-muted) !important; }
.dices-card .dices-card__link { font-weight: 600; color: var(--dx-yellow) !important; }
.dices-card .dices-card__link::after { content: " \2192"; }
.dices-type { justify-self: start; display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 999px; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #000 !important; }
.dices-type--template { background: var(--dx-yellow); }
.dices-type--checklist { background: var(--dx-pink); }
.dices-type--tool { background: var(--dx-orange); }
.dices-type--guide { background: var(--dx-cream); }
@media (max-width: 1024px) { .dices-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .dices-cards { grid-template-columns: minmax(0, 1fr); } }

/* ---------- 31h. Glossary hub (T6): A to Z bar, one anchored H3 per term ---------- */
.dices-az { list-style: none; padding: 0 0 4px !important; margin: 0 0 1.4em !important; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; max-width: none !important; }
.dices-az::-webkit-scrollbar { display: none; }
.dices-az li { flex: none; }
.dices-az a, .dices-az span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--dx-r-sm); border: 1px solid var(--dx-line); font-weight: 700; text-decoration: none !important; }
.dices-az a { color: var(--dx-cream) !important; }
.dices-az a:hover, .dices-az a:focus-visible { background: var(--dx-yellow); border-color: var(--dx-yellow); color: #000 !important; }
.dices-az span { color: color-mix(in srgb, var(--dx-cream) 32%, transparent); }
.dices-term__group { display: inline-block; margin: 0 0 6px !important; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dx-yellow) !important; }
.dices-topics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; max-width: none !important; }
.dices-topics ul { list-style: none; padding: 0 !important; display: grid; gap: 6px; }
.dices-backtop { font-size: var(--dx-fs-source); }
@media (max-width: 1024px) { .dices-topics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .dices-topics { grid-template-columns: minmax(0, 1fr); } }

/* ---------- 31i. Person pages (T7): initials tile or approved photo, the About team card style ---------- */
.dices-profile { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: clamp(20px, 4vw, 56px); align-items: center; padding: clamp(28px, 5vw, 64px) 0 clamp(20px, 3vw, 36px); }
.dices-profile > * { margin: 0 !important; }
.dices-profile__photo { aspect-ratio: 1; border-radius: var(--dx-r-lg); display: grid; place-items: center; overflow: hidden; }
.dices-profile__photo--yellow { background: var(--dx-yellow); }
.dices-profile__photo--pink { background: var(--dx-pink); }
.dices-profile__photo--orange { background: var(--dx-orange); }
.dices-profile__initials { font-size: clamp(3.5rem, 2.4rem + 4vw, 6rem); font-weight: 700; letter-spacing: -0.04em; color: #000 !important; margin: 0 !important; }
.dices-profile__text { display: grid; gap: 12px; }
.dices-profile__text > * { margin: 0 !important; }
body.dx-blocks .entry-content .dices-profile :is(h1, .dices-profile__name) { font-size: var(--dx-fs-h1); font-weight: 700; letter-spacing: -0.035em; line-height: 0.96; color: var(--dx-cream); }
.dices-profile__role { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-yellow) !important; }
.dices-profile__line { font-size: var(--dx-fs-lead); line-height: 1.4; }
.dices-owns { list-style: none; padding: 0 !important; display: grid; gap: 10px; }
.dices-owns li { position: relative; padding-left: 30px; }
.dices-owns li::before { content: ""; position: absolute; left: 4px; top: 0.55em; width: 10px; height: 10px; border-radius: 50%; background: var(--dx-yellow); }
.dices-links { list-style: none; padding: 0 !important; display: grid; gap: 8px; }
.dices-links a { font-weight: 600; }
/* The Post Grid on a person page: the blog's card look */
body.dx-blocks .dx-if-posts .tpg-el-main-wrapper, body.dx-blocks .dx-if-posts .rt-tpg-container { --tpg-primary-color: var(--dx-yellow); }
/* The Post Grid's own fade-in overlay is wider than a phone column (2px of sideways scroll): the grid shows without it */
body.dx-blocks .bottom-script-loader { display: none !important; }
/* the cards sit 16px apart, like the blog cards, and each fills its row */
body.dx-blocks .dx-if-posts .rt-tpg-container { padding-left: 0; padding-right: 0; }
body.dx-blocks .dx-if-posts .rt-row.grid-layout1 { display: flex; flex-wrap: wrap; margin: 0 -8px; row-gap: 16px; }
/* The Post Grid prints its own column padding per block (an inline style), so this one needs !important */
body.dx-blocks .dx-if-posts .rt-row [class*="rt-col"] { padding: 0 8px !important; margin: 0; }
body.dx-blocks .dx-if-posts .rt-holder { height: 100%; }
body.dx-blocks .dx-if-posts :is(.rt-holder, .tpg-post-holder) { background: var(--dx-ink) !important; border-radius: var(--dx-r-md); overflow: hidden; border: 1px solid var(--dx-line); }
body.dx-blocks .dx-if-posts :is(.entry-title, .entry-title a, .tpg-excerpt, .post-meta-tags, .post-meta-tags *) { color: var(--dx-cream) !important; }
@media (max-width: 767px) { .dices-profile { grid-template-columns: minmax(0, 1fr); } .dices-profile__photo { max-width: 11rem; } }

/* ---------- 31j. Simple company pages (T11): text sections, link and file lists ---------- */
.dices-files { list-style: none; padding: 0 !important; display: grid; gap: 10px; }
.dices-files a { display: inline-flex; gap: 10px; align-items: center; font-weight: 600; }
.dices-files a::before { content: "\2193"; }

/* ---------- 31k. Free tool pages (T3): compact hero, the tool panel and its states, limits box ---------- */
.elementor .e-con.dx-hero--tool { padding-top: clamp(20px, 3vw, 44px); padding-bottom: clamp(16px, 2.4vw, 28px); }
.dx-hero--tool .dx-h1 { font-size: clamp(2.125rem, 1.4rem + 2.9vw, 4rem) !important; max-width: 20ch; }
.dx-toolchips ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.dx-toolchips li { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--dx-line); font-size: var(--dx-fs-source); font-weight: 600; color: var(--dx-cream); }
.dx-toolchips li.dx-toolchips__rules { border: 0; padding: 0; }
.dx-toolchips a { color: var(--dx-cream); text-decoration: underline; text-underline-offset: 3px; font-weight: 500; }
.elementor .e-con.dx-toolgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 22rem); gap: clamp(16px, 2.4vw, 32px); align-items: start; }
.elementor .e-con.dx-toolcol { display: grid; gap: 16px; }
@media (max-width: 1024px) { .elementor .e-con.dx-toolgrid { grid-template-columns: minmax(0, 1fr); } }
/* the panel keeps its height, so a result never pushes the page around (CLS) */
.dx-toolpanel { background: var(--dx-ink); border: 1px solid var(--dx-line); border-radius: var(--dx-r-lg); padding: clamp(18px, 2.6vw, 32px); min-height: 34rem; display: grid; align-content: start; gap: 20px; color: var(--dx-cream); }
.dx-toolpanel[data-tool="llms-txt"] { min-height: 40rem; }
.dx-toolpanel > * { margin: 0; }
.dx-toolform { display: grid; gap: 18px; }
.dx-toolfield { display: grid; gap: 8px; }
/* Astra sets .entry-content p { margin-bottom: 1.6em } (0-1-1), so the resets inside the panel carry the panel class */
.dx-toolpanel .dx-toolfield > * { margin: 0; }
.dx-toolfield label { font-weight: 600; font-size: var(--dx-fs-body); color: var(--dx-cream); }
.dx-toolfield .dx-toolfield__optional { font-weight: 400; color: var(--dx-muted); }
/* Elementor's kit styles every field (.elementor-kit-N input:not([type="button"]):not([type="submit"]), 0-3-1), so the
   tool fields carry the panel class and the same two :not()s to win without !important */
.dx-toolpanel .dx-toolfield :is(input, textarea):not([type="button"]):not([type="submit"]) {
	width: 100%; box-sizing: border-box; min-height: 48px; padding: 12px 14px; border-radius: var(--dx-r-sm);
	border: 1.5px solid color-mix(in srgb, var(--dx-cream) 45%, transparent); background: var(--dx-black); color: var(--dx-cream);
	font: inherit; font-size: 1rem; line-height: 1.5;
}
.dx-toolfield textarea { min-height: 7.5rem; resize: vertical; }
.dx-toolfield textarea.dx-toolfield__long { min-height: 11rem; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.9375rem; }
.dx-toolfield :is(input, textarea)::placeholder { color: color-mix(in srgb, var(--dx-cream) 62%, transparent); }
.dx-toolpanel .dx-toolfield :is(input, textarea):not([type="button"]):not([type="submit"]):focus-visible { outline: 2px solid var(--dx-yellow); outline-offset: 2px; border-color: var(--dx-cream); }
.dx-toolpanel .dx-toolfield :is(input, textarea):not([type="button"]):not([type="submit"])[aria-invalid="true"] { border-color: var(--dx-orange); }
.dx-toolfield .dx-toolfield__hint, .dx-toolfield .dx-toolfield__count { font-size: var(--dx-fs-source); color: var(--dx-muted); }
.dx-toolfield .dx-toolfield__count.is-over { color: var(--dx-orange); font-weight: 600; }
.dx-toolactions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
/* the Elementor kit styles every <button> (.elementor-kit-N button): the tool controls keep their own look, as in phase 1 */
html body button.dx-toolbtn, html body button.dx-copybtn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 26px; border: 0; border-radius: var(--dx-r-sm);
	background: var(--dx-orange); color: #000; font: inherit; font-weight: 600; font-size: 1rem; cursor: pointer; transition: background var(--dx-fast) ease;
}
html body button.dx-toolbtn:hover, html body button.dx-toolbtn:focus-visible, html body button.dx-copybtn:hover, html body button.dx-copybtn:focus-visible { background: var(--dx-yellow); color: #000; }
html body button:is(.dx-toolbtn, .dx-copybtn):focus-visible, html body :is(a, button).dx-toollink:focus-visible { outline: 2px solid var(--dx-yellow); outline-offset: 3px; }
html body button.dx-toolbtn[disabled] { opacity: 0.72; cursor: progress; }
html body button.dx-copybtn { min-height: 44px; padding: 0 18px; background: var(--dx-cream); }
html body button.dx-copybtn.is-copied { background: var(--dx-yellow); }
html body :is(a, button).dx-toollink { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; border: 0; border-radius: 0; background: none; color: var(--dx-cream); font: inherit; font-weight: 600; font-size: 1rem; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; box-shadow: none; }
html body :is(a, button).dx-toollink:hover, html body :is(a, button).dx-toollink:focus-visible { background: none; color: var(--dx-yellow); }
.dx-toolprogress { font-size: var(--dx-fs-small); color: var(--dx-muted); }
.dx-toolerror { border-left: 4px solid var(--dx-orange); background: var(--dx-black); padding: 12px 16px; border-radius: 0 var(--dx-r-sm) var(--dx-r-sm) 0; }
.dx-toolresult { display: grid; gap: 16px; }
.dx-toolresult:empty { display: none; }
.dx-toolpanel .dx-toolresult > *, .dx-toolpanel .dx-codebox > * { margin: 0; }
.dx-toolsummary { font-size: var(--dx-fs-lead); font-weight: 600; line-height: 1.35; }
.dx-toolpanel .dx-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.dx-check { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; align-items: baseline; padding: 12px 14px; border-radius: var(--dx-r-sm); background: var(--dx-black); border: 1px solid var(--dx-line); }
.dx-check__label { grid-row: span 2; display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 999px; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #000; }
.dx-check--pass .dx-check__label { background: var(--dx-yellow); }
.dx-check--check .dx-check__label { background: var(--dx-pink); }
.dx-check--fix .dx-check__label { background: var(--dx-orange); }
.dx-check__name { font-weight: 700; }
.dx-check__why { font-size: var(--dx-fs-small); color: var(--dx-muted); }
.dx-toolrow { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; }
/* search snippet previews: an illustration of how a result may look, marked as an estimate */
.dx-snippets { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 20rem); gap: 12px; }
.dx-snippet { background: var(--dx-cream); color: #000; border-radius: var(--dx-r-md); padding: 16px 18px; display: grid; gap: 4px; align-content: start; min-height: 8.5rem; }
.dx-toolpanel .dx-snippet > * { margin: 0; color: #000; }
.dx-snippet__label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: rgb(0 0 0 / 0.7) !important; margin-bottom: 6px !important; }
.dx-snippet__url { font-size: 0.875rem; color: rgb(0 0 0 / 0.72) !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dx-snippet__title { font-family: Arial, Helvetica, sans-serif; font-size: 20px; line-height: 1.3; font-weight: 600; color: #000; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 600px; }
.dx-snippet__desc { font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.58; color: rgb(0 0 0 / 0.78) !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.dx-snippet--mobile .dx-snippet__title { font-size: 18px; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.dx-snippet--mobile .dx-snippet__desc { -webkit-line-clamp: 3; }
.dx-snippet__note { font-size: 0.8125rem; color: rgb(0 0 0 / 0.72) !important; margin-top: 6px !important; }
@media (max-width: 767px) { .dx-snippets { grid-template-columns: minmax(0, 1fr); } }
/* generated code with its Copy button */
.dx-codebox { display: grid; gap: 10px; }
.dx-codebox pre { margin: 0; max-height: 26rem; overflow: auto; padding: 16px 18px; border-radius: var(--dx-r-sm); background: var(--dx-black); border: 1px solid var(--dx-line); color: var(--dx-cream); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.875rem; line-height: 1.6; white-space: pre-wrap; word-break: break-word; }
.dx-codebox .dx-toolrow { justify-content: space-between; }
/* states: the script sets data-state on the panel (empty, running, result, error, unavailable) */
.dx-toolpanel .dx-toolunavailable, .dx-toolpanel .dx-toolnoscript { border: 1px solid var(--dx-line); border-radius: var(--dx-r-md); padding: 18px 20px; background: var(--dx-black); }
.dx-toolpanel .dx-toolunavailable { display: none; }
.dx-toolpanel[data-state="unavailable"] .dx-toolunavailable { display: block; }
.dx-toolpanel[data-state="unavailable"] .dx-toolform, .dx-toolpanel[data-state="unavailable"] .dx-toolresult { display: none; }
.dx-toolpanel :is(.dx-toolunavailable, .dx-toolnoscript) p { margin: 0 0 8px; }
/* keeps a hyphenated pair such as '20-minute' on one line in a heading */
.dx-nowrap { white-space: nowrap; }
/* without JavaScript the panel shows only its noscript message (a plain form would put what people type in the address bar) */
html:not(.dx-js) .dx-toolpanel { min-height: 0; }
html:not(.dx-js) .dx-toolpanel :is(.dx-toolform, .dx-snippets) { display: none; }
.dx-toolunavailable .dx-copyable { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; user-select: all; }
/* the style guide shows each state as its own small panel */
.dx-toolpanel.dx-toolpanel--demo { min-height: 0; }
/* T3 offer variant: the free offer card, enlarged as the request card */
.elementor .e-con.dx-offer--request { max-width: 48rem; gap: 18px; }
.dx-request { display: grid; gap: 14px; margin: 0; }
.dx-request > div { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); gap: 4px 20px; padding-top: 14px; border-top: 1px solid var(--dx-line); }
.dx-request dt { font-size: var(--dx-fs-label); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--dx-muted); }
.dx-request dd { margin: 0; }
@media (max-width: 767px) { .dx-request > div { grid-template-columns: minmax(0, 1fr); } }
/* limits of this tool: beside the panel on desktop, under the CTA card on phones */
.elementor .e-con.dx-limits { background: var(--dx-ink); border: 1px solid var(--dx-line); border-radius: var(--dx-r-lg); padding: clamp(18px, 2.4vw, 28px); gap: 12px; }
.dx-limits .dx-label { color: var(--dx-yellow); }
.dx-limits ul { margin: 0; padding-left: 1.2em; display: grid; gap: 10px; }
.dx-limits li { color: var(--dx-cream); font-size: var(--dx-fs-small); }
.dx-limits .dx-source { margin-top: 2px; }
/* the CTA card right under the result (same look as the blog CTA card) */
.elementor .e-con.dx-toolcta { background: var(--dx-ink); border: 1px solid var(--dx-line); border-radius: var(--dx-r-md); padding: clamp(18px, 2.4vw, 28px); gap: 10px; }
.dx-toolcta .dx-h4 { margin: 0; }
.elementor .e-con.dx-builtby { gap: 2px; }

/* ---------- 31l. Service and platform pages (T1, T2): 'Part of our hub' and 'On your platform' ---------- */
.elementor .e-con.dx-partof { position: relative; display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(16px, 3vw, 44px); align-items: center; padding: clamp(22px, 3vw, 40px); border-radius: var(--dx-r-lg); transition: transform var(--dx-fast) var(--dx-ease); }
.elementor .e-con.dx-partof:hover { transform: translateY(-3px); }
.dx-partof .dx-label { margin: 0; }
.dx-partof .dx-h3 { margin: 0 0 6px; }
.dx-partof .dx-link a::after, .dx-platforms .dx-card .dx-link a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: 1; }
.elementor .e-con.dx-partof:has(a:focus-visible), .dx-platforms .dx-card:has(a:focus-visible) { outline: 2px solid #000; outline-offset: 3px; }
.dx-on-black .dx-partof:has(a:focus-visible) { outline-color: var(--dx-yellow); }
@media (max-width: 767px) { .elementor .e-con.dx-partof { grid-template-columns: minmax(0, 1fr); } }
.dx-platforms .dx-card { position: relative; }
/* explainer sections on tool pages: a narrow reading column of Text Editor widgets */
.elementor .e-con.dx-prose-col { max-width: 48rem; gap: 14px; }
.dx-prose p, .dx-prose li { color: var(--dx-fg); }
.dx-prose h3 { font-size: var(--dx-fs-h4); font-weight: 650; margin: 1.4em 0 0.4em; color: var(--dx-fg); }
.dx-prose ol, .dx-prose ul { padding-left: 1.3em; display: grid; gap: 8px; }
.dx-prose a { color: var(--dx-yellow); text-decoration: underline; text-underline-offset: 3px; }
.dx-on-cream .dx-prose a, .dx-on-yellow .dx-prose a, .dx-on-pink .dx-prose a { color: #000; }
.elementor .e-con.dx-section--prose { padding-top: clamp(40px, 5vw, 80px); padding-bottom: clamp(40px, 5vw, 80px); }
/* Astra's block layout gives every child of a non-group block auto side margins (it centres list items
   and spreads flex chips); block pages keep their own flow */
body.dx-blocks .entry-content[data-ast-blocks-layout] > :not(.wp-block-group) > * { margin-left: 0; margin-right: 0; }
body.dx-blocks .entry-content[data-ast-blocks-layout] > .wp-block-group > * { margin-left: 0; margin-right: 0; max-width: none; }
/* light panels on block pages keep black text (the block page text rule is cream) */
body.dx-blocks .entry-content :is(.dx-cta-band, .dices-answer, .dices-checkus, .dices-findings, .dices-disclosure, .dices-example) :is(p, li, td, th, h2, h3) { color: #000; }
body.dx-blocks .entry-content .dx-cta-band .dx-cta-band__line { color: rgb(0 0 0 / 0.8); margin-top: 8px !important; font-size: var(--dx-fs-body); }
.single-post .entry-content .dx-cta-band .dx-cta-band__line { color: rgb(0 0 0 / 0.8); margin-top: 8px; }
body.dx-blocks .entry-content .dx-cta-band a.dx-cta-band__button { color: var(--dx-cream) !important; text-decoration: none; }
@media (max-width: 767px) { body.dx-blocks .entry-content .dices-profile .dices-profile__photo { max-width: 11rem; width: 100%; } }
/* grid children never stretch to a wide table or chip row (tables scroll inside their own box) */
:is(.dices-template, .dices-template__part, .dices-example, .dices-hero, .dices-copy, .dices-card, .dices-profile, .dices-profile__text, .dices-cards, .dx-toolpanel, .dx-toolform, .dx-toolfield, .dx-toolresult, .dx-codebox, .dx-snippets, .dx-snippet, .dx-checks, .dx-check) > * { min-width: 0; }
body.dx-blocks .entry-content > *, .single-post .entry-content > * { min-width: 0; }
.elementor .e-con:is(.dx-toolgrid, .dx-toolcol) > * { min-width: 0; }
/* the reading column wins over Astra's block layout (which sets every top-level block to full width) */
body.dx-blocks .entry-content[data-ast-blocks-layout] > * { max-width: 48rem; margin-left: 0; margin-right: 0; }
body.dx-blocks .entry-content[data-ast-blocks-layout] > :is(.dices-wide, .dices-hero, .dices-cards, .dices-template, .dx-cta-band, .dices-profile, .dices-related, figure, .dices-filter, .dices-az, .dices-topics, .dx-if-posts) { max-width: none; }
