/* ==========================================================================
   Downloads page (93, /resources/downloads/) — toolbar, document cards and
   the Design Support band. Loaded after style.css by
   cg_downloads_page_assets(); behaviour in downloads.js.

   Cards come from the "Download Card" loop template (2341):
   dlcard001 → dltop001 [dlicon001 icon, dlcat001 category] → dltitl001 →
   dldesc001 → dlfoot001 [dlmeta001 "PDF · size", dlbtn001 button].
   downloads.js adds .cg-dl-card--{category key} to each card for its colour.
   ========================================================================== */

body.page-id-93 {
	--dl-ink: #0C1825;
	--dl-body: #5A6678;
	--dl-muted: #8793A3;
	--dl-line: #E1E5EB;
	--dl-mist: #F4F6F9;
	--dl-accent: #1B3FA0;
	--dl-accent-2: #3563E0;
	--dl-ice: #9DB8FF;
	--dl-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--dl-head: "Space Grotesk", Inter, sans-serif;
}
body.page-id-93 .elementor-element-dwn0body { background: var(--dl-mist); }

/* Category colours (icon tile, tag, chip dot) */
.cg-dl-card--gear, .cg-dl-filter--gear { --dl-c: #1B3FA0; --dl-t: #EAF0FD; }
.cg-dl-card--spline, .cg-dl-filter--spline { --dl-c: #0B7A6F; --dl-t: #E3F4F1; }
.cg-dl-card--formula, .cg-dl-filter--formula { --dl-c: #7236B3; --dl-t: #F1EAFB; }
.cg-dl-card--inspection, .cg-dl-filter--inspection { --dl-c: #A85A06; --dl-t: #FBF0E2; }
.cg-dl-card--general, .cg-dl-filter--general { --dl-c: #4A5A70; --dl-t: #EDF0F4; }

/* ── Toolbar ─────────────────────────────────────────────────────────── */
.cg-dl-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 16px;
	padding: 14px;
	background: #fff;
	border: 1px solid var(--dl-line);
	border-radius: 18px;
	box-shadow: 0 24px 48px -34px rgba(7, 17, 31, .3);
	font-family: Inter, sans-serif;
}
.cg-dl-search { position: relative; flex: 0 1 320px; min-width: 220px; }
.cg-dl-search__icon {
	position: absolute; left: 16px; top: 50%; width: 18px; height: 18px; margin-top: -9px;
	fill: none; stroke: var(--dl-muted); stroke-width: 2; stroke-linecap: round; pointer-events: none;
}
.cg-dl-search:focus-within .cg-dl-search__icon { stroke: var(--dl-accent); }
body .cg-dl-toolbar input.cg-dl-search__input {
	box-sizing: border-box; display: block; width: 100%; height: 46px; margin: 0;
	padding: 0 44px 0 44px; border: 1px solid transparent; border-radius: 11px;
	background: var(--dl-mist); box-shadow: none; outline: 0;
	font: 400 15px/1.4 Inter, sans-serif; color: var(--dl-ink);
	-webkit-appearance: none; appearance: none;
	transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
body .cg-dl-toolbar input.cg-dl-search__input::placeholder { color: var(--dl-muted); opacity: 1; }
body .cg-dl-toolbar input.cg-dl-search__input::-webkit-search-cancel-button { display: none; -webkit-appearance: none; }
body .cg-dl-toolbar input.cg-dl-search__input:focus { background: #fff; border-color: var(--dl-accent); box-shadow: 0 0 0 4px rgba(27, 63, 160, .12); }
body .cg-dl-toolbar button.cg-dl-search__clear {
	position: absolute; right: 8px; top: 50%; display: grid; place-items: center;
	width: 32px; height: 32px; margin: -16px 0 0; padding: 0; border: 0; border-radius: 8px;
	background: transparent; color: var(--dl-body); cursor: pointer;
}
body .cg-dl-toolbar button.cg-dl-search__clear[hidden] { display: none; }
body .cg-dl-toolbar button.cg-dl-search__clear:hover { background: #EAF0FD; color: var(--dl-accent); }
.cg-dl-search__clear svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }

.cg-dl-toolbar .cg-dl-filterbar { flex: 1 1 auto; margin: 0; gap: 6px; }
body .cg-dl-toolbar button.cg-dl-filter {
	display: inline-flex; align-items: center; gap: 8px; height: 38px; margin: 0;
	padding: 0 8px 0 14px; border: 1px solid var(--dl-line); border-radius: 999px;
	background: #fff; box-shadow: none;
	font: 500 13.5px/1 Inter, sans-serif; letter-spacing: normal; text-transform: none;
	color: var(--dl-ink); white-space: nowrap; cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
body .cg-dl-toolbar button.cg-dl-filter[data-key]::before {
	content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--dl-c, var(--dl-muted));
}
body .cg-dl-toolbar button.cg-dl-filter:hover { border-color: #B7C3D3; background: var(--dl-mist); color: var(--dl-ink); }
body .cg-dl-toolbar button.cg-dl-filter:focus-visible { outline: 2px solid var(--dl-accent); outline-offset: 2px; }
body .cg-dl-toolbar button.cg-dl-filter.is-active,
body .cg-dl-toolbar button.cg-dl-filter.is-active:hover { background: var(--dl-accent); border-color: var(--dl-accent); color: #fff; }
body .cg-dl-toolbar button.cg-dl-filter.is-active::before { background: #fff; }
.cg-dl-toolbar .cg-dl-filter__n { margin-left: 0; }
.cg-dl-count { flex: none; margin: 0 6px 0 auto !important; font: 500 13px/1.3 Inter, sans-serif; color: var(--dl-muted); white-space: nowrap; }

.cg-dl-empty { margin-top: 4px; padding: 48px 24px; border: 1px dashed #CBD3DE; border-radius: 18px; background: #fff; text-align: center; font-family: Inter, sans-serif; }
.cg-dl-empty[hidden] { display: none; }
.cg-dl-empty .cg-dl-empty__title { margin: 0 0 6px; font: 600 19px/1.3 var(--dl-head); color: var(--dl-ink); }
.cg-dl-empty .cg-dl-empty__text { margin: 0; font-size: 15px; color: var(--dl-body); }
.cg-dl-empty a { color: var(--dl-accent); font-weight: 600; }

/* ── Document cards ──────────────────────────────────────────────────── */
.elementor-element-dwn0grid .e-loop-item { height: 100%; }
.elementor-element.elementor-element-dlcard001 {
	position: relative;
	height: 100%;
	border-color: var(--dl-line) !important;
	box-shadow: 0 1px 2px rgba(7, 17, 31, .04);
	transition: border-color .25s ease, box-shadow .3s ease, transform .3s cubic-bezier(.2, .7, .2, 1);
}
.elementor-element.elementor-element-dlcard001:hover {
	border-color: color-mix(in srgb, var(--dl-c, #1B3FA0) 35%, #E1E5EB) !important;
	box-shadow: 0 26px 50px -30px rgba(7, 17, 31, .38) !important;
	transform: translateY(-3px);
}
/* File icon as a tinted tile */
.cg-dl-icon {
	display: grid; place-items: center; width: 50px; height: 50px; margin: 0;
	border-radius: 13px; background: var(--dl-t, #EAF0FD); color: var(--dl-c, #1B3FA0);
	transition: background-color .25s ease, color .25s ease, transform .3s ease;
}
.cg-dl-icon svg { width: 23px; height: 23px; }
.elementor-element-dlcard001:hover .cg-dl-icon { background: var(--dl-c, #1B3FA0); color: #fff; transform: none; }
/* Category tag */
.elementor-element-dlcat001 .elementor-heading-title {
	display: inline-block; padding: 6px 10px; border-radius: 999px;
	background: var(--dl-t, #EDF0F4);
	font: 600 11px/1 Inter, sans-serif !important; letter-spacing: .06em !important; text-transform: uppercase !important;
	color: var(--dl-c, #4A5A70) !important;
}
/* Title + description */
body:not(#cg-type):not(#cgdl) .elementor-element-dltitl001 .elementor-heading-title {
	margin-top: 4px; font: 600 19px/1.3 var(--dl-head) !important; letter-spacing: -.01em !important; color: var(--dl-ink) !important;
	transition: color .2s ease;
}
.elementor-element-dlcard001:hover .elementor-element-dltitl001 .elementor-heading-title { color: var(--dl-c, #1B3FA0) !important; }
body:not(#cg-type):not(#cgdl) .elementor-element-dldesc001,
body:not(#cg-type):not(#cgdl) .elementor-element-dldesc001 p { font: 400 14.5px/1.65 Inter, sans-serif !important; color: var(--dl-body) !important; }
.elementor-element-dldesc001 p { margin: 0; }
/* Footer: file info + download button */
.elementor-element.elementor-element-dlfoot001 { margin-top: auto !important; border-top: 1px solid #EDF0F4; }
.cg-dl-meta { display: inline-flex; align-items: center; gap: 8px; font: 500 12.5px/1 Inter, sans-serif; color: var(--dl-muted); }
.cg-dl-meta__type { padding: 4px 7px; border-radius: 6px; background: #FBE9E7; font: 600 11px/1 var(--dl-mono); letter-spacing: .06em; color: #B42318; }
.elementor-element-dlbtn001 { margin-top: 0 !important; }
.elementor-element-dlbtn001 .elementor-button {
	gap: 8px; padding: 10px 14px !important; border-radius: 10px !important;
	background: var(--dl-mist) !important;
	font: 600 13px/1 Inter, sans-serif !important; letter-spacing: normal !important; text-transform: none !important;
	color: var(--dl-ink) !important;
	transition: background-color .25s ease, color .25s ease;
}
.elementor-element-dlbtn001 .elementor-button-text { border: 0 !important; }
.elementor-element-dlcard001:hover .elementor-element-dlbtn001 .elementor-button { background: var(--dl-accent) !important; color: #fff !important; }
/* Whole card opens the file */
.elementor-element-dlbtn001 .elementor-button::after { content: ""; position: absolute; inset: 0; border-radius: 16px; }

/* ── Design Support band ─────────────────────────────────────────────── */
.elementor-element.elementor-element-dwn0help {
	position: relative; overflow: hidden;
	background-image:
		radial-gradient(420px 260px at 100% 0%, rgba(59, 99, 214, .45), rgba(59, 99, 214, 0) 70%),
		linear-gradient(rgba(157, 184, 255, .06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(157, 184, 255, .06) 1px, transparent 1px) !important;
	background-size: auto, 32px 32px, 32px 32px !important;
}
.cg-dl-help-eyebrow .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 12px;
	font: 500 12px/1.3 var(--dl-mono) !important; letter-spacing: .18em !important; text-transform: uppercase !important; color: var(--dl-ice) !important;
}
.cg-dl-help-eyebrow .elementor-heading-title::before { content: ""; width: 24px; height: 1px; background: currentColor; }
body:not(#cg-type):not(#cgdl) .cg-dl-help-title .elementor-heading-title { font: 600 clamp(24px, 1.2rem + 1vw, 32px)/1.2 var(--dl-head) !important; letter-spacing: -.02em !important; color: #fff !important; }
body:not(#cg-type):not(#cgdl) .cg-dl-help-text,
body:not(#cg-type):not(#cgdl) .cg-dl-help-text p { max-width: 560px; margin: 0; font: 400 15.5px/1.6 Inter, sans-serif !important; color: rgba(214, 224, 245, .8) !important; }
.elementor-element-dwn0helpbtns { flex: none; }
:is(.cg-dl-help-call, .cg-dl-help-mail) .elementor-button {
	padding: 15px 22px !important; border-radius: 10px !important;
	font: 600 13px/1 Inter, sans-serif !important; letter-spacing: .06em !important; text-transform: uppercase !important;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
:is(.cg-dl-help-call, .cg-dl-help-mail) .elementor-button-content-wrapper { align-items: center; gap: 9px; }
:is(.cg-dl-help-call, .cg-dl-help-mail) .elementor-button-icon svg { width: 13px; height: 13px; fill: currentColor !important; }
.cg-dl-help-call .elementor-button { background: var(--dl-accent) !important; border: 1px solid var(--dl-accent) !important; color: #fff !important; }
.cg-dl-help-call .elementor-button:hover { background: var(--dl-accent-2) !important; border-color: var(--dl-accent-2) !important; }
.cg-dl-help-mail .elementor-button { background: transparent !important; border: 1px solid rgba(157, 184, 255, .4) !important; color: #fff !important; }
.cg-dl-help-mail .elementor-button:hover { border-color: #fff !important; background: rgba(255, 255, 255, .06) !important; }

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
	.cg-dl-search { flex: 1 1 100%; }
	.cg-dl-count { margin-left: 0 !important; }
}
@media (max-width: 767px) {
	.cg-dl-toolbar { padding: 12px; }
	.cg-dl-toolbar .cg-dl-filterbar {
		flex-wrap: nowrap; overflow-x: auto; margin: 0 -12px; padding: 2px 12px 4px; scrollbar-width: none;
	}
	.cg-dl-toolbar .cg-dl-filterbar::-webkit-scrollbar { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.elementor-element.elementor-element-dlcard001, .cg-dl-icon { transition: none; }
	.elementor-element.elementor-element-dlcard001:hover { transform: none; }
}

/* Band: text takes the free space, buttons sit at the right edge */
.elementor-element.elementor-element-dwn0helptx { flex: 1 1 auto; min-width: 0; }
.elementor-element.elementor-element-dwn0helpbtns { justify-content: flex-end; width: auto !important; }
@media (max-width: 1024px) { .elementor-element.elementor-element-dwn0helpbtns { justify-content: flex-start; width: 100% !important; } }
