/* LD Testimonials. Uses the LeoDregier theme colours when they're there. */
.ldt {
	--ldt-primary: var(--ld-primary, #0e2a47);
	--ldt-primary-soft: var(--ld-primary-soft, #17395e);
	--ldt-accent: var(--ld-accent, #f5a524);
	--ldt-accent-ink: var(--ld-accent-ink, #0e2a47);
	--ldt-ink: var(--ld-ink, #1b2733);
	--ldt-muted: var(--ld-muted, #4a5868);
	--ldt-line: var(--ld-line, #e3e8ef);
	--ldt-radius: var(--ld-radius, 20px);
	--ldt-font-display: var(--ld-font-display, inherit);
	--ldt-gap: 24px;
	/* Dark (default) */
	--ldt-bg: var(--ldt-primary);
	--ldt-card: var(--ldt-primary-soft);
	--ldt-card-line: rgba(255, 255, 255, .08);
	--ldt-text: #e6edf5;
	--ldt-strong: #fff;
	--ldt-soft: var(--ld-on-dark-muted, #c9d5e3);
	--ldt-chip: rgba(255, 255, 255, .1);
	--ldt-track: rgba(255, 255, 255, .14);
	position: relative;
	color: var(--ldt-text);
	margin: 2em 0;
}
.ldt--dark { background: var(--ldt-bg); border-radius: 28px; padding: 44px 40px 36px; }
.ldt--section { margin: 0; }
.ldt--light {
	--ldt-card: #fff;
	--ldt-card-line: var(--ldt-line);
	--ldt-text: var(--ldt-ink);
	--ldt-strong: var(--ldt-primary);
	--ldt-soft: var(--ldt-muted);
	--ldt-chip: var(--ld-bg-alt, #f5f7fa);
	--ldt-track: var(--ldt-line);
}
.ldt *, .ldt *::before, .ldt *::after { box-sizing: border-box; }
.ldt [hidden] { display: none !important; }
.ldt-icon { width: 1em; height: 1em; flex-shrink: 0; }

/* Heading and totals */
.ldt__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: 32px; }
.ldt__head-text { flex: 1 1 420px; max-width: 720px; min-width: 0; }
.ldt .ldt__title { margin: 0; color: var(--ldt-strong); font-family: var(--ldt-font-display); }
.ldt .ldt__title::after { display: none; }
.ldt__intro { margin: 10px 0 0; color: var(--ldt-soft); font-size: 17px; }
.ldt__stats { display: flex; flex-wrap: wrap; gap: 10px; }
.ldt-stat {
	display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px;
	background: var(--ldt-chip); color: var(--ldt-soft); font-size: 14px; line-height: 1.3;
}
.ldt-stat strong { color: var(--ldt-strong); font-size: 16px; }
.ldt-stat__of { font-weight: 400; color: var(--ldt-soft); font-size: 13px; }
.ldt-stat .ldt-icon { width: 18px; height: 18px; color: var(--ldt-accent); }
.ldt-stat .ldt-icon--linkedin { color: #fff; background: #0a66c2; border-radius: 3px; padding: 2px; }

/* Track */
.ldt__viewport {
	overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch; scrollbar-width: none; margin: -6px; padding: 6px; scroll-padding: 0 6px; outline: 0;
}
.ldt__viewport::-webkit-scrollbar { display: none; }
.ldt__viewport:focus-visible { outline: 3px solid var(--ldt-accent); outline-offset: 2px; border-radius: var(--ldt-radius); }
.ldt__track { display: flex; gap: var(--ldt-gap); margin: 0; padding: 0; list-style: none; align-items: stretch; }
.ldt-card {
	flex: 0 0 calc((100% - 2 * var(--ldt-gap)) / 3); min-width: 0; scroll-snap-align: start;
	display: flex; flex-direction: column; gap: 18px; margin: 0;
	background: var(--ldt-card); border: 1px solid var(--ldt-card-line); border-radius: var(--ldt-radius);
	padding: 26px 26px 24px; color: var(--ldt-text); position: relative;
}
.ldt--light .ldt-card { box-shadow: 0 1px 2px rgba(10, 31, 53, .06); }
/* Always three across on computers, two on tablets, one on phones. */
@media (max-width: 899px) { .ldt-card { flex-basis: calc((100% - var(--ldt-gap)) / 2); } }
@media (max-width: 679px) {
	.ldt { --ldt-gap: 14px; }
	.ldt__track { align-items: flex-start; }
	.ldt-card { flex-basis: 88%; padding: 22px 20px 20px; }
	.ldt--dark { padding: 32px 18px 26px; border-radius: 22px; }
}

/* Card top */
.ldt-card__top { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding-right: 44px; min-height: 28px; }
.ldt-chip {
	display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 4px 11px;
	font-size: 12.5px; font-weight: 600; line-height: 1.3; background: var(--ldt-chip); color: var(--ldt-soft);
}
.ldt-chip .ldt-icon { width: 14px; height: 14px; }
.ldt-chip--linkedin .ldt-icon { color: #fff; background: #0a66c2; border-radius: 2px; padding: 1px; }
.ldt-chip--badge { background: var(--ldt-accent); color: var(--ldt-accent-ink); font-weight: 700; }

/* Quote */
.ldt-quote { position: static; margin: 0; padding: 0; border: 0; font-style: normal; quotes: none; }
.ldt-quote::before, .ldt-quote::after { content: none; }
.ldt-quote > .ldt-icon { position: absolute; top: 20px; right: 22px; width: 34px; height: 34px; color: var(--ldt-accent); opacity: .45; }
.ldt-quote__text {
	font-size: 17px; line-height: 1.6; color: var(--ldt-text);
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 8; overflow: hidden;
}
.ldt-quote__text p { margin: 0 0 .7em; }
.ldt-quote__text p:last-child { margin-bottom: 0; }
.ldt-card.is-open .ldt-quote__text { display: block; -webkit-line-clamp: unset; overflow: visible; }
.ldt-more {
	align-self: flex-start; margin-top: -6px; padding: 0; border: 0; background: none; cursor: pointer;
	font: inherit; font-size: 14px; font-weight: 700; color: var(--ldt-accent); text-decoration: underline; text-underline-offset: 3px;
}
.ldt--light .ldt-more { color: var(--ld-link, #1559c7); }

/* Evaluation card */
.ldt-eval { flex: 1 1 auto; }
.ldt-eval__score { margin: 0; line-height: 1; color: var(--ldt-strong); font-family: var(--ldt-font-display); }
.ldt-eval__score strong { font-size: 56px; letter-spacing: -.02em; }
.ldt-eval__score span { font-size: 22px; color: var(--ldt-soft); margin-left: 2px; }
.ldt-eval__caption { margin: 6px 0 16px; color: var(--ldt-soft); font-size: 15px; }
.ldt-bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ldt-bars li { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; font-size: 14px; line-height: 1.35; }
.ldt-bars__label { color: var(--ldt-text); }
.ldt-bars__score { font-weight: 700; color: var(--ldt-strong); }
.ldt-bars__bar { grid-column: 1 / -1; height: 6px; border-radius: 99px; background: var(--ldt-track); overflow: hidden; }
.ldt-bars__bar span { display: block; height: 100%; border-radius: inherit; background: var(--ldt-accent); }

/* Person */
.ldt-person { display: flex; align-items: center; gap: 14px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--ldt-card-line); }
.ldt-avatar {
	width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex-shrink: 0;
	box-shadow: 0 0 0 2px var(--ldt-card), 0 0 0 4px var(--ldt-accent);
}
.ldt-avatar--initials, .ldt-avatar--icon {
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--ldt-accent); color: var(--ldt-accent-ink); font-weight: 700; font-size: 18px; letter-spacing: .02em;
}
.ldt-avatar--icon .ldt-icon { width: 26px; height: 26px; }
.ldt-person__text { display: flex; flex-direction: column; min-width: 0; line-height: 1.35; }
.ldt-person__name { font-style: normal; font-weight: 700; color: var(--ldt-strong); font-size: 16px; }
.ldt-person__name a { color: inherit; text-decoration: none; }
.ldt-person__name a:hover { text-decoration: underline; }
.ldt-person__meta { font-size: 14px; color: var(--ldt-soft); }
.ldt-person__sub { font-size: 13px; color: var(--ldt-soft); opacity: .85; }

/* Controls */
.ldt__controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 28px; }
.ldt__btn {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0;
	border-radius: 50%; border: 1px solid var(--ldt-card-line); background: var(--ldt-card); color: var(--ldt-strong); cursor: pointer;
	transition: background .15s, border-color .15s, color .15s;
}
.ldt--light .ldt__btn { border-color: var(--ld-line-strong, #c3cdd9); }
.ldt__btn:hover:not(:disabled) { background: var(--ldt-accent); border-color: var(--ldt-accent); color: var(--ldt-accent-ink); }
.ldt__btn:disabled { opacity: .4; cursor: default; }
.ldt__btn .ldt-icon { width: 20px; height: 20px; }
.ldt__btn:focus-visible { outline: 3px solid var(--ldt-accent); outline-offset: 2px; }
.ldt__pause { width: 36px; height: 36px; margin-left: 4px; }
.ldt__pause .ldt-icon { width: 15px; height: 15px; }
.ldt__pause .ldt-icon--play, .ldt__pause.is-paused .ldt-icon--pause { display: none; }
.ldt__pause.is-paused .ldt-icon--play { display: block; }
.ldt__dots { display: flex; gap: 4px; align-items: center; }
.ldt__dot {
	width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
}
.ldt__dot::before { content: ""; width: 8px; height: 8px; border-radius: 99px; background: var(--ldt-track); transition: width .2s, background .2s; }
.ldt--light .ldt__dot::before { background: var(--ld-line-strong, #c3cdd9); }
.ldt__dot[aria-current="true"]::before { width: 22px; background: var(--ldt-accent); }
.ldt__dot:focus-visible { outline: 3px solid var(--ldt-accent); outline-offset: 0; border-radius: 6px; }

@media (prefers-reduced-motion: reduce) {
	.ldt__viewport { scroll-behavior: auto; }
	.ldt__btn, .ldt__dot::before { transition: none; }
}

/* Inside page content: undo the theme's blockquote, list and image styles. */
.entry-content .ldt .ldt-quote { margin: 0; padding: 0; background: none; border: 0; border-radius: 0; font-size: inherit; }
.entry-content .ldt .ldt__title { margin-top: 0; padding-top: 0; }
.entry-content .ldt .ldt__track, .entry-content .ldt .ldt-bars { padding-left: 0; margin: 0; }
.entry-content .ldt .ldt-card { margin: 0; padding: 26px 26px 24px; }
.entry-content .ldt .ldt-bars li { margin: 0; padding: 0; display: grid; }
.entry-content .ldt li::before { content: none; }

.entry-content .ldt img.ldt-avatar { border-radius: 50%; }
.entry-content .ldt .ldt-eval__score { margin: 0; }
.entry-content .ldt .ldt-eval__caption { margin: 6px 0 16px; }

/* Narrower cards inside page content, so three fit the text column. */
.entry-content .ldt { --ldt-gap: 16px; }
.entry-content .ldt--dark { padding: 36px 28px 30px; }
.entry-content .ldt .ldt-card { padding: 20px 18px 18px; gap: 14px; }
.entry-content .ldt .ldt-quote__text { font-size: 15.5px; line-height: 1.55; }
.entry-content .ldt .ldt-quote > .ldt-icon { top: 16px; right: 16px; width: 26px; height: 26px; }
.entry-content .ldt .ldt-card__top { padding-right: 32px; }
.entry-content .ldt .ldt-avatar { width: 46px; height: 46px; }
.entry-content .ldt .ldt-person { gap: 10px; }
.entry-content .ldt .ldt-person__meta { font-size: 13px; }
.entry-content .ldt .ldt-eval__score strong { font-size: 44px; }
.entry-content .ldt .ldt-bars li { font-size: 13px; }
@media (max-width: 679px) { .entry-content .ldt--dark { padding: 28px 16px 22px; } }

/* ---------- Class dashboard [ld_class_stats] ---------- */
.ldd {
	--ldd-primary: var(--ld-primary, #0e2a47);
	--ldd-accent: var(--ld-accent, #f5a524);
	--ldd-ink: var(--ld-ink, #1b2733);
	--ldd-muted: var(--ld-muted, #4a5868);
	--ldd-line: var(--ld-line, #e3e8ef);
	--ldd-bg-alt: var(--ld-bg-alt, #f5f7fa);
	--ldd-radius: var(--ld-radius, 20px);
	--ldd-h1: #e4ebf3; --ldd-h2: #bccbdd; --ldd-h3: #7f9abb; --ldd-h4: #3f6290; --ldd-h5: #0e2a47;
	margin: 2em 0; color: var(--ldd-ink); font-variant-numeric: tabular-nums;
}
.ldd *, .ldd *::before, .ldd *::after { box-sizing: border-box; }
.ldd .ldd__title { margin: 0; color: var(--ldd-primary); }
.ldd .ldd__title::after { display: none; }
.ldd__sub { margin: 8px 0 24px; color: var(--ldd-muted); }
.ldd__kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px; margin-bottom: 16px; }
.ldd-kpi { background: #fff; border: 1px solid var(--ldd-line); border-radius: var(--ldd-radius); padding: 20px 22px; display: flex; flex-direction: column; gap: 4px; }
.ldd-kpi__num { font-family: var(--ld-font-display, inherit); font-size: 40px; font-weight: 700; line-height: 1; color: var(--ldd-primary); letter-spacing: -.02em; }
.ldd-kpi__of { font-size: 18px; color: var(--ldd-muted); font-weight: 500; margin-left: 2px; }
.ldd-kpi__label { font-size: 14px; color: var(--ldd-muted); }
.ldd-kpi--accent { background: var(--ldd-primary); border-color: var(--ldd-primary); }
.ldd-kpi--accent .ldd-kpi__num { color: #fff; }
.ldd-kpi--accent .ldd-kpi__of, .ldd-kpi--accent .ldd-kpi__label { color: var(--ld-on-dark-muted, #c9d5e3); }
.ldd__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 16px; margin-bottom: 16px; align-items: start; }
@media (max-width: 899px) { .ldd__grid { grid-template-columns: minmax(0, 1fr); } }
.ldd-card { background: #fff; border: 1px solid var(--ldd-line); border-radius: var(--ldd-radius); padding: 22px 22px 18px; min-width: 0; }
.ldd > .ldd-card { margin-bottom: 16px; }
.ldd .ldd-card__title { margin: 0 0 16px; font-size: 17px; color: var(--ldd-primary); font-family: var(--ld-font-display, inherit); }
.ldd .ldd-card__title::after { display: none; }
.ldd-note { margin: 12px 0 0; font-size: 13px; color: var(--ldd-muted); }

/* Columns per year */
.ldd-cols { display: flex; gap: 8px; align-items: stretch; height: 230px; }
.ldd-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 6px; position: relative; outline: 0; cursor: default; }
.ldd-col__val { font-size: 14px; font-weight: 700; color: var(--ldd-ink); }
.ldd-col__track { flex: 1 1 auto; width: 100%; max-width: 44px; display: flex; align-items: flex-end; }
.ldd-col__bar { display: block; width: 100%; min-height: 2px; background: var(--ldd-primary); border-radius: 4px 4px 0 0; transition: background .15s; }
.ldd-col:hover .ldd-col__bar, .ldd-col:focus-visible .ldd-col__bar { background: var(--ldd-h4); }
.ldd-col__year { font-size: 13px; color: var(--ldd-muted); border-top: 1px solid var(--ldd-line); width: 100%; text-align: center; padding-top: 6px; }
.ldd-col__score { font-size: 12px; font-weight: 600; color: var(--ldd-ink); background: var(--ldd-bg-alt); border-radius: 99px; padding: 1px 7px; }
.ldd [data-tip]:hover::after, .ldd [data-tip]:focus-visible::after {
	content: attr(data-tip); position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%);
	background: var(--ldd-ink); color: #fff; font-size: 12.5px; font-weight: 500; line-height: 1.35; white-space: nowrap;
	padding: 6px 10px; border-radius: 8px; z-index: 3; pointer-events: none; box-shadow: 0 6px 18px rgba(10, 31, 53, .2);
}
.ldd-col:first-child[data-tip]:hover::after, .ldd-col:first-child[data-tip]:focus-visible::after { left: 0; transform: none; }
.ldd-col:last-child[data-tip]:hover::after, .ldd-col:last-child[data-tip]:focus-visible::after { left: auto; right: 0; transform: none; }

/* Certification table */
.ldd table { width: 100%; border-collapse: collapse; margin: 0; display: table; font-size: 14px; }
.ldd th, .ldd td { border: 0; background: none; padding: 7px 8px; text-align: left; vertical-align: middle; }
.ldd thead th { font-size: 12px; font-weight: 600; color: var(--ldd-muted); text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--ldd-line); }
.ldd tbody tr + tr th, .ldd tbody tr + tr td { border-top: 1px solid var(--ldd-line); }
.ldd tbody th { font-weight: 600; color: var(--ldd-ink); white-space: nowrap; }
.ldd .ldd-num { text-align: right; white-space: nowrap; }
.ldd-certs__bar { width: 38%; white-space: nowrap; }
.ldd-hbar { display: inline-block; vertical-align: middle; width: calc(100% - 32px); height: 10px; background: var(--ldd-bg-alt); border-radius: 0 4px 4px 0; }
.ldd-hbar span { display: block; height: 100%; background: var(--ldd-primary); border-radius: 0 4px 4px 0; }
.ldd-hbar__val { display: inline-block; width: 28px; text-align: right; font-weight: 700; vertical-align: middle; }
.ldd-more { margin-top: 8px; }
.ldd-more summary, .ldd-log summary { cursor: pointer; font-weight: 600; color: var(--ld-link, #1559c7); font-size: 14px; padding: 6px 0; }
.ldd-more[open] summary { margin-bottom: 4px; }

/* Year x certification */
.ldd-heat-wrap, .ldd-log__wrap { overflow-x: auto; }
.ldd table.ldd-heat { width: 100%; table-layout: auto; }
.ldd .ldd-heat tbody th, .ldd .ldd-heat thead th:first-child { width: 1%; }
.ldd .ldd-heat .ldd-heat__total, .ldd .ldd-heat thead th:last-child { width: 1%; padding-left: 14px; }
.ldd .ldd-heat th, .ldd .ldd-heat td { text-align: center; padding: 3px; }
.ldd .ldd-heat tbody th { text-align: left; padding-right: 12px; }
.ldd .ldd-heat tbody tr + tr th, .ldd .ldd-heat tbody tr + tr td { border-top: 0; }
.ldd-heat__cell { min-width: 44px; height: 34px; border-radius: 6px; font-weight: 700; font-size: 13px; color: var(--ldd-ink); }
.ldd .ldd-heat td.ldd-heat__cell { box-shadow: inset 0 0 0 2px #fff; }
.ldd .ldd-heat td.ldd-heat__cell--0, .ldd-legend .ldd-heat__cell--0 { background: var(--ldd-bg-alt); color: var(--ldd-muted); font-weight: 400; }
.ldd .ldd-heat td.ldd-heat__cell--1, .ldd-legend .ldd-heat__cell--1 { background: var(--ldd-h1); }
.ldd .ldd-heat td.ldd-heat__cell--2, .ldd-legend .ldd-heat__cell--2 { background: var(--ldd-h2); }
.ldd .ldd-heat td.ldd-heat__cell--3, .ldd-legend .ldd-heat__cell--3 { background: var(--ldd-h3); color: #fff; }
.ldd .ldd-heat td.ldd-heat__cell--4, .ldd-legend .ldd-heat__cell--4 { background: var(--ldd-h4); color: #fff; }
.ldd .ldd-heat td.ldd-heat__cell--5, .ldd-legend .ldd-heat__cell--5 { background: var(--ldd-h5); color: #fff; }
.ldd .ldd-heat__total { font-weight: 700; padding-left: 12px; }
.ldd-legend { display: flex; align-items: center; gap: 4px; margin: 12px 0 0; font-size: 12.5px; color: var(--ldd-muted); }
.ldd-legend span { width: 18px; height: 12px; border-radius: 3px; display: inline-block; }
.ldd-legend span:first-of-type { margin-left: 6px; }
.ldd-legend span:last-of-type { margin-right: 6px; }

/* Log */
.ldd-log summary { list-style: none; margin: 0; font-size: 17px; color: var(--ldd-primary); }
.ldd-log summary::-webkit-details-marker { display: none; }
.ldd-log summary::before { content: "+"; display: inline-block; width: 1.2em; color: var(--ldd-accent); font-weight: 700; }
.ldd-log[open] summary::before { content: "−"; }
.ldd-log__wrap { max-height: 520px; overflow-y: auto; margin-top: 10px; }
.ldd-table thead th { position: sticky; top: 0; background: #fff; }
.ldd-table td { color: var(--ldd-ink); }
@media (max-width: 600px) {
	.ldd .ldd-hide-sm { display: none; }
	.ldd-certs__bar { width: auto; }
	.ldd-kpi__num { font-size: 32px; }
	.ldd-card { padding: 18px 14px 14px; }
	.ldd-cols { gap: 4px; height: 200px; }
	.ldd-col__score { padding: 1px 4px; font-size: 11px; }
}

/* Tabbed panel */
.ldd-panel { padding: 0; overflow: hidden; }
.ldd-tabs { display: flex; gap: 4px; padding: 10px 12px 0; border-bottom: 1px solid var(--ldd-line); background: var(--ldd-bg-alt); overflow-x: auto; }
.ldd-tab {
	font: inherit; font-size: 15px; font-weight: 600; color: var(--ldd-muted); background: none; cursor: pointer;
	border: 1px solid transparent; border-bottom: 0; border-radius: 10px 10px 0 0; padding: 10px 16px; margin-bottom: -1px; white-space: nowrap;
}
.ldd-tab:hover { color: var(--ldd-primary); }
.ldd-tab[aria-selected="true"] { background: #fff; color: var(--ldd-primary); border-color: var(--ldd-line); box-shadow: inset 0 3px 0 var(--ldd-accent); }
.ldd-tab:focus-visible { outline: 3px solid var(--ldd-accent); outline-offset: -3px; }
.ldd-pane { padding: 22px; height: 380px; }
.ldd-pane--scroll, .ldd-pane .ldd-heat-wrap { overflow: auto; }
.ldd-pane .ldd-heat-wrap { max-height: 300px; }
.ldd-pane .ldd-cols { height: 290px; }
.ldd-pane--scroll thead th, .ldd-heat thead th { position: sticky; top: 0; background: #fff; z-index: 1; }
.ldd-log__count { font-weight: 500; font-size: 14px; color: var(--ldd-muted); margin-left: 6px; }
@media (max-width: 600px) {
	.ldd-pane { padding: 16px 12px; height: 360px; }
	.ldd-tabs { padding: 8px 6px 0; gap: 2px; }
	.ldd-tab { flex: 1 1 0; font-size: 13px; padding: 8px 6px; white-space: normal; line-height: 1.25; text-align: center; }
}

.ldd .ldd-log summary.ldd-card__title { margin: 0; }
.ldd .ldd-log { padding-top: 18px; padding-bottom: 18px; }
