/* xDoah Engineering home page. Everything is scoped under .dh. */
.dh {
	--ink: #0b1220;
	--ink-2: #131d2f;
	--ink-3: #1c2a40;
	--steel: #4a5e7a;
	--paper: #ffffff;
	--tint: #f3f6f9;
	--line: #dde4ec;
	--text: #1d2635;
	--muted: #556274;
	--muted-d: #a9b6c8;
	--blue: #1e5aa8;
	--blue-l: #6ea8ff;
	--spark: #f2711c;
	--spark-h: #ff8a3d;
	--spark-t: #b4500c;
	--r: 14px;
	--wrap: 1240px;
	--f-h: "Archivo", "Arial Narrow", Arial, sans-serif;
	--f-b: "IBM Plex Sans", "Segoe UI", Roboto, Arial, sans-serif;
	--f-m: "IBM Plex Mono", ui-monospace, Consolas, monospace;
	font-family: var(--f-b);
	font-size: 16px;
	line-height: 1.6;
	color: var(--text);
	background: var(--paper);
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
body.dh-body { margin: 0; background: #0b1220; }
/* Desktop renders at 90% so the layout feels less oversized on laptop screens. */
@media (min-width: 1081px) { .dh { zoom: .9; } }

/* scoped reset: (0,1,0) beats theme element rules, ties with components (declared later) */
.dh :where(*, *::before, *::after) { box-sizing: border-box; }
.dh :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, table) { margin: 0; padding: 0; }
.dh :where(ul, ol) { list-style: none; }
.dh :where(a) { color: inherit; text-decoration: none; }
.dh :where(img, svg) { display: block; max-width: 100%; }
.dh :where(button, input, select, textarea) { font: inherit; color: inherit; }
.dh :where(h1, h2, h3) { font-family: var(--f-h); line-height: 1.12; letter-spacing: -.01em; }
.dh :where(a, button, input, select, textarea):focus-visible { outline: 3px solid var(--spark); outline-offset: 2px; border-radius: 6px; }

.dh-wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 16px; }
@media (min-width: 700px) { .dh-wrap { padding: 0 28px; } }
.dh-ico { width: 20px; height: 20px; flex: none; }
.dh-center { text-align: center; margin-top: 40px; }
.dh :where(section[id]) { scroll-margin-top: 70px; }
.dh-skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--spark); color: var(--ink); padding: 10px 16px; border-radius: 8px; font-weight: 600; }
.dh-skip:focus { left: 8px; }

/* buttons */
.dh-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 10px 20px; border-radius: 10px; border: 1.5px solid transparent; font-family: var(--f-h); font-weight: 700; font-size: 15px; letter-spacing: .01em; cursor: pointer; transition: background .2s, border-color .2s, color .2s, transform .2s; white-space: nowrap; }
.dh-btn .dh-ico { width: 18px; height: 18px; transition: transform .2s; }
.dh-btn:hover .dh-ico { transform: translateX(3px); }
.dh-btn--lg { min-height: 54px; padding: 12px 26px; font-size: 16px; }
.dh-btn--block { width: 100%; }
.dh-btn--spark { background: var(--spark); color: var(--ink); }
.dh-btn--spark:hover { background: var(--spark-h); }
.dh-btn--ghost { border-color: rgba(255,255,255,.35); color: #fff; }
.dh-btn--ghost:hover { border-color: #fff; background: rgba(255,255,255,.06); }
.dh-btn--ink { background: var(--ink); color: #fff; }
.dh-btn--ink:hover { background: var(--blue); }

/* kicker / headings */
.dh-kicker { display: inline-flex; align-items: center; gap: 10px; font-family: var(--f-m); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); margin-bottom: 14px; }
.dh-kicker::before { content: ""; width: 26px; height: 2px; background: var(--spark); }
.dh-kicker--dark { color: var(--blue-l); }
.dh-kicker__dot { display: none; }
.dh-h2 { font-size: clamp(28px, 3.6vw, 44px); font-weight: 800; font-stretch: 105%; color: var(--ink); }
.dh-lead { margin-top: 16px; font-size: 17px; color: var(--muted); max-width: 640px; }
.dh-head { margin-bottom: 44px; }
.dh-head--center { text-align: center; }
.dh-head--center .dh-lead { margin-left: auto; margin-right: auto; }
.dh-head--row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; }
.dh-sec { padding: 88px 0; background: var(--paper); }
.dh-sec--tint { background: var(--tint); }
.dh-sec--ink { background: var(--ink); color: #dfe6f0; }
.dh-sec--ink .dh-h2 { color: #fff; }
.dh-sec--ink .dh-lead { color: var(--muted-d); }
@media (max-width: 700px) { .dh-sec { padding: 64px 0; } .dh-head { margin-bottom: 32px; } }

/* topbar + header */
.dh-topbar { background: var(--ink); color: var(--muted-d); font-size: 13px; border-bottom: 1px solid rgba(255,255,255,.06); }
.dh-topbar__in { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 38px; }
.dh-topbar__tag { font-family: var(--f-m); letter-spacing: .04em; }
.dh-topbar__links { display: flex; gap: 22px; }
.dh-topbar__links a, .dh-topbar__links span { display: inline-flex; align-items: center; gap: 6px; }
.dh-topbar__links a:hover { color: #fff; }
.dh-topbar__links .dh-ico { width: 15px; height: 15px; color: var(--spark); }
@media (max-width: 860px) { .dh-topbar__links { display: none; } }

.dh-header { position: sticky; top: 0; z-index: 50; background: rgba(11,18,32,.94); backdrop-filter: saturate(1.4) blur(10px); -webkit-backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid rgba(255,255,255,.08); transition: box-shadow .25s; }
body.admin-bar .dh-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .dh-header { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .dh-header { top: 0; } }
.dh-header.is-stuck { box-shadow: 0 10px 30px rgba(0,0,0,.35); }
.dh-header__in { display: flex; align-items: center; gap: 24px; min-height: 74px; }
.dh-logo { display: inline-flex; align-items: center; gap: 10px; color: #fff; flex: none; }
.dh-mark { width: 40px; height: 40px; }
.dh-logo__img { max-height: 48px; width: auto; }
.dh-logo__txt { display: flex; flex-direction: column; line-height: 1; }
.dh-logo__txt b { font-family: var(--f-h); font-weight: 800; font-stretch: 120%; font-size: 23px; letter-spacing: .04em; }
.dh-logo__txt small { font-family: var(--f-m); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-d); margin-top: 5px; white-space: nowrap; }
@media (max-width: 400px) { .dh-logo__txt b { font-size: 20px; } .dh-logo__txt small { font-size: 8.5px; letter-spacing: .08em; } .dh-mark { width: 34px; height: 34px; } }
.dh-nav { margin-left: auto; display: flex; align-items: center; }
.dh-nav__list { display: flex; gap: 2px; }
.dh-nav__item { position: relative; display: flex; align-items: center; }
.dh-nav__item > a { display: block; padding: 10px 12px; border-radius: 8px; color: #d4dce8; font-weight: 500; font-size: 15px; transition: color .2s, background .2s; }
.dh-nav__item > a:hover, .dh-nav__item > a[aria-current] { color: #fff; background: rgba(255,255,255,.07); }
.dh-nav__item > a[aria-current] { box-shadow: inset 0 -2px 0 var(--spark); border-radius: 8px 8px 0 0; }
.dh-nav__item.has-kids > a { padding-right: 4px; }
.dh-nav__toggle { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 36px; padding: 0; border: 0; background: none; color: #a9b6c8; cursor: pointer; border-radius: 6px; }
.dh-nav__toggle svg { width: 16px; height: 16px; transition: transform .2s; }
.dh-sub { position: absolute; top: 100%; left: 0; min-width: 270px; padding: 8px; background: #fff; border-radius: 12px; box-shadow: 0 22px 50px rgba(11,18,32,.28); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .18s, transform .18s, visibility .18s; z-index: 5; }
.dh-sub a { display: block; padding: 9px 12px; border-radius: 8px; color: var(--text); font-size: 14.5px; font-weight: 500; }
.dh-sub a:hover { background: var(--tint); color: var(--blue); }
@media (min-width: 1081px) {
	.dh-nav__item.has-kids:hover .dh-sub, .dh-nav__item.has-kids:focus-within .dh-sub, .dh-nav__item.is-open .dh-sub { opacity: 1; visibility: visible; transform: none; }
	.dh-nav__item.has-kids:hover .dh-nav__toggle svg, .dh-nav__item.is-open .dh-nav__toggle svg { transform: rotate(180deg); }
}
.dh-nav__cta { display: none; }
.dh-header__cta { flex: none; }
.dh-burger { display: none; width: 46px; height: 46px; border-radius: 10px; border: 1px solid rgba(255,255,255,.2); background: transparent; color: #fff; cursor: pointer; align-items: center; justify-content: center; }
.dh-burger .dh-ico { width: 24px; height: 24px; }
.dh-burger__close { display: none; }
.dh-burger[aria-expanded="true"] .dh-burger__open { display: none; }
.dh-burger[aria-expanded="true"] .dh-burger__close { display: block; }

@media (max-width: 1080px) {
	/* backdrop-filter would make the header the containing block of the fixed drawer */
	.dh-header { background: var(--ink); backdrop-filter: none; -webkit-backdrop-filter: none; }
	.dh-header__in { min-height: 66px; }
	.dh-burger { display: inline-flex; margin-left: auto; }
	.dh-header__cta { display: none; }
	.dh-nav { position: fixed; inset: 104px 0 0 0; display: none; flex-direction: column; align-items: stretch; gap: 20px; padding: 20px 16px 32px; background: var(--ink); overflow-y: auto; border-top: 1px solid rgba(255,255,255,.08); }
	.dh-nav.is-open { display: flex; }
	.dh-nav__list { flex-direction: column; gap: 0; }
	.dh-nav__item { flex-wrap: wrap; border-bottom: 1px solid rgba(255,255,255,.07); }
	.dh-nav__item > a { flex: 1; padding: 15px 6px; font-size: 18px; border-radius: 0; }
	.dh-nav__item > a[aria-current] { box-shadow: inset 3px 0 0 var(--spark); padding-left: 14px; }
	.dh-nav__toggle { width: 48px; height: 48px; color: #fff; }
	.dh-nav__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
	.dh-sub { position: static; flex-basis: 100%; min-width: 0; padding: 0 0 10px 12px; background: none; box-shadow: none; opacity: 1; visibility: visible; transform: none; display: none; }
	.dh-nav__item.is-open .dh-sub { display: block; }
	.dh-sub a { color: #c9d4e2; font-size: 16px; padding: 10px 8px; }
	.dh-sub a:hover { background: rgba(255,255,255,.06); color: #fff; }
	.dh-nav__cta { display: inline-flex; }
}
@media (max-width: 860px) { .dh-nav { inset: 66px 0 0 0; } }
.dh-lock { overflow: hidden; }

/* hero */
.dh-hero { position: relative; background: radial-gradient(1200px 600px at 80% 10%, #16294a 0%, transparent 60%), var(--ink); color: #fff; padding: 72px 0 120px; overflow: hidden; }
.dh-hero__grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(110,168,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(110,168,255,.07) 1px, transparent 1px); background-size: 40px 40px; mask-image: radial-gradient(ellipse at 70% 40%, #000 30%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse at 70% 40%, #000 30%, transparent 75%); pointer-events: none; }
.dh-hero__in { position: relative; display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px; align-items: center; }
.dh-hero__h { font-size: clamp(36px, 5.2vw, 66px); font-weight: 800; font-stretch: 108%; color: #fff; letter-spacing: -.02em; }
.dh-hero__p { margin-top: 22px; font-size: 18px; color: #bcc8d8; max-width: 560px; }
.dh-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.dh-hero__ticks { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 30px; font-size: 14.5px; color: #c9d4e2; }
.dh-hero__ticks li { display: inline-flex; align-items: center; gap: 8px; }
.dh-hero__ticks .dh-ico { width: 18px; height: 18px; color: var(--spark); }
.dh-hero__art { position: relative; }
.dh-laser { width: 100%; height: auto; overflow: visible; }
.dh-dim path { stroke: #6ea8ff; stroke-opacity: .5; fill: none; stroke-width: 1.2; }
.dh-dim text { fill: #8fb5ec; font-family: var(--f-m); font-size: 13px; letter-spacing: .06em; }
.dh-laser__ghost { fill: none; stroke: #6ea8ff; stroke-opacity: .35; stroke-width: 1.4; stroke-dasharray: 5 6; }
.dh-laser__kerf { fill: none; stroke: var(--spark-h); stroke-width: 3; stroke-linejoin: round; stroke-dasharray: 1000; stroke-dashoffset: 1000; animation: dh-cut 9s linear infinite; }
@keyframes dh-cut { to { stroke-dashoffset: 0; } }
.dh-laser__sparks { animation: dh-flick .18s steps(2) infinite; transform-origin: center; }
@keyframes dh-flick { 50% { opacity: .2; transform: rotate(40deg) scale(1.3); } }
@media (prefers-reduced-motion: reduce) {
	.dh-laser__kerf { animation: none; stroke-dashoffset: 0; }
	.dh-laser__head { display: none; }
}
.dh-chip { position: absolute; display: flex; flex-direction: column; padding: 12px 16px; border-radius: 12px; background: rgba(19,29,47,.9); border: 1px solid rgba(110,168,255,.25); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); box-shadow: 0 14px 40px rgba(0,0,0,.35); max-width: 210px; }
.dh-chip b { font-family: var(--f-h); font-size: 24px; font-weight: 800; color: #fff; line-height: 1.1; }
.dh-chip span { font-size: 12.5px; color: var(--muted-d); line-height: 1.35; margin-top: 3px; }
.dh-chip--a { left: -8px; bottom: 30px; }
.dh-chip--b { right: -4px; top: 76px; }
@media (max-width: 980px) {
	.dh-hero { padding: 48px 0 100px; }
	.dh-hero__in { grid-template-columns: 1fr; gap: 28px; }
	.dh-hero__art { max-width: 560px; margin: 0 auto; width: 100%; }
}
@media (max-width: 520px) {
	.dh-hero__p { font-size: 16.5px; }
	.dh-hero__cta .dh-btn { width: 100%; }
	.dh-chip { padding: 8px 12px; max-width: 160px; }
	.dh-chip b { font-size: 18px; }
	.dh-chip span { font-size: 11px; }
	.dh-chip--a { left: 0; bottom: 0; }
	.dh-chip--b { right: 0; top: 40px; }
}

/* stats */
.dh-stats { position: relative; z-index: 2; margin-top: -64px; }
.dh-stats__list { display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border-radius: var(--r); box-shadow: 0 24px 60px rgba(11,18,32,.16); border: 1px solid var(--line); overflow: hidden; }
.dh-stats__list li { padding: 26px 26px 24px; border-left: 1px solid var(--line); }
.dh-stats__list li:first-child { border-left: 0; }
.dh-stats__list b { display: block; font-family: var(--f-h); font-weight: 800; font-stretch: 110%; font-size: clamp(26px, 2.8vw, 36px); color: var(--ink); line-height: 1.1; }
.dh-stats__list b::after { content: ""; display: block; width: 28px; height: 3px; background: var(--spark); margin: 10px 0 8px; }
.dh-stats__list span { font-size: 14px; color: var(--muted); line-height: 1.4; display: block; }
@media (max-width: 860px) {
	.dh-stats__list { grid-template-columns: 1fr 1fr; }
	.dh-stats__list li:nth-child(3) { border-left: 0; }
	.dh-stats__list li:nth-child(n+3) { border-top: 1px solid var(--line); }
	.dh-stats__list li { padding: 20px 18px; }
}

/* services */
.dh-svc { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.dh-svc__item { position: relative; background: #fff; transition: background .25s; }
.dh-svc__a { display: flex; flex-direction: column; height: 100%; padding: 30px 26px 28px; }
.dh-svc__more { margin-top: auto; padding-top: 16px; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 14px; color: var(--spark-t); }
.dh-svc__more .dh-ico { width: 16px; height: 16px; transition: transform .2s; }
.dh-svc__a:hover .dh-svc__more .dh-ico { transform: translateX(4px); }
.dh-svc__a:hover .dh-svc__t { color: var(--blue); }
.dh-svc__item::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--spark); transform: scaleX(0); transform-origin: left; transition: transform .35s; }
.dh-svc__item:hover { background: #fbfcfe; }
.dh-svc__item:hover::after { transform: scaleX(1); }
.dh-svc__no { position: absolute; top: 22px; right: 22px; font-family: var(--f-m); font-size: 13px; color: #8a96a8; }
.dh-svc__ico { display: inline-flex; width: 52px; height: 52px; border-radius: 12px; align-items: center; justify-content: center; background: #eaf1fb; color: var(--blue); margin-bottom: 20px; }
.dh-svc__ico .dh-ico { width: 26px; height: 26px; }
.dh-svc__t { font-size: 19px; font-weight: 700; color: var(--ink); }
.dh-svc__p { margin-top: 10px; font-size: 15px; color: var(--muted); }
@media (max-width: 1080px) { .dh-svc { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .dh-svc { grid-template-columns: 1fr; } .dh-svc__a { padding: 22px 20px; } }

/* product tabs + cards */
.dh-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.dh-tab { min-height: 44px; padding: 8px 18px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; color: var(--text); font-weight: 600; font-size: 14.5px; cursor: pointer; transition: all .2s; }
.dh-tab:hover { border-color: var(--ink); }
.dh-tab[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.dh-prd { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.dh-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; transition: box-shadow .25s, transform .25s, border-color .25s; }
.dh-card:hover { box-shadow: 0 18px 44px rgba(11,18,32,.12); transform: translateY(-3px); border-color: #c9d4e1; }
.dh-card[hidden] { display: none; }
.dh-card__img { position: relative; display: block; aspect-ratio: 1 / 1; background: #eef1f4; overflow: hidden; }
.dh-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.dh-card:hover .dh-card__img img { transform: scale(1.05); }
.dh-card__body { display: flex; flex-direction: column; flex: 1; padding: 18px 18px 18px; }
.dh-card__cat { font-family: var(--f-m); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--spark-t); }
.dh-card__t { margin-top: 6px; font-size: 17px; font-weight: 700; color: var(--ink); line-height: 1.25; }
.dh-card__t a:hover { color: var(--blue); }
.dh-card__specs { margin-top: 12px; display: grid; gap: 4px; font-size: 13px; }
.dh-card__specs div { display: grid; grid-template-columns: 64px 1fr; gap: 8px; }
.dh-card__specs dt { color: #6b7789; }
.dh-card__specs dd { color: var(--text); }
.dh-card__specs + .dh-card__foot, .dh-card__t + .dh-card__foot { margin-top: auto; }
.dh-card__foot { margin-top: auto; padding-top: 14px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px dashed var(--line); }
.dh-card__specs { margin-bottom: 16px; }
.dh-card__price { font-family: var(--f-h); font-weight: 800; font-size: 18px; color: var(--ink); white-space: nowrap; }
.dh-card__price small { font-family: var(--f-b); font-weight: 500; font-size: 12px; color: var(--muted); }
.dh-card__price del { display: none; }
.dh-card__price ins { text-decoration: none; }
.dh-card__quote { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 6px 12px; border-radius: 8px; background: #fff3ea; color: var(--spark-t); font-weight: 600; font-size: 14px; white-space: nowrap; transition: background .2s, color .2s; }
.dh-card__quote .dh-ico { width: 16px; height: 16px; }
.dh-card__quote:hover { background: var(--spark); color: var(--ink); }
@media (max-width: 1180px) { .dh-prd { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 820px) { .dh-prd { grid-template-columns: repeat(2, 1fr); gap: 14px; } }
@media (max-width: 520px) {
	.dh-prd { grid-template-columns: 1fr; }
	.dh-card { flex-direction: row; }
	.dh-card__img { width: 38%; flex: none; aspect-ratio: auto; }
	.dh-card__body { padding: 14px; }
	.dh-card__specs { display: none; }
	.dh-card__t { font-size: 15.5px; }
	.dh-card__foot { flex-direction: column; align-items: flex-start; }
}

/* industries */
.dh-ind { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: center; }
.dh-ind .dh-head { margin: 0; }
.dh-ind .dh-btn { margin-top: 28px; }
.dh-ind__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.dh-ind__list li { display: flex; flex-direction: column; gap: 14px; padding: 22px 18px; border-radius: 12px; background: var(--ink-2); border: 1px solid rgba(255,255,255,.07); color: #fff; font-family: var(--f-h); font-weight: 700; font-size: 16px; line-height: 1.25; transition: border-color .25s, background .25s; }
.dh-ind__list li:hover { border-color: rgba(242,113,28,.6); background: var(--ink-3); }
.dh-ind__list .dh-ico { width: 30px; height: 30px; color: var(--spark-h); }
@media (max-width: 980px) { .dh-ind { grid-template-columns: 1fr; gap: 36px; } }
@media (max-width: 520px) { .dh-ind__list { grid-template-columns: 1fr 1fr; } .dh-ind__list li { padding: 16px 14px; font-size: 14.5px; } }

/* architectural tiles */
.dh-arc { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.dh-arc__item { position: relative; aspect-ratio: 4 / 5; border-radius: var(--r); overflow: hidden; isolation: isolate; background: radial-gradient(circle at 50% 35%, #ffcf8a 0%, #f2711c 45%, #6b2a0a 100%); }
.dh-cut { position: absolute; inset: 0; width: 100%; height: 100%; transition: transform .6s; }
.dh-arc__item:hover .dh-cut { transform: scale(1.06); }
.dh-cut__plate { fill: #9a4a22; }
.dh-arc__item--ink .dh-cut__plate { fill: #20262f; }
.dh-arc__item--ivory .dh-cut__plate { fill: #e7e2d8; }
.dh-arc__item--navy .dh-cut__plate { fill: #1b2a40; }
.dh-arc__item--steel .dh-cut__plate { fill: #a7b1bc; }
.dh-arc__item--gold .dh-cut__plate { fill: #b48a33; }
.dh-arc__item--ivory, .dh-arc__item--steel { background: radial-gradient(circle at 50% 35%, #ffffff 0%, #bfe0ff 50%, #2c5f9e 100%); }
.dh-arc__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 60px 18px 18px; background: linear-gradient(to top, rgba(11,18,32,.96) 30%, rgba(11,18,32,0)); color: #fff; }
.dh-arc__cap h3 { font-size: 18px; font-weight: 800; color: #fff; }
.dh-arc__cap p { margin-top: 4px; font-size: 13.5px; color: #c8d2df; line-height: 1.45; }
@media (max-width: 980px) { .dh-arc { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .dh-arc { gap: 10px; } .dh-arc__cap { padding: 40px 12px 12px; } .dh-arc__cap h3 { font-size: 15.5px; } .dh-arc__cap p { display: none; } }

/* why */
.dh-why { display: grid; grid-template-columns: 1.25fr .9fr; gap: 56px; align-items: start; }
.dh-why__list { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 30px; margin-top: 34px; }
.dh-why__list li { display: flex; gap: 14px; }
.dh-why__tick { flex: none; display: inline-flex; width: 34px; height: 34px; border-radius: 50%; align-items: center; justify-content: center; background: var(--blue); color: #fff; }
.dh-why__tick .dh-ico { width: 18px; height: 18px; }
.dh-why__list h3 { font-size: 17px; font-weight: 700; color: var(--ink); }
.dh-why__list p { margin-top: 6px; font-size: 15px; color: var(--muted); }
.dh-spec { position: sticky; top: 100px; background: var(--ink); color: #dfe6f0; border-radius: 18px; padding: 30px; box-shadow: 0 30px 60px rgba(11,18,32,.22); background-image: linear-gradient(rgba(110,168,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(110,168,255,.06) 1px, transparent 1px); background-size: 24px 24px; }
.dh-spec__k { font-family: var(--f-m); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--spark-h); }
.dh-spec__h { margin-top: 8px; font-size: 22px; font-weight: 800; color: #fff; }
.dh-spec__t { width: 100%; margin: 20px 0 24px; border-collapse: collapse; font-size: 14.5px; }
.dh-spec__t th { text-align: left; font-family: var(--f-m); font-weight: 500; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted-d); padding: 0 0 10px; border-bottom: 1px solid rgba(255,255,255,.15); }
.dh-spec__t td { padding: 11px 0; border-bottom: 1px dashed rgba(255,255,255,.12); color: #e6ecf4; }
.dh-spec__t td:last-child, .dh-spec__t th:last-child { text-align: right; font-family: var(--f-m); color: #fff; }
.dh-spec__certs { display: flex; flex-wrap: wrap; gap: 8px; margin: -6px 0 22px; }
.dh-spec__certs li { padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(110,168,255,.4); font-size: 13px; color: #cfe0f8; }
.dh-spec .dh-btn--ink { background: var(--spark); color: var(--ink); }
.dh-spec .dh-btn--ink:hover { background: var(--spark-h); }
@media (max-width: 980px) { .dh-why { grid-template-columns: 1fr; gap: 40px; } .dh-spec { position: static; } }
@media (max-width: 620px) { .dh-why__list { grid-template-columns: 1fr; } .dh-spec { padding: 22px; } }

/* process */
.dh-proc { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; counter-reset: p; position: relative; }
.dh-proc::before { content: ""; position: absolute; top: 25px; left: 6%; right: 6%; height: 2px; background: repeating-linear-gradient(90deg, var(--line) 0 8px, transparent 8px 14px); }
.dh-proc li { position: relative; text-align: center; }
.dh-proc__n { position: relative; display: inline-flex; width: 52px; height: 52px; border-radius: 50%; align-items: center; justify-content: center; background: #fff; border: 2px solid var(--ink); font-family: var(--f-h); font-weight: 800; font-size: 19px; color: var(--ink); transition: background .2s, color .2s; }
.dh-proc li:hover .dh-proc__n { background: var(--spark); border-color: var(--spark); }
.dh-proc h3 { margin-top: 16px; font-size: 16.5px; font-weight: 700; color: var(--ink); }
.dh-proc p { margin-top: 6px; font-size: 14px; color: var(--muted); }
@media (max-width: 980px) {
	.dh-proc { grid-template-columns: repeat(3, 1fr); row-gap: 34px; }
	.dh-proc::before { display: none; }
}
@media (max-width: 560px) {
	.dh-proc { grid-template-columns: 1fr; gap: 0; }
	.dh-proc li { display: grid; grid-template-columns: 52px 1fr; column-gap: 16px; text-align: left; padding-bottom: 22px; }
	.dh-proc li::before { content: ""; position: absolute; left: 25px; top: 52px; bottom: 0; width: 2px; background: var(--line); }
	.dh-proc li:last-child::before { display: none; }
	.dh-proc__n { grid-row: span 2; }
	.dh-proc h3 { margin-top: 12px; }
}

/* quote */
.dh-quote { position: relative; overflow: hidden; }
.dh-quote::before { content: ""; position: absolute; right: -200px; top: -200px; width: 600px; height: 600px; background: radial-gradient(circle, rgba(30,90,168,.35), transparent 65%); pointer-events: none; }
.dh-quote__in { position: relative; display: grid; grid-template-columns: .95fr 1.05fr; gap: 56px; align-items: start; }
.dh-contact { display: grid; gap: 18px; margin-top: 34px; }
.dh-contact li { display: flex; gap: 14px; align-items: flex-start; }
.dh-contact .dh-ico { width: 44px; height: 44px; padding: 11px; border-radius: 10px; background: var(--ink-3); color: var(--spark-h); }
.dh-contact small { display: block; font-family: var(--f-m); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted-d); }
.dh-contact a, .dh-contact span { color: #fff; font-size: 16px; }
.dh-contact a:hover { color: var(--spark-h); }
.dh-form { background: #fff; color: var(--text); border-radius: 18px; padding: 32px; box-shadow: 0 30px 70px rgba(0,0,0,.35); scroll-margin-top: 110px; }
.dh-form__h { font-size: 24px; font-weight: 800; color: var(--ink); margin-bottom: 20px; }
.dh-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dh-field { display: block; margin-bottom: 14px; }
.dh-field > span { display: block; font-size: 13.5px; font-weight: 600; color: #344055; margin-bottom: 6px; }
.dh-field :is(input, select, textarea) { display: block; width: 100%; min-height: 48px; padding: 11px 14px; border: 1.5px solid #cfd8e3; border-radius: 10px; background: #f8fafc; color: var(--text); font-size: 15.5px; line-height: 1.4; transition: border-color .2s, background .2s; box-shadow: none; margin: 0; }
.dh-field textarea { min-height: 110px; resize: vertical; }
.dh-field :is(input, select, textarea):focus { border-color: var(--blue); background: #fff; outline: none; box-shadow: 0 0 0 3px rgba(30,90,168,.15); }
.dh-field .is-bad { border-color: #c62828; background: #fff6f6; }
.dh-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dh-form__msg { margin: 4px 0 14px; padding: 12px 14px; border-radius: 10px; background: #e8f5ec; color: #1b5e34; font-size: 15px; }
.dh-form__msg.is-err { background: #fdecec; color: #a3201d; }
.dh-form__msg[hidden] { display: none; }
.dh-form__note { margin-top: 12px; font-size: 13px; color: var(--muted); text-align: center; }
.dh-form button[disabled] { opacity: .65; cursor: progress; }
@media (max-width: 980px) { .dh-quote__in { grid-template-columns: 1fr; gap: 40px; } }
@media (max-width: 560px) { .dh-form { padding: 22px 18px; } .dh-form__row { grid-template-columns: 1fr; gap: 0; } }

/* footer */
.dh-footer { background: #070c16; color: var(--muted-d); padding: 64px 0 0; font-size: 14.5px; }
.dh-footer__in { display: grid; grid-template-columns: 1.4fr 1fr 1.2fr 1.1fr; gap: 40px; padding-bottom: 44px; }
.dh-footer__brand p { margin-top: 16px; max-width: 320px; }
.dh-footer h3 { font-family: var(--f-m); font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: #fff; margin-bottom: 14px; }
.dh-footer ul { display: grid; gap: 8px; }
.dh-footer a:hover { color: var(--spark-h); }
.dh-footer__base { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 20px; padding-bottom: 24px; border-top: 1px solid rgba(255,255,255,.08); font-size: 13px; }
@media (max-width: 900px) { .dh-footer__in { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .dh-footer__in { grid-template-columns: 1fr; gap: 28px; } }

.dh-wa { position: fixed; right: 18px; bottom: 18px; z-index: 60; display: inline-flex; width: 56px; height: 56px; border-radius: 50%; align-items: center; justify-content: center; background: #25d366; color: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.3); }
.dh-wa .dh-ico { width: 30px; height: 30px; }

/* scroll reveal: visible by default; hidden only once the inline probe set .dh-js */
.dh-js .dh-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.dh-js .dh-reveal.is-in { opacity: 1; transform: none; }
@media print { .dh-js .dh-reveal { opacity: 1; transform: none; } .dh-header, .dh-topbar, .dh-wa { display: none; } }

/* ---------- shared bits added in v1.1 ---------- */
.dh-btn--wa { background: #25d366; color: #06351a; }
.dh-btn--wa:hover { background: #3be07a; }
.dh-btn--wa .dh-ico { width: 20px; height: 20px; }
.dh-btn--outline { border-color: var(--ink); color: var(--ink); background: transparent; }
.dh-btn--outline:hover { background: var(--ink); color: #fff; }
.dh-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--blue); white-space: nowrap; }
.dh-link .dh-ico { width: 18px; height: 18px; transition: transform .2s; }
.dh-link:hover .dh-ico { transform: translateX(4px); }
.dh-sec--ink .dh-link { color: var(--blue-l); }
.dh-sec--flush { overflow: hidden; }

/* right-to-left scrollers (products, architectural) */
.dh-marquee { position: relative; overflow: hidden; padding: 6px 0 10px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.dh-marquee__track { display: flex; gap: 20px; width: max-content; animation: dh-rtl var(--dh-dur, 40s) linear infinite; }
.dh-marquee:hover .dh-marquee__track, .dh-marquee:focus-within .dh-marquee__track { animation-play-state: paused; }
@keyframes dh-rtl { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 10px)); } }
@media (prefers-reduced-motion: reduce) {
	.dh-marquee { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
	.dh-marquee__track { animation: none; }
	.dh-marquee__track > [aria-hidden="true"] { display: none; }
}
.dh-mcard { flex: none; width: 260px; }
.dh-mcard__a { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; transition: box-shadow .25s, border-color .25s, transform .25s; }
.dh-mcard__a:hover { box-shadow: 0 16px 40px rgba(11,18,32,.12); border-color: #c9d4e1; transform: translateY(-3px); }
.dh-mcard__img { position: relative; display: block; aspect-ratio: 1 / 1; background: #eef1f4; }
.dh-mcard__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dh-mcard__body { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: 14px 16px 16px; }
.dh-mcard__t { font-family: var(--f-h); font-weight: 700; font-size: 16px; line-height: 1.25; color: var(--ink); }
.dh-mcard__more { margin-top: auto; padding-top: 6px; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 14px; color: var(--spark-t); }
.dh-mcard__more .dh-ico { width: 16px; height: 16px; }
.dh-marquee .dh-arc__item { flex: none; width: 250px; }
@media (max-width: 520px) { .dh-mcard { width: 210px; } .dh-marquee .dh-arc__item { width: 200px; } .dh-marquee__track { gap: 14px; } }

/* CTA band */
.dh-cta { background: linear-gradient(120deg, var(--ink) 0%, #12264a 100%); color: #fff; padding: 56px 0; }
.dh-cta__in { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.dh-cta__h { font-size: clamp(22px, 2.6vw, 32px); font-weight: 800; color: #fff; max-width: 640px; }
.dh-cta__btns { display: flex; gap: 12px; flex-wrap: wrap; }

/* internal page hero + breadcrumbs */
.dh-phero { position: relative; overflow: hidden; background: radial-gradient(900px 400px at 85% 0%, #16294a 0%, transparent 60%), var(--ink); color: #fff; padding: 40px 0 52px; }
.dh-phero__in { position: relative; }
.dh-phero__row { display: flex; gap: 20px; align-items: flex-start; margin-top: 18px; }
.dh-phero__ico { flex: none; display: inline-flex; width: 64px; height: 64px; border-radius: 16px; align-items: center; justify-content: center; background: rgba(242,113,28,.14); border: 1px solid rgba(242,113,28,.4); color: var(--spark-h); }
.dh-phero__ico .dh-ico { width: 32px; height: 32px; }
.dh-phero__h { font-size: clamp(30px, 4vw, 50px); font-weight: 800; font-stretch: 106%; color: #fff; }
.dh-phero__p { margin-top: 12px; font-size: 17.5px; color: #bcc8d8; max-width: 760px; }
.dh-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13.5px; color: var(--muted-d); }
.dh-crumbs li + li::before { content: "/"; margin-right: 6px; opacity: .5; }
.dh-crumbs a:hover { color: #fff; text-decoration: underline; }
.dh-crumbs [aria-current] { color: #fff; }
.dh-crumbs--light ol { color: var(--muted); }
.dh-crumbs--light a:hover { color: var(--blue); }
.dh-crumbs--light [aria-current] { color: var(--ink); }
@media (max-width: 560px) { .dh-phero__ico { width: 48px; height: 48px; } .dh-phero__ico .dh-ico { width: 24px; height: 24px; } .dh-phero__p { font-size: 16px; } }

/* two-column body: prose + sidebar */
.dh-split { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.dh-prose { font-size: 16.5px; color: var(--text); }
.dh-prose > * + * { margin-top: 16px; }
.dh-prose h2 { font-size: 26px; font-weight: 800; color: var(--ink); margin-top: 36px; }
.dh-prose h3 { font-size: 20px; font-weight: 700; color: var(--ink); margin-top: 28px; }
.dh-prose ul { display: grid; gap: 10px; }
.dh-prose ul li { position: relative; padding-left: 28px; }
.dh-prose ul li::before { content: ""; position: absolute; left: 4px; top: .55em; width: 12px; height: 7px; border-left: 2.5px solid var(--spark); border-bottom: 2.5px solid var(--spark); transform: rotate(-45deg); }
.dh-prose a { color: var(--blue); text-decoration: underline; }
.dh-prose__img { width: 100%; border-radius: var(--r); margin-bottom: 8px; }
.dh-prose--dark { color: #c9d4e2; font-size: 17px; }
.dh-prose--dark > :first-child { margin-top: 0; }
.dh-prose table { width: 100%; border-collapse: collapse; }
.dh-prose th, .dh-prose td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.dh-side { display: grid; gap: 22px; position: sticky; top: 96px; }
.dh-side .dh-spec { position: static; }
.dh-side .dh-btn + .dh-btn { margin-top: 10px; }
.dh-spec__t th[scope="row"] { text-align: left; font-family: var(--f-b); font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--muted-d); padding: 11px 12px 11px 0; border-bottom: 1px dashed rgba(255,255,255,.12); font-weight: 400; vertical-align: top; }
.dh-spec__t tbody th[scope="row"] + td { text-align: right; font-family: var(--f-b); }
.dh-side__nav { background: var(--tint); border: 1px solid var(--line); border-radius: var(--r); padding: 22px; }
.dh-side__nav h2 { font-size: 17px; font-weight: 800; color: var(--ink); margin-bottom: 10px; }
.dh-side__nav a { display: flex; align-items: center; gap: 10px; padding: 9px 6px; border-radius: 8px; font-weight: 500; color: var(--text); }
.dh-side__nav a:hover { background: #fff; color: var(--blue); }
.dh-side__nav .dh-ico { width: 20px; height: 20px; color: var(--blue); }
.dh-faq { display: grid; gap: 10px; }
.dh-faq details { border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.dh-faq summary { cursor: pointer; padding: 14px 18px; font-weight: 600; color: var(--ink); list-style: none; position: relative; padding-right: 44px; }
.dh-faq summary::-webkit-details-marker { display: none; }
.dh-faq summary::after { content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); font-size: 22px; color: var(--spark); }
.dh-faq details[open] summary::after { content: "–"; }
.dh-faq details p { padding: 0 18px 16px; color: var(--muted); }
@media (max-width: 980px) { .dh-split { grid-template-columns: 1fr; gap: 36px; } .dh-side { position: static; } }

.dh-quote__in--light { align-items: start; }
.dh-quote__in--light .dh-form { box-shadow: 0 20px 50px rgba(11,18,32,.12); border: 1px solid var(--line); }
.dh-proc--list { grid-template-columns: 1fr; gap: 0; margin-top: 30px; }
.dh-proc--list::before { display: none; }
.dh-proc--list li { display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; text-align: left; padding-bottom: 16px; }
.dh-proc--list li::before { content: ""; position: absolute; left: 21px; top: 44px; bottom: 0; width: 2px; background: var(--line); }
.dh-proc--list li:last-child::before { display: none; }
.dh-proc--list .dh-proc__n { grid-row: span 2; width: 44px; height: 44px; font-size: 16px; }
.dh-proc--list h3 { margin-top: 8px; font-size: 16px; }
.dh-proc--list p { margin-top: 2px; }
.dh-why__list--3 { grid-template-columns: repeat(3, 1fr); margin-top: 0; }
@media (max-width: 980px) { .dh-why__list--3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .dh-why__list--3 { grid-template-columns: 1fr; } }
.dh-stats--flat { margin: 0 0 72px; }
.dh-map iframe { display: block; width: 100%; height: 380px; border: 0; }

/* products page */
.dh-tabs--links { margin-bottom: 28px; }
.dh-tabs--links .dh-tab { display: inline-flex; align-items: center; gap: 6px; }
.dh-tabs--links .dh-tab span { color: var(--muted); font-weight: 500; }
.dh-tabs--links .dh-tab[aria-current] { background: var(--ink); border-color: var(--ink); color: #fff; }
.dh-tabs--links .dh-tab[aria-current] span { color: var(--muted-d); }
.dh-card__view { font-weight: 600; font-size: 14px; color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.dh-card__view:hover { color: var(--blue); }
.dh-pager ul { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 40px; }
.dh-pager a, .dh-pager span { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; padding: 0 14px; border-radius: 10px; border: 1px solid var(--line); background: #fff; font-weight: 600; }
.dh-pager .current { background: var(--ink); color: #fff; border-color: var(--ink); }
.dh-empty { padding: 40px; text-align: center; background: #fff; border-radius: var(--r); border: 1px dashed var(--line); }
.dh-empty a { color: var(--blue); text-decoration: underline; }

/* product detail */
.dh-pd { background: var(--tint); padding: 28px 0 64px; }
.dh-pd__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 22px; align-items: start; }
.dh-pd__main { position: relative; aspect-ratio: 1 / 1; background: #eef1f4; border-radius: 18px; overflow: hidden; border: 1px solid var(--line); }
.dh-pd__main img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dh-pd__thumbs { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.dh-pd__thumbs button { width: 76px; height: 76px; padding: 0; border-radius: 10px; overflow: hidden; border: 2px solid transparent; background: #fff; cursor: pointer; }
.dh-pd__thumbs button[aria-pressed="true"] { border-color: var(--spark); }
.dh-pd__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.dh-pd__h { margin-top: 8px; font-size: clamp(28px, 3.4vw, 42px); font-weight: 800; color: var(--ink); }
.dh-pd__lead { margin-top: 14px; font-size: 17.5px; color: var(--muted); }
.dh-pd__specs { width: 100%; margin-top: 24px; border-collapse: collapse; background: #fff; border-radius: 12px; overflow: hidden; border: 1px solid var(--line); }
.dh-pd__specs caption { text-align: left; font-family: var(--f-m); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); padding-bottom: 8px; }
.dh-pd__specs th, .dh-pd__specs td { padding: 12px 16px; border-bottom: 1px solid var(--line); text-align: left; font-size: 15px; }
.dh-pd__specs tr:last-child th, .dh-pd__specs tr:last-child td { border-bottom: 0; }
.dh-pd__specs th { width: 38%; color: var(--muted); font-weight: 500; background: #fafbfd; }
.dh-pd__note { display: flex; align-items: center; gap: 8px; margin-top: 16px; font-size: 14.5px; color: var(--muted); }
.dh-pd__note .dh-ico { width: 18px; height: 18px; color: #1b8a4b; }
.dh-pd__cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
@media (max-width: 900px) { .dh-pd__grid { grid-template-columns: 1fr; gap: 28px; } .dh-pd__cta .dh-btn { flex: 1 1 auto; } }

/* ---------- projects gallery ---------- */
.dh-sec--tight { padding: 48px 0; }
.dh-prj { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.dh-prj--feature .dh-prj__item:first-child { grid-column: span 2; grid-row: span 2; }
.dh-prj__a { position: relative; display: block; height: 100%; min-height: 240px; border-radius: var(--r); overflow: hidden; background: #e9edf2; isolation: isolate; }
.dh-prj__img { position: absolute; inset: 0; display: block; }
.dh-prj__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.dh-prj__a:hover .dh-prj__img img { transform: scale(1.06); }
.dh-prj__count { position: absolute; top: 14px; right: 14px; padding: 4px 10px; border-radius: 999px; background: rgba(11,18,32,.75); color: #fff; font-size: 12.5px; font-weight: 600; }
.dh-prj__cap { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; gap: 4px; padding: 70px 20px 18px; background: linear-gradient(to top, rgba(11,18,32,.96) 50%, rgba(11,18,32,0)); color: #fff; }
.dh-prj__cat { font-family: var(--f-m); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--spark-h); }
.dh-prj__t { font-family: var(--f-h); font-weight: 800; font-size: 18px; line-height: 1.2; }
.dh-prj--feature .dh-prj__item:first-child .dh-prj__t { font-size: clamp(20px, 2.2vw, 28px); }
.dh-prj__p { font-size: 14.5px; color: #c9d4e2; max-width: 520px; }
.dh-prj__item[hidden] { display: none; }
@media (max-width: 900px) { .dh-prj { grid-template-columns: 1fr 1fr; } .dh-prj--feature .dh-prj__item:first-child { grid-row: span 1; } .dh-prj__a { min-height: 220px; } }
@media (max-width: 560px) { .dh-prj { grid-template-columns: 1fr; } .dh-prj--feature .dh-prj__item:first-child { grid-column: auto; } }

.dh-gal { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; gap: 12px; }
.dh-gal__item:first-child { grid-column: span 2; grid-row: span 2; }
.dh-gal--one { grid-template-columns: 1fr; grid-auto-rows: 460px; }
.dh-gal--one .dh-gal__item:first-child { grid-column: auto; grid-row: auto; }
.dh-gal__item a { position: relative; display: block; height: 100%; border-radius: 12px; overflow: hidden; background: #e9edf2; cursor: zoom-in; }
.dh-gal__item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.dh-gal__item a:hover img { transform: scale(1.05); }
/* small galleries: the cover stays big and the rest stack beside it, with no empty cells */
.dh-gal--n2 { grid-template-columns: 1fr 1fr; grid-auto-rows: 380px; }
.dh-gal--n2 .dh-gal__item:first-child { grid-column: auto; grid-row: auto; }
.dh-gal--n3, .dh-gal--n4 { grid-template-columns: 2fr 1fr; }
.dh-gal--n4 .dh-gal__item:first-child { grid-column: auto; grid-row: span 3; }
.dh-gal--n4 { grid-auto-rows: 140px; }
.dh-gal--n3 .dh-gal__item:first-child { grid-column: auto; }
@media (max-width: 900px) { .dh-gal, .dh-gal--n3, .dh-gal--n4 { grid-template-columns: 1fr 1fr; grid-auto-rows: 160px; } .dh-gal--n3 .dh-gal__item:first-child, .dh-gal--n4 .dh-gal__item:first-child { grid-column: span 2; grid-row: span 2; } .dh-gal--n2 { grid-auto-rows: 220px; } }
@media (max-width: 520px) { .dh-gal--one { grid-auto-rows: 260px; } }

/* lightbox (appended to <body> by site.js, so it is not inside .dh) */
.dh-lb { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; background: rgba(5,9,18,.94); padding: 56px 64px; font-family: "IBM Plex Sans", Arial, sans-serif; }
.dh-lb[hidden] { display: none; }
.dh-lb figure { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.dh-lb img { max-width: 100%; max-height: calc(100vh - 150px); object-fit: contain; border-radius: 8px; background: #fff; }
.dh-lb figcaption { color: #dfe6f0; font-size: 15px; text-align: center; }
.dh-lb button { position: absolute; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; }
.dh-lb button:hover { background: rgba(255,255,255,.25); }
.dh-lb button:focus-visible { outline: 3px solid #f2711c; outline-offset: 2px; }
.dh-lb__x { top: 14px; right: 14px; }
.dh-lb__prev { left: 12px; top: 50%; margin-top: -24px; }
.dh-lb__next { right: 12px; top: 50%; margin-top: -24px; }
.dh-lb__n { position: absolute; top: 24px; left: 20px; color: #a9b6c8; font-size: 14px; }
@media (max-width: 600px) { .dh-lb { padding: 64px 10px; } .dh-lb__prev, .dh-lb__next { top: auto; bottom: 14px; margin: 0; } .dh-lb__prev { left: calc(50% - 60px); } .dh-lb__next { right: calc(50% - 60px); } }

/* ---------- animated icons (continuous, GIF-like loops; parts marked i-* in icons.php) ---------- */
.dh .i-draw, .dh .i-blink, .dh .i-slide, .dh .i-beam, .dh .i-spark, .dh .i-flap, .dh .i-ram, .dh .i-spin, .dh .i-bob,
.dh .i-drops circle, .dh .i-track, .dh .i-pulse, .dh .i-arm, .dh .i-flash, .dh .i-belt, .dh .i-sway, .dh .i-scan, .dh .i-steam { transform-box: fill-box; }
.dh .i-draw { stroke-dasharray: 1; stroke-dashoffset: 1; animation: dhi-draw 2.6s ease-in-out infinite; }
.dh .i-blink { animation: dhi-blink 1.1s steps(2, jump-none) infinite; }
.dh .i-slide { animation: dhi-slide 2.4s ease-in-out infinite; }
.dh .i-beam { animation: dhi-flicker .22s steps(2, jump-none) infinite; }
.dh .i-spark { transform-origin: center; animation: dhi-spark .7s ease-out infinite; }
.dh .i-spark--2 { animation-delay: .35s; }
.dh .i-flap { transform-origin: left bottom; animation: dhi-flap 2.2s ease-in-out infinite; }
.dh .dh-i-bend .i-ram { animation: dhi-ram 2.2s ease-in-out infinite; }
.dh .dh-i-press .i-ram { animation: dhi-stamp 1.6s cubic-bezier(.6, 0, .4, 1) infinite; }
.dh .i-spin { transform-origin: center; animation: dhi-spin 4s linear infinite; }
.dh .dh-i-conveyor .i-spin { animation-duration: 1.4s; }
.dh .i-bob { animation: dhi-bob 1.6s ease-in-out infinite; }
.dh .i-drops circle { animation: dhi-drop 1.2s ease-in infinite; }
.dh .i-drops circle:nth-child(2) { animation-delay: .4s; }
.dh .i-drops circle:nth-child(3) { animation-delay: .8s; }
.dh .i-track { animation: dhi-track .6s linear infinite; }
.dh .dh-i-car .i-track { animation-duration: .45s; }
.dh .i-pulse { transform-origin: center; animation: dhi-pulse 1.8s ease-in-out infinite; }
.dh .i-arm { transform-origin: left bottom; animation: dhi-arm 2.4s ease-in-out infinite; }
.dh .i-flash { animation: dhi-flash 2s linear infinite; }
.dh .i-belt { animation: dhi-belt 1.8s linear infinite; }
.dh .i-sway { transform-origin: left bottom; animation: dhi-sway 2.6s ease-in-out infinite; }
.dh .i-scan { animation: dhi-scan 1.6s ease-in-out infinite; }
.dh .i-steam { animation: dhi-steam 2s ease-out infinite; }
@keyframes dhi-draw { 0% { stroke-dashoffset: 1; } 45%, 75% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -1; } }
@keyframes dhi-blink { 50% { opacity: .15; } }
@keyframes dhi-slide { 0%, 100% { transform: translateX(-3px); } 50% { transform: translateX(3px); } }
@keyframes dhi-flicker { 50% { opacity: .35; } }
@keyframes dhi-spark { 0% { transform: scale(.5); opacity: 1; } 100% { transform: scale(1.35); opacity: 0; } }
@keyframes dhi-flap { 0%, 15% { transform: rotate(40deg); } 50%, 70% { transform: rotate(0); } 100% { transform: rotate(40deg); } }
@keyframes dhi-ram { 0%, 15% { transform: translate(-1px, -2px); } 50%, 70% { transform: translate(0, 0); } 100% { transform: translate(-1px, -2px); } }
@keyframes dhi-stamp { 0%, 35% { transform: translateY(0); } 55%, 68% { transform: translateY(3.5px); } 100% { transform: translateY(0); } }
@keyframes dhi-spin { to { transform: rotate(360deg); } }
@keyframes dhi-bob { 0%, 100% { transform: translateY(-1px); } 50% { transform: translateY(1.2px); } }
@keyframes dhi-drop { 0% { transform: translate(-2px, -3px); opacity: 0; } 30% { opacity: 1; } 100% { transform: translate(1px, 4px); opacity: 0; } }
@keyframes dhi-track { to { stroke-dashoffset: -5; } }
@keyframes dhi-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }
@keyframes dhi-arm { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(-14deg); } }
@keyframes dhi-flash { 0%, 55%, 72%, 100% { opacity: 1; fill-opacity: 0; } 60% { opacity: .25; } 66% { opacity: 1; fill: currentColor; fill-opacity: .45; } 69% { opacity: .3; } }
@keyframes dhi-belt { 0% { transform: translateX(-3px); opacity: 0; } 20%, 80% { opacity: 1; } 100% { transform: translateX(3px); opacity: 0; } }
@keyframes dhi-sway { 0%, 100% { transform: rotate(-6deg); } 50% { transform: rotate(6deg); } }
@keyframes dhi-scan { 0%, 100% { transform: translateY(0); opacity: .5; } 50% { transform: translateY(3.5px); opacity: 1; } }
@keyframes dhi-steam { 0% { transform: translateY(2px); opacity: 0; } 40% { opacity: 1; } 100% { transform: translateY(-2.5px); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
	.dh [class^="i-"], .dh [class*=" i-"], .dh .i-drops circle { animation: none !important; }
	.dh .i-draw { stroke-dashoffset: 0; }
}
