/* ==========================================================================
   HD Showcase — shared styles for the Hoke Designs feature subsites.
   Tokens follow claude/brand-identity.md (v1.1) with Lexend as the system
   typeface. Component classes are prefixed hds-; landing pages are built
   from them in ordinary page content.
   ========================================================================== */

@font-face {
	font-family: "Lexend";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("../fonts/lexend-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Lexend";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("../fonts/lexend-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
	--hd-navy: #001b44;
	--hd-deep: #0b2b5c;
	--hd-blue: #136fa5;
	--hd-sky: #03a9f4;
	--hd-ice: #b3e0f2;
	--hd-teal: #127f86;
	--hd-aqua: #3ecfb2;
	--hd-coral: #ff6b4a;
	--hd-ember: #e14b2a;
	--hd-action: #105378;
	--hd-ink: #323643;
	--hd-slate: #5a6172;
	--hd-mist: #f4f7f9;
	--hd-line: #dfe5ea;
	--hd-white: #fff;

	--hds-font: "Lexend", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--hds-wrap: 1200px;
	--hds-gutter: clamp(16px, 4vw, 40px);
	--hds-radius: 12px;
	--hds-shadow: 0 1px 2px rgba(0, 27, 68, .06), 0 12px 32px -12px rgba(0, 27, 68, .22);
	--hds-ease: cubic-bezier(.16, 1, .3, 1);
	--hds-header: 72px;
}

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

html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--hds-header) + 16px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

body {
	margin: 0;
	background: var(--hd-white);
	color: var(--hd-slate);
	font-family: var(--hds-font);
	font-size: 18px;
	font-weight: 300;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img, svg, video { max-width: 100%; height: auto; }
a { color: var(--hd-blue); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--hd-teal); }
:focus-visible { outline: 3px solid var(--hd-sky); outline-offset: 3px; border-radius: 4px; }

h1, h2, h3, h4 {
	color: var(--hd-navy);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -.018em;
	margin: 0 0 .5em;
	text-wrap: balance;
}
h1 { font-size: clamp(2.4rem, 5.2vw, 4.3rem); line-height: 1.04; letter-spacing: -.028em; }
h2 { font-size: clamp(1.9rem, 3.4vw, 2.9rem); }
h3 { font-size: 1.3rem; line-height: 1.25; letter-spacing: -.01em; }
p { margin: 0 0 1em; text-wrap: pretty; }
strong { font-weight: 500; color: var(--hd-ink); }

.hds-skip {
	position: absolute; left: 16px; top: -60px; z-index: 100;
	background: var(--hd-navy); color: #fff; padding: 10px 16px; border-radius: 8px;
}
.hds-skip:focus { top: 12px; }

.hds-wrap { width: 100%; max-width: calc(var(--hds-wrap) + 2 * var(--hds-gutter)); margin: 0 auto; padding: 0 var(--hds-gutter); }
.hds-narrow { max-width: 62ch; }
.hds-lede { font-size: clamp(1.1rem, 1.6vw, 1.3rem); color: var(--hd-slate); }

/* ---------- Buttons ---------- */
.hds-btn {
	display: inline-flex; align-items: center; gap: .55em;
	padding: .9em 1.6em;
	border-radius: 999px;
	background: var(--hd-action);
	color: #fff;
	font: 500 15px/1.1 var(--hds-font);
	letter-spacing: .01em;
	text-decoration: none;
	border: 2px solid transparent;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s, transform .25s var(--hds-ease);
}
.hds-btn:hover { background: var(--hd-blue); color: #fff; transform: translateY(-1px); }
.hds-btn--coral { background: var(--hd-ember); }
.hds-btn--coral:hover { background: var(--hd-coral); color: var(--hd-navy); }
.hds-btn--ghost { background: transparent; color: var(--hd-action); border-color: currentColor; }
.hds-btn--ghost:hover { background: var(--hd-action); color: #fff; border-color: var(--hd-action); }
.hds-btn--light { background: #fff; color: var(--hd-navy); }
.hds-btn--light:hover { background: var(--hd-ice); color: var(--hd-navy); }
.hds-btn--sm { padding: .7em 1.2em; font-size: 14px; }
.hds-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* ---------- Header ---------- */
.hds-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	backdrop-filter: saturate(1.4) blur(12px);
	border-bottom: 1px solid rgba(0, 27, 68, .08);
}
.admin-bar .hds-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .hds-header { top: 46px; } }
.hds-header__inner {
	max-width: calc(var(--hds-wrap) + 2 * var(--hds-gutter));
	margin: 0 auto; padding: 0 var(--hds-gutter);
	height: var(--hds-header);
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.hds-brand { display: flex; align-items: center; gap: 14px; min-width: 0; }
.hds-brand__logo { display: flex; align-items: center; gap: 12px; color: var(--hd-navy); text-decoration: none; }
.hds-brand__logo .hds-mark { width: 50px; height: auto; flex: none; }
.hds-brand__logo .hds-wordmark { width: 150px; height: auto; }
.hds-brand__feature {
	padding-left: 14px; border-left: 1px solid var(--hd-line);
	color: var(--hd-teal); font-weight: 500; font-size: 16px; text-decoration: none; white-space: nowrap;
}
.hds-brand__feature:hover { color: var(--hd-blue); }

.hds-nav__toggle { display: none; }
.hds-nav__panel { display: flex; align-items: center; gap: 28px; }
.hds-nav__list { display: flex; gap: 24px; margin: 0; padding: 0; list-style: none; }
.hds-nav__list a { color: var(--hd-ink); font-weight: 400; font-size: 15px; text-decoration: none; }
.hds-nav__list a:hover, .hds-nav__list .current-menu-item > a { color: var(--hd-teal); }

@media (max-width: 960px) {
	.hds-brand__logo .hds-wordmark { display: none; }
	.hds-nav__toggle {
		display: inline-flex; align-items: center; gap: 10px; cursor: pointer;
		padding: 10px 14px; border-radius: 999px; border: 1px solid var(--hd-line);
		font-size: 15px; font-weight: 400; color: var(--hd-ink); background: #fff;
	}
	.hds-nav__bars, .hds-nav__bars::before, .hds-nav__bars::after {
		display: block; width: 16px; height: 2px; background: var(--hd-navy); border-radius: 2px; position: relative;
		transition: transform .25s var(--hds-ease), background-color .2s;
	}
	.hds-nav__bars::before, .hds-nav__bars::after { content: ""; position: absolute; left: 0; }
	.hds-nav__bars::before { top: -5px; }
	.hds-nav__bars::after { top: 5px; }
	.hds-nav.is-open .hds-nav__bars { background: transparent; }
	.hds-nav.is-open .hds-nav__bars::before { transform: translateY(5px) rotate(45deg); }
	.hds-nav.is-open .hds-nav__bars::after { transform: translateY(-5px) rotate(-45deg); }
	.hds-nav__panel {
		display: none;
		position: absolute; left: 0; right: 0; top: var(--hds-header);
		flex-direction: column; align-items: stretch; gap: 8px;
		padding: 12px var(--hds-gutter) 24px;
		background: #fff; border-bottom: 1px solid var(--hd-line);
		box-shadow: 0 24px 40px -24px rgba(0, 27, 68, .3);
	}
	.hds-nav.is-open .hds-nav__panel { display: flex; }
	.hds-nav__list { flex-direction: column; gap: 0; }
	.hds-nav__list a { display: block; padding: 12px 0; font-size: 17px; border-bottom: 1px solid var(--hd-mist); }
	.hds-nav__panel .hds-btn { align-self: flex-start; margin-top: 12px; }
}
@media (max-width: 420px) {
	.hds-brand__feature { font-size: 15px; padding-left: 10px; }
	.hds-nav__label { display: none; }
}

/* ---------- Sections ---------- */
.hds-section { padding: clamp(64px, 9vw, 120px) 0; }
.hds-section--mist { background: var(--hd-mist); }
.hds-section--tight { padding-top: clamp(40px, 5vw, 64px); }
.hds-kicker { display: block; margin-bottom: .9em; color: var(--hd-teal); font-weight: 500; font-size: 16px; letter-spacing: .01em; }
.hds-head { max-width: 720px; margin-bottom: clamp(32px, 5vw, 56px); }
.hds-head p { font-size: 1.12rem; }
.hds-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
@media (max-width: 900px) {
	.hds-split { grid-template-columns: 1fr; }
	.hds-split--flip > :first-child { order: 2; }
}

/* ---------- Trail hero ---------- */
.hds-hero {
	--scene-h: clamp(360px, 57svh, 580px);
	position: relative;
	overflow: hidden;
	min-height: clamp(640px, calc(100svh - var(--hds-header)), 900px);
	background: linear-gradient(180deg, #dff1fa 0%, #eef8fc 38%, #fff 78%);
	padding: clamp(40px, 5.5vw, 80px) 0 calc(var(--scene-h) * .5);
}
.hds-hero::before {
	/* low morning sun behind the range */
	content: ""; position: absolute; pointer-events: none;
	width: 70vw; height: 70vw; right: -10vw; top: -34vw;
	background: radial-gradient(circle, rgba(255, 255, 255, .95) 0%, rgba(255, 255, 255, 0) 60%);
}
.hds-hero__grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 32px; align-items: start; }
.hds-hero__copy { max-width: 600px; }
.hds-hero__copy h1 { margin-bottom: .35em; }
.hds-hero__copy .hds-lede { color: var(--hd-ink); font-weight: 300; max-width: 34ch; margin-bottom: 1.6em; }
.hds-hero__scene { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; height: var(--scene-h); overflow: hidden; pointer-events: none; }
.hds-hero__stage {
	position: absolute; bottom: 0; left: 50%;
	width: max(100%, calc(var(--scene-h) * 1800 / 560));
	aspect-ratio: 1800 / 560;
	transform: translateX(-50%);
}
.hds-hero__stage svg { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }

.hds-trail__label {
	position: absolute; z-index: 2;
	transform: translate(18px, -50%);
	padding: 5px 12px 5px 10px;
	border-radius: 999px;
	background: #fff;
	color: var(--hd-ink);
	font-size: 14px; font-weight: 400; line-height: 1.2; white-space: nowrap;
	box-shadow: 0 6px 18px -8px rgba(0, 27, 68, .45);
	display: flex; align-items: center; gap: 7px;
	transition: background-color .35s, color .35s, transform .45s var(--hds-ease);
}
.hds-trail__label--left { transform: translate(calc(-100% - 18px), -50%); }
.hds-trail__label i { width: 8px; height: 8px; border-radius: 50%; background: var(--hd-line); transition: background-color .35s; }
.hds-trail__label.is-done i { background: var(--hd-aqua); }
.hds-trail__label.is-here { background: var(--hd-navy); color: #fff; }
.hds-trail__label.is-here i { background: var(--hd-coral); }
.hds-trail__label--summit { transform: translate(-50%, calc(-100% - 64px)); font-weight: 500; }
.hds-trail__label--summit.is-done { background: var(--hd-ember); color: #fff; }
.hds-trail__label--summit.is-done i { background: #fff; }

.hds-trail svg .wp circle { transition: fill .35s, stroke .35s, r .35s; }
.hds-trail svg .wp path { opacity: 0; transition: opacity .3s; }
.hds-trail svg .wp.is-done circle { fill: var(--hd-aqua); }
.hds-trail svg .wp.is-done path { opacity: 1; }
.hds-trail svg .flag { transform-box: fill-box; transform-origin: 0 100%; transition: transform .7s var(--hds-ease); }
.hds-trail:not(.is-complete) svg .flag { transform: scaleY(0); }
.hds-trail svg .burst circle { opacity: 0; }
.hds-trail.is-complete svg .burst circle { animation: hdsBurst 1.1s var(--hds-ease) forwards; }
@keyframes hdsBurst {
	0% { opacity: 1; transform: translate(0, 0) scale(.4); }
	100% { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(1); }
}
.hds-trail svg .walker-ring { transform-box: fill-box; transform-origin: center; animation: hdsPulse 1.6s ease-out infinite; }
@keyframes hdsPulse { 0% { opacity: .7; transform: scale(1); } 100% { opacity: 0; transform: scale(2.6); } }
.hds-trail.is-complete svg .walker { opacity: 0; transition: opacity .4s .4s; }

.hds-hud {
	position: relative; z-index: 3;
	justify-self: end;
	width: min(100%, 360px);
	margin-top: 24px;
	padding: 18px 20px 16px;
	border-radius: 16px;
	background: rgba(255, 255, 255, .86);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: var(--hds-shadow);
	border: 1px solid rgba(255, 255, 255, .9);
}
.hds-hud__eyebrow { margin: 0 0 2px; font-size: 13px; color: var(--hd-slate); }
.hds-hud__course { margin: 0 0 14px; color: var(--hd-navy); font-weight: 500; font-size: 16px; line-height: 1.3; }
.hds-hud__bar { height: 8px; border-radius: 999px; background: var(--hd-mist); overflow: hidden; }
.hds-hud__bar span { display: block; height: 100%; width: var(--p, 100%); border-radius: inherit; background: linear-gradient(90deg, var(--hd-aqua), var(--hd-teal)); }
.hds-hud__row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 10px 0 0; font-size: 14px; }
.hds-hud__step { color: var(--hd-ink); font-weight: 400; }
.hds-hud__pct { font-variant-numeric: tabular-nums; color: var(--hd-teal); font-weight: 600; }
.hds-hud__replay {
	margin-top: 10px; padding: 0; border: 0; background: none; cursor: pointer;
	font: 400 14px/1 var(--hds-font); color: var(--hd-blue); text-decoration: underline; text-underline-offset: .2em;
}
.hds-hud__replay[hidden] { display: none; }

@media (max-width: 900px) {
	.hds-hero { --scene-h: clamp(300px, 80vw, 420px); min-height: 0; padding-bottom: 0; }
	.hds-hero__grid { grid-template-columns: 1fr; }
	.hds-hud { justify-self: start; margin-top: 0; }
	.hds-hero__scene { position: relative; margin-top: 44px; }
	/* keep the course peak centered on narrow screens */
	.hds-hero__stage { transform: translateX(-63.33%); }
}
@media (max-width: 720px) {
	.hds-trail__label { display: none; }
	.hds-trail__label--summit { display: flex; font-size: 12px; transform: translate(-50%, calc(-100% - 40px)); }
}

/* ---------- Course outline (live demo) ---------- */
.hds-outline {
	border-radius: 18px; overflow: hidden;
	background: #fff; box-shadow: var(--hds-shadow); border: 1px solid var(--hd-line);
}
.hds-outline__top { padding: 22px 24px 18px; background: var(--hd-navy); color: #c9dcf0; }
.hds-outline__top h3 { color: #fff; margin: 4px 0 10px; font-size: 1.25rem; }
.hds-outline__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; font-size: 14px; }
.hds-outline ol { margin: 0; padding: 8px 0; list-style: none; counter-reset: lesson; }
.hds-outline li { counter-increment: lesson; }
.hds-outline li > a {
	display: grid; grid-template-columns: 34px 1fr auto; gap: 14px; align-items: center;
	padding: 14px 24px; color: var(--hd-ink); text-decoration: none; font-weight: 400;
	transition: background-color .2s;
}
.hds-outline li > a::before {
	content: counter(lesson);
	display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
	background: var(--hd-mist); color: var(--hd-navy); font-weight: 600; font-size: 15px;
	transition: background-color .2s, color .2s;
}
.hds-outline li > a:hover { background: var(--hd-mist); }
.hds-outline li > a:hover::before { background: var(--hd-aqua); color: var(--hd-navy); }
.hds-outline small { color: var(--hd-slate); font-size: 13px; white-space: nowrap; }
@media (max-width: 560px) {
	.hds-outline li > a { grid-template-columns: 34px 1fr; row-gap: 2px; padding: 12px 20px; }
	.hds-outline li > a::before { grid-row: span 2; }
	.hds-outline li > a small { grid-column: 2; }
	.hds-tree .t2 { margin-left: 14px; }
	.hds-tree .t3 { margin-left: 28px; }
}
.hds-outline__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 24px 20px; border-top: 1px solid var(--hd-line); flex-wrap: wrap; }
.hds-outline__foot p { margin: 0; font-size: 14px; }

/* ---------- Capability explorer (tabs) ---------- */
.hds-explorer { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: clamp(20px, 4vw, 48px); align-items: start; }
.hds-explorer__tabs { display: flex; flex-direction: column; gap: 4px; position: sticky; top: calc(var(--hds-header) + 24px); }
.hds-explorer__tab {
	display: flex; align-items: center; gap: 12px; width: 100%;
	padding: 14px 16px; border: 0; border-radius: 12px; background: transparent; cursor: pointer; text-align: left;
	font: 400 16px/1.3 var(--hds-font); color: var(--hd-ink);
	transition: background-color .2s, color .2s;
}
.hds-explorer__tab svg { width: 22px; height: 22px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; color: var(--hd-teal); }
.hds-explorer__tab:hover { background: #fff; }
.hds-explorer__tab[aria-selected="true"] { background: var(--hd-navy); color: #fff; font-weight: 500; }
.hds-explorer__tab[aria-selected="true"] svg { color: var(--hd-aqua); }
.hds-explorer__panel { background: #fff; border-radius: 20px; box-shadow: var(--hds-shadow); padding: clamp(24px, 4vw, 44px); min-height: 440px; }
.hds-explorer__panel[hidden] { display: none; }
.hds-explorer__panel h3 { font-size: 1.55rem; }
.hds-explorer__panel ul { margin: 0; padding-left: 1.1em; }
.hds-explorer__panel li { margin: .35em 0; }
.hds-explorer__panel li::marker { color: var(--hd-teal); }
.hds-explorer__art { margin: 0 0 28px; padding: 24px; border-radius: 14px; background: var(--hd-mist); min-height: 190px; display: grid; place-items: center; }
@media (prefers-reduced-motion: no-preference) {
	.hds-explorer__panel:not([hidden]) .hds-explorer__art > * { animation: hdsRise .6s var(--hds-ease) both; }
}
@keyframes hdsRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (max-width: 860px) {
	.hds-explorer { grid-template-columns: 1fr; }
	.hds-explorer__tabs { position: static; flex-direction: row; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; margin: 0 calc(-1 * var(--hds-gutter)); padding-left: var(--hds-gutter); padding-right: var(--hds-gutter); }
	.hds-explorer__tab { flex: none; width: auto; scroll-snap-align: start; background: #fff; }
	.hds-explorer__panel { min-height: 0; }
}

/* Explorer art pieces */
.hds-tree { list-style: none; margin: 0; padding: 0; font-size: 15px; width: min(100%, 420px); }
.hds-tree li { display: flex; align-items: center; gap: 10px; padding: 7px 12px; margin: 5px 0; border-radius: 10px; background: #fff; color: var(--hd-ink); font-weight: 400; box-shadow: 0 1px 2px rgba(0, 27, 68, .06); }
.hds-tree li b { font-size: 11px; font-weight: 500; letter-spacing: .02em; padding: 2px 8px; border-radius: 999px; background: var(--hd-ice); color: var(--hd-navy); }
.hds-tree .t2 { margin-left: 28px; }
.hds-tree .t3 { margin-left: 56px; }
.hds-tree .t2 b { background: #d6f5ee; color: var(--hd-teal); }
.hds-tree .t3 b { background: #ffe3dc; color: var(--hd-ember); }

.hds-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; max-width: 460px; }
.hds-chips span { padding: 8px 14px; border-radius: 999px; background: #fff; color: var(--hd-ink); font-size: 14px; font-weight: 400; box-shadow: 0 1px 2px rgba(0, 27, 68, .08); }
.hds-chips span:nth-child(3n + 1) { border-left: 3px solid var(--hd-aqua); }
.hds-chips span:nth-child(3n + 2) { border-left: 3px solid var(--hd-sky); }
.hds-chips span:nth-child(3n) { border-left: 3px solid var(--hd-coral); }

.hds-drip { width: min(100%, 460px); display: grid; gap: 10px; }
.hds-drip div { display: grid; grid-template-columns: 84px 1fr; gap: 12px; align-items: center; font-size: 14px; }
.hds-drip span { color: var(--hd-slate); font-size: 13px; }
.hds-drip p { margin: 0; padding: 10px 14px; border-radius: 10px; background: #fff; color: var(--hd-ink); display: flex; justify-content: space-between; gap: 10px; }
.hds-drip p em { font-style: normal; font-size: 12px; padding: 2px 8px; border-radius: 999px; background: #d6f5ee; color: var(--hd-teal); white-space: nowrap; }
.hds-drip .locked p { background: transparent; border: 1px dashed #b9c4d0; color: var(--hd-slate); }
.hds-drip .locked em { background: #eef1f4; color: var(--hd-slate); }

.hds-bars { width: min(100%, 460px); display: grid; gap: 12px; font-size: 14px; }
.hds-bars div { display: grid; grid-template-columns: 96px 1fr 44px; gap: 12px; align-items: center; color: var(--hd-ink); }
.hds-bars i { height: 10px; border-radius: 999px; background: #e3e9ef; overflow: hidden; position: relative; }
.hds-bars i::after { content: ""; position: absolute; inset: 0; width: var(--w); border-radius: inherit; background: linear-gradient(90deg, var(--hd-sky), var(--hd-blue)); }
@media (prefers-reduced-motion: no-preference) {
	.hds-explorer__panel:not([hidden]) .hds-bars i::after { animation: hdsGrow 1s var(--hds-ease) both; }
}
@keyframes hdsGrow { from { width: 0; } }
.hds-bars b { font-weight: 500; text-align: right; font-variant-numeric: tabular-nums; }

.hds-prices { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.hds-prices div { min-width: 128px; padding: 16px 18px; border-radius: 12px; background: #fff; text-align: center; box-shadow: 0 1px 2px rgba(0, 27, 68, .08); font-size: 14px; }
.hds-prices b { display: block; color: var(--hd-navy); font-size: 1.35rem; font-weight: 600; letter-spacing: -.02em; }
.hds-prices div:nth-child(2) { outline: 2px solid var(--hd-aqua); }

/* ---------- Certificate ---------- */
.hds-cert {
	position: relative; aspect-ratio: 1.414 / 1; width: min(100%, 520px);
	padding: 7% 8%; border-radius: 6px; text-align: center;
	background:
		radial-gradient(circle at 12% 15%, rgba(62, 207, 178, .10), transparent 40%),
		radial-gradient(circle at 88% 85%, rgba(3, 169, 244, .10), transparent 40%),
		#fffdf9;
	box-shadow: 0 30px 50px -30px rgba(0, 27, 68, .45), 0 0 0 1px rgba(0, 27, 68, .08);
	display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.hds-cert::before { content: ""; position: absolute; inset: 12px; border: 1.5px solid rgba(18, 127, 134, .45); border-radius: 3px; pointer-events: none; }
.hds-cert .hds-mark { width: 64px; margin-bottom: 8px; }
.hds-cert__title { margin: 0; color: var(--hd-teal); font-size: clamp(12px, 1.4vw, 14px); font-weight: 500; letter-spacing: .08em; }
.hds-cert__name {
	margin: .25em 0 .1em; color: var(--hd-navy); font-weight: 600; letter-spacing: -.02em;
	font-size: clamp(1.4rem, 3.6vw, 2.2rem); line-height: 1.1; min-height: 1.1em;
	overflow-wrap: anywhere;
}
.hds-cert__line { width: 60%; height: 1px; background: var(--hd-line); margin: 6px 0 10px; }
.hds-cert__body { margin: 0; font-size: clamp(12px, 1.5vw, 15px); line-height: 1.4; }
.hds-cert__foot { display: flex; justify-content: space-between; width: 100%; margin-top: auto; font-size: 11px; color: var(--hd-slate); }
.hds-cert__seal {
	position: absolute; right: 9%; bottom: 22%; width: clamp(34px, 11%, 58px); aspect-ratio: 1; border-radius: 50%;
	background: conic-gradient(from 0deg, var(--hd-coral), var(--hd-ember), var(--hd-coral));
	display: grid; place-items: center; color: #fff; font-size: clamp(14px, 3vw, 22px);
	box-shadow: 0 6px 14px -6px rgba(225, 75, 42, .6);
}
.hds-field { display: grid; gap: 6px; margin: 0 0 24px; max-width: 360px; }
.hds-field label { font-size: 15px; color: var(--hd-ink); font-weight: 400; }
.hds-field input {
	font: 400 17px/1.3 var(--hds-font); padding: 12px 16px; border-radius: 12px;
	border: 1.5px solid #c9d3dd; background: #fff; color: var(--hd-navy);
}
.hds-field input:focus { outline: none; border-color: var(--hd-teal); box-shadow: 0 0 0 4px rgba(62, 207, 178, .25); }

/* ---------- Quiz ---------- */
.hds-quiz { background: #fff; border-radius: 20px; box-shadow: var(--hds-shadow); padding: clamp(24px, 4vw, 40px); }
.hds-quiz__piles { display: flex; justify-content: center; align-items: flex-end; gap: clamp(20px, 5vw, 48px); padding: 18px 0 22px; margin-bottom: 18px; border-bottom: 1px solid var(--hd-line); }
.hds-quiz__piles div { display: flex; flex-direction: column-reverse; align-items: center; gap: 5px; }
.hds-quiz__piles i { width: 30px; height: 30px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #8fb6de, #2957a4 70%); box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .15); }
.hds-quiz__piles small { order: -1; margin-top: 6px; font-size: 12px; color: var(--hd-slate); }
.hds-quiz fieldset { border: 0; margin: 0; padding: 0; }
.hds-quiz legend { color: var(--hd-navy); font-weight: 500; font-size: 1.1rem; line-height: 1.4; margin-bottom: 14px; }
.hds-quiz__opt {
	display: flex; gap: 12px; align-items: center; width: 100%; margin: 8px 0; padding: 14px 16px;
	border-radius: 12px; border: 1.5px solid var(--hd-line); background: #fff; cursor: pointer; text-align: left;
	font: 400 16px/1.35 var(--hds-font); color: var(--hd-ink);
	transition: border-color .2s, background-color .2s;
}
.hds-quiz__opt:hover { border-color: var(--hd-sky); }
.hds-quiz__opt::before { content: ""; width: 18px; height: 18px; border-radius: 50%; border: 2px solid #b6c2cf; flex: none; transition: border-color .2s, background-color .2s, box-shadow .2s; }
.hds-quiz__opt[aria-pressed="true"].is-right { border-color: var(--hd-teal); background: #eafaf6; }
.hds-quiz__opt[aria-pressed="true"].is-right::before { border-color: var(--hd-teal); background: var(--hd-teal); box-shadow: inset 0 0 0 3px #eafaf6; }
.hds-quiz__opt[aria-pressed="true"].is-wrong { border-color: var(--hd-ember); background: #fff1ed; }
.hds-quiz__opt[aria-pressed="true"].is-wrong::before { border-color: var(--hd-ember); background: var(--hd-ember); box-shadow: inset 0 0 0 3px #fff1ed; }
.hds-quiz__result { margin: 14px 0 0; padding: 14px 16px; border-radius: 12px; background: var(--hd-mist); font-size: 15px; }
.hds-quiz__result[hidden] { display: none; }
.hds-quiz__result strong { display: block; margin-bottom: 2px; }

/* ---------- Use cases ---------- */
.hds-uses { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 0 clamp(24px, 5vw, 64px); margin: 0; padding: 0; list-style: none; }
.hds-uses li { display: grid; grid-template-columns: 44px 1fr; gap: 16px; padding: 24px 0; border-top: 1px solid var(--hd-line); }
.hds-uses svg { width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--hd-ice); stroke: var(--hd-navy); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hds-uses li:nth-child(4n + 2) svg { background: #d6f5ee; stroke: var(--hd-teal); }
.hds-uses li:nth-child(4n + 3) svg { background: #ffe3dc; stroke: var(--hd-ember); }
.hds-uses h3 { font-size: 1.1rem; margin: 2px 0 4px; }
.hds-uses p { margin: 0; font-size: 16px; }

/* ---------- Steps ---------- */
.hds-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: step; position: relative; }
.hds-steps::before { content: ""; position: absolute; top: 22px; left: 23px; right: calc(25% - 23px); height: 2px; background: repeating-linear-gradient(90deg, var(--hd-ice) 0 8px, transparent 8px 16px); }
.hds-steps li { counter-increment: step; position: relative; padding-right: 28px; }
.hds-steps li::before {
	content: counter(step); display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 20px;
	border-radius: 50%; background: var(--hd-navy); color: #fff; font-weight: 600; font-size: 17px; position: relative;
	box-shadow: 0 0 0 6px #fff;
}
.hds-section--mist .hds-steps li::before { box-shadow: 0 0 0 6px var(--hd-mist); }
.hds-steps li:last-child::before { background: var(--hd-ember); }
.hds-steps h3 { font-size: 1.1rem; }
.hds-steps p { font-size: 16px; margin: 0; }
@media (max-width: 860px) {
	.hds-steps { grid-template-columns: 1fr; gap: 28px; }
	.hds-steps::before { top: 22px; bottom: 22px; left: 22px; right: auto; width: 2px; height: auto; background: repeating-linear-gradient(180deg, var(--hd-ice) 0 8px, transparent 8px 16px); }
	.hds-steps li { display: grid; grid-template-columns: 46px 1fr; column-gap: 20px; padding-right: 0; }
	.hds-steps li::before { grid-row: span 2; margin: 0; }
}

/* ---------- Photo CTA band ---------- */
.hds-band {
	position: relative; isolation: isolate; overflow: hidden;
	color: #dbe8f5; padding: clamp(80px, 12vw, 150px) 0;
	background: var(--hd-navy);
}
.hds-band__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.hds-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(0, 27, 68, .94) 0%, rgba(0, 27, 68, .78) 45%, rgba(19, 111, 165, .25) 100%); }
.hds-band h2 { color: #fff; max-width: 16ch; }
.hds-band p { max-width: 46ch; font-size: 1.15rem; }
.hds-band a:not(.hds-btn) { color: #fff; }
.hds-band__phone { color: #fff; font-weight: 400; }

/* ---------- Generic pages (feature software output) ---------- */
.hds-page { max-width: calc(var(--hds-wrap) + 2 * var(--hds-gutter)); margin: 0 auto; padding: clamp(40px, 6vw, 72px) var(--hds-gutter) clamp(64px, 8vw, 110px); }
.hds-page--center { text-align: center; max-width: 720px; }
.hds-page__head { margin-bottom: 28px; }
.hds-page__head h1 { font-size: clamp(2rem, 4vw, 3rem); }
.hds-entry { max-width: 900px; margin: 0 auto; }
.hds-prose { max-width: none; }
.hds-prose > * + * { margin-top: 1em; }
.hds-prose img { border-radius: 10px; }
.hds-prose table { border-collapse: collapse; width: 100%; font-size: 16px; }
.hds-prose th, .hds-prose td { border-bottom: 1px solid var(--hd-line); padding: 10px 8px; text-align: left; }
.hds-card-link { padding: 24px 0; border-bottom: 1px solid var(--hd-line); }
.hds-card-link h2 { font-size: 1.4rem; margin-bottom: .3em; }
.hds-card-link h2 a { color: var(--hd-navy); text-decoration: none; }

/* ---------- Dusk hero (events) ---------- */
.hds-hero--dusk {
	min-height: 0;
	padding: clamp(48px, 6.5vw, 96px) 0 clamp(110px, 12vw, 170px);
	background: radial-gradient(120% 90% at 78% 0%, #0b3a78 0%, #001b44 52%, #000f2b 100%);
	color: #c9dcf0;
}
.hds-hero--dusk::before { display: none; }
.hds-hero--dusk h1 { color: #fff; }
.hds-hero--dusk .hds-kicker { color: var(--hd-aqua); }
.hds-hero--dusk .hds-hero__copy .hds-lede { color: #d7e5f4; }
.hds-hero--dusk .hds-hero__grid { align-items: center; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 72px); }
.hds-btn--ghost-light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
.hds-btn--ghost-light:hover { background: #fff; color: var(--hd-navy); border-color: #fff; }
.hds-aurora { position: absolute; inset: -30% -10% auto -10%; height: 90%; pointer-events: none; filter: blur(46px); opacity: .6; }
.hds-aurora i { position: absolute; border-radius: 50%; mix-blend-mode: screen; }
.hds-aurora i:nth-child(1) { width: 62%; height: 42%; left: 34%; top: 14%; background: radial-gradient(closest-side, rgba(62, 207, 178, .75), transparent); }
.hds-aurora i:nth-child(2) { width: 46%; height: 34%; left: 58%; top: 30%; background: radial-gradient(closest-side, rgba(3, 169, 244, .6), transparent); }
.hds-aurora i:nth-child(3) { width: 36%; height: 30%; left: 6%; top: 8%; background: radial-gradient(closest-side, rgba(255, 107, 74, .32), transparent); }
@media (prefers-reduced-motion: no-preference) {
	.hds-aurora i { animation: hdsAurora 19s ease-in-out infinite alternate; }
	.hds-aurora i:nth-child(2) { animation-duration: 24s; animation-delay: -6s; }
	.hds-aurora i:nth-child(3) { animation-duration: 29s; animation-delay: -11s; }
}
@keyframes hdsAurora { from { transform: translate3d(-5%, 0, 0) scale(1) rotate(-5deg); } to { transform: translate3d(7%, 5%, 0) scale(1.18) rotate(6deg); } }
.hds-hero__ridge { position: absolute; left: 0; right: 0; bottom: -1px; z-index: 1; width: 100%; height: clamp(70px, 9vw, 130px); display: block; pointer-events: none; }
@media (max-width: 900px) { .hds-hero--dusk .hds-hero__grid { grid-template-columns: 1fr; } }

/* ---------- Calendar view switcher ---------- */
.hds-views { position: relative; z-index: 2; background: #fff; color: var(--hd-ink); border-radius: 18px; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .08); overflow: hidden; }
.hds-views__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 16px; border-bottom: 1px solid var(--hd-line); }
.hds-views__title { font-weight: 600; color: var(--hd-navy); font-size: 17px; }
.hds-views__tabs { display: flex; gap: 4px; padding: 3px; background: var(--hd-mist); border-radius: 999px; }
.hds-views__tab { border: 0; background: transparent; border-radius: 999px; padding: 7px 13px; font: 400 14px/1 var(--hds-font); color: var(--hd-slate); cursor: pointer; transition: background-color .2s, color .2s; }
.hds-views__tab[aria-selected="true"] { background: var(--hd-navy); color: #fff; font-weight: 500; }
.hds-views__stage { position: relative; height: 380px; }
.hds-views__panel { position: absolute; inset: 0; padding: 14px 16px 16px; overflow: hidden; background: #fff; }
.hds-views__panel[hidden] { display: block; visibility: hidden; opacity: 0; }
.hds-views__panel { transition: opacity .45s var(--hds-ease), transform .45s var(--hds-ease), visibility 0s; }
.hds-views__panel[hidden] { transform: translateY(10px); transition: opacity .3s, transform .3s, visibility 0s .3s; }
.hds-cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; font-size: 12px; }
.hds-cal b { font-weight: 500; color: var(--hd-slate); text-align: center; padding: 2px 0 6px; font-size: 11px; }
.hds-cal > span { min-height: 58px; padding: 4px 5px; border-radius: 6px; background: var(--hd-mist); color: var(--hd-ink); position: relative; }
.hds-cal > span.out { background: transparent; color: #b7c1cc; }
.hds-cal em { display: block; margin-top: 3px; padding: 2px 5px; border-radius: 4px; font-style: normal; font-size: 10.5px; line-height: 1.25; color: #fff; background: var(--hd-blue); overflow: hidden; }
.hds-cal em.span { white-space: nowrap; }
.hds-cal em.c { background: var(--hd-ember); }
.hds-cal em.t { background: var(--hd-teal); }
.hds-cal em.span { border-radius: 0; margin-left: -8px; margin-right: -8px; padding-left: 8px; }
.hds-cal em.span.first { border-radius: 4px 0 0 4px; margin-left: 0; padding-left: 5px; overflow: visible; position: relative; z-index: 1; }
.hds-cal em.span.last { border-radius: 0 4px 4px 0; margin-right: 0; }
.hds-cal > span.today { outline: 2px solid var(--hd-aqua); outline-offset: -2px; }
.hds-vlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.hds-vlist li { display: grid; grid-template-columns: 52px 1fr; gap: 12px; align-items: center; padding: 8px 10px; border-radius: 10px; background: var(--hd-mist); }
.hds-vlist time { display: grid; place-items: center; line-height: 1; padding: 6px 0; border-radius: 8px; background: #fff; color: var(--hd-ember); font-size: 11px; font-weight: 500; }
.hds-vlist time b { color: var(--hd-navy); font-size: 20px; font-weight: 600; margin-top: 2px; }
.hds-vlist strong { display: block; font-size: 14px; line-height: 1.3; color: var(--hd-navy); }
.hds-vlist small { font-size: 12px; color: var(--hd-slate); }
.hds-vphoto { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 8px; height: 100%; }
.hds-vphoto figure { position: relative; margin: 0; border-radius: 10px; overflow: hidden; background: var(--hd-navy); }
.hds-vphoto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hds-vphoto figcaption { position: absolute; inset: auto 0 0 0; padding: 22px 10px 8px; color: #fff; font-size: 12px; line-height: 1.3; background: linear-gradient(transparent, rgba(0, 27, 68, .85)); }
.hds-vphoto figcaption b { display: block; font-size: 11px; color: var(--hd-aqua); font-weight: 500; }
.hds-vmap { position: relative; height: 100%; border-radius: 10px; overflow: hidden; background: #cfe7f5; }
.hds-vmap svg { width: 100%; height: 100%; display: block; }
.hds-vmap__pop { position: absolute; left: 48%; top: 7%; width: 210px; padding: 10px 12px; border-radius: 10px; background: #fff; box-shadow: var(--hds-shadow); font-size: 12px; line-height: 1.35; }
.hds-vmap__pop strong { display: block; color: var(--hd-navy); font-size: 13px; }
@media (max-width: 560px) {
	.hds-views__stage { height: 340px; }
	.hds-views__tab { padding: 7px 10px; font-size: 13px; }
	.hds-cal > span { min-height: 46px; padding: 3px; }
	.hds-cal em { font-size: 0; height: 6px; padding: 0; margin-top: 4px; }
	.hds-cal em.span { margin-left: -5px; margin-right: -5px; }
	.hds-vmap__pop { left: 30%; }
}

/* ---------- Upcoming events (live) ---------- */
.hds-events { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 20px; }
.hds-event a { display: flex; flex-direction: column; height: 100%; border-radius: 16px; overflow: hidden; background: #fff; box-shadow: var(--hds-shadow); color: var(--hd-ink); text-decoration: none; transition: transform .3s var(--hds-ease), box-shadow .3s; }
.hds-event a:hover { transform: translateY(-3px); box-shadow: 0 1px 2px rgba(0, 27, 68, .06), 0 22px 40px -16px rgba(0, 27, 68, .35); color: var(--hd-ink); }
.hds-event__img { position: relative; aspect-ratio: 16 / 10; background: var(--hd-navy); }
.hds-event__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.hds-event__date { z-index: 1; }
.hds-event__date { position: absolute; left: 12px; bottom: -22px; display: grid; place-items: center; width: 54px; padding: 6px 0; border-radius: 10px; background: #fff; box-shadow: 0 8px 20px -8px rgba(0, 27, 68, .45); line-height: 1; color: var(--hd-ember); font-size: 12px; font-weight: 500; }
.hds-event__date b { color: var(--hd-navy); font-size: 22px; font-weight: 600; margin-top: 3px; }
.hds-event__body { padding: 32px 16px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.hds-event__body h3 { font-size: 1.05rem; margin: 0; }
.hds-event__body p { margin: 0; font-size: 14px; line-height: 1.45; }
.hds-event__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 6px; }
.hds-chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; background: var(--hd-mist); color: var(--hd-teal); font-size: 12px; font-weight: 500; }
.hds-chip--coral { background: #ffe9e3; color: var(--hd-ember); }
.hds-chip--sky { background: #e2f4fc; color: var(--hd-blue); }

/* ---------- Course catalog (live) ---------- */
.hds-courses { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 24px; }
.hds-course a { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); height: 100%; border-radius: 18px; overflow: hidden; background: #fff; box-shadow: var(--hds-shadow); color: var(--hd-ink); text-decoration: none; transition: transform .3s var(--hds-ease), box-shadow .3s; }
.hds-course a:hover { transform: translateY(-3px); color: var(--hd-ink); box-shadow: 0 1px 2px rgba(0, 27, 68, .06), 0 22px 40px -16px rgba(0, 27, 68, .35); }
.hds-course__img { position: relative; min-height: 220px; background: var(--hd-navy); }
.hds-course__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hds-course__access { position: absolute; left: 12px; top: 12px; padding: 4px 10px; border-radius: 999px; background: rgba(0, 27, 68, .82); color: #fff; font-size: 12px; font-weight: 500; }
.hds-course__body { padding: 20px 20px 18px; display: flex; flex-direction: column; gap: 6px; }
.hds-course__cat { color: var(--hd-teal); font-size: 13px; font-weight: 500; }
.hds-course__body h3 { margin: 0; font-size: 1.15rem; }
.hds-course__body p { margin: 0; font-size: 15px; line-height: 1.5; }
.hds-course__meta { color: var(--hd-slate); font-size: 13px !important; }
@media (max-width: 560px) { .hds-course a { grid-template-columns: 1fr; } .hds-course__img { min-height: 0; aspect-ratio: 16 / 9; } }

/* ---------- Recurrence builder ---------- */
.hds-recur { background: #fff; border-radius: 20px; box-shadow: var(--hds-shadow); padding: clamp(22px, 4vw, 36px); }
.hds-recur__controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 16px; color: var(--hd-ink); }
.hds-recur select { font: 400 16px/1.2 var(--hds-font); color: var(--hd-navy); padding: 10px 34px 10px 14px; border-radius: 12px; border: 1.5px solid #c9d3dd; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23127f86' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center; -webkit-appearance: none; appearance: none; cursor: pointer; }
.hds-recur select:focus { outline: none; border-color: var(--hd-teal); box-shadow: 0 0 0 4px rgba(62, 207, 178, .25); }
.hds-recur__rule { margin: 20px 0 14px; color: var(--hd-navy); font-weight: 500; font-size: 1.1rem; }
.hds-recur__dates { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 10px; }
.hds-recur__dates li { display: grid; place-items: center; padding: 10px 4px; border-radius: 12px; background: var(--hd-mist); line-height: 1.1; font-size: 12px; color: var(--hd-slate); }
.hds-recur__dates li b { font-size: 22px; font-weight: 600; color: var(--hd-navy); margin: 2px 0; }
.hds-recur__dates li i { font-style: normal; color: var(--hd-ember); font-weight: 500; }
@media (prefers-reduced-motion: no-preference) {
	.hds-recur__dates li { animation: hdsRise .5s var(--hds-ease) both; }
	.hds-recur__dates li:nth-child(2) { animation-delay: .04s; } .hds-recur__dates li:nth-child(3) { animation-delay: .08s; }
	.hds-recur__dates li:nth-child(4) { animation-delay: .12s; } .hds-recur__dates li:nth-child(5) { animation-delay: .16s; }
	.hds-recur__dates li:nth-child(6) { animation-delay: .2s; }
}

/* ---------- Feature software: events calendar ---------- */
.tribe-common, .tribe-events, .tribe-events-pro { --tec-font-family-sans-serif: var(--hds-font); --tec-font-family-base: var(--hds-font); --tec-color-accent-primary: #136fa5; --tec-color-accent-primary-hover: #105378; --tec-color-link-accent: #136fa5; --tec-color-button-primary: #105378; }
.tribe-common a, .tribe-events a { text-decoration: none; }
.tribe-events-single, .tribe-events-single h1, .tribe-events-single h2, .tribe-events-single h3, .tribe-events-back a, .tribe-events-meta-group, .tribe-events-schedule h2 { font-family: var(--hds-font) !important; }
.tribe-events-single .tribe-events-single-event-title { color: var(--hd-navy); font-weight: 600; letter-spacing: -.02em; }
.tribe-events-single .tribe-events-back a { color: var(--hd-teal); font-weight: 500; }
.tribe-events-single img { border-radius: 14px; }
.tribe-events-single, .tribe-events-pg-template { max-width: calc(var(--hds-wrap) + 2 * var(--hds-gutter)); margin: 0 auto; padding: 40px var(--hds-gutter) 80px; }

/* ---------- Feature software: course platform ---------- */
.learndash-wrapper, .ld-focus, .ld_course_grid { font-family: var(--hds-font); }
.ld-focus-content h1, .learndash-wrapper h1 { font-size: clamp(1.9rem, 3.2vw, 2.7rem); }
.ld_course_grid .btn-primary {
	display: inline-flex !important; justify-content: center; padding: .7em 1.2em !important;
	border: 0 !important; border-radius: 999px !important; background: var(--hd-action) !important;
	color: #fff !important; font: 500 14px/1.1 var(--hds-font) !important; text-decoration: none !important;
}
.ld_course_grid .btn-primary:hover { background: var(--hd-blue) !important; }
.ld_course_grid article, .ld_course_grid .thumbnail { border-radius: 14px !important; overflow: hidden; }
.ld_course_grid .entry-title { font-weight: 600; letter-spacing: -.01em; }

/* ---------- Footer ---------- */
.hds-footer { position: relative; background: var(--hd-navy); color: #a9bdd6; font-size: 15px; margin-top: 60px; }
.hds-band + .hds-footer, .hds-is-landing .hds-footer { margin-top: 0; }
.hds-footer__ridge { position: absolute; left: 0; bottom: 100%; width: 100%; height: 60px; display: block; }
.hds-footer__ridge polygon:nth-child(odd) { fill: var(--hd-navy); }
.hds-footer__ridge polygon:nth-child(even) { fill: #06265a; }
.hds-band + .hds-footer .hds-footer__ridge { display: none; }
.hds-footer__inner {
	max-width: calc(var(--hds-wrap) + 2 * var(--hds-gutter)); margin: 0 auto; padding: 64px var(--hds-gutter) 40px;
	display: grid; grid-template-columns: minmax(240px, 1fr) minmax(0, 2.2fr); gap: clamp(32px, 6vw, 80px);
}
.hds-footer a { color: #e4eef8; text-decoration: none; }
.hds-footer a:hover { color: var(--hd-aqua); }
.hds-footer__logo { display: block; color: #fff; width: 190px; margin-bottom: 10px; }
.hds-footer__logo svg { width: 100%; height: auto; }
.hds-footer__tag { color: var(--hd-aqua); font-weight: 500; margin-bottom: 1.2em; }
.hds-footer__contact { line-height: 1.7; }
.hds-footer__features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.hds-footer__group h2 { color: #fff; font-size: 15px; font-weight: 500; letter-spacing: 0; margin: 0 0 14px; }
.hds-footer__group ul { margin: 0; padding: 0; list-style: none; }
.hds-footer__group li { margin: 0 0 9px; line-height: 1.35; }
.hds-footer__group a[aria-current="page"] { color: var(--hd-aqua); }
.hds-footer__group a[aria-current="page"]::after { content: " \2022"; }
.hds-footer__base {
	max-width: calc(var(--hds-wrap) + 2 * var(--hds-gutter)); margin: 0 auto; padding: 20px var(--hds-gutter) 32px;
	display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: 14px;
	background: linear-gradient(rgba(169, 189, 214, .18), rgba(169, 189, 214, .18)) center top / calc(100% - 2 * var(--hds-gutter)) 1px no-repeat;
}
@media (max-width: 1000px) {
	.hds-footer__inner { grid-template-columns: 1fr; }
	.hds-footer__features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) { .hds-footer__features { grid-template-columns: 1fr 1fr; gap: 20px 16px; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
