body {
	font-family:               'Open Sans', 'Segoe UI', Roboto, OpenSans, Verdana, Arial, sans-serif;
	font-weight:               normal;
	font-style:                normal;
	overflow-y:                scroll;
}

h1 {
	margin-bottom:             30px;
}

h2, h3, h4 {
	margin-top:                30px;
}

textarea.textareaLarge {
	height:                    200px;
}

.small {
	color:                     #333333;
}

.caption {
	font-size:                 10pt;
	color:                     #999999;
}

img {
	max-width:                 100%;
	height:                    auto;
}

/* TO TOP */

#tpl_totop {
	position:                  fixed;
	z-index:                   99;
	bottom:                    20px;
	right:                     20px;
	display:                   none;
	width:                     44px;
	height:                    44px;
	border:                    none;
	border-radius:             50%;
	outline:                   none;
	background-color:          var(--itkb-blue);
	cursor:                    pointer;
}

#tpl_totop:hover {
	background-color:          #1d1d21;
}

#tpl_totop img {
	margin-bottom:             0.25rem;
	width:                     18px;
}

/* TOGGLE SWITCH */

.tpl_switch {
	position:                  relative;
	display:                   inline-block;
	width:                     40px;
	height:                    18px;
	margin-top:                -20px;
}

.tpl_switch input {
	opacity:                   0;
	width:                     0;
	height:                    0;
}

.tpl_slider {
	position:                  absolute;
	cursor:                    pointer;
	top:                       0;
	left:                      0;
	right:                     0;
	bottom:                    0;
	background-color:          #cccccc;
	-webkit-transition:        .4s;
	transition:                .4s;
	border-radius:             25px;
}

.tpl_slider:before {
	position:                  absolute;
	font-family:               'icomoon-ultimate' !important;
	content:                   "\ed6c";
	font-size:                 10px;
	padding-top:               2px;
	-webkit-box-sizing:        border-box;
	-moz-box-sizing:           border-box;
	box-sizing:                border-box;
	text-align:                center;
	height:                    20px;
	width:                     20px;
	left:                      -1px;
	bottom:                    -1px;
	background-color:          #ffffff;
	-webkit-transition:        .4s;
	transition:                .4s;
	box-shadow:                0 0 20px 0 rgb(0 0 0 / 20%);
	border-radius:             50%;
	border: 1px solid #999999;
}

input:checked + .tpl_slider {
	background-color:          #1155aa;
}

input:checked + .tpl_slider:before {
	-webkit-transform:         translateX(24px);
	-ms-transform:             translateX(24px);
	transform:                 translateX(24px);
	content:                   "\ed6f";
	font-size:                 12px;
	padding-top:               0;
}

label.tpl_slider {
	padding:                   0;
	margin:                    0;
}

div.form-check label.tpl_switch {
	display:                   inline-block;
	left:                      -20px;
	top:                       10px;
}

div.is-invalid .invalid-feedback {
	display:                   block;
}

/* Redesign foundation: colours derived from the original logo. */
:root {
 --itkb-blue: #1155aa;
 --itkb-green: #00bb77;
 --itkb-green-text: #00a066;
 --itkb-ink: #10243e;
 --itkb-text: #3d506a;
 --itkb-pale: #e8f5ff;
 --itkb-border: #dce5ee;
 --itkb-header-height: 125px;
}
.itkb-site { color: var(--itkb-text); background: #fff; line-height: 1.75; min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.itkb-site .container { max-width: 1240px; padding-left: 28px; padding-right: 28px; }
.itkb-site a { color: var(--itkb-blue); }
.itkb-site a:hover { color: #073e86; }
.itkb-site :focus-visible { outline: 3px solid var(--itkb-blue); outline-offset: 4px; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 200; padding: 10px 18px; background: #fff; }
.skip-link:focus { top: 12px; }
.site-header { background: #fff; border-bottom: 1px solid #f0f4f8; position: sticky; top: 0; z-index: 100; }
.itkb-site .tpl_navbar { padding-top: 22px; padding-bottom: 22px; gap: 24px; transition: none; }
.itkb-site #tpl_logo { width: 430px; margin: 0; transition: none; }
.itkb-site .navbar-brand { margin: 0; padding: 0; flex-shrink: 0; }
.itkb-site #tpl_mainnavigation { padding: 0; justify-content: flex-end; gap: 28px; }
.itkb-site .navbar-nav { gap: 24px; }
.itkb-site #tpl_navbar .nav-link { color: var(--itkb-text); padding: 10px 0; white-space: nowrap; border-bottom: 2px solid transparent; }
.itkb-site #tpl_navbar .active .nav-link, .itkb-site #tpl_navbar .nav-link:hover { color: var(--itkb-blue); border-bottom-color: var(--itkb-blue); }
.header-search { display: flex; align-items: center; position: relative; }
.header-search input { width: 0; padding: 0; border: 0; opacity: 0; background: #fff; color: var(--itkb-text); }
.header-search:focus-within input, .header-search:hover input { width: 180px; padding: 8px 12px; border: 1px solid var(--itkb-border); opacity: 1; }
.header-search:focus-within, .header-search:hover { z-index: 5; }
.header-search button { border: 0; background: transparent; color: var(--itkb-text); padding: 10px; font-size: 22px; cursor: pointer; }
.page-hero { background: var(--itkb-pale); padding: 48px 0 38px; }
.page-title { color: var(--itkb-green-text); font-size: clamp(2rem, 4.2vw, 3.5rem); font-weight: 700; line-height: 1.2; margin: 0; overflow-wrap: anywhere; letter-spacing: -0.035em; }
.page-title-first { color: var(--itkb-blue); }
.page-updated { font-size: 14px; margin: 14px 0 0; }
.page-body { padding-top: 40px; padding-bottom: 44px; }
.page-content { max-width: 900px; min-width: 0; overflow-wrap: anywhere; }
.page-content h2, .page-content h3, .page-content h4 { color: var(--itkb-ink); font-weight: 700; line-height: 1.3; margin: 38px 0 16px; }
.page-content h2 { font-size: 28px; letter-spacing: -0.025em; }
.page-content h3 { font-size: 21px; }
.page-content > :first-child { margin-top: 0; }
.page-content p { margin-bottom: 20px; }
.page-content p a, .page-content li a { text-decoration: underline; text-underline-offset: 3px; }
.page-content pre { max-width: 100%; overflow-x: auto; white-space: pre; overflow-wrap: normal; }
.page-content table { display: block; max-width: 100%; overflow-x: auto; }
.page-content iframe { max-width: 100%; }
.itkb-site .tpl_footer { border-top: 1px solid var(--itkb-border); margin: 0; padding: 22px 0; font-size: 13px; color: var(--itkb-text); background: #fff; }
.site-footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-footer-inner p { margin: 0; }
.site-footer-inner nav { display: flex; flex-wrap: wrap; gap: 0; }
.itkb-site .tpl_footer a { color: var(--itkb-blue); text-decoration: none; }
.site-footer-inner nav a + a::before { content: '|'; color: var(--itkb-text); display: inline-block; margin: 0 16px; }
@media (min-width: 768px) and (max-width: 1100px) {
 .itkb-site #tpl_logo { width: 300px; }
 .itkb-site .navbar-nav { gap: 18px; }
 .itkb-site #tpl_mainnavigation { gap: 12px; }
 .header-search:focus-within input, .header-search:hover input { position: absolute; right: 44px; }
}
@media (max-width: 767px) {
 .itkb-site .container { padding-left: 22px; padding-right: 22px; }
 .itkb-site .tpl_navbar { padding-top: 18px; padding-bottom: 18px; gap: 0; }
 .itkb-site #tpl_logo { width: min(62vw, 310px); }
 .itkb-site .navbar-toggler { padding: 6px 9px; }
 .itkb-site #tpl_mainnavigation { padding-top: 18px; }
 .itkb-site .navbar-nav { gap: 0; }
 .header-search { margin-top: 12px; }
 .header-search input, .header-search:focus-within input, .header-search:hover input { width: 100%; opacity: 1; padding: 8px 12px; border: 1px solid var(--itkb-border); }
 .page-hero { padding: 32px 0; }
 .page-title { font-size: clamp(1.8rem, 7.6vw, 2.6rem); }
 .page-body { padding-top: 30px; padding-bottom: 32px; }
 .page-content h2 { font-size: 25px; }
 .site-footer-inner { flex-direction: column; align-items: flex-start; gap: 12px; }
 .site-footer-inner nav { gap: 8px 18px; }
 .site-footer-inner nav a + a::before { content: none; }
}

/* Persistent orientation: compact header and automatic heading navigation. */
html { scroll-padding-top: calc(var(--itkb-header-height) + 24px); }
.site-header.is-compact { box-shadow: 0 3px 16px rgb(16 36 62 / 8%); }
@media (min-width: 768px) {
 .itkb-site .site-header.is-compact .tpl_navbar { padding-top: 12px; padding-bottom: 12px; }
 .itkb-site .site-header.is-compact #tpl_logo { width: 300px; }
}
.page-columns { min-width: 0; }
.has-page-navigation { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 48px; align-items: start; }
.has-page-navigation .page-content { grid-column: 1; grid-row: 1; }
.page-sidebar { grid-column: 2; grid-row: 1; position: sticky; top: calc(var(--itkb-header-height) + 28px); min-width: 0; border-left: 1px solid var(--itkb-border); padding-left: 26px; max-height: calc(100dvh - var(--itkb-header-height) - 52px); overflow-y: auto; }
.page-toc summary { color: var(--itkb-ink); font-weight: 700; font-size: 20px; line-height: 1.4; cursor: pointer; }
.page-toc summary::marker { color: var(--itkb-blue); font-size: 12px; }
.page-toc ul { list-style: none; padding: 0; margin: 20px 0 0; }
.page-toc li + li { margin-top: 12px; }
.page-toc a { display: block; line-height: 1.55; font-size: 15px; overflow-wrap: anywhere; padding: 4px 0 4px 14px; border-left: 3px solid transparent; }
.page-toc a:hover, .page-toc a[aria-current="location"] { border-left-color: var(--itkb-green); color: var(--itkb-blue); text-decoration: none; }
@media (max-width: 991px) {
 .has-page-navigation { grid-template-columns: minmax(0, 1fr) 220px; gap: 28px; }
 .page-sidebar { padding-left: 20px; }
}
@media (max-width: 767px) {
 :root { --itkb-header-height: 84px; }
 .has-page-navigation { display: flex; flex-direction: column; gap: 28px; }
 .page-sidebar { position: static; width: 100%; max-height: none; overflow: visible; padding: 16px 18px; border: 1px solid var(--itkb-border); border-radius: 5px; background: #f6faff; }
 .page-toc summary { font-size: 18px; }
 .page-toc nav { max-height: 45dvh; overflow-y: auto; padding: 0 4px 4px; }
}

/* Desktop navigation is a heading; only mobile navigation can be collapsed. */
.page-toc-heading { color: var(--itkb-ink); font-size: 20px; font-weight: 700; line-height: 1.4; margin: 0; }
@media (min-width: 768px) {
 .page-toc summary { display: none; }
}
@media (max-width: 767px) {
 .page-toc-heading { display: none; }
}

/* Keep the footer at the viewport bottom when content is short. */
.itkb-site > .site-header, .itkb-site > .tpl_footer { flex-shrink: 0; }
.itkb-site > #main-content { flex: 1 0 auto; min-width: 0; }

/* Bootstrap 5 defaults aligned with the established site typography and colours. */
.itkb-site h1, .itkb-site h2, .itkb-site h3, .itkb-site h4, .itkb-site h5, .itkb-site h6 { color: var(--itkb-ink); }
.itkb-site h1.page-title { color: var(--itkb-green-text); }
.itkb-site .btn-primary {
 --bs-btn-bg: var(--itkb-blue); --bs-btn-border-color: var(--itkb-blue);
 --bs-btn-hover-bg: #073e86; --bs-btn-hover-border-color: #073e86;
 --bs-btn-active-bg: #073e86; --bs-btn-active-border-color: #073e86;
 --bs-btn-disabled-bg: var(--itkb-blue); --bs-btn-disabled-border-color: var(--itkb-blue);
}

.itkb-site .page-toc a { text-decoration: none; }

/* Sitemap: server-rendered links with a lightweight visual hierarchy. */
.sitemap-intro { max-width: 850px; margin-bottom: 30px; }
.sitemap-tree { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.sitemap-group { min-width: 0; border: 1px solid var(--itkb-border); border-radius: 5px; padding: 20px 24px; }
.sitemap-group-children { grid-column: 1 / -1; }
.sitemap-group-title { font-size: 20px; font-weight: 700; line-height: 1.4; margin: 0; }
.sitemap-group-title a { text-decoration: none; }
.sitemap-group-title a:hover { text-decoration: underline; text-underline-offset: 4px; }
.sitemap-tree a { overflow-wrap: anywhere; }
.sitemap-group > ul { list-style: none; padding: 0; margin: 20px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 36px; }
.sitemap-group > ul > li { min-width: 0; border-top: 1px solid var(--itkb-border); padding: 11px 0; }
.sitemap-group > ul > li > a { display: block; line-height: 1.6; text-decoration: none; }
.sitemap-group > ul > li > a:hover { text-decoration: underline; text-underline-offset: 3px; }
.sitemap-group ul ul { padding-left: 22px; margin-top: 10px; }
@media (max-width: 767px) {
 .sitemap-tree, .sitemap-group > ul { grid-template-columns: minmax(0, 1fr); }
 .sitemap-tree { gap: 14px; }
 .sitemap-group { padding: 18px; }
}

/* Search: clear titles, existing categories and compact contextual excerpts. */
.search-page { max-width: 1000px; }
.search-page-form > label { display: block; font-weight: 600; margin-bottom: 10px; color: var(--itkb-ink); }
.search-field-row { display: flex; gap: 12px; }
.search-field-row input { min-width: 0; padding: 12px 16px; font-size: 17px; }
.search-field-row button { padding: 12px 28px; white-space: nowrap; font-weight: 600; }
.search-field-row .icon { margin-right: 8px; }
.search-help { margin-top: 20px; }
.itkb-site .search-results > h2 { font-size: 24px; font-weight: 700; line-height: 1.4; margin: 34px 0 22px; overflow-wrap: anywhere; }
.search-result-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.search-result-card { border: 1px solid var(--itkb-border); border-radius: 6px; padding: 24px 28px; min-width: 0; }
.search-result-card:focus-within { border-color: var(--itkb-blue); }
.itkb-site .search-result-card h3 { font-size: 22px; line-height: 1.4; font-weight: 700; margin: 10px 0 14px; overflow-wrap: anywhere; }
.search-result-card h3 a { text-decoration: none; }
.search-result-card h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.category-badges { display: inline-flex; flex-wrap: wrap; gap: 7px; vertical-align: middle; }
.category-badge { display: inline-block; padding: 3px 10px; border-radius: 4px; background: #e8f3ff; color: #1155aa; font-size: 12px; font-weight: 600; line-height: 1.6; }
.category-badge-green { background: #ddf8ed; color: #006d46; }
.search-result-preview { overflow-wrap: anywhere; }
.search-result-preview p { margin: 0 0 12px; }
.search-result-preview mark { padding: 0 2px; color: var(--itkb-ink); background: #fff0b3; font-weight: 600; }
.search-result-link { display: inline-block; font-size: 14px; font-weight: 600; text-decoration: none; margin-top: 4px; }
.search-result-link span[aria-hidden] { margin-left: 5px; }
.search-empty { padding: 24px; border: 1px solid var(--itkb-border); border-radius: 6px; background: #f6faff; }
.search-empty p:last-of-type { margin-bottom: 14px; }
@media (max-width: 575px) {
 .search-field-row { flex-direction: column; }
 .search-field-row button { align-self: stretch; }
 .search-result-card { padding: 20px; }
 .itkb-site .search-result-card h3 { font-size: 20px; }
 .itkb-site .search-results > h2 { font-size: 21px; }
}

/* Knowledge overview: one category or all topics, with a single article list. */
.knowledge-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.itkb-site .knowledge-section-heading h2 { margin: 0; font-size: 26px; line-height: 1.4; font-weight: 700; }
.knowledge-all-topics { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 6px 12px; border: 1px solid var(--itkb-border); border-radius: 5px; text-decoration: none; font-size: 14px; font-weight: 600; }
.knowledge-all-topics span { color: var(--itkb-text); font-size: 12px; font-weight: 400; }
.knowledge-all-topics.is-active { background: var(--itkb-pale); border-color: var(--itkb-blue); }
.knowledge-topics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.knowledge-topic { display: flex; align-items: center; gap: 20px; min-width: 0; border: 1px solid var(--itkb-border); padding: 20px 22px; border-radius: 5px; text-decoration: none; }
.knowledge-topic:hover, .knowledge-topic.is-active { background: #f2f9ff; border-color: var(--itkb-blue); }
.knowledge-topic.is-active { box-shadow: inset 0 -3px 0 var(--itkb-blue); }
.knowledge-topic-icon { flex: 0 0 44px; width: 44px; height: 44px; }
.knowledge-topic-label { display: flex; flex-direction: column; min-width: 0; line-height: 1.6; }
.knowledge-topic-label strong { font-size: 18px; overflow-wrap: anywhere; }
.knowledge-topic-label > span { font-size: 13px; color: var(--itkb-text); }
.knowledge-topic-arrow { margin-left: auto; font-size: 22px; }
.knowledge-search { padding: 26px 28px 18px; border: 1px solid var(--itkb-border); background: #f8fbfe; border-radius: 5px; margin: 32px 0 38px; }
.knowledge-search-context { display: flex; justify-content: space-between; gap: 14px; margin-top: 12px; font-size: 13px; }
.knowledge-results-heading { align-items: baseline; }
.knowledge-results-heading h2 { overflow-wrap: anywhere; }
.knowledge-sort-note { flex-shrink: 0; font-size: 13px; }
.knowledge-article-list { list-style: none; margin: 0; padding: 0; }
.knowledge-article { border-top: 1px solid var(--itkb-border); padding: 22px 0; }
.knowledge-article:last-child { border-bottom: 1px solid var(--itkb-border); }
.knowledge-article article { display: flex; align-items: start; justify-content: space-between; gap: 32px; }
.knowledge-article-main { min-width: 0; max-width: 920px; }
.itkb-site .knowledge-article h3 { font-size: 20px; line-height: 1.45; font-weight: 700; margin: 8px 0; overflow-wrap: anywhere; }
.knowledge-article h3 a { text-decoration: none; }
.knowledge-article h3 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.knowledge-preview { font-size: 15px; }
.knowledge-preview p:last-child { margin-bottom: 0; }
.knowledge-article-date { flex-shrink: 0; text-align: right; font-size: 13px; margin: 4px 0 0; }
.knowledge-article-date span { display: block; font-size: 12px; }
.knowledge-list-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 26px; }
.knowledge-list-footer p { margin: 0; font-size: 14px; }
.knowledge-pagination { display: flex; flex-wrap: wrap; gap: 6px; }
.knowledge-pagination a { display: grid; place-items: center; min-width: 42px; min-height: 42px; border: 1px solid var(--itkb-border); border-radius: 4px; text-decoration: none; }
.knowledge-pagination a[aria-current="page"] { background: var(--itkb-blue); border-color: var(--itkb-blue); color: #fff; }
.knowledge-pagination a:hover { border-color: var(--itkb-blue); }
@media (max-width: 991px) {
 .knowledge-topics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .knowledge-article article { gap: 20px; }
}
@media (max-width: 575px) {
 .knowledge-section-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
 .itkb-site .knowledge-section-heading h2 { font-size: 23px; }
 .knowledge-topics { gap: 10px; }
 .knowledge-topic { flex-wrap: wrap; gap: 10px; padding: 14px; align-content: start; }
 .knowledge-topic-icon { width: 34px; height: 34px; flex-basis: 34px; }
 .knowledge-topic-label { width: 100%; }
 .knowledge-topic-label strong { font-size: 15px; }
 .knowledge-topic-arrow { display: none; }
 .knowledge-search { padding: 20px 16px 16px; margin: 24px 0 28px; }
 .knowledge-search-context { flex-direction: column; gap: 6px; }
 .knowledge-article article { flex-direction: column; gap: 8px; }
 .knowledge-article-date { text-align: left; display: flex; gap: 8px; margin: 0; }
 .knowledge-list-footer { flex-direction: column; align-items: flex-start; }
}

/* Contact form: presentation only; honeypot visibility remains controlled by its existing script. */
.contact-form { max-width: 900px; margin-top: 28px; padding: 28px; background: #f7fbff; border: 1px solid var(--itkb-border, #dce5ee); border-radius: 5px; }
.contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 24px; }
.contact-field { min-width: 0; }
.contact-field-wide { grid-column: 1 / -1; }
.contact-form .form-label { color: var(--itkb-ink); font-weight: 600; margin-bottom: 8px; }
.contact-form .form-control { min-height: 48px; padding: 10px 14px; }
.contact-form textarea.form-control { min-height: 210px; resize: vertical; }
.contact-actions { margin-top: 24px; }
.contact-actions .btn { min-height: 48px; padding: 10px 24px; font-weight: 600; }
.contact-privacy { margin-top: 20px; font-size: 13px; line-height: 1.65; }
.contact-privacy a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 575.98px) {
 .contact-form { padding: 20px 16px; }
 .contact-fields { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}
