/* GBI Academy theme. Type and colour follow the GBI Platform (DM Sans body, Roboto Condensed headings, GBI green). */

:root {
	--gbi-ink: #1f2937;
	--gbi-text: #2f3640;
	--gbi-body: #374151;
	--gbi-muted: #4b5563;
	--gbi-faint: #6b7280;
	--gbi-line: #e5e7eb;
	--gbi-line-soft: #eef0f2;
	--gbi-surface: #f3f4f6;
	--gbi-green: #00966c;
	--gbi-action: #007a58;
	--gbi-action-hover: #006649;
	--gbi-deep: #0f4b3a;
	--gbi-green-text: #226b58;
	--gbi-mint: #e6f0ea;
	--gbi-tint: #f2f7f4;
	--gbi-tint-line: #dfeae4;
	--gbi-mint-strong: #9fd8c2;
	--gbi-yellow: #f3c317;
	--gbi-yellow-soft: #fff8dc;
	--gbi-yellow-line: #f1df9a;
	--gbi-gold-text: #6b5200;
	--gbi-warn-bg: #fdf0e8;
	--gbi-warn-text: #7c2d12;
	--gbi-font: "DM Sans", "Avenir Next", "Segoe UI", system-ui, sans-serif;
	--gbi-font-head: "Roboto Condensed", "Avenir Next Condensed", "Arial Narrow", sans-serif;
	--gbi-read: 720px;
	--gbi-wide: 1040px;
	--gbi-page: 1200px;
	--gbi-gutter: 24px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: #fff;
	color: var(--gbi-body);
	font-family: var(--gbi-font);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}
body > .gbi-main { flex: 1 0 auto; }
img, video, svg { max-width: 100%; }
img { height: auto; }
a { color: var(--gbi-green-text); text-underline-offset: 2px; }
a:hover { color: var(--gbi-deep); }
:focus-visible { outline: 3px solid var(--gbi-yellow); outline-offset: 2px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.gbi-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; padding: 10px 16px; border-radius: 999px; background: var(--gbi-deep); color: #fff; font-weight: 600; text-decoration: none; }
.gbi-skip:focus { top: 12px; color: #fff; }
.gbi-icon { width: 1em; height: 1em; flex: 0 0 auto; vertical-align: -0.125em; }

/* ---------- Buttons ---------- */
.gbi-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 0 22px; border-radius: 999px; border: 1px solid var(--gbi-action);
	background: var(--gbi-action); color: #fff; font: inherit; font-weight: 600; font-size: 15px; line-height: 1.2;
	text-decoration: none; cursor: pointer; white-space: nowrap;
}
.gbi-btn:hover { background: var(--gbi-action-hover); border-color: var(--gbi-action-hover); color: #fff; }
.gbi-btn--outline { background: #fff; color: var(--gbi-ink); border-color: #9ca3af; }
.gbi-btn--outline:hover { background: var(--gbi-surface); color: var(--gbi-ink); border-color: #6b7280; }
.gbi-btn--yellow { background: var(--gbi-yellow); border-color: var(--gbi-yellow); color: var(--gbi-ink); font-weight: 700; }
.gbi-btn--yellow:hover { background: #e2b40c; border-color: #e2b40c; color: var(--gbi-ink); }
.gbi-btn--sm { min-height: 40px; padding: 0 16px; font-size: 14px; }
.gbi-btn--lg { min-height: 50px; padding: 0 28px; font-size: 16px; }

/* ---------- Header ---------- */
.gbi-header { border-bottom: 1px solid var(--gbi-line); background: #fff; }
.gbi-header__inner { max-width: var(--gbi-page); margin: 0 auto; padding: 16px var(--gbi-gutter); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }
.gbi-brand { display: flex; align-items: center; gap: 14px; }
.gbi-brand__logo img { display: block; height: 40px; width: auto; }
.gbi-brand__academy { font-family: var(--gbi-font-head); font-weight: 700; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--gbi-faint); text-decoration: none; padding-left: 14px; border-left: 1px solid #d1d5db; line-height: 1.1; }
.gbi-brand__academy:hover { color: var(--gbi-deep); }
.gbi-account { display: flex; align-items: center; gap: 14px; font-size: 15px; }
.gbi-account__hello { color: var(--gbi-body); }

/* ---------- Course bar ---------- */
.gbi-coursebar { background: var(--gbi-tint); border-bottom: 1px solid var(--gbi-tint-line); position: relative; z-index: 20; }
.gbi-coursebar__inner { max-width: var(--gbi-page); margin: 0 auto; padding: 10px var(--gbi-gutter); display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; }
.gbi-trail { flex: 1 1 280px; min-width: 0; display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--gbi-muted); white-space: nowrap; overflow: hidden; }
.gbi-trail a { text-decoration: none; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.gbi-trail a:hover { text-decoration: underline; }
.gbi-trail span { color: #9ca3af; }
.gbi-progress { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--gbi-muted); }
.gbi-progress__text { white-space: nowrap; }
.gbi-progress__text strong { color: var(--gbi-ink); }
.gbi-progress__track { display: block; width: 120px; height: 6px; border-radius: 3px; background: #d6e6dd; overflow: hidden; flex: 0 0 auto; }
.gbi-progress__fill { display: block; height: 100%; background: var(--gbi-green); border-radius: 3px; }

.gbi-outline { position: relative; }
.gbi-outline__toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid #c9dcd2; background: #fff; font-size: 14px; font-weight: 600; color: var(--gbi-ink); cursor: pointer; list-style: none; user-select: none; }
.gbi-outline__toggle::-webkit-details-marker { display: none; }
.gbi-outline[open] .gbi-outline__toggle { background: var(--gbi-deep); border-color: var(--gbi-deep); color: #fff; }
.gbi-outline__panel { position: absolute; left: 0; top: calc(100% + 8px); width: min(440px, calc(100vw - 2 * var(--gbi-gutter))); max-height: min(70vh, 640px); overflow: auto; overscroll-behavior: contain; background: #fff; border: 1px solid var(--gbi-line); border-radius: 14px; box-shadow: 0 24px 48px -20px rgba(15, 75, 58, .35); padding: 14px 10px; }
.gbi-outline__course { margin: 0 8px 8px; padding-bottom: 10px; border-bottom: 1px solid var(--gbi-line-soft); font-family: var(--gbi-font-head); font-weight: 700; font-size: 17px; line-height: 1.25; }
.gbi-outline__course a { color: var(--gbi-ink); text-decoration: none; }
.gbi-outline__list { list-style: none; margin: 0; padding: 0; }
.gbi-outline__item a { display: flex; gap: 10px; align-items: flex-start; padding: 7px 8px; border-radius: 8px; color: var(--gbi-body); text-decoration: none; font-size: 14px; line-height: 1.4; }
.gbi-outline__item a:hover { background: var(--gbi-tint); color: var(--gbi-ink); }
.gbi-outline__item--d0 a { font-weight: 600; color: var(--gbi-ink); margin-top: 6px; }
.gbi-outline__item--d1 a { padding-left: 22px; }
.gbi-outline__item--d2 a { padding-left: 40px; }
.gbi-outline__item.is-current a { background: var(--gbi-mint); color: var(--gbi-deep); font-weight: 600; }
.gbi-outline__mark { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 1px; border-radius: 50%; border: 1.5px solid #c4cbd2; display: flex; align-items: center; justify-content: center; color: var(--gbi-faint); }
.gbi-outline__mark .gbi-icon { width: 11px; height: 11px; stroke-width: 3; }
.gbi-outline__item.is-complete .gbi-outline__mark { background: var(--gbi-green); border-color: var(--gbi-green); color: #fff; }

/* ---------- Main + title ---------- */
.gbi-main { padding: 48px var(--gbi-gutter) 72px; }
.gbi-titleblock { max-width: var(--gbi-read); margin: 0 auto 32px; }
.gbi-eyebrow { margin: 0 0 10px; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gbi-green-text); }
.gbi-title { margin: 0; font-family: var(--gbi-font-head); font-weight: 700; font-size: clamp(32px, 4.4vw, 44px); line-height: 1.08; letter-spacing: -.01em; color: var(--gbi-ink); text-wrap: balance; }
.gbi-facts { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gbi-fact { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 12px; border-radius: 999px; background: var(--gbi-surface); font-size: 14px; color: var(--gbi-body); }
.gbi-fact--accent { background: var(--gbi-mint); color: var(--gbi-deep); font-weight: 500; }

/* ---------- Content column ----------
   Text sits in a 720px reading column; media, tables, documents and interactives break out wider. */
.gbi-content { max-width: var(--gbi-wide); margin: 0 auto; font-size: 18px; line-height: 1.7; color: var(--gbi-text); }
.gbi-content > *,
.gbi-content .ld-tab-content > *,
.gbi-content .learndash-wrapper > :not(.ld-tabs):not(.learndash-shortcode-wrap):not([class*="ld_navigation"]):not(.ld-lesson-topic-list):not(.ld-item-list) {
	max-width: var(--gbi-read);
	margin-left: auto;
	margin-right: auto;
}
.gbi-content .learndash-wrapper,
.gbi-content .learndash,
.gbi-content .ld-tabs,
.gbi-content .ld-tabs-content,
.gbi-content .ld-tab-content { max-width: none; }
.gbi-content .ld-tab-content > .ld-video,
.gbi-content .ld-tab-content > .wp-block-video,
.gbi-content .ld-tab-content > .wp-block-embed,
.gbi-content .ld-tab-content > .wp-block-file,
.gbi-content .ld-tab-content > .alignwide,
.gbi-content .ld-tab-content > .gbi-interactive,
.gbi-content > .gbi-interactive,
.gbi-content > .wp-block-file,
.gbi-content > .alignwide { max-width: var(--gbi-wide); }
.gbi-content .ld-tab-content > .wp-block-table,
.gbi-content .ld-tab-content > svg,
.gbi-content .ld-tab-content > .wp-block-image,
.gbi-content .ld-tab-content > .wp-block-columns,
.gbi-content .ld-tab-content > .wp-block-gallery,
.gbi-content > .wp-block-table,
.gbi-content > svg { max-width: 880px; }
.gbi-content .ld-tab-content > svg,
.gbi-content > svg { display: block; margin-top: 32px; margin-bottom: 32px; }

/* Prose */
.gbi-content p { margin-top: 0; margin-bottom: 1.15em; }
.gbi-content .ld-tab-content > p:first-child,
.gbi-content .ld-video + p { font-size: 20px; line-height: 1.6; color: var(--gbi-ink); }
.gbi-content h2, .gbi-content h3, .gbi-content h4 { font-family: var(--gbi-font-head); font-weight: 700; color: var(--gbi-ink); line-height: 1.15; text-wrap: balance; }
.gbi-content h2 { font-size: 30px; margin-top: 1.9em; margin-bottom: .55em; letter-spacing: -.005em; }
.gbi-content h3 { font-size: 23px; margin-top: 1.6em; margin-bottom: .5em; }
.gbi-content h4 { font-size: 19px; margin-top: 1.4em; margin-bottom: .4em; }
.gbi-content ul, .gbi-content ol { padding-left: 1.25em; margin-top: 0; margin-bottom: 1.15em; }
.gbi-content li { margin-bottom: .45em; padding-left: .2em; }
.gbi-content li::marker { color: var(--gbi-green); }
.gbi-content ol > li::marker { font-weight: 700; color: var(--gbi-green-text); }
.gbi-content strong { color: var(--gbi-ink); font-weight: 600; }
.gbi-content hr, .gbi-content .wp-block-separator { border: 0; border-top: 1px solid var(--gbi-line); margin: 2.5em auto; }
.gbi-content blockquote, .gbi-content .wp-block-quote { margin: 1.6em auto; padding: 4px 0 4px 22px; border-left: 3px solid var(--gbi-green); font-size: 20px; color: var(--gbi-ink); }
.gbi-content figcaption, .gbi-content .wp-element-caption { margin-top: 10px; font-size: 14px; line-height: 1.5; color: var(--gbi-faint); }
.gbi-content .wp-block-image img { border-radius: 10px; }
.gbi-content .wp-block-columns { gap: 24px; }

/* Callouts: block groups with a background colour (Key takeaways etc.) */
.gbi-content .wp-block-group.has-background { border-radius: 14px; padding: 20px 24px !important; margin-top: 1.4em; margin-bottom: 1.6em; font-size: 17px; line-height: 1.6; }
.gbi-content .wp-block-group.has-background > :last-child { margin-bottom: 0; }

/* Tables */
.gbi-content .wp-block-table { margin-top: 1.4em; margin-bottom: 2em; overflow-x: auto; border: 1px solid var(--gbi-line); border-radius: 12px; }
.gbi-content .wp-block-table table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.5; border: 0; }
.gbi-content .wp-block-table th, .gbi-content .wp-block-table td { padding: 13px 16px; border: 0; border-bottom: 1px solid var(--gbi-line-soft); text-align: left; vertical-align: top; }
.gbi-content .wp-block-table thead { border: 0; }
.gbi-content .wp-block-table thead th { background: var(--gbi-tint); color: var(--gbi-deep); font-weight: 700; border-bottom: 1px solid var(--gbi-tint-line); }
.gbi-content .wp-block-table tbody tr:last-child td { border-bottom: 0; }
.gbi-content .wp-block-table td { color: var(--gbi-body); }
.gbi-content .wp-block-table td:first-child { color: var(--gbi-ink); }
.gbi-content .wp-block-table figcaption { padding: 0 16px 12px; }

/* Details (accordion) */
.gbi-content details.wp-block-details { margin: 1.2em auto; border: 1px solid var(--gbi-line); border-radius: 12px; padding: 0 18px; }
.gbi-content details.wp-block-details > summary { cursor: pointer; padding: 14px 0; font-weight: 600; color: var(--gbi-ink); }
.gbi-content details.wp-block-details[open] { padding-bottom: 6px; }

/* Video (LearnDash video progression and inline video blocks) */
.gbi-content .ld-video { margin-bottom: 40px !important; border-radius: 14px; overflow: hidden; background: #0d1512; box-shadow: 0 20px 40px -24px rgba(15, 75, 58, .45); }
.gbi-content .ld-video .wp-video { width: 100% !important; }
.gbi-content .ld-video iframe { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; }
.gbi-content .wp-block-video video { width: 100%; border-radius: 14px; background: #0d1512; }
.gbi-content .mejs-container, .gbi-content .mejs-container .mejs-controls { font-family: var(--gbi-font); }
.gbi-content .mejs-controls { background: linear-gradient(transparent, rgba(0, 0, 0, .6)) !important; }
.gbi-content .mejs-time-current { background: var(--gbi-green) !important; }
.gbi-content .mejs-overlay-button { filter: hue-rotate(0deg); }

/* PDF / file blocks: a document viewer with its own toolbar */
.gbi-content .wp-block-file { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 1.6em auto 2.2em; padding: 0 16px 14px; border: 1px solid #d9dee3; border-radius: 14px; background: #f9fafb; font-size: 15px; overflow: hidden; }
.gbi-content .wp-block-file .wp-block-file__embed { order: 3; flex: 1 0 100%; display: block; width: calc(100% + 32px) !important; height: min(78vh, 760px) !important; margin: 0 -16px -14px; border: 0; border-top: 1px solid var(--gbi-line); background: #525659; }
.gbi-content .wp-block-file > a:not(.wp-block-file__button) { order: 1; flex: 1 1 200px; min-width: 0; padding: 14px 0 0 52px; min-height: 54px; font-weight: 600; color: var(--gbi-ink); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; position: relative; }
.gbi-content .wp-block-file > a:not(.wp-block-file__button)::before { content: "PDF"; position: absolute; left: 0; top: 10px; width: 40px; height: 40px; border-radius: 8px; background: #fdecec; color: #b42318; font: 700 12px/40px var(--gbi-font-head); letter-spacing: .04em; text-align: center; }
.gbi-content .wp-block-file > a:not(.wp-block-file__button):hover { text-decoration: underline; }
.gbi-content .wp-block-file .wp-block-file__button { order: 2; margin-top: 12px; display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border-radius: 999px; background: var(--gbi-action); color: #fff; font-size: 14px; font-weight: 600; text-decoration: none; }
.gbi-content .wp-block-file .wp-block-file__button:hover { background: var(--gbi-action-hover); }

/* ---------- Interactive frame ---------- */
.gbi-interactive { margin: 44px auto 52px !important; border-radius: 16px; overflow: hidden; border: 1px solid #c9dcd2; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 18px 40px -28px rgba(15, 75, 58, .5); font-size: 16px; line-height: 1.5; transition: box-shadow .15s; }
.gbi-interactive:focus-within { box-shadow: 0 0 0 3px var(--gbi-yellow), 0 18px 40px -28px rgba(15, 75, 58, .5); border-color: var(--gbi-deep); }
.gbi-interactive__bar { background: var(--gbi-deep); color: #fff; padding: 14px 18px; display: flex; align-items: center; gap: 14px; }
.gbi-interactive__badge { width: 42px; height: 42px; border-radius: 10px; background: rgba(255, 255, 255, .1); color: var(--gbi-yellow); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.gbi-interactive__badge .gbi-icon { width: 21px; height: 21px; }
.gbi-interactive__heading { flex: 1 1 auto; min-width: 0; }
.gbi-content .gbi-interactive__eyebrow, .gbi-interactive__eyebrow { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gbi-yellow); line-height: 1.3; }
.gbi-content .gbi-interactive__title, .gbi-interactive__title { margin: 2px 0 0; font-family: var(--gbi-font-head); font-size: 21px; font-weight: 700; line-height: 1.2; color: #fff; }
.gbi-interactive__status { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 0 12px; border-radius: 999px; background: var(--gbi-mint-strong); color: var(--gbi-deep); font-size: 13px; font-weight: 700; white-space: nowrap; }
.gbi-interactive__status[hidden] { display: none; }
.gbi-interactive__expand { width: 44px; height: 44px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .25); background: transparent; color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; flex: 0 0 auto; }
.gbi-interactive__expand:hover { background: rgba(255, 255, 255, .1); }
.gbi-interactive__expand .gbi-icon { width: 18px; height: 18px; }
.gbi-interactive.is-complete .gbi-interactive__badge { background: var(--gbi-mint-strong); color: var(--gbi-deep); }
.gbi-interactive.is-complete .gbi-interactive__eyebrow { color: var(--gbi-mint-strong); }
.gbi-interactive__body .uo-tincanny-content { margin: 0 !important; padding: 0 !important; }
.gbi-interactive__body iframe.AnC-iFrame { display: block; width: 100% !important; border: 0; }
.gbi-interactive.is-sized .gbi-interactive__body iframe.AnC-iFrame { overflow: hidden; }
/* Full screen: the frame fills the screen and the interactive may scroll inside it again. */
.gbi-interactive:fullscreen { display: flex; flex-direction: column; margin: 0 !important; border-radius: 0; border: 0; }
.gbi-interactive:fullscreen .gbi-interactive__body { flex: 1; min-height: 0; overflow: auto; }
.gbi-interactive:fullscreen .gbi-interactive__body .uo-tincanny-content,
.gbi-interactive:fullscreen .gbi-interactive__body iframe.AnC-iFrame { height: 100% !important; }

/* ---------- LearnDash ---------- */
/* Brand colours over the LD30 colour settings. */
body.gbi-academy .learndash-wrapper .ld-primary-background,
body.gbi-academy .learndash-wrapper .ld-primary-background.ld-status { background-color: var(--gbi-action) !important; }
body.gbi-academy .learndash-wrapper .ld-primary-color,
body.gbi-academy .learndash-wrapper .ld-primary-color:hover { color: var(--gbi-green-text) !important; }
body.gbi-academy .learndash-wrapper .ld-secondary-background { background-color: var(--gbi-green) !important; }
body.gbi-academy .learndash-wrapper .ld-secondary-color { color: var(--gbi-green-text) !important; }
body.gbi-academy .learndash-wrapper .ld-status-complete,
body.gbi-academy .learndash-wrapper .ld-status-icon.ld-status-complete { background-color: var(--gbi-green) !important; }
.learndash-wrapper { font-family: var(--gbi-font) !important; }

/* Step pages: the course bar replaces LearnDash's breadcrumb + lesson-progress box. */
.gbi-step .learndash-wrapper [class*="ld_infobar"],
.gbi-step .learndash-wrapper .ld-topic-status,
.gbi-step .learndash-wrapper .ld-lesson-status { display: none !important; }

/* Previous / mark complete / next */
.gbi-content .learndash-wrapper .ld-content-actions { max-width: var(--gbi-read); margin: 48px auto 0; padding: 28px 0 0; border-top: 1px solid var(--gbi-line); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; }
.gbi-content .learndash-wrapper .ld-content-action { display: flex; flex-direction: column; align-items: center; gap: 10px; min-height: 0; flex: 0 1 auto; }
.gbi-content .learndash-wrapper .ld-content-action:empty { display: none; }
.gbi-content .learndash-wrapper .ld-content-actions .ld-button,
.gbi-content .learndash-wrapper .ld-content-actions input[type="submit"],
.gbi-content .learndash-wrapper .learndash_mark_complete_button,
.gbi-content .learndash-wrapper #learndash_mark_complete_button {
	display: inline-flex !important; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 22px !important; border-radius: 999px !important; border: 1px solid var(--gbi-action) !important; background: var(--gbi-action) !important; color: #fff !important; font-family: var(--gbi-font) !important; font-size: 15px !important; font-weight: 600 !important; line-height: 1.2 !important; text-decoration: none; box-shadow: none !important; cursor: pointer; white-space: nowrap;
}
.gbi-content .learndash-wrapper .ld-content-actions .ld-button:hover { background: var(--gbi-action-hover) !important; }
.gbi-content .learndash-wrapper .ld-content-actions .ld-content-action:first-child .ld-button { background: #fff !important; color: var(--gbi-ink) !important; border-color: #9ca3af !important; }
.gbi-content .learndash-wrapper .ld-content-actions .ld-content-action:first-child .ld-button:hover { background: var(--gbi-surface) !important; }
.gbi-content .learndash-wrapper .ld-content-actions .ld-button.ld-button-transparent { background: transparent !important; color: var(--gbi-green-text) !important; border-color: transparent !important; }
.gbi-content .learndash-wrapper .ld-course-step-back { font-size: 14px; font-weight: 600; color: var(--gbi-green-text) !important; }
.gbi-content .learndash-wrapper .ld-content-actions .ld-icon { font-size: 12px; }
.gbi-content .learndash-wrapper .ld-content-actions .disabled,
.gbi-content .learndash-wrapper .ld-content-actions [disabled] { opacity: .45; cursor: not-allowed; }

/* Lesson / course step lists */
.gbi-content .learndash-wrapper .ld-item-list,
.gbi-content .learndash-wrapper .ld-lesson-topic-list,
.gbi-content .learndash-wrapper .ld-course-status,
.gbi-content .learndash-wrapper .ld-table-list { max-width: 800px; margin-left: auto; margin-right: auto; }
.gbi-content .learndash-wrapper .ld-table-list { border-radius: 16px !important; overflow: hidden; border: 1px solid var(--gbi-line) !important; }
.gbi-content .learndash-wrapper .ld-table-list .ld-table-list-header { background: var(--gbi-deep) !important; padding: 16px 20px !important; font-family: var(--gbi-font); }
.gbi-content .learndash-wrapper .ld-table-list .ld-table-list-header .ld-text,
.gbi-content .learndash-wrapper .ld-table-list .ld-table-list-header .ld-lesson-list-progress,
.gbi-content .learndash-wrapper .ld-table-list .ld-table-list-header .ld-lesson-list-steps { color: #fff !important; font-size: 14px; }
.gbi-content .learndash-wrapper .ld-table-list .ld-table-list-items { border: 0 !important; }
.gbi-content .learndash-wrapper .ld-table-list-item { border-bottom: 1px solid var(--gbi-line-soft); }
.gbi-content .learndash-wrapper .ld-table-list-item-preview { padding: 16px 20px !important; font-size: 16px; color: var(--gbi-ink) !important; }
.gbi-content .learndash-wrapper .ld-table-list-item-preview:hover { background: var(--gbi-tint); }
.gbi-content .learndash-wrapper .ld-topic-title, .gbi-content .learndash-wrapper .ld-item-title { font-weight: 600; color: var(--gbi-ink); }
.gbi-content .learndash-wrapper .ld-item-list .ld-item-list-item { border-radius: 14px !important; border: 1px solid var(--gbi-line) !important; box-shadow: none !important; margin-bottom: 10px !important; }
.gbi-content .learndash-wrapper .ld-item-list .ld-item-list-item .ld-item-name { font-size: 17px; font-weight: 600; color: var(--gbi-ink) !important; }
.gbi-content .learndash-wrapper .ld-item-list .ld-item-list-item-preview:hover .ld-item-name { color: var(--gbi-deep) !important; }
.gbi-content .learndash-wrapper .ld-section-heading h2 { font-family: var(--gbi-font-head); font-size: 26px; }
.gbi-content .learndash-wrapper .ld-expand-button { border-radius: 999px !important; font-family: var(--gbi-font); }
.gbi-content .learndash-wrapper .ld-status { border-radius: 999px !important; font-family: var(--gbi-font); letter-spacing: .06em; }
.gbi-content .learndash-wrapper .ld-progress .ld-progress-bar { background: #e5e7eb; border-radius: 4px; height: 8px; }
.gbi-content .learndash-wrapper .ld-progress .ld-progress-bar-percentage { border-radius: 4px; }
.gbi-content .learndash-wrapper .ld-course-status.ld-course-status-enrolled,
.gbi-content .learndash-wrapper .ld-course-status { border-radius: 14px; background: var(--gbi-tint) !important; border: 1px solid var(--gbi-tint-line); }

/* Quizzes (WP Pro Quiz markup) */
.gbi-content .wpProQuiz_content { max-width: var(--gbi-read); margin: 0 auto; font-size: 17px; }
.gbi-content .wpProQuiz_content .wpProQuiz_button,
.gbi-content .wpProQuiz_content input[type="button"],
.gbi-content .wpProQuiz_content input[type="submit"] { min-height: 46px; padding: 0 24px !important; border-radius: 999px !important; border: 1px solid var(--gbi-action) !important; background: var(--gbi-action) !important; color: #fff !important; font-family: var(--gbi-font) !important; font-size: 15px !important; font-weight: 600 !important; text-shadow: none !important; box-shadow: none !important; cursor: pointer; }
.gbi-content .wpProQuiz_content .wpProQuiz_questionList { border: 0 !important; background: transparent !important; padding: 0 !important; }
.gbi-content .wpProQuiz_content .wpProQuiz_questionListItem { margin-bottom: 8px !important; }
.gbi-content .wpProQuiz_content .wpProQuiz_questionListItem label { display: flex !important; gap: 12px; align-items: center; min-height: 48px; padding: 10px 14px !important; border: 1px solid #d1d5db !important; border-radius: 10px !important; background: #fff; cursor: pointer; }
.gbi-content .wpProQuiz_content .wpProQuiz_questionListItem label:hover { border-color: var(--gbi-deep) !important; background: var(--gbi-tint); }
.gbi-content .wpProQuiz_content .wpProQuiz_questionListItem input { accent-color: var(--gbi-action); width: 18px; height: 18px; }
.gbi-content .wpProQuiz_content .wpProQuiz_question_text { font-weight: 600; color: var(--gbi-ink); font-size: 19px; }
.gbi-content .wpProQuiz_content .wpProQuiz_correct { border-radius: 10px; background: var(--gbi-mint) !important; color: var(--gbi-deep) !important; }
.gbi-content .wpProQuiz_content .wpProQuiz_incorrect { border-radius: 10px; background: var(--gbi-warn-bg) !important; color: var(--gbi-warn-text) !important; }

/* ---------- My courses ---------- */
.gbi-courses { max-width: 960px; margin: 0 auto; display: flex; flex-direction: column; gap: 36px; }
.gbi-courses__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; }
.gbi-courses__lead { margin: 6px 0 0; color: var(--gbi-muted); }
.gbi-panel { border-radius: 18px; background: var(--gbi-deep); color: #fff; padding: 28px 30px; }
.gbi-panel--row { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; }
.gbi-panel__main { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.gbi-panel__eyebrow { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gbi-yellow); }
.gbi-panel__title { margin: 0; font-family: var(--gbi-font-head); font-weight: 700; font-size: 28px; line-height: 1.15; color: #fff; }
.gbi-panel__title a { color: #fff; text-decoration: none; }
.gbi-panel__title a:hover { text-decoration: underline; }
.gbi-panel__text { margin: 0 0 8px; color: #cfe5da; }
.gbi-progress--on-dark { color: #cfe5da; margin-top: 6px; }
.gbi-progress--on-dark .gbi-progress__track { width: auto; flex: 0 1 260px; background: rgba(255, 255, 255, .18); }
.gbi-progress--on-dark .gbi-progress__fill { background: var(--gbi-yellow); }
.gbi-section-title { margin: 0 0 14px; font-family: var(--gbi-font-head); font-size: 24px; color: var(--gbi-ink); }
.gbi-courselist__list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--gbi-line); border-radius: 16px; overflow: hidden; }
.gbi-courserow { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding: 18px 22px; border-top: 1px solid var(--gbi-line-soft); }
.gbi-courserow:first-child { border-top: 0; }
.gbi-courserow__mark { width: 52px; height: 52px; border-radius: 12px; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; font-family: var(--gbi-font-head); font-weight: 700; font-size: 17px; letter-spacing: .04em; background: var(--gbi-surface); color: var(--gbi-body); }
.gbi-courserow--in-progress .gbi-courserow__mark { background: var(--gbi-deep); color: var(--gbi-yellow); }
.gbi-courserow--completed .gbi-courserow__mark { background: var(--gbi-mint); color: var(--gbi-deep); }
.gbi-courserow__main { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.gbi-courserow__title { font-weight: 600; font-size: 17px; color: var(--gbi-ink); text-decoration: none; line-height: 1.35; }
.gbi-courserow__title:hover { color: var(--gbi-deep); text-decoration: underline; }
.gbi-courserow__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: 14px; color: var(--gbi-faint); }
.gbi-courserow__meta a { font-weight: 500; text-decoration: none; }
.gbi-courserow__action { display: flex; align-items: center; gap: 14px; }
.gbi-courserow__action .gbi-progress__track { width: 110px; background: var(--gbi-line); }
.gbi-courserow__action .gbi-btn { min-width: 100px; }
.gbi-pill { display: inline-flex; align-items: center; min-height: 24px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: var(--gbi-surface); color: var(--gbi-muted); }
.gbi-pill--in-progress { background: #fff3c4; color: var(--gbi-gold-text); }
.gbi-pill--completed { background: var(--gbi-mint); color: var(--gbi-deep); }
.gbi-empty { border: 1px dashed #c9ced4; border-radius: 16px; padding: 32px; text-align: center; }
.gbi-empty h2 { margin: 0 0 6px; font-family: var(--gbi-font-head); color: var(--gbi-ink); }

/* Generic pages */
.gbi-page .gbi-titleblock { margin-bottom: 24px; }

/* ---------- Footer ---------- */
.gbi-footer { border-top: 1px solid var(--gbi-line); background: #f9fafb; }
.gbi-footer__inner { max-width: var(--gbi-page); margin: 0 auto; padding: 24px var(--gbi-gutter); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; font-size: 14px; color: var(--gbi-faint); }
.gbi-footer__inner a { color: var(--gbi-faint); text-decoration: none; }
.gbi-footer__inner a:hover { color: var(--gbi-deep); text-decoration: underline; }

/* ---------- Small screens ---------- */
@media (max-width: 700px) {
	:root { --gbi-gutter: 16px; }
	.gbi-main { padding-top: 32px; }
	.gbi-brand__logo img { height: 32px; }
	.gbi-account__hello { display: none; }
	.gbi-progress__track { width: 80px; }
	.gbi-content { font-size: 17px; }
	.gbi-content .ld-tab-content > p:first-child { font-size: 18px; }
	.gbi-content h2 { font-size: 26px; }
	.gbi-interactive { margin-left: calc(-1 * var(--gbi-gutter)) !important; margin-right: calc(-1 * var(--gbi-gutter)) !important; border-radius: 0; border-left: 0; border-right: 0; }
	.gbi-interactive__bar { padding: 12px var(--gbi-gutter); }
	.gbi-interactive__title { font-size: 18px; }
	.gbi-content .ld-video { margin-left: calc(-1 * var(--gbi-gutter)) !important; margin-right: calc(-1 * var(--gbi-gutter)) !important; border-radius: 0; }
	.gbi-content .learndash-wrapper .ld-content-actions { justify-content: center; }
	.gbi-panel { padding: 22px 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.gbi-interactive { transition: none; }
}

/* LD30 draws a check icon over the right edge of Mark Complete; leave room for it. */
.gbi-content .learndash-wrapper .ld-content-actions .sfwd-mark-complete .learndash_mark_complete_button { padding: 0 46px 0 24px !important; }

/* ---------- Full-page embeds ----------
   A step that is just one embedded course (e.g. Articulate Rise): the embed is the page. Page width, the rest of the
   screen's height, its own scrolling; the title stays for screen readers only. */
.gbi-embed-full-page .gbi-main { padding-top: 16px; padding-bottom: 40px; }
.gbi-embed-full-page .gbi-titleblock { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
.gbi-embed-full-page .gbi-content { max-width: var(--gbi-page); }
.gbi-embed-full-page .gbi-content .ld-tab-content > * { max-width: var(--gbi-read); }
.gbi-content .ld-tab-content > .gbi-embed-full,
.gbi-content .ld-tab-content > .wp-block-tincanny-content,
.gbi-content .ld-tab-content > :has(> .gbi-embed-full) { max-width: none; }
.gbi-embed-full-page .gbi-content .ld-tab-content > p:empty { display: none; }
.gbi-embed-full { margin: 0 0 8px; border: 1px solid var(--gbi-line); border-radius: 12px; overflow: hidden; background: #fff; }
.gbi-embed-full .uo-tincanny-content { margin: 0 !important; padding: 0 !important; }
.gbi-embed-full iframe { display: block; width: 100% !important; border: 0; height: calc(100vh - var(--gbi-embed-offset, 170px)) !important; height: calc(100dvh - var(--gbi-embed-offset, 170px)) !important; min-height: 520px; }
@media (max-width: 700px) {
	.gbi-embed-full-page .gbi-main { padding-left: 0; padding-right: 0; padding-top: 0; }
	.gbi-embed-full { border-radius: 0; border-left: 0; border-right: 0; }
	.gbi-embed-full-page .gbi-content .learndash-wrapper .ld-content-actions { padding-left: var(--gbi-gutter); padding-right: var(--gbi-gutter); }
}

/* A site footer pattern ("Centered footer with social links": site logo + "Proudly powered by WordPress") pasted into
   lesson content by mistake, e.g. throughout GBI Assessor Training. Never meaningful inside a lesson. */
.gbi-content .wp-block-group:has(> .wp-block-site-logo),
.gbi-content .wp-block-group:has(> .wp-block-group > .wp-block-site-logo) { display: none !important; }
