/*!
 * KTT Elementor Kit — Kiwi Trucking Training design system
 * Industrial Corporate: navy + safety orange, Montserrat + Inter.
 * Tokens (--ktt-*) are printed inline from PHP; fallbacks below.
 */

:root {
	--ktt-navy: #082B60;
	--ktt-navy-deep: #00173D;
	--ktt-navy-line: #163E7E;
	--ktt-orange: #FF571D;
	--ktt-orange-text: #AE3100;
	--ktt-orange-dark: #FF7A47;
	--ktt-cta-bg: #FF571D;
	--ktt-cta-hover: #E04A12;
	--ktt-white: #FFFFFF;
	--ktt-grey: #F1F3F5;
	--ktt-pale: #E9EEF5;
	--ktt-charcoal: #101827;
	--ktt-muted: #44474F;
	--ktt-muted-dark: #B9C6DE;
	--ktt-border: #D4DCE8;
	--ktt-container: 1200px;
	--ktt-font-head: "Montserrat", "Helvetica Neue", Arial, sans-serif;
	--ktt-font-body: "Inter", "Segoe UI", Roboto, Arial, sans-serif;
	--ktt-pad-x: 48px;
	--ktt-gap: 24px;
	--ktt-radius: 4px;
	--ktt-header-h: 84px;
	--ktt-ease: cubic-bezier(.2, .7, .2, 1);
}

@media (max-width: 1024px) { :root { --ktt-pad-x: 32px; --ktt-gap: 20px; --ktt-header-h: 76px; } }
@media (max-width: 767px)  { :root { --ktt-pad-x: 20px; --ktt-gap: 16px; --ktt-header-h: 68px; } }

/* ---------- Base ---------- */

body.ktt-site {
	font-family: var(--ktt-font-body);
	color: var(--ktt-charcoal);
	background: var(--ktt-white);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body.ktt-site h1, body.ktt-site h2, body.ktt-site h3, body.ktt-site h4, body.ktt-site h5, body.ktt-site h6 {
	font-family: var(--ktt-font-head);
}

[class^="ktt-"], [class*=" ktt-"] { box-sizing: border-box; }
[class^="ktt-"] *, [class*=" ktt-"] *, [class^="ktt-"] *::before, [class*=" ktt-"] *::after { box-sizing: border-box; }

.ktt-icon { display: inline-block; flex: 0 0 auto; vertical-align: middle; }

.ktt-container {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: calc(var(--ktt-container) + var(--ktt-pad-x) * 2);
	margin: 0 auto;
	padding-left: var(--ktt-pad-x);
	padding-right: var(--ktt-pad-x);
}

.ktt-narrow { max-width: 880px; margin: 0 auto; }

.ktt-section { position: relative; overflow: hidden; }
.ktt-space-none    { padding: 0; }
.ktt-space-compact { padding: 56px 0; }
.ktt-space-normal  { padding: 96px 0; }
.ktt-space-large   { padding: 128px 0; }
@media (max-width: 1024px) {
	.ktt-space-compact { padding: 44px 0; }
	.ktt-space-normal  { padding: 72px 0; }
	.ktt-space-large   { padding: 96px 0; }
}
@media (max-width: 767px) {
	.ktt-space-compact { padding: 36px 0; }
	.ktt-space-normal  { padding: 56px 0; }
	.ktt-space-large   { padding: 72px 0; }
}

.ktt-tone-white  { background: var(--ktt-white); }
.ktt-tone-grey   { background: var(--ktt-grey); }
.ktt-tone-pale   { background: var(--ktt-pale); }
.ktt-tone-navy   { background: var(--ktt-navy); color: #fff; }
.ktt-tone-deep   { background: var(--ktt-navy-deep); color: #fff; }
.ktt-tone-orange { background: var(--ktt-orange); color: var(--ktt-navy-deep); }
.ktt-tone-none   { background: transparent; }

/* Blueprint grid texture on dark sections */
.ktt-tone-navy::before, .ktt-tone-deep::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
	background-size: 64px 64px;
	pointer-events: none;
}

/* ---------- Typography components ---------- */

.ktt-head { position: relative; margin: 0 0 48px; max-width: 760px; }
.ktt-head--center { text-align: center; margin-left: auto; margin-right: auto; }
.ktt-head--flush { margin-bottom: 0; }
.ktt-head__wm {
	position: absolute;
	top: -.52em;
	left: -.04em;
	z-index: 0;
	font: 900 clamp(64px, 10.5vw, 148px)/1 var(--ktt-font-head);
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--ktt-navy);
	opacity: .05;
	pointer-events: none;
	user-select: none;
}
.ktt-head--center .ktt-head__wm { left: 50%; transform: translateX(-50%); }
.ktt-head > :not(.ktt-head__wm) { position: relative; z-index: 1; }

.ktt-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px;
	font: 700 12px/16px var(--ktt-font-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ktt-orange-text);
}
.ktt-eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--ktt-orange); flex: 0 0 auto; }
.ktt-head--center .ktt-eyebrow::before { display: none; }

.ktt-title {
	margin: 0;
	font: 800 clamp(28px, 3.3vw, 42px)/1.14 var(--ktt-font-head);
	letter-spacing: .005em;
	text-transform: uppercase;
	color: var(--ktt-navy);
}
.ktt-hl { color: var(--ktt-orange); }
.ktt-rule { display: block; width: 56px; height: 4px; margin-top: 20px; background: var(--ktt-orange); }
.ktt-head--center .ktt-rule { margin-left: auto; margin-right: auto; }
.ktt-lede { margin-top: 20px; font-size: 17px; line-height: 1.7; color: var(--ktt-muted); }
.ktt-lede p { margin: 0 0 .8em; }
.ktt-lede p:last-child { margin-bottom: 0; }

/* On dark backgrounds */
.ktt-tone-navy .ktt-title, .ktt-tone-deep .ktt-title { color: #fff; }
.ktt-tone-navy .ktt-eyebrow, .ktt-tone-deep .ktt-eyebrow { color: var(--ktt-orange-dark); }
.ktt-tone-navy .ktt-lede, .ktt-tone-deep .ktt-lede { color: var(--ktt-muted-dark); }
.ktt-tone-navy .ktt-head__wm, .ktt-tone-deep .ktt-head__wm { color: #fff; opacity: .06; }
/* On orange */
.ktt-tone-orange .ktt-title, .ktt-tone-orange .ktt-eyebrow { color: var(--ktt-navy-deep); }
.ktt-tone-orange .ktt-eyebrow::before, .ktt-tone-orange .ktt-rule { background: var(--ktt-navy-deep); }
.ktt-tone-orange .ktt-hl { color: #fff; }
.ktt-tone-orange .ktt-head__wm { color: #fff; opacity: .14; }

.ktt-prose { font-size: 16px; line-height: 1.75; color: var(--ktt-charcoal); }
.ktt-prose > *:first-child { margin-top: 0; }
.ktt-prose > *:last-child { margin-bottom: 0; }
.ktt-prose p, .ktt-prose ul, .ktt-prose ol { margin: 0 0 1.1em; }
.ktt-prose h2, .ktt-prose h3, .ktt-prose h4 { margin: 1.6em 0 .6em; color: var(--ktt-navy); text-transform: uppercase; line-height: 1.25; }
.ktt-prose h2 { font-size: 26px; font-weight: 800; }
.ktt-prose h3 { font-size: 20px; font-weight: 700; }
.ktt-prose a { color: var(--ktt-navy); text-decoration: underline; text-decoration-color: var(--ktt-orange); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.ktt-prose a:hover { color: var(--ktt-orange-text); }
.ktt-prose ul li::marker { color: var(--ktt-orange); }
.ktt-prose img { max-width: 100%; height: auto; border-radius: var(--ktt-radius); }
.ktt-prose--tight { font-size: 16px; line-height: 1.7; color: var(--ktt-muted); }
.ktt-tone-navy .ktt-prose, .ktt-tone-deep .ktt-prose { color: var(--ktt-muted-dark); }

/* ---------- Buttons & links ---------- */

.ktt-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.ktt-actions--center { justify-content: center; margin-top: 48px; }
.ktt-actions--stack { flex-direction: column; align-items: stretch; margin-top: 24px; }
.ktt-actions--stack .ktt-btn { justify-content: center; }

.ktt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 14px 26px;
	border: 1.5px solid transparent;
	border-radius: var(--ktt-radius);
	font: 700 14px/1.1 var(--ktt-font-head);
	letter-spacing: .07em;
	text-transform: uppercase;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color .18s var(--ktt-ease), color .18s var(--ktt-ease), border-color .18s var(--ktt-ease), transform .12s var(--ktt-ease), box-shadow .12s var(--ktt-ease);
}
.ktt-btn .ktt-icon { transition: transform .18s var(--ktt-ease); }
.ktt-btn:hover .ktt-icon { transform: translateX(3px); }
.ktt-btn:active { transform: translateY(2px); }

.ktt-btn--primary { background: var(--ktt-cta-bg); color: #fff !important; box-shadow: 0 4px 0 0 var(--ktt-navy-deep); }
.ktt-btn--primary:hover { background: var(--ktt-cta-hover); color: #fff; }
.ktt-btn--primary:active { box-shadow: 0 2px 0 0 var(--ktt-navy-deep); }
.ktt-tone-navy .ktt-btn--primary, .ktt-tone-deep .ktt-btn--primary, .ktt-hero .ktt-btn--primary, .ktt-page-hero .ktt-btn--primary { box-shadow: 0 4px 0 0 rgba(0, 0, 0, .35); }

.ktt-btn--navy { background: var(--ktt-navy); color: #fff !important; box-shadow: 0 4px 0 0 var(--ktt-navy-deep); }
.ktt-btn--navy:hover { background: var(--ktt-navy-deep); }
.ktt-btn--light { background: #fff; color: var(--ktt-navy) !important; }
.ktt-btn--light:hover { background: var(--ktt-pale); }
.ktt-btn--outline { background: transparent; color: var(--ktt-navy) !important; border-color: var(--ktt-navy); }
.ktt-btn--outline:hover { background: var(--ktt-navy); color: #fff !important; }
.ktt-tone-navy .ktt-btn--outline, .ktt-tone-deep .ktt-btn--outline { color: #fff !important; border-color: rgba(255, 255, 255, .6); }
.ktt-tone-navy .ktt-btn--outline:hover, .ktt-tone-deep .ktt-btn--outline:hover { background: #fff; color: var(--ktt-navy) !important; }

.ktt-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font: 700 12px/1 var(--ktt-font-head);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ktt-orange-text);
	text-decoration: none;
}
.ktt-link .ktt-icon { transition: transform .18s var(--ktt-ease); }
a.ktt-link:hover .ktt-icon, article:hover .ktt-link .ktt-icon { transform: translateX(4px); }
.ktt-tone-navy .ktt-link, .ktt-tone-deep .ktt-link { color: var(--ktt-orange-dark); }

/* Focus */
.ktt-site a:focus-visible, .ktt-site button:focus-visible, .ktt-btn:focus-visible {
	outline: 3px solid var(--ktt-orange);
	outline-offset: 3px;
}
.ktt-tone-orange a:focus-visible, .ktt-tone-orange button:focus-visible, .ktt-banner__panel a:focus-visible { outline-color: var(--ktt-navy-deep); }

/* Whole-card links */
.ktt-stretched { color: inherit; text-decoration: none; }
.ktt-stretched::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.ktt-stretched:focus-visible { outline: none; }
.ktt-stretched:focus-visible::after { outline: 3px solid var(--ktt-orange); outline-offset: 2px; border-radius: var(--ktt-radius); }

/* ---------- Grid ---------- */

.ktt-grid { display: grid; gap: var(--ktt-gap); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ktt-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ktt-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ktt-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) {
	.ktt-grid.ktt-cols-3, .ktt-grid.ktt-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.ktt-grid, .ktt-grid.ktt-cols-2, .ktt-grid.ktt-cols-3, .ktt-grid.ktt-cols-4 { grid-template-columns: 1fr; }
}

/* ---------- Header ---------- */

.ktt-skip {
	position: absolute;
	left: 12px;
	top: -100px;
	z-index: 1000;
	padding: 12px 18px;
	background: var(--ktt-navy);
	color: #fff;
	font: 700 14px var(--ktt-font-head);
	text-decoration: none;
	border-radius: var(--ktt-radius);
}
.ktt-skip:focus { top: 12px; }
.ktt-main-anchor { position: relative; top: calc(var(--ktt-header-h) * -1); height: 0; outline: none; }

.ktt-header { position: relative; z-index: 900; background: #fff; box-shadow: 0 1px 0 var(--ktt-border); }
.ktt-header--sticky { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); }
/* Elementor Pro Theme Builder: the location wrapper must be the sticky element. */
.elementor-location-header:has(.ktt-header--sticky) { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 900; }
.elementor-location-header .ktt-header--sticky { position: relative; top: auto; }
.elementor-editor-active .elementor-location-header:has(.ktt-header--sticky) { position: relative; }
.ktt-header.is-scrolled { box-shadow: 0 1px 0 var(--ktt-border), 0 6px 0 rgba(8, 43, 96, .04); }
.ktt-header__bar { height: 4px; background: var(--ktt-orange); }
.ktt-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; height: var(--ktt-header-h); }

.ktt-logo-link { display: inline-flex; align-items: center; text-decoration: none; flex: 0 0 auto; }
.ktt-logo-img { display: block; width: auto; max-height: 52px; }
.ktt-logo { display: inline-flex; align-items: center; gap: 12px; }
.ktt-logo__mark { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: var(--ktt-radius); background: var(--ktt-navy); color: var(--ktt-orange); }
.ktt-logo__type { display: flex; flex-direction: column; line-height: 1; }
.ktt-logo__name { font: 800 18px/1 var(--ktt-font-head); letter-spacing: .02em; text-transform: uppercase; color: var(--ktt-navy); }
.ktt-logo__name span { color: var(--ktt-orange); }
.ktt-logo__sub { margin-top: 5px; font: 700 10.5px/1 var(--ktt-font-head); letter-spacing: .26em; text-transform: uppercase; color: var(--ktt-muted); }
.ktt-logo--light .ktt-logo__mark { background: var(--ktt-orange); color: var(--ktt-navy-deep); }
.ktt-logo--light .ktt-logo__name { color: #fff; }
.ktt-logo--light .ktt-logo__name span { color: var(--ktt-orange-dark); }
.ktt-logo--light .ktt-logo__sub { color: var(--ktt-muted-dark); }

.ktt-nav { flex: 1 1 auto; display: flex; justify-content: center; }
.ktt-menu, .ktt-menu ul, .ktt-mmenu, .ktt-mmenu ul, .ktt-flinks, .ktt-legal, .ktt-socials, .ktt-fcontact { list-style: none; margin: 0; padding: 0; }
.ktt-menu { display: flex; align-items: center; gap: 4px; }
.ktt-menu > li { position: relative; display: flex; align-items: center; }
.ktt-menu > li > a {
	display: block;
	padding: 10px 12px;
	font: 600 13.5px/1 var(--ktt-font-head);
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--ktt-muted);
	text-decoration: none;
	white-space: nowrap;
	position: relative;
	transition: color .15s;
}
.ktt-menu > li > a::after {
	content: "";
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 2px;
	height: 2px;
	background: var(--ktt-orange);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .2s var(--ktt-ease);
}
.ktt-menu > li > a:hover, .ktt-menu > li.is-active > a { color: var(--ktt-navy); }
.ktt-menu > li.is-active > a { font-weight: 700; }
.ktt-menu > li > a:hover::after, .ktt-menu > li.is-active > a::after { transform: scaleX(1); }
.ktt-menu > li.menu-item-has-children > a { padding-right: 2px; }
.ktt-sub-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 32px;
	padding: 0;
	margin: 0;
	border: 0;
	background: none;
	color: var(--ktt-muted);
	cursor: pointer;
	border-radius: var(--ktt-radius);
}
.ktt-sub-toggle .ktt-icon { transition: transform .2s; }
.ktt-sub-toggle[aria-expanded="true"] .ktt-icon { transform: rotate(180deg); }
.ktt-menu .sub-menu {
	position: absolute;
	top: calc(100% + 18px);
	left: 0;
	min-width: 260px;
	padding: 8px 0;
	background: #fff;
	border: 1px solid var(--ktt-border);
	border-top: 3px solid var(--ktt-orange);
	box-shadow: 0 6px 0 rgba(8, 43, 96, .06);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .18s, transform .18s, visibility 0s .18s;
	z-index: 20;
}
.ktt-menu .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -22px; height: 22px; }
.ktt-menu > li:hover > .sub-menu,
.ktt-menu > li:focus-within > .sub-menu,
.ktt-menu > li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; transition: opacity .18s, transform .18s; }
.ktt-menu .sub-menu a {
	display: block;
	padding: 10px 20px;
	font: 500 14px/1.35 var(--ktt-font-body);
	color: var(--ktt-charcoal);
	text-decoration: none;
	border-left: 3px solid transparent;
}
.ktt-menu .sub-menu a:hover, .ktt-menu .sub-menu .current-menu-item > a { background: var(--ktt-grey); color: var(--ktt-navy); border-left-color: var(--ktt-orange); }

.ktt-header__actions { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.ktt-header__cta { min-height: 44px; padding: 12px 20px; font-size: 13px; }
.ktt-burger { display: none; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0; border: 1px solid var(--ktt-border); border-radius: var(--ktt-radius); background: #fff; color: var(--ktt-navy); cursor: pointer; }
.ktt-burger__open, .ktt-burger__close { display: inline-flex; }
.ktt-burger .ktt-burger__close { display: none; }
.ktt-burger[aria-expanded="true"] .ktt-burger__open { display: none; }
.ktt-burger[aria-expanded="true"] .ktt-burger__close { display: inline-flex; }

.ktt-mobile {
	position: fixed;
	left: 0;
	right: 0;
	top: calc(var(--ktt-header-h) + 4px + var(--wp-admin--admin-bar--height, 0px));
	bottom: 0;
	overflow-y: auto;
	background: #fff;
	border-top: 1px solid var(--ktt-border);
	padding: 12px var(--ktt-pad-x) 40px;
}
.ktt-mobile[hidden] { display: none; }
.ktt-mmenu > li { border-bottom: 1px solid var(--ktt-border); display: flex; flex-wrap: wrap; align-items: center; }
.ktt-mmenu > li > a { flex: 1 1 auto; display: block; padding: 16px 0; font: 700 16px/1.2 var(--ktt-font-head); text-transform: uppercase; letter-spacing: .04em; color: var(--ktt-navy); text-decoration: none; }
.ktt-mmenu > li.is-active > a { color: var(--ktt-orange-text); }
.ktt-mmenu .ktt-sub-toggle { width: 44px; height: 44px; color: var(--ktt-navy); }
.ktt-mmenu .sub-menu { flex: 0 0 100%; display: none; padding: 0 0 12px 14px; border-left: 2px solid var(--ktt-orange); margin-bottom: 12px; }
.ktt-mmenu li.is-open > .sub-menu { display: block; }
.ktt-mmenu .sub-menu a { display: block; padding: 9px 0; font-size: 15px; color: var(--ktt-charcoal); text-decoration: none; }
.ktt-mobile__foot { display: flex; flex-direction: column; gap: 14px; margin-top: 24px; }
.ktt-mobile__foot .ktt-btn { width: 100%; }
.ktt-mobile__phone { display: inline-flex; align-items: center; gap: 10px; justify-content: center; font: 700 15px var(--ktt-font-head); color: var(--ktt-navy); text-decoration: none; }
body.ktt-menu-open { overflow: hidden; }

@media (max-width: 1180px) {
	.ktt-nav { display: none; }
	.ktt-burger { display: inline-flex; }
}
@media (max-width: 560px) {
	.ktt-header__actions .ktt-header__cta { display: none; }
	.ktt-logo__mark { width: 38px; height: 38px; }
	.ktt-logo__name { font-size: 16px; }
}
@media (min-width: 1181px) { .ktt-mobile { display: none !important; } }

/* ---------- Footer ---------- */

.ktt-footer { position: relative; background: var(--ktt-navy-deep); color: var(--ktt-muted-dark); border-top: 4px solid var(--ktt-orange); font-size: 15px; }
.ktt-footer__grid { display: grid; grid-template-columns: 1.5fr repeat(3, minmax(0, 1fr)) 1.3fr; gap: 40px; padding-top: 72px; padding-bottom: 56px; }
.ktt-footer__intro { margin: 20px 0 0; line-height: 1.7; max-width: 340px; }
.ktt-footer__title { position: relative; margin: 6px 0 22px; padding-bottom: 12px; font: 700 13px/1 var(--ktt-font-head); letter-spacing: .14em; text-transform: uppercase; color: #fff; }
.ktt-footer__title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 2px; background: var(--ktt-orange); }
.ktt-flinks li { margin: 0 0 11px; }
.ktt-flinks a, .ktt-fcontact a, .ktt-legal a { color: var(--ktt-muted-dark); text-decoration: none; transition: color .15s; }
.ktt-flinks a:hover, .ktt-fcontact a:hover, .ktt-legal a:hover { color: #fff; }
.ktt-flinks a:hover { text-decoration: underline; text-decoration-color: var(--ktt-orange); text-underline-offset: 4px; }
.ktt-fcontact li { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 14px; line-height: 1.5; }
.ktt-fcontact .ktt-icon { color: var(--ktt-orange-dark); margin-top: 2px; }
.ktt-footer .ktt-socials { margin-top: 24px; }
.ktt-socials { display: flex; flex-wrap: wrap; gap: 10px; }
.ktt-socials a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid var(--ktt-navy-line); border-radius: var(--ktt-radius); color: #fff; transition: background .15s, border-color .15s; }
.ktt-socials a:hover { background: var(--ktt-orange); border-color: var(--ktt-orange); color: var(--ktt-navy-deep); }
.ktt-w-contact .ktt-socials a, .ktt-tone-white .ktt-socials a { border-color: var(--ktt-border); color: var(--ktt-navy); }
.ktt-footer__bottom { border-top: 1px solid var(--ktt-navy-line); padding: 22px 0 26px; font-size: 13px; }
.ktt-footer__notice { margin: 0 0 14px; line-height: 1.6; max-width: 900px; }
.ktt-footer__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }
.ktt-footer__copy { margin: 0; }
.ktt-legal { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.ktt-legal a { font: 700 12px var(--ktt-font-head); letter-spacing: .1em; text-transform: uppercase; }
@media (max-width: 1100px) { .ktt-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ktt-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 640px) { .ktt-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px 20px; padding-top: 56px; } .ktt-footer__contact { grid-column: 1 / -1; } }

/* ---------- Hero ---------- */

.ktt-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: var(--hero-min, 680px);
	overflow: hidden;
	background: var(--ktt-navy-deep);
	color: #fff;
	isolation: isolate;
}
.ktt-hero__bg { position: absolute; inset: 0; z-index: -3; }
.ktt-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.ktt-hero__shade {
	position: absolute;
	inset: 0;
	z-index: -2;
	opacity: var(--ov, .88);
	background: linear-gradient(100deg, var(--ktt-navy-deep) 0%, rgba(8, 43, 96, .94) 42%, rgba(8, 43, 96, .55) 75%, rgba(8, 43, 96, .25) 100%);
}
.ktt-hero:not(.has-image) .ktt-hero__shade { opacity: 1; background: radial-gradient(120% 90% at 85% 10%, var(--ktt-navy) 0%, var(--ktt-navy-deep) 70%); }
.ktt-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: linear-gradient(90deg, #000 0%, transparent 85%);
	-webkit-mask-image: linear-gradient(90deg, #000 0%, transparent 85%);
}
.ktt-hero::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--ktt-orange); }
.ktt-hero__wm { position: absolute; right: -.04em; bottom: -.18em; z-index: -1; font: 900 clamp(90px, 15vw, 240px)/1 var(--ktt-font-head); letter-spacing: .04em; text-transform: uppercase; color: #fff; opacity: .05; white-space: nowrap; pointer-events: none; user-select: none; }
.ktt-hero__inner { padding-top: 96px; padding-bottom: 88px; }
.ktt-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 26px;
	padding: 9px 16px;
	background: rgba(0, 23, 61, .72);
	border: 1px solid var(--ktt-navy-line);
	border-radius: var(--ktt-radius);
	font: 700 12px/1.2 var(--ktt-font-head);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #fff;
}
.ktt-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ktt-orange); box-shadow: 0 0 0 0 rgba(255, 87, 29, .6); animation: ktt-pulse 2s infinite; }
@keyframes ktt-pulse { 0% { box-shadow: 0 0 0 0 rgba(255, 87, 29, .55); } 70% { box-shadow: 0 0 0 10px rgba(255, 87, 29, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 87, 29, 0); } }
.ktt-hero__title {
	max-width: 900px;
	margin: 0;
	font: 800 clamp(38px, 5.6vw, 76px)/1.02 var(--ktt-font-head);
	letter-spacing: -.005em;
	text-transform: uppercase;
	color: #fff;
}
.ktt-hero__title .ktt-hl { display: block; color: var(--ktt-orange); }
.ktt-hero__text { max-width: 640px; margin: 26px 0 0; font-size: 18px; line-height: 1.7; color: #D3DCEE; }
.ktt-hero__tiles {
	list-style: none;
	margin: 64px 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--ktt-gap);
}
.ktt-hero__tiles li {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 20px 20px 22px;
	background: rgba(0, 23, 61, .66);
	border: 1px solid rgba(22, 62, 126, .8);
	border-top: 3px solid var(--ktt-orange);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.ktt-hero__tile-label { font: 700 11px/1 var(--ktt-font-head); letter-spacing: .16em; color: var(--ktt-orange-dark); }
.ktt-hero__tiles strong { font: 700 17px/1.25 var(--ktt-font-head); text-transform: uppercase; color: #fff; }
.ktt-hero__tile-text { font-size: 14px; line-height: 1.5; color: var(--ktt-muted-dark); }
@media (max-width: 1024px) { .ktt-hero__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.ktt-hero { min-height: 0; }
	.ktt-hero__inner { padding-top: 64px; padding-bottom: 56px; }
	.ktt-hero__text { font-size: 16px; }
	.ktt-hero__tiles { grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 40px; }
	.ktt-hero__tiles li { padding: 14px; }
	.ktt-hero__tile-text { display: none; }
	.ktt-hero .ktt-actions .ktt-btn { flex: 1 1 100%; }
}

/* ---------- Page hero ---------- */

.ktt-page-hero { position: relative; overflow: hidden; background: var(--ktt-navy); color: #fff; isolation: isolate; }
.ktt-page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
	background-size: 64px 64px;
}
.ktt-page-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--ktt-orange); }
.ktt-page-hero__bg { position: absolute; inset: 0; z-index: -2; }
.ktt-page-hero__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ktt-page-hero.has-image .ktt-page-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(0, 23, 61, .95) 0%, rgba(8, 43, 96, .86) 55%, rgba(8, 43, 96, .55) 100%); }
.ktt-page-hero__wm { position: absolute; right: -.03em; bottom: -.2em; z-index: -1; font: 900 clamp(80px, 13vw, 200px)/1 var(--ktt-font-head); letter-spacing: .04em; text-transform: uppercase; color: #fff; opacity: .06; white-space: nowrap; pointer-events: none; user-select: none; }
.ktt-page-hero__inner { padding-top: 88px; padding-bottom: 80px; }
.ktt-page-hero .ktt-eyebrow { color: var(--ktt-orange-dark); }
.ktt-page-hero__title { margin: 0; max-width: 900px; font: 800 clamp(34px, 4.6vw, 58px)/1.06 var(--ktt-font-head); text-transform: uppercase; color: #fff; }
.ktt-page-hero__text { max-width: 680px; margin-top: 22px; font-size: 18px; line-height: 1.7; color: #D3DCEE; }
.ktt-page-hero__text p { margin: 0 0 .7em; }
.ktt-page-hero__text p:last-child { margin: 0; }
@media (max-width: 767px) { .ktt-page-hero__inner { padding-top: 56px; padding-bottom: 52px; } .ktt-page-hero__text { font-size: 16px; } }

.ktt-crumbs { margin: 0 0 22px; }
.ktt-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; font: 600 12px/1.4 var(--ktt-font-head); letter-spacing: .1em; text-transform: uppercase; }
.ktt-crumbs li { display: inline-flex; align-items: center; gap: 6px; color: var(--ktt-muted-dark); }
.ktt-crumbs li + li::before { content: "/"; color: var(--ktt-orange-dark); }
.ktt-crumbs a { color: #fff; text-decoration: none; }
.ktt-crumbs a:hover { text-decoration: underline; text-decoration-color: var(--ktt-orange); }

/* ---------- Service cards ---------- */

.ktt-scard {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	height: 100%;
	padding: 30px 28px 28px;
	background: #fff;
	border: 1px solid var(--ktt-border);
	border-bottom: 3px solid var(--ktt-orange);
	border-radius: var(--ktt-radius);
	transition: transform .2s var(--ktt-ease), box-shadow .2s var(--ktt-ease), border-color .2s;
}
.ktt-tone-white .ktt-scard { background: var(--ktt-grey); border-color: transparent; border-bottom-color: var(--ktt-orange); }
.ktt-scard:hover { transform: translateY(-4px); box-shadow: 0 6px 0 0 var(--ktt-navy); }
.ktt-scard__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: var(--ktt-radius); background: var(--ktt-navy); color: var(--ktt-orange); }
.ktt-scard__title { margin: 4px 0 0; font: 700 17px/1.3 var(--ktt-font-head); letter-spacing: .02em; text-transform: uppercase; color: var(--ktt-navy); }
.ktt-scard__text { margin: 0; font-size: 15px; line-height: 1.65; color: var(--ktt-muted); flex: 1 1 auto; }
.ktt-scard .ktt-link { margin-top: auto; padding-top: 6px; }
.ktt-scard--cta { background: var(--ktt-navy) !important; border-color: var(--ktt-navy) !important; border-bottom-color: var(--ktt-orange) !important; justify-content: center; }
.ktt-scard--cta .ktt-scard__title { color: #fff; }
.ktt-scard--cta .ktt-scard__text { color: var(--ktt-muted-dark); flex: 0 0 auto; }
.ktt-scard--cta .ktt-btn { margin-top: 8px; background: var(--ktt-cta-bg); box-shadow: 0 4px 0 0 rgba(0, 0, 0, .35); }
.ktt-scard--cta .ktt-btn:hover { background: var(--ktt-cta-hover); }
.ktt-scard--cta:hover { transform: none; box-shadow: none; }

/* ---------- Split / feature ---------- */

.ktt-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; }
.ktt-split--top { align-items: start; }
.ktt-split--img-right .ktt-split__media { order: 2; }
.ktt-split__body .ktt-head { margin-bottom: 24px; }
.ktt-frame { position: relative; aspect-ratio: 5 / 4; border-radius: var(--ktt-radius); }
.ktt-frame--tall { aspect-ratio: 4 / 5; }
.ktt-frame img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; display: block; border-radius: var(--ktt-radius); }
.ktt-frame::before { content: ""; position: absolute; top: -16px; left: -16px; width: 132px; height: 132px; border-top: 4px solid var(--ktt-orange); border-left: 4px solid var(--ktt-orange); z-index: 2; pointer-events: none; }
.ktt-frame::after { content: ""; position: absolute; right: -16px; bottom: -16px; width: 55%; height: 55%; background: var(--ktt-navy); z-index: 0; border-radius: var(--ktt-radius); }
.ktt-split--img-right .ktt-frame::before { left: auto; right: -16px; border-left: 0; border-right: 4px solid var(--ktt-orange); }
.ktt-split--img-right .ktt-frame::after { right: auto; left: -16px; }
.ktt-frame--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ktt-orange);
	background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(135deg, var(--ktt-navy) 0%, var(--ktt-navy-deep) 100%);
	background-size: 40px 40px, 40px 40px, auto;
}
.ktt-frame--empty::after { display: none; }
.ktt-frame--empty > .ktt-icon { position: relative; z-index: 1; }

.ktt-checklist { list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 14px; }
.ktt-checklist li { display: flex; gap: 14px; align-items: flex-start; font-weight: 600; color: var(--ktt-charcoal); line-height: 1.5; }
.ktt-checklist__icon { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; flex: 0 0 26px; border-radius: var(--ktt-radius); background: var(--ktt-orange); color: var(--ktt-navy-deep); }
.ktt-tone-navy .ktt-checklist li, .ktt-tone-deep .ktt-checklist li { color: #fff; }
@media (max-width: 1024px) { .ktt-split { gap: 48px; } }
@media (max-width: 860px) {
	.ktt-split { grid-template-columns: 1fr; gap: 48px; }
	.ktt-split--img-right .ktt-split__media { order: 0; }
	.ktt-frame { margin: 0 16px; }
}

/* ---------- Expertise cards (dark) ---------- */

.ktt-xcard { position: relative; display: flex; flex-direction: column; height: 100%; background: var(--ktt-navy-deep); border: 1px solid var(--ktt-navy-line); border-radius: var(--ktt-radius); overflow: hidden; transition: border-color .2s, transform .2s var(--ktt-ease); }
.ktt-tone-deep .ktt-xcard { background: var(--ktt-navy); }
.ktt-xcard::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--ktt-orange); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--ktt-ease); z-index: 3; }
.ktt-xcard:hover { transform: translateY(-4px); border-color: var(--ktt-orange); }
.ktt-xcard:hover::before { transform: scaleX(1); }
.ktt-xcard__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.ktt-xcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s var(--ktt-ease); }
.ktt-xcard:hover .ktt-xcard__media img { transform: scale(1.05); }
.ktt-xcard__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(0, 23, 61, .7) 100%); }
.ktt-xcard__media.is-empty { display: flex; align-items: center; justify-content: center; color: var(--ktt-orange); background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(135deg, var(--ktt-navy-line) 0%, var(--ktt-navy) 100%); background-size: 32px 32px, 32px 32px, auto; }
.ktt-xcard__media.is-empty::after { display: none; }
.ktt-xcard__body { display: flex; flex-direction: column; gap: 10px; padding: 24px 24px 26px; flex: 1 1 auto; }
.ktt-xcard__title { margin: 0; font: 700 18px/1.3 var(--ktt-font-head); text-transform: uppercase; letter-spacing: .02em; color: #fff; }
.ktt-xcard__text { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ktt-muted-dark); flex: 1 1 auto; }
.ktt-xcard .ktt-link { margin-top: 6px; }

/* ---------- Partners band ---------- */

.ktt-band { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: 48px; align-items: center; }
.ktt-band__head .ktt-eyebrow { color: var(--ktt-navy-deep); }
.ktt-band__head .ktt-eyebrow::before { background: #fff; }
.ktt-band__title { margin: 0; font: 800 clamp(24px, 2.6vw, 32px)/1.15 var(--ktt-font-head); text-transform: uppercase; color: var(--ktt-navy-deep); }
.ktt-tone-white .ktt-band__title, .ktt-tone-grey .ktt-band__title { color: var(--ktt-navy); }
.ktt-tone-white .ktt-band__head .ktt-eyebrow, .ktt-tone-grey .ktt-band__head .ktt-eyebrow { color: var(--ktt-orange-text); }
.ktt-tone-white .ktt-band__head .ktt-eyebrow::before, .ktt-tone-grey .ktt-band__head .ktt-eyebrow::before { background: var(--ktt-orange); }
.ktt-logos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.ktt-logos a { display: flex; align-items: center; justify-content: center; height: 92px; padding: 16px 20px; background: #fff; border-radius: var(--ktt-radius); text-decoration: none; transition: transform .2s, box-shadow .2s; }
.ktt-logos a:hover { transform: translateY(-3px); box-shadow: 0 4px 0 0 var(--ktt-navy-deep); }
.ktt-logos img { max-width: 100%; max-height: 52px; width: auto; height: auto; object-fit: contain; }
.ktt-logos__name { font: 700 14px/1.2 var(--ktt-font-head); text-align: center; color: var(--ktt-navy); text-transform: uppercase; }
.ktt-principles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.ktt-principles li { display: flex; gap: 14px; align-items: center; padding: 6px 20px; border-left: 2px solid rgba(0, 23, 61, .25); }
.ktt-principles li:first-child { border-left: 0; padding-left: 0; }
.ktt-principles__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; flex: 0 0 48px; border-radius: var(--ktt-radius); background: #fff; color: var(--ktt-navy-deep); }
.ktt-principles__copy { display: flex; flex-direction: column; gap: 4px; }
.ktt-principles strong { font: 800 15px/1.25 var(--ktt-font-head); text-transform: uppercase; letter-spacing: .02em; color: var(--ktt-navy-deep); }
.ktt-principles__copy > span { font-size: 14px; line-height: 1.5; color: var(--ktt-navy-deep); }
.ktt-tone-white .ktt-principles li, .ktt-tone-grey .ktt-principles li { border-left-color: var(--ktt-orange); }
.ktt-tone-white .ktt-principles__icon, .ktt-tone-grey .ktt-principles__icon { background: var(--ktt-navy); color: var(--ktt-orange); }
.ktt-tone-white .ktt-principles strong, .ktt-tone-grey .ktt-principles strong { color: var(--ktt-navy); }
@media (max-width: 1024px) {
	.ktt-band { grid-template-columns: 1fr; gap: 28px; }
	.ktt-principles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 0; }
	.ktt-principles li:nth-child(odd) { border-left: 0; padding-left: 0; }
}
@media (max-width: 560px) {
	.ktt-principles { grid-template-columns: 1fr; }
	.ktt-principles li { border-left: 0; padding-left: 0; }
}

.ktt-pcard { position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--ktt-border); border-top: 3px solid var(--ktt-orange); border-radius: var(--ktt-radius); transition: transform .2s, box-shadow .2s; }
.ktt-pcard:hover { transform: translateY(-4px); box-shadow: 0 6px 0 0 var(--ktt-navy); }
.ktt-pcard__logo { display: flex; align-items: center; justify-content: center; height: 140px; padding: 24px; background: var(--ktt-grey); border-bottom: 1px solid var(--ktt-border); }
.ktt-pcard__logo img { max-height: 72px; width: auto; height: auto; max-width: 100%; object-fit: contain; }
.ktt-pcard__logo span { font: 800 18px var(--ktt-font-head); text-transform: uppercase; color: var(--ktt-navy); text-align: center; }
.ktt-pcard__body { padding: 22px 24px 26px; }
.ktt-pcard__title { margin: 0 0 8px; font: 700 18px/1.3 var(--ktt-font-head); text-transform: uppercase; color: var(--ktt-navy); }
.ktt-pcard__text { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ktt-muted); }
.ktt-partner-logo { padding: 20px; background: var(--ktt-grey); border-radius: var(--ktt-radius); margin-bottom: 18px; text-align: center; }
.ktt-partner-logo img { max-height: 90px; width: auto; height: auto; }

/* ---------- Course cards ---------- */

.ktt-ccard { position: relative; display: flex; flex-direction: column; height: 100%; border-radius: var(--ktt-radius); overflow: hidden; transition: transform .2s var(--ktt-ease), box-shadow .2s var(--ktt-ease); }
.ktt-ccard:hover { transform: translateY(-4px); box-shadow: 0 6px 0 0 var(--ktt-navy); }
.ktt-ccard--image { background: #fff; border: 1px solid var(--ktt-border); }
.ktt-ccard--icon { background: var(--ktt-pale); border: 1px solid var(--ktt-border); border-top: 3px solid var(--ktt-orange); padding-top: 28px; }
.ktt-tone-grey .ktt-ccard--icon { background: #fff; }
.ktt-ccard__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--ktt-navy); }
.ktt-ccard__media.is-empty { display: flex; align-items: center; justify-content: center; color: var(--ktt-orange); background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(135deg, var(--ktt-navy) 0%, var(--ktt-navy-deep) 100%); background-size: 32px 32px, 32px 32px, auto; border-bottom: 3px solid var(--ktt-orange); }
.ktt-ccard__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s var(--ktt-ease); }
.ktt-ccard:hover .ktt-ccard__media img { transform: scale(1.05); }
.ktt-ccard__icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin: 0 28px; border-radius: var(--ktt-radius); background: var(--ktt-navy); color: var(--ktt-orange); }
.ktt-ccard__body { display: flex; flex-direction: column; gap: 12px; padding: 22px 28px 28px; flex: 1 1 auto; }
.ktt-ccard__badges { display: flex; flex-wrap: wrap; gap: 6px; }
.ktt-ccard__title { margin: 0; font: 700 19px/1.3 var(--ktt-font-head); text-transform: uppercase; letter-spacing: .015em; color: var(--ktt-navy); }
.ktt-ccard__text { margin: 0; font-size: 15px; line-height: 1.65; color: var(--ktt-muted); flex: 1 1 auto; }
.ktt-ccard__meta { list-style: none; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--ktt-border); display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: var(--ktt-muted); }
.ktt-ccard__meta li { display: inline-flex; align-items: center; gap: 6px; }
.ktt-ccard__meta .ktt-icon { color: var(--ktt-orange-text); }
.ktt-ccard .ktt-link { margin-top: 4px; }

.ktt-badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: var(--ktt-radius); font: 700 10.5px/1.2 var(--ktt-font-head); letter-spacing: .1em; text-transform: uppercase; }
.ktt-badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ktt-badge--direct { background: var(--ktt-navy); color: #fff; }
.ktt-badge--direct::before { background: var(--ktt-orange); }
.ktt-badge--partner { background: var(--ktt-pale); color: var(--ktt-navy); border: 1px solid #BDCCE0; }
.ktt-badge--tbc { background: #fff; color: var(--ktt-muted); border: 1px dashed var(--ktt-border); }
.ktt-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 28px 0 0; font-size: 14px; color: var(--ktt-muted); }
.ktt-legend > span:last-child { margin-left: 4px; }

/* ---------- Feature banner ---------- */

.ktt-banner { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center; }
.ktt-banner__media { grid-column: 1 / span 8; grid-row: 1; aspect-ratio: 16 / 10; border-radius: var(--ktt-radius); overflow: hidden; background: var(--ktt-navy); }
.ktt-banner__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ktt-banner__media.is-empty { background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(135deg, var(--ktt-navy) 0%, var(--ktt-navy-deep) 100%); background-size: 48px 48px, 48px 48px, auto; }
.ktt-banner__panel { grid-column: 7 / span 6; grid-row: 1; position: relative; z-index: 2; padding: 56px 52px; background: var(--ktt-orange); color: var(--ktt-navy-deep); border-radius: var(--ktt-radius); box-shadow: 10px 10px 0 0 var(--ktt-navy); }
.ktt-banner--panel-left .ktt-banner__media { grid-column: 5 / span 8; }
.ktt-banner--panel-left .ktt-banner__panel { grid-column: 1 / span 6; box-shadow: -10px 10px 0 0 var(--ktt-navy); }
.ktt-banner__panel .ktt-eyebrow { color: var(--ktt-navy-deep); }
.ktt-banner__panel .ktt-eyebrow::before { background: #fff; }
.ktt-banner__title { margin: 0 0 16px; font: 800 clamp(28px, 3vw, 40px)/1.1 var(--ktt-font-head); text-transform: uppercase; color: #fff; }
.ktt-banner__text { margin: 0 0 28px; font-size: 17px; line-height: 1.65; font-weight: 500; color: var(--ktt-navy-deep); }
@media (max-width: 960px) {
	.ktt-banner { grid-template-columns: 1fr; }
	.ktt-banner__media, .ktt-banner--panel-left .ktt-banner__media { grid-column: 1; grid-row: 1; }
	.ktt-banner__panel, .ktt-banner--panel-left .ktt-banner__panel { grid-column: 1; grid-row: 2; margin: -48px 16px 0; padding: 40px 28px; box-shadow: 8px 8px 0 0 var(--ktt-navy); }
}

/* ---------- Stats ---------- */

.ktt-stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ktt-stats.ktt-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ktt-stats.ktt-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ktt-stat { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 12px 28px; border-left: 2px solid var(--ktt-orange); }
.ktt-stat:first-child { border-left: 0; }
.ktt-stat__num { display: inline-flex; align-items: baseline; font: 800 clamp(42px, 4.6vw, 60px)/1 var(--ktt-font-head); color: var(--ktt-navy); }
.ktt-stat__suffix { color: var(--ktt-orange); margin-left: 2px; }
.ktt-stat__icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; border: 2px solid var(--ktt-orange); color: var(--ktt-navy); background: var(--ktt-grey); margin-bottom: 4px; }
.ktt-stat__title { margin: 0; font: 700 16px/1.3 var(--ktt-font-head); letter-spacing: .06em; text-transform: uppercase; color: var(--ktt-navy); }
.ktt-stat__text { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ktt-muted); max-width: 260px; }
.ktt-ring { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 150px; height: 150px; }
.ktt-ring svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.ktt-ring__track { fill: none; stroke: var(--ktt-pale); stroke-width: 8; }
.ktt-ring__bar { fill: none; stroke: var(--ktt-orange); stroke-width: 8; stroke-linecap: butt; transition: stroke-dashoffset 1.2s var(--ktt-ease); }
.ktt-ring .ktt-stat__num { font-size: 40px; }
.ktt-tone-navy .ktt-stat__num, .ktt-tone-deep .ktt-stat__num, .ktt-tone-navy .ktt-stat__title, .ktt-tone-deep .ktt-stat__title { color: #fff; }
.ktt-tone-navy .ktt-stat__text, .ktt-tone-deep .ktt-stat__text { color: var(--ktt-muted-dark); }
.ktt-tone-navy .ktt-stat__icon, .ktt-tone-deep .ktt-stat__icon { background: transparent; color: #fff; }
.ktt-tone-grey .ktt-stat__icon { background: #fff; }
@media (max-width: 1024px) {
	.ktt-stats, .ktt-stats.ktt-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 0; }
	.ktt-stat:nth-child(odd) { border-left: 0; }
}
@media (max-width: 560px) {
	.ktt-stats, .ktt-stats.ktt-cols-2, .ktt-stats.ktt-cols-3 { grid-template-columns: 1fr; gap: 0; }
	.ktt-stat { border-left: 0; border-top: 2px solid var(--ktt-orange); padding: 28px 0; }
	.ktt-stat:first-child { border-top: 0; padding-top: 0; }
}

/* ---------- Testimonials ---------- */

.ktt-quote { position: relative; margin: 0; display: flex; flex-direction: column; gap: 22px; padding: 44px 40px 36px; border-radius: var(--ktt-radius); height: 100%; }
.ktt-quote--dark { background: var(--ktt-navy); color: #fff; box-shadow: 0 6px 0 0 var(--ktt-orange); }
.ktt-quote--light { background: #fff; border: 1px solid var(--ktt-border); color: var(--ktt-charcoal); box-shadow: 0 6px 0 0 var(--ktt-navy); }
.ktt-tone-white .ktt-quote--light { background: var(--ktt-grey); border-color: transparent; }
.ktt-quote__mark { color: var(--ktt-orange); line-height: 0; }
.ktt-quote__text { margin: 0; padding: 0; border: 0; font-size: 18px; line-height: 1.7; font-weight: 500; }
.ktt-quote__text p { margin: 0; }
.ktt-quote__by { margin-top: auto; display: flex; align-items: center; gap: 14px; padding-top: 18px; border-top: 1px solid rgba(127, 145, 180, .35); }
.ktt-quote__by strong { display: block; font: 700 15px/1.3 var(--ktt-font-head); text-transform: uppercase; letter-spacing: .04em; }
.ktt-quote__by span span { display: block; margin-top: 3px; font-size: 14px; opacity: .85; }
.ktt-quote--dark .ktt-quote__by span span { color: var(--ktt-muted-dark); opacity: 1; }
.ktt-quote__photo { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
@media (max-width: 767px) { .ktt-quote { padding: 32px 24px 28px; } .ktt-quote__text { font-size: 16px; } }

/* ---------- Team ---------- */

.ktt-member { display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: var(--ktt-radius); overflow: hidden; border-bottom: 3px solid var(--ktt-orange); }
.ktt-member__photo { aspect-ratio: 4 / 5; overflow: hidden; background: var(--ktt-pale); display: flex; align-items: center; justify-content: center; color: var(--ktt-navy); }
.ktt-member__photo img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(.25); transition: filter .3s, transform .5s var(--ktt-ease); }
.ktt-member:hover .ktt-member__photo img { filter: none; transform: scale(1.03); }
.ktt-member__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 6px; flex: 1 1 auto; }
.ktt-member__name { margin: 0; font: 700 18px/1.3 var(--ktt-font-head); text-transform: uppercase; color: var(--ktt-navy); }
.ktt-member__role { margin: 0; font: 700 12px/1.3 var(--ktt-font-head); letter-spacing: .1em; text-transform: uppercase; color: var(--ktt-orange-text); }
.ktt-member__bio { margin: 6px 0 0; font-size: 14px; line-height: 1.6; color: var(--ktt-muted); }
.ktt-member__social { margin-top: auto; padding-top: 10px; color: var(--ktt-navy); align-self: flex-start; }
.ktt-tone-white .ktt-member { background: var(--ktt-grey); }

/* ---------- Accordion ---------- */

.ktt-accordion { border-top: 1px solid var(--ktt-border); }
.ktt-acc-item { border-bottom: 1px solid var(--ktt-border); position: relative; }
.ktt-acc-item::before { content: ""; position: absolute; left: 0; top: -1px; bottom: -1px; width: 3px; background: var(--ktt-orange); transform: scaleY(0); transition: transform .2s; }
.ktt-acc-item.is-open::before { transform: scaleY(1); }
.ktt-acc-item__h { margin: 0; }
.ktt-acc-item__btn { display: flex; align-items: center; gap: 16px; width: 100%; padding: 22px 8px 22px 20px; border: 0; background: transparent; text-align: left; cursor: pointer; color: var(--ktt-navy); font: 700 16px/1.35 var(--ktt-font-head); letter-spacing: .03em; text-transform: uppercase; border-radius: 0; }
.ktt-acc-item__btn:hover { color: var(--ktt-orange-text); background: transparent; }
.ktt-acc-item__num { font: 800 13px/1 var(--ktt-font-head); color: var(--ktt-orange-text); letter-spacing: .06em; min-width: 22px; }
.ktt-acc-item__title { flex: 1 1 auto; }
.ktt-acc-item__chev { color: var(--ktt-navy); transition: transform .2s; }
.ktt-acc-item.is-open .ktt-acc-item__chev { transform: rotate(180deg); }
.ktt-acc-item__panel { padding: 0 20px 24px 58px; }
.ktt-tone-navy .ktt-accordion, .ktt-tone-deep .ktt-accordion, .ktt-tone-navy .ktt-acc-item, .ktt-tone-deep .ktt-acc-item { border-color: var(--ktt-navy-line); }
.ktt-tone-navy .ktt-acc-item__btn, .ktt-tone-deep .ktt-acc-item__btn, .ktt-tone-navy .ktt-acc-item__chev, .ktt-tone-deep .ktt-acc-item__chev { color: #fff; }
@media (max-width: 767px) { .ktt-acc-item__panel { padding-left: 20px; } .ktt-acc-item__btn { font-size: 15px; } }

/* ---------- Posts ---------- */

.ktt-post { position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: var(--ktt-radius); overflow: hidden; transition: transform .2s var(--ktt-ease); }
.ktt-post:hover { transform: translateY(-4px); }
.ktt-tone-navy .ktt-post, .ktt-tone-deep .ktt-post { background: var(--ktt-navy); border: 1px solid var(--ktt-navy-line); }
.ktt-tone-deep .ktt-post { background: var(--ktt-navy); }
.ktt-post__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--ktt-navy-line); display: flex; align-items: center; justify-content: center; color: var(--ktt-orange); }
.ktt-post__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s var(--ktt-ease); }
.ktt-post:hover .ktt-post__media img { transform: scale(1.05); }
.ktt-post__body { display: flex; flex-direction: column; gap: 10px; padding: 22px 24px 26px; flex: 1 1 auto; border-top: 3px solid var(--ktt-orange); }
.ktt-post__date { font: 700 11.5px/1 var(--ktt-font-head); letter-spacing: .12em; text-transform: uppercase; color: var(--ktt-orange-text); }
.ktt-post__title { margin: 0; font: 700 18px/1.35 var(--ktt-font-head); text-transform: uppercase; color: var(--ktt-navy); }
.ktt-post__text { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ktt-muted); flex: 1 1 auto; }
.ktt-tone-navy .ktt-post__title, .ktt-tone-deep .ktt-post__title { color: #fff; }
.ktt-tone-navy .ktt-post__text, .ktt-tone-deep .ktt-post__text { color: var(--ktt-muted-dark); }
.ktt-tone-navy .ktt-post__date, .ktt-tone-deep .ktt-post__date { color: var(--ktt-orange-dark); }

/* ---------- CTA band ---------- */

.ktt-cta-band__wm { position: absolute; right: -.03em; top: 50%; transform: translateY(-50%); font: 900 clamp(80px, 12vw, 180px)/1 var(--ktt-font-head); letter-spacing: .04em; text-transform: uppercase; color: #fff; opacity: .06; white-space: nowrap; pointer-events: none; user-select: none; z-index: 0; }
.ktt-tone-orange .ktt-cta-band__wm { opacity: .16; }
.ktt-tone-grey .ktt-cta-band__wm { color: var(--ktt-navy); opacity: .05; }
.ktt-cta-band__row { display: flex; align-items: center; justify-content: space-between; gap: 32px 48px; flex-wrap: wrap; }
.ktt-cta-band__copy { max-width: 700px; }
.ktt-cta-band__title { margin: 0; font: 800 clamp(26px, 3vw, 38px)/1.15 var(--ktt-font-head); text-transform: uppercase; color: #fff; }
.ktt-cta-band__text { margin: 12px 0 0; font-size: 17px; line-height: 1.6; color: var(--ktt-muted-dark); }
.ktt-cta-band .ktt-actions { margin-top: 0; }
.ktt-tone-orange .ktt-cta-band__title { color: #fff; }
.ktt-tone-orange .ktt-cta-band__text { color: var(--ktt-navy-deep); font-weight: 500; }
.ktt-tone-grey .ktt-cta-band__title { color: var(--ktt-navy); }
.ktt-tone-grey .ktt-cta-band__text { color: var(--ktt-muted); }
.ktt-cta-band.ktt-tone-navy::after, .ktt-cta-band.ktt-tone-deep::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--ktt-orange); }

/* ---------- Forms & contact ---------- */

.ktt-form-card { position: relative; padding: 40px; background: #fff; border: 1px solid var(--ktt-border); border-left: 4px solid var(--ktt-orange); border-radius: var(--ktt-radius); box-shadow: 0 6px 0 0 var(--ktt-navy); }
.ktt-tone-white .ktt-form-card { background: #fff; }
.ktt-form-layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
.ktt-form-layout__copy .ktt-head { margin-bottom: 28px; }
.ktt-cdetails { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 12px; }
.ktt-cdetail { display: flex; align-items: center; gap: 16px; padding: 16px 18px; background: var(--ktt-grey); border-radius: var(--ktt-radius); }
.ktt-tone-grey .ktt-cdetail { background: #fff; }
.ktt-cdetail__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; flex: 0 0 48px; border-radius: var(--ktt-radius); background: var(--ktt-navy); color: #fff; }
.ktt-cdetail__label { display: block; font: 700 11px/1.2 var(--ktt-font-head); letter-spacing: .14em; text-transform: uppercase; color: var(--ktt-orange-text); }
.ktt-cdetail__value { display: block; margin-top: 4px; font: 600 16px/1.45 var(--ktt-font-body); color: var(--ktt-navy); }
.ktt-cdetail__value a { color: inherit; text-decoration: none; }
.ktt-cdetail__value a:hover { text-decoration: underline; text-decoration-color: var(--ktt-orange); }
@media (max-width: 960px) { .ktt-form-layout { grid-template-columns: 1fr; gap: 40px; } }
@media (max-width: 640px) { .ktt-form-card { padding: 26px 20px; } }

/* ---------- Detail templates (service / course / partner pages) ---------- */

.ktt-template { display: block; }
.ktt-detail { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 64px; align-items: start; }
.ktt-aside { display: grid; gap: 20px; position: sticky; top: calc(var(--ktt-header-h) + 32px + var(--wp-admin--admin-bar--height, 0px)); }
.ktt-aside__card { padding: 28px; background: var(--ktt-grey); border-radius: var(--ktt-radius); }
.ktt-aside__card--navy { background: var(--ktt-navy); color: #fff; border-bottom: 3px solid var(--ktt-orange); }
.ktt-aside__card--navy .ktt-eyebrow { color: var(--ktt-orange-dark); }
.ktt-aside__card--accent { background: #fff; border: 1px solid var(--ktt-border); border-top: 3px solid var(--ktt-orange); }
.ktt-aside__title { margin: 0 0 20px; font: 800 22px/1.2 var(--ktt-font-head); text-transform: uppercase; color: #fff; }
.ktt-aside__label { margin: 0 0 16px; font: 700 13px/1 var(--ktt-font-head); letter-spacing: .14em; text-transform: uppercase; color: var(--ktt-navy); }
.ktt-aside__card--navy .ktt-btn { width: 100%; }
.ktt-aside__list { list-style: none; margin: 0; padding: 0; }
.ktt-aside__list a { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--ktt-border); color: var(--ktt-navy); text-decoration: none; font-weight: 600; font-size: 15px; }
.ktt-aside__list li:last-child a { border-bottom: 0; }
.ktt-aside__list .ktt-icon { color: var(--ktt-orange-text); }
.ktt-aside__list a:hover { color: var(--ktt-orange-text); }
.ktt-specs { margin: 18px 0 0; display: grid; gap: 0; }
.ktt-specs > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--ktt-border); font-size: 14.5px; }
.ktt-specs dt { font: 700 11.5px/1.5 var(--ktt-font-head); letter-spacing: .1em; text-transform: uppercase; color: var(--ktt-muted); }
.ktt-specs dd { margin: 0; color: var(--ktt-charcoal); font-weight: 600; }
.ktt-empty { display: flex; gap: 20px; align-items: flex-start; padding: 32px; background: var(--ktt-grey); border-left: 4px solid var(--ktt-orange); border-radius: var(--ktt-radius); color: var(--ktt-navy); }
.ktt-empty h2 { margin: 0 0 6px; font: 800 20px/1.2 var(--ktt-font-head); text-transform: uppercase; color: var(--ktt-navy); }
.ktt-empty p { margin: 0; color: var(--ktt-muted); }
@media (max-width: 1024px) { .ktt-detail { grid-template-columns: 1fr; gap: 40px; } .ktt-aside { position: static; } }

/* ---------- Editor helpers ---------- */

.ktt-editor-notice { margin: 0; padding: 16px 20px; background: #FFF4EC; border: 1px dashed var(--ktt-orange); color: var(--ktt-navy-deep); font: 500 14px/1.5 var(--ktt-font-body); }
.ktt-editor-notice strong { font-family: var(--ktt-font-head); text-transform: uppercase; letter-spacing: .06em; font-size: 12px; margin-right: 6px; }

/* Elementor: KTT widgets are full-bleed sections */
.elementor-widget[class*="elementor-widget-ktt-"] { width: 100%; }
.elementor-widget[class*="elementor-widget-ktt-"]:not(:last-child) { margin-bottom: 0; }
.elementor-section.elementor-section-full_width > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget[class*="elementor-widget-ktt-"] { margin-bottom: 0; }

/* Forms inside KTT layouts */
.ktt-form-card .ktt-form-wrap { --kf-navy: var(--ktt-navy); }

/* ---------- Guards ----------
 * Elementor Site Settings and the Hello reset style bare h1–h6, a and button
 * elements (e.g. `.elementor-kit-5 h2`, `a:hover`, `button:hover`). These
 * higher-specificity rules keep KTT components on-brand regardless.
 */
body.ktt-site .ktt-title { color: var(--ktt-navy); }
body.ktt-site .ktt-tone-navy .ktt-title, body.ktt-site .ktt-tone-deep .ktt-title,
body.ktt-site .ktt-hero__title, body.ktt-site .ktt-page-hero__title,
body.ktt-site .ktt-xcard__title, body.ktt-site .ktt-banner__title,
body.ktt-site .ktt-cta-band__title, body.ktt-site .ktt-aside__title,
body.ktt-site .ktt-footer__title, body.ktt-site .ktt-scard--cta .ktt-scard__title,
body.ktt-site .ktt-tone-navy .ktt-post__title, body.ktt-site .ktt-tone-deep .ktt-post__title,
body.ktt-site .ktt-tone-navy .ktt-stat__title, body.ktt-site .ktt-tone-deep .ktt-stat__title { color: #fff; }
body.ktt-site .ktt-tone-orange .ktt-title, body.ktt-site .ktt-band__title { color: var(--ktt-navy-deep); }
body.ktt-site .ktt-tone-white .ktt-band__title, body.ktt-site .ktt-tone-grey .ktt-band__title,
body.ktt-site .ktt-tone-grey .ktt-cta-band__title,
body.ktt-site .ktt-scard__title, body.ktt-site .ktt-ccard__title, body.ktt-site .ktt-pcard__title,
body.ktt-site .ktt-member__name, body.ktt-site .ktt-stat__title, body.ktt-site .ktt-post__title,
body.ktt-site .ktt-aside__label, body.ktt-site .ktt-empty h2 { color: var(--ktt-navy); }
body.ktt-site .ktt-tone-navy .ktt-post__title, body.ktt-site .ktt-tone-deep .ktt-post__title { color: #fff; }
body.ktt-site .ktt-hero__title .ktt-hl, body.ktt-site .ktt-title .ktt-hl { color: var(--ktt-orange); }
body.ktt-site .ktt-tone-orange .ktt-title .ktt-hl { color: #fff; }

body.ktt-site .ktt-stretched, body.ktt-site .ktt-stretched:hover { color: inherit; }
body.ktt-site .ktt-flinks a, body.ktt-site .ktt-fcontact a, body.ktt-site .ktt-legal a { color: var(--ktt-muted-dark); }
body.ktt-site .ktt-flinks a:hover, body.ktt-site .ktt-fcontact a:hover, body.ktt-site .ktt-legal a:hover { color: #fff; }
body.ktt-site .ktt-crumbs a, body.ktt-site .ktt-crumbs a:hover { color: #fff; }
body.ktt-site .ktt-menu > li > a { color: var(--ktt-muted); }
body.ktt-site .ktt-menu > li > a:hover, body.ktt-site .ktt-menu > li.is-active > a { color: var(--ktt-navy); }
body.ktt-site .ktt-menu .sub-menu a, body.ktt-site .ktt-mmenu .sub-menu a { color: var(--ktt-charcoal); }
body.ktt-site .ktt-menu .sub-menu a:hover { color: var(--ktt-navy); }
body.ktt-site .ktt-mmenu > li > a { color: var(--ktt-navy); }
body.ktt-site .ktt-mmenu > li.is-active > a { color: var(--ktt-orange-text); }
body.ktt-site a.ktt-link, body.ktt-site a.ktt-link:hover { color: var(--ktt-orange-text); }
body.ktt-site .ktt-tone-navy a.ktt-link, body.ktt-site .ktt-tone-deep a.ktt-link { color: var(--ktt-orange-dark); }
body.ktt-site .ktt-socials a { color: #fff; }
body.ktt-site .ktt-socials a:hover { color: var(--ktt-navy-deep); }
body.ktt-site .ktt-w-contact .ktt-socials a, body.ktt-site .ktt-tone-white .ktt-socials a { color: var(--ktt-navy); }
body.ktt-site .ktt-cdetail__value a, body.ktt-site .ktt-cdetail__value a:hover { color: inherit; }
body.ktt-site .ktt-aside__list a, body.ktt-site .ktt-specs dd a { color: var(--ktt-navy); }
body.ktt-site .ktt-specs dd a { text-decoration: underline; text-decoration-color: var(--ktt-orange); text-underline-offset: 3px; }
body.ktt-site .ktt-prose a { color: var(--ktt-navy); }
body.ktt-site .ktt-prose a:hover { color: var(--ktt-orange-text); }
body.ktt-site .ktt-aside__list a:hover { color: var(--ktt-orange-text); }
body.ktt-site .ktt-mobile__phone, body.ktt-site .ktt-logo-link, body.ktt-site .ktt-member__social { color: var(--ktt-navy); }
body.ktt-site .ktt-btn--primary, body.ktt-site .ktt-btn--primary:hover, body.ktt-site .ktt-btn--navy, body.ktt-site .ktt-btn--navy:hover { color: #fff; }
body.ktt-site .ktt-btn--light, body.ktt-site .ktt-btn--light:hover { color: var(--ktt-navy); }

/* Buttons: neutralise global button styles for KTT controls */
body.ktt-site .ktt-sub-toggle, body.ktt-site .ktt-sub-toggle:hover, body.ktt-site .ktt-sub-toggle:focus,
body.ktt-site .ktt-acc-item__btn, body.ktt-site .ktt-acc-item__btn:hover, body.ktt-site .ktt-acc-item__btn:focus,
body.ktt-site .ktt-burger, body.ktt-site .ktt-burger:hover, body.ktt-site .ktt-burger:focus {
	background: transparent;
	box-shadow: none;
	text-transform: none;
	letter-spacing: normal;
	font-weight: inherit;
	line-height: inherit;
}
body.ktt-site .ktt-sub-toggle, body.ktt-site .ktt-sub-toggle:hover, body.ktt-site .ktt-sub-toggle:focus { width: 26px; height: 32px; padding: 0; border: 0; border-radius: var(--ktt-radius); color: var(--ktt-muted); }
body.ktt-site .ktt-mmenu .ktt-sub-toggle { width: 44px; height: 44px; color: var(--ktt-navy); }
body.ktt-site .ktt-burger, body.ktt-site .ktt-burger:hover, body.ktt-site .ktt-burger:focus { width: 46px; height: 46px; padding: 0; border: 1px solid var(--ktt-border); border-radius: var(--ktt-radius); background: #fff; color: var(--ktt-navy); }
body.ktt-site .ktt-acc-item__btn, body.ktt-site .ktt-acc-item__btn:focus { width: 100%; padding: 22px 8px 22px 20px; border: 0; border-radius: 0; color: var(--ktt-navy); font: 700 16px/1.35 var(--ktt-font-head); letter-spacing: .03em; text-transform: uppercase; white-space: normal; text-align: left; }
body.ktt-site .ktt-acc-item__btn:hover { color: var(--ktt-orange-text); }
body.ktt-site .ktt-tone-navy .ktt-acc-item__btn, body.ktt-site .ktt-tone-deep .ktt-acc-item__btn { color: #fff; }
body.ktt-site .ktt-form-submit, body.ktt-site .ktt-form-submit:focus { background: var(--ktt-cta-bg); color: #fff; border: 0; border-radius: var(--ktt-radius); padding: 14px 24px; font: 700 14px/1.1 var(--ktt-font-head); letter-spacing: .06em; text-transform: uppercase; box-shadow: 0 4px 0 0 var(--ktt-navy); }
body.ktt-site .ktt-form-submit:hover { background: var(--ktt-cta-hover); color: #fff; }
@media (max-width: 767px) { body.ktt-site .ktt-acc-item__btn, body.ktt-site .ktt-acc-item__btn:focus { font-size: 15px; } }

/* ---------- Motion preferences ---------- */

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

/* Screen-reader text fallback (Hello provides one; this is a safety net) */
.ktt-site .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
