/* ==========================================================================
   Define Aviation — Theme Styles
   1. Design tokens
   2. Reset & base
   3. Typography
   4. Layout & utilities
   5. Header & navigation
   6. Hero
   7. Sections & cards
   8. Content (lesson plans, tables, lists, media)
   9. Glossary & plugin compatibility
   10. Blog & archives
   11. Comments & forms
   12. Footer
   13. Motion & reveal
   14. Responsive
   ========================================================================== */

/* 1. Design tokens ------------------------------------------------------- */
:root {
	/* Brand blues */
	--da-navy-900: #071426;
	--da-navy-800: #0a1c33;
	--da-navy-700: #0e2643;
	--da-navy-600: #143154;
	--da-navy-500: #1d4270;

	--da-sky-600: #1b7fc4;
	--da-sky-500: #2f9ae0;
	--da-sky-400: #56b4ef;
	--da-sky-300: #8ccdf6;
	--da-sky-100: #e3f2fd;
	--da-sky-50:  #f2f8fd;

	--da-accent: #f5a524;
	--da-accent-dark: #d98a0d;

	/* Neutrals */
	--da-ink: #10233a;
	--da-body: #3d5169;
	--da-muted: #64748b;
	--da-line: #dfe7f1;
	--da-line-soft: #edf2f8;
	--da-surface: #ffffff;
	--da-surface-alt: #f6f9fc;

	/* Type */
	--da-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--da-font-display: "Sora", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

	/* Space & shape */
	--da-radius: 14px;
	--da-radius-lg: 22px;
	--da-radius-sm: 8px;
	--da-shadow-sm: 0 1px 2px rgba(10, 28, 51, .06), 0 2px 8px rgba(10, 28, 51, .05);
	--da-shadow: 0 6px 18px rgba(10, 28, 51, .09), 0 2px 6px rgba(10, 28, 51, .05);
	--da-shadow-lg: 0 22px 48px rgba(10, 28, 51, .16);

	--da-wrap: 1200px;
	--da-wrap-narrow: 820px;
	--da-header-h: 76px;

	--da-ease: cubic-bezier(.22, .61, .36, 1);
}

/* 2. Reset & base -------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--da-header-h) + 16px);
}

body {
	margin: 0;
	font-family: var(--da-font-sans);
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--da-body);
	background: var(--da-surface);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

body.da-menu-open { overflow: hidden; }

img, svg, video, canvas, iframe { max-width: 100%; height: auto; display: block; }
iframe { border: 0; }

a {
	color: var(--da-sky-600);
	text-decoration-color: rgba(47, 154, 224, .35);
	text-underline-offset: 3px;
	transition: color .18s var(--da-ease), text-decoration-color .18s var(--da-ease);
}
a:hover { color: var(--da-navy-700); text-decoration-color: currentColor; }

::selection { background: var(--da-sky-300); color: var(--da-navy-900); }

:focus-visible {
	outline: 3px solid var(--da-sky-500);
	outline-offset: 2px;
	border-radius: 4px;
}

.da-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	padding: 12px 20px;
	background: var(--da-navy-800);
	color: #fff;
	border-radius: 0 0 var(--da-radius-sm) 0;
	font-weight: 600;
}
.da-skip-link:focus { left: 0; color: #fff; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute; word-wrap: normal !important;
}

/* 3. Typography ---------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--da-font-display);
	color: var(--da-ink);
	line-height: 1.2;
	margin: 0 0 .6em;
	font-weight: 700;
	letter-spacing: -.02em;
	text-wrap: balance;
}

h1 { font-size: clamp(2.1rem, 1.35rem + 2.6vw, 3.3rem); }
h2 { font-size: clamp(1.65rem, 1.2rem + 1.7vw, 2.4rem); }
h3 { font-size: clamp(1.3rem, 1.1rem + .8vw, 1.65rem); }
h4 { font-size: 1.2rem; }
h5 { font-size: 1.05rem; }
h6 { font-size: .95rem; text-transform: uppercase; letter-spacing: .08em; color: var(--da-sky-600); }

p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }

strong, b { color: var(--da-ink); font-weight: 650; }

blockquote {
	margin: 2em 0;
	padding: 1.4em 1.6em;
	background: var(--da-sky-50);
	border-left: 4px solid var(--da-sky-500);
	border-radius: 0 var(--da-radius) var(--da-radius) 0;
	color: var(--da-ink);
	font-size: 1.1rem;
}
blockquote p:last-child { margin-bottom: 0; }
blockquote cite { display: block; margin-top: .8em; font-size: .9rem; color: var(--da-muted); font-style: normal; }

code, kbd, samp, pre {
	font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
	font-size: .92em;
}
code {
	background: var(--da-sky-100);
	color: var(--da-navy-700);
	padding: .15em .45em;
	border-radius: 5px;
}
pre {
	background: var(--da-navy-800);
	color: #e6eef8;
	padding: 1.2em 1.4em;
	border-radius: var(--da-radius);
	overflow-x: auto;
	line-height: 1.6;
}
pre code { background: none; color: inherit; padding: 0; }

hr {
	border: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--da-line), transparent);
	margin: 3em 0;
}

/* 4. Layout & utilities -------------------------------------------------- */
.da-wrap {
	width: 100%;
	max-width: var(--da-wrap);
	margin-inline: auto;
	padding-inline: clamp(18px, 4vw, 36px);
}
.da-wrap--narrow { max-width: var(--da-wrap-narrow); }

.da-section { padding-block: clamp(56px, 7vw, 104px); }
.da-section--tight { padding-block: clamp(40px, 4.5vw, 64px); }

.da-section--alt { background: var(--da-surface-alt); }
.da-section--sky {
	background: linear-gradient(165deg, var(--da-sky-50) 0%, #e8f3fc 55%, #dceefb 100%);
}
.da-section--navy {
	background: linear-gradient(160deg, var(--da-navy-800) 0%, var(--da-navy-700) 48%, var(--da-navy-600) 100%);
	color: rgba(226, 238, 250, .86);
	position: relative;
	overflow: hidden;
}
.da-section--navy h1, .da-section--navy h2, .da-section--navy h3,
.da-section--navy h4, .da-section--navy h5 { color: #fff; }
.da-section--navy a { color: var(--da-sky-300); }
.da-section--navy a:hover { color: #fff; }

/* Subtle instrument-grid texture on navy sections */
.da-section--navy::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(86, 180, 239, .07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(86, 180, 239, .07) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: radial-gradient(ellipse 80% 60% at 50% 40%, #000 35%, transparent 78%);
	-webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 40%, #000 35%, transparent 78%);
	pointer-events: none;
}
.da-section--navy > * { position: relative; z-index: 1; }

.da-section-head { max-width: 720px; margin-bottom: clamp(32px, 4vw, 56px); }
.da-section-head--center { margin-inline: auto; text-align: center; }
.da-section-head p { font-size: 1.1rem; margin-bottom: 0; }

.da-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .55em;
	font-family: var(--da-font-sans);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--da-sky-600);
	margin-bottom: .9em;
}
.da-eyebrow::before {
	content: "";
	width: 26px;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
}
.da-section--navy .da-eyebrow { color: var(--da-sky-400); }
.da-section-head--center .da-eyebrow::before { display: none; }

/* Buttons */
.da-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55em;
	padding: .9em 1.7em;
	border-radius: 999px;
	font-family: var(--da-font-sans);
	font-weight: 650;
	font-size: 1rem;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	border: 2px solid transparent;
	transition: transform .22s var(--da-ease), box-shadow .22s var(--da-ease),
	            background-color .22s var(--da-ease), color .22s var(--da-ease),
	            border-color .22s var(--da-ease);
}
.da-btn:hover { transform: translateY(-2px); }
.da-btn:active { transform: translateY(0); }
.da-btn svg {
	width: 17px;
	height: 17px;
	flex-shrink: 0;
	transition: transform .28s var(--da-ease);
}
.da-btn:hover svg { transform: translateX(3px); }

.da-btn--primary {
	background: linear-gradient(135deg, var(--da-sky-500), var(--da-sky-600));
	color: #fff;
	box-shadow: 0 8px 20px rgba(27, 127, 196, .32);
}
.da-btn--primary:hover {
	color: #fff;
	box-shadow: 0 14px 30px rgba(27, 127, 196, .42);
}

.da-btn--ghost {
	background: rgba(255, 255, 255, .07);
	color: #fff;
	border-color: rgba(255, 255, 255, .55);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.da-btn--ghost:hover {
	background: #fff;
	color: var(--da-navy-800);
	border-color: #fff;
}

.da-btn--solid-navy {
	background: var(--da-navy-700);
	color: #fff;
}
.da-btn--solid-navy:hover { background: var(--da-navy-800); color: #fff; }

.da-btn--outline {
	border-color: var(--da-line);
	color: var(--da-navy-700);
	background: #fff;
}
.da-btn--outline:hover { border-color: var(--da-sky-500); color: var(--da-sky-600); }

.da-btn-row {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
}
.da-btn-row--center { justify-content: center; }

/* 5. Header & navigation ------------------------------------------------- */
.da-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 200;
	transition: background-color .3s var(--da-ease), box-shadow .3s var(--da-ease),
	            backdrop-filter .3s var(--da-ease);
}
.da-header__inner {
	min-height: var(--da-header-h);
	display: flex;
	align-items: center;
	gap: 20px;
	max-width: 1400px;
}

/* Transparent over hero, solid once scrolled or on inner pages */
.da-header--solid,
body:not(.da-has-hero) .da-header {
	background: rgba(255, 255, 255, .92);
	backdrop-filter: saturate(150%) blur(14px);
	-webkit-backdrop-filter: saturate(150%) blur(14px);
	box-shadow: 0 1px 0 var(--da-line), 0 6px 24px rgba(10, 28, 51, .06);
}

.da-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	flex-shrink: 0;
	line-height: 1.1;
}
.da-brand__mark {
	width: 40px; height: 40px;
	flex-shrink: 0;
	display: grid;
	place-items: center;
	border-radius: 11px;
	background: linear-gradient(140deg, var(--da-sky-500), var(--da-navy-700));
	box-shadow: 0 4px 12px rgba(20, 49, 84, .28);
}
.da-brand__mark svg { width: 23px; height: 23px; fill: #fff; }
.da-brand__text { display: flex; flex-direction: column; }
.da-brand__name {
	font-family: var(--da-font-display);
	font-weight: 750;
	font-size: 1.12rem;
	letter-spacing: -.02em;
	color: var(--da-ink);
	transition: color .3s var(--da-ease);
}
.da-brand__tag {
	font-size: .7rem;
	letter-spacing: .06em;
	color: var(--da-muted);
	text-transform: uppercase;
	transition: color .3s var(--da-ease);
}

/* Light brand text while header is transparent over the hero */
body.da-has-hero .da-header:not(.da-header--solid) .da-brand__name { color: #fff; }
body.da-has-hero .da-header:not(.da-header--solid) .da-brand__tag { color: rgba(255, 255, 255, .72); }

.da-nav {
	margin-left: auto;
	flex: 1 1 auto;
	min-width: 0;          /* allows the flex item to shrink so we can measure */
	display: flex;
	justify-content: flex-end;
}
.da-nav ul { list-style: none; margin: 0; padding: 0; }

.da-nav > ul {
	display: flex;
	align-items: center;
	gap: 2px;
	flex-wrap: nowrap;      /* never wrap: overflow goes into the More menu */
	max-width: 100%;
}
.da-nav > ul > li { position: relative; flex: 0 0 auto; }

/* Overflow "More" item — hidden until JS decides it is needed */
.da-nav__more { display: none; }
.da-nav__more.is-active { display: block; }
.da-nav__more > button {
	display: flex;
	align-items: center;
	gap: .35em;
	padding: .6em clamp(.5em, .62vw, .82em);
	border: 0;
	background: transparent;
	border-radius: 9px;
	font-family: inherit;
	font-size: clamp(.84rem, .72rem + .18vw, .93rem);
	font-weight: 550;
	color: var(--da-navy-700);
	cursor: pointer;
	white-space: nowrap;
	transition: color .18s var(--da-ease), background-color .18s var(--da-ease);
}
.da-nav__more > button::after {
	content: "";
	width: 7px; height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	opacity: .65;
	transition: transform .2s var(--da-ease);
}
.da-nav__more.da-open > button::after,
.da-nav__more:hover > button::after { transform: rotate(225deg) translateY(2px); }
.da-nav__more > button:hover,
.da-nav__more.da-open > button,
.da-nav__more.has-current > button {
	color: var(--da-sky-600);
	background: var(--da-sky-50);
}

body.da-has-hero .da-header:not(.da-header--solid) .da-nav__more > button { color: rgba(255, 255, 255, .93); }
body.da-has-hero .da-header:not(.da-header--solid) .da-nav__more > button:hover,
body.da-has-hero .da-header:not(.da-header--solid) .da-nav__more.da-open > button {
	color: #fff;
	background: rgba(255, 255, 255, .16);
}

/* The More panel always hangs off the right edge and stays on screen */
.da-nav__more > ul {
	left: auto !important;
	right: 0 !important;
}
/* Nested levels inside the More panel open to the LEFT so they never
   run off the right edge of the window. */
.da-nav__more ul ul {
	left: auto !important;
	right: calc(100% + 6px) !important;
}

.da-nav a {
	display: flex;
	align-items: center;
	gap: .35em;
	/* Fixed metrics on purpose. When these scaled with vw the nav items kept
	   growing past 1400px while .da-header__inner stopped widening there, so a
	   wider window could push an item back into "More" -- the opposite of what
	   the overflow menu is supposed to do. Constant item widths make the
	   behaviour monotonic: wider window, never fewer items. */
	padding: .6em .68em;
	border-radius: 9px;
	font-size: .88rem;
	font-weight: 550;
	color: var(--da-navy-700);
	text-decoration: none;
	white-space: nowrap;
	transition: color .18s var(--da-ease), background-color .18s var(--da-ease);
}
.da-nav a:hover,
.da-nav li.current-menu-item > a,
.da-nav li.current-menu-ancestor > a,
.da-nav li.current_page_item > a,
.da-nav li.current_page_ancestor > a {
	color: var(--da-sky-600);
	background: var(--da-sky-50);
}

body.da-has-hero .da-header:not(.da-header--solid) .da-nav > ul > li > a { color: rgba(255, 255, 255, .93); }
body.da-has-hero .da-header:not(.da-header--solid) .da-nav > ul > li > a:hover,
body.da-has-hero .da-header:not(.da-header--solid) .da-nav > ul > li.current-menu-item > a,
body.da-has-hero .da-header:not(.da-header--solid) .da-nav > ul > li.current-menu-ancestor > a {
	color: #fff;
	background: rgba(255, 255, 255, .16);
}

/* Dropdown caret */
.da-nav .menu-item-has-children > a::after {
	content: "";
	width: 7px; height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	opacity: .65;
	transition: transform .2s var(--da-ease);
}
.da-nav .menu-item-has-children:hover > a::after { transform: rotate(225deg) translateY(2px); }
.da-nav ul ul .menu-item-has-children > a::after { transform: rotate(-45deg); }
.da-nav ul ul .menu-item-has-children:hover > a::after { transform: rotate(-45deg); }

/* Submenus */
.da-nav ul ul {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	min-width: 268px;
	padding: 8px;
	background: #fff;
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius);
	box-shadow: var(--da-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .2s var(--da-ease), transform .2s var(--da-ease), visibility .2s;
	z-index: 30;
	max-height: min(70vh, 620px);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.da-nav ul ul li { position: relative; }
.da-nav ul ul a {
	padding: .58em .8em;
	font-size: .9rem;
	font-weight: 500;
	color: var(--da-body);
	white-space: normal;
	line-height: 1.4;
}
.da-nav ul ul a:hover { background: var(--da-sky-50); color: var(--da-sky-600); }

.da-nav li:hover > ul,
.da-nav li:focus-within > ul,
.da-nav li.da-open > ul {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

/* Third level flies out to the side */
.da-nav ul ul ul {
	top: -8px;
	left: calc(100% + 6px);
}
.da-nav > ul > li:last-child ul ul,
.da-nav > ul > li:nth-last-child(2) ul ul { left: auto; right: calc(100% + 6px); }

/* Keep last dropdowns on screen */
.da-nav > ul > li:last-child > ul,
.da-nav > ul > li:nth-last-child(2) > ul { left: auto; right: 0; }

/* Header search + burger */
.da-header__actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }

.da-icon-btn {
	width: 42px; height: 42px;
	display: grid; place-items: center;
	border: 0;
	background: transparent;
	border-radius: 10px;
	cursor: pointer;
	color: var(--da-navy-700);
	transition: background-color .2s var(--da-ease), color .2s var(--da-ease);
}
.da-icon-btn:hover { background: var(--da-sky-50); color: var(--da-sky-600); }
.da-icon-btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

body.da-has-hero .da-header:not(.da-header--solid) .da-icon-btn { color: #fff; }
body.da-has-hero .da-header:not(.da-header--solid) .da-icon-btn:hover { background: rgba(255, 255, 255, .18); }

.da-burger { display: none; }
.da-burger span {
	display: block;
	width: 21px; height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: transform .28s var(--da-ease), opacity .2s var(--da-ease);
}
.da-burger span + span { margin-top: 5px; }
.da-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.da-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.da-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Header search dropdown */
.da-search-pop {
	position: absolute;
	top: calc(100% + 6px);
	right: clamp(18px, 4vw, 36px);
	width: min(420px, calc(100vw - 36px));
	background: #fff;
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius);
	box-shadow: var(--da-shadow-lg);
	padding: 14px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity .2s var(--da-ease), transform .2s var(--da-ease), visibility .2s;
}
.da-search-pop.is-open { opacity: 1; visibility: visible; transform: translateY(0); }

/* Mobile drawer */
.da-mobile-nav {
	position: fixed;
	inset: 0 0 0 auto;
	width: min(410px, 88vw);
	background: var(--da-navy-800);
	color: #fff;
	z-index: 260;
	transform: translateX(100%);
	transition: transform .36s var(--da-ease);
	display: flex;
	flex-direction: column;
	box-shadow: -18px 0 50px rgba(4, 12, 24, .4);
}
.da-mobile-nav.is-open { transform: translateX(0); }

.da-mobile-nav__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px;
	border-bottom: 1px solid rgba(255, 255, 255, .12);
	flex-shrink: 0;
}
.da-mobile-nav__title {
	font-family: var(--da-font-display);
	font-weight: 700;
	font-size: 1.05rem;
}
.da-mobile-nav__body { overflow-y: auto; padding: 12px 12px 32px; flex: 1; }
.da-mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.da-mobile-nav li { border-bottom: 1px solid rgba(255, 255, 255, .07); }
.da-mobile-nav ul ul { padding-left: 14px; display: none; }
.da-mobile-nav li.da-open > ul { display: block; }
.da-mobile-nav a {
	display: block;
	padding: .82em .7em;
	color: rgba(233, 241, 250, .93);
	text-decoration: none;
	font-size: .98rem;
	font-weight: 550;
	border-radius: 8px;
}
.da-mobile-nav ul ul a { font-size: .92rem; font-weight: 450; color: rgba(210, 226, 242, .8); }
.da-mobile-nav a:hover { color: #fff; background: rgba(255, 255, 255, .07); }

.da-mobile-nav .da-sub-toggle {
	position: absolute;
	right: 6px; top: 5px;
	width: 36px; height: 36px;
	background: rgba(255, 255, 255, .08);
	border: 0;
	border-radius: 9px;
	color: #fff;
	cursor: pointer;
	display: grid;
	place-items: center;
	font-size: 0;
	line-height: 0;
	transition: background-color .2s var(--da-ease);
}
.da-mobile-nav .da-sub-toggle:hover { background: rgba(255, 255, 255, .16); }

/* Plus / minus glyph built from two bars so the button never rotates */
.da-mobile-nav .da-sub-toggle::before,
.da-mobile-nav .da-sub-toggle::after {
	content: "";
	position: absolute;
	background: currentColor;
	border-radius: 2px;
	transition: transform .25s var(--da-ease), opacity .2s var(--da-ease);
}
.da-mobile-nav .da-sub-toggle::before { width: 13px; height: 2px; }
.da-mobile-nav .da-sub-toggle::after  { width: 2px; height: 13px; }

.da-mobile-nav li { position: relative; }
.da-mobile-nav li.da-open > .da-sub-toggle { background: var(--da-sky-500); }
.da-mobile-nav li.da-open > .da-sub-toggle::after { transform: scaleY(0); opacity: 0; }

.da-mobile-nav__foot {
	padding: 16px 20px 24px;
	border-top: 1px solid rgba(255, 255, 255, .12);
	flex-shrink: 0;
}

.da-overlay {
	position: fixed;
	inset: 0;
	background: rgba(6, 16, 30, .55);
	backdrop-filter: blur(2px);
	z-index: 250;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s var(--da-ease), visibility .3s;
}
.da-overlay.is-open { opacity: 1; visibility: visible; }

/* Spacer so fixed header never covers content on inner pages */
body:not(.da-has-hero) .da-site-main { padding-top: var(--da-header-h); }

/* 6. Hero ---------------------------------------------------------------- */
.da-hero {
	position: relative;
	min-height: clamp(520px, 78vh, 780px);
	display: grid;
	align-items: center;
	overflow: hidden;
	isolation: isolate;
	color: #fff;
}
.da-hero__media {
	position: absolute;
	inset: -12% 0 -12% 0;
	z-index: -2;
	will-change: transform;
}
.da-hero__media img,
.da-hero__media .da-hero__fallback {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 55%;
}
.da-hero__fallback {
	background: linear-gradient(150deg, var(--da-navy-900) 0%, var(--da-navy-700) 40%, var(--da-sky-600) 100%);
}
.da-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(180deg, rgba(7, 20, 38, .72) 0%, rgba(7, 20, 38, .48) 42%, rgba(7, 20, 38, .82) 100%),
		radial-gradient(ellipse 70% 55% at 50% 45%, rgba(11, 31, 58, .12) 0%, rgba(7, 20, 38, .62) 100%);
}

.da-hero__inner {
	padding-block: calc(var(--da-header-h) + clamp(48px, 7vw, 96px)) clamp(56px, 7vw, 104px);
	text-align: center;
	max-width: 900px;
	margin-inline: auto;
}
.da-hero__eyebrow {
	display: inline-block;
	padding: .5em 1.1em;
	border-radius: 999px;
	background: rgba(255, 255, 255, .13);
	border: 1px solid rgba(255, 255, 255, .28);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .11em;
	text-transform: uppercase;
	color: #fff;
	margin-bottom: 1.3em;
}
.da-hero h1 {
	color: #fff;
	font-size: clamp(2.4rem, 1.4rem + 3.9vw, 4.4rem);
	line-height: 1.06;
	margin-bottom: .38em;
	text-shadow: 0 4px 30px rgba(3, 10, 20, .45);
}
.da-hero__lede {
	font-size: clamp(1.06rem, .98rem + .45vw, 1.32rem);
	color: rgba(240, 246, 253, .93);
	max-width: 640px;
	margin: 0 auto 2em;
	text-shadow: 0 2px 16px rgba(3, 10, 20, .4);
}
.da-hero .da-btn-row { justify-content: center; }

/* Scroll cue */
.da-hero__cue {
	position: absolute;
	bottom: 26px;
	left: 50%;
	transform: translateX(-50%);
	display: grid;
	place-items: center;
	gap: 7px;
	color: rgba(255, 255, 255, .8);
	font-size: .72rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	z-index: 2;
}
.da-hero__cue:hover { color: #fff; }
.da-hero__cue span {
	width: 26px; height: 42px;
	border: 2px solid currentColor;
	border-radius: 14px;
	position: relative;
}
.da-hero__cue span::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 8px;
	width: 3px; height: 8px;
	border-radius: 2px;
	background: currentColor;
	transform: translateX(-50%);
	animation: da-cue 1.9s var(--da-ease) infinite;
}
@keyframes da-cue {
	0%   { opacity: 0; transform: translate(-50%, -3px); }
	40%  { opacity: 1; }
	80%  { opacity: 0; transform: translate(-50%, 13px); }
	100% { opacity: 0; }
}

/* Compact page hero for inner pages */
.da-page-hero {
	position: relative;
	padding-block: calc(var(--da-header-h) + clamp(44px, 5.5vw, 76px)) clamp(40px, 5vw, 68px);
	background: linear-gradient(155deg, var(--da-navy-800) 0%, var(--da-navy-700) 55%, var(--da-navy-600) 100%);
	color: #fff;
	overflow: hidden;
}
.da-page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(86, 180, 239, .08) 1px, transparent 1px),
		linear-gradient(90deg, rgba(86, 180, 239, .08) 1px, transparent 1px);
	background-size: 58px 58px;
	mask-image: radial-gradient(ellipse 75% 70% at 30% 40%, #000 30%, transparent 76%);
	-webkit-mask-image: radial-gradient(ellipse 75% 70% at 30% 40%, #000 30%, transparent 76%);
}
.da-page-hero::after {
	content: "";
	position: absolute;
	right: -80px; top: -110px;
	width: 420px; height: 420px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(47, 154, 224, .3) 0%, transparent 68%);
	pointer-events: none;
}
.da-page-hero > * { position: relative; z-index: 1; }
.da-page-hero h1 { color: #fff; margin-bottom: .25em; }
.da-page-hero__meta { color: rgba(205, 224, 243, .8); font-size: .95rem; }

/* Breadcrumbs */
.da-crumbs {
	font-size: .84rem;
	color: rgba(198, 218, 238, .78);
	margin-bottom: 1em;
	display: flex;
	flex-wrap: wrap;
	gap: .45em;
	align-items: center;
}
.da-crumbs a { color: rgba(214, 232, 248, .9); text-decoration: none; }
.da-crumbs a:hover { color: #fff; text-decoration: underline; }
.da-crumbs .sep { opacity: .5; }

/* 7. Sections & cards ---------------------------------------------------- */
.da-grid { display: grid; gap: clamp(18px, 2.2vw, 28px); }
.da-grid--2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.da-grid--3 { grid-template-columns: repeat(auto-fit, minmax(268px, 1fr)); }
.da-grid--4 { grid-template-columns: repeat(auto-fit, minmax(232px, 1fr)); }

/* Homepage training-path scroller: 4 cards visible, extras (e.g. Commercial
   Certificate) sit just past the right edge until scrolled into view. */
.da-paths-scroller { position: relative; }
.da-paths-track.da-grid--4 {
	--da-paths-gap: clamp(18px, 2.2vw, 28px);
	display: flex;
	grid-template-columns: none;
	gap: var(--da-paths-gap);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 2px 2px 10px;
	margin: -2px -2px -8px;
}
.da-paths-track.da-grid--4::-webkit-scrollbar { display: none; }
.da-paths-track.da-grid--4 > .da-card {
	scroll-snap-align: start;
	flex: 0 0 calc((100% - 3 * var(--da-paths-gap)) / 4);
	min-width: 216px;
}
@media (max-width: 980px) {
	.da-paths-track.da-grid--4 > .da-card { flex-basis: calc((100% - var(--da-paths-gap)) / 2); }
}
@media (max-width: 620px) {
	.da-paths-track.da-grid--4 > .da-card { flex-basis: 84%; }
}
.da-paths-arrow {
	position: absolute;
	top: 150px;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--da-line);
	box-shadow: var(--da-shadow);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	z-index: 2;
	color: var(--da-navy-700);
	transition: transform .25s var(--da-ease), box-shadow .25s var(--da-ease);
}
.da-paths-arrow:hover { transform: translateY(-50%) scale(1.07); box-shadow: var(--da-shadow-lg); }
.da-paths-arrow svg { width: 18px; height: 18px; }
.da-paths-arrow--prev { left: -20px; }
.da-paths-arrow--prev svg { transform: scaleX(-1); }
.da-paths-arrow--next { right: -20px; }
.da-paths-arrow[hidden] { display: none; }
@media (max-width: 700px) {
	/* Native swipe covers it at card width this narrow; keep the row clear. */
	.da-paths-arrow { display: none; }
}

/* Path / feature card with image */
.da-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 300px;
	border-radius: var(--da-radius-lg);
	overflow: hidden;
	text-decoration: none;
	background: var(--da-navy-700);
	isolation: isolate;
	box-shadow: var(--da-shadow);
	transition: transform .38s var(--da-ease), box-shadow .38s var(--da-ease);
}
.da-card:hover { transform: translateY(-7px); box-shadow: var(--da-shadow-lg); }

.da-card__img {
	position: absolute;
	inset: 0;
	z-index: -2;
}
.da-card__img img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .7s var(--da-ease);
}
.da-card:hover .da-card__img img { transform: scale(1.07); }

.da-card::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(178deg, rgba(7, 20, 38, .34) 0%, rgba(7, 20, 38, .58) 45%, rgba(7, 20, 38, .88) 100%);
	transition: background .38s var(--da-ease);
}
.da-card:hover::after {
	background: linear-gradient(178deg, rgba(9, 27, 50, .42) 0%, rgba(9, 33, 62, .66) 45%, rgba(7, 20, 38, .92) 100%);
}

.da-card__body {
	padding: 26px 24px 24px;
	color: #fff;
}
.da-card__kicker {
	display: block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--da-sky-300);
	margin-bottom: .6em;
}
.da-card__title {
	font-family: var(--da-font-display);
	font-size: 1.32rem;
	font-weight: 700;
	line-height: 1.24;
	color: #fff;
	margin: 0 0 .45em;
	letter-spacing: -.015em;
}
.da-card__desc {
	font-size: .93rem;
	color: rgba(226, 238, 250, .82);
	margin: 0;
	line-height: 1.55;
}
.da-card__more {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	margin-top: 1em;
	font-size: .88rem;
	font-weight: 650;
	color: var(--da-sky-300);
}
.da-card__more svg { width: 15px; height: 15px; transition: transform .3s var(--da-ease); }
.da-card:hover .da-card__more svg { transform: translateX(5px); }
a.da-card__more { text-decoration: none; cursor: pointer; }

/* Card variant that carries its own real links (e.g. Definitions' popular
   terms) instead of being one big <a>: the wrapper is a <div>, so the
   whole-panel hover lift still applies but only its links navigate. */
.da-card--links { cursor: default; }
.da-card__title-link { color: inherit; text-decoration: none; }
.da-card__title-link:hover,
.da-card__title-link:focus-visible { text-decoration: underline; }

.da-card__popular {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .45em .5em;
	margin: .9em 0 0;
}
.da-card__popular-label {
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: rgba(226, 238, 250, .6);
}
.da-card__popular-link {
	font-size: .8rem;
	font-weight: 650;
	color: var(--da-sky-300);
	text-decoration: none;
	padding: .28em .7em;
	border: 1px solid rgba(140, 205, 246, .35);
	border-radius: 999px;
	transition: background .25s var(--da-ease), border-color .25s var(--da-ease), color .25s var(--da-ease);
}
.da-card__popular-link:hover,
.da-card__popular-link:focus-visible {
	background: rgba(140, 205, 246, .16);
	border-color: rgba(140, 205, 246, .6);
	color: #fff;
}

/* Plain content card (no image) */
.da-tile {
	background: #fff;
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius);
	padding: 26px 24px;
	box-shadow: var(--da-shadow-sm);
	transition: transform .3s var(--da-ease), box-shadow .3s var(--da-ease), border-color .3s var(--da-ease);
	text-decoration: none;
	display: block;
	height: 100%;
}
a.da-tile:hover {
	transform: translateY(-4px);
	box-shadow: var(--da-shadow);
	border-color: var(--da-sky-300);
}
.da-tile__icon {
	width: 46px; height: 46px;
	border-radius: 12px;
	display: grid; place-items: center;
	background: linear-gradient(140deg, var(--da-sky-100), #d3eafb);
	color: var(--da-sky-600);
	margin-bottom: 16px;
}
.da-tile__icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.da-tile h3 { font-size: 1.15rem; margin-bottom: .4em; }
.da-tile p { font-size: .94rem; margin: 0; color: var(--da-body); }

.da-section--navy .da-tile {
	background: rgba(255, 255, 255, .05);
	border-color: rgba(255, 255, 255, .12);
	box-shadow: none;
}
.da-section--navy .da-tile p { color: rgba(219, 232, 246, .82); }
.da-section--navy .da-tile__icon {
	background: rgba(47, 154, 224, .18);
	color: var(--da-sky-300);
}

/* Stats strip */
.da-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: clamp(18px, 3vw, 40px);
	text-align: center;
}
.da-stat__num {
	font-family: var(--da-font-display);
	font-size: clamp(2.1rem, 1.5rem + 2.1vw, 3rem);
	font-weight: 750;
	line-height: 1;
	color: #fff;
	letter-spacing: -.03em;
}
.da-stat__label {
	margin-top: .6em;
	font-size: .84rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--da-sky-300);
	font-weight: 600;
}

/* CTA band */
.da-cta {
	border-radius: var(--da-radius-lg);
	padding: clamp(34px, 5vw, 62px);
	background: linear-gradient(135deg, var(--da-navy-700) 0%, var(--da-navy-600) 45%, var(--da-sky-600) 130%);
	color: #fff;
	text-align: center;
	position: relative;
	overflow: hidden;
	box-shadow: var(--da-shadow-lg);
}
.da-cta::before {
	content: "";
	position: absolute;
	left: -60px; bottom: -120px;
	width: 340px; height: 340px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 255, 255, .13) 0%, transparent 68%);
}
.da-cta > * { position: relative; z-index: 1; }
.da-cta h2 { color: #fff; }
.da-cta p { color: rgba(233, 243, 253, .9); max-width: 560px; margin-inline: auto; margin-bottom: 1.8em; }

/* 8. Content ------------------------------------------------------------- */
.da-content { font-size: 1.06rem; }
.da-content > *:first-child { margin-top: 0; }
.da-content > *:last-child { margin-bottom: 0; }

.da-content h2 { margin-top: 1.9em; }
.da-content h3 { margin-top: 1.7em; }
.da-content h4 { margin-top: 1.5em; }
.da-content h2:first-child,
.da-content h3:first-child { margin-top: 0; }

/* Accent rule under major headings */
.da-content h2 {
	padding-bottom: .34em;
	border-bottom: 2px solid var(--da-line-soft);
	position: relative;
}
.da-content h2::after {
	content: "";
	position: absolute;
	left: 0; bottom: -2px;
	width: 58px; height: 2px;
	background: linear-gradient(90deg, var(--da-sky-500), var(--da-sky-300));
	border-radius: 2px;
}

.da-content ul, .da-content ol { margin: 0 0 1.3em; padding-left: 1.5em; }
.da-content li { margin-bottom: .45em; }
.da-content li::marker { color: var(--da-sky-500); }
.da-content ul ul, .da-content ol ol, .da-content ul ol, .da-content ol ul { margin-top: .45em; margin-bottom: .5em; }

.da-content img { border-radius: var(--da-radius); }

figure { margin: 2em 0; }
figure img { border-radius: var(--da-radius); box-shadow: var(--da-shadow-sm); }
figcaption {
	margin-top: .8em;
	font-size: .88rem;
	color: var(--da-muted);
	text-align: center;
}

.alignleft  { float: left;  margin: .4em 1.8em 1.2em 0; max-width: 46%; }
.alignright { float: right; margin: .4em 0 1.2em 1.8em; max-width: 46%; }
.aligncenter { display: block; margin-inline: auto; }
.alignwide, .alignfull { margin-block: 2em; }

/* WordPress core-block friendliness */
.wp-block-image { margin-block: 2em; }
.wp-block-image img { border-radius: var(--da-radius); }
.wp-block-button__link {
	background: linear-gradient(135deg, var(--da-sky-500), var(--da-sky-600));
	border-radius: 999px;
	padding: .85em 1.7em;
	font-weight: 650;
	color: #fff;
	text-decoration: none;
	display: inline-block;
	transition: transform .22s var(--da-ease), box-shadow .22s var(--da-ease);
	box-shadow: 0 8px 20px rgba(27, 127, 196, .28);
}
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(27, 127, 196, .4); color: #fff; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }

.wp-block-cover { border-radius: var(--da-radius); overflow: hidden; }

.wp-block-gallery { margin-block: 2em; }
.wp-block-gallery figure { margin: 0; }
.wp-block-gallery img { border-radius: var(--da-radius-sm); transition: transform .5s var(--da-ease); }
.wp-block-gallery figure { overflow: hidden; border-radius: var(--da-radius-sm); }
.wp-block-gallery figure:hover img { transform: scale(1.05); }

.wp-block-embed { margin-block: 2em; }
.wp-block-embed__wrapper { position: relative; }
.wp-block-embed iframe { border-radius: var(--da-radius); width: 100%; }

/* Lesson-plan callouts — Objective / Attention / Motivation / Overview etc.
   Applied by JS to bold lead-in paragraphs, and available as a class. */
.da-callout {
	margin: 1.5em 0;
	padding: 1.15em 1.35em 1.15em 1.5em;
	background: var(--da-sky-50);
	border-left: 4px solid var(--da-sky-500);
	border-radius: 0 var(--da-radius) var(--da-radius) 0;
}
.da-callout > strong:first-child,
.da-callout > b:first-child {
	display: block;
	font-family: var(--da-font-display);
	font-size: .78rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--da-sky-600);
	margin-bottom: .4em;
	font-weight: 700;
}
.da-callout--objective { background: var(--da-sky-50); border-left-color: var(--da-sky-500); }
.da-callout--attention { background: #fff8ec; border-left-color: var(--da-accent); }
.da-callout--attention > strong:first-child { color: var(--da-accent-dark); }
.da-callout--motivation { background: #f3f9f3; border-left-color: #55a860; }
.da-callout--motivation > strong:first-child { color: #3f8449; }
.da-callout--overview,
.da-callout--emphasis { background: var(--da-surface-alt); border-left-color: var(--da-navy-500); }
.da-callout--overview > strong:first-child,
.da-callout--emphasis > strong:first-child { color: var(--da-navy-600); }

/* Tables — scrollable, striped, readable */
.da-table-scroll {
	overflow-x: auto;
	margin: 2em 0;
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius);
	box-shadow: var(--da-shadow-sm);
	-webkit-overflow-scrolling: touch;
}
.da-table-scroll > table { margin: 0; border: 0; border-radius: 0; box-shadow: none; min-width: 520px; }

table {
	width: 100%;
	border-collapse: collapse;
	margin: 2em 0;
	font-size: .97rem;
	background: #fff;
	border-radius: var(--da-radius);
	overflow: hidden;
}
th, td {
	padding: .82em 1em;
	text-align: left;
	border-bottom: 1px solid var(--da-line-soft);
	vertical-align: top;
}
thead th {
	background: linear-gradient(160deg, var(--da-navy-700), var(--da-navy-600));
	color: #fff;
	font-family: var(--da-font-display);
	font-weight: 650;
	font-size: .88rem;
	letter-spacing: .03em;
	border-bottom: 0;
	white-space: nowrap;
}
tbody tr:nth-child(even) { background: var(--da-surface-alt); }
tbody tr:hover { background: var(--da-sky-50); }
tbody tr:last-child td { border-bottom: 0; }

/* Tables without a thead: treat first row as header */
table.da-table-noheader tbody tr:first-child {
	background: linear-gradient(160deg, var(--da-navy-700), var(--da-navy-600));
}
table.da-table-noheader tbody tr:first-child td {
	color: #fff;
	font-weight: 650;
	font-family: var(--da-font-display);
}
table.da-table-noheader tbody tr:first-child:hover {
	background: linear-gradient(160deg, var(--da-navy-700), var(--da-navy-600));
}

/* Page navigation between sibling lesson pages */
.da-postnav {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 16px;
	margin-top: clamp(40px, 5vw, 64px);
	padding-top: clamp(28px, 3vw, 40px);
	border-top: 1px solid var(--da-line);
}
.da-postnav a {
	display: block;
	padding: 18px 20px;
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius);
	text-decoration: none;
	background: #fff;
	transition: border-color .25s var(--da-ease), transform .25s var(--da-ease), box-shadow .25s var(--da-ease);
}
.da-postnav a:hover { border-color: var(--da-sky-400); transform: translateY(-3px); box-shadow: var(--da-shadow-sm); }
.da-postnav .lbl {
	display: block;
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--da-sky-600);
	font-weight: 700;
	margin-bottom: .4em;
}
.da-postnav .ttl { font-weight: 600; color: var(--da-ink); font-family: var(--da-font-display); }
.da-postnav .next { text-align: right; }

/* Child-page index (sub-topics under a certificate) */
.da-children { margin-top: clamp(40px, 5vw, 60px); }
.da-children h2 { font-size: 1.4rem; }
.da-chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.da-chip-list a {
	display: inline-block;
	padding: .6em 1.1em;
	background: #fff;
	border: 1px solid var(--da-line);
	border-radius: 999px;
	font-size: .92rem;
	font-weight: 550;
	color: var(--da-navy-700);
	text-decoration: none;
	transition: all .22s var(--da-ease);
}
.da-chip-list a:hover {
	background: var(--da-sky-500);
	border-color: var(--da-sky-500);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 6px 14px rgba(27, 127, 196, .26);
}

/* Layout with optional sidebar */
.da-layout { display: grid; gap: clamp(32px, 4vw, 56px); align-items: start; }
.da-layout--sidebar { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1040px) {
	.da-layout--sidebar { grid-template-columns: minmax(0, 1fr) 300px; }
}
.da-sidebar { position: sticky; top: calc(var(--da-header-h) + 20px); }
.da-widget {
	background: #fff;
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius);
	padding: 22px;
	margin-bottom: 22px;
	box-shadow: var(--da-shadow-sm);
}
.da-widget h2, .da-widget .widget-title {
	font-size: .82rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--da-sky-600);
	margin-bottom: 1em;
	padding: 0;
	border: 0;
}
.da-widget h2::after, .da-widget .widget-title::after { display: none; }
.da-widget ul { list-style: none; margin: 0; padding: 0; }
.da-widget li { margin-bottom: .55em; font-size: .94rem; }
.da-widget a { text-decoration: none; }
.da-widget a:hover { text-decoration: underline; }

/* 9. Glossary & plugin compatibility ------------------------------------- */
/* Enhanced Tooltip Glossary */
.glossaryLink,
a.glossaryLink,
.glossary-link-title {
	color: var(--da-sky-600) !important;
	text-decoration: none !important;
	border-bottom: 1px dashed var(--da-sky-400);
	font-weight: 550;
	transition: color .2s var(--da-ease), border-color .2s var(--da-ease), background-color .2s var(--da-ease);
}
.glossaryLink:hover,
a.glossaryLink:hover {
	color: var(--da-navy-700) !important;
	border-bottom-color: var(--da-navy-600);
	background: var(--da-sky-50);
}

/* Glossary A–Z index list */
.glossaryList,
#glossaryList,
.glossary-list {
	list-style: none;
	margin: 2em 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 12px;
}
.glossaryList li,
.glossary-list li { margin: 0; }
.glossaryList li a,
.glossary-list li a {
	display: block;
	padding: .85em 1.1em;
	background: #fff;
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius-sm);
	text-align: center;
	font-weight: 550;
	color: var(--da-navy-700) !important;
	text-decoration: none !important;
	border-bottom: 1px solid var(--da-line);
	transition: all .22s var(--da-ease);
}
.glossaryList li a:hover,
.glossary-list li a:hover {
	background: linear-gradient(135deg, var(--da-sky-500), var(--da-sky-600));
	border-color: transparent;
	color: #fff !important;
	transform: translateY(-3px);
	box-shadow: 0 8px 18px rgba(27, 127, 196, .28);
}

/* listnav A–Z filter bar */
.ln-letters {
	display: flex !important;
	flex-wrap: wrap;
	gap: 5px;
	margin: 1.5em 0 2em !important;
	border: 0 !important;
	background: none !important;
	width: auto !important;
}
.ln-letters a {
	display: grid !important;
	place-items: center;
	min-width: 34px;
	height: 34px;
	padding: 0 .4em !important;
	border: 1px solid var(--da-line) !important;
	border-radius: 8px !important;
	background: #fff !important;
	color: var(--da-navy-700) !important;
	font-size: .85rem !important;
	font-weight: 600;
	text-decoration: none !important;
	transition: all .2s var(--da-ease);
	float: none !important;
	width: auto !important;
}
.ln-letters a:hover,
.ln-letters a.ln-selected {
	background: var(--da-sky-500) !important;
	border-color: var(--da-sky-500) !important;
	color: #fff !important;
}
.ln-letters a.ln-disabled {
	opacity: .34;
	pointer-events: none;
	background: var(--da-surface-alt) !important;
}

/* Tooltip bubble */
.cmtt-tooltip, .glossary-tooltip-content, #tt, .tooltip {
	background: var(--da-navy-800) !important;
	color: #f0f6fc !important;
	border-radius: var(--da-radius-sm) !important;
	box-shadow: var(--da-shadow-lg) !important;
	border: 1px solid rgba(255, 255, 255, .1) !important;
	font-size: .92rem !important;
	line-height: 1.55 !important;
	padding: .9em 1.1em !important;
	max-width: 340px;
}

/* "Back to Glossary Index" links */
.glossary-back-to-index,
.back-to-glossary {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	font-weight: 600;
	text-decoration: none;
}

/* NextGEN / gallery plugins */
.ngg-galleryoverview { margin: 2em 0 !important; }
.ngg-gallery-thumbnail img,
.ngg-gallery-thumbnail-box img {
	border-radius: var(--da-radius-sm) !important;
	border: 0 !important;
	box-shadow: var(--da-shadow-sm);
	transition: transform .4s var(--da-ease), box-shadow .4s var(--da-ease);
}
.ngg-gallery-thumbnail img:hover {
	transform: translateY(-4px) scale(1.03);
	box-shadow: var(--da-shadow);
}

/* Contact / generic plugin forms */
.wpcf7 .wpcf7-form-control,
input[type="text"], input[type="email"], input[type="url"],
input[type="password"], input[type="search"], input[type="tel"],
input[type="number"], input[type="date"], textarea, select {
	width: 100%;
	padding: .78em 1em;
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius-sm);
	background: #fff;
	color: var(--da-ink);
	font-family: inherit;
	font-size: 1rem;
	transition: border-color .2s var(--da-ease), box-shadow .2s var(--da-ease);
}
input:focus, textarea:focus, select:focus {
	outline: none;
	border-color: var(--da-sky-500);
	box-shadow: 0 0 0 3px rgba(47, 154, 224, .16);
}
textarea { min-height: 150px; resize: vertical; }
label { display: block; font-weight: 600; color: var(--da-ink); margin-bottom: .4em; font-size: .93rem; }

input[type="submit"], button[type="submit"], .wpcf7 input[type="submit"] {
	width: auto;
	background: linear-gradient(135deg, var(--da-sky-500), var(--da-sky-600));
	color: #fff;
	border: 0;
	padding: .85em 2em;
	border-radius: 999px;
	font-weight: 650;
	font-size: 1rem;
	cursor: pointer;
	box-shadow: 0 8px 20px rgba(27, 127, 196, .28);
	transition: transform .22s var(--da-ease), box-shadow .22s var(--da-ease);
}
input[type="submit"]:hover, button[type="submit"]:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px rgba(27, 127, 196, .4);
}

/* 10. Blog & archives ---------------------------------------------------- */
.da-posts { display: grid; gap: clamp(20px, 2.5vw, 30px); grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }

.da-post-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius-lg);
	overflow: hidden;
	box-shadow: var(--da-shadow-sm);
	transition: transform .3s var(--da-ease), box-shadow .3s var(--da-ease), border-color .3s var(--da-ease);
	height: 100%;
}
.da-post-card:hover { transform: translateY(-5px); box-shadow: var(--da-shadow); border-color: var(--da-sky-300); }
.da-post-card__thumb { aspect-ratio: 16 / 9; overflow: hidden; background: var(--da-sky-100); }
.da-post-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s var(--da-ease); }
.da-post-card:hover .da-post-card__thumb img { transform: scale(1.06); }
.da-post-card__body { padding: 22px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.da-post-card__meta {
	font-size: .78rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--da-sky-600);
	font-weight: 650;
	margin-bottom: .7em;
}
.da-post-card h2, .da-post-card h3 {
	font-size: 1.2rem;
	margin: 0 0 .5em;
	padding: 0;
	border: 0;
	line-height: 1.3;
}
.da-post-card h2::after, .da-post-card h3::after { display: none; }
.da-post-card h2 a, .da-post-card h3 a { color: var(--da-ink); text-decoration: none; }
.da-post-card h2 a:hover, .da-post-card h3 a:hover { color: var(--da-sky-600); }
.da-post-card__excerpt { font-size: .94rem; margin-bottom: 1.1em; }
.da-post-card__more { margin-top: auto; font-size: .89rem; font-weight: 650; text-decoration: none; display: inline-flex; align-items: center; gap: .4em; color: var(--da-sky-600); }
.da-post-card__more svg { width: 15px; height: 15px; flex-shrink: 0; transition: transform .3s var(--da-ease); }
.da-post-card:hover .da-post-card__more svg { transform: translateX(5px); }

/* Pagination */
.da-pagination { margin-top: clamp(36px, 4vw, 56px); }
.da-pagination .nav-links,
.da-pagination .page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	justify-content: center;
	list-style: none;
	padding: 0;
	margin: 0;
}
.da-pagination a.page-numbers,
.da-pagination span.page-numbers {
	display: grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding: 0 .7em;
	border: 1px solid var(--da-line);
	border-radius: 10px;
	background: #fff;
	color: var(--da-navy-700);
	text-decoration: none;
	font-weight: 600;
	transition: all .2s var(--da-ease);
}
.da-pagination a.page-numbers:hover {
	border-color: var(--da-sky-500);
	color: var(--da-sky-600);
	transform: translateY(-2px);
}
.da-pagination .page-numbers.current {
	background: linear-gradient(135deg, var(--da-sky-500), var(--da-sky-600));
	border-color: transparent;
	color: #fff;
}

/* 11. Comments ----------------------------------------------------------- */
.da-comments { margin-top: clamp(46px, 5vw, 72px); padding-top: clamp(30px, 3vw, 44px); border-top: 1px solid var(--da-line); }
.da-comments .comment-list { list-style: none; margin: 0 0 2.5em; padding: 0; }
.da-comments .comment-list li { margin-bottom: 1.4em; }
.da-comments .comment-body {
	background: var(--da-surface-alt);
	border: 1px solid var(--da-line-soft);
	border-radius: var(--da-radius);
	padding: 20px 22px;
}
.da-comments .comment-author { font-weight: 650; color: var(--da-ink); }
.da-comments .comment-author img { border-radius: 50%; margin-right: .7em; float: left; }
.da-comments .comment-metadata { font-size: .82rem; color: var(--da-muted); margin-bottom: .8em; }
.da-comments .comment-metadata a { color: var(--da-muted); text-decoration: none; }
.da-comments .children { list-style: none; margin-top: 1.2em; padding-left: clamp(16px, 3vw, 40px); }
.da-comments .reply a {
	font-size: .85rem;
	font-weight: 650;
	text-decoration: none;
}
.comment-form p { margin-bottom: 1.1em; }
.comment-respond .comment-reply-title { font-size: 1.35rem; }

/* 12. Footer ------------------------------------------------------------- */
.da-footer {
	background: linear-gradient(170deg, var(--da-navy-900) 0%, var(--da-navy-800) 60%, var(--da-navy-700) 100%);
	color: rgba(206, 223, 241, .78);
	padding-top: clamp(48px, 6vw, 78px);
	position: relative;
	overflow: hidden;
	margin-top: auto;
}
.da-footer::before {
	content: "";
	position: absolute;
	left: 50%; top: -180px;
	transform: translateX(-50%);
	width: 760px; height: 360px;
	background: radial-gradient(ellipse, rgba(47, 154, 224, .16) 0%, transparent 66%);
	pointer-events: none;
}
.da-footer > * { position: relative; z-index: 1; }

.da-footer__grid {
	display: grid;
	gap: clamp(28px, 4vw, 48px);
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	padding-bottom: clamp(34px, 4vw, 52px);
}
.da-footer__brand { max-width: 320px; }
.da-footer__brand .da-brand__name { color: #fff; }
.da-footer__brand .da-brand__tag { color: rgba(180, 205, 230, .72); }
.da-footer__about { margin-top: 1.1em; font-size: .93rem; line-height: 1.65; }

.da-footer h3 {
	color: #fff;
	font-size: .8rem;
	letter-spacing: .13em;
	text-transform: uppercase;
	margin-bottom: 1.1em;
	font-family: var(--da-font-sans);
	font-weight: 700;
}
.da-footer ul { list-style: none; margin: 0; padding: 0; }
.da-footer li { margin-bottom: .62em; }
.da-footer a {
	color: rgba(206, 223, 241, .82);
	text-decoration: none;
	font-size: .94rem;
	transition: color .2s var(--da-ease), padding-left .2s var(--da-ease);
}
.da-footer a:hover { color: #fff; padding-left: 4px; }

.da-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, .1);
	padding-block: 22px 26px;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
	font-size: .87rem;
	color: rgba(178, 200, 224, .7);
}
.da-footer__bottom a { font-size: .87rem; }

/* Back to top */
.da-totop {
	position: fixed;
	right: 22px; bottom: 22px;
	width: 46px; height: 46px;
	border: 0;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--da-sky-500), var(--da-sky-600));
	color: #fff;
	display: grid;
	place-items: center;
	cursor: pointer;
	box-shadow: 0 10px 24px rgba(20, 49, 84, .32);
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .3s var(--da-ease), transform .3s var(--da-ease), visibility .3s;
	z-index: 190;
}
.da-totop.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.da-totop:hover { transform: translateY(-3px); }
.da-totop svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }

/* Page layout scaffolding */
.da-site { display: flex; flex-direction: column; min-height: 100vh; }
.da-site-main { flex: 1; }

/* 13. Motion & reveal ---------------------------------------------------- */
/* Reveal animations are OPT-IN via the .da-js class, which an inline script in
   <head> adds only when JavaScript is running. Without JS — or if the script
   fails, or IntersectionObserver never fires inside a preview iframe — content
   stays fully visible. Content must never depend on JS to be readable. */
.da-js .da-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .75s var(--da-ease), transform .75s var(--da-ease);
	will-change: opacity, transform;
}
.da-js .da-reveal.is-visible { opacity: 1; transform: none; }
.da-reveal[data-delay="1"] { transition-delay: .09s; }
.da-reveal[data-delay="2"] { transition-delay: .18s; }
.da-reveal[data-delay="3"] { transition-delay: .27s; }
.da-reveal[data-delay="4"] { transition-delay: .36s; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
	.da-js .da-reveal { opacity: 1; transform: none; }
	.da-hero__media { transform: none !important; }
}

/* Safety net: if the observer has not run shortly after load (preview iframe,
   script error, offscreen render), reveal everything anyway. */
.da-reveal-failsafe .da-reveal { opacity: 1 !important; transform: none !important; }

/* 14. Responsive --------------------------------------------------------- */
/* The horizontal nav needs the room more than the tagline does, so the tagline
   only appears once the nav has collapsed to the burger. */
.da-brand__tag { display: none; }

/* The burger takes over at 860px, not 1180px. Between those widths the overflow
   menu keeps shedding items one at a time until only the first two menu items
   and "More" remain, so the horizontal nav degrades the whole way down instead
   of vanishing while it still had room to work with. */
@media (max-width: 780px) {
	.da-brand__tag { display: block; }
	.da-nav { display: none; }
	.da-burger { display: grid; }
}

@media (max-width: 1180px) {
	.da-header__inner { gap: 12px; }
}

@media (max-width: 782px) {
	:root { --da-header-h: 66px; }
	body.admin-bar .da-header { top: 46px; }
}

@media (max-width: 640px) {
	body { font-size: 1rem; }
	.alignleft, .alignright { float: none; margin-inline: 0; max-width: 100%; }
	.da-hero { min-height: 78vh; }
	.da-btn { width: 100%; }
	.da-btn-row { flex-direction: column; align-items: stretch; }
	.da-hero .da-btn-row { align-items: stretch; }
	.da-footer__bottom { flex-direction: column; text-align: center; }
	.da-postnav .next { text-align: left; }
	th, td { padding: .7em .8em; }
}

/* Admin bar offset */
body.admin-bar .da-header { top: 32px; }
body.admin-bar .da-mobile-nav { top: 32px; }
@media (max-width: 782px) {
	body.admin-bar .da-mobile-nav { top: 46px; }
}

/* Print */
@media print {
	.da-header, .da-mobile-nav, .da-overlay, .da-totop, .da-footer,
	.da-hero__cue, .da-postnav, .da-crumbs { display: none !important; }
	body { color: #000; font-size: 11pt; }
	.da-page-hero { background: none !important; color: #000; padding-block: 0 1em; }
	.da-page-hero h1 { color: #000; }
	a { color: #000; text-decoration: underline; }
	.da-content { font-size: 11pt; }
}

/* ==========================================================================
   15. Glossary browser (search + A–Z + category filtering)
   ========================================================================== */
.da-glossary { margin-top: 1.5em; }

.da-glossary__controls {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
	margin-bottom: 20px;
}

.da-glossary__searchwrap {
	position: relative;
	flex: 1 1 320px;
	min-width: 0;
}
.da-glossary__searchicon {
	position: absolute;
	left: 15px; top: 50%;
	transform: translateY(-50%);
	width: 19px; height: 19px;
	color: var(--da-muted);
	pointer-events: none;
}
/* input[type="search"] has higher specificity than a bare class, so this
   selector must include the element to win the padding. */
input.da-glossary__search {
	width: 100%;
	padding: .92em 2.6em .92em 3.1em;
	border: 1px solid var(--da-line);
	border-radius: 999px;
	font-size: 1.02rem;
	background: #fff;
	box-shadow: var(--da-shadow-sm);
	transition: border-color .2s var(--da-ease), box-shadow .2s var(--da-ease);
}
input.da-glossary__search:focus {
	outline: none;
	border-color: var(--da-sky-500);
	box-shadow: 0 0 0 4px rgba(47, 154, 224, .15);
}
.da-glossary__clear {
	position: absolute;
	right: 12px; top: 50%;
	transform: translateY(-50%);
	width: 28px; height: 28px;
	border: 0;
	border-radius: 50%;
	background: var(--da-line-soft);
	color: var(--da-body);
	font-size: 1.15rem;
	line-height: 1;
	cursor: pointer;
	display: grid;
	place-items: center;
	transition: background-color .2s var(--da-ease);
}
.da-glossary__clear:hover { background: var(--da-sky-100); color: var(--da-navy-700); }

.da-glossary__count {
	font-size: .93rem;
	color: var(--da-muted);
	white-space: nowrap;
}
.da-glossary__count strong { color: var(--da-navy-700); }

.da-glossary__filters {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 26px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--da-line-soft);
}

.da-glossary__az {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}
.da-az {
	min-width: 34px;
	height: 34px;
	padding: 0 .5em;
	border: 1px solid var(--da-line);
	border-radius: 8px;
	background: #fff;
	color: var(--da-navy-700);
	font-family: inherit;
	font-size: .85rem;
	font-weight: 650;
	cursor: pointer;
	transition: all .18s var(--da-ease);
}
.da-az:hover:not(:disabled) {
	border-color: var(--da-sky-400);
	color: var(--da-sky-600);
	transform: translateY(-1px);
}
.da-az.is-active {
	background: linear-gradient(135deg, var(--da-sky-500), var(--da-sky-600));
	border-color: transparent;
	color: #fff;
	box-shadow: 0 5px 12px rgba(27, 127, 196, .3);
}
.da-az.is-empty, .da-az:disabled {
	opacity: .32;
	cursor: default;
	background: var(--da-surface-alt);
}

.da-glossary__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
	gap: 14px;
}

.da-term {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .3em;
	padding: 16px 18px;
	background: #fff;
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius);
	text-decoration: none !important;
	box-shadow: var(--da-shadow-sm);
	transition: transform .22s var(--da-ease), box-shadow .22s var(--da-ease),
	            border-color .22s var(--da-ease);
}
/* The card is a <div> and the term name carries the link (see
   da_render_term_card on why the card itself must not be an <a>), so the
   link is stretched back over the whole card to keep it all clickable. */
a.da-term__name::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}
a.da-term__name {
	text-decoration: none;
	color: inherit;
}
a.da-term__name:focus-visible {
	outline: none;
}
.da-term:focus-within {
	border-color: var(--da-sky-300);
	box-shadow: 0 0 0 3px rgba(56, 154, 214, .28);
}
.da-term:hover {
	transform: translateY(-3px);
	border-color: var(--da-sky-300);
	box-shadow: var(--da-shadow);
}
.da-term[hidden] { display: none; }

.da-term__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: .4em .6em;
}
.da-term__name {
	/* Long unhyphenated codes (R09L/1800FT, RNAV(GPS) PRM) must break rather
	   than push the category pill past the edge of the card. */
	min-width: 0;
	overflow-wrap: anywhere;
	font-family: var(--da-font-display);
	font-weight: 700;
	font-size: 1.04rem;
	color: var(--da-ink);
	letter-spacing: -.01em;
	line-height: 1.25;
}
.da-term:hover .da-term__name { color: var(--da-sky-600); }
.da-term__cat {
	flex-shrink: 0;
	font-size: .64rem;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--da-sky-600);
	background: var(--da-sky-50);
	padding: .25em .6em;
	border-radius: 999px;
	white-space: nowrap;
}
.da-term__abbr {
	font-size: .89rem;
	font-weight: 600;
	color: var(--da-navy-600);
}
.da-term__excerpt {
	min-width: 0;
	overflow-wrap: anywhere;
	font-size: .86rem;
	color: var(--da-muted);
	line-height: 1.5;
}

.da-glossary__empty {
	padding: 2.4em 1em;
	text-align: center;
	color: var(--da-muted);
	background: var(--da-surface-alt);
	border-radius: var(--da-radius);
	margin-bottom: 1.5em;
}

/* Highlighted match inside results */
.da-term mark {
	background: rgba(245, 165, 36, .28);
	color: inherit;
	border-radius: 3px;
	padding: 0 .1em;
}

/* --- Single glossary term page ------------------------------------------ */
.da-term-expansion {
	font-size: 1.22rem;
	font-weight: 650;
	color: var(--da-navy-600);
	margin-bottom: 1em;
	font-family: var(--da-font-display);
	letter-spacing: -.01em;
}
.da-term-note {
	font-size: .92rem;
	color: var(--da-body);
	background: var(--da-sky-50);
	border-left: 3px solid var(--da-sky-400);
	padding: .85em 1.1em;
	border-radius: 0 var(--da-radius-sm) var(--da-radius-sm) 0;
	margin-top: 1.2em;
}
.da-term-source {
	margin-top: 2em;
	padding-top: 1.1em;
	border-top: 1px solid var(--da-line);
	font-size: .86rem;
	color: var(--da-muted);
	display: flex;
	flex-wrap: wrap;
	gap: .5em;
	align-items: baseline;
}
.da-term-source__label {
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--da-sky-600);
}
.da-term-source__sep { opacity: .45; }

.da-glossary-back {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	font-size: .9rem;
	font-weight: 650;
	text-decoration: none;
	margin-bottom: 1.6em;
}
.da-glossary-back svg { width: 15px; height: 15px; }

/* Related terms on a single term page */
.da-related { margin-top: clamp(36px, 4vw, 56px); }
.da-related h2 { font-size: 1.3rem; }

@media (max-width: 640px) {
	.da-glossary__grid { grid-template-columns: 1fr; }
	.da-glossary__count { width: 100%; }
}

/* ==========================================================================
   16. Universal search — results page + header instant dropdown
   ========================================================================== */
.da-search-again { max-width: 560px; margin-bottom: clamp(26px, 3vw, 40px); }

.da-results { display: grid; gap: 12px; }

.da-result {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	padding: 18px 20px;
	background: #fff;
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius);
	text-decoration: none !important;
	box-shadow: var(--da-shadow-sm);
	transition: transform .22s var(--da-ease), box-shadow .22s var(--da-ease),
	            border-color .22s var(--da-ease);
}
.da-result:hover {
	transform: translateY(-2px);
	border-color: var(--da-sky-300);
	box-shadow: var(--da-shadow);
}
.da-result--term { border-left: 4px solid var(--da-sky-500); }

.da-result__badge {
	flex-shrink: 0;
	font-size: .64rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--da-muted);
	background: var(--da-surface-alt);
	border: 1px solid var(--da-line-soft);
	padding: .34em .7em;
	border-radius: 999px;
	white-space: nowrap;
	margin-top: .15em;
}
.da-result__badge--term {
	color: #fff;
	background: linear-gradient(135deg, var(--da-sky-500), var(--da-sky-600));
	border-color: transparent;
}

.da-result__body { display: flex; flex-direction: column; gap: .28em; min-width: 0; }
.da-result__title {
	font-family: var(--da-font-display);
	font-weight: 700;
	font-size: 1.1rem;
	color: var(--da-ink);
	line-height: 1.28;
}
.da-result:hover .da-result__title { color: var(--da-sky-600); }
.da-result__abbr { font-size: .93rem; font-weight: 600; color: var(--da-navy-600); }
.da-result__excerpt { font-size: .92rem; color: var(--da-body); line-height: 1.55; }
.da-result__meta {
	font-size: .76rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--da-sky-600);
	font-weight: 650;
	margin-top: .3em;
}

.da-noresults {
	padding: clamp(32px, 5vw, 56px);
	text-align: center;
	background: var(--da-surface-alt);
	border-radius: var(--da-radius-lg);
}
.da-noresults h2 { padding: 0; border: 0; }
.da-noresults h2::after { display: none; }

/* Header instant dropdown */
.da-instant {
	display: none;
	margin-top: 12px;
	max-height: min(66vh, 520px);
	overflow-y: auto;
	overscroll-behavior: contain;
	border-top: 1px solid var(--da-line-soft);
	padding-top: 10px;
}
.da-instant.is-open { display: block; }

.da-instant__group + .da-instant__group { margin-top: 12px; }
.da-instant__label {
	display: block;
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--da-sky-600);
	margin: 4px 0 6px 4px;
}

.da-instant a {
	display: block;
	padding: 10px 12px;
	border-radius: var(--da-radius-sm);
	text-decoration: none !important;
	color: inherit;
	transition: background-color .16s var(--da-ease);
}
.da-instant a:hover,
.da-instant a:focus-visible { background: var(--da-sky-50); }
/* `[hidden]` gets its display:none from the browser's own stylesheet, which
   any author rule outranks -- and ".da-instant a" is an author rule. Without
   this, hiding a row to make the dropdown fit did nothing at all: the element
   was marked hidden and kept its full height. Same trap as the .da-instant__page
   layout bug below, one level down. */
.da-instant [hidden] { display: none !important; }

.da-instant__termhead {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: .6em;
}
.da-instant__name {
	font-family: var(--da-font-display);
	font-weight: 700;
	font-size: .98rem;
	color: var(--da-ink);
	line-height: 1.3;
}
.da-instant__cat {
	flex-shrink: 0;
	font-size: .6rem;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--da-sky-600);
	background: var(--da-sky-50);
	padding: .22em .55em;
	border-radius: 999px;
	white-space: nowrap;
}
.da-instant__abbr {
	display: block;
	font-size: .85rem;
	font-weight: 600;
	color: var(--da-navy-600);
	margin-top: .12em;
}
.da-instant__excerpt {
	display: block;
	font-size: .82rem;
	color: var(--da-muted);
	line-height: 1.5;
	margin-top: .22em;
}
/* Needs the extra class to outrank ".da-instant a { display: block }" above --
   a class plus a type selector beats a lone class, so the flex row never
   applied and the title ran straight into the badge. */
.da-instant .da-instant__page { display: flex; align-items: baseline; justify-content: space-between; gap: .9em; }
/* Long lesson titles have to give way, or they run straight into the badge. */
.da-instant__page .da-instant__name {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.da-instant__type {
	flex-shrink: 0;
	font-size: .68rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--da-muted);
	font-weight: 650;
}
.da-instant mark { background: rgba(245, 165, 36, .3); color: inherit; border-radius: 3px; padding: 0 .12em; }

.da-instant__loading,
.da-instant__none {
	padding: 14px 12px;
	font-size: .9rem;
	color: var(--da-muted);
	text-align: center;
}
.da-instant__all {
	display: block !important;
	margin-top: 8px;
	text-align: center;
	font-size: .86rem;
	font-weight: 650;
	color: var(--da-sky-600) !important;
	border-top: 1px solid var(--da-line-soft);
	border-radius: 0 0 var(--da-radius-sm) var(--da-radius-sm) !important;
	padding-top: 12px !important;
}

/* Three densities for the definition results.
 *
 * The dropdown always tries the full card first, because a definition is
 * meant to be read and the answer is often right there without clicking.
 * When that many cards would not fit the space below the header, it steps
 * down to a compact card, and then to one line per hit. The switch is made
 * by measuring the rendered height against the room actually available, not
 * by counting results -- the same three hits fit on a desktop and do not on
 * a phone in landscape.
 *
 *   --cards   full card: name, category, expansion, three lines of definition
 *   --medium  compact card: name, category, expansion, one line of definition
 *   --list    one row: name, expansion (or a slice of the definition), category
 */
.da-instant--cards .da-instant__term {
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius);
	background: #fff;
	box-shadow: var(--da-shadow-sm);
	padding: 14px 16px;
	transition: border-color .18s var(--da-ease), box-shadow .18s var(--da-ease),
	            transform .18s var(--da-ease);
}
.da-instant--cards .da-instant__term + .da-instant__term { margin-top: 10px; }
.da-instant--cards .da-instant__term:hover,
.da-instant--cards .da-instant__term:focus-visible {
	background: #fff;
	border-color: var(--da-sky-300);
	box-shadow: var(--da-shadow);
	transform: translateY(-2px);
}
.da-instant--cards .da-instant__excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
/* Match the definitions page: the card name is the display face, and it has
   to be able to break, or a code like RNAV(GPS) PRM pushes the category pill
   past the edge. */
.da-instant--cards .da-instant__name {
	font-size: 1.04rem;
	letter-spacing: -.01em;
	min-width: 0;
	overflow-wrap: anywhere;
}
.da-instant--cards .da-instant__term:hover .da-instant__name { color: var(--da-sky-600); }
.da-instant--cards .da-instant__termhead { flex-wrap: wrap; gap: .3em .6em; }
.da-instant--cards .da-instant__abbr { font-size: .89rem; }

/* Medium: the same card, minus the room the definition was taking. Still a
   card -- bordered and clickable as a block -- but the definition is cut to
   its first line, which is usually enough to tell two similar codes apart. */
.da-instant--medium .da-instant__term {
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius-sm);
	background: #fff;
	padding: 9px 12px;
	transition: border-color .16s var(--da-ease), background-color .16s var(--da-ease);
}
.da-instant--medium .da-instant__term + .da-instant__term { margin-top: 6px; }
.da-instant--medium .da-instant__term:hover,
.da-instant--medium .da-instant__term:focus-visible {
	background: #fff;
	border-color: var(--da-sky-300);
}
.da-instant--medium .da-instant__name { font-size: .94rem; }
.da-instant--medium .da-instant__abbr {
	font-size: .8rem;
	font-weight: 550;
	color: var(--da-muted);
	margin-top: .05em;
}
.da-instant--medium .da-instant__excerpt {
	display: -webkit-box;
	-webkit-line-clamp: 1;
	line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: .78rem;
	margin-top: .1em;
}

/* One row per hit: name, then its expansion, then the category pinned right.
   The expansion column is the one allowed to shrink and ellipsize. */
/* Flex, not grid. Grid needs each item pinned to an explicit row as well as a
   column, or auto-placement pushes the expansion onto a line of its own once
   the category has claimed a later column. Flex ordering has no such trap, and
   it lets the name and the expansion share the leftover width instead of the
   name taking its full width and starving the expansion to a sliver. */
.da-instant--list .da-instant__term {
	display: flex;
	align-items: baseline;
	gap: .7em;
	padding: 8px 12px;
}
.da-instant--list .da-instant__termhead { display: contents; }
/* The name is the thing being scanned for, so it keeps its natural width and
   the second column takes what is left. flex-basis:0 on that second column is
   what makes this work: with basis:auto its (long, nowrap) text counts as its
   base size, flex distributes the shrinking in proportion to base size, and
   the name gets crushed to "W…" beside a nearly-full-width excerpt. */
.da-instant--list .da-instant__term .da-instant__name {
	order: 1;
	flex: 0 1 auto;
	min-width: 0;
	max-width: 62%;
	font-size: .92rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.da-instant--list .da-instant__term .da-instant__abbr {
	order: 2;
	flex: 1 1 0;
	min-width: 0;
	font-size: .8rem;
	font-weight: 550;
	color: var(--da-muted);
	margin-top: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.da-instant--list .da-instant__term .da-instant__cat {
	order: 3;
	flex: 0 0 auto;
	margin-left: auto;
}
/* In list mode the row is the term plus whatever else survives on one line.
   Normally that is the expansion. When a term has none -- most PCG entries
   spell themselves out -- the row would otherwise be a name and a lot of
   white space, so the opening words of the definition take that space
   instead, clipped where the category pill begins. */
.da-instant--list .da-instant__term .da-instant__excerpt { display: none; }
.da-instant--list .da-instant__term--noabbr .da-instant__excerpt {
	display: block;
	order: 2;
	flex: 1 1 0;
	min-width: 0;
	font-size: .78rem;
	margin-top: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
/* Below roughly a phone's width there is no room for a second column at all;
   the name alone has to be the row. */
@media (max-width: 460px) {
	.da-instant--list .da-instant__term .da-instant__abbr,
	.da-instant--list .da-instant__term--noabbr .da-instant__excerpt { display: none; }
}

/* Widen the header search popover so definition cards breathe */
.da-search-pop { width: min(520px, calc(100vw - 36px)); }

/* ==========================================================================
   17. Resource tables — styled to match the glossary
   ========================================================================== */
.da-content .da-table-scroll { box-shadow: var(--da-shadow-sm); }

/* Link-heavy reference tables (Resources page) */
.da-content table a {
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid rgba(47, 154, 224, .3);
}
.da-content table a:hover { border-bottom-color: currentColor; }

/* Give resource rows a card-like feel on hover */
.da-content tbody tr { transition: background-color .18s var(--da-ease); }

/* Turn a two-column link table into cards on narrow screens */
@media (max-width: 720px) {
	.da-table-cards > table,
	.da-table-cards > table tbody,
	.da-table-cards > table tr,
	.da-table-cards > table td { display: block; width: 100%; }
	.da-table-cards > table thead { display: none; }
	.da-table-cards > table { min-width: 0; }
	.da-table-cards > table tr {
		margin-bottom: 12px;
		border: 1px solid var(--da-line);
		border-radius: var(--da-radius);
		padding: 12px 14px;
		background: #fff;
	}
	.da-table-cards > table tr:nth-child(even) { background: #fff; }
	.da-table-cards > table td { border: 0; padding: .35em 0; }
	.da-table-cards > table td:first-child {
		font-family: var(--da-font-display);
		font-weight: 700;
		color: var(--da-ink);
		font-size: 1.02rem;
	}
}

/* Resource group heading + intro, matching glossary rhythm */
.da-resource-group { margin-top: clamp(30px, 3.5vw, 48px); }
.da-resource-group:first-child { margin-top: 0; }

/* ==========================================================================
   18. TablePress — Resources page, styled to match the glossary
   ========================================================================== */
.da-content .tablepress {
	width: 100%;
	margin: 2em 0;
	border-collapse: separate;
	border-spacing: 0 10px;
	background: none;
	font-size: 1rem;
}

/* Header row: same navy treatment as content tables */
.da-content .tablepress thead th {
	background: linear-gradient(160deg, var(--da-navy-700), var(--da-navy-600));
	color: #fff;
	font-family: var(--da-font-display);
	font-weight: 650;
	font-size: .74rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: .85em 1.2em;
	border: 0;
	text-align: left;
}
.da-content .tablepress thead th:first-child { border-radius: var(--da-radius-sm) 0 0 var(--da-radius-sm); }
.da-content .tablepress thead th:last-child  { border-radius: 0 var(--da-radius-sm) var(--da-radius-sm) 0; }

/* Each row reads as a card */
.da-content .tablepress tbody td {
	background: #fff;
	border: 1px solid var(--da-line);
	border-left-width: 0;
	border-right-width: 0;
	padding: 1.05em 1.2em;
	vertical-align: top;
	transition: background-color .2s var(--da-ease), border-color .2s var(--da-ease);
}
.da-content .tablepress tbody td:first-child {
	border-left-width: 1px;
	border-radius: var(--da-radius) 0 0 var(--da-radius);
	border-left: 4px solid var(--da-sky-400);
	width: 38%;
}
.da-content .tablepress tbody td:last-child {
	border-right-width: 1px;
	border-radius: 0 var(--da-radius) var(--da-radius) 0;
	color: var(--da-body);
	font-size: .95rem;
}

/* TablePress striping off — cards instead */
.da-content .tablepress tbody tr.odd td,
.da-content .tablepress tbody tr.even td { background: #fff; }

.da-content .tablepress tbody tr:hover td {
	background: var(--da-sky-50);
	border-color: var(--da-sky-300);
}
.da-content .tablepress tbody tr:hover td:first-child { border-left-color: var(--da-sky-600); }

/* The link column is the headline of each card */
.da-content .tablepress tbody td:first-child a {
	font-family: var(--da-font-display);
	font-weight: 700;
	font-size: 1.04rem;
	line-height: 1.3;
	color: var(--da-ink);
	text-decoration: none;
	border: 0;
	display: inline-flex;
	align-items: baseline;
	gap: .4em;
}
.da-content .tablepress tbody td:first-child a:hover { color: var(--da-sky-600); }

/* External-link arrow */
.da-content .tablepress tbody td:first-child a[href^="http"]::after {
	content: "↗";
	font-size: .8em;
	opacity: .5;
	transition: transform .22s var(--da-ease), opacity .22s var(--da-ease);
}
.da-content .tablepress tbody tr:hover td:first-child a[href^="http"]::after {
	opacity: 1;
	transform: translate(2px, -2px);
}

/* TablePress search / length controls, if enabled */
.da-content .dataTables_wrapper .dataTables_filter input {
	padding: .6em 1em;
	border: 1px solid var(--da-line);
	border-radius: 999px;
	margin-left: .6em;
}
.da-content .dataTables_wrapper .dataTables_filter input:focus {
	outline: none;
	border-color: var(--da-sky-500);
	box-shadow: 0 0 0 3px rgba(47, 154, 224, .15);
}

/* Stack into true cards on small screens */
@media (max-width: 720px) {
	.da-content .tablepress,
	.da-content .tablepress tbody,
	.da-content .tablepress tbody tr,
	.da-content .tablepress tbody td { display: block; width: 100%; }
	.da-content .tablepress thead { display: none; }
	.da-content .tablepress { border-spacing: 0; }

	.da-content .tablepress tbody tr {
		margin-bottom: 12px;
		border-radius: var(--da-radius);
		overflow: hidden;
		box-shadow: var(--da-shadow-sm);
	}
	.da-content .tablepress tbody td {
		border-width: 0 1px;
		border-radius: 0;
		width: auto !important;
		padding: .8em 1.1em;
	}
	.da-content .tablepress tbody td:first-child {
		border-top: 1px solid var(--da-line);
		border-left: 4px solid var(--da-sky-400);
		border-radius: var(--da-radius) var(--da-radius) 0 0;
		padding-bottom: .3em;
	}
	.da-content .tablepress tbody td:last-child {
		border-bottom: 1px solid var(--da-line);
		border-left: 4px solid var(--da-sky-400);
		border-radius: 0 0 var(--da-radius) var(--da-radius);
		padding-top: .2em;
	}
}


/* Categories: collapsed dropdown with multi-select ----------------------- */
.da-glossary__catwrap { position: relative; align-self: flex-start; }

.da-catbtn {
	display: inline-flex;
	align-items: center;
	gap: .55em;
	padding: .55em 1em;
	border: 1px solid var(--da-line);
	border-radius: 999px;
	background: #fff;
	color: var(--da-navy-700);
	font-family: inherit;
	font-size: .9rem;
	font-weight: 600;
	cursor: pointer;
	transition: all .18s var(--da-ease);
}
.da-catbtn:hover { border-color: var(--da-sky-400); color: var(--da-sky-600); }
.da-catbtn svg { width: 16px; height: 16px; flex-shrink: 0; }
.da-catbtn.has-selection {
	background: var(--da-navy-700);
	border-color: var(--da-navy-700);
	color: #fff;
}
.da-catbtn__count {
	min-width: 20px;
	height: 20px;
	padding: 0 .4em;
	border-radius: 999px;
	background: var(--da-sky-500);
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
	display: grid;
	place-items: center;
}
.da-catbtn__caret {
	width: 7px; height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	opacity: .7;
	transition: transform .2s var(--da-ease);
}
.da-catbtn[aria-expanded="true"] .da-catbtn__caret { transform: rotate(225deg) translateY(2px); }

.da-catpanel {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	z-index: 40;
	width: min(360px, calc(100vw - 40px));
	background: #fff;
	border: 1px solid var(--da-line);
	border-radius: var(--da-radius);
	box-shadow: var(--da-shadow-lg);
	padding: 10px;
}
.da-catpanel[hidden] { display: none; }

.da-catpanel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	padding: 4px 8px 10px;
	margin-bottom: 6px;
	border-bottom: 1px solid var(--da-line-soft);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--da-sky-600);
}
.da-catpanel__clear {
	border: 0;
	background: none;
	color: var(--da-muted);
	font-family: inherit;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
	padding: 0;
}
.da-catpanel__clear:hover { color: var(--da-sky-600); text-decoration: underline; }

.da-catpanel__list {
	max-height: min(46vh, 340px);
	overflow-y: auto;
	overscroll-behavior: contain;
	display: grid;
	gap: 2px;
}

.da-catopt {
	display: flex;
	align-items: center;
	gap: .65em;
	padding: .5em .6em;
	border-radius: var(--da-radius-sm);
	cursor: pointer;
	font-size: .9rem;
	font-weight: 500;
	color: var(--da-body);
	margin: 0;
	transition: background-color .15s var(--da-ease);
}
.da-catopt:hover { background: var(--da-sky-50); }
.da-catopt input {
	width: 17px;
	height: 17px;
	margin: 0;
	flex-shrink: 0;
	accent-color: var(--da-sky-600);
	cursor: pointer;
}
.da-catopt__name { flex: 1; min-width: 0; }
.da-catopt__n {
	font-size: .72rem;
	font-weight: 700;
	color: var(--da-muted);
	background: var(--da-line-soft);
	padding: .12em .5em;
	border-radius: 999px;
	flex-shrink: 0;
}
.da-catopt input:checked ~ .da-catopt__name { color: var(--da-navy-700); font-weight: 650; }

/* --- 18. Resource link cards -------------------------------------------
   Link tables (Resources page) render as the same card grid as the glossary
   browser, with an action row so a card reads as something to click. */
.da-resource-grid { margin: clamp(22px, 2.6vw, 34px) 0; }

.da-resource {
	position: relative;
	gap: .45em;
	padding: 18px 20px 15px;
}
.da-resource .da-term__name { font-size: 1.02rem; }
.da-resource .da-term__cat {
	font-family: var(--da-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
	text-transform: none;
	letter-spacing: 0;
	font-size: .66rem;
	font-weight: 600;
}
.da-resource .da-term__excerpt { flex: 1 1 auto; }

.da-resource__go {
	display: inline-flex;
	align-items: center;
	gap: .35em;
	margin-top: .55em;
	padding-top: .7em;
	border-top: 1px solid var(--da-line);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--da-sky-600);
}
.da-resource__go svg {
	width: 14px;
	height: 14px;
	transition: transform .22s var(--da-ease);
}
.da-resource:hover .da-resource__go svg { transform: translateX(3px); }

/* --- 18b. Glossary paging + full A-Z index -------------------------------
   The browser renders one batch of cards and pulls the rest from a cached
   JSON index on demand, so it needs a "show more" control; and because the
   page no longer prints every card, the collapsed A-Z list below keeps all
   1,300+ definitions one crawlable click away. */
.da-glossary__more {
	margin-top: 26px;
	text-align: center;
}
.da-glossary__morebtn {
	appearance: none;
	cursor: pointer;
	padding: 12px 26px;
	font: inherit;
	font-weight: 650;
	color: var(--da-sky-700);
	background: var(--da-surface-alt);
	border: 1px solid var(--da-line);
	border-radius: 999px;
	transition: background .2s var(--da-ease), border-color .2s var(--da-ease),
	            transform .2s var(--da-ease);
}
.da-glossary__morebtn:hover {
	background: #fff;
	border-color: var(--da-sky-300);
	transform: translateY(-1px);
}
.da-glossary__morebtn[hidden] { display: none; }
.da-glossary__loading {
	margin: 12px 0 0;
	font-size: .88rem;
	color: var(--da-muted);
}
.da-glossary__loading[hidden] { display: none; }

.da-glossary__all {
	margin-top: 40px;
	padding-top: 22px;
	border-top: 1px solid var(--da-line);
}
.da-glossary__all > summary {
	cursor: pointer;
	font-weight: 650;
	color: var(--da-sky-700);
	list-style: none;
}
.da-glossary__all > summary::-webkit-details-marker { display: none; }
.da-glossary__all > summary::before {
	content: "\25B8";
	display: inline-block;
	margin-right: .5em;
	transition: transform .2s var(--da-ease);
}
.da-glossary__all[open] > summary::before { transform: rotate(90deg); }
.da-glossary__alllist {
	margin-top: 18px;
	columns: 4 190px;
	column-gap: 26px;
}
.da-glossary__alllist section {
	break-inside: avoid;
	margin-bottom: 14px;
}
.da-glossary__alllist h3 {
	margin: 0 0 .3em;
	font-size: .8rem;
	letter-spacing: .1em;
	color: var(--da-muted);
}
.da-glossary__alllist ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.da-glossary__alllist li { margin: 0 0 .12em; }
.da-glossary__alllist a {
	font-size: .88rem;
	text-decoration: none;
	color: var(--da-ink);
}
.da-glossary__alllist a:hover {
	color: var(--da-sky-600);
	text-decoration: underline;
}

/* --- 19. Large-glossary rendering budget ---------------------------------
   The definitions browser renders every term so search and category filters
   work instantly and the page still reads with JavaScript off. At 1,300+
   cards that is a lot of layout work, so offscreen cards are skipped until
   they scroll near the viewport. contain-intrinsic-size keeps the scrollbar
   honest while they are skipped. */
.da-glossary__grid .da-term {
	content-visibility: auto;
	contain-intrinsic-size: auto 118px;
}

/* --- 20. Ported from twentythirteen-child ------------------------------
 * These classes are written into page content and into the lesson-plan
 * template, so they travel with the pages and have to keep working after the
 * theme switch. Verified in use on the live site: .tab2 x22, .lessonPlanHeading
 * x9 in content plus 5-7 per page from ACF, .tab1 x4, .tab3 x2, .galleria x9,
 * #contact-content x1. (.donations was defined there but used nowhere, so it is
 * not carried over.)
 *
 * The original floated the heading left and pushed the paragraph over with a
 * fixed 7em/12em padding, which collapses on a phone. Same reading order here,
 * done with grid so it reflows instead. */
.da-content .da-lesson-fields {
	display: grid;
	grid-template-columns: minmax(7.5em, max-content) minmax(0, 1fr);
	gap: .35em 1.4em;
	align-items: baseline;
	margin-bottom: 1.9em;
}
.da-content .lessonPlanHeading,
.da-content .lessonPlanHeadingLong {
	grid-column: 1;
	float: none;
	font-weight: 700;
	color: var(--da-navy-700);
	font-family: var(--da-font-display);
	letter-spacing: -.005em;
}
.da-content .lessonPlanBody { grid-column: 2; min-width: 0; }
.da-content .lessonPlanBody > :first-child { margin-top: 0; }
.da-content .lessonPlanBody > :last-child  { margin-bottom: 0; }

/* Headings hand-written into post content sit outside .da-lesson-fields and
   have a plain <p> after them rather than a wrapper. */
.da-content .lessonPlanHeading + p,
.da-content .lessonPlanHeadingLong + p { margin-top: .2em; }

@media (max-width: 620px) {
	.da-content .da-lesson-fields { grid-template-columns: minmax(0, 1fr); gap: .1em; }
	.da-content .lessonPlanHeading,
	.da-content .lessonPlanHeadingLong { grid-column: 1; margin-top: .9em; }
	.da-content .lessonPlanBody { grid-column: 1; }
}

/* Indent helpers used throughout the lesson plans. */
.da-content .tab1 { padding-left: 1.5em; display: block; }
.da-content .tab2 { padding-left: 3em;   display: block; }
.da-content .tab3 { padding-left: 4.5em; display: block; }

@media (max-width: 620px) {
	.da-content .tab1 { padding-left: 1em; }
	.da-content .tab2 { padding-left: 1.8em; }
	.da-content .tab3 { padding-left: 2.6em; }
}

.da-content .galleria { width: 100%; }
.da-content #contact-content { line-height: 1.9; font-size: 1rem; }
