/*
 * CJDMS Core — Global Frontend Design System
 * ===========================================
 * Single stylesheet covering every public page (home, 4 service pillars,
 * Strategic Partnerships), the unified inquiry form, the affiliate/partner
 * signup forms, all three portals (client/affiliate/partner) and the
 * client quotation viewer. 100% custom, no framework. BEM class names match
 * the markup emitted by each shortcode view class exactly — see each
 * class-cjdms-*-shortcode.php file for the corresponding PHP.
 *
 * Enqueued only on pages this plugin itself owns — see
 * CJDMS_Frontend_Assets::should_load().
 */

/* ==========================================================================
   1. Design Tokens
   ========================================================================== */

:root {
	/* Brand palette (fixed values from the CJDMS identity spec). */
	--cjdms-primary-blue: #1E88E5;
	--cjdms-dark-blue: #1565C0;
	--cjdms-accent-blue: #527DF3;
	/* WCAG-AA-safe variant of the blue accent for text sitting on light
	   backgrounds (gold/yellow/white/silver) — #527DF3 itself only clears
	   4.5:1 against dark backgrounds (verified against black: ~5.6:1; against
	   #FFC107 gold: ~2.3:1, against white: ~3.8:1 — both fail small text). */
	--cjdms-accent-blue-onlight: #1A3FAE;
	--cjdms-accent-yellow: #FFC107;
	--cjdms-accent-gold: #FFD700;
	--cjdms-brand-green: #008744;
	--cjdms-header-black: #000000;
	--cjdms-footer-black: #0A0A0A;
	--cjdms-topbar-gray: #DCE0E5;
	--cjdms-text-dark: #1A202C;
	--cjdms-text-muted: #64748B;
	--cjdms-bg-light: #F8FAFC;
	--cjdms-border-color: #E2E8F0;
	--cjdms-white: #FFFFFF;

	/* Semantic status colors, derived from the brand palette so every badge
	   pill across every portal reads consistently. */
	--cjdms-success: #0F7A3D;
	--cjdms-success-bg: #E3F6EA;
	--cjdms-warning: #92650A;
	--cjdms-warning-bg: #FFF4D6;
	--cjdms-info: var(--cjdms-dark-blue);
	--cjdms-info-bg: #E3F1FD;
	--cjdms-danger: #B3261E;
	--cjdms-danger-bg: #FBE7E6;
	--cjdms-neutral: #475569;
	--cjdms-neutral-bg: #EEF1F5;

	/* Type. */
	--cjdms-font-heading: 'Oswald', 'Segoe UI', -apple-system, sans-serif;
	--cjdms-font-body: 'Oswald', 'Segoe UI', -apple-system, sans-serif;
	--cjdms-font-hero: 'Oswald', 'Segoe UI', -apple-system, sans-serif;

	/* Shape & motion. */
	--cjdms-radius-sm: 6px;
	--cjdms-radius: 10px;
	--cjdms-radius-lg: 16px;
	--cjdms-radius-pill: 999px;
	--cjdms-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06);
	--cjdms-shadow: 0 8px 24px -12px rgba(15, 23, 42, 0.18);
	--cjdms-shadow-lg: 0 20px 40px -16px rgba(15, 23, 42, 0.28);
	--cjdms-transition: 160ms ease;
	--cjdms-container: 1160px;
}

/* ==========================================================================
   2. Reset & Base
   ========================================================================== */

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

/* Sitewide keyboard-focus indicator — nothing above removes the browser
   default, but nothing styles it to match the brand either, so links/buttons
   fall back to inconsistent per-browser rings. One rule here covers every
   interactive element at once rather than chasing each component. */
.cjdms-page a:focus-visible,
.cjdms-page button:focus-visible,
.cjdms-page input:focus-visible,
.cjdms-page select:focus-visible,
.cjdms-page textarea:focus-visible,
.cjdms-page [tabindex]:focus-visible {
	outline: 3px solid var(--cjdms-accent-blue);
	outline-offset: 2px;
	border-radius: 2px;
}

.cjdms-page {
	font-family: var(--cjdms-font-body);
	color: var(--cjdms-text-dark);
	line-height: 1.6;
	font-size: 16px;
	background: var(--cjdms-white);
	-webkit-font-smoothing: antialiased;
	/* Full-bleed sections (trust marquee, founder leadership) break out to
	   100vw via negative margins; 100vw excludes the scrollbar gutter on
	   most browsers, which would otherwise cause a few px of horizontal
	   overflow — this belt-and-suspenders rule guarantees no side-scroll. */
	overflow-x: hidden;
}

.cjdms-page img { max-width: 100%; height: auto; display: block; }

.cjdms-page h1, .cjdms-page h2, .cjdms-page h3, .cjdms-page h4 {
	font-family: var(--cjdms-font-heading);
	line-height: 1.2;
	margin: 0;
	text-wrap: balance;
}
/* Zero-specificity default so any single-class component rule (e.g.
   .cjdms-showcase__headline { color: white }) always wins without needing
   its own element+class specificity bump — this was the root cause of the
   hero/trust/founder headline-color bugs found via visual QA. */
:where(.cjdms-page h1, .cjdms-page h2, .cjdms-page h3, .cjdms-page h4) {
	color: var(--cjdms-header-black);
}

:where(.cjdms-page a) { color: var(--cjdms-dark-blue); }
:where(.cjdms-page a:hover) { color: var(--cjdms-primary-blue); }

.cjdms-page__main { min-height: 40vh; }

.cjdms-container {
	max-width: var(--cjdms-container);
	margin: 0 auto;
	padding: 0 24px;
}

/* Staff Portal runs full-width — it's an internal working tool (Kanban
   boards, data tables), not marketing copy that benefits from a narrow
   reading measure like the rest of the site. */
.cjdms-container:has(.cjdms-staffportal) {
	max-width: none;
	padding: 0 32px;
}

/* Generic building blocks reused by several shortcodes. */
.cjdms-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 26px;
	border-radius: var(--cjdms-radius-sm);
	font-family: var(--cjdms-font-heading);
	font-weight: 700;
	font-size: 15px;
	text-decoration: none;
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform var(--cjdms-transition), box-shadow var(--cjdms-transition), background var(--cjdms-transition), color var(--cjdms-transition);
	line-height: 1.1;
}
.cjdms-btn:hover { transform: translateY(-1px); }
.cjdms-btn--gold {
	background: var(--cjdms-accent-yellow);
	color: var(--cjdms-accent-blue-onlight);
	box-shadow: var(--cjdms-shadow-sm);
}
.cjdms-btn--gold:hover { background: var(--cjdms-accent-gold); color: var(--cjdms-accent-blue-onlight); }
.cjdms-btn--blue {
	background: var(--cjdms-primary-blue);
	color: var(--cjdms-white);
}
.cjdms-btn--blue:hover { background: var(--cjdms-dark-blue); color: var(--cjdms-white); }
.cjdms-btn--outline {
	background: transparent;
	border-color: var(--cjdms-accent-blue);
	color: var(--cjdms-accent-blue);
}
.cjdms-btn--outline:hover { background: rgba(82,125,243,0.12); color: var(--cjdms-accent-blue); }
.cjdms-btn--dark {
	background: var(--cjdms-header-black);
	color: var(--cjdms-accent-blue);
}
.cjdms-btn--dark:hover { background: #1a1a1a; color: var(--cjdms-accent-blue); }
.cjdms-btn--block { width: 100%; }

.print-only { display: none !important; }

.cjdms-404 { max-width: 560px; margin: 0 auto; padding: 88px 24px; text-align: center; }
.cjdms-404__code {
	font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 84px; line-height: 1;
	margin: 0 0 8px; color: var(--cjdms-accent-blue); letter-spacing: -.02em;
}
.cjdms-404__title { font-size: 26px; margin: 0 0 14px; }
.cjdms-404__body { color: var(--cjdms-text-muted); font-size: 15.5px; line-height: 1.6; margin: 0 0 32px; }
.cjdms-404__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.cjdms-404__cta {
	display: inline-block; padding: 13px 28px; border-radius: var(--cjdms-radius-sm);
	font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 14.5px; text-decoration: none;
	transition: background var(--cjdms-transition), transform var(--cjdms-transition), color var(--cjdms-transition);
}
.cjdms-404__cta--primary { background: var(--cjdms-dark-blue); color: var(--cjdms-white); }
.cjdms-404__cta--primary:hover { background: #10478f; transform: translateY(-1px); }
.cjdms-404__cta--secondary { background: transparent; border: 1.5px solid var(--cjdms-dark-blue); color: var(--cjdms-dark-blue); }
.cjdms-404__cta--secondary:hover { background: var(--cjdms-dark-blue); color: var(--cjdms-white); }
@media print { .no-print { display: none !important; } .print-only { display: block !important; } }

/* ==========================================================================
   3. Global Header — Top Utility Bar + Main Navbar
   ========================================================================== */

.cjdms-header-sticky { position: sticky; top: 0; z-index: 200; }
.cjdms-topbar {
	background: rgba(220, 224, 229, 0.55);
	backdrop-filter: blur(14px) saturate(160%);
	-webkit-backdrop-filter: blur(14px) saturate(160%);
	border-bottom: 1px solid rgba(255,255,255,0.4);
	color: var(--cjdms-text-dark);
	font-size: 13px;
}
.cjdms-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 10px 24px;
	max-width: var(--cjdms-container);
	margin: 0 auto;
}
.cjdms-topbar__channels {
	display: flex;
	align-items: center;
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.cjdms-topbar__channel {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--cjdms-text-dark);
	text-decoration: none;
	font-weight: 600;
}
.cjdms-topbar__channel:hover { opacity: .8; }
.cjdms-topbar__channel svg { width: 15px; height: 15px; flex-shrink: 0; }
.cjdms-topbar__channel--linkedin { color: #0A66C2; }
.cjdms-topbar__channel--facebook { color: #1877F2; }
.cjdms-topbar__channel--whatsapp { color: #25D366; }
.cjdms-topbar__channel--phone { color: var(--cjdms-text-dark); }
.cjdms-navbar {
	background: var(--cjdms-header-black);
	border-bottom: 1px solid rgba(255,255,255,0.08);
	position: relative;
	z-index: 40;
	transition: background var(--cjdms-transition), backdrop-filter var(--cjdms-transition);
}
/* Solid black at rest; the glassy blur/transparency only applies once the
   page has actually been scrolled (see the .cjdms-header-sticky scroll
   listener in cjdms-frontend.js) — never on first load. */
.cjdms-header-sticky.is-scrolled .cjdms-navbar {
	background: rgba(0, 0, 0, 0.55);
	backdrop-filter: blur(16px) saturate(160%);
	-webkit-backdrop-filter: blur(16px) saturate(160%);
}
.cjdms-navbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	max-width: var(--cjdms-container);
	margin: 0 auto;
	padding: 14px 24px;
}
/* The logo was actually the tallest element in the navbar row (taller than
   the single-line menu), so simply enlarging the <img> would have grown
   the whole bar — the opposite of what was asked. Instead the anchor keeps
   the OLD footprint (44px tall) for flex layout purposes, and the enlarged
   <img> is taken out of flow (absolute + centered) so it visually overflows
   larger without the row itself growing. */
.cjdms-navbar__logo {
	position: relative;
	display: flex;
	align-items: center;
	text-decoration: none;
	flex-shrink: 0;
	width: 121.7px;
	height: 44px;
	padding: 4px 0;
}
.cjdms-navbar .cjdms-navbar__logo-img {
	/* +30% height, +20% width off the previous 44px/121.7px baseline,
	   deliberately independent (not aspect-locked) per instruction. */
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	height: 57.2px;
	width: 146px;
	max-width: none;
	display: block;
}

.cjdms-navbar__toggle {
	display: none;
	background: none;
	border: 2px solid rgba(255,255,255,0.3);
	border-radius: var(--cjdms-radius-sm);
	width: 42px;
	height: 38px;
	cursor: pointer;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
}
.cjdms-navbar__toggle span {
	display: block;
	width: 20px;
	height: 2px;
	background: var(--cjdms-white);
	border-radius: 2px;
}

.cjdms-navbar__menu {
	display: flex;
	align-items: center;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
}
.cjdms-navbar__item { position: relative; }
.cjdms-navbar__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 11px 14px;
	color: rgba(255,255,255,0.85);
	text-decoration: none;
	font-weight: 600;
	font-size: 16.7px;
	border-bottom: 2px solid transparent;
	transition: color var(--cjdms-transition), border-color var(--cjdms-transition);
}
/* Gold underline slides in from the left on hover, rather than the old
   instant color flip — a deliberate hover animation, kept separate from
   .is-active's static full-width underline below. */
.cjdms-navbar__link::after {
	content: '';
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: -2px;
	height: 2px;
	background: #fed42d;
	box-shadow: 0 0 8px rgba(254, 212, 45, 0.85);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 280ms ease;
}
.cjdms-navbar__link:hover::after { transform: scaleX(1); }
.cjdms-navbar__link:hover {
	color: #fed42d;
	text-shadow: 0 0 10px rgba(254, 212, 45, 0.5);
	border-bottom-color: #fed42d;
}
.cjdms-navbar__link.is-active {
	color: var(--cjdms-accent-blue);
	border-bottom-color: var(--cjdms-accent-blue);
}
.cjdms-navbar__submenu {
	list-style: none;
	margin: 0;
	padding: 6px;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 100%;
	width: max-content;
	max-width: 280px;
	background: rgba(0, 0, 0, 0.55);
	backdrop-filter: blur(16px) saturate(160%);
	-webkit-backdrop-filter: blur(16px) saturate(160%);
	border: 1px solid rgba(255,255,255,0.12);
	border-radius: var(--cjdms-radius-sm);
	box-shadow: var(--cjdms-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 320ms ease, transform 320ms ease, visibility 320ms ease;
	z-index: 50;
}
.cjdms-navbar__item:hover .cjdms-navbar__submenu,
.cjdms-navbar__item:focus-within .cjdms-navbar__submenu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.cjdms-navbar__submenu a {
	display: block;
	padding: 10px 12px;
	border-radius: var(--cjdms-radius-sm);
	color: #ffffff;
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
	border-bottom: 1px solid rgba(255,255,255,0.1);
	transition: background var(--cjdms-transition), color var(--cjdms-transition);
}
.cjdms-navbar__submenu li:last-child a { border-bottom: none; }
.cjdms-navbar__submenu a:hover { background: rgba(255,255,255,0.1); color: #fed42d; }
.cjdms-navbar__cta {
	margin-left: 8px;
	padding: 11.55px 28.75px;
	font-size: 19.4px;
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: uppercase;
	background: linear-gradient(135deg, #f6f7f9 0%, #c9cdd3 45%, #eef0f2 55%, #b8bcc2 100%);
	color: var(--cjdms-accent-blue-onlight);
	text-shadow: 0 1px 0 rgba(255,255,255,0.6);
	border: 1px solid rgba(255,255,255,0.6);
	box-shadow: 0 1px 0 rgba(255,255,255,0.5) inset, 0 6px 16px -6px rgba(0,0,0,0.45);
	transition: transform var(--cjdms-transition), box-shadow var(--cjdms-transition), background var(--cjdms-transition);
}
.cjdms-navbar__cta:hover {
	background: linear-gradient(135deg, #ffffff 0%, #d7dbe1 45%, #f6f7f9 55%, #c4c8ce 100%);
	color: #3E5FD9;
	transform: translateY(-2px);
	box-shadow: 0 1px 0 rgba(255,255,255,0.7) inset, 0 10px 22px -8px rgba(0,0,0,0.5);
}

/* Fixed bottom action bar, mobile-only (see the @media (max-width: 768px)
   block for the display:flex that actually reveals this and the body
   padding-bottom that keeps it from covering footer content). */
.cjdms-mobile-cta {
	display: none;
	position: fixed;
	bottom: 0; left: 0; right: 0;
	z-index: 150;
	gap: 10px;
	padding: 10px 14px;
	background: var(--cjdms-header-black);
	border-top: 1px solid rgba(255,255,255,0.1);
	box-shadow: 0 -6px 16px rgba(0,0,0,0.25);
}
.cjdms-mobile-cta__quote {
	flex: 1;
	display: flex; align-items: center; justify-content: center;
	padding: 12px 16px;
	background: var(--cjdms-primary-blue);
	color: var(--cjdms-white);
	font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 14.5px; text-transform: uppercase;
	text-decoration: none;
	border-radius: var(--cjdms-radius-sm);
}
.cjdms-mobile-cta__whatsapp {
	display: flex; align-items: center; justify-content: center;
	width: 46px; flex-shrink: 0;
	background: #25D366;
	color: var(--cjdms-white);
	border-radius: var(--cjdms-radius-sm);
	text-decoration: none;
}
.cjdms-mobile-cta__whatsapp svg { width: 22px; height: 22px; }

/* ==========================================================================
   4. Global Footer
   ========================================================================== */

.cjdms-footer { background: #111418; color: rgba(255,255,255,0.75); }
.cjdms-footer__inner {
	max-width: var(--cjdms-container);
	margin: 0 auto;
	padding: 56px 24px 32px;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 32px;
}
.cjdms-footer__brand-text {
	font-family: var(--cjdms-font-heading);
	font-weight: 800;
	font-size: 20px;
	color: var(--cjdms-white);
	margin-bottom: 12px;
}
.cjdms-footer__brand-text span { color: var(--cjdms-accent-yellow); }
.cjdms-footer__tagline { font-size: 14px; max-width: 320px; margin: 0 0 16px; }
.cjdms-footer__col-title {
	font-family: var(--cjdms-font-heading);
	color: var(--cjdms-white);
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: .06em;
	margin: 0 0 16px;
}
.cjdms-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.cjdms-footer__list a { color: rgba(255,255,255,0.75); text-decoration: none; font-size: 14px; }
.cjdms-footer__list a:hover { color: var(--cjdms-accent-yellow); }
.cjdms-footer__social { display: flex; gap: 10px; margin-top: 16px; }
.cjdms-footer__social a {
	width: 34px; height: 34px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: var(--cjdms-radius-pill);
	background: rgba(255,255,255,0.08);
	color: var(--cjdms-white);
}
.cjdms-footer__social a:hover { background: var(--cjdms-primary-blue); }
.cjdms-footer__social svg { width: 16px; height: 16px; }

.cjdms-footer__inner--3col { grid-template-columns: 1fr 1fr 1.1fr; }

.cjdms-footer__subfooter { background: var(--cjdms-footer-black); }
.cjdms-footer__subfooter-inner {
	max-width: var(--cjdms-container);
	margin: 0 auto;
	padding: 18px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	font-size: 12.5px;
	color: rgba(255,255,255,0.55);
}
.cjdms-footer__subfooter-links { display: flex; gap: 18px; list-style: none; margin: 0; padding: 0; }
.cjdms-footer__subfooter-links a { color: rgba(255,255,255,0.55); text-decoration: none; }
.cjdms-footer__subfooter-links a:hover { color: var(--cjdms-accent-yellow); }

/* ==========================================================================
   5. Hero Blocks (used by [cjdms_service_showcase] and the login/notice
      states of every portal, which share the same visual weight)
   ========================================================================== */

.cjdms-showcase__hero {
	background: linear-gradient(135deg, var(--cjdms-primary-blue) 0%, var(--cjdms-dark-blue) 100%);
	border-radius: var(--cjdms-radius-lg);
	padding: 64px 40px;
	text-align: center;
	color: var(--cjdms-white);
	margin-bottom: 8px;
}
.cjdms-showcase__eyebrow {
	text-transform: uppercase;
	letter-spacing: .1em;
	font-size: 13px;
	font-weight: 800;
	color: var(--cjdms-accent-yellow);
	margin: 0 0 14px;
}
.cjdms-showcase__headline {
	font-size: clamp(28px, 4.5vw, 42px);
	line-height: 1.15;
	margin: 0 0 18px;
	color: var(--cjdms-white);
}
.cjdms-showcase__subhead {
	font-size: 18px;
	color: rgba(255,255,255,0.9);
	max-width: 700px;
	margin: 0 auto;
}
.cjdms-showcase__headline-accent {
	color: var(--cjdms-accent-yellow);
	text-shadow: 0 0 18px rgba(255, 193, 7, 0.65);
}
.cjdms-showcase__subhead-accent {
	color: var(--cjdms-accent-yellow);
	font-weight: 800;
}
.cjdms-showcase__hero--vignette .cjdms-showcase__headline {
	font-family: var(--cjdms-font-hero);
	font-size: clamp(32px, 5.4vw, 54px);
	font-weight: 800;
	text-transform: uppercase;
}
.cjdms-showcase__hero--vignette .cjdms-showcase__subhead {
	max-width: 900px;
	font-size: 16px;
	line-height: 1.7;
}
.cjdms-showcase__hero--vignette {
	position: relative;
	border-radius: 0;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-top: -8px;
	margin-bottom: 0;
	padding-left: max(40px, calc((100vw - var(--cjdms-container)) / 2 + 40px));
	padding-right: max(40px, calc((100vw - var(--cjdms-container)) / 2 + 40px));
	border-top: 6px solid #fed42d;
	border-bottom: 6px solid #fed42d;
	box-shadow: 0 0 18px rgba(254, 212, 45, 0.55);
	background:
		radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0) 55%),
		radial-gradient(ellipse at 50% 120%, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 60%),
		linear-gradient(135deg, var(--cjdms-primary-blue) 0%, var(--cjdms-dark-blue) 100%);
	overflow: hidden;
}
.cjdms-showcase__audit-banner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	width: 100%;
	max-width: 1000px;
	margin: 28px auto 0;
	padding: 16px 32px;
	border-radius: 14px;
	background: linear-gradient(90deg, #f3ecd8 0%, var(--cjdms-accent-gold) 55%, var(--cjdms-accent-yellow) 100%);
	color: var(--cjdms-accent-blue-onlight);
	text-decoration: none;
	box-shadow: var(--cjdms-shadow-lg);
	transition: transform var(--cjdms-transition);
}
.cjdms-showcase__audit-banner:hover { transform: translateY(-2px); color: var(--cjdms-accent-blue-onlight); }
.cjdms-showcase__audit-banner-line { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 4px; }
.cjdms-showcase__audit-banner-quote {
	font-family: var(--cjdms-font-hero);
	font-weight: 700;
	font-size: 16px;
	text-align: center;
	letter-spacing: .01em;
}
.cjdms-showcase__audit-banner-cta {
	font-family: var(--cjdms-font-hero);
	font-weight: 800;
	font-size: 17px;
	letter-spacing: .01em;
	margin-left: 8px;
}
.cjdms-showcase__audit-banner-sub {
	font-family: var(--cjdms-font-hero);
	font-size: 15px;
	font-weight: 700;
	text-align: center;
	letter-spacing: .01em;
	text-transform: uppercase;
}

/* ==========================================================================
   5b. Partners in Scale — Trust Marquee (homepage only)
   ========================================================================== */

.cjdms-trust {
	background: var(--cjdms-header-black);
	padding: 0 0 48px;
	overflow: hidden;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.cjdms-trust__header,
.cjdms-trust__marquee { max-width: var(--cjdms-container); margin-left: auto; margin-right: auto; }
.cjdms-trust__ticker {
	overflow: hidden;
	border-bottom: 1px solid rgba(255,255,255,0.1);
	padding: 16px 0;
	margin-bottom: 40px;
	mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
	-webkit-mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
}
.cjdms-trust__ticker-inner {
	display: flex;
	align-items: center;
	gap: 14px;
	width: max-content;
	white-space: nowrap;
	animation: cjdms-marquee-left 26s linear infinite;
}
.cjdms-trust__ticker:hover .cjdms-trust__ticker-inner { animation-play-state: paused; }
.cjdms-trust__ticker-item {
	color: rgba(255,255,255,0.75);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	white-space: nowrap;
}
.cjdms-trust__ticker-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--cjdms-danger); flex: none; }

.cjdms-trust__header { text-align: center; max-width: 680px; margin: 0 auto 36px; padding: 0 20px; }
.cjdms-trust__tag {
	display: inline-block;
	color: var(--cjdms-danger);
	font-family: var(--cjdms-font-heading);
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: .12em;
	margin-bottom: 14px;
}
.cjdms-trust__title {
	color: var(--cjdms-white);
	font-size: clamp(26px, 4vw, 36px);
	letter-spacing: .02em;
	margin: 0 0 14px;
	text-transform: uppercase;
}
.cjdms-trust__title-accent { color: var(--cjdms-danger); }
.cjdms-trust__subhead { color: rgba(255,255,255,0.65); font-size: 15.5px; line-height: 1.6; margin: 0; }

.cjdms-trust__marquee {
	overflow: hidden;
	mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);
	-webkit-mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);
	margin-top: 18px;
}
.cjdms-trust__track {
	display: flex;
	align-items: center;
	gap: 18px;
	width: max-content;
	will-change: transform;
}
.cjdms-trust__track--left { animation: cjdms-marquee-left 32s linear infinite; }
.cjdms-trust__track--right { animation: cjdms-marquee-right 32s linear infinite; }
.cjdms-trust__marquee:hover .cjdms-trust__track { animation-play-state: paused; }

.cjdms-trust__pill {
	flex: none;
	background: var(--cjdms-white);
	border-radius: 12px;
	min-height: 72px;
	min-width: 160px;
	padding: 12px 26px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: var(--cjdms-shadow-sm);
}
.cjdms-trust__pill img { max-height: 40px; max-width: 140px; width: auto; height: auto; object-fit: contain; }
.cjdms-trust__pill-text { font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 14px; color: var(--cjdms-text-dark); white-space: nowrap; }

@keyframes cjdms-marquee-left { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes cjdms-marquee-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }

@media (prefers-reduced-motion: reduce) {
	.cjdms-trust__track, .cjdms-trust__ticker-inner { animation: none; }
}

/* ==========================================================================
   5c. Beyond Technology — Life / Vision / Mission (homepage only)
   ========================================================================== */

.cjdms-beyond { padding: 48px 0 16px; }
.cjdms-beyond__header { text-align: center; max-width: 640px; margin: 0 auto 32px; }
.cjdms-beyond__title { color: var(--cjdms-header-black); font-size: clamp(24px, 3.6vw, 32px); margin: 0 0 10px; }
.cjdms-beyond__subtitle { color: var(--cjdms-primary-blue); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; font-size: 13px; margin: 0; }
.cjdms-beyond__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 22px; }
.cjdms-beyond__card {
	background: rgba(255,255,255,0.9);
	border: 1px solid rgba(2,132,199,0.15);
	border-radius: var(--cjdms-radius-lg);
	padding: 30px 26px;
	box-shadow: var(--cjdms-shadow-sm);
	transition: transform var(--cjdms-transition), box-shadow var(--cjdms-transition);
}
.cjdms-beyond__card:hover { transform: translateY(-4px); box-shadow: var(--cjdms-shadow-lg); }
.cjdms-beyond__card-title { color: var(--cjdms-primary-blue); font-size: 19px; margin: 0 0 12px; }
.cjdms-beyond__card-body { color: var(--cjdms-text-muted); font-size: 15px; line-height: 1.7; margin: 0; }

/* ==========================================================================
   5d. Leadership & Story — Founder Profile (homepage only)
   ========================================================================== */

.cjdms-founder {
	padding: 48px 0 56px;
	background: var(--cjdms-header-black);
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.cjdms-founder__ribbon,
.cjdms-founder__box,
.cjdms-founder__grid {
	max-width: var(--cjdms-container);
	margin-left: auto;
	margin-right: auto;
}
.cjdms-founder__grid { padding-left: 24px; padding-right: 24px; }
.cjdms-founder__ribbon {
	background: linear-gradient(90deg, var(--cjdms-accent-gold), var(--cjdms-header-black) 85%);
	border-radius: var(--cjdms-radius);
	padding: 14px 24px;
	text-align: center;
	margin-bottom: 18px;
}
.cjdms-founder__ribbon span {
	color: var(--cjdms-white);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: 15px;
}
.cjdms-founder__box {
	background: linear-gradient(135deg, var(--cjdms-primary-blue) 0%, var(--cjdms-dark-blue) 100%);
	border-radius: var(--cjdms-radius);
	padding: 20px 28px;
	text-align: center;
	margin-bottom: 32px;
}
.cjdms-founder__box p { color: var(--cjdms-white); font-weight: 600; font-size: 15px; margin: 0; line-height: 1.6; }

.cjdms-founder__grid { display: grid; grid-template-columns: 300px 1fr; gap: 48px; align-items: start; }
.cjdms-founder__portrait img,
.cjdms-founder__portrait-placeholder {
	width: 100%;
	aspect-ratio: 3 / 4;
	border-radius: 160px 160px 12px 12px;
	box-shadow: var(--cjdms-shadow-lg);
}
.cjdms-founder__portrait img { object-fit: cover; filter: grayscale(1) contrast(1.05); }
.cjdms-founder__portrait-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #2b2f36, #16181c);
	color: var(--cjdms-white);
	font-family: var(--cjdms-font-heading);
	font-weight: 800;
	font-size: 56px;
}
.cjdms-founder__name {
	font-family: var(--cjdms-font-heading);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .02em;
	font-size: clamp(26px, 3.4vw, 34px);
	color: var(--cjdms-white);
	margin: 0 0 16px;
}
.cjdms-founder__narrative p { color: rgba(255,255,255,0.7); font-size: 15px; line-height: 1.75; margin: 0 0 16px; }
.cjdms-founder__narrative p strong { color: var(--cjdms-white); }
.cjdms-founder__metrics {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 20px;
	margin: 28px 0;
}
.cjdms-founder__metric { text-align: left; }
.cjdms-founder__metric-value { display: block; font-family: var(--cjdms-font-heading); font-weight: 800; color: var(--cjdms-danger); font-size: clamp(20px, 2.4vw, 28px); line-height: 1.1; }
.cjdms-founder__metric-label { display: block; color: rgba(255,255,255,0.5); font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; margin-top: 6px; }
.cjdms-founder__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 26px;
	background: var(--cjdms-white);
	color: var(--cjdms-accent-blue-onlight);
	text-decoration: none;
	font-family: var(--cjdms-font-heading);
	font-weight: 700;
	font-size: 13.5px;
	text-transform: uppercase;
	letter-spacing: .04em;
	border-radius: var(--cjdms-radius-sm);
	transition: transform var(--cjdms-transition), background var(--cjdms-transition);
}
.cjdms-founder__cta:hover { background: var(--cjdms-accent-yellow); color: var(--cjdms-accent-blue-onlight); transform: translateY(-2px); }

/* ==========================================================================
   5e. Wavy Divider (hero blue -> black ribbon)
   ========================================================================== */

.cjdms-showcase__wave { margin: 0 0 -2px; line-height: 0; }
.cjdms-showcase__wave svg { width: 100%; height: 60px; display: block; }
.cjdms-showcase__wave path { fill: var(--cjdms-header-black); }

/* ==========================================================================
   5f. Black Ribbon — "Choose your business segment" announcement
   ========================================================================== */

.cjdms-showcase__ribbon {
	background: var(--cjdms-header-black);
	padding: 32px 24px;
	text-align: center;
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.cjdms-showcase__ribbon::before,
.cjdms-showcase__ribbon::after {
	content: '';
	display: block;
	width: 220px;
	max-width: 60%;
	height: 2px;
	margin: 0 auto 20px;
	background: linear-gradient(90deg, transparent, #fed42d, transparent);
	box-shadow: 0 0 8px #fed42d;
}
.cjdms-showcase__ribbon::after { margin: 20px auto 0; }
.cjdms-showcase__ribbon-text {
	max-width: 900px;
	margin: 0 auto;
	color: var(--cjdms-white);
	font-family: var(--cjdms-font-hero);
	font-weight: 700;
	font-size: clamp(16px, 2.4vw, 21px);
	line-height: 1.5;
}
.cjdms-showcase__ribbon-emoji { display: inline-block; margin-right: 8px; }

/* ==========================================================================
   5g. Blue Bordered CTA Box
   ========================================================================== */

.cjdms-showcase__cta-box-wrap {
	background: var(--cjdms-primary-blue);
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 32px 24px 8px;
}
.cjdms-showcase__cta-box {
	position: relative;
	overflow: hidden;
	max-width: 780px;
	margin: 0 auto;
	padding: 18px 28px;
	border: 1px solid rgba(0,0,0,0.12);
	border-radius: var(--cjdms-radius-sm);
	text-align: center;
	background: linear-gradient(135deg, #a3a8b0 0%, #e8eaec 22%, #ffffff 48%, #c2c6cc 74%, #92969e 100%);
	box-shadow: 0 10px 28px -10px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.8);
}
.cjdms-showcase__cta-box::before {
	content: '';
	position: absolute;
	top: 0;
	left: -60%;
	width: 60%;
	height: 100%;
	background: linear-gradient(100deg, transparent, rgba(255,255,255,0.95), transparent);
	animation: cjdms-silver-shine 5s ease-in-out infinite;
	pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
	.cjdms-showcase__cta-box::before { animation: none; display: none; }
}
.cjdms-showcase__cta-box p { position: relative; z-index: 1; margin: 0; font-weight: 800; color: var(--cjdms-dark-blue); font-size: clamp(16px, 2.2vw, 20px); }

/* ==========================================================================
   5h. Industry / Business-Segment Grid (homepage only, 30 cards)
   ========================================================================== */

.cjdms-showcase__industries {
	padding: 40px 0 56px;
	scroll-margin-top: 100px;
	background: var(--cjdms-primary-blue);
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding-left: max(24px, calc((100vw - var(--cjdms-container)) / 2 + 24px));
	padding-right: max(24px, calc((100vw - var(--cjdms-container)) / 2 + 24px));
}
.cjdms-showcase__industries-header { text-align: center; margin-bottom: 32px; }
.cjdms-showcase__industries-header h2 { font-size: clamp(24px, 3.4vw, 32px); margin: 0; color: var(--cjdms-white); }
.cjdms-showcase__industries-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px 18px;
	max-width: var(--cjdms-container);
	margin: 0 auto;
}
/* Shiny brushed-silver card with a slow, continuously sweeping light band
   (::before) — a metallic "shine wave" moving left to right, not a static
   gradient. Title and CTA stay fused into one seamless card. */
.cjdms-showcase__industry-card {
	position: relative;
	display: flex;
	flex-direction: column;
	text-decoration: none;
	background: linear-gradient(135deg, #a3a8b0 0%, #e8eaec 22%, #ffffff 48%, #c2c6cc 74%, #92969e 100%);
	border: 1px solid rgba(0,0,0,0.12);
	border-radius: var(--cjdms-radius-lg);
	overflow: hidden;
	box-shadow: 0 10px 28px -10px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.8);
	transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.cjdms-showcase__industry-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: -60%;
	width: 60%;
	height: 100%;
	background: linear-gradient(100deg, transparent, rgba(255,255,255,0.95), transparent);
	animation: cjdms-silver-shine 5s ease-in-out infinite;
	pointer-events: none;
}
@keyframes cjdms-silver-shine {
	0% { left: -60%; }
	60%, 100% { left: 120%; }
}
@media (prefers-reduced-motion: reduce) {
	.cjdms-showcase__industry-card::before { animation: none; display: none; }
}
.cjdms-showcase__industry-card:hover {
	transform: translateY(-6px);
	border-color: rgba(255,193,7,0.7);
	box-shadow: 0 20px 40px -12px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,193,7,0.3), inset 0 1px 0 rgba(255,255,255,0.7);
}
.cjdms-showcase__industry-title {
	position: relative;
	z-index: 1;
	padding: 16px 18px 12px;
	color: var(--cjdms-dark-blue);
	font-family: var(--cjdms-font-heading);
	font-weight: 700;
	font-size: 17.25px;
	text-align: center;
}
.cjdms-showcase__industry-cta {
	position: relative;
	z-index: 1;
	padding: 10px 18px 16px;
	border-top: 1px solid rgba(0,0,0,0.14);
	margin: 0 18px;
	padding-left: 0;
	padding-right: 0;
	color: #000000;
	font-family: Georgia, 'Times New Roman', serif;
	font-weight: 400;
	font-size: 14.3px;
	text-align: center;
	letter-spacing: 0;
	line-height: 1.4;
}

/* ==========================================================================
   6. Service Showcase — Value Props, Deliverable Matrix, Workflow, Case Study
   ========================================================================== */

.cjdms-showcase { padding: 8px 0 24px; }
.cjdms-showcase__section { padding: 48px 0; border-top: 1px solid var(--cjdms-border-color); }
.cjdms-showcase__section-title { font-size: 28px; margin: 0 0 28px; }

.cjdms-showcase__value-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; }
.cjdms-showcase__value-card {
	border: 1px solid var(--cjdms-border-color);
	border-radius: var(--cjdms-radius);
	padding: 24px;
	background: var(--cjdms-white);
	border-top: 3px solid var(--cjdms-primary-blue);
	transition: box-shadow var(--cjdms-transition), transform var(--cjdms-transition);
}
.cjdms-showcase__value-card:hover { box-shadow: var(--cjdms-shadow); transform: translateY(-2px); }
.cjdms-showcase__value-title { font-size: 17px; margin: 0 0 8px; }
.cjdms-showcase__value-body { margin: 0; color: var(--cjdms-text-muted); font-size: 14.5px; }

.cjdms-showcase__ecom {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 56px 24px;
	background: linear-gradient(180deg, #eef4ff 0%, #f7faff 100%);
	border-top: 1px solid var(--cjdms-border-color);
	border-bottom: 1px solid var(--cjdms-border-color);
}
.cjdms-showcase__ecom-inner { max-width: var(--cjdms-container); margin: 0 auto; }
.cjdms-showcase__ecom-eyebrow {
	font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 12.5px;
	text-transform: uppercase; letter-spacing: .08em; color: var(--cjdms-primary-blue); margin: 0 0 8px;
}
.cjdms-showcase__ecom-title { font-size: 28px; margin: 0 0 14px; }
.cjdms-showcase__ecom-body { max-width: 720px; color: var(--cjdms-text-muted); font-size: 15.5px; line-height: 1.7; margin: 0 0 28px; }
.cjdms-showcase__ecom-features {
	list-style: none; margin: 0 0 32px; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px 28px;
}
.cjdms-showcase__ecom-features li {
	position: relative; padding-left: 26px; font-size: 14.5px; line-height: 1.6; color: var(--cjdms-text-dark);
}
.cjdms-showcase__ecom-features li::before {
	content: "\2713"; position: absolute; left: 0; top: 1px;
	color: var(--cjdms-success); font-weight: 800; font-size: 13px;
}
.cjdms-showcase__ecom-cta {
	display: inline-block; padding: 14px 30px; border-radius: var(--cjdms-radius-sm);
	background: var(--cjdms-primary-blue); color: var(--cjdms-white); text-decoration: none;
	font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 14.5px;
	transition: background var(--cjdms-transition), transform var(--cjdms-transition);
}
.cjdms-showcase__ecom-cta:hover { background: var(--cjdms-dark-blue); transform: translateY(-1px); }

.cjdms-showcase__matrix-table-wrap { overflow-x: auto; border: 1px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius); }
.cjdms-showcase__matrix-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.cjdms-showcase__matrix-table th, .cjdms-showcase__matrix-table td { text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--cjdms-border-color); }
.cjdms-showcase__matrix-table th { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--cjdms-text-muted); background: var(--cjdms-bg-light); }
.cjdms-showcase__matrix-table tr:last-child td { border-bottom: 0; }
.cjdms-showcase__matrix-area { font-weight: 700; white-space: nowrap; color: var(--cjdms-dark-blue); }

.cjdms-showcase__workflow-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 22px; }
.cjdms-showcase__workflow-step { display: flex; gap: 18px; align-items: flex-start; }
.cjdms-showcase__workflow-index {
	font-family: var(--cjdms-font-heading);
	font-size: 13px; font-weight: 800; color: var(--cjdms-white);
	background: var(--cjdms-primary-blue);
	border-radius: var(--cjdms-radius-pill);
	padding: 6px 12px; flex-shrink: 0;
}
.cjdms-showcase__workflow-title { font-size: 17px; margin: 0 0 4px; }
.cjdms-showcase__workflow-body p { margin: 0; color: var(--cjdms-text-muted); font-size: 14.5px; }

.cjdms-showcase__case-study-inner {
	background: var(--cjdms-header-black);
	border-radius: var(--cjdms-radius-lg);
	padding: 44px 32px;
	text-align: center;
	color: var(--cjdms-white);
}
.cjdms-showcase__case-study-metric {
	font-family: var(--cjdms-font-heading);
	font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em;
	color: var(--cjdms-accent-yellow);
	margin: 0 0 10px;
}
.cjdms-showcase__case-study-title { font-size: 24px; margin: 0 0 14px; color: var(--cjdms-white); }
.cjdms-showcase__case-study-body { color: rgba(255,255,255,0.78); max-width: 640px; margin: 0 auto; }

.cjdms-showcase__cta { text-align: center; }
.cjdms-showcase__cta-title { font-size: 24px; margin: 0 0 22px; }
.cjdms-showcase__cta-button { padding: 15px 36px; font-size: 16px; }
.cjdms-showcase__cta-button { background: var(--cjdms-accent-yellow); color: var(--cjdms-accent-blue-onlight); border-radius: var(--cjdms-radius-sm); text-decoration: none; display: inline-block; font-family: var(--cjdms-font-heading); font-weight: 800; transition: background var(--cjdms-transition), transform var(--cjdms-transition); }
.cjdms-showcase__cta-button:hover { background: var(--cjdms-accent-gold); color: var(--cjdms-accent-blue-onlight); transform: translateY(-1px); }

.cjdms-showcase__pillar-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 18px; }
.cjdms-showcase__pillar-card {
	display: block; border: 1px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius);
	padding: 22px; text-decoration: none; color: inherit;
	transition: border-color var(--cjdms-transition), box-shadow var(--cjdms-transition), transform var(--cjdms-transition);
}
.cjdms-showcase__pillar-card:hover { border-color: var(--cjdms-primary-blue); box-shadow: var(--cjdms-shadow); transform: translateY(-2px); }
.cjdms-showcase__pillar-card-title { font-size: 17px; margin: 0 0 8px; color: var(--cjdms-header-black); }
.cjdms-showcase__pillar-card-body { font-size: 13.5px; color: var(--cjdms-text-muted); margin: 0 0 14px; }
.cjdms-showcase__pillar-card-link { font-size: 13.5px; font-weight: 800; color: var(--cjdms-dark-blue); }

/* ==========================================================================
   7. Pricing Tables — [cjdms_pricing_tables]
   ========================================================================== */

.cjdms-pricing { padding: 8px 0 24px; }
.cjdms-pricing__heading { font-size: 30px; margin: 0 0 28px; text-align: center; }
.cjdms-pricing__empty { text-align: center; color: var(--cjdms-text-muted); padding: 40px 0; }
.cjdms-pricing__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 22px; align-items: stretch; }

.cjdms-pricing__card {
	position: relative;
	display: flex; flex-direction: column;
	border: 2px solid var(--cjdms-border-color);
	border-radius: var(--cjdms-radius-lg);
	padding: 30px 24px;
	background: var(--cjdms-white);
	transition: box-shadow var(--cjdms-transition), transform var(--cjdms-transition), border-color var(--cjdms-transition);
}
.cjdms-pricing__card:hover { box-shadow: var(--cjdms-shadow); transform: translateY(-3px); }
.cjdms-pricing__card--featured {
	border-color: var(--cjdms-primary-blue);
	box-shadow: 0 12px 32px -16px rgba(30, 136, 229, 0.45);
	transform: scale(1.02);
}
.cjdms-pricing__badge {
	position: absolute; top: -13px; left: 24px;
	background: var(--cjdms-accent-yellow);
	color: var(--cjdms-header-black);
	font-family: var(--cjdms-font-heading);
	font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em;
	padding: 5px 14px; border-radius: var(--cjdms-radius-pill);
}
.cjdms-pricing__card-name { font-size: 21px; margin: 8px 0 8px; }
.cjdms-pricing__card-desc { margin: 0 0 18px; color: var(--cjdms-text-muted); font-size: 14px; min-height: 36px; }
.cjdms-pricing__card-price { display: flex; align-items: baseline; gap: 8px; margin-bottom: 4px; }
.cjdms-pricing__card-amount { font-family: var(--cjdms-font-heading); font-size: 34px; font-weight: 800; color: var(--cjdms-dark-blue); }
.cjdms-pricing__card--featured .cjdms-pricing__card-amount { color: var(--cjdms-primary-blue); }
.cjdms-pricing__card-unit { font-size: 12px; color: var(--cjdms-text-muted); }
.cjdms-pricing__card-renewal, .cjdms-pricing__card-eta { margin: 4px 0; font-size: 13px; color: var(--cjdms-text-muted); }
.cjdms-pricing__card-features { list-style: none; margin: 18px 0; padding: 0; flex: 1; }
.cjdms-pricing__card-feature { padding: 8px 0 8px 26px; position: relative; font-size: 14px; border-top: 1px solid var(--cjdms-border-color); }
.cjdms-pricing__card-feature:first-child { border-top: 0; }
.cjdms-pricing__card-feature::before {
	content: "";
	position: absolute; left: 0; top: 11px;
	width: 16px; height: 16px; border-radius: 50%;
	background: var(--cjdms-success-bg);
}
.cjdms-pricing__card-feature::after {
	content: "\2713";
	position: absolute; left: 3px; top: 8px;
	color: var(--cjdms-success); font-weight: 800; font-size: 11px;
}
.cjdms-pricing__card-note { font-size: 12.5px; color: var(--cjdms-warning); background: var(--cjdms-warning-bg); border-radius: var(--cjdms-radius-sm); padding: 10px 12px; margin: 0 0 18px; }
.cjdms-pricing__card-cta {
	margin-top: auto; display: block; text-align: center;
	padding: 13px 16px; border-radius: var(--cjdms-radius-sm);
	background: var(--cjdms-header-black); color: var(--cjdms-accent-blue);
	text-decoration: none; font-family: var(--cjdms-font-heading); font-weight: 800;
	transition: background var(--cjdms-transition), transform var(--cjdms-transition);
}
.cjdms-pricing__card-cta:hover { background: var(--cjdms-primary-blue); color: var(--cjdms-white); transform: translateY(-1px); }
.cjdms-pricing__card--featured .cjdms-pricing__card-cta { background: var(--cjdms-accent-yellow); color: var(--cjdms-accent-blue-onlight); }
.cjdms-pricing__card--featured .cjdms-pricing__card-cta:hover { background: var(--cjdms-accent-gold); color: var(--cjdms-accent-blue-onlight); }

/* ==========================================================================
   8. Strategic Partnerships — [cjdms_partnership_overview]
   ========================================================================== */

.cjdms-partners-overview { padding: 8px 0 24px; }
.cjdms-partners-overview__hero {
	background: linear-gradient(135deg, var(--cjdms-primary-blue), var(--cjdms-dark-blue));
	border-radius: var(--cjdms-radius-lg);
	padding: 56px 40px; text-align: center; color: var(--cjdms-white); margin-bottom: 8px;
}
.cjdms-partners-overview__eyebrow { text-transform: uppercase; letter-spacing: .1em; font-size: 13px; font-weight: 800; color: var(--cjdms-accent-yellow); margin: 0 0 14px; }
.cjdms-partners-overview__headline { font-size: clamp(26px, 4vw, 38px); line-height: 1.18; margin: 0 0 16px; color: var(--cjdms-white); }
.cjdms-partners-overview__subhead { font-size: 17px; color: rgba(255,255,255,0.9); max-width: 720px; margin: 0 auto; }
.cjdms-partners-overview__section { padding: 40px 0; border-top: 1px solid var(--cjdms-border-color); }
.cjdms-partners-overview__section-title { font-size: 26px; margin: 0 0 28px; text-align: center; }
.cjdms-partners-overview__tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 22px; }
.cjdms-partners-overview__tier {
	border: 1px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius-lg); padding: 26px;
	display: flex; flex-direction: column;
	border-top: 4px solid var(--cjdms-primary-blue);
	transition: box-shadow var(--cjdms-transition), transform var(--cjdms-transition);
}
.cjdms-partners-overview__tier:nth-child(2) { border-top-color: var(--cjdms-accent-yellow); }
.cjdms-partners-overview__tier:nth-child(3) { border-top-color: var(--cjdms-brand-green); }
.cjdms-partners-overview__tier:hover { box-shadow: var(--cjdms-shadow); transform: translateY(-2px); }
.cjdms-partners-overview__tier-name { font-size: 21px; margin: 0 0 4px; }
.cjdms-partners-overview__tier-tagline { font-size: 13px; font-weight: 800; color: var(--cjdms-dark-blue); margin: 0 0 14px; text-transform: uppercase; letter-spacing: .03em; }
.cjdms-partners-overview__tier-body { font-size: 14.5px; color: var(--cjdms-text-muted); margin: 0 0 14px; }
.cjdms-partners-overview__tier-ideal { font-size: 13.5px; color: var(--cjdms-text-dark); margin: 0 0 16px; background: var(--cjdms-bg-light); padding: 10px 12px; border-radius: var(--cjdms-radius-sm); }
.cjdms-partners-overview__tier-features { list-style: none; margin: 0; padding: 0; font-size: 13.5px; }
.cjdms-partners-overview__tier-features li { padding: 8px 0 8px 22px; position: relative; border-top: 1px solid var(--cjdms-border-color); }
.cjdms-partners-overview__tier-features li:first-child { border-top: 0; }
.cjdms-partners-overview__tier-features li::before { content: "\2713"; position: absolute; left: 0; color: var(--cjdms-success); font-weight: 800; }
.cjdms-partners-overview__steps { max-width: 640px; margin: 0 auto; padding-left: 22px; font-size: 15.5px; color: var(--cjdms-text-dark); }
.cjdms-partners-overview__steps li { margin-bottom: 14px; }
.cjdms-partners-overview__cta { text-align: center; padding: 44px 0 16px; }
.cjdms-partners-overview__cta-title { font-size: 24px; margin: 0 0 22px; }
.cjdms-partners-overview__cta-button {
	display: inline-block; padding: 15px 36px; border-radius: var(--cjdms-radius-sm);
	background: var(--cjdms-accent-yellow); color: var(--cjdms-accent-blue-onlight);
	text-decoration: none; font-family: var(--cjdms-font-heading); font-weight: 800;
	transition: background var(--cjdms-transition), transform var(--cjdms-transition);
}
.cjdms-partners-overview__cta-button:hover { background: var(--cjdms-accent-gold); color: var(--cjdms-accent-blue-onlight); transform: translateY(-1px); }

/* ==========================================================================
   9. Forms — Unified Inquiry + Affiliate/Partner Signup
   (shared visual language across .cjdms-inquiry-form, .cjdms-affsignup-form,
   .cjdms-partsignup-form, .cjdms-partportal-submit-form)
   ========================================================================== */

.cjdms-inquiry-form,
.cjdms-affsignup-form,
.cjdms-partsignup-form,
.cjdms-partportal-submit-form {
	max-width: 680px;
	margin: 0 auto;
}
.cjdms-inquiry-form { padding: 24px 0 48px; }
.cjdms-inquiry-form__hp { position: absolute; left: -9999px; top: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cjdms-affsignup, .cjdms-partsignup { padding: 8px 0 24px; }
.cjdms-affsignup-form__intro, .cjdms-partsignup-form__intro { color: var(--cjdms-text-muted); font-size: 15px; }

.cjdms-inquiry-form__section {
	border: 0;
	border-bottom: 1px solid var(--cjdms-border-color);
	margin-bottom: 32px;
	padding: 0 0 32px;
}
.cjdms-inquiry-form__section:last-of-type { border-bottom: 0; margin-bottom: 8px; padding-bottom: 8px; }
.cjdms-inquiry-form__section-title {
	font-family: var(--cjdms-font-heading);
	font-weight: 800; cursor: pointer; padding: 0 0 20px; font-size: 13px;
	color: var(--cjdms-primary-blue); text-transform: uppercase; letter-spacing: .08em;
	list-style: none; display: flex; align-items: center; gap: 10px;
}
.cjdms-inquiry-form__section-title::-webkit-details-marker { display: none; }
.cjdms-inquiry-form__section-title::before {
	content: '';
	width: 7px; height: 7px; border-radius: 50%;
	background: var(--cjdms-primary-blue); flex-shrink: 0;
}

.cjdms-inquiry-form__fieldset,
.cjdms-affsignup-form__fieldset,
.cjdms-partsignup-form__fieldset,
.cjdms-partportal-submit-form__fieldset {
	border: 1px solid var(--cjdms-border-color);
	border-radius: var(--cjdms-radius);
	padding: 16px 20px 6px;
	margin-bottom: 18px;
}
.cjdms-inquiry-form__fieldset { border: 0; padding: 0; margin-bottom: 0; }
.cjdms-affsignup-form__fieldset legend,
.cjdms-partsignup-form__fieldset legend,
.cjdms-partportal-submit-form__fieldset legend {
	font-family: var(--cjdms-font-heading);
	font-weight: 700; padding: 0 8px; font-size: 14px;
}
.cjdms-affsignup-form__hint, .cjdms-partsignup-form__hint { font-size: 13px; color: var(--cjdms-text-muted); margin-top: 0; }

.cjdms-inquiry-form__row,
.cjdms-affsignup-form__row,
.cjdms-partsignup-form__row,
.cjdms-partportal-submit-form__row {
	margin: 14px 0; display: flex; flex-direction: column; gap: 6px;
}
.cjdms-inquiry-form__label,
.cjdms-affsignup-form__label,
.cjdms-partsignup-form__label,
.cjdms-partportal-submit-form__label {
	font-weight: 700; font-size: 13.5px; color: var(--cjdms-text-dark);
}

.cjdms-inquiry-form__input, .cjdms-inquiry-form__select, .cjdms-inquiry-form__textarea, .cjdms-inquiry-form__file,
.cjdms-affsignup-form__input, .cjdms-affsignup-form__textarea,
.cjdms-partsignup-form__input, .cjdms-partsignup-form__select, .cjdms-partsignup-form__file,
.cjdms-partportal-submit-form__input, .cjdms-partportal-submit-form__select, .cjdms-partportal-submit-form__textarea {
	padding: 11px 14px;
	border: 1.5px solid var(--cjdms-border-color);
	border-radius: var(--cjdms-radius-sm);
	font: inherit; font-size: 14.5px;
	width: 100%; box-sizing: border-box;
	background: var(--cjdms-white); color: var(--cjdms-text-dark);
	transition: border-color var(--cjdms-transition), box-shadow var(--cjdms-transition);
}
.cjdms-inquiry-form__error {
	display: none; color: var(--cjdms-danger); font-size: 12.5px; margin: 5px 0 0; line-height: 1.4;
}
.cjdms-inquiry-form__input.is-invalid, .cjdms-inquiry-form__select.is-invalid, .cjdms-inquiry-form__textarea.is-invalid {
	border-color: var(--cjdms-danger);
}
.cjdms-inquiry-form__input.is-invalid:focus, .cjdms-inquiry-form__select.is-invalid:focus {
	box-shadow: 0 0 0 3px rgba(179, 38, 30, 0.15);
}
.cjdms-inquiry-form__input:focus, .cjdms-inquiry-form__select:focus, .cjdms-inquiry-form__textarea:focus,
.cjdms-affsignup-form__input:focus, .cjdms-affsignup-form__textarea:focus,
.cjdms-partsignup-form__input:focus, .cjdms-partsignup-form__select:focus,
.cjdms-partportal-submit-form__input:focus, .cjdms-partportal-submit-form__select:focus, .cjdms-partportal-submit-form__textarea:focus {
	outline: none;
	border-color: var(--cjdms-primary-blue);
	box-shadow: 0 0 0 3px rgba(30, 136, 229, 0.15);
}

/* File "drop zone" treatment for PDF upload fields. */
.cjdms-inquiry-form__file, .cjdms-partsignup-form__file {
	border: 2px dashed var(--cjdms-border-color);
	border-radius: var(--cjdms-radius);
	padding: 22px 14px;
	text-align: center;
	background: var(--cjdms-bg-light);
	cursor: pointer;
	transition: border-color var(--cjdms-transition), background var(--cjdms-transition);
}
.cjdms-inquiry-form__file:hover, .cjdms-partsignup-form__file:hover,
.cjdms-inquiry-form__file:focus, .cjdms-partsignup-form__file:focus {
	border-color: var(--cjdms-primary-blue);
	background: var(--cjdms-info-bg);
}

.cjdms-inquiry-form__checkboxes, .cjdms-partsignup-form__checkboxes { display: flex; flex-wrap: wrap; gap: 10px 18px; }
.cjdms-inquiry-form__checkbox, .cjdms-partsignup-form__checkbox,
.cjdms-partportal-submit-form__checkbox {
	font-weight: 500; display: inline-flex; align-items: center; gap: 7px; font-size: 14px;
}
.cjdms-affsignup-form__row--checkbox label, .cjdms-partsignup-form__row--checkbox label {
	font-weight: 400; display: flex; align-items: flex-start; gap: 9px; font-size: 14px;
}

.cjdms-inquiry-form__submit, .cjdms-affsignup-form__submit, .cjdms-partsignup-form__submit,
.cjdms-partportal-submit-form__submit {
	padding: 13px 30px; border: 0; border-radius: var(--cjdms-radius-sm);
	background: var(--cjdms-header-black); color: var(--cjdms-white);
	cursor: pointer; font: inherit; font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 15px;
	transition: background var(--cjdms-transition), transform var(--cjdms-transition);
}
.cjdms-inquiry-form__submit:hover, .cjdms-affsignup-form__submit:hover, .cjdms-partsignup-form__submit:hover,
.cjdms-partportal-submit-form__submit:hover { background: var(--cjdms-primary-blue); transform: translateY(-1px); }
.cjdms-inquiry-form__submit {
	display: block; width: 100%; padding: 17px 30px;
	background: var(--cjdms-primary-blue); font-size: 15.5px; text-transform: uppercase; letter-spacing: .04em;
	box-shadow: 0 8px 20px -8px rgba(30, 136, 229, 0.55);
}
.cjdms-inquiry-form__submit:hover { background: var(--cjdms-dark-blue); box-shadow: 0 10px 24px -8px rgba(30, 136, 229, 0.65); }
.cjdms-inquiry-form__submit:disabled, .cjdms-affsignup-form__submit:disabled, .cjdms-partsignup-form__submit:disabled,
.cjdms-partportal-submit-form__submit:disabled { opacity: .6; cursor: not-allowed; transform: none; }

.cjdms-inquiry-form__response, .cjdms-affsignup-form__response, .cjdms-partsignup-form__response,
.cjdms-partportal-submit-form__response {
	margin-top: 14px; font-weight: 700; font-size: 14px; padding: 0; border-radius: var(--cjdms-radius-sm);
}
.cjdms-inquiry-form__response:not(:empty), .cjdms-affsignup-form__response:not(:empty), .cjdms-partsignup-form__response:not(:empty) {
	padding: 12px 14px;
}
.cjdms-inquiry-form__response--success, .cjdms-affsignup-form__response--success, .cjdms-partsignup-form__response--success,
.cjdms-partportal-submit-form__response--success {
	color: var(--cjdms-success); background: var(--cjdms-success-bg);
}
.cjdms-inquiry-form__response--error, .cjdms-affsignup-form__response--error, .cjdms-partsignup-form__response--error,
.cjdms-partportal-submit-form__response--error {
	color: var(--cjdms-danger); background: var(--cjdms-danger-bg);
}
.cjdms-partportal-submit-form__response { white-space: pre-line; }
.cjdms-partportal-submit-form__response:not(:empty) { padding: 10px 12px; }

.cjdms-affsignup__notice, .cjdms-partsignup__notice {
	max-width: 480px; margin: 40px auto; border: 1px solid var(--cjdms-border-color);
	border-radius: var(--cjdms-radius-lg); padding: 28px; text-align: center; box-shadow: var(--cjdms-shadow-sm);
}

/* ==========================================================================
   10. Portal Shell — Client / Affiliate / Partner
   (.cjdms-portal, .cjdms-affportal, .cjdms-partportal share one visual
   language; each block keeps its own prefix per strict BEM naming.)
   ========================================================================== */

.cjdms-portal, .cjdms-affportal, .cjdms-partportal { padding: 12px 0 40px; }

.cjdms-portal__login, .cjdms-affportal__login, .cjdms-partportal__login,
.cjdms-portal__notice, .cjdms-affportal__notice, .cjdms-partportal__notice {
	max-width: 440px; margin: 48px auto; border: 1px solid var(--cjdms-border-color);
	border-radius: var(--cjdms-radius-lg); padding: 32px; box-shadow: var(--cjdms-shadow-sm); background: var(--cjdms-white);
}
.cjdms-portal__login h2, .cjdms-affportal__login h2, .cjdms-partportal__login h2,
.cjdms-portal__notice h2, .cjdms-affportal__notice h2, .cjdms-partportal__notice h2 { font-size: 22px; margin-bottom: 10px; }
.cjdms-portal__login p.description, .cjdms-portal__login-hint { font-size: 13px; color: var(--cjdms-text-muted); margin-top: 16px; }
.cjdms-portal__login label, .cjdms-affportal__login label, .cjdms-partportal__login label { display: block; font-weight: 700; margin-bottom: 5px; font-size: 13.5px; }
.cjdms-portal__login input[type="text"], .cjdms-portal__login input[type="password"],
.cjdms-affportal__login input[type="text"], .cjdms-affportal__login input[type="password"],
.cjdms-partportal__login input[type="text"], .cjdms-partportal__login input[type="password"] {
	width: 100%; padding: 10px 12px; border: 1.5px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius-sm);
	font: inherit; box-sizing: border-box; margin-bottom: 14px;
}
.cjdms-portal__login input[type="submit"], .cjdms-affportal__login input[type="submit"], .cjdms-partportal__login input[type="submit"] {
	padding: 12px 26px; border: 0; border-radius: var(--cjdms-radius-sm);
	background: var(--cjdms-header-black); color: var(--cjdms-white); cursor: pointer;
	font: inherit; font-family: var(--cjdms-font-heading); font-weight: 800;
}
.cjdms-portal__login input[type="submit"]:hover, .cjdms-affportal__login input[type="submit"]:hover, .cjdms-partportal__login input[type="submit"]:hover { background: var(--cjdms-primary-blue); }

.cjdms-portal__header, .cjdms-affportal__header, .cjdms-partportal__header {
	display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap;
	border-bottom: 1px solid var(--cjdms-border-color); padding-bottom: 18px; margin-bottom: 24px;
}
.cjdms-portal__header h1, .cjdms-affportal__header h1, .cjdms-partportal__header h1 { font-size: 26px; margin: 0 0 4px; }
.cjdms-portal__welcome, .cjdms-affportal__welcome, .cjdms-partportal__welcome { margin: 0; color: var(--cjdms-text-muted); font-size: 14.5px; }
.cjdms-portal__logout, .cjdms-affportal__logout, .cjdms-partportal__logout {
	align-self: center; padding: 9px 18px; border: 1.5px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius-sm);
	text-decoration: none; color: var(--cjdms-text-dark); font-weight: 700; font-size: 13.5px;
	transition: border-color var(--cjdms-transition), color var(--cjdms-transition);
}
.cjdms-portal__logout:hover, .cjdms-affportal__logout:hover, .cjdms-partportal__logout:hover { border-color: var(--cjdms-primary-blue); color: var(--cjdms-primary-blue); }

.cjdms-portal__tabs, .cjdms-affportal__tabs, .cjdms-partportal__tabs {
	display: flex; gap: 2px; flex-wrap: wrap; border-bottom: 2px solid var(--cjdms-border-color); margin-bottom: 28px;
}
.cjdms-portal__tab, .cjdms-affportal__tab, .cjdms-partportal__tab {
	padding: 11px 18px; border: 0; background: none; cursor: pointer; font: inherit;
	font-family: var(--cjdms-font-heading); font-weight: 700; font-size: 14px;
	color: var(--cjdms-text-muted); border-bottom: 3px solid transparent; margin-bottom: -2px;
	transition: color var(--cjdms-transition), border-color var(--cjdms-transition);
}
.cjdms-portal__tab:hover, .cjdms-affportal__tab:hover, .cjdms-partportal__tab:hover { color: var(--cjdms-text-dark); }
.cjdms-portal__tab.is-active, .cjdms-affportal__tab.is-active, .cjdms-partportal__tab.is-active {
	color: var(--cjdms-header-black); border-bottom-color: var(--cjdms-accent-yellow);
}

.cjdms-portal__empty, .cjdms-affportal__empty, .cjdms-partportal__empty { color: var(--cjdms-text-muted); font-style: italic; padding: 24px 0; }
.cjdms-portal__muted, .cjdms-affportal__code, .cjdms-partportal__muted { color: var(--cjdms-text-muted); font-size: 12.5px; }

/* Stat summary boxes (affiliate + partner overview tabs). */
.cjdms-affportal__stats, .cjdms-partportal__stats {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px; margin-bottom: 24px;
}
.cjdms-affportal__stat, .cjdms-partportal__stat {
	border: 1px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius); padding: 16px;
	display: flex; flex-direction: column; gap: 4px; background: var(--cjdms-white);
}
.cjdms-affportal__stat--highlight, .cjdms-partportal__stat--highlight {
	background: var(--cjdms-success-bg); border-color: #b8e6c8;
}
.cjdms-affportal__stat-value, .cjdms-partportal__stat-value { font-family: var(--cjdms-font-heading); font-size: 22px; font-weight: 800; color: var(--cjdms-header-black); }
.cjdms-affportal__stat-label, .cjdms-partportal__stat-label { font-size: 12px; color: var(--cjdms-text-muted); text-transform: uppercase; letter-spacing: .03em; }
.cjdms-affportal__rate { font-size: 13.5px; color: var(--cjdms-text-muted); }

/* Referral link box + license key reveal widget share the same "copyable
   value" pattern. */
.cjdms-affportal__link-box {
	background: var(--cjdms-bg-light); border-radius: var(--cjdms-radius); padding: 18px 20px; margin-bottom: 24px;
}
.cjdms-affportal__link-box label { font-weight: 700; display: block; margin-bottom: 8px; font-size: 13.5px; }
.cjdms-affportal__link-row, .cjdms-portal__license-row { display: flex; gap: 8px; }
.cjdms-affportal__link-input, .cjdms-portal__license-input {
	flex: 1; min-width: 0; padding: 9px 12px; border: 1.5px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius-sm);
	font-family: ui-monospace, monospace; font-size: 13px; background: var(--cjdms-white);
}
.cjdms-affportal__copy-link, .cjdms-portal__license-reveal, .cjdms-portal__license-copy {
	padding: 9px 16px; border: 1.5px solid var(--cjdms-header-black); border-radius: var(--cjdms-radius-sm);
	background: var(--cjdms-header-black); color: var(--cjdms-white); cursor: pointer; font: inherit; font-weight: 700; font-size: 12.5px; white-space: nowrap;
}
.cjdms-affportal__copy-link:hover, .cjdms-portal__license-reveal:hover, .cjdms-portal__license-copy:hover { background: var(--cjdms-primary-blue); border-color: var(--cjdms-primary-blue); }
.cjdms-portal__license label { display: block; font-size: 12px; font-weight: 700; color: var(--cjdms-text-muted); margin-bottom: 6px; text-transform: uppercase; letter-spacing: .03em; }

/* Account manager / dedicated desk card (partner overview). */
.cjdms-partportal__tier { display: flex; gap: 10px; margin-bottom: 22px; flex-wrap: wrap; }
.cjdms-partportal__tier-badge {
	background: var(--cjdms-header-black); color: var(--cjdms-white); font-family: var(--cjdms-font-heading);
	font-weight: 800; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; padding: 6px 14px; border-radius: var(--cjdms-radius-pill);
}
.cjdms-partportal__tier-type {
	background: var(--cjdms-neutral-bg); color: var(--cjdms-neutral); font-weight: 700; font-size: 12px; padding: 6px 14px; border-radius: var(--cjdms-radius-pill);
}
.cjdms-partportal__desk h2 { font-size: 17px; margin-bottom: 10px; }
.cjdms-partportal__desk-card { background: var(--cjdms-bg-light); border-radius: var(--cjdms-radius); padding: 18px 20px; }
.cjdms-partportal__desk-name { font-weight: 800; margin-bottom: 4px; font-family: var(--cjdms-font-heading); }
.cjdms-partportal__desk-email { color: var(--cjdms-dark-blue); text-decoration: none; font-weight: 600; }
.cjdms-partportal__team { margin-top: 28px; }
.cjdms-partportal__team h2 { font-size: 17px; margin-bottom: 6px; }
.cjdms-partportal__team-list { list-style: none; margin: 14px 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cjdms-partportal__team-list li { background: var(--cjdms-bg-light); border-radius: var(--cjdms-radius-sm); padding: 10px 14px; display: flex; align-items: center; gap: 10px; font-weight: 600; }
.cjdms-partportal-invite-form { max-width: 420px; display: flex; flex-direction: column; gap: 12px; margin-top: 10px; }

/* Cards (client portal services/projects). */
.cjdms-portal__cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 18px; }
.cjdms-portal__card {
	border: 1px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius); padding: 18px;
	background: var(--cjdms-white); transition: box-shadow var(--cjdms-transition);
}
.cjdms-portal__card:hover { box-shadow: var(--cjdms-shadow-sm); }
.cjdms-portal__card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.cjdms-portal__card-head h3 { margin: 0; font-size: 16.5px; }
.cjdms-portal__card-meta { margin: 8px 0 4px; font-size: 13px; color: var(--cjdms-text-muted); }
.cjdms-portal__card-renewal { margin: 4px 0; font-size: 13px; color: var(--cjdms-text-dark); }

.cjdms-portal__milestones { list-style: none; margin: 12px 0 0; padding: 0; font-size: 13px; }
.cjdms-portal__milestones li { padding: 4px 0; color: var(--cjdms-text-muted); }
.cjdms-portal__milestones li.is-done { color: var(--cjdms-success); font-weight: 600; }
.cjdms-portal__project { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--cjdms-border-color); }
.cjdms-portal__project-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 8px; }
.cjdms-portal__project-pct { font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 14px; }
.cjdms-portal__progress-bar, .cjdms-partportal__progress-bar {
	background: var(--cjdms-border-color); border-radius: var(--cjdms-radius-pill); height: 7px; overflow: hidden; margin: 4px 0;
}
.cjdms-portal__progress-fill, .cjdms-partportal__progress-fill { background: var(--cjdms-primary-blue); height: 100%; border-radius: var(--cjdms-radius-pill); }
.cjdms-portal__project-stage, .cjdms-portal__project-target { margin: 6px 0 0; font-size: 13px; color: var(--cjdms-text-muted); }

/* SaaS subscription cards. */
.cjdms-portal__saas-card { display: flex; flex-direction: column; gap: 12px; }
.cjdms-portal__saas-expiry { margin: 0; font-size: 13px; color: var(--cjdms-text-muted); }
.cjdms-portal__saas-expiry.is-soon { color: var(--cjdms-warning); font-weight: 700; }
.cjdms-portal__saas-expiry.is-overdue { color: var(--cjdms-danger); font-weight: 700; }
.cjdms-portal__saas-autorenew { display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 500; }
.cjdms-portal__saas-renew {
	align-self: flex-start; padding: 9px 18px; border: 0; border-radius: var(--cjdms-radius-sm);
	background: var(--cjdms-header-black); color: var(--cjdms-white); cursor: pointer; font: inherit;
	font-family: var(--cjdms-font-heading); font-weight: 700; font-size: 13px;
	transition: background var(--cjdms-transition);
}
.cjdms-portal__saas-renew:hover { background: var(--cjdms-primary-blue); }
.cjdms-portal__saas-renew:disabled { opacity: .6; cursor: not-allowed; }
.cjdms-portal__saas-response { margin: 0; font-size: 12.5px; font-weight: 700; min-height: 14px; }
.cjdms-portal__saas-response.is-error { color: var(--cjdms-danger); }
.cjdms-portal__saas-response.is-success { color: var(--cjdms-success); }

/* New Request CTA. */
.cjdms-portal__new-request { max-width: 480px; }
.cjdms-portal__cta {
	display: inline-block; margin-top: 14px; padding: 13px 28px; border-radius: var(--cjdms-radius-sm);
	background: var(--cjdms-accent-yellow); color: var(--cjdms-accent-blue-onlight); text-decoration: none;
	font-family: var(--cjdms-font-heading); font-weight: 800; transition: background var(--cjdms-transition);
}
.cjdms-portal__cta:hover { background: var(--cjdms-accent-gold); color: var(--cjdms-accent-blue-onlight); }

/* Partner "Managed Inquiries" doc list + collateral tab. */
.cjdms-partportal__collateral h2 { font-size: 17px; margin: 22px 0 10px; }
.cjdms-partportal__collateral h2:first-child { margin-top: 0; }
.cjdms-partportal__doclist { padding-left: 20px; }
.cjdms-partportal__doclist li { margin-bottom: 8px; }
.cjdms-affportal__assets h2 { font-size: 17px; margin: 22px 0 10px; }
.cjdms-affportal__assets h2:first-child { margin-top: 0; }
.cjdms-affportal__assets ul { padding-left: 20px; }
.cjdms-affportal__assets li { margin-bottom: 8px; }
.cjdms-affportal__sample { border-left: 3px solid var(--cjdms-accent-yellow); padding: 10px 18px; color: var(--cjdms-text-dark); font-style: italic; word-break: break-word; background: var(--cjdms-bg-light); border-radius: 0 var(--cjdms-radius-sm) var(--cjdms-radius-sm) 0; }

/* ==========================================================================
   11. Responsive Tables (shared across all 3 portals + quotation view)
   ========================================================================== */

.cjdms-portal__table-wrap, .cjdms-affportal__table-wrap, .cjdms-partportal__table-wrap, .cjdms-quote-view__table-wrap {
	overflow-x: auto; border: 1px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius);
}
.cjdms-portal__table, .cjdms-affportal__table, .cjdms-partportal__table, .cjdms-quote-view__table {
	width: 100%; border-collapse: collapse; font-size: 14px;
}
.cjdms-portal__table th, .cjdms-portal__table td,
.cjdms-affportal__table th, .cjdms-affportal__table td,
.cjdms-partportal__table th, .cjdms-partportal__table td,
.cjdms-quote-view__table th, .cjdms-quote-view__table td {
	text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--cjdms-border-color); white-space: nowrap;
}
.cjdms-portal__table th, .cjdms-affportal__table th, .cjdms-partportal__table th, .cjdms-quote-view__table th {
	font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--cjdms-text-muted); background: var(--cjdms-bg-light);
}
.cjdms-portal__table tr:last-child td, .cjdms-affportal__table tr:last-child td,
.cjdms-partportal__table tr:last-child td, .cjdms-quote-view__table tr:last-child td { border-bottom: 0; }

/* ==========================================================================
   12. Badge Pills — every status across every domain, grouped by semantic
   meaning so the same visual language (success/warning/info/danger/neutral)
   is used everywhere, per the exact class names each shortcode emits.
   ========================================================================== */

.cjdms-portal__badge, .cjdms-affportal__badge, .cjdms-partportal__badge, .cjdms-quote-view__badge {
	display: inline-block; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em;
	padding: 4px 11px; border-radius: var(--cjdms-radius-pill);
	background: var(--cjdms-neutral-bg); color: var(--cjdms-neutral); white-space: nowrap;
}

/* Success. */
.cjdms-portal__badge--svc-active, .cjdms-portal__badge--pay-paid, .cjdms-portal__badge--prj-completed,
.cjdms-portal__badge--saas-active, .cjdms-portal__badge--saas-trialing,
.cjdms-portal__badge--approved, .cjdms-portal__badge--accepted, .cjdms-portal__badge--sent_to_client,
.cjdms-portal__badge--converted_to_invoice, .cjdms-portal__badge--svc-completed,
.cjdms-affportal__badge--earned, .cjdms-affportal__badge--paid_out,
.cjdms-partportal__badge--prj-completed,
.cjdms-quote-view__badge--approved, .cjdms-quote-view__badge--accepted,
.cjdms-quote-view__badge--sent_to_client, .cjdms-quote-view__badge--converted_to_invoice {
	background: var(--cjdms-success-bg); color: var(--cjdms-success);
}
/* Info. */
.cjdms-portal__badge--svc-in_progress, .cjdms-portal__badge--prj-in_progress, .cjdms-portal__badge--prj-qa_review,
.cjdms-portal__badge--prj-client_review, .cjdms-portal__badge--under_review,
.cjdms-partportal__badge--prj-in_progress, .cjdms-partportal__badge--prj-qa_review, .cjdms-partportal__badge--prj-client_review,
.cjdms-quote-view__badge--under_review {
	background: var(--cjdms-info-bg); color: var(--cjdms-info);
}
/* Warning. */
.cjdms-portal__badge--svc-onboarding, .cjdms-portal__badge--pay-pending, .cjdms-portal__badge--pay-partial,
.cjdms-portal__badge--prj-scoping, .cjdms-portal__badge--saas-past_due, .cjdms-portal__badge--svc-under_maintenance,
.cjdms-portal__badge--draft_pending_admin_approval,
.cjdms-affportal__badge--pending_payment,
.cjdms-partportal__badge--prj-scoping,
.cjdms-quote-view__badge--draft_pending_admin_approval {
	background: var(--cjdms-warning-bg); color: var(--cjdms-warning);
}
/* Danger. */
.cjdms-portal__badge--pay-failed, .cjdms-portal__badge--pay-refunded, .cjdms-portal__badge--svc-cancelled,
.cjdms-portal__badge--prj-blocked, .cjdms-portal__badge--saas-cancelled, .cjdms-portal__badge--rejected,
.cjdms-affportal__badge--void,
.cjdms-partportal__badge--prj-blocked,
.cjdms-quote-view__badge--rejected {
	background: var(--cjdms-danger-bg); color: var(--cjdms-danger);
}
/* Lead pipeline stages (Staff Portal CRM + wp-admin Inquiries share these keys). */
.cjdms-portal__badge--new { background: var(--cjdms-info-bg); color: var(--cjdms-info); }
.cjdms-portal__badge--contacted { background: var(--cjdms-warning-bg); color: var(--cjdms-warning); }
.cjdms-portal__badge--quoted { background: var(--cjdms-info-bg); color: var(--cjdms-info); }
.cjdms-portal__badge--won { background: var(--cjdms-success-bg); color: var(--cjdms-success); }
.cjdms-portal__badge--archived { background: var(--cjdms-danger-bg); color: var(--cjdms-danger); }

.cjdms-portal__receipt {
	margin-top: 16px; border: 1px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius-lg);
	padding: 28px; background: var(--cjdms-white); box-shadow: var(--cjdms-shadow-sm); max-width: 560px;
}
.cjdms-portal__receipt-letterhead { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; border-bottom: 2px solid var(--cjdms-header-black); padding-bottom: 12px; margin-bottom: 18px; }
.cjdms-portal__receipt-letterhead-brand { font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 20px; }
.cjdms-portal__receipt-letterhead-meta { font-size: 12px; color: var(--cjdms-text-muted); }
.cjdms-portal__receipt-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.cjdms-portal__receipt-head h3 { margin: 0; font-size: 19px; }
.cjdms-portal__receipt-thanks { font-size: 14px; color: var(--cjdms-text-dark); margin: 0 0 18px; line-height: 1.6; }
.cjdms-portal__receipt-table { width: 100%; border-collapse: collapse; }
.cjdms-portal__receipt-table th, .cjdms-portal__receipt-table td {
	text-align: left; padding: 10px 4px; border-bottom: 1px solid var(--cjdms-border-color); font-size: 14px;
}
.cjdms-portal__receipt-table th { color: var(--cjdms-text-muted); font-weight: 600; width: 42%; }
.cjdms-portal__receipt-table tr:last-child th, .cjdms-portal__receipt-table tr:last-child td { border-bottom: 0; }
.cjdms-portal__receipt-footnote { font-size: 13px; color: var(--cjdms-text-muted); margin: 18px 0 0; }
.cjdms-portal__receipt-print {
	padding: 9px 18px; border: 1.5px solid var(--cjdms-primary-blue); border-radius: var(--cjdms-radius-sm);
	background: transparent; color: var(--cjdms-primary-blue); font-weight: 700; font-size: 13.5px; cursor: pointer;
	transition: background var(--cjdms-transition), color var(--cjdms-transition);
}
.cjdms-portal__receipt-print:hover { background: var(--cjdms-primary-blue); color: var(--cjdms-white); }
@media print {
	.cjdms-portal__receipt { border: 0; box-shadow: none; padding: 0; max-width: none; }
}

/* ==========================================================================
   12b. Staff Portal — [cjdms_staff_portal]. Brand-forward CJDMS editorial:
   pure black, angular (zero-radius) blocks, thick gold rule dividers, bold
   uppercase Oswald headings, left accent bars — a bespoke CJDMS product
   surface, not a generic dashboard template. Deliberately distinct from the
   light client-facing portals above.
   ========================================================================== */

.cjdms-staffportal {
	--sp-bg: #000000; --sp-panel: #0a0a0a; --sp-border: rgba(255,255,255,0.16);
	--sp-text: #f5f5f0; --sp-muted: rgba(245,245,240,0.58);
}
.cjdms-staffportal * { border-radius: 0 !important; }

.cjdms-staffportal__login {
	max-width: 440px; margin: 48px auto; border: 1px solid var(--sp-border);
	border-top: 5px solid var(--cjdms-accent-gold); padding: 34px;
	background: var(--sp-bg); color: var(--sp-text); box-shadow: var(--cjdms-shadow-lg);
}
.cjdms-staffportal__login h2 { font-size: 24px; margin: 0 0 8px; color: #fff; text-transform: uppercase; letter-spacing: .04em; }
.cjdms-staffportal__login p { color: var(--sp-muted); font-size: 13.5px; }
.cjdms-staffportal__error { color: #ff8a80 !important; font-weight: 700; }
.cjdms-staffportal__login-form { margin-top: 18px; display: flex; flex-direction: column; gap: 4px; }
.cjdms-staffportal__login-form label { font-weight: 700; font-size: 12px; margin-top: 10px; color: var(--sp-muted); text-transform: uppercase; letter-spacing: .06em; }
.cjdms-staffportal__login-form input {
	width: 100%; padding: 11px 13px; border: 1.5px solid var(--sp-border);
	font: inherit; box-sizing: border-box; background: rgba(255,255,255,0.05); color: #fff;
}
.cjdms-staffportal__login-form input:focus { border-color: var(--cjdms-accent-gold); outline: none; }
.cjdms-staffportal__login-form button { margin-top: 18px; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; }
.cjdms-staffportal .cjdms-portal__login-hint { color: var(--sp-muted); }

.cjdms-staffportal__dashboard {
	background: var(--sp-panel); color: var(--sp-text);
	padding: 32px; border: 1px solid var(--sp-border);
	border-top: 6px solid var(--cjdms-accent-gold); border-bottom: 6px solid var(--cjdms-accent-gold);
}
.cjdms-staffportal__dashboard .cjdms-portal__header { border-bottom: 2px solid var(--sp-border); padding-bottom: 20px; }
.cjdms-staffportal__dashboard .cjdms-portal__header h1 {
	color: #fff; text-transform: uppercase; letter-spacing: .05em; font-weight: 800;
	border-left: 4px solid var(--cjdms-accent-gold); padding-left: 14px;
}
.cjdms-staffportal__dashboard .cjdms-portal__welcome { color: var(--sp-muted); padding-left: 18px; }
.cjdms-staffportal__dashboard .cjdms-portal__logout {
	border: 1.5px solid var(--sp-border); color: var(--sp-text); text-transform: uppercase;
	font-size: 12px; letter-spacing: .06em; font-weight: 800; padding: 10px 20px;
}
.cjdms-staffportal__dashboard .cjdms-portal__logout:hover { border-color: var(--cjdms-accent-gold); color: var(--cjdms-accent-gold); }
.cjdms-staffportal__dashboard .cjdms-portal__tabs { border-bottom: 2px solid var(--sp-border); gap: 0; }
.cjdms-staffportal__dashboard .cjdms-portal__tab {
	color: var(--sp-muted); text-decoration: none; display: inline-block; text-transform: uppercase;
	letter-spacing: .06em; font-weight: 800; font-size: 12.5px; padding: 13px 22px; border-bottom: 3px solid transparent;
}
.cjdms-staffportal__dashboard .cjdms-portal__tab:hover { color: #fff; }
.cjdms-staffportal__dashboard .cjdms-portal__tab.is-active { color: var(--cjdms-accent-gold); border-bottom-color: var(--cjdms-accent-gold); }
.cjdms-staffportal__dashboard .cjdms-portal__table-wrap { border: 1px solid var(--sp-border); }
.cjdms-staffportal__dashboard .cjdms-portal__table th { background: rgba(255,255,255,0.04); color: var(--sp-muted); text-transform: uppercase; letter-spacing: .05em; }
.cjdms-staffportal__dashboard .cjdms-portal__table th, .cjdms-staffportal__dashboard .cjdms-portal__table td { border-bottom-color: var(--sp-border); white-space: normal; }
.cjdms-staffportal__dashboard .cjdms-portal__muted { color: var(--sp-muted); }
.cjdms-staffportal__dashboard .cjdms-portal__empty, .cjdms-staffportal__dashboard .cjdms-portal__hint { color: var(--sp-muted); }

.cjdms-staffportal__flash {
	background: #0a0a0a; color: var(--cjdms-accent-gold); border: 1px solid var(--cjdms-accent-gold);
	padding: 12px 18px; font-weight: 800; font-size: 12.5px; margin-bottom: 18px; text-transform: uppercase; letter-spacing: .05em;
}
.cjdms-staffportal__toggle {
	padding: 7px 16px; border: 1.5px solid var(--sp-border);
	background: transparent; color: var(--sp-text); cursor: pointer; font: inherit;
	font-weight: 800; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em;
}
.cjdms-staffportal__toggle:hover { border-color: var(--cjdms-accent-gold); color: var(--cjdms-accent-gold); background: rgba(255,215,0,0.06); }
.cjdms-staffportal__manage-row td { background: rgba(255,255,255,0.03); padding: 18px !important; }
.cjdms-staffportal__manage-row[hidden] { display: none !important; }
.cjdms-staffportal__lead-form, .cjdms-staffportal__project-form, .cjdms-staffportal__pool-form {
	display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end;
}
.cjdms-staffportal__lead-form label, .cjdms-staffportal__project-form label, .cjdms-staffportal__pool-form label {
	display: flex; flex-direction: column; gap: 5px; font-size: 11.5px; font-weight: 800;
	color: var(--sp-muted); text-transform: uppercase; letter-spacing: .05em; min-width: 160px;
}
.cjdms-staffportal__lead-form select, .cjdms-staffportal__lead-form input, .cjdms-staffportal__lead-form textarea,
.cjdms-staffportal__project-form select, .cjdms-staffportal__project-form input, .cjdms-staffportal__project-form textarea,
.cjdms-staffportal__pool-form select, .cjdms-staffportal__pool-form input, .cjdms-staffportal__pool-form textarea {
	padding: 9px 11px; border: 1.5px solid var(--sp-border);
	font: inherit; background: rgba(255,255,255,0.05); color: #fff; text-transform: none; letter-spacing: normal; font-weight: 400;
}
.cjdms-staffportal__lead-form select:focus, .cjdms-staffportal__lead-form input:focus, .cjdms-staffportal__lead-form textarea:focus,
.cjdms-staffportal__project-form select:focus, .cjdms-staffportal__project-form input:focus, .cjdms-staffportal__project-form textarea:focus,
.cjdms-staffportal__pool-form select:focus, .cjdms-staffportal__pool-form input:focus, .cjdms-staffportal__pool-form textarea:focus { border-color: var(--cjdms-accent-gold); outline: none; }
.cjdms-staffportal__history { margin-top: 4px; width: 100%; }
.cjdms-staffportal__history summary { cursor: pointer; color: var(--sp-muted); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.cjdms-staffportal__history pre { white-space: pre-wrap; font: inherit; font-size: 12.5px; color: var(--sp-muted); margin-top: 8px; max-height: 160px; overflow-y: auto; border-left: 2px solid var(--sp-border); padding-left: 10px; }
.cjdms-staffportal__overdue { color: #ff8a80; font-weight: 700; }
.cjdms-staffportal__milestones { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 0; }
.cjdms-staffportal__milestones li { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 13.5px; padding: 9px 0; border-bottom: 1px solid var(--sp-border); }
.cjdms-staffportal__milestones li:last-child { border-bottom: 0; }
.cjdms-staffportal__milestones li.is-done span:first-child { color: var(--cjdms-accent-gold); text-decoration: line-through; }

/* Dashboard (Overview) tab: stat blocks + funnel chart. */
.cjdms-staffportal__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 2px; margin-bottom: 36px; background: var(--sp-border); }
.cjdms-staffportal__stat-card {
	display: flex; flex-direction: column; gap: 8px; padding: 22px 22px 20px; border-left: 4px solid var(--cjdms-accent-gold);
	background: var(--sp-bg); text-decoration: none;
	transition: background var(--cjdms-transition);
}
.cjdms-staffportal__stat-card:hover { background: rgba(255,215,0,0.06); }
.cjdms-staffportal__stat-card.is-alert { border-left-color: #ff8a80; }
.cjdms-staffportal__stat-value { font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 38px; color: #fff; line-height: 1; }
.cjdms-staffportal__stat-card.is-alert .cjdms-staffportal__stat-value { color: #ff8a80; }
.cjdms-staffportal__stat-label { font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: var(--sp-muted); }

.cjdms-staffportal__section-title {
	font-size: 14px; font-weight: 800; color: #fff; margin: 0 0 18px; text-transform: uppercase; letter-spacing: .07em;
	border-left: 4px solid var(--cjdms-accent-gold); padding-left: 12px;
}

.cjdms-staffportal__funnel { display: flex; flex-direction: column; gap: 2px; margin-bottom: 8px; background: var(--sp-border); }
.cjdms-staffportal__funnel-row { display: grid; grid-template-columns: 140px 1fr 40px; align-items: center; gap: 14px; background: var(--sp-bg); padding: 10px 0; }
.cjdms-staffportal__funnel-label { font-size: 12px; font-weight: 800; color: var(--sp-muted); text-transform: uppercase; letter-spacing: .05em; padding-left: 4px; }
.cjdms-staffportal__funnel-track { background: rgba(255,255,255,0.06); height: 22px; overflow: hidden; }
.cjdms-staffportal__funnel-bar { display: block; height: 100%; min-width: 8px; transition: filter var(--cjdms-transition); background: var(--cjdms-info); }
.cjdms-staffportal__funnel-bar:hover { filter: brightness(1.15); }
.cjdms-staffportal__funnel-bar--new { background: #4fa3f7; }
.cjdms-staffportal__funnel-bar--contacted { background: var(--cjdms-accent-gold); }
.cjdms-staffportal__funnel-bar--quoted { background: var(--cjdms-primary-blue); }
.cjdms-staffportal__funnel-bar--won { background: var(--cjdms-success); }
.cjdms-staffportal__funnel-bar--archived { background: #ff8a80; }
.cjdms-staffportal__funnel-count { font-family: var(--cjdms-font-heading); font-weight: 800; color: #fff; text-align: right; font-variant-numeric: tabular-nums; padding-right: 4px; }

/* CRM tab: brand-forward pipeline board — gold-underlined columns, cards
   flagged with a status-colored left bar instead of rounded badge pills. */
.cjdms-staffportal__pipeline { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, 1fr); gap: 1px; overflow-x: auto; padding-bottom: 8px; background: var(--sp-border); }
.cjdms-staffportal__pipeline-col { display: flex; flex-direction: column; min-width: 250px; background: var(--sp-bg); }
.cjdms-staffportal__pipeline-col-head {
	display: flex; justify-content: space-between; align-items: center; padding: 14px 16px;
	font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em;
	color: #fff; border-bottom: 4px solid var(--cjdms-accent-gold); background: rgba(255,255,255,0.03);
}
.cjdms-staffportal__pipeline-count {
	background: var(--cjdms-accent-gold); color: #000; padding: 1px 9px; font-size: 11px; font-weight: 800;
}
.cjdms-staffportal__pipeline-cards { display: flex; flex-direction: column; gap: 1px; background: var(--sp-border); flex: 1; }
.cjdms-staffportal__pipeline-empty { color: var(--sp-muted); font-size: 12px; font-style: italic; padding: 14px 16px; background: var(--sp-bg); text-transform: uppercase; letter-spacing: .04em; }
.cjdms-staffportal__pipeline-card {
	display: flex; flex-direction: column; gap: 5px; background: var(--sp-bg);
	border-left: 4px solid #4fa3f7; padding: 14px 16px;
}
.cjdms-staffportal__pipeline-col:nth-child(1) .cjdms-staffportal__pipeline-card { border-left-color: #4fa3f7; }
.cjdms-staffportal__pipeline-col:nth-child(2) .cjdms-staffportal__pipeline-card { border-left-color: var(--cjdms-accent-gold); }
.cjdms-staffportal__pipeline-col:nth-child(3) .cjdms-staffportal__pipeline-card { border-left-color: var(--cjdms-primary-blue); }
.cjdms-staffportal__pipeline-col:nth-child(4) .cjdms-staffportal__pipeline-card { border-left-color: var(--cjdms-success); }
.cjdms-staffportal__pipeline-col:nth-child(5) .cjdms-staffportal__pipeline-card { border-left-color: #ff8a80; }
.cjdms-staffportal__pipeline-col:nth-child(6) .cjdms-staffportal__pipeline-card { border-left-color: #b48cff; }
.cjdms-staffportal__pipeline-card strong { color: #fff; font-size: 14px; text-transform: uppercase; letter-spacing: .02em; }
.cjdms-staffportal__pipeline-meta { font-size: 11.5px; color: var(--sp-muted); text-transform: uppercase; letter-spacing: .03em; }
.cjdms-staffportal__pipeline-card .cjdms-staffportal__toggle { align-self: flex-start; margin-top: 8px; padding: 6px 14px; font-size: 11px; }
.cjdms-staffportal__pipeline-card form.cjdms-staffportal__manage-row { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--sp-border); }
.cjdms-staffportal__pipeline-card .cjdms-staffportal__lead-form { flex-direction: column; align-items: stretch; gap: 10px; }
.cjdms-staffportal__pipeline-card .cjdms-staffportal__lead-form label { min-width: 0; }

/* ERP tab reuses the same board pattern, cards flagged by project status. */
.cjdms-staffportal__pipeline-progress { display: flex; align-items: center; gap: 8px; margin: 2px 0; }
.cjdms-staffportal__pipeline-progress-track { flex: 1; height: 6px; background: rgba(255,255,255,0.1); overflow: hidden; }
.cjdms-staffportal__pipeline-progress-fill { height: 100%; background: var(--cjdms-accent-gold); }
.cjdms-staffportal__pipeline-progress span { font-size: 11px; font-weight: 800; color: var(--sp-muted); font-variant-numeric: tabular-nums; }

.cjdms-staffportal__pipeline-card .cjdms-staffportal__manage-row { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--sp-border); }
.cjdms-staffportal__pipeline-card .cjdms-staffportal__manage-row h4 { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--sp-muted); margin: 14px 0 6px; font-weight: 800; }
.cjdms-staffportal__pipeline-card .cjdms-staffportal__project-form { flex-direction: column; align-items: stretch; gap: 10px; }
.cjdms-staffportal__pipeline-card .cjdms-staffportal__project-form label { min-width: 0; }
.cjdms-staffportal__pipeline-card .cjdms-staffportal__milestones { margin: 0; }
.cjdms-staffportal__pipeline-card .cjdms-staffportal__milestone-form { display: inline; }

/* Inventory tab: same angular/gold-rule treatment applied to the plain table. */
.cjdms-staffportal__dashboard .cjdms-portal__table-wrap { border-top: 3px solid var(--cjdms-accent-gold); }

/* ==========================================================================
   13. Quotation Viewer — [cjdms_view_quotation]
   ========================================================================== */

.cjdms-quote-view { max-width: 760px; margin: 0 auto; padding: 12px 0 40px; }
.cjdms-quote-view__card { border: 1px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius-lg); padding: 32px; background: var(--cjdms-white); box-shadow: var(--cjdms-shadow-sm); }
.cjdms-quote-view__letterhead { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; border-bottom: 2px solid var(--cjdms-header-black); padding-bottom: 12px; margin-bottom: 18px; }
.cjdms-quote-view__letterhead-brand { font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 20px; }
.cjdms-quote-view__letterhead-meta { font-size: 12px; color: var(--cjdms-text-muted); }
.cjdms-quote-view__header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; border-bottom: 1px solid var(--cjdms-border-color); padding-bottom: 18px; margin-bottom: 20px; }
.cjdms-quote-view__title { font-size: 22px; margin: 0 0 4px; }
.cjdms-quote-view__ref { color: var(--cjdms-text-muted); font-size: 13.5px; }
.cjdms-quote-view__intro { font-size: 14px; line-height: 1.6; color: var(--cjdms-text-dark); margin: 0 0 4px; }
.cjdms-quote-view__section { margin: 22px 0; }
.cjdms-quote-view__section-total { font-family: var(--cjdms-font-heading); font-weight: 800; }
.cjdms-quote-view__grand-total { font-family: var(--cjdms-font-heading); font-size: 26px; font-weight: 800; color: var(--cjdms-primary-blue); }
.cjdms-quote-view__validity { font-size: 13px; color: var(--cjdms-text-muted); }
.cjdms-quote-view__validity--expired { color: var(--cjdms-danger); font-weight: 700; }
.cjdms-quote-view__terms { font-size: 13.5px; color: var(--cjdms-text-muted); background: var(--cjdms-bg-light); padding: 14px 16px; border-radius: var(--cjdms-radius-sm); }
.cjdms-quote-view__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.cjdms-quote-view__pay, .cjdms-quote-view__accept {
	padding: 13px 26px; border: 0; border-radius: var(--cjdms-radius-sm); cursor: pointer;
	font: inherit; font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 14.5px;
	background: var(--cjdms-accent-yellow); color: var(--cjdms-header-black); transition: background var(--cjdms-transition), transform var(--cjdms-transition);
}
.cjdms-quote-view__pay:hover, .cjdms-quote-view__accept:hover { background: var(--cjdms-accent-gold); transform: translateY(-1px); }
.cjdms-quote-view__pay--full { background: var(--cjdms-primary-blue); color: var(--cjdms-white); }
.cjdms-quote-view__pay--full:hover { background: var(--cjdms-dark-blue); color: var(--cjdms-white); }
.cjdms-quote-view__reject-toggle { background: transparent; border: 1.5px solid var(--cjdms-border-color); color: var(--cjdms-text-dark); padding: 13px 26px; border-radius: var(--cjdms-radius-sm); cursor: pointer; font: inherit; font-weight: 700; }
.cjdms-quote-view__reject-toggle:hover { border-color: var(--cjdms-danger); color: var(--cjdms-danger); }
.cjdms-quote-view__reject-panel { margin-top: 16px; }
.cjdms-quote-view__reject-submit { background: var(--cjdms-danger); color: var(--cjdms-white); border: 0; padding: 11px 22px; border-radius: var(--cjdms-radius-sm); cursor: pointer; font: inherit; font-weight: 700; }
.cjdms-quote-view__notice { text-align: center; padding: 48px 24px; color: var(--cjdms-text-muted); }
.cjdms-quote-view__notice--restricted { color: var(--cjdms-danger); }
.cjdms-quote-view__confirmation { text-align: center; padding: 40px 24px; }
.cjdms-quote-view__confirmation--paid { color: var(--cjdms-success); }
.cjdms-quote-view__expired-note { color: var(--cjdms-danger); font-weight: 700; }
.cjdms-quote-view__response { margin-top: 12px; font-weight: 700; font-size: 13.5px; }
.cjdms-quote-view__print { padding: 9px 18px; border: 1.5px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius-sm); background: var(--cjdms-white); cursor: pointer; font: inherit; font-size: 13px; font-weight: 700; }

/* ==========================================================================
   13b. Legal & COP / Contact Us Pages
   ========================================================================== */

.cjdms-legal, .cjdms-contact { padding: 8px 0 48px; }

.cjdms-legal__hero, .cjdms-contact__hero {
	background: linear-gradient(135deg, var(--cjdms-primary-blue) 0%, var(--cjdms-dark-blue) 100%);
	border-radius: var(--cjdms-radius-lg);
	padding: 48px 40px;
	text-align: center;
	color: var(--cjdms-white);
	margin-bottom: 32px;
}
.cjdms-legal__eyebrow, .cjdms-contact__eyebrow {
	text-transform: uppercase;
	letter-spacing: .1em;
	font-size: 13px;
	font-weight: 800;
	color: var(--cjdms-accent-yellow);
	margin: 0 0 14px;
}
.cjdms-legal__headline, .cjdms-contact__headline {
	font-size: clamp(26px, 4vw, 36px);
	line-height: 1.2;
	margin: 0 0 14px;
	color: var(--cjdms-white);
}
.cjdms-legal__notice, .cjdms-contact__subhead {
	font-size: 16px;
	color: rgba(255,255,255,0.9);
	max-width: 640px;
	margin: 0 auto;
}

.cjdms-legal__toc {
	background: var(--cjdms-bg-light);
	border: 1px solid var(--cjdms-border-color);
	border-radius: var(--cjdms-radius);
	padding: 20px 24px;
	margin-bottom: 32px;
}
.cjdms-legal__toc ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 24px; }
.cjdms-legal__toc a { color: var(--cjdms-dark-blue); text-decoration: none; font-weight: 600; font-size: 14px; }
.cjdms-legal__toc a:hover { text-decoration: underline; }
.cjdms-legal__section { padding: 28px 0; border-top: 1px solid var(--cjdms-border-color); scroll-margin-top: 100px; }
.cjdms-legal__section h2 { font-size: 20px; margin: 0 0 14px; }
.cjdms-legal__section h3 { font-size: 15.5px; margin: 22px 0 8px; color: var(--cjdms-header-black); }
.cjdms-legal__section p { color: var(--cjdms-text-muted); line-height: 1.7; margin: 0 0 12px; }
.cjdms-legal__section p strong { color: var(--cjdms-text-dark); }

.cjdms-legal__table { width: 100%; border-collapse: collapse; margin: 0 0 16px; font-size: 13.5px; }
.cjdms-legal__table th, .cjdms-legal__table td { border: 1px solid var(--cjdms-border-color); padding: 8px 10px; text-align: left; }
.cjdms-legal__table th { background: var(--cjdms-bg-light); font-weight: 700; }

.cjdms-legal__contact { margin-top: 20px; padding: 18px 20px; border: 1px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius); background: var(--cjdms-bg-light); }
.cjdms-legal__contact h3 { margin: 0 0 10px; }
.cjdms-legal__contact-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 24px; }
.cjdms-legal__contact-list a { display: inline-flex; align-items: center; gap: 7px; color: var(--cjdms-primary-blue); text-decoration: none; font-weight: 600; font-size: 14px; }
.cjdms-legal__contact-list a:hover { text-decoration: underline; }
.cjdms-legal__contact-list svg { width: 17px; height: 17px; flex-shrink: 0; }

.cjdms-contact__channels {
	list-style: none;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 40px;
	padding: 0;
}
.cjdms-contact__channels a {
	display: inline-block;
	padding: 10px 20px;
	border: 1.5px solid var(--cjdms-border-color);
	border-radius: var(--cjdms-radius-pill);
	color: var(--cjdms-text-dark);
	text-decoration: none;
	font-weight: 700;
	font-size: 14px;
	transition: border-color var(--cjdms-transition), color var(--cjdms-transition);
}
.cjdms-contact__channels a:hover { border-color: var(--cjdms-primary-blue); color: var(--cjdms-dark-blue); }
.cjdms-contact__form-wrap { max-width: 680px; margin: 0 auto; }

.cjdms-contact__channels-grid {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px;
	max-width: 980px; margin: 0 auto 24px;
}
.cjdms-contact__channel-card {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px;
	padding: 22px 16px; border: 1px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius);
	background: var(--cjdms-white); text-decoration: none; color: inherit;
	transition: border-color var(--cjdms-transition), box-shadow var(--cjdms-transition), transform var(--cjdms-transition);
}
a.cjdms-contact__channel-card:hover { border-color: var(--cjdms-primary-blue); box-shadow: var(--cjdms-shadow); transform: translateY(-2px); }
.cjdms-contact__channel-card svg { width: 26px; height: 26px; color: var(--cjdms-primary-blue); }
.cjdms-contact__channel-label { font-family: var(--cjdms-font-heading); font-weight: 800; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--cjdms-text-muted); }
.cjdms-contact__channel-value { font-weight: 700; font-size: 14.5px; }

.cjdms-contact__social { list-style: none; display: flex; justify-content: center; gap: 14px; margin: 0 0 40px; padding: 0; }
.cjdms-contact__social a { display: inline-flex; align-items: center; gap: 7px; color: var(--cjdms-primary-blue); text-decoration: none; font-weight: 700; font-size: 14px; }
.cjdms-contact__social a:hover { text-decoration: underline; }
.cjdms-contact__social svg { width: 18px; height: 18px; }

.cjdms-contact__hours, .cjdms-contact__why, .cjdms-contact__form-section {
	max-width: 680px; margin: 0 auto 40px;
}
.cjdms-contact__hours h2, .cjdms-contact__why h2, .cjdms-contact__form-section h2 { font-size: 22px; margin: 0 0 12px; text-align: center; }
.cjdms-contact__hours ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius); overflow: hidden; }
.cjdms-contact__hours li { display: flex; justify-content: space-between; padding: 12px 18px; font-size: 14px; border-top: 1px solid var(--cjdms-border-color); }
.cjdms-contact__hours li:first-child { border-top: 0; }
.cjdms-contact__hours li span:first-child { font-weight: 700; }
.cjdms-contact__why p { text-align: center; color: var(--cjdms-text-muted); line-height: 1.7; }
.cjdms-contact__form-section > p { text-align: center; color: var(--cjdms-text-muted); margin: 0 0 20px; }

.cjdms-contact__faq-cta {
	max-width: 560px; margin: 0 auto; text-align: center; padding: 28px 20px;
	border: 1px solid var(--cjdms-border-color); border-radius: var(--cjdms-radius-lg); background: var(--cjdms-bg-light);
}
.cjdms-contact__faq-cta p { margin: 0 0 6px; color: var(--cjdms-text-muted); }
.cjdms-contact__faq-cta p:first-child { font-weight: 800; color: var(--cjdms-text-dark); font-size: 16px; }
.cjdms-contact__faq-link { display: inline-block; margin-top: 10px; color: var(--cjdms-primary-blue); font-weight: 700; text-decoration: none; }
.cjdms-contact__faq-link:hover { text-decoration: underline; }

/* ==========================================================================
   13c. FAQ Section (homepage, directly above the footer)
   ========================================================================== */

.cjdms-faq-section {
	background:
		radial-gradient(ellipse 700px 400px at 85% 0%, rgba(255,215,0,0.06) 0%, transparent 60%),
		linear-gradient(180deg, #000000 0%, #0a0a0a 100%);
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 72px 24px 80px;
	border-top: 6px solid #fed42d;
}
.cjdms-faq-section__header { max-width: 640px; margin: 0 auto 44px; text-align: center; }
.cjdms-faq-section__eyebrow {
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: 12.5px;
	font-weight: 700;
	color: var(--cjdms-accent-gold);
	margin: 0 0 10px;
}
.cjdms-faq-section__title { font-size: clamp(26px, 3.6vw, 36px); margin: 0 0 12px; color: #fff; }
.cjdms-faq-section__sub { color: rgba(255,255,255,0.55); font-size: 15.5px; line-height: 1.6; margin: 0; }

.cjdms-faq-section__controls {
	max-width: 780px; margin: 0 auto 28px; display: flex; align-items: center; justify-content: space-between;
	flex-wrap: wrap; gap: 14px;
}
.cjdms-faq-section__tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.cjdms-faq-section__tab {
	padding: 8px 18px; border-radius: var(--cjdms-radius-pill); border: 1px solid rgba(255,255,255,0.18);
	background: transparent; color: rgba(255,255,255,0.7); font-weight: 700; font-size: 13px; cursor: pointer;
	transition: background var(--cjdms-transition), color var(--cjdms-transition), border-color var(--cjdms-transition);
}
.cjdms-faq-section__tab:hover { border-color: #fed42d; color: #fff; }
.cjdms-faq-section__tab.is-active { background: #fed42d; border-color: #fed42d; color: #000; }
.cjdms-faq-section__toggle-all { display: flex; gap: 10px; }
.cjdms-faq-section__expand-all {
	padding: 8px 14px; border-radius: var(--cjdms-radius-sm); border: 1px solid rgba(255,255,255,0.18);
	background: transparent; color: rgba(255,255,255,0.7); font-weight: 600; font-size: 12.5px; cursor: pointer;
	transition: border-color var(--cjdms-transition), color var(--cjdms-transition);
}
.cjdms-faq-section__expand-all:hover { border-color: #fff; color: #fff; }
.cjdms-faq-section__list {
	display: flex;
	flex-direction: column;
	max-width: 780px;
	margin: 0 auto;
}

.cjdms-faq__item {
	border: 1px solid rgba(255,255,255,0.1);
	border-radius: var(--cjdms-radius);
	margin-bottom: 12px;
	padding: 6px 22px;
	background: rgba(255,255,255,0.03);
	overflow: hidden;
	transition: border-color var(--cjdms-transition), background var(--cjdms-transition), box-shadow var(--cjdms-transition);
}
.cjdms-faq__item:hover {
	border-color: rgba(255,215,0,0.35);
	background: rgba(255,255,255,0.05);
	box-shadow: 0 12px 28px -14px rgba(0,0,0,0.6);
}
.cjdms-faq__question {
	font-family: var(--cjdms-font-heading);
	font-weight: 600;
	cursor: pointer;
	padding: 18px 0;
	font-size: 15.5px;
	color: #fff;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.cjdms-faq__question::-webkit-details-marker { display: none; }
.cjdms-faq__question::after {
	content: '+';
	flex-shrink: 0;
	font-size: 20px;
	line-height: 1;
	color: var(--cjdms-accent-gold);
	transition: transform var(--cjdms-transition);
}
.cjdms-faq__item[open] .cjdms-faq__question::after { transform: rotate(45deg); }
.cjdms-faq__item[open] { border-color: rgba(255,215,0,0.3); background: rgba(255,255,255,0.045); }
.cjdms-faq__answer { padding: 0 0 20px; color: rgba(255,255,255,0.6); line-height: 1.7; font-size: 14.5px; }
.cjdms-faq__answer p { margin: 0; }
.cjdms-faq__answer a { display: inline-block; margin-top: 10px; font-weight: 700; white-space: nowrap; color: var(--cjdms-accent-gold); }

/* ==========================================================================
   14. Responsive Breakpoints
   ========================================================================== */

@media (max-width: 1024px) {
	.cjdms-container, .cjdms-topbar__inner, .cjdms-navbar__inner, .cjdms-footer__inner, .cjdms-footer__subfooter-inner { padding-left: 20px; padding-right: 20px; }
	.cjdms-footer__inner { grid-template-columns: 1.2fr 1fr 1fr; }
	.cjdms-pricing__card--featured { transform: none; }
	.cjdms-showcase__industries-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
	.cjdms-topbar__channels { display: none; }
	.cjdms-topbar__inner { justify-content: flex-end; }

	.cjdms-mobile-cta { display: flex; }
	.cjdms-page { padding-bottom: 68px; }

	.cjdms-founder__grid { grid-template-columns: 1fr; }
	.cjdms-founder__portrait { max-width: 220px; margin: 0 auto 24px; }
	.cjdms-founder__portrait-placeholder { font-size: 40px; }

	.cjdms-navbar__toggle { display: inline-flex; }
	.cjdms-navbar__menu {
		display: none;
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		position: absolute;
		top: 100%; left: 0;
		background: var(--cjdms-header-black);
		padding: 8px 20px 18px;
		box-shadow: var(--cjdms-shadow-lg);
	}
	.cjdms-navbar.is-open .cjdms-navbar__menu { display: flex; }
	.cjdms-navbar__item { width: 100%; }
	.cjdms-navbar__link { width: 100%; border-bottom: 1px solid rgba(255,255,255,0.08); border-radius: 0; }
	.cjdms-navbar__link.is-active { border-bottom: 1px solid rgba(255,255,255,0.08); }
	.cjdms-navbar__submenu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; background: rgba(255,255,255,0.04); display: none; }
	.cjdms-navbar__item.is-open .cjdms-navbar__submenu { display: block; }
	.cjdms-navbar__cta { margin: 10px 0 0; text-align: center; }

	.cjdms-footer__inner { grid-template-columns: 1fr 1fr; padding-top: 40px; }
	.cjdms-footer__inner--3col { grid-template-columns: 1fr; }
	.cjdms-footer__subfooter-inner { flex-direction: column; text-align: center; }

	.cjdms-showcase__hero, .cjdms-partners-overview__hero, .cjdms-legal__hero, .cjdms-contact__hero, .cjdms-faq__hero { padding: 44px 22px; }
	.cjdms-showcase__subhead { font-size: 16px; }
	.cjdms-showcase__audit-banner { margin: 22px auto 0; padding: 14px 18px; }

	.cjdms-pricing__grid, .cjdms-showcase__value-grid, .cjdms-showcase__pillar-cards,
	.cjdms-partners-overview__tiers, .cjdms-portal__cards, .cjdms-showcase__industries-grid { grid-template-columns: 1fr; }
	.cjdms-pricing__card--featured { transform: none; }

	.cjdms-showcase__ribbon { padding: 24px 18px; }
	.cjdms-showcase__ribbon::before, .cjdms-showcase__ribbon::after { width: 80px; }
	.cjdms-showcase__cta-box { margin: 22px 16px; padding: 14px 18px; }

	.cjdms-legal__toc ul { grid-template-columns: 1fr; }
	.cjdms-faq-section { padding: 48px 18px 56px; }

	.cjdms-showcase__workflow-step { flex-direction: column; gap: 8px; }
	.cjdms-quote-view__card { padding: 22px 18px; }
	.cjdms-quote-view__actions { flex-direction: column; }
	.cjdms-quote-view__actions .cjdms-quote-view__pay,
	.cjdms-quote-view__actions .cjdms-quote-view__accept,
	.cjdms-quote-view__actions .cjdms-quote-view__reject-toggle { width: 100%; }
}

@media (max-width: 480px) {
	.cjdms-footer__inner { grid-template-columns: 1fr; }
	.cjdms-affportal__link-row, .cjdms-portal__license-row { flex-direction: column; }
}

/* ==========================================================================
   15. Print
   ========================================================================== */

@media print {
	.cjdms-topbar, .cjdms-navbar, .cjdms-footer { display: none !important; }
	.cjdms-page__main { padding: 0 !important; }

	/* Quotation card: isolate it as the printable document — no card chrome,
	   no page background, full-bleed letterhead-style layout. */
	body:has(.cjdms-quote-view) { background: var(--cjdms-white) !important; }
	.cjdms-quote-view { max-width: none; margin: 0; padding: 0; }
	.cjdms-quote-view__card { border: 0; border-radius: 0; padding: 0; box-shadow: none; }
	.cjdms-quote-view__badge { border: 1.5px solid currentColor; background: transparent !important; color: var(--cjdms-text-dark) !important; }
	.cjdms-quote-view__table tr, .cjdms-quote-view__section { break-inside: avoid; }
	.cjdms-quote-view__grand-total { color: var(--cjdms-text-dark); border-top: 2px solid var(--cjdms-header-black); padding-top: 10px; }
	.cjdms-quote-view__terms { background: transparent; border: 1px solid var(--cjdms-border-color); }
}
