/* ==========================================================================
   Diesel Pro Tune — front-end and editor styles
   Design tokens (colors, fonts, sizes, spacing) come from theme.json.
   ========================================================================== */

:root {
	--dpt-ease: var(--wp--custom--transition, 180ms ease);
	--dpt-radius-s: var(--wp--custom--radius--small, 6px);
	--dpt-radius-m: var(--wp--custom--radius--medium, 12px);
	--dpt-header-h: 140px;
	--dpt-admin-bar: 0px;
}

.admin-bar { --dpt-admin-bar: 32px; }
@media (max-width: 782px) { .admin-bar { --dpt-admin-bar: 46px; } }

html { scroll-padding-top: calc(var(--dpt-header-h) + var(--dpt-admin-bar) + 1rem); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

::selection { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

img { height: auto; }

/* Accessibility helpers */
.screen-reader-text,
.dpt-skip-link:not(:focus) {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}
.dpt-skip-link:focus {
	position: fixed;
	top: calc(var(--dpt-admin-bar) + 0.5rem);
	left: 0.5rem;
	z-index: 1000;
	padding: 0.75rem 1.25rem;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	border-radius: var(--dpt-radius-s);
	text-decoration: none;
	font-weight: 600;
}


/* Remove root block gaps between header / main / footer and between stacked full-width sections. */
.wp-site-blocks > * + * { margin-block-start: 0; }
.dpt-main > .alignfull + *,
.wp-block-post-content > .alignfull + .alignfull,
.wp-block-post-content > .alignfull:first-child { margin-block-start: 0; }
.dpt-main.is-flush .wp-block-post-content > .alignfull:last-child { margin-block-end: 0; }
.dpt-main:not(.is-flush) { padding-bottom: var(--wp--preset--spacing--60); }

/* --------------------------------------------------------------------------
   Header (built in Theme Options → Header)
   Rows: .dpt-hb__row--top / --main / --bottom, each with left, center and
   right zones. Desktop and mobile layouts are both in the page; the switch
   point in responsive.css shows one of them.
   -------------------------------------------------------------------------- */

.dpt-site-header {
	position: sticky;
	top: var(--dpt-admin-bar);
	z-index: 100;
	transition: transform 0.3s ease;
}
.dpt-header > * + * { margin-block-start: 0; }

.dpt-hb {
	--dpt-hb-pad: 16px;
	--dpt-menu-gap: 36px;
	--dpt-dropdown-w: 230px;
	position: relative;
}
.dpt-hb__device { transition: box-shadow var(--dpt-ease), background-color var(--dpt-ease); }

.dpt-hb__row {
	position: relative;
	transition: background-color var(--dpt-ease), color var(--dpt-ease), max-height 0.25s ease, opacity 0.2s ease, visibility 0.25s;
}
.dpt-hb__inner {
	box-sizing: content-box;
	display: flex;
	align-items: center;
	gap: 1rem 1.5rem;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: var(--wp--style--root--padding-left, 1.25rem) var(--wp--style--root--padding-right, 1.25rem);
}
.dpt-hb.is-full-width .dpt-hb__inner { max-width: none; }
.dpt-hb__row.has-center .dpt-hb__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}
.dpt-hb__zone {
	display: flex;
	align-items: center;
	gap: 0.75rem 1.25rem;
	min-width: 0;
}
.dpt-hb__zone--left { flex: 1 1 auto; justify-content: flex-start; }
.dpt-hb__zone--center { justify-content: center; }
.dpt-hb__zone--right { flex: 1 1 auto; justify-content: flex-end; }
.dpt-hb__row.has-menu:not(.has-center) .dpt-hb__zone:not(.has-menu) { flex: 0 0 auto; }
.dpt-hb__item { display: flex; align-items: center; min-width: 0; }
.dpt-hb__item--menu,
.dpt-hb__item--menu_2 { min-width: 0; }

/* Top row */
.dpt-hb__row--top {
	background-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.02em;
	max-height: 8rem;
}
.dpt-hb__row--top .dpt-hb__inner { min-height: 2.25rem; padding-block: 0.3rem; }
.dpt-hb__row--top a { color: inherit; text-decoration: none; }
.dpt-hb__row--top a:hover { color: var(--wp--preset--color--primary); }
.dpt-hb__row--top p { margin: 0; }

/* Main row */
.dpt-header__main {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}
.dpt-hb__row--main .dpt-hb__inner { padding-block: var(--dpt-hb-pad); transition: padding var(--dpt-ease); }

/* Bottom row */
.dpt-header__bottom {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	max-height: 14rem;
}
.dpt-hb__row--bottom .dpt-hb__inner { padding-block: 0.15rem; }

.dpt-hb.has-row-borders .dpt-header__main,
.dpt-hb.has-row-borders .dpt-header__bottom { border-bottom: 1px solid var(--wp--preset--color--border); }

/* Logo */
.dpt-header__brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.15rem;
	text-align: center;
}
.dpt-hb__zone--left .dpt-header__brand { align-items: flex-start; text-align: left; }
.dpt-hb__zone--right .dpt-header__brand { align-items: flex-end; text-align: right; }
.dpt-header__brand .wp-block-site-title { margin: 0; line-height: 1; }
.dpt-header__brand .wp-block-site-title a { color: inherit; text-decoration: none; }
.dpt-header__brand .wp-block-site-tagline { margin: 0; opacity: 0.75; font-size: var(--wp--preset--font-size--x-small); }
.dpt-header__brand .wp-block-site-logo { line-height: 0; }
.dpt-header__brand .wp-block-site-logo img {
	width: var(--dpt-logo-w, 220px) !important;
	height: auto;
	max-height: none;
	transition: width var(--dpt-ease);
}
.dpt-hb__mobile .dpt-header__brand .wp-block-site-logo img,
.dpt-hb__mobile .dpt-header__brand .dpt-logo-light { width: var(--dpt-logo-mw, 150px) !important; }
.dpt-hb__mobile .dpt-header__brand .wp-block-site-title { font-size: 1.35rem; }
.dpt-hb__mobile .dpt-header__brand .wp-block-site-tagline { display: none; }

/* Scrolling: shadow, shrink, collapsing rows, hide while scrolling down */
.dpt-scrolled:not(.dpt-no-sticky) .dpt-hb__device { box-shadow: 0 6px 24px rgba(21, 24, 28, 0.08); }
.dpt-scrolled:not(.dpt-no-shrink) .dpt-hb__row--main .dpt-hb__inner { padding-block: calc(var(--dpt-hb-pad) * 0.45); }
.dpt-scrolled:not(.dpt-no-shrink) .dpt-hb__desktop .dpt-header__brand .wp-block-site-logo img { width: calc(var(--dpt-logo-w, 220px) * 0.7) !important; }
.dpt-scrolled:not(.dpt-no-sticky).dpt-sticky-rows--main_bottom .dpt-hb__row--top,
.dpt-scrolled:not(.dpt-no-sticky).dpt-sticky-rows--main .dpt-hb__row--top,
.dpt-scrolled:not(.dpt-no-sticky).dpt-sticky-rows--main .dpt-hb__row--bottom {
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	border-width: 0;
}
.dpt-hide-on-scroll.dpt-scroll-down .dpt-site-header { transform: translateY(-100%); }

/* Transparent header over a hero */
.dpt-site-header.is-overlay {
	position: fixed;
	left: 0;
	right: 0;
}
.dpt-site-header.is-overlay ~ .dpt-main { margin-block-start: 0; }
.dpt-header.is-transparent { color: var(--wp--preset--color--base); }
.dpt-header.is-transparent .dpt-hb__row {
	background-color: transparent !important;
	color: inherit;
	border-color: rgba(255, 255, 255, 0.14);
}
.dpt-header.is-transparent .dpt-hb__row--top { border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.dpt-scrolled:not(.dpt-no-sticky) .dpt-header.is-transparent .dpt-hb__device {
	background-color: rgba(21, 24, 28, 0.94);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	backdrop-filter: saturate(140%) blur(10px);
}
.dpt-scrolled .dpt-header.is-transparent .dpt-hb__row--top { border-color: transparent; }

/* Icon buttons (menu button, search, account) */
.dpt-hb-icon {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.35rem;
	border: 0;
	border-radius: var(--dpt-radius-s);
	background: none;
	color: inherit;
	font: inherit;
	text-decoration: none;
	cursor: pointer;
	line-height: 1;
}
.dpt-hb-icon:hover { color: var(--wp--preset--color--primary); }
.dpt-hb-icon .dpt-icon { width: 24px; height: 24px; flex: none; }
.dpt-hb-toggle .dpt-icon { width: 30px; height: 30px; }
.dpt-hb-icon__label { font-size: var(--wp--preset--font-size--small); font-weight: 600; }

/* Buttons and links */
.dpt-hb .dpt-header__cta { margin: 0; flex-wrap: nowrap; }
.dpt-hb .dpt-header__cta .wp-block-button__link { padding: 0.65em 1.2em; font-size: var(--wp--preset--font-size--medium); white-space: nowrap; }
.dpt-hb .is-style-outline > .wp-block-button__link { background: transparent; color: inherit; border: 2px solid currentColor; }
.dpt-hb .is-style-dark-button > .wp-block-button__link { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.dpt-header.is-transparent .is-style-dark-button > .wp-block-button__link { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }
.dpt-hb-link { color: var(--wp--preset--color--primary); font-weight: 600; text-decoration: none; white-space: nowrap; }
.dpt-hb__row--top .dpt-hb-link { color: var(--wp--preset--color--primary); }
.dpt-hb-link:hover { text-decoration: underline; }
.dpt-hb-link--plain { color: inherit; }
.dpt-hb-divider { display: block; width: 1px; height: 1.5em; background: currentColor; opacity: 0.2; }
.dpt-hb-html > :first-child { margin-top: 0; }
.dpt-hb-html > :last-child { margin-bottom: 0; }

/* Contact details */
.dpt-contact {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.dpt-contact__item { display: flex; align-items: center; }
.dpt-contact__item > a,
.dpt-contact__item { gap: 0.45rem; color: inherit; text-decoration: none; }
.dpt-contact__item > a { display: inline-flex; align-items: center; }
.dpt-contact__item > a:hover { color: var(--wp--preset--color--primary); }
.dpt-contact .dpt-icon { width: 1.05em; height: 1.05em; flex: none; opacity: 0.8; }

/* Menus ------------------------------------------------------------------ */
.dpt-menu,
.dpt-menu__sub { list-style: none; margin: 0; padding: 0; }
.dpt-menu__item { position: relative; display: flex; align-items: center; }
.dpt-menu__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	color: inherit;
	text-decoration: none;
}
.dpt-menu__icon { width: 1.15em; height: 1.15em; flex: none; }
.dpt-menu__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 0 0.1rem;
	padding: 0.25rem;
	border: 0;
	border-radius: 4px;
	background: none;
	color: inherit;
	line-height: 1;
	cursor: pointer;
}
.dpt-menu__toggle .dpt-icon { width: 0.8em; height: 0.8em; transition: transform var(--dpt-ease); }
.is-open > .dpt-menu__toggle .dpt-icon { transform: rotate(180deg); }
.no-menu-arrows .dpt-menu--header .dpt-menu__toggle:not(:focus-visible) {
	position: absolute;
	right: 0;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
}

/* Badges */
.dpt-badge {
	display: inline-block;
	padding: 0.3em 0.55em;
	border-radius: 999px;
	background: var(--wp--preset--color--primary);
	color: var(--dpt-button-text, #fff);
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1;
	text-transform: uppercase;
	vertical-align: middle;
}
.dpt-badge--dark { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.dpt-badge--green { background: #2f855a; color: #fff; }
.dpt-badge--blue { background: #2b6cb0; color: #fff; }
.dpt-badge--red { background: #c53030; color: #fff; }

/* Main menu in the header */
.dpt-menu--header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	column-gap: var(--dpt-menu-gap);
	row-gap: 0.25rem;
	font-family: var(--dpt-nav-font, var(--wp--preset--font-family--heading));
	font-size: var(--wp--preset--font-size--large);
	font-weight: var(--dpt-nav-weight, 600);
	letter-spacing: 0.05em;
	text-transform: var(--dpt-nav-case, uppercase);
}
.dpt-hb__zone--center .dpt-menu--header { justify-content: center; }
.dpt-hb__zone--right .dpt-menu--header { justify-content: flex-end; }
.dpt-menu--header > .dpt-menu__item > .dpt-menu__link { padding-block: 0.6rem; }
.dpt-menu--header > .dpt-menu__item > .dpt-menu__link:hover,
.dpt-menu--header > .dpt-menu__item > [aria-current] { color: var(--dpt-menu-hover, inherit); }

/* Link styles */
.dpt-menu-style--underline .dpt-menu--header > .dpt-menu__item > .dpt-menu__link::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.25rem;
	height: 2px;
	background: var(--dpt-menu-hover, var(--wp--preset--color--primary));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--dpt-ease);
}
.dpt-menu-style--underline .dpt-menu--header > .dpt-menu__item > .dpt-menu__link:hover::after,
.dpt-menu-style--underline .dpt-menu--header > .dpt-menu__item > [aria-current]::after,
.dpt-menu-style--underline .dpt-menu--header > .dpt-menu__item > .is-current::after { transform: scaleX(1); }

.dpt-menu-style--outline .dpt-menu--header,
.dpt-menu-style--pill .dpt-menu--header { column-gap: calc(var(--dpt-menu-gap) / 3); }
.dpt-menu-style--outline .dpt-menu--header > .dpt-menu__item > .dpt-menu__link,
.dpt-menu-style--pill .dpt-menu--header > .dpt-menu__item > .dpt-menu__link {
	padding: 0.45rem 0.85rem;
	border: 1px solid transparent;
	border-radius: var(--dpt-radius-s);
	transition: border-color var(--dpt-ease), background-color var(--dpt-ease), color var(--dpt-ease);
}
.dpt-menu-style--outline .dpt-menu--header > .dpt-menu__item > .dpt-menu__link:hover,
.dpt-menu-style--outline .dpt-menu--header > .dpt-menu__item > [aria-current],
.dpt-menu-style--outline .dpt-menu--header > .dpt-menu__item > .is-current { border-color: currentColor; }
.dpt-menu-style--pill .dpt-menu--header > .dpt-menu__item > .dpt-menu__link { border-radius: 999px; }
.dpt-menu-style--pill .dpt-menu--header > .dpt-menu__item > .dpt-menu__link:hover,
.dpt-menu-style--pill .dpt-menu--header > .dpt-menu__item > [aria-current],
.dpt-menu-style--pill .dpt-menu--header > .dpt-menu__item > .is-current {
	background: var(--dpt-menu-hover, var(--wp--preset--color--primary));
	color: var(--dpt-button-text, #fff);
}
.dpt-menu-style--divided .dpt-menu--header > .dpt-menu__item + .dpt-menu__item::before {
	content: "";
	position: absolute;
	left: calc(var(--dpt-menu-gap) / -2);
	top: 50%;
	width: 1px;
	height: 1.1em;
	background: currentColor;
	opacity: 0.25;
	transform: translateY(-50%);
}
.dpt-menu-style--divided .dpt-menu--header > .dpt-menu__item > .dpt-menu__link:hover,
.dpt-menu-style--divided .dpt-menu--header > .dpt-menu__item > [aria-current],
.dpt-menu-style--plain .dpt-menu--header > .dpt-menu__item > .dpt-menu__link:hover,
.dpt-menu-style--plain .dpt-menu--header > .dpt-menu__item > [aria-current],
.dpt-menu-style--plain .dpt-menu--header > .dpt-menu__item > .is-current { color: var(--dpt-menu-hover, var(--wp--preset--color--primary)); }

/* Top bar links */
.dpt-menu--secondary { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 1.25rem; }
.dpt-menu--secondary > .dpt-menu__item > .dpt-menu__link { padding-block: 0.2rem; opacity: 0.85; }
.dpt-menu--secondary > .dpt-menu__item > .dpt-menu__link:hover { opacity: 1; }

/* Dropdowns */
.dpt-header .dpt-menu__sub {
	position: absolute;
	top: 100%;
	left: -1rem;
	z-index: 20;
	min-width: var(--dpt-dropdown-w);
	padding: 0.4rem 0;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--dpt-radius-s);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	box-shadow: var(--wp--preset--shadow--soft);
	font-size: 1.05rem;
	text-align: left;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}
.dpt-menu--secondary .dpt-menu__sub,
.dpt-account .dpt-menu__sub { font-size: var(--wp--preset--font-size--small); }
.dpt-header .is-open > .dpt-menu__sub { opacity: 1; visibility: visible; transform: none; }
@media (hover: hover) {
	.dpt-header .has-children:hover > .dpt-menu__sub,
	.dpt-header .dpt-hb-dropdown:hover > .dpt-menu__sub { opacity: 1; visibility: visible; transform: none; }
}
.dpt-header .dpt-menu__sub .dpt-menu__item { justify-content: space-between; }
.dpt-header .dpt-menu__sub .dpt-menu__link { flex: 1; padding: 0.5rem 1.1rem; }
.dpt-header .dpt-menu__sub .dpt-menu__link:hover,
.dpt-header .dpt-menu__sub [aria-current] { color: var(--wp--preset--color--primary); }
.dpt-header .dpt-menu__sub .dpt-menu__toggle { margin-right: 0.5rem; }
.dpt-header .dpt-menu__sub .dpt-menu__toggle .dpt-icon { transform: rotate(-90deg); }
.dpt-header .dpt-menu__sub .dpt-menu__sub { top: -0.45rem; left: 100%; }
.dpt-header .opens-left > .dpt-menu__sub { left: auto; right: -1rem; }
.dpt-header .opens-left .dpt-menu__sub .dpt-menu__sub { left: auto; right: 100%; }
.dpt-header .opens-left .dpt-menu__sub .dpt-menu__toggle .dpt-icon { transform: rotate(90deg); }

.dpt-dropdown--dark .dpt-menu__sub {
	border-color: var(--wp--preset--color--contrast-2, #22262b);
	background: var(--wp--preset--color--contrast-2, #22262b);
	color: var(--wp--preset--color--base);
}
.dpt-dropdown--dark .dpt-mega__cols > li > .dpt-menu__link { border-color: rgba(255, 255, 255, 0.14); }
.dpt-dropdown--accent .dpt-menu__sub { border-top: 3px solid var(--wp--preset--color--primary); border-radius: 0 0 var(--dpt-radius-s) var(--dpt-radius-s); }
.dpt-dropdown--minimal .dpt-menu__sub { border-color: transparent; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06); }

/* Account dropdown */
.dpt-hb-dropdown { position: relative; display: flex; align-items: center; }
.dpt-hb-dropdown > .dpt-menu__toggle { margin-left: -0.2rem; }
.dpt-header .dpt-account .dpt-menu__sub { left: auto; right: 0; min-width: 200px; }

/* Mega menus */
.dpt-menu--header > .is-mega { position: static; }
.dpt-menu--header > .is-mega.mega-auto { position: relative; }
.dpt-header .dpt-mega {
	padding: 1.5rem 1.75rem;
	min-width: 0;
	font-family: var(--wp--preset--font-family--body);
	text-transform: none;
	letter-spacing: 0;
	cursor: default;
}
.dpt-header .dpt-mega.dpt-mega--auto { width: max-content; max-width: calc(100vw - 2rem); }
.dpt-header .dpt-mega.dpt-mega--wide {
	left: 50%;
	width: min(var(--wp--style--global--wide-size), calc(100vw - 2rem));
	transform: translate(-50%, 6px);
}
.dpt-header .is-open > .dpt-mega.dpt-mega--wide { transform: translate(-50%, 0); }
@media (hover: hover) {
	.dpt-header .has-children:hover > .dpt-mega.dpt-mega--wide { transform: translate(-50%, 0); }
}
.dpt-header .dpt-mega.dpt-mega--full { left: 0; right: 0; border-radius: 0; border-inline: 0; }
.dpt-mega__inner { display: flex; gap: 2rem; }
.dpt-mega__inner > .dpt-mega__cols { flex: 1; }
.dpt-header .dpt-mega .dpt-menu__sub {
	position: static;
	min-width: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font-size: inherit;
	opacity: 1;
	visibility: inherit;
	transform: none;
}
.dpt-header .dpt-mega .dpt-mega__cols {
	display: grid;
	grid-template-columns: repeat(var(--dpt-mega-cols, 4), minmax(150px, 1fr));
	gap: 1.25rem 2rem;
}
.dpt-header .dpt-mega .dpt-menu__item { display: block; }
.dpt-header .dpt-mega .dpt-menu__toggle { display: none; }
.dpt-header .dpt-mega__cols > li > .dpt-menu__link {
	display: flex;
	padding: 0 0 0.55rem;
	margin-bottom: 0.4rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
	font-family: var(--dpt-nav-font, var(--wp--preset--font-family--heading));
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: var(--dpt-nav-case, uppercase);
}
.dpt-header .dpt-mega .dpt-menu__sub .dpt-menu__link { padding: 0.3rem 0; font-size: 0.95rem; }
.dpt-mega__content { flex: 0 0 min(320px, 34%); }
.dpt-mega__content > :first-child { margin-top: 0; }

/* Search */
.dpt-search__form {
	position: relative;
	display: flex;
	align-items: center;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	padding: 2px 2px 2px 0.9rem;
	background: var(--wp--preset--color--base-2);
	color: var(--wp--preset--color--contrast);
}
.dpt-hb__row--top .dpt-search__form,
.dpt-header.is-transparent .dpt-search__form,
.dpt-drawer .dpt-search__form {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.25);
	color: inherit;
}
.dpt-hb__row--top .dpt-search__form { padding-block: 0; }
.dpt-hb__row--top .dpt-search__input { padding-block: 0.25rem; }
.dpt-hb__row--top .dpt-search__input::placeholder,
.dpt-header.is-transparent .dpt-search__input::placeholder,
.dpt-drawer .dpt-search__input::placeholder { color: rgba(255, 255, 255, 0.7); }
.dpt-search__form:focus-within { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }
.dpt-search__form .dpt-search__input {
	flex: 1;
	min-width: 0;
	width: 100%;
	margin: 0;
	padding: 0.4rem 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: inherit;
	font: inherit;
	font-size: 0.875rem;
	outline: none;
}
.dpt-search__form .dpt-search__input::-webkit-search-cancel-button { display: none; }
.dpt-search__submit {
	display: inline-flex;
	padding: 0.4rem;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: inherit;
	cursor: pointer;
}
.dpt-search__submit .dpt-icon { width: 18px; height: 18px; }
.dpt-search__form.is-loading .dpt-search__submit { opacity: 0.4; }
.dpt-search--bar .dpt-search__form { width: min(240px, 100%); }
.dpt-search--bar { min-width: 0; }
.dpt-search--icon { position: relative; }
.dpt-search__pop {
	position: absolute;
	top: calc(100% + 0.6rem);
	right: 0;
	z-index: 30;
	width: min(360px, calc(100vw - 2rem));
	padding: 0.75rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--dpt-radius-m);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	box-shadow: var(--wp--preset--shadow--soft);
}
.dpt-hb__zone--left .dpt-search__pop { right: auto; left: 0; }
.dpt-hb__mobile .dpt-search--icon { position: static; }
.dpt-hb__mobile .dpt-search__pop { top: 100%; left: 0.75rem; right: 0.75rem; width: auto; }
.dpt-hb .dpt-search__pop .dpt-search__form { background: var(--wp--preset--color--base-2); border-color: var(--wp--preset--color--border); color: var(--wp--preset--color--contrast); }
.dpt-hb .dpt-search__pop .dpt-search__input::placeholder { color: var(--wp--preset--color--muted); }

/* Live search suggestions */
.dpt-live {
	position: absolute;
	top: calc(100% + 0.4rem);
	left: 0;
	z-index: 40;
	width: max(100%, 320px);
	max-height: 70vh;
	overflow: auto;
	padding: 0.35rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--dpt-radius-m);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	box-shadow: var(--wp--preset--shadow--soft);
	font-size: var(--wp--preset--font-size--small);
	text-align: left;
	text-transform: none;
	letter-spacing: 0;
}
.dpt-hb__zone--right .dpt-search--bar .dpt-live { left: auto; right: 0; }
.dpt-search__pop .dpt-live,
.dpt-drawer .dpt-live { width: 100%; }
.dpt-live__item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.45rem;
	border-radius: var(--dpt-radius-s);
	color: inherit;
	text-decoration: none;
}
.dpt-live__item img,
.dpt-live__thumb {
	width: 44px;
	height: 44px;
	flex: none;
	border-radius: var(--dpt-radius-s);
	background: var(--wp--preset--color--base-2);
	object-fit: cover;
}
.dpt-live__text { display: flex; flex-direction: column; min-width: 0; }
.dpt-live__title { font-weight: 600; line-height: 1.3; }
.dpt-live__meta { color: var(--wp--preset--color--muted); font-size: 0.8rem; }
.dpt-live__item:hover,
.dpt-live__item.is-active,
.dpt-live__all:hover,
.dpt-live__all.is-active { background: var(--wp--preset--color--base-2); }
.dpt-live__all {
	display: block;
	margin-top: 0.25rem;
	padding: 0.6rem 0.5rem;
	border-top: 1px solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--primary);
	font-weight: 600;
	text-decoration: none;
}
.dpt-live__empty { margin: 0; padding: 0.6rem; color: var(--wp--preset--color--muted); }

/* Slide-out menu panel (mobile menu and desktop flyout) */
.dpt-drawer { position: fixed; inset: 0; z-index: 100000; }
.dpt-drawer[hidden] { display: none; }
.dpt-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 12, 14, 0.55);
	opacity: 0;
	transition: opacity 0.3s ease;
}
.dpt-drawer.is-open .dpt-drawer__backdrop { opacity: 1; }
.dpt-drawer__panel {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	width: min(380px, 88vw);
	padding: 1.1rem 1.5rem 2rem;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	box-shadow: 0 0 40px rgba(0, 0, 0, 0.3);
	transform: translateX(-100%);
	transition: transform 0.3s ease, opacity 0.25s ease;
	outline: none;
}
.dpt-drawer[data-style="right"] .dpt-drawer__panel { left: auto; right: 0; transform: translateX(100%); }
.dpt-drawer[data-style="fullscreen"] .dpt-drawer__panel {
	right: 0;
	width: auto;
	padding-inline: max(1.5rem, calc((100vw - 760px) / 2));
	opacity: 0;
	transform: none;
}
.dpt-drawer.is-open .dpt-drawer__panel { opacity: 1; transform: none; }
body.dpt-drawer-open { overflow: hidden; }
.dpt-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.dpt-drawer__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.dpt-drawer__close .dpt-icon { width: 28px; height: 28px; }
.dpt-menu--drawer { display: flex; flex-direction: column; }
.dpt-menu--drawer + .dpt-menu--drawer { border-top: 0; }
.dpt-menu--drawer .dpt-menu__item { flex-wrap: wrap; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.dpt-menu--drawer .dpt-menu__link {
	flex: 1;
	padding: 0.75rem 0;
	font-family: var(--dpt-nav-font, var(--wp--preset--font-family--heading));
	font-size: 1.5rem;
	font-weight: var(--dpt-nav-weight, 600);
	letter-spacing: 0.04em;
	text-transform: var(--dpt-nav-case, uppercase);
}
.dpt-drawer[data-style="fullscreen"] .dpt-menu--drawer > .dpt-menu__item > .dpt-menu__link { font-size: 2rem; }
.dpt-menu--drawer .dpt-menu__link:hover,
.dpt-menu--drawer [aria-current],
.dpt-menu--drawer .is-current { color: var(--wp--preset--color--primary); }
.dpt-menu--drawer .dpt-menu__toggle { padding: 0.6rem; }
.dpt-menu--drawer .dpt-menu__toggle .dpt-icon { width: 1.25rem; height: 1.25rem; }
.dpt-menu--drawer .dpt-menu__sub { display: none; flex-basis: 100%; padding: 0 0 0.6rem 1rem; }
.dpt-menu--drawer .is-open > .dpt-menu__sub { display: block; }
.dpt-menu--drawer .dpt-menu__sub .dpt-menu__item { border: 0; }
.dpt-menu--drawer .dpt-menu__sub .dpt-menu__link {
	padding: 0.4rem 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: 1.05rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	opacity: 0.85;
}
.dpt-drawer__extras { display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem; margin-top: auto; }
.dpt-drawer__extras .dpt-header__cta { margin: 0; }
.dpt-contact--drawer { flex-direction: column; align-items: flex-start; }

/* Breadcrumbs */
.dpt-breadcrumbs { margin: 0 0 0.75rem; font-size: var(--wp--preset--font-size--x-small); letter-spacing: 0.02em; }
.dpt-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 0.25rem 0.4rem; margin: 0; padding: 0; list-style: none; }
.dpt-breadcrumbs li { display: inline-flex; align-items: center; gap: 0.4rem; }
.dpt-breadcrumbs li + li::before { content: var(--dpt-crumb-sep, "›"); opacity: 0.6; }
.dpt-breadcrumbs a { color: inherit; opacity: 0.8; text-decoration: none; }
.dpt-breadcrumbs a:hover { opacity: 1; text-decoration: underline; }
.dpt-breadcrumbs [aria-current] { font-weight: 600; }

/* Search results */
.dpt-search-tabs { padding-top: var(--wp--preset--spacing--40); }
.dpt-search-tabs ul { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.dpt-search-tabs a {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.45rem 1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	color: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
}
.dpt-search-tabs a:hover { border-color: currentColor; }
.dpt-search-tabs a[aria-current] { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.dpt-search-tabs__count { font-size: 0.8em; opacity: 0.7; }
.search.dpt-search-list .dpt-card-grid.wp-block-post-template { grid-template-columns: minmax(0, 1fr) !important; gap: 1rem; }
.search.dpt-search-list .dpt-card { display: flex; align-items: stretch; overflow: hidden; }
.search.dpt-search-list .dpt-card:hover { transform: none; }
.search.dpt-search-list .dpt-card__media { flex: 0 0 200px; height: auto; margin: 0; aspect-ratio: auto !important; }
.search.dpt-search-list .dpt-card__media img { height: 100%; aspect-ratio: auto !important; }
.search.dpt-search-list .dpt-card__body { flex: 1; min-width: 0; margin: 0; }

/* --------------------------------------------------------------------------
   Typography helpers and block styles
   -------------------------------------------------------------------------- */

.dpt-eyebrow,
.is-style-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 0.25rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}
.dpt-eyebrow::before,
.is-style-eyebrow::before {
	content: "";
	width: 2rem;
	height: 2px;
	background: currentColor;
}
.has-text-align-center.dpt-eyebrow,
.has-text-align-center.is-style-eyebrow { display: flex; justify-content: center; }

.is-style-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--wp--preset--color--muted); }
.is-dark .is-style-lead, .has-contrast-background-color .is-style-lead { color: rgba(255, 255, 255, 0.8); }

.wp-block-image.dpt-lift img,
.wp-block-image.is-style-lift img {
	border-radius: var(--dpt-radius-m);
	box-shadow: var(--wp--preset--shadow--lifted);
}

ul.is-style-checks { list-style: none; padding-left: 0; }
ul.is-style-checks li { position: relative; padding-left: 2rem; margin-bottom: 0.5rem; }
ul.is-style-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.3em;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: var(--wp--preset--color--primary) 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.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / 70% no-repeat;
}

/* Buttons */
.wp-element-button,
.wp-block-button__link {
	transition: background-color var(--dpt-ease), color var(--dpt-ease), border-color var(--dpt-ease), transform var(--dpt-ease), box-shadow var(--dpt-ease);
}
.wp-block-button:not(.is-style-outline):not(.is-style-outline-light) .wp-block-button__link:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 20px color-mix(in srgb, var(--wp--preset--color--primary) 28%, transparent);
}
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: currentColor;
	border: 2px solid currentColor;
	padding: calc(0.85em - 2px) calc(1.6em - 2px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}
.wp-block-button.is-style-outline-light > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--base);
	border: 2px solid rgba(255, 255, 255, 0.85);
	padding: calc(0.85em - 2px) calc(1.6em - 2px);
}
.wp-block-button.is-style-outline-light > .wp-block-button__link:hover {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

/* Arrow link */
.dpt-arrow-link a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--wp--preset--color--primary-dark);
}
.dpt-arrow-link a::after { content: "→"; transition: transform var(--dpt-ease); }
.dpt-arrow-link a:hover::after { transform: translateX(4px); }

/* --------------------------------------------------------------------------
   Sections
   -------------------------------------------------------------------------- */

.dpt-section__head { margin-bottom: var(--wp--preset--spacing--40); }
.dpt-section__head h2 { margin-top: 0.5rem; }

.is-dark a:not(.wp-element-button),
.has-contrast-background-color a:not(.wp-element-button),
.has-contrast-2-background-color a:not(.wp-element-button) { color: inherit; }

/* Hero */
.dpt-hero.wp-block-cover {
	padding-top: calc(var(--dpt-header-h) + var(--wp--preset--spacing--40));
	padding-bottom: var(--wp--preset--spacing--60);
	align-items: center;
}
.dpt-hero .wp-block-cover__inner-container { width: 100%; }
.dpt-hero h1 { margin-block: 0.75rem 1rem; text-wrap: balance; }
.dpt-hero__lead { max-width: 38rem; color: rgba(255, 255, 255, 0.86); }
.dpt-hero .wp-block-buttons { margin-top: 2rem; gap: 0.75rem; }
.dpt-hero::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 1.75rem;
	width: 14px;
	height: 14px;
	margin-left: -7px;
	border-right: 2px solid rgba(255, 255, 255, 0.7);
	border-bottom: 2px solid rgba(255, 255, 255, 0.7);
	transform: rotate(45deg);
	z-index: 2;
}
@media (prefers-reduced-motion: no-preference) {
	.dpt-hero::after { animation: dpt-nudge 2.2s ease-in-out infinite; }
	.dpt-hero__content > * { animation: dpt-rise 700ms both cubic-bezier(0.2, 0.7, 0.2, 1); }
	.dpt-hero__content > *:nth-child(2) { animation-delay: 80ms; }
	.dpt-hero__content > *:nth-child(3) { animation-delay: 160ms; }
	.dpt-hero__content > *:nth-child(4) { animation-delay: 240ms; }
}
@keyframes dpt-nudge { 0%, 100% { transform: translateY(0) rotate(45deg); } 50% { transform: translateY(6px) rotate(45deg); } }
@keyframes dpt-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* Cards */
.dpt-card {
	position: relative;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--dpt-radius-m);
	box-shadow: var(--wp--preset--shadow--soft);
	transition: transform var(--dpt-ease), box-shadow var(--dpt-ease);
	overflow: hidden;
}
.dpt-card:hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--lifted); }
.dpt-card.is-service { padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30); }
.dpt-card.is-service h3 { margin-top: 1.25rem; }
.dpt-card.is-service::before {
	content: "";
	display: block;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: var(--dpt-radius-s);
	background-color: var(--wp--preset--color--primary);
	background-position: center;
	background-repeat: no-repeat;
	background-size: 58%;
}
.dpt-card.is-service::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 4px;
	background: var(--wp--preset--color--primary);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--dpt-ease);
}
.dpt-card.is-service:hover::after { transform: scaleX(1); }
.dpt-icon-scan::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7V5a2 2 0 0 1 2-2h2M17 3h2a2 2 0 0 1 2 2v2M21 17v2a2 2 0 0 1-2 2h-2M7 21H5a2 2 0 0 1-2-2v-2'/%3E%3Cpath d='M7 12h10'/%3E%3C/svg%3E"); }
.dpt-icon-tune::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 14l4-4'/%3E%3Cpath d='M3.34 19a10 10 0 1 1 17.32 0'/%3E%3C/svg%3E"); }
.dpt-icon-diag::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='13' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4M6 11h3l2-3 2 6 2-3h3'/%3E%3C/svg%3E"); }

/* Mail icon for inline email links */
p.dpt-icon-mail { display: flex; align-items: center; gap: 0.5rem; }
p.dpt-icon-mail::before {
	content: "";
	width: 1em;
	height: 1em;
	flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%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 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E") center / contain no-repeat;
	opacity: 0.8;
}

/* Pricing chips */
.dpt-price-row { gap: 0.75rem; }
.dpt-price {
	margin: 0;
	padding: 0.5rem 1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--dpt-radius-s);
	background: var(--wp--preset--color--base-2);
	color: var(--wp--preset--color--muted);
}
.dpt-price strong {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	color: var(--wp--preset--color--primary-dark);
	margin-right: 0.15rem;
}

/* Reasons strip */
.dpt-points { gap: var(--wp--preset--spacing--40); }
.dpt-point {
	border-top: 3px solid var(--wp--preset--color--primary);
	padding-top: 1.25rem;
}
.dpt-point h3 { margin: 0 0 0.4rem; }
.dpt-point p { margin: 0; opacity: 0.8; }

/* Newsletter band: keep buttons visible on the orange background */
.dpt-newsletter .wp-element-button,
.dpt-newsletter button,
.dpt-newsletter input[type="submit"] {
	background: var(--wp--preset--color--contrast) !important;
	color: var(--wp--preset--color--base) !important;
	border-color: var(--wp--preset--color--contrast) !important;
}
.dpt-newsletter .is-style-outline .wp-element-button:hover { background: var(--wp--preset--color--base) !important; color: var(--wp--preset--color--contrast) !important; }

/* Panels (sidebar, contact) */
.dpt-panel {
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	border-radius: var(--dpt-radius-m);
}
.dpt-panel h3 { margin-top: 0; }

/* --------------------------------------------------------------------------
   Page and post layouts
   -------------------------------------------------------------------------- */

.dpt-title-band {
	padding-block: var(--wp--preset--spacing--50);
	background-image: linear-gradient(135deg, var(--wp--preset--color--contrast-2) 0%, var(--wp--preset--color--contrast) 70%);
	position: relative;
	overflow: hidden;
}
.dpt-title-band::after {
	content: "";
	position: absolute;
	right: -4rem;
	top: 0;
	bottom: 0;
	width: 40%;
	background: repeating-linear-gradient(115deg, transparent 0 22px, rgba(255, 255, 255, 0.035) 22px 44px);
	pointer-events: none;
}
.dpt-title-band h1 { font-size: var(--wp--preset--font-size--xx-large); margin: 0; }
.dpt-title-band .dpt-post-meta { color: rgba(255, 255, 255, 0.7); margin-bottom: 0.5rem; }
.dpt-title-band .dpt-post-meta p { margin: 0; }
.dpt-title-band .wp-block-term-description { color: rgba(255, 255, 255, 0.75); margin-top: 0.75rem; }
.dpt-title-band .wp-block-search { max-width: 520px; margin-top: 1.25rem; }

.dpt-main > .wp-block-post-content,
.dpt-main > .wp-block-query,
.dpt-main > .wp-block-columns,
.dpt-main > .dpt-single-image { margin-top: var(--wp--preset--spacing--50); }
.dpt-main.is-flush > .wp-block-post-content { margin-top: 0; }

.dpt-single-image img { border-radius: var(--dpt-radius-m); }
.dpt-post-footer { margin-top: var(--wp--preset--spacing--50); }
.dpt-tags a {
	display: inline-block;
	padding: 0.2rem 0.7rem;
	border-radius: 999px;
	background: var(--wp--preset--color--base-2);
	font-size: 0.85rem;
	text-decoration: none;
}

/* Post cards in archives */
.dpt-card-grid { gap: var(--wp--preset--spacing--30); }
.dpt-card-grid .dpt-card { height: 100%; display: flex; flex-direction: column; }
.dpt-card__media { margin: 0; }
.dpt-card__media img { border-radius: 0; }
.dpt-card__body { padding: 1.25rem 1.4rem 1.5rem; }
.dpt-card__body > * { margin: 0; }
.dpt-card__body .wp-block-post-title { line-height: 1.15; }
.dpt-card__body .wp-block-post-excerpt__excerpt { margin: 0; color: var(--wp--preset--color--muted); }

/* Pagination */
.dpt-pagination { margin-top: var(--wp--preset--spacing--50); gap: 0.4rem; }
.dpt-pagination a,
.dpt-pagination .page-numbers {
	display: inline-flex;
	min-width: 2.5rem;
	height: 2.5rem;
	align-items: center;
	justify-content: center;
	padding: 0 0.75rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--dpt-radius-s);
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
}
.dpt-pagination .page-numbers.current { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.dpt-pagination a:hover { border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--primary-dark); }

.dpt-sidebar__inner { position: sticky; top: calc(var(--dpt-header-h) + var(--dpt-admin-bar) + 1rem); }
.dpt-latest { padding-left: 0; }
.dpt-latest li { padding-block: 0.6rem; border-bottom: 1px solid var(--wp--preset--color--border); list-style: none; }
.dpt-latest a { text-decoration: none; font-weight: 600; color: inherit; }

/* Forms (also tidies plugin forms such as Quform) */
:where(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="search"], input[type="password"], input[type="number"], select, textarea):not(.wp-block-search__input) {
	width: 100%;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--dpt-radius-s);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	transition: border-color var(--dpt-ease), box-shadow var(--dpt-ease);
}
:where(input, select, textarea):focus { border-color: var(--wp--preset--color--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--primary) 18%, transparent); outline: none; }

.wp-block-search__input { border-radius: var(--dpt-radius-s); }

details.wp-block-details {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--dpt-radius-s);
	padding: 0.9rem 1.1rem;
}
details.wp-block-details summary { font-weight: 600; cursor: pointer; }
details.wp-block-details + details.wp-block-details { margin-top: 0.75rem; }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.dpt-footer { font-size: var(--wp--preset--font-size--small); }
.dpt-footer a { color: rgba(255, 255, 255, 0.75); text-decoration: none; }
.dpt-footer a:hover { color: var(--wp--preset--color--primary); }
.dpt-footer__title { font-size: var(--wp--preset--font-size--x-large); margin-bottom: 0.75rem; }
.dpt-footer__title a { color: var(--wp--preset--color--base); }
.dpt-footer__heading {
	font-size: var(--wp--preset--font-size--medium);
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--base);
	margin-bottom: 1rem;
}
.dpt-footer__muted { color: rgba(255, 255, 255, 0.68); }
.dpt-footer .wp-block-navigation { font-family: inherit; font-size: inherit; font-weight: 400; letter-spacing: 0; text-transform: none; }
.dpt-footer__rule { border-color: rgba(255, 255, 255, 0.12) !important; margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20); }
.dpt-footer__legal { color: rgba(255, 255, 255, 0.55); }
.dpt-footer__legal p { margin: 0; }
.dpt-footer .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--base); }
.dpt-footer .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); }

/* --------------------------------------------------------------------------
   Flatsome builder content (fallback rendering until pages are rebuilt)
   -------------------------------------------------------------------------- */

.dpt-fs-section,
.dpt-fs-banner {
	position: relative;
	background-size: cover;
	background-position: center;
	padding-block: var(--wp--preset--spacing--50);
}
.dpt-fs-section__inner,
.dpt-fs-banner__inner {
	position: relative;
	z-index: 1;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: var(--wp--style--root--padding-left);
}
.dpt-fs-overlay { position: absolute; inset: 0; pointer-events: none; }
.dpt-fs-banner { display: flex; align-items: center; color: var(--wp--preset--color--base); overflow: hidden; }
.dpt-fs-banner__inner { width: 100%; }
.dpt-fs-banner__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dpt-fs-banner h1, .dpt-fs-banner h2, .dpt-fs-banner h3 { color: inherit; }
.dpt-site-header.is-overlay ~ .dpt-main .dpt-fs-banner:first-child { padding-top: calc(var(--dpt-header-h) + var(--wp--preset--spacing--30)); }
.dpt-fs-textbox { margin-inline: auto; }
.dpt-fs-row {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--40);
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}
.dpt-fs-row.is-v_align-middle,
.dpt-fs-row.is-v_align-center { align-items: center; }
.dpt-fs-row.is-v_align-bottom { align-items: end; }
.dpt-fs-row.is-style-collapse { gap: 0; }
.dpt-fs-row + .dpt-fs-row { margin-top: var(--wp--preset--spacing--40); }
.dpt-fs-col { grid-column: span var(--dpt-span-md, 12); min-width: 0; }
.dpt-fs-col > :first-child { margin-top: 0; }
.dpt-fs-image { margin: 0; }
.dpt-fs-image img { display: block; width: 100%; border-radius: var(--dpt-radius-s); }
.dpt-fs-buttons { margin-block: 1rem; }
.dpt-fs-slider { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; overflow-x: auto; scroll-snap-type: x mandatory; }
.dpt-fs-slider > * { scroll-snap-align: start; }
.dpt-fs-box { padding: 1.25rem; }
.dpt-fs-box__link { color: inherit; text-decoration: none; }
.dpt-fs-section.is-dark, .dpt-fs-section.is-dark a:not(.wp-element-button) { color: var(--wp--preset--color--base); }
@media (min-width: 850px) {
	.dpt-fs-col { grid-column: span var(--dpt-span, 12); }
	.dpt-fs-show-for-small { display: none; }
}
@media (max-width: 549px) {
	.dpt-fs-col { grid-column: 1 / -1; }
	.dpt-fs-hide-for-small { display: none; }
}


/* ==========================================================================
   Theme Options
   ========================================================================== */

/* Light logo for dark / transparent headers */
.dpt-logo-light { display: none; }
.dpt-has-light-logo .dpt-header.is-transparent .custom-logo { display: none; }
.dpt-has-light-logo .dpt-header.is-transparent .dpt-logo-light { display: block; }
.dpt-header__brand .wp-block-site-logo .dpt-logo-light {
	width: var(--dpt-logo-w, 220px);
	height: auto;
	transition: width var(--dpt-ease);
}
.dpt-scrolled:not(.dpt-no-shrink) .dpt-header__brand .dpt-logo-light { width: calc(var(--dpt-logo-w, 220px) * 0.7); }

/* Sticky off */
.dpt-no-sticky .dpt-site-header { position: relative; top: auto; }
.dpt-no-sticky .dpt-site-header.is-overlay { position: absolute; top: var(--dpt-admin-bar); }
.dpt-no-sticky.dpt-scrolled .dpt-header.is-transparent .dpt-header__main { background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
.dpt-no-sticky.dpt-scrolled .dpt-header__main { box-shadow: none; }

/* Phone link icon */
p.dpt-icon-phone { display: flex; align-items: center; gap: 0.5rem; }
p.dpt-icon-phone::before {
	content: "";
	width: 1em;
	height: 1em;
	flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%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 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") center / contain no-repeat;
	opacity: 0.8;
}
.dpt-topbar__contact { gap: 1.5rem; }


/* Social icons */
.dpt-social.wp-block-social-links { gap: 0.6rem; margin: 0; }
.dpt-social .wp-social-link { color: inherit; }
.dpt-social .wp-social-link a { padding: 0.15rem; opacity: 0.75; transition: opacity var(--dpt-ease), transform var(--dpt-ease); }
.dpt-social .wp-social-link a:hover { opacity: 1; transform: translateY(-1px); }
.dpt-social--footer { margin-top: 1.25rem !important; }
.dpt-social--footer.has-small-icon-size { font-size: 20px; }

/* Blog columns */
@media (min-width: 900px) {
	.dpt-card-grid.wp-block-post-template { grid-template-columns: repeat(var(--dpt-blog-cols, 3), minmax(0, 1fr)) !important; }
}

/* --------------------------------------------------------------------------
   Motion preferences
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.dpt-hero video { display: none; }
}

/* Dark section style for groups and columns */
.is-style-dark {
	background-color: var(--dpt-dark-section, var(--wp--preset--color--contrast-2));
	color: var(--wp--preset--color--base);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
}
.is-style-dark :where(h1, h2, h3, h4, h5, h6) { color: inherit; }
.is-style-dark a:not(.wp-element-button) { color: inherit; }
.is-style-dark a:not(.wp-element-button):hover { color: var(--wp--preset--color--primary); }
.is-style-dark .is-style-lead { color: color-mix(in srgb, var(--wp--preset--color--base) 80%, transparent); }
.is-style-dark .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--base); border-color: currentColor; }
.is-style-dark :where(input, select, textarea) { background-color: color-mix(in srgb, var(--wp--preset--color--base) 8%, transparent); color: inherit; border-color: color-mix(in srgb, var(--wp--preset--color--base) 25%, transparent); }
