/*!
 * Kumo CMS: base stylesheet of the public site (2.0).
 * Written for Kumo on top of Bootstrap 5.3 (MIT). It gives the shared markup
 * (header, navigation, page header, footer, blog, elements and the utility
 * class names that blocks and saved content use) its structure and a neutral
 * look; the design kit (cms-design.css) and each theme's design.css set the
 * theme's look. Colours come from the customizer (:root --primary … --light).
 */

/* ---------------------------------------------------------------- tokens */
:root {
	--primary: #0088CC; --primary-100: #0077B3; --primary-200: #006EA6; --primary-300: #006699; --primary--100: #0099E6; --primary--200: #00A1F2; --primary-inverse: #FFFFFF;
	--secondary: #E36159; --secondary-inverse: #FFFFFF;
	--tertiary: #2BAAB1; --tertiary-inverse: #FFFFFF;
	--quaternary: #383F48; --quaternary-inverse: #FFFFFF;
	--dark: #212529; --dark-100: #1A1D21; --dark-300: #0F1113; --dark--100: #2D3238; --dark--200: #343A40; --dark-inverse: #FFFFFF;
	--light: #FFFFFF; --light-300: #E6E6E6; --light--200: #FFFFFF; --light-inverse: #777777;
	--default: #777777;
	--grey: #969696; --grey-100: #F7F7F7; --grey-200: #EDEDED; --grey-300: #E0E0E0; --grey-500: #A6A6A6;
	--border-radius: 4px;
	--kumo-line: rgba(0, 0, 0, .08);
	--kumo-header-height: 72px;
	--bs-border-radius: var(--border-radius);
	--bs-btn-border-radius: var(--border-radius);
	--bs-link-color: var(--primary);
	--bs-link-hover-color: var(--primary-100);
}

/* ------------------------------------------------------------------ base */
html { overflow-x: hidden; }
/* Instant jumps: Bootstrap turns on smooth scrolling, which makes scripted scrolling and in-page links lag */
:root { scroll-behavior: auto; }
body { margin: 0; background-color: var(--light); color: var(--default); font-size: 14px; line-height: 26px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: 100%; }
@media (max-width: 575.98px) { body { font-size: 13px; } }
.body { background-color: var(--light); }
::selection { color: var(--primary-inverse); background: var(--primary); }
a { color: var(--primary); text-decoration: none; }
a:hover { color: var(--primary-100); }
a:not(.btn):hover { text-decoration: underline; }
li { line-height: 24px; }
p { margin: 0 0 20px; line-height: 26px; }
p.lead, .lead { font-size: 1.15rem; letter-spacing: -.05em; }
h1, h2, h3, h4, h5, h6 { margin: 0; color: var(--dark); font-weight: 200; letter-spacing: -.05em; }
h1 { font-size: 2.6em; line-height: 44px; margin: 0 0 32px; }
h2 { font-size: 2.2em; font-weight: 300; line-height: 42px; margin: 0 0 32px; }
h3 { font-size: 1.8em; font-weight: 400; line-height: 24px; margin-bottom: 33px; text-transform: uppercase; }
h4 { font-size: 1.4em; font-weight: 600; line-height: 27px; margin: 0 0 14px; }
h5 { font-size: 1em; font-weight: 600; line-height: 18px; margin: 0 0 14px; text-transform: uppercase; }
h6 { font-size: 1em; font-weight: 400; line-height: 18px; margin: 0 0 14px; color: var(--dark--200); }
@media (max-width: 575.98px) { h2 { line-height: 40px; } }
small, .small { font-size: 85%; }
hr { height: 1px; margin: 22px 0; border: 0; background: var(--kumo-line); opacity: 1; }
blockquote { margin: 0 0 20px; padding: 2px 20px; border-left: 5px solid var(--grey-200); font-size: 1.1em; }
img { max-width: 100%; }
.main { min-height: 40vh; }
@media (min-width: 1200px) {
	.container:not(.container-bs):not(.container-xl-custom):not(.container-xxl-custom) { max-width: 1140px; }
}

/* Skip link and a visible keyboard focus everywhere */
.cms-skip-link { position: absolute; left: -9999px; top: 8px; z-index: 10010; padding: 8px 14px; background: var(--dark); color: #fff; border-radius: var(--border-radius); }
.cms-skip-link:focus { left: 8px; color: #fff; }
:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }

/* --------------------------------------------------------------- buttons */
.btn { font-size: .8rem; font-weight: 600; padding: .533rem .933rem; cursor: pointer; }
.btn.btn-xs { font-size: .7rem; padding: .2rem .5rem; }
.btn.btn-sm { font-size: .75rem; }
.btn.btn-lg { font-size: 1rem; padding: .5rem 1rem; }
.btn-modern { text-transform: uppercase; font-size: .8em; padding: .8rem 1.5rem; font-weight: 600; }
.btn:focus, .btn:active, .btn.active { box-shadow: none; }
.btn-primary { --bs-btn-bg: var(--primary); --bs-btn-border-color: var(--primary); --bs-btn-color: var(--primary-inverse); --bs-btn-hover-bg: var(--primary-100); --bs-btn-hover-border-color: var(--primary-100); --bs-btn-hover-color: var(--primary-inverse); --bs-btn-active-bg: var(--primary-200); --bs-btn-active-border-color: var(--primary-200); --bs-btn-active-color: var(--primary-inverse); --bs-btn-disabled-bg: var(--primary); --bs-btn-disabled-border-color: var(--primary); }
.btn-secondary { --bs-btn-bg: var(--secondary); --bs-btn-border-color: var(--secondary); --bs-btn-color: var(--secondary-inverse); --bs-btn-hover-bg: var(--secondary); --bs-btn-hover-border-color: var(--secondary); --bs-btn-hover-color: var(--secondary-inverse); }
.btn-tertiary { --bs-btn-bg: var(--tertiary); --bs-btn-border-color: var(--tertiary); --bs-btn-color: var(--tertiary-inverse); --bs-btn-hover-bg: var(--tertiary); --bs-btn-hover-color: var(--tertiary-inverse); }
.btn-quaternary { --bs-btn-bg: var(--quaternary); --bs-btn-border-color: var(--quaternary); --bs-btn-color: var(--quaternary-inverse); --bs-btn-hover-bg: var(--quaternary); --bs-btn-hover-color: var(--quaternary-inverse); }
.btn-dark { --bs-btn-bg: var(--dark); --bs-btn-border-color: var(--dark); --bs-btn-color: var(--dark-inverse); --bs-btn-hover-bg: var(--dark--100); --bs-btn-hover-border-color: var(--dark--100); }
.btn-light { --bs-btn-bg: var(--light); --bs-btn-border-color: #D9D9D9; --bs-btn-color: var(--default); --bs-btn-hover-bg: var(--grey-100); --bs-btn-hover-border-color: #CFCFCF; }
html body .btn-light, html body .btn-outline.btn-light { border-color: #D9D9D9 #D9D9D9 #BFBFBF; color: var(--default); }
.btn-outline { border-width: 2px; }
.btn-outline.btn-primary { --bs-btn-bg: transparent; --bs-btn-color: var(--primary); --bs-btn-hover-bg: var(--primary); --bs-btn-hover-color: var(--primary-inverse); }
.btn-px-5 { padding-left: 2.5rem !important; padding-right: 2.5rem !important; }
.btn.btn-xl { font-size: 1rem; padding: .8rem 2rem; }
.btn-rounded { border-radius: 35px; }

/* ----------------------------------------------------------------- forms */
form label { font-weight: normal; }
label.required:after { content: "*"; position: relative; top: -2px; margin: .3em; font-size: .8em; }
.form-group { margin-bottom: 1rem; }
.form-control, .form-select { border-color: #DFE2E6; border-radius: var(--border-radius); }
.form-control:not(.form-control-sm):not(.form-control-lg) { font-size: .85rem; line-height: 1.85; }
.form-control:focus, .form-select:focus { border-color: var(--primary); box-shadow: 0 0 0 .2rem var(--primary-rgba-20, rgba(0, 136, 204, .2)); }
textarea { resize: vertical; }
select { border: 1px solid #E5E7E9; border-radius: 6px; outline: none; }
input[type="search" i]::-webkit-search-cancel-button { -webkit-appearance: none; }

/* --------------------------------------------------------------- header */
#header { position: relative; z-index: 1030; }
#header .header-body { position: relative; display: flex; flex-direction: column; width: 100%; background: var(--light); border-top: 3px solid var(--grey-200); border-bottom: 1px solid transparent; transition: min-height .3s ease, transform .3s ease, box-shadow .3s ease; z-index: 1001; }
#header .header-container { position: relative; display: flex; flex-flow: row wrap; align-items: center; transition: min-height .3s ease; }
#header .header-container.header-container-height-xs { height: 80px; } #header .header-container.header-container-height-sm { height: 100px; } #header .header-container.header-container-height-md { height: 125px; } #header .header-container.header-container-height-lg { height: 145px; }
#header.header-effect-shrink .header-container { min-height: 100px; }
#header.header-effect-shrink .header-logo { display: flex; align-items: center; }
#header .header-logo a { display: block; }
#header .container { position: relative; }
#header .header-row { display: flex; flex-grow: 1; align-items: center; align-self: stretch; max-height: 100%; }
#header .header-column { display: flex; flex-grow: 1; flex-direction: column; align-items: center; align-self: stretch; }
#header .header-column .header-row { justify-content: inherit; }
#header .header-logo { position: relative; z-index: 1; margin: 1rem 0; }
#header .header-logo img { position: relative; max-width: none; transition: width .3s ease, height .3s ease, top .3s ease; }
#header .header-nav { display: flex; align-items: center; min-height: 70px; padding: 1rem 0; }
#header .header-nav-features { position: relative; padding-left: 20px; margin-left: 10px; }
#header .header-nav-features .header-nav-feature + .header-nav-feature { margin-left: 12px; }
#header .header-nav-features .header-nav-feature { position: relative; }
#header .header-nav-features .header-nav-feature > a { color: var(--dark); }
#header .header-btn-collapse-nav { display: none; margin: 0 0 0 1rem; background: var(--primary); color: var(--primary-inverse); }
#header .header-top { display: flex; align-items: center; border-bottom: 1px solid var(--kumo-line); }
#header .header-nav-top { display: flex; align-items: center; }
#header .header-top .nav > li > a, #header .header-top .nav > li > span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; font-size: .9em; color: inherit; }
#header .header-nav-top .nav > li > a { color: inherit; }

/* Search feature: a small drop-down form */
#header .header-nav-features-search { position: relative; }
#header .header-nav-features-toggle { display: block; color: #444; }
#header .header-nav-features .header-nav-top-icon { position: relative; top: -1px; font-size: .8rem; color: #444; }
#header .header-nav-features-dropdown { position: absolute; top: calc(100% + 12px); right: -10px; z-index: 1005; display: none; width: 300px; padding: 12px; background: var(--light); border-radius: var(--border-radius); box-shadow: 0 10px 30px 10px rgba(0, 0, 0, .05); }
#header .header-nav-features-dropdown.show { display: block; }
#header .simple-search .form-control { border-radius: 20px 0 0 20px; border-right: 0; }
#header .simple-search .btn { border: 1px solid #DFE2E6; border-left: 0; border-radius: 0 20px 20px 0; background: var(--light); color: var(--dark); }

/* Navigation: desktop */
#header .header-nav-main nav > ul { display: flex; flex-wrap: wrap; align-items: center; margin: 0; padding: 0; list-style: none; }
#header .header-nav-main nav > ul > li { position: relative; }
#header .header-nav-main nav > ul > li > a { display: inline-flex; align-items: center; white-space: normal; color: var(--dark); font-weight: 600; font-size: 14px; text-decoration: none; }
#header .header-nav.header-nav-links:not(.header-nav-light-text) nav > ul > li > a, #header .header-nav.header-nav-line:not(.header-nav-light-text) nav > ul > li > a { color: #444; }
#header .header-nav-main .dropdown-menu { --bs-dropdown-link-active-bg: transparent; }
#header .header-nav-main nav > ul li a.dropdown-toggle:after { content: none; }
#header .kumo-sub-toggle { display: none; }
@media (min-width: 992px) {
	#header .header-nav-main { display: flex !important; height: auto !important; align-self: stretch; }
	#header .header-nav-main nav { display: flex !important; }
	#header .header-nav { flex-grow: 1; justify-content: flex-end; align-self: stretch; }
	#header .header-nav.header-nav-links, #header .header-nav.header-nav-line { padding: 0; }
	#header .header-nav-main nav > ul > li { height: 100%; align-self: stretch; margin-left: 2px; }
	#header .header-nav-main nav > ul > li > a { padding: .5rem .9rem; border-radius: var(--border-radius); }
	#header .header-nav.header-nav-links nav > ul > li > a, #header .header-nav.header-nav-line nav > ul > li > a { position: relative; min-height: 60px; height: 100%; margin: 1px 0 0; padding: 0 .9rem; background: transparent !important; border-radius: 0; }
	#header .header-nav.header-nav-line nav > ul > li > a:before { content: ""; position: absolute; left: .9rem; right: .9rem; bottom: 0; height: 3px; background: var(--primary); opacity: 0; transition: opacity .2s ease; }
	#header .header-nav.header-nav-line nav > ul > li > a.active:before, #header .header-nav.header-nav-line nav > ul > li:hover > a:before { opacity: 1; }
	#header .header-nav.header-nav-top-line nav > ul > li > a:before { top: -1px; bottom: auto; }
	/* Sub-menus open on hover and on keyboard focus */
	#header .header-nav-main nav > ul > li.dropdown > .dropdown-menu { position: absolute; top: 100%; left: 0; display: block; min-width: 220px; margin: 0; padding: 6px 0; text-align: left; border: 0; border-top: 3px solid var(--primary); border-radius: 0 0 var(--border-radius) var(--border-radius); box-shadow: 0 15px 30px -5px rgba(0, 0, 0, .1); opacity: 0; visibility: hidden; transform: translate3d(0, -5px, 0); transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s; }
	#header .header-nav-main nav > ul > li.dropdown:hover > .dropdown-menu,
	#header .header-nav-main nav > ul > li.dropdown:focus-within > .dropdown-menu,
	#header .header-nav-main nav > ul > li.dropdown.is-open > .dropdown-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
	#header .header-nav-main nav > ul > li > a:after { display: none; }
	#header .header-nav-main li.is-closed > .dropdown-menu { opacity: 0 !important; visibility: hidden !important; }
	#header .header-nav-main .dropdown-menu li { position: relative; }
	#header .header-nav-main .dropdown-menu li a { display: block; padding: 7px 18px; color: var(--default); font-size: .85em; font-weight: 400; text-transform: none; text-decoration: none; border-bottom: 1px solid var(--grey-100); white-space: nowrap; }
	#header .header-nav-main .dropdown-menu li:last-child > a { border-bottom: 0; }
	#header .header-nav-main .dropdown-menu li a:hover, #header .header-nav-main .dropdown-menu li a:focus { background: var(--grey-100); color: var(--dark); }
	#header .header-nav-main .dropdown-submenu > .dropdown-menu { position: absolute; top: -6px; left: 100%; display: block; min-width: 200px; padding: 6px 0; border: 0; border-radius: var(--border-radius); box-shadow: 0 15px 30px -5px rgba(0, 0, 0, .1); opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility 0s linear .2s; }
	#header .header-nav-main .dropdown-submenu:hover > .dropdown-menu, #header .header-nav-main .dropdown-submenu:focus-within > .dropdown-menu { opacity: 1; visibility: visible; transition-delay: 0s; }
	#header .header-nav-main .dropdown-submenu > a:after { content: "\203A"; float: right; margin-left: 10px; opacity: .6; }
	/* Mega menu */
	#header .header-nav-main nav > ul > li.dropdown-mega { position: static; }
	#header .header-nav-main nav > ul > li.dropdown-mega > .dropdown-menu { left: 15px; right: 15px; width: auto; }
	#header .dropdown-mega-content { padding: 20px 30px; }
	#header .dropdown-mega-sub-title { display: block; margin: 0 0 8px; color: var(--dark); font-size: .85em; font-weight: 700; text-transform: uppercase; }
	#header .dropdown-mega-sub-nav { margin: 0 0 16px; padding: 0; list-style: none; }
	#header .dropdown-mega-sub-nav li a { padding: 4px 0 !important; border: 0 !important; }
}

/* Navigation: phones and tablets (the menu folds under the header) */
@media (max-width: 991.98px) {
	#header .header-btn-collapse-nav { position: relative; z-index: 1; display: block; min-width: 44px; min-height: 40px; }
	#header .header-nav { display: flex; align-items: center; }
	#header .header-nav-main { position: absolute; top: 100%; left: 50%; width: 100%; transform: translate3d(-50%, 0, 0); background: transparent; }
	#header .header-nav-main:before { content: ""; position: absolute; top: 0; left: 50%; z-index: -1; display: block; width: 100vw; height: 100%; background: var(--light); transform: translateX(-50%); }
	#header .header-nav-main nav { max-height: 60vh; overflow: hidden auto; padding: 0 15px; }
	#header .header-nav-main nav:not(.show):not(.collapsing) { display: none; }
	#header .header-nav-main nav > ul { flex-direction: column; align-items: stretch; padding: 15px 0; }
	#header .header-nav-main nav > ul li { position: relative; display: block; margin: 0; padding: 0; border-bottom: 1px solid var(--grey-200); }
	#header .header-nav-main nav > ul li:last-child { border-bottom: 0; }
	#header .header-nav-main nav > ul li a { display: block; padding: 7px 8px; margin: 1px 0; color: var(--dark); font-size: 13px; line-height: 20px; text-align: left; border-radius: 0; }
	#header .header-nav-main nav > ul li.has-sub > a { padding-right: 48px; }
	#header .header-nav-main nav > ul > li > a { font-weight: 700; }
	#header .header-nav-main:not(.header-nav-main-mobile-dark) nav > ul > li > a.active { background: var(--primary); color: var(--primary-inverse) !important; }
	#header .header-nav-main nav > ul > li > a.active + .kumo-sub-toggle { color: var(--primary-inverse); }
	html body #header .header-nav-main nav > ul > li.dropdown ul.dropdown-menu, html body #header .header-nav-main nav > ul li ul.dropdown-menu { margin: 0; padding: 0 0 0 14px; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
	#header .header-nav-main .dropdown-menu { position: static; display: none; float: none; margin: 0; padding: 0 0 0 14px; background: transparent; border: 0; border-radius: 0; box-shadow: none; font-size: 13px; }
	#header .header-nav-main li.is-open > .dropdown-menu { display: block; }
	#header .header-nav-main .dropdown-menu li a { font-weight: 400; }
	#header .header-nav-main li.dropdown-mega .dropdown-mega-content { padding: 0 0 8px; }
	#header .header-nav-main li.dropdown-mega .row { display: block; margin: 0; }
	#header .header-nav-main li.dropdown-mega .row > * { width: auto; padding: 0; }
	#header .dropdown-mega-sub-title { display: block; padding: 8px 8px 0; font-weight: 700; color: var(--dark); }
	#header .dropdown-mega-sub-nav { margin: 0; padding: 0 0 0 8px; list-style: none; }
	#header .kumo-sub-toggle { position: absolute; top: 2px; right: 0; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 40px; padding: 0; border: 0; background: transparent; color: var(--dark); border-radius: var(--border-radius); }
	#header .kumo-sub-toggle:after { content: ""; width: 8px; height: 8px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .2s ease; }
	#header li.is-open > .kumo-sub-toggle:after { transform: rotate(-135deg); }
}
/* Without JavaScript the phone menu is simply shown */
html:not(.js) #header .header-nav-main nav { display: block !important; position: static; }

/* Sticky header (kumo.js): on wide screens the header is fixed from the top of the page
   (.sticky-header-active, #header keeps its height so nothing jumps); past the start
   offset .sticky-header-scrolled shrinks it, and the reveal effect hides it while scrolling down. */
html.sticky-header-active #header .header-body { position: fixed; top: 0; border-bottom-color: var(--kumo-line); box-shadow: 0 0 3px rgba(0, 0, 0, .08); }
html.sticky-header-scrolled #header.header-effect-shrink .header-container { min-height: 70px; }
html.sticky-header-scrolled #header.header-effect-shrink .header-logo { margin: .5rem 0; }
html.sticky-header-reveal #header .header-body { transform: translate3d(0, -100%, 0); }
html.sticky-header-reveal.sticky-header-show #header .header-body { transform: none; }
@media (prefers-reduced-motion: reduce) { #header .header-body, #header .header-container, #header .header-logo img { transition: none; } }

html.kumo-measuring #header, html.kumo-measuring #header * { transition: none !important; }
/* Transparent header: over the first section until the page scrolls */
html.cms-header-transparent #header .header-body { position: absolute; top: 0; left: 0; right: 0; background: transparent; border-top: 0; }
html.cms-header-transparent.sticky-header-active #header .header-body { position: fixed; }
html.cms-header-transparent.sticky-header-scrolled #header .header-body { background: var(--light); }
#header.header-transparent .header-body { position: absolute; background: transparent; border-top: 0; }
html:not(.sticky-header-scrolled) #header.header-transparent .header-body { background-color: transparent !important; }
html.sticky-header-active #header.header-transparent .header-body { position: fixed; }
html.sticky-header-scrolled #header.header-transparent .header-body { background: var(--light); }

/* Nav bar header: the menu sits on a full-width bar under the logo row */
#header .header-nav-bar { background: var(--dark); }
#header .header-nav-bar .header-nav-main nav > ul > li > a { color: var(--light); }
#header .header-nav-bar .header-container { min-height: 56px; }
@media (min-width: 992px) { #header .header-nav-bar .header-nav-main nav > ul > li > a { min-height: 56px; } }

/* Boxed layout */
html.boxed body { background-color: var(--grey-200); }
html.boxed .body { max-width: 1200px; margin: 25px auto; border-radius: 5px; box-shadow: 0 0 20px rgba(0, 0, 0, .06); overflow: hidden; }
html.boxed.sticky-header-active #header .header-body { max-width: 1200px; left: 0; right: 0; margin: 0 auto; }

/* ----------------------------------------------------------- page header */
.page-header { position: relative; margin: 0 0 35px; padding: 30px 0; background-color: var(--dark); text-align: left; }
.page-header h1 { position: relative; top: 1px; display: inline-block; margin: 0; padding: 0; color: var(--light); font-size: 30px; font-weight: 400; line-height: 1; }
.page-header .sub-title { display: block; margin: 0; color: var(--light); font-size: 1.2em; font-weight: 300; opacity: .8; }
.page-header-modern h1 { font-size: 28px; }
.page-header.page-header-modern.page-header-sm { padding: 30px 0; }
.page-header.page-header-modern.page-header-md { padding: 50px 0; }
.page-header.page-header-modern.page-header-lg { padding: 70px 0; }
.page-header-light { background: var(--grey-100); }
.page-header-light h1 { color: var(--dark); }
.page-header-classic { padding: 30px 0; border-bottom: 1px solid var(--kumo-line); background: var(--grey-100); }
.page-header-classic h1 { color: var(--dark); }

/* ------------------------------------------------------------ breadcrumb */
.breadcrumb { position: relative; z-index: 1; margin: 0; padding: 0; background: none; }
.breadcrumb > li { display: inline-block; font-size: .8em; text-transform: uppercase; }
.breadcrumb > li + li:before { content: "\f105"; padding: 0 7px 0 5px; color: inherit; opacity: .5; font-family: "Font Awesome 7 Free"; font-weight: 900; }
.breadcrumb .breadcrumb-item + .breadcrumb-item { padding-left: 0; }
.breadcrumb .breadcrumb-item + .breadcrumb-item::before { content: none; }
.breadcrumb-light, .breadcrumb-light a { color: var(--light); }
.breadcrumb-light .active { opacity: .7; }

/* ---------------------------------------------------------------- footer */
#footer { position: relative; clear: both; margin-top: 50px; padding: 0; background: var(--dark); border-top: 4px solid var(--dark); color: var(--default); font-size: .9em; }
#footer h1, #footer h2, #footer h3, #footer h4, #footer h5, #footer h6 { color: var(--light); }
#footer a:not(.btn):not(.no-footer-css) { color: var(--default); transition: color .1s ease-in-out; }
#footer a:not(.btn):not(.no-footer-css):hover { color: var(--light); }
#footer .container { padding-top: 0; }
#footer .footer-copyright { margin-top: 40px; padding: 25px 0; background: rgba(0, 0, 0, .15); border-top: 1px solid rgba(255, 255, 255, .06); }
#footer .footer-copyright p { margin: 0; font-size: .9em; }
#footer .list-icons li { position: relative; padding-left: 26px; margin-bottom: 8px; }
#footer .list-icons li > i:first-child { position: absolute; left: 0; top: 5px; }
.list { margin: 0 0 20px; padding: 0; list-style: none; }
.list li { margin-bottom: 13px; }
.list-icons-lg li { padding-left: 32px; }
.list-icons-sm li { font-size: .95em; }

/* Social icons */
.social-icons { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.social-icons li { margin: 0; }
.social-icons li a { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--light); color: var(--dark); box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .1); text-decoration: none; transition: background .2s ease, color .2s ease; }
.social-icons li a:hover { background: var(--primary); color: var(--primary-inverse); text-decoration: none; }
.social-icons.social-icons-clean li a { background: transparent; box-shadow: none; color: inherit; }

/* Scroll to top (kumo.js shows it after a screen of scrolling) */
.scroll-to-top { position: fixed; right: 10px; bottom: -60px; z-index: 1040; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: #404040; color: #fff; border-radius: 7px 7px 0 0; opacity: 0; transition: bottom .3s ease, opacity .3s ease; }
.scroll-to-top.visible { bottom: 0; opacity: .75; }
.scroll-to-top:hover { opacity: 1; color: #fff; text-decoration: none; }
@media (max-width: 991.98px) { .scroll-to-top.hidden-mobile { display: none !important; } }

/* --------------------------------------------------------------- sections */
section.section { margin: 30px 0; padding: 50px 0; background: var(--grey-100); border-top: 5px solid var(--grey-200); }
section.section.section-no-border, section.section.border-0 { border-top: 0; }
section.section > .container { position: relative; }
/* Section heights from the builder (none / small … extra large): padding steps */
section.section.section-height-1 { padding: 12px 0; } section.section.section-height-2 { padding: 37px 0; } section.section.section-height-3 { padding: 74px 0; } section.section.section-height-4 { padding: 111px 0; } section.section.section-height-5 { padding: 148px 0; }
.section-primary { background-color: var(--primary) !important; border-color: var(--primary-100) !important; }
.section-text-light h1, .section-text-light h2, .section-text-light h3, .section-text-light h4, .section-text-light h5, .section-text-light h6 { color: var(--light); }
section.section.section-text-light p, .section-text-light p { color: #E6E5E5; }

/* Background picture options of the section block: a tinted overlay (opacity 0-10) and a fixed (parallax) picture */
.overlay { position: relative; }
.overlay:before { content: ''; position: absolute; inset: 0; z-index: 0; background: var(--dark); opacity: 0; pointer-events: none; }
.overlay > * { position: relative; z-index: 1; }
.overlay.overlay-show:before { opacity: .8; }
.overlay.overlay-op-0.overlay-show:before { opacity: 0; }
.overlay.overlay-op-1.overlay-show:before { opacity: 0.1; }
.overlay.overlay-op-2.overlay-show:before { opacity: 0.2; }
.overlay.overlay-op-3.overlay-show:before { opacity: 0.3; }
.overlay.overlay-op-4.overlay-show:before { opacity: 0.4; }
.overlay.overlay-op-5.overlay-show:before { opacity: 0.5; }
.overlay.overlay-op-6.overlay-show:before { opacity: 0.6; }
.overlay.overlay-op-7.overlay-show:before { opacity: 0.7; }
.overlay.overlay-op-8.overlay-show:before { opacity: 0.8; }
.overlay.overlay-op-9.overlay-show:before { opacity: 0.9; }
.overlay.overlay-op-10.overlay-show:before { opacity: 1; }
.overlay-color-primary:before { background-color: var(--primary); }
.overlay-color-secondary:before { background-color: var(--secondary); }
.overlay-color-tertiary:before { background-color: var(--tertiary); }
.overlay-color-quaternary:before { background-color: var(--quaternary); }
.overlay-color-dark:before { background-color: var(--dark); }
.overlay-color-light:before { background-color: var(--light); }
.section.section-parallax { background-position: 50% 50%; background-size: cover; background-attachment: fixed; }
@media (max-width: 991.98px), (hover: none) { .section.section-parallax { background-attachment: scroll; } }

/* Tabs block */
.tabs { margin-bottom: 20px; }
.tabs .tab-content { padding: 15px; border: 1px solid var(--bs-border-color); border-top: 0; border-radius: 0 0 4px 4px; background: #fff; }
.tabs-vertical { display: flex; align-items: stretch; }
.tabs-vertical .nav-tabs { flex: 0 0 25%; flex-direction: column; border-bottom: 0; border-right: 1px solid var(--bs-border-color); }
.tabs-vertical .nav-tabs .nav-link { margin: 0 -1px 0 0; border-radius: 4px 0 0 4px; }
.tabs-vertical .nav-tabs .nav-link.active { border-color: var(--bs-border-color) var(--bs-body-bg) var(--bs-border-color) var(--bs-border-color); }
.tabs-vertical .tab-content { flex: 1 1 auto; border-top: 1px solid var(--bs-border-color); border-left: 0; border-radius: 0 4px 4px 0; }
@media (max-width: 575.98px) { .tabs-vertical { flex-direction: column; } .tabs-vertical .nav-tabs { border-right: 0; } .tabs-vertical .tab-content { border-left: 1px solid var(--bs-border-color); border-radius: 0 0 4px 4px; } }

/* --------------------------------------------------------------- elements */
.card { position: relative; border: 1px solid rgba(0, 0, 0, .06); }
.card-header { border-bottom: 1px solid rgba(0, 0, 0, .06); }
.accordion .card { margin-top: 5px; border: 1px solid rgba(0, 0, 0, .125); border-radius: .25rem; }
.accordion .card:first-child { margin-top: 0; }
.accordion .card-header { margin: -1px; padding: 0; border-bottom: 0; border-radius: .25rem; }
.accordion .card-title { margin: 0; font-size: 16px; }
.accordion .card-header a { display: block; padding: 10px 20px; color: var(--primary); cursor: pointer; text-decoration: none; }
.accordion.accordion-modern .card:first-of-type, .accordion.accordion-modern .card:not(:first-of-type):not(:last-of-type), .accordion.accordion-modern .card:last-of-type { border: 4px solid var(--grey-100); border-radius: .25rem; }
.accordion.accordion-modern .card .card-header { background-color: var(--grey-100); border-radius: .25rem; }
.img-thumbnail { position: relative; max-width: 100%; height: auto; padding: 4px; border: 1px solid var(--kumo-line); border-radius: var(--border-radius); }
.img-thumbnail img { border-radius: var(--border-radius); }
.img-thumbnail.img-thumbnail-no-borders { padding: 0; border: 0; }
.nav > li > a, .nav-link { color: var(--primary); }
.nav-pills .nav-link.active, .nav-pills > li.active > a { background-color: var(--primary); color: var(--primary-inverse); }
ul.nav-list { margin: 0; padding: 0; list-style: none; }
ul.nav-list li { position: relative; margin: 0; padding: 0; display: block; }
ul.nav-list li a { display: block; padding: 10px 0 10px 22px; border-bottom: 1px solid var(--kumo-line); color: var(--default); line-height: 20px; text-decoration: none; }
ul.nav-list li a:before { content: ""; position: absolute; left: 4px; top: 50%; width: 5px; height: 5px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: translateY(-50%) rotate(-45deg); opacity: .6; }
ul.nav-list li:last-child a { border-bottom: 0; }
ul.nav-list li a:hover { color: var(--primary); }
.pagination { position: relative; z-index: 1; --bs-pagination-color: var(--primary); --bs-pagination-active-bg: var(--primary); --bs-pagination-active-border-color: var(--primary); --bs-pagination-active-color: var(--primary-inverse); --bs-pagination-hover-color: var(--primary-100); }
.pagination .page-link { box-shadow: none !important; }
.badge-sm { padding: .3em .55em; font-size: .7em; }
.http-error { padding: 50px 0; }
.http-error h2 { font-size: 140px; font-weight: 700; line-height: 140px; }
.http-error h4 { color: var(--default); }
.http-error p { font-size: 1.4em; line-height: 36px; }
@media (max-width: 575.98px) { .http-error { padding: 0; } .http-error h2 { font-size: 100px; line-height: 100px; } }
.feature-box { display: flex; }
.feature-box .feature-box-icon { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 3em; height: 3em; margin-right: 1rem; background: var(--primary); color: var(--primary-inverse); border-radius: 50%; }
.feature-box .feature-box-info { flex: 1 1 auto; }
.featured-box { margin: 20px auto; background: var(--light); border-bottom: 1px solid #DFDFDF; border-left: 1px solid #ECECEC; border-right: 1px solid #ECECEC; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, .05); text-align: center; }
.featured-box .box-content { padding: 30px; border-top: 4px solid var(--primary); border-radius: 8px; }
.featured-box-primary .box-content { border-top-color: var(--primary); }
.dropdown-menu-arrow-centered { left: 50% !important; transform: translateX(-50%); }
.min-width-0 { min-width: 0 !important; }
.avatar { border-radius: 50%; }

/* ------------------------------------------------------------- utilities
   Class names saved in blocks and content since 1.x; the CSS is Kumo's own. */
.text-color-primary, .text-primary { color: var(--primary) !important; }
.text-color-secondary, .text-secondary { color: var(--secondary) !important; }
.text-color-tertiary, .text-tertiary { color: var(--tertiary) !important; }
.text-color-quaternary, .text-quaternary { color: var(--quaternary) !important; }
.text-color-dark, .text-dark { color: var(--dark) !important; }
.text-color-light, .text-light { color: var(--light) !important; }
.text-color-grey, .text-grey { color: var(--grey) !important; }
.text-color-hover-primary:hover { color: var(--primary) !important; }
.text-color-hover-light:hover { color: var(--light) !important; }
.bg-color-primary, .bg-primary { background-color: var(--primary) !important; }
.bg-color-secondary, .bg-secondary { background-color: var(--secondary) !important; }
.bg-color-tertiary, .bg-tertiary { background-color: var(--tertiary) !important; }
.bg-color-quaternary, .bg-quaternary { background-color: var(--quaternary) !important; }
.bg-color-dark, .bg-dark { background-color: var(--dark) !important; }
.bg-color-light, .bg-light { background-color: var(--light) !important; }
.bg-color-grey, .bg-grey { background-color: var(--grey-100) !important; }
.bg-color-transparent, .bg-transparent, .background-transparent { background: transparent !important; }
.text-1 { font-size: .8em !important; } .text-2 { font-size: .9em !important; } .text-3 { font-size: 1em !important; } .text-4 { font-size: 1.2em !important; } .text-5 { font-size: 1.5em !important; } .text-6 { font-size: 1.8em !important; } .text-7 { font-size: 2em !important; } .text-8 { font-size: 2.3em !important; } .text-9 { font-size: 2.6em !important; } .text-10 { font-size: 3em !important; } .text-11 { font-size: 3.5em !important; } .text-12 { font-size: 4em !important; } .text-13 { font-size: 4.6em !important; }
.font-weight-light { font-weight: 300 !important; }
.font-weight-normal, .font-weight-regular { font-weight: 400 !important; }
.font-weight-medium { font-weight: 500 !important; }
.font-weight-semibold, .font-weight-semi-bold { font-weight: 600 !important; }
.font-weight-bold { font-weight: 700 !important; }
.font-weight-extrabold, .font-weight-extra-bold { font-weight: 800 !important; }
.font-weight-black { font-weight: 900 !important; }
.line-height-1 { line-height: 1 !important; } .line-height-2 { line-height: 1.2 !important; } .line-height-3 { line-height: 1.3 !important; } .line-height-4 { line-height: 1.4 !important; } .line-height-5 { line-height: 1.5 !important; } .line-height-6 { line-height: 1.6 !important; } .line-height-7 { line-height: 1.7 !important; } .line-height-8 { line-height: 1.8 !important; } .line-height-9 { line-height: 1.9 !important; }
.opacity-1 { opacity: .1 !important; } .opacity-2 { opacity: .2 !important; } .opacity-3 { opacity: .3 !important; } .opacity-4 { opacity: .4 !important; } .opacity-5 { opacity: .5 !important; } .opacity-6 { opacity: .6 !important; } .opacity-7 { opacity: .7 !important; } .opacity-8 { opacity: .8 !important; } .opacity-9 { opacity: .9 !important; }
.p-static { position: static !important; }
.p-relative { position: relative !important; }
.z-index-0 { z-index: 0 !important; } .z-index-1 { z-index: 1 !important; } .z-index-2 { z-index: 2 !important; } .z-index-3 { z-index: 3 !important; }
.box-shadow-none { box-shadow: none !important; }
.border-color-primary { border-color: var(--primary) !important; } .border-color-secondary { border-color: var(--secondary) !important; } .border-color-dark { border-color: var(--dark) !important; } .border-color-light { border-color: var(--light) !important; } .border-color-grey { border-color: var(--grey-200) !important; }
.rounded { border-radius: 5px !important; }
.box-shadow-1 { box-shadow: 0 30px 90px rgba(0, 0, 0, .08) !important; }
.box-shadow-2 { box-shadow: 0 15px 30px -15px rgba(0, 0, 0, .45) !important; }
.hide-text { display: block; overflow: hidden; text-indent: -9999px; }
.custom-page-header { position: relative; }

/* ---------------------------------------------------------------- blog */
.blog-posts:not(.blog-posts-no-margins) article { margin-bottom: 50px; padding-bottom: 20px; border-bottom: 1px solid var(--kumo-line); }
article.post h2 a { color: var(--dark); text-decoration: none; }
article.post h2 a:hover { color: var(--primary); }
article.post .post-meta { margin: 0 0 7px; font-size: .9em; }
article.post .post-meta > span { display: inline-block; padding-right: 8px; }
article.post .post-meta i { margin-right: 3px; }
article.post .post-date { float: left; margin-right: 10px; text-align: center; }
article.post .post-date .day { display: block; padding: 10px; background: #F4F4F4; color: var(--primary); font-size: 18px; font-weight: 900; border-radius: 2px 2px 0 0; }
article.post .post-date .month { display: block; padding: 1px 10px; background: var(--primary); color: var(--primary-inverse); font-size: .8em; line-height: 1.8; text-transform: uppercase; border-radius: 0 0 2px 2px; }
article.post-large { margin-left: 60px; }
article.post-large .post-image, article.post-large .post-date { margin-left: -60px; }
article.post-large .post-image { margin-bottom: 25px; }
article.post-large h2 { margin-bottom: 5px; }
@media (max-width: 575.98px) { article.post-large { margin-left: 0; } article.post-large .post-image, article.post-large .post-date { margin-left: 0; } }
article.blog-single-post .post-meta { margin-bottom: 20px; }
.single-post article { margin-bottom: 40px; }
.post-author { margin: 0; }
.post-author .img-thumbnail { float: left; margin-right: 20px; }
.post-author p { margin: 0; padding: 0; font-size: .9em; line-height: 22px; }
.post-author p .name { font-weight: 700; }
ul.simple-post-list { margin: 0; padding: 0; list-style: none; }
ul.simple-post-list li { display: flow-root; margin: 0; padding: 15px 0; border-bottom: 1px dotted #E2E2E2; }
ul.simple-post-list li:last-child { border-bottom: 0; }
ul.simple-post-list .post-image { float: left; margin-right: 12px; }
ul.simple-post-list .post-info { line-height: 20px; }
ul.simple-post-list .post-meta { font-size: .8em; color: var(--grey); }

/* Comments */
.comments { margin: 0; padding: 0; list-style: none; }
.comments li { position: relative; padding: 0 0 0 82px; }
.comments li .img-thumbnail { position: absolute; left: 0; top: 10px; }
.comment-block { position: relative; margin-bottom: 20px; padding: 20px; background: var(--grey-100); border-radius: 5px; }
.comment-block .comment-by { display: block; margin-bottom: 8px; font-size: 1em; }
.comment-block .comment-by strong { color: var(--dark); }
.comment-block .date { color: var(--grey); font-size: .9em; }
.comments ul.comments { margin-left: 10px; }
.comment .reply { float: right; }
.comment-arrow { position: absolute; left: -15px; top: 28px; width: 0; height: 0; border-top: 15px solid transparent; border-bottom: 15px solid transparent; border-right: 15px solid var(--grey-100); }
.post-leave-comment { margin-top: 40px; }

/* ----------------------------------------------------------- slider block
   kumo.js runs the slides; without JavaScript the first slide shows. */
.kumo-slider { position: relative; overflow: hidden; touch-action: pan-y; }
.kumo-slider-track { position: relative; display: grid; }
.kumo-slider-track > .kumo-slide { grid-area: 1 / 1; visibility: hidden; opacity: 0; transition: opacity .6s ease, transform .6s ease, visibility 0s linear .6s; }
.kumo-slider-track > .kumo-slide.is-active { visibility: visible; opacity: 1; transition-delay: 0s; z-index: 1; }
.kumo-slider[data-transition="slide"] .kumo-slider-track > .kumo-slide { transform: translate3d(8%, 0, 0); }
.kumo-slider[data-transition="slide"] .kumo-slider-track > .kumo-slide.is-active { transform: none; }
html:not(.js) .kumo-slider-track > .kumo-slide:first-child { visibility: visible; opacity: 1; }
.kumo-slider-arrow { position: absolute; top: 50%; z-index: 3; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: rgba(0, 0, 0, .45); color: #fff; transform: translate3d(0, -50%, 0); opacity: 0; transition: opacity .2s ease, background .2s ease; cursor: pointer; }
.kumo-slider-arrow:hover { background: rgba(0, 0, 0, .7); }
.kumo-slider-prev { left: 20px; }
.kumo-slider-next { right: 20px; }
.kumo-slider-arrow:after { content: ""; width: 10px; height: 10px; border: solid currentColor; border-width: 0 2px 2px 0; }
.kumo-slider-prev:after { transform: translateX(2px) rotate(135deg); }
.kumo-slider-next:after { transform: translateX(-2px) rotate(-45deg); }
.kumo-slider:hover .kumo-slider-arrow, .kumo-slider:focus-within .kumo-slider-arrow { opacity: 1; }
@media (hover: none) { .kumo-slider-arrow { opacity: .85; } }
.kumo-slider-dots { position: absolute; left: 0; right: 0; bottom: 14px; z-index: 3; display: flex; justify-content: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.kumo-slider-dot { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.kumo-slider-dot:before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: rgba(255, 255, 255, .55); box-shadow: 0 0 0 1px rgba(0, 0, 0, .15); transition: background .2s ease, transform .2s ease; }
.kumo-slider-dot[aria-current="true"]:before { background: #fff; transform: scale(1.25); }
@media (prefers-reduced-motion: reduce) { .kumo-slider-track > .kumo-slide { transition: none; transform: none !important; } }

/* Layer and heading entrance animations (names offered by the slide editor and the heading block) */
[data-appear-animation], [data-reveal] { opacity: 0; }
html:not(.js) [data-appear-animation], html:not(.js) [data-reveal] { opacity: 1; }
.appear-animation-visible, .is-revealed { opacity: 1; }
.kumo-anim { animation-duration: var(--kumo-anim-duration, .9s); animation-fill-mode: both; animation-timing-function: cubic-bezier(.2, .7, .2, 1); }
@keyframes kumo-fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes kumo-fadeInUp { from { opacity: 0; transform: translate3d(0, 40px, 0); } to { opacity: 1; transform: none; } }
@keyframes kumo-fadeInDown { from { opacity: 0; transform: translate3d(0, -40px, 0); } to { opacity: 1; transform: none; } }
@keyframes kumo-fadeInLeft { from { opacity: 0; transform: translate3d(-40px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes kumo-fadeInRight { from { opacity: 0; transform: translate3d(40px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes kumo-zoomIn { from { opacity: 0; transform: scale3d(.85, .85, .85); } to { opacity: 1; transform: none; } }
@keyframes kumo-zoomOut { from { opacity: 0; transform: scale3d(1.15, 1.15, 1.15); } to { opacity: 1; transform: none; } }
@keyframes kumo-slideInUp { from { transform: translate3d(0, 100%, 0); visibility: visible; } to { transform: none; } }
@keyframes kumo-slideInDown { from { transform: translate3d(0, -100%, 0); visibility: visible; } to { transform: none; } }
@keyframes kumo-slideInLeft { from { transform: translate3d(-100%, 0, 0); visibility: visible; } to { transform: none; } }
@keyframes kumo-slideInRight { from { transform: translate3d(100%, 0, 0); visibility: visible; } to { transform: none; } }
@keyframes kumo-bounceIn { 0% { opacity: 0; transform: scale3d(.3, .3, .3); } 50% { opacity: 1; transform: scale3d(1.05, 1.05, 1.05); } 75% { transform: scale3d(.95, .95, .95); } to { opacity: 1; transform: none; } }
@keyframes kumo-flipInX { from { opacity: 0; transform: perspective(400px) rotate3d(1, 0, 0, 90deg); } 60% { opacity: 1; transform: perspective(400px) rotate3d(1, 0, 0, -10deg); } to { opacity: 1; transform: perspective(400px); } }
@media (prefers-reduced-motion: reduce) { .kumo-anim { animation: none !important; } [data-appear-animation], [data-reveal] { opacity: 1; } }

/* ---------------------------------------------------------- lightbox
   One <dialog> for image and gallery blocks (kumo.js). */
.kumo-lightbox { touch-action: pan-y; width: 100vw; max-width: 100vw; height: 100vh; max-height: 100vh; margin: 0; padding: 0; border: 0; background: rgba(10, 10, 12, .92); color: #fff; }
.kumo-lightbox::backdrop { background: rgba(10, 10, 12, .92); }
.kumo-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.kumo-lightbox-figure { margin: 0; max-width: calc(100vw - 120px); max-height: calc(100vh - 100px); text-align: center; }
.kumo-lightbox-figure img { display: block; max-width: 100%; max-height: calc(100vh - 140px); margin: 0 auto; object-fit: contain; }
.kumo-lightbox-figure figcaption { margin-top: 10px; font-size: 14px; color: rgba(255, 255, 255, .8); }
.kumo-lightbox button { position: absolute; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; font-size: 22px; cursor: pointer; }
.kumo-lightbox button:hover, .kumo-lightbox button:focus-visible { background: rgba(255, 255, 255, .25); }
.kumo-lightbox-close { top: 16px; right: 16px; }
.kumo-lightbox-prev { left: 16px; top: 50%; transform: translateY(-50%); }
.kumo-lightbox-next { right: 16px; top: 50%; transform: translateY(-50%); }
.kumo-lightbox-count { position: absolute; top: 26px; left: 24px; font-size: 13px; color: rgba(255, 255, 255, .75); }
@media (max-width: 575.98px) { .kumo-lightbox-figure { max-width: 100vw; } .kumo-lightbox-prev, .kumo-lightbox-next { top: auto; bottom: 16px; transform: none; } }
