/*
Theme Name: DataLinks
Theme URI: https://www.datalinks.com.au/
Author: DataLinks
Description: Custom theme for DataLinks — CRM, data and AI partner in Brisbane. Poppins typography, brand purple palette, responsive layout.
Version: 1.7.4
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary
Text Domain: datalinks
*/

:root {
	--dl-purple: #5C0B84;
	--dl-purple-light: #C8A2EA;
	--dl-ink: #111111;
	--dl-body: #2F2A38;
	--dl-muted: #4E485A;
	--dl-bg: #F8F7FA;
	--dl-band: #F0EDF5;
	--dl-white: #FFFFFF;
	--dl-line: #E5E1EB;
	--dl-line-soft: #EEEBF2;
	--dl-dark: #1B0A28;
	--dl-dark-card: #26123A;
	--dl-dark-line: #3A2152;
	--dl-dark-text: #D6CCE1;
	--dl-dark-muted: #CFC3DC;
	--dl-gutter: clamp(20px, 6.6vw, 96px);
	--dl-section: clamp(72px, 9vw, 128px);
	--dl-radius: 22px;
}

*, *::before, *::after { box-sizing: border-box; }

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

body {
	margin: 0;
	background: var(--dl-bg);
	color: var(--dl-ink);
	font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4, p { margin: 0; }
a { color: var(--dl-ink); text-decoration: none; }
a:hover { color: var(--dl-purple); }
:focus-visible { outline: 3px solid var(--dl-purple); outline-offset: 3px; border-radius: 6px; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto; left: 16px; top: 16px; z-index: 1000;
	padding: 12px 18px; background: var(--dl-white); border-radius: 8px;
}

.dl-container { padding-inline: var(--dl-gutter); max-width: 1440px; margin-inline: auto; }

/* ---------- Type ---------- */
.dl-h1 { font-weight: 600; font-size: clamp(38px, 4.4vw, 62px); line-height: 1.08; letter-spacing: -0.03em; }
.dl-h1 em { font-style: normal; color: var(--dl-purple); }
.dl-h2 { font-weight: 600; font-size: clamp(30px, 3.1vw, 44px); line-height: 1.12; letter-spacing: -0.02em; }
.dl-h3 { font-weight: 600; font-size: clamp(26px, 2.3vw, 32px); letter-spacing: -0.02em; }
.dl-eyebrow { font-size: 14px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dl-purple); }
.dl-lead { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.6; color: var(--dl-muted); }

/* ---------- Buttons ---------- */
.dl-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 26px; border-radius: 999px;
	font-size: 16px; font-weight: 600; line-height: 1; transition: background-color .15s, color .15s, border-color .15s;
}
.dl-btn--primary { background: var(--dl-purple); color: var(--dl-white); }
.dl-btn--primary:hover { background: #480966; color: var(--dl-white); }
.dl-btn--dark { background: var(--dl-ink); color: var(--dl-white); min-height: 46px; padding: 0 22px; font-size: 15px; }
.dl-btn--dark:hover { background: var(--dl-purple); color: var(--dl-white); }
.dl-btn--ghost { border: 1px solid #CDC6D8; color: var(--dl-ink); }
.dl-btn--ghost:hover { border-color: var(--dl-purple); }
.dl-btn--light { background: var(--dl-bg); color: var(--dl-ink); }
.dl-btn--light:hover { background: var(--dl-white); color: var(--dl-purple); }
.dl-btn--outline-light { border: 1px solid #4A2E63; color: var(--dl-bg); }
.dl-btn--outline-light:hover { border-color: var(--dl-purple-light); color: var(--dl-white); }

/* ---------- Header ---------- */
.dl-header { position: sticky; top: 0; z-index: 50; background: rgba(248, 247, 250, .94); backdrop-filter: blur(8px); border-bottom: 1px solid var(--dl-line); }
.dl-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 84px; }
.dl-logo { display: inline-flex; flex-shrink: 0; }
.dl-logo img, .dl-logo .custom-logo { display: block; height: 36px; width: auto; max-width: none; object-fit: contain; }
.dl-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 36px; }
.dl-nav a { font-size: 15px; font-weight: 500; }
.dl-nav li { position: relative; }
.dl-nav .sub-menu {
	display: none; position: absolute; top: 100%; left: -16px; min-width: 260px; padding: 12px;
	flex-direction: column; align-items: stretch; gap: 0;
	background: var(--dl-white); border: 1px solid var(--dl-line); border-radius: 16px;
}
.dl-nav li:hover > .sub-menu, .dl-nav li:focus-within > .sub-menu { display: flex; }
.dl-nav .sub-menu a { display: block; padding: 10px 12px; border-radius: 10px; font-size: 14px; }
.dl-nav .sub-menu a:hover { background: var(--dl-band); }
.dl-nav .sub-menu .sub-menu { position: static; display: flex; border: 0; padding: 0 0 0 12px; min-width: 0; }
.dl-header__actions { display: flex; align-items: center; gap: 20px; }
.dl-header__phone { font-size: 15px; font-weight: 500; color: var(--dl-muted); }
.dl-menu-toggle {
	display: none; width: 46px; height: 46px; border-radius: 12px; border: 1px solid var(--dl-line);
	background: var(--dl-white); cursor: pointer; align-items: center; justify-content: center; color: var(--dl-ink);
}

@media (max-width: 1080px) {
	.dl-header__phone { display: none; }
	.dl-nav ul { gap: 24px; }
}
@media (max-width: 900px) {
	.dl-menu-toggle { display: inline-flex; }
	.dl-header__actions .dl-btn { display: none; }
	.dl-nav {
		display: none; position: absolute; top: 100%; left: 0; right: 0;
		background: var(--dl-bg); border-bottom: 1px solid var(--dl-line); padding: 12px var(--dl-gutter) 24px;
		max-height: calc(100vh - 84px); overflow-y: auto;
	}
	.dl-nav.is-open { display: block; }
	.dl-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
	.dl-nav > ul > li > a { display: block; padding: 14px 0; font-size: 17px; border-bottom: 1px solid var(--dl-line-soft); }
	.dl-nav .sub-menu { display: flex; position: static; border: 0; background: none; padding: 0 0 8px 12px; min-width: 0; }
}

/* ---------- Hero ---------- */
.dl-hero { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 72px; align-items: center; padding-block: clamp(64px, 7vw, 104px) clamp(56px, 6.6vw, 96px); }
.dl-hero__copy { display: flex; flex-direction: column; gap: 32px; }
.dl-pill { display: inline-flex; align-self: flex-start; align-items: center; gap: 10px; padding: 8px 14px; border: 1px solid #D9D3E2; border-radius: 999px; font-size: 14px; font-weight: 500; color: var(--dl-muted); }
.dl-pill__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--dl-purple); }
.dl-hero__lead { max-width: 540px; }
.dl-hero__actions { display: flex; flex-wrap: wrap; gap: 16px; }
.dl-hero__actions .dl-btn { min-height: 56px; padding: 0 28px; font-size: 17px; }
.dl-flow { position: relative; aspect-ratio: 600 / 560; border-radius: 28px; background: var(--dl-dark); overflow: hidden; }
.dl-flow svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.dl-flow__tag { position: absolute; padding: 12px 16px; border-radius: 14px; background: var(--dl-white); font-size: 14px; font-weight: 600; color: var(--dl-ink); white-space: nowrap; }
.dl-flow__tag--1 { left: 6%; top: 21%; }
.dl-flow__tag--2 { left: 6%; top: 67.5%; }
.dl-flow__tag--3 { right: 5%; top: 24.6%; }
.dl-flow__tag--4 { right: 5%; top: 64%; }
.dl-flow__steps { position: absolute; left: 6%; right: 6%; bottom: 5.7%; display: flex; justify-content: space-between; font-size: 13px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: #C3B5D2; }

/* ---------- Trust strip ---------- */
.dl-trust { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding-block: 32px; border-block: 1px solid var(--dl-line); }
.dl-trust__item { display: flex; flex-direction: column; gap: 4px; }
.dl-trust__value { font-size: 26px; font-weight: 600; letter-spacing: -0.01em; }
.dl-trust__label { font-size: 15px; color: var(--dl-muted); }

/* ---------- AI section ---------- */
.dl-ai { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; padding-block: var(--dl-section); }
.dl-ai__head { grid-column: span 5; display: flex; flex-direction: column; gap: 20px; }
.dl-ai__body { grid-column: 7 / span 6; display: flex; flex-direction: column; gap: 28px; padding-top: 36px; }
.dl-ai__body > p { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.6; color: var(--dl-body); }
.dl-benefits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.dl-benefit { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: 18px; background: var(--dl-white); border: 1px solid var(--dl-line); }
.dl-benefit strong { font-size: 17px; font-weight: 600; }
.dl-benefit span { font-size: 15px; line-height: 1.5; color: var(--dl-muted); }

/* ---------- Approach ---------- */
.dl-approach { background: var(--dl-dark); color: var(--dl-bg); padding-block: clamp(72px, 7.8vw, 112px); }
.dl-approach__inner { display: flex; flex-direction: column; gap: 56px; }
.dl-approach__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; }
.dl-approach__head .dl-h2 { max-width: 640px; }
.dl-approach__head p { font-size: 18px; line-height: 1.6; color: var(--dl-dark-muted); max-width: 420px; }
.dl-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dl-step { display: flex; flex-direction: column; gap: 18px; padding: 36px; border-radius: var(--dl-radius); background: var(--dl-dark-card); border: 1px solid var(--dl-dark-line); }
.dl-step__num { font-size: 32px; font-weight: 600; color: var(--dl-purple-light); }
.dl-step h3 { font-size: 26px; font-weight: 600; }
.dl-step p { font-size: 17px; line-height: 1.6; color: var(--dl-dark-text); }

/* ---------- Services ---------- */
.dl-services { display: flex; flex-direction: column; gap: 56px; padding-block: var(--dl-section); scroll-margin-top: 84px; }
.dl-services__head { display: flex; flex-direction: column; gap: 16px; max-width: 760px; }
.dl-practices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dl-practice { display: flex; flex-direction: column; gap: 24px; padding: 36px; border-radius: var(--dl-radius); background: var(--dl-white); border: 1px solid var(--dl-line); }
.dl-practice__icon { width: 36px; height: 36px; color: var(--dl-purple); }
.dl-practice__intro { display: flex; flex-direction: column; gap: 8px; }
.dl-practice__intro h3 { font-size: 24px; font-weight: 600; }
.dl-practice__intro p { font-size: 16px; line-height: 1.55; color: var(--dl-muted); }
.dl-links { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--dl-line-soft); }
.dl-links a { display: flex; justify-content: space-between; align-items: center; min-height: 48px; border-bottom: 1px solid var(--dl-line-soft); font-size: 16px; font-weight: 600; }
.dl-links a.is-sub { min-height: 44px; padding-left: 16px; font-size: 15px; font-weight: 400; color: var(--dl-muted); }
.dl-links.is-flat a { font-size: 15px; font-weight: 400; color: var(--dl-muted); min-height: 44px; }
.dl-links.is-flat li:first-child a { font-size: 16px; font-weight: 600; color: var(--dl-ink); min-height: 48px; }
.dl-links a:hover, .dl-links a.is-sub:hover { color: var(--dl-purple); }

/* ---------- Platforms ---------- */
.dl-platforms { display: flex; flex-direction: column; gap: 40px; padding-bottom: var(--dl-section); }
.dl-platform-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.dl-platform { display: flex; flex-direction: column; justify-content: space-between; gap: 40px; min-height: 220px; padding: 28px; border-radius: 20px; background: var(--dl-white); border: 1px solid var(--dl-line); transition: border-color .15s; }
.dl-platform:hover { border-color: var(--dl-purple); color: var(--dl-ink); }
.dl-platform strong { font-size: 21px; font-weight: 600; line-height: 1.3; }
.dl-platform span { font-size: 15px; line-height: 1.5; color: var(--dl-muted); }
.dl-platform--feature { background: var(--dl-purple); border-color: var(--dl-purple); color: var(--dl-white); }
.dl-platform--feature:hover { color: var(--dl-white); background: #480966; }
.dl-platform--feature span { color: #EBDDF5; }

/* ---------- Blog band ---------- */
.dl-insights { background: var(--dl-band); padding-block: clamp(72px, 7.8vw, 112px); }
.dl-insights__inner { display: flex; flex-direction: column; gap: 40px; }
.dl-insights__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.dl-insights__all { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; font-weight: 600; border-bottom: 1px solid var(--dl-ink); }
.dl-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dl-post-card { display: flex; flex-direction: column; justify-content: space-between; gap: 48px; min-height: 240px; padding: 32px; border-radius: 20px; background: var(--dl-bg); }
.dl-post-card:hover { color: var(--dl-ink); box-shadow: inset 0 0 0 1px var(--dl-purple); }
.dl-post-card__cat { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--dl-purple); }
.dl-post-card__title { font-size: 22px; font-weight: 600; line-height: 1.35; }

/* ---------- CTA ---------- */
.dl-cta-wrap { padding-block: var(--dl-section); }
.dl-cta { display: flex; justify-content: space-between; align-items: center; gap: 48px; padding: clamp(40px, 5vw, 72px) clamp(28px, 5.5vw, 80px); border-radius: 32px; background: var(--dl-dark); color: var(--dl-bg); }
.dl-cta__copy { display: flex; flex-direction: column; gap: 16px; max-width: 680px; }
.dl-cta__copy h2 { font-size: clamp(32px, 3.2vw, 46px); font-weight: 600; line-height: 1.1; letter-spacing: -0.02em; }
.dl-cta__copy p { font-size: 19px; line-height: 1.55; color: var(--dl-dark-muted); }
.dl-cta__actions { display: flex; flex-direction: column; gap: 14px; min-width: 280px; }
.dl-cta__actions .dl-btn { min-height: 58px; font-size: 17px; }

/* ---------- Footer ---------- */
.dl-footer { background: var(--dl-purple); color: var(--dl-white); padding-block: 72px 48px; }
.dl-footer a { color: var(--dl-white); }
.dl-footer a:hover { color: var(--dl-purple-light); }
.dl-footer__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.dl-footer__brand { grid-column: span 4; display: flex; flex-direction: column; gap: 18px; }
.dl-footer__brand > a { display: inline-flex; align-self: flex-start; }
.dl-footer__brand img { display: block; height: 36px; width: auto; max-width: none; object-fit: contain; }
.dl-footer__brand p { font-size: 15px; line-height: 1.6; color: #E4D3F0; max-width: 360px; }
.dl-footer__col { display: flex; flex-direction: column; gap: 12px; font-size: 15px; }
.dl-footer__col--crm { grid-column: 6 / span 2; }
.dl-footer__col--data { grid-column: span 2; }
.dl-footer__col--visit { grid-column: span 3; }
.dl-footer__col h2 { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #E4D3F0; }
.dl-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.dl-footer__col address { font-style: normal; line-height: 1.5; }
.dl-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 64px; padding-top: 24px; border-top: 1px solid #7B3AA3; font-size: 14px; color: #E4D3F0; }
.dl-footer__bottom ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 28px; }
.dl-footer__bottom a { color: #E4D3F0; }

/* ---------- Inner pages & blog ---------- */
.dl-page-head { padding-block: clamp(56px, 6vw, 96px) 40px; border-bottom: 1px solid var(--dl-line); }
.dl-page-head .dl-h1 { max-width: 900px; }
.dl-page-head__meta { margin-top: 16px; font-size: 15px; color: var(--dl-muted); }
.dl-content { padding-block: 56px var(--dl-section); }
.dl-prose { max-width: 760px; font-size: 18px; line-height: 1.75; color: var(--dl-body); }
.dl-prose > * + * { margin-top: 1.2em; }
.dl-prose h2 { font-size: 30px; line-height: 1.2; font-weight: 600; letter-spacing: -0.02em; color: var(--dl-ink); margin-top: 1.8em; }
.dl-prose h3 { font-size: 22px; font-weight: 600; color: var(--dl-ink); margin-top: 1.6em; }
.dl-prose a { color: var(--dl-purple); text-decoration: underline; text-underline-offset: 3px; }
.dl-prose img { border-radius: 16px; }
.dl-prose blockquote { margin-inline: 0; padding-left: 20px; border-left: 3px solid var(--dl-purple); color: var(--dl-ink); }
.dl-prose pre { overflow-x: auto; padding: 20px; border-radius: 14px; background: var(--dl-dark); color: var(--dl-bg); font-size: 15px; }
.dl-prose table { width: 100%; border-collapse: collapse; }
.dl-prose th, .dl-prose td { padding: 10px 12px; border-bottom: 1px solid var(--dl-line); text-align: left; }
.dl-featured-img { margin-bottom: 40px; border-radius: 24px; overflow: hidden; max-width: 1000px; }
.dl-archive-grid { padding-block: 56px 0; }
.dl-pagination { display: flex; gap: 8px; flex-wrap: wrap; padding-block: 48px var(--dl-section); }
.dl-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; min-height: 46px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--dl-line); font-weight: 600; }
.dl-pagination .current { background: var(--dl-purple); border-color: var(--dl-purple); color: var(--dl-white); }
.dl-empty { padding-block: 40px; color: var(--dl-muted); }
.alignwide { max-width: 1000px; }
.alignfull { max-width: none; }
.wp-caption-text, figcaption { font-size: 14px; color: var(--dl-muted); margin-top: 8px; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
	.dl-platform-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.dl-practices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
	.dl-hero { grid-template-columns: minmax(0, 1fr); gap: 48px; }
	.dl-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
	.dl-ai__head, .dl-ai__body { grid-column: 1 / -1; padding-top: 0; }
	.dl-approach__head { flex-direction: column; align-items: flex-start; gap: 20px; }
	.dl-steps, .dl-post-grid { grid-template-columns: minmax(0, 1fr); }
	.dl-cta { flex-direction: column; align-items: stretch; }
	.dl-cta__actions { min-width: 0; }
	.dl-footer__brand { grid-column: 1 / -1; }
	.dl-footer__col--crm, .dl-footer__col--data { grid-column: span 6; }
	.dl-footer__col--visit { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
	.dl-benefits, .dl-practices, .dl-platform-grid { grid-template-columns: minmax(0, 1fr); }
	.dl-platform { min-height: 0; gap: 20px; }
	.dl-flow__tag { font-size: 12px; padding: 8px 10px; }
	.dl-footer__bottom { flex-direction: column; align-items: flex-start; }
	.dl-insights__head { flex-direction: column; align-items: flex-start; }
	.dl-step, .dl-practice { padding: 28px; }
}

/* ---------- Inside page banner ---------- */
.dl-page-hero { position: relative; overflow: hidden; background: var(--dl-dark); color: var(--dl-bg); }
.dl-page-hero__inner { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 24px; padding-block: clamp(56px, 6vw, 96px); max-width: 1440px; }
.dl-page-hero__title { max-width: 820px; font-size: clamp(36px, 4vw, 58px); font-weight: 600; line-height: 1.08; letter-spacing: -0.03em; }
.dl-page-hero__intro { max-width: 640px; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.6; color: var(--dl-dark-muted); }
.dl-page-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; }
.dl-page-hero__art { position: absolute; right: clamp(-120px, -4vw, 0px); top: 50%; transform: translateY(-50%); width: min(520px, 42vw); color: #B07BDC; opacity: .9; pointer-events: none; }
.dl-page-hero.is-compact .dl-page-hero__inner { padding-block: 20px; }
.dl-page-hero.is-light { background: var(--dl-band); color: var(--dl-ink); border-bottom: 1px solid var(--dl-line); }
.dl-page-hero.is-light .dl-crumbs a, .dl-page-hero.is-light .dl-crumbs li { color: var(--dl-muted); }
.dl-page-hero.is-light .dl-crumbs a:hover { color: var(--dl-purple); }

.dl-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 0; font-size: 14px; }
.dl-crumbs li { color: var(--dl-dark-muted); }
.dl-crumbs li + li::before { content: "/"; margin: 0 10px; opacity: .6; }
.dl-crumbs a { color: var(--dl-dark-muted); }
.dl-crumbs a:hover { color: var(--dl-white); }
.dl-crumbs [aria-current] { color: inherit; font-weight: 500; }
.dl-page-hero:not(.is-light) .dl-crumbs [aria-current] { color: var(--dl-white); }

.dl-featured-img--page { margin: 48px 0 0; }
.dl-prose--legal { font-size: 16px; }
.dl-prose--legal h2 { font-size: 24px; }

/* Classic / block content: headings inside the page body */
.dl-prose h1 { font-size: clamp(34px, 3.6vw, 52px); line-height: 1.1; font-weight: 600; letter-spacing: -0.03em; color: var(--dl-ink); }
.dl-prose ul, .dl-prose ol { padding-left: 1.2em; }
.dl-prose li::marker { color: var(--dl-purple); }
.dl-prose strong { color: var(--dl-ink); font-weight: 600; }
.dl-prose .wp-block-button__link, .dl-prose input[type="submit"], .dl-prose button {
	display: inline-flex; align-items: center; min-height: 52px; padding: 0 26px; border: 0; border-radius: 999px;
	background: var(--dl-purple); color: var(--dl-white); font: 600 16px/1 'Poppins', sans-serif; text-decoration: none; cursor: pointer;
}
.dl-prose input[type="text"], .dl-prose input[type="email"], .dl-prose input[type="tel"], .dl-prose textarea, .dl-prose select {
	width: 100%; min-height: 50px; padding: 12px 16px; border: 1px solid #CDC6D8; border-radius: 12px; background: var(--dl-white); font: 400 16px 'Poppins', sans-serif; color: var(--dl-ink);
}
.dl-prose textarea { min-height: 160px; }
.dl-prose input:focus, .dl-prose textarea:focus, .dl-prose select:focus { outline: 3px solid rgba(92, 11, 132, .25); border-color: var(--dl-purple); }

/* ---------- Related services ---------- */
.dl-related { display: flex; flex-direction: column; gap: 32px; padding-top: var(--dl-section); }
.dl-related__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.dl-related__grid .dl-platform { min-height: 170px; }
.dl-related__more { font-size: 15px; font-weight: 500; color: var(--dl-purple) !important; }

/* ---------- Contact cards ---------- */
.dl-contact-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding-top: 56px; }
.dl-contact-card { display: flex; flex-direction: column; gap: 10px; padding: 32px; border-radius: 20px; background: var(--dl-white); border: 1px solid var(--dl-line); }
.dl-contact-card:hover { border-color: var(--dl-purple); color: var(--dl-ink); }
.dl-contact-card svg { width: 32px; height: 32px; color: var(--dl-purple); margin-bottom: 8px; }
.dl-contact-card__label { font-size: 14px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--dl-muted); }
.dl-contact-card__value { font-size: 19px; font-weight: 600; line-height: 1.45; }
.dl-page--contact + .dl-footer, .dl-page--legal + .dl-footer { margin-top: 0; }
.dl-page--contact, .dl-page--legal { padding-bottom: var(--dl-section); }

@media (max-width: 1080px) {
	.dl-related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dl-page-hero__art { opacity: .35; }
}
@media (max-width: 720px) {
	.dl-contact-cards, .dl-related__grid { grid-template-columns: minmax(0, 1fr); }
	.dl-page-hero__art { display: none; }
}

/* =====================================================================
 * Inside pages — same design language as the home page
 * ================================================================== */

/* Banner (mirrors the home hero) */
.dl-banner { border-bottom: 1px solid var(--dl-line); }
.dl-banner__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 72px; align-items: center; padding-block: clamp(48px, 6vw, 88px); }
.dl-banner__copy { display: flex; flex-direction: column; gap: 24px; }
.dl-banner__copy .dl-h1 { font-size: clamp(34px, 3.9vw, 56px); }
.dl-banner__copy .dl-lead { max-width: 560px; }
.dl-banner__copy .dl-lead + .dl-lead { margin-top: -8px; }
.dl-banner__meta { font-size: 15px; color: var(--dl-muted); }
.dl-banner .dl-crumbs li, .dl-banner .dl-crumbs a { color: var(--dl-muted); }
.dl-banner .dl-crumbs a:hover { color: var(--dl-purple); }
.dl-banner .dl-crumbs [aria-current] { color: var(--dl-ink); }
.dl-banner__visual { position: relative; border-radius: 28px; overflow: hidden; background: var(--dl-dark); aspect-ratio: 6 / 5; display: flex; align-items: center; justify-content: center; }
.dl-banner__visual img { width: 100%; height: 100%; object-fit: cover; }
.dl-banner__visual img[src$=".png"], .dl-banner__visual img[src$=".svg"], .dl-banner__visual img[src$=".webp"] { object-fit: contain; padding: 8%; background: var(--dl-band); }
.dl-banner__visual--graphic svg { position: absolute; inset: 0; width: 100%; height: 100%; }

.dl-btn-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; }

/* Sections */
.dl-sec { padding-block: var(--dl-section); }
.dl-sec + .dl-sec:not(.is-band):not(.is-dark) { padding-top: 0; }
.dl-sec.is-band + .dl-sec, .dl-sec.is-dark + .dl-sec { padding-top: var(--dl-section); }
.dl-sec.is-band { background: var(--dl-band); }
.dl-sec.is-dark { background: var(--dl-dark); color: var(--dl-bg); }
.dl-sec__inner { display: flex; flex-direction: column; gap: 48px; }
.dl-sec__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; }
.dl-sec__head-copy { display: flex; flex-direction: column; gap: 20px; max-width: 760px; }
.dl-sec__head.has-image { align-items: center; }
.dl-sec__media { margin: 0; flex: 0 0 40%; border-radius: 22px; overflow: hidden; }
.dl-sec__text { display: flex; flex-direction: column; gap: 16px; font-size: 18px; line-height: 1.7; color: var(--dl-body); }
.dl-sec__text a:not(.dl-btn) { color: var(--dl-purple); text-decoration: underline; text-underline-offset: 3px; }
.dl-sec.is-dark .dl-sec__text { color: var(--dl-dark-text); }
.dl-sec.is-dark .dl-sec__text a:not(.dl-btn) { color: var(--dl-purple-light); }
.dl-subhead { display: block; margin-top: 8px; font-size: 20px; font-weight: 600; color: var(--dl-ink); }

.dl-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.dl-list li { position: relative; padding-left: 30px; }
.dl-list li::before { content: ""; position: absolute; left: 0; top: .45em; width: 18px; height: 18px; border-radius: 50%; background: var(--dl-purple) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat; }
ol.dl-list { counter-reset: dl; }
ol.dl-list li::before { counter-increment: dl; content: counter(dl); background: var(--dl-purple); color: #fff; font-size: 11px; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.dl-sec.is-dark .dl-list li::before { background-color: #7A2DB0; }

.dl-inline-img { margin: 8px 0; border-radius: 18px; overflow: hidden; }
.dl-raw { max-width: 100%; overflow-x: auto; }
.dl-raw table { width: 100%; border-collapse: collapse; font-size: 16px; }
.dl-raw th, .dl-raw td { padding: 12px 14px; border-bottom: 1px solid var(--dl-line); text-align: left; }
.dl-raw iframe { width: 100%; min-height: 360px; border: 0; border-radius: 18px; }

/* Split text section (like the home "AI-powered CRM" block) */
.dl-split { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: start; }
.dl-split__heading { grid-column: span 5; }
.dl-split__heading .dl-h2 { margin: 0; }
.dl-split__body { grid-column: 7 / span 6; }
.dl-split.is-stacked .dl-split__heading, .dl-split.is-stacked .dl-split__body { grid-column: 1 / -1; max-width: 900px; }
.dl-split.is-stacked { row-gap: 24px; }
.dl-split.has-image { align-items: center; gap: 72px 24px; }
.dl-split__copy { grid-column: span 6; display: flex; flex-direction: column; gap: 24px; }
.dl-split__media { grid-column: 8 / span 5; margin: 0; border-radius: 24px; overflow: hidden; background: var(--dl-white); border: 1px solid var(--dl-line); }
.dl-sec--text:nth-of-type(even) .dl-split.has-image .dl-split__copy { order: 2; grid-column: 7 / span 6; }
.dl-sec--text:nth-of-type(even) .dl-split.has-image .dl-split__media { order: 1; grid-column: 1 / span 5; }

/* Card grids (like the home benefits / approach cards) */
.dl-cards { display: grid; gap: 20px; }
.dl-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dl-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dl-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dl-card { display: flex; flex-direction: column; gap: 14px; padding: 32px; border-radius: var(--dl-radius); background: var(--dl-white); border: 1px solid var(--dl-line); }
.dl-card__mark { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 14px; background: var(--dl-band); color: var(--dl-purple); }
.dl-card__mark svg { width: 22px; height: 22px; }
.dl-card__media { margin: -32px -32px 8px; aspect-ratio: 16 / 10; overflow: hidden; background: var(--dl-band); }
.dl-card__media img { width: 100%; height: 100%; object-fit: cover; }
.dl-card__title { font-size: 21px; font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; }
.dl-card__text { display: flex; flex-direction: column; gap: 12px; font-size: 16px; line-height: 1.6; color: var(--dl-muted); }
.dl-card__text .dl-btn-row { margin-top: auto; }
.dl-cards.is-compact .dl-card { padding: 24px 26px; justify-content: center; min-height: 110px; }
.dl-cards.is-compact .dl-card__title { font-size: 18px; }

.dl-sec.is-dark .dl-card { background: var(--dl-dark-card); border-color: var(--dl-dark-line); }
.dl-sec.is-dark .dl-card__title { color: var(--dl-bg); }
.dl-sec.is-dark .dl-card__text { color: var(--dl-dark-text); }
.dl-sec.is-dark .dl-card__mark { background: #34184A; color: var(--dl-purple-light); }
.dl-sec.is-dark .dl-btn--ghost { border-color: #4A2E63; color: var(--dl-bg); }
.dl-sec.is-dark .dl-subhead { color: var(--dl-bg); }

/* Contact page */
.dl-contact { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 48px; align-items: start; }
.dl-contact__main .dl-sec { padding: 0 0 48px; background: none; color: inherit; }
.dl-contact__main .dl-container { padding-inline: 0; }
.dl-contact__main .dl-split__heading, .dl-contact__main .dl-split__body { grid-column: 1 / -1; }
.dl-contact__main .dl-raw { padding: 32px; border-radius: var(--dl-radius); background: var(--dl-white); border: 1px solid var(--dl-line); }
.dl-contact__side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 108px; }
.dl-contact__side .dl-contact-card { padding: 26px; }
.dl-raw input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), .dl-raw textarea, .dl-raw select {
	width: 100%; min-height: 50px; padding: 12px 16px; border: 1px solid #CDC6D8; border-radius: 12px; background: var(--dl-white); font: 400 16px 'Poppins', sans-serif; color: var(--dl-ink);
}
.dl-raw textarea { min-height: 160px; }
.dl-raw input[type="submit"], .dl-raw button, .dl-raw .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; border: 0; border-radius: 999px;
	background: var(--dl-purple) !important; color: #fff !important; font: 600 16px/1 'Poppins', sans-serif; cursor: pointer;
}
.dl-raw label { font-weight: 500; font-size: 15px; }

/* Article */
.dl-prose--article { margin-inline: auto; }

@media (max-width: 1080px) {
	.dl-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dl-cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dl-contact { grid-template-columns: minmax(0, 1fr); }
	.dl-contact__side { position: static; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
	.dl-banner__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.dl-banner__visual { aspect-ratio: 16 / 10; }
	.dl-sec__head { flex-direction: column; align-items: flex-start; }
	.dl-sec__media { flex-basis: auto; width: 100%; }
	.dl-split__heading, .dl-split__body, .dl-split__copy, .dl-split__media,
	.dl-sec--text:nth-of-type(even) .dl-split.has-image .dl-split__copy,
	.dl-sec--text:nth-of-type(even) .dl-split.has-image .dl-split__media { grid-column: 1 / -1; order: 0; }
	.dl-split.has-image { gap: 32px; }
}
@media (max-width: 640px) {
	.dl-cards--2, .dl-cards--3, .dl-cards--4 { grid-template-columns: minmax(0, 1fr); }
	.dl-contact__side { grid-template-columns: minmax(0, 1fr); }
	.dl-card { padding: 26px; }
	.dl-card__media { margin: -26px -26px 6px; }
}

/* Icons that come from the page content (line icons, logos) */
.dl-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; padding: 12px; border-radius: 18px; background: var(--dl-white); border: 1px solid var(--dl-line); }
.dl-card__icon img { width: 100%; height: 100%; object-fit: contain; }
.dl-sec.is-dark .dl-card__icon { border-color: transparent; }
.dl-cards.is-compact .dl-card { flex-direction: row; align-items: center; gap: 18px; }
.dl-cards.is-compact .dl-card__icon { width: 60px; height: 60px; padding: 10px; flex-shrink: 0; }
.dl-split__heading { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }

/* Card icons: shown whole, never cropped */
.dl-card__icon { width: 88px; height: 88px; padding: 14px; }
.dl-cards.is-compact .dl-card__icon { width: 60px; height: 60px; padding: 10px; }
.dl-card__icon img { max-width: 100%; max-height: 100%; }
/* Safety net: graphics used as card pictures are never cropped */
.dl-card__media img[src$=".png"], .dl-card__media img[src$=".svg"], .dl-card__media img[src$=".webp"], .dl-card__media img[src$=".gif"],
.dl-split__media img[src$=".png"], .dl-split__media img[src$=".svg"], .dl-split__media img[src$=".webp"] { object-fit: contain; padding: 8%; }
.dl-split__media img { width: 100%; height: auto; display: block; }

/* ===== v1.5 layout refinements ===== */
.dl-sec { padding-block: clamp(56px, 6vw, 96px); }
.dl-sec--title { padding-bottom: 0 !important; }
.dl-sec--title + .dl-sec, .dl-sec.is-after-title { padding-top: 32px !important; }
.dl-sec--title + .dl-sec.is-band, .dl-sec--title + .dl-sec.is-dark { padding-top: clamp(56px, 6vw, 96px) !important; }
.dl-sec--title:has(+ .dl-sec.is-band), .dl-sec--title:has(+ .dl-sec.is-dark) { padding-bottom: 32px !important; }
.dl-split.has-image { align-items: center; }
.dl-split__body { align-self: start; }

/* Pictures: photos fill their frame; logos and drawings are shown whole */
.dl-split__media { aspect-ratio: 4 / 3; }
.dl-split__media img { width: 100%; height: 100%; object-fit: cover; }
.dl-split__media.is-graphic { background: var(--dl-white); }
.dl-split__media.is-graphic img { object-fit: contain; padding: 6%; }
.dl-sec__media.is-graphic img { object-fit: contain; padding: 6%; background: var(--dl-white); }

/* Card layout */
.dl-card__body { display: flex; flex-direction: column; gap: 12px; }
.dl-card__media { aspect-ratio: 16 / 10; }
.dl-cards.is-compact .dl-card__body { gap: 4px; }

/* Logo grids (e.g. "Technologies we use") */
.dl-cards.is-logos .dl-card { align-items: center; text-align: center; justify-content: center; gap: 16px; padding: 28px 20px; }
.dl-card__logo { display: flex; align-items: center; justify-content: center; width: 100%; height: 96px; padding: 14px 18px; border-radius: 16px; background: var(--dl-white); }
.dl-card__logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.dl-cards.is-logos .dl-card__title { font-size: 17px; }

/* Numbered steps */
.dl-steps-grid { list-style: none; margin: 0; padding: 0; counter-reset: none; }
.dl-step-card { position: relative; gap: 14px; }
.dl-step-card__num { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--dl-purple); color: var(--dl-white); font-size: 20px; font-weight: 600; flex-shrink: 0; }
.dl-step-card .dl-card__text { color: var(--dl-body); }
.dl-step-card .dl-list { gap: 8px; }
@media (min-width: 961px) {
	.dl-steps-grid.dl-cards--3 .dl-step-card:not(:nth-child(3n))::after,
	.dl-steps-grid.dl-cards--2 .dl-step-card:not(:nth-child(2n))::after {
		content: ""; position: absolute; top: 55px; right: -20px; width: 20px; border-top: 2px dashed var(--dl-purple-light);
	}
}
@media (max-width: 640px) {
	.dl-cards.is-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dl-card__logo { height: 72px; }
}
/* Space returns after a coloured band */
.dl-sec.is-dark + .dl-sec:not(.is-band):not(.is-dark),
.dl-sec.is-band + .dl-sec:not(.is-band):not(.is-dark) { padding-top: clamp(56px, 6vw, 96px); }

/* v1.6: product-name grids (text only) */
.dl-cards.is-names .dl-card { flex-direction: row; align-items: center; gap: 14px; padding: 22px 24px; min-height: 0; }
.dl-card__dot { width: 12px; height: 12px; border-radius: 50%; background: var(--dl-purple); flex-shrink: 0; box-shadow: 0 0 0 5px var(--dl-band); }
.dl-sec.is-dark .dl-card__dot { background: var(--dl-purple-light); box-shadow: 0 0 0 5px #34184A; }
.dl-cards.is-names .dl-card__title { font-size: 17px; }
@media (max-width: 640px) { .dl-cards.is-names { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Light (white) icons sit on a purple tile */
.dl-card__icon.is-light { background: var(--dl-purple); border-color: var(--dl-purple); }

/* v1.7: white drawings are recoloured in brand purple */
.dl-recolor { display: block; width: 100%; max-width: 100%; max-height: 100%; background-color: var(--dl-purple);
	-webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.dl-card__icon .dl-recolor { width: 100%; height: 100%; aspect-ratio: auto !important; }
.dl-split__media .dl-recolor, .dl-sec__media .dl-recolor { height: 100%; aspect-ratio: auto !important; }
.dl-split__media.is-graphic { background: var(--dl-band); }
.dl-inline-img .dl-recolor { max-height: 420px; margin: 0 auto; }

/* v1.7.3: call-to-action panel with the page's own form */
.dl-cta--form { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; gap: clamp(28px, 4vw, 56px); }
.dl-cta--form .dl-cta__copy { position: sticky; top: 110px; }
.dl-cta__contact { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.dl-cta__contact a { color: var(--dl-bg); font-weight: 600; font-size: 17px; }
.dl-cta__contact a:hover { color: var(--dl-purple-light); }
.dl-cta__form { background: var(--dl-white); color: var(--dl-ink); border-radius: 22px; padding: clamp(22px, 3vw, 36px); min-width: 0; }
.dl-form { overflow: visible; }
.dl-form, .dl-form * { font-family: 'Poppins', system-ui, sans-serif; }
.dl-form label, .dl-form .mf-input-label, .dl-form .ff-el-input--label label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 500; color: var(--dl-ink); }
.dl-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.dl-form textarea, .dl-form select {
	width: 100% !important; min-height: 50px; padding: 12px 16px !important; border: 1px solid #CDC6D8 !important; border-radius: 12px !important;
	background: var(--dl-white) !important; color: var(--dl-ink) !important; font-size: 16px !important; box-shadow: none !important;
}
.dl-form textarea { min-height: 140px; }
.dl-form input:focus, .dl-form textarea:focus, .dl-form select:focus { outline: 3px solid rgba(92, 11, 132, .2) !important; border-color: var(--dl-purple) !important; }
.dl-form input[type="submit"], .dl-form button[type="submit"], .dl-form .mf-btn-wraper button, .dl-form .ff-btn-submit, .dl-form .wpforms-submit, .dl-form .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px !important; border: 0 !important; border-radius: 999px !important;
	background: var(--dl-purple) !important; color: #fff !important; font-weight: 600 !important; font-size: 16px !important; cursor: pointer; width: auto;
}
.dl-form input[type="submit"]:hover, .dl-form button[type="submit"]:hover { background: #480966 !important; }
.dl-form .elementor-column, .dl-form .elementor-field-group { padding-left: 0; padding-right: 0; }
.dl-form p { margin: 0 0 14px; }
.dl-form a { color: var(--dl-purple); }
@media (max-width: 960px) {
	.dl-cta--form { grid-template-columns: minmax(0, 1fr); }
	.dl-cta--form .dl-cta__copy { position: static; }
}
.dl-form .mf-input-wrapper, .dl-form .ff-el-group, .dl-form .wpforms-field, .dl-form .elementor-field-group, .dl-form .wpcf7-form > p, .dl-form .gfield { margin-bottom: 16px; }
.dl-form a[href*="wp-admin"] { display: inline-block; margin-top: 12px; font-size: 13px; opacity: .7; }

/* Contact page + contact section on every page (original v1.1.0 layout) */
.dl-contact-embed { border-top: 1px solid var(--dl-line); }
.dl-contact-embed .dl-contact-cards { padding-bottom: var(--dl-section); }
.dl-page--contact .dl-contact-cards { padding-bottom: var(--dl-section); }
.dl-contact-embed[class*="elementor-kit-"] {
	--e-global-color-primary: #5C0B84;
	--e-global-color-secondary: #111111;
	--e-global-color-text: #2F2A38;
	--e-global-color-accent: #5C0B84;
	--e-global-typography-primary-font-family: "Poppins";
	--e-global-typography-secondary-font-family: "Poppins";
	--e-global-typography-text-font-family: "Poppins";
	--e-global-typography-accent-font-family: "Poppins";
}
