/*** CUSTOM PROPS ***/
:root,
[data-bs-theme] {
    --s1-l-0: 0;
    --s1-l-10: 10;
    --s1-l-20: 20;
    --s1-l-30: 30;
    --s1-l-40: 40;
    --s1-l-50: 50;
    --s1-l-60: 60;
    --s1-l-70: 70;
    --s1-l-80: 80;
    --s1-l-90: 90;
    --s1-l-100: 100;
    --s1-black-ch: 0 0;
    --s1-white-ch: 0 0;
    --bs-black: lch(var(--s1-l-0) var(--s1-black-ch));
    --bs-white: lch(var(--s1-l-100) var(--s1-white-ch));
    --bs-gray: lch(var(--s1-l-40) var(--s1-black-ch));
    --bs-gray-dark: lch(var(--s1-l-20) var(--s1-black-ch));
    --bs-gray-100: lch(var(--s1-l-90) var(--s1-black-ch));
    --bs-gray-200: lch(var(--s1-l-80) var(--s1-black-ch));
    --bs-gray-300: lch(var(--s1-l-70) var(--s1-black-ch));
    --bs-gray-400: lch(var(--s1-l-60) var(--s1-black-ch));
    --bs-gray-500: lch(var(--s1-l-50) var(--s1-black-ch));
    --bs-gray-600: lch(var(--s1-l-40) var(--s1-black-ch));
    --bs-gray-700: lch(var(--s1-l-30) var(--s1-black-ch));
    --bs-gray-800: lch(var(--s1-l-20) var(--s1-black-ch));
    --bs-gray-900: lch(var(--s1-l-10) var(--s1-black-ch));
    --bs-primary: var(--s1-primary);
    --bs-secondary: var(--s1-secondary);
    --bs-success: lch(var(--s1-success-l) var(--s1-success-ch));
    --bs-info: lch(var(--s1-info-l) var(--s1-info-ch));
    --bs-warning: lch(var(--s1-warning-l) var(--s1-warning-ch));
    --bs-danger: lch(var(--s1-danger-l) var(--s1-danger-ch));
    --bs-light: var(--bs-white);
    --bs-dark: var(--bs-black);

/*
{ assign s1successcolorArray = sg.sc.successcolor | default: 'lch(50 45 155)' | remove: ')' | split: '(' | last | split: ' ' }
{ assign s1infocolorArray = sg.sc.infocolor | default: 'lch(75 45 224)' | remove: ')' | split: '(' | last | split: ' ' }
{ assign s1warningcolorArray = sg.sc.warningcolor | default: 'lch(82 84 80)' | remove: ')' | split: '(' | last | split: ' ' }
{ assign s1dangercolorArray = sg.sc.dangercolor | default: 'lch(50 73 27)' | remove: ')' | split: '(' | last | split: ' ' }
*/
        
    --bs-primary-text-emphasis: lch(calc(var(--s1-primary-l) + var(--s1-primary-emphasis-value)) var(--s1-primary-ch));
    --bs-secondary-text-emphasis: lch(calc(var(--s1-secondary-l) + var(--s1-secondary-emphasis-value)) var(--s1-secondary-ch));
    
    --bs-success-text-emphasis: lch(calc(var(--s1-success-l) / 3) var(--s1-success-ch));
    --bs-info-text-emphasis: lch(calc(var(--s1-info-l) / 3) var(--s1-info-ch));
    --bs-warning-text-emphasis: lch(calc(var(--s1-warning-l) / 3) var(--s1-warning-ch));
    --bs-danger-text-emphasis: lch(calc(var(--s1-danger-l) / 3) var(--s1-danger-ch));
    --bs-light-text-emphasis: lch(var(--s1-l-20) var(--s1-white-ch));
    --bs-dark-text-emphasis: lch(var(--s1-l-60) var(--s1-black-ch));
    
    --bs-primary-bg-subtle: lch(var(--s1-primary-subtle-value) var(--s1-primary-ch));
    --bs-secondary-bg-subtle: lch(var(--s1-primary-subtle-value) var(--s1-secondary-ch));
    
    --bs-success-bg-subtle: lch(calc(var(--s1-success-l) / 100 * 180) var(--s1-success-ch));
    --bs-info-bg-subtle: lch(calc(var(--s1-info-l) / 100 * 180) var(--s1-info-ch));
    --bs-warning-bg-subtle: lch(calc(var(--s1-warning-l) / 100 * 180) var(--s1-warning-ch));
    --bs-danger-bg-subtle: lch(calc(var(--s1-danger-l) / 100 * 180) var(--s1-danger-ch));
    --bs-light-bg-subtle: lch(var(--s1-l-80) var(--s1-white-ch));
    --bs-dark-bg-subtle: lch(var(--s1-l-10) var(--s1-black-ch));
    
    --bs-primary-border-subtle: lch(calc(var(--s1-primary-l) / 100 * 140) var(--s1-primary-ch));
    --bs-secondary-border-subtle: lch(calc(var(--s1-secondary-l) / 100 * 140) var(--s1-secondary-ch));
    
    --bs-success-border-subtle: lch(calc(var(--s1-success-l) / 100 * 140) var(--s1-success-ch));
    --bs-info-border-subtle: lch(calc(var(--s1-info-l) / 100 * 140) var(--s1-info-ch));
    --bs-warning-border-subtle: lch(calc(var(--s1-warning-l) / 100 * 140) var(--s1-warning-ch));
    --bs-danger-border-subtle: lch(calc(var(--s1-danger-l) / 100 * 140) var(--s1-danger-ch));
    --bs-light-border-subtle: lch(var(--s1-l-60) var(--s1-white-ch));
    --bs-dark-border-subtle: lch(var(--s1-l-30) var(--s1-black-ch));
    
    --bs-body-font-family: var(--bs-font-sans-serif);
    --bs-body-font-size: 1rem;
    --bs-body-line-height: 1.5;

    --bs-body-color: lch(var(--s1-font-l) var(--s1-font-ch));
    --bs-body-bg: #FFF;
    --bs-emphasis-color: var(--bs-primary-text-emphasis);
    --bs-secondary-color: lch(calc(var(--s1-font-l) / 3) var(--s1-font-ch));
    --bs-secondary-bg: lch(calc(var(--s1-font-l) / 100 * 380) var(--s1-font-ch));
    --bs-tertiary-color: lch(calc(var(--s1-font-l) / 4) var(--s1-font-ch));
    --bs-tertiary-bg: lch(calc(var(--s1-font-l) / 100 * 480) var(--s1-font-ch));
    --bs-link-color: var(--s1-primary);
    --bs-link-hover-color: var(--bs-primary-text-emphasis);

    --bs-highlight-color: lch(calc(var(--s1-accent-l) / 2) var(--s1-accent-ch));
    --bs-highlight-bg: lch(calc(var(--s1-accent-l) + 5 ) var(--s1-accent-ch) / 0.6);
    
    --bs-border-width: 1px;
    --bs-border-style: solid;
    --bs-border-color: var(--s1-primary);
    --bs-border-color-translucent: var(--bs-primary-border-subtle);
    
    --bs-border-radius: var(--s1-radius);
    --bs-border-radius-sm: calc(var(--s1-radius) - 0.15rem);
    --bs-border-radius-lg: calc(var(--s1-radius) + 0.3rem);
    --bs-border-radius-xl: calc(var(--s1-radius) + 0.65rem);
    --bs-border-radius-xxl: calc(var(--s1-radius) + 1.2rem);
    --bs-border-radius-2xl: var(--bs-border-radius-xxl);
    --bs-border-radius-pill: 50rem;
    
    --bs-box-shadow: 0 0.5rem 1rem lch(var(--s1-l-10) var(--s1-black-ch) / .15);
    --bs-box-shadow-sm: 0 0.125rem 0.25rem lch(var(--s1-l-10) var(--s1-black-ch) / 0.075);
    --bs-box-shadow-lg: 0 1rem 3rem lch(var(--s1-l-10) var(--s1-black-ch) / 0.175);
    --bs-box-shadow-inset: inset 0 1px 2px lch(var(--s1-l-10) var(--s1-black-ch) / 0.075);
    
    --bs-focus-ring-width: 0.25rem;
    --bs-focus-ring-opacity: 0.25;
    --bs-focus-ring-color: lch(var(--s1-primary-l) var(--s1-primary-ch) / var(--bs-focus-ring-opacity));
    
    --bs-form-valid-color: var(--bs-success);
    --bs-form-valid-border-color: var(--bs-success);
    --bs-form-invalid-color: var(--bs-danger);
    --bs-form-invalid-border-color: var(--bs-danger);
}
[data-bs-theme=dark] {
    color-scheme: dark;
    --s1-l-0: 100;
    --s1-l-10: 90;
	--s1-l-20: 80;
	--s1-l-30: 70;
	--s1-l-40: 60;
	--s1-l-60: 40;
	--s1-l-70: 30;
	--s1-l-80: 20;
	--s1-l-90: 10;
	--s1-l-100: 0;
	
	--bs-body-color: lch(calc(100 - var(--s1-font-l)) var(--s1-font-ch));
    --bs-body-bg: lch(calc(var(--s1-bkg-l) - 12) var(--s1-bkg-ch));

    --bs-primary-text-emphasis: lch(var(--s1-l-20) var(--s1-primary-ch));
    --bs-secondary-text-emphasis: lch(var(--s1-l-20) var(--s1-secondary-ch));
    
    --bs-success-text-emphasis: lch(var(--s1-l-20) var(--s1-success-ch));
    --bs-info-text-emphasis: lch(var(--s1-l-20) var(--s1-info-ch));
    --bs-warning-text-emphasis: lch(var(--s1-l-20) var(--s1-warning-ch));
    --bs-danger-text-emphasis: lch(var(--s1-l-20) var(--s1-danger-ch));
    --bs-light-text-emphasis: lch(var(--s1-l-20) 0 0);
    --bs-dark-text-emphasis: lch(var(--s1-l-20) 0 0);
    
    --bs-primary-bg-subtle: lch(var(--s1-l-80) var(--s1-primary-ch));
    --bs-secondary-bg-subtle: lch(var(--s1-l-80) var(--s1-secondary-ch));
    
    --bs-success-bg-subtle: lch(var(--s1-l-80) var(--s1-success-ch));
    --bs-info-bg-subtle: lch(var(--s1-l-80) var(--s1-info-ch));
    --bs-warning-bg-subtle: lch(var(--s1-l-80) var(--s1-warning-ch));
    --bs-danger-bg-subtle: lch(var(--s1-l-80) var(--s1-danger-ch));
    --bs-light-bg-subtle: lch(var(--s1-l-80) 0 0);
    --bs-dark-bg-subtle: lch(var(--s1-l-80) 0 0);
    
    --bs-primary-border-subtle: lch(var(--s1-l-60) var(--s1-primary-ch));
    --bs-secondary-border-subtle: lch(var(--s1-l-60) var(--s1-secondary-ch));
    
    --bs-success-border-subtle: lch(var(--s1-l-60) var(--s1-success-ch));
    --bs-info-border-subtle: lch(var(--s1-l-60) var(--s1-info-ch));
    --bs-warning-border-subtle: lch(var(--s1-l-60) var(--s1-warning-ch));
    --bs-danger-border-subtle: lch(var(--s1-l-60) var(--s1-danger-ch));
    --bs-light-border-subtle: lch(var(--s1-l-60) 0 0);
    --bs-dark-border-subtle: lch(var(--s1-l-60) 0 0);
    
    --bs-link-color: lch(var(--s1-l-20) var(--s1-primary-ch));
    --bs-link-hover-color: lch(var(--s1-l-30) var(--s1-primary-ch));
}

/*** BS RGB COLORS TO LCH ***/
a {
    color: lch(var(--s1-primary-l) var(--s1-primary-ch));
}
a:hover {
    --bs-link-color-rgb: lch(var(--s1-l-80) var(--s1-primary-ch));
}
.table {
    --bs-table-striped-bg: lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.05);
    --bs-table-active-bg: lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.1);
    --bs-table-hover-bg: lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.075);
}
.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.nav-link:focus-visible {
    box-shadow: 0 0 0 .25rem lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.25);
}
.form-range:focus::-webkit-slider-thumb,
.form-range:focus::-moz-range-thumb {
    box-shadow: 0 0 0 1px var(--bs-white), 0 0 0 .25rem lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.25);
}
.form-floating>.form-control:not(:-moz-placeholder-shown)~label,
.form-floating>.form-control-plaintext~label,
.form-floating>.form-control:focus~label,
.form-floating>.form-control:not(:placeholder-shown)~label,
.form-floating>.form-select~label,
.form-floating>.form-control:-webkit-autofill~label {
    color: lch(var(--s1-font-l) var(--s1-font-ch) / 0.65);
}
.form-control.is-valid:focus,
.was-validated .form-control:valid:focus,
.form-select.is-valid:focus,
.was-validated .form-select:valid:focus,
.form-check-input.is-valid:focus,
.was-validated .form-check-input:valid:focus {
    box-shadow: 0 0 0 .25rem lch(var(--s1-success-l) var(--s1-success-ch) / 0.25);
}
.form-control.is-invalid:focus,
.was-validated .form-control:invalid:focus,
.form-select.is-invalid:focus,
.was-validated .form-select:invalid:focus,
.form-check-input.is-invalid:focus,
.was-validated .form-check-input:invalid:focus {
    box-shadow: 0 0 0 .25rem lch(var(--s1-danger-l) var(--s1-danger-ch) / 0.25);
}
.btn {
    --bs-btn-focus-box-shadow: 0 0 0 0.25rem lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.5);
}
.accordion {
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.25);
}
.pagination {
    --bs-pagination-btn-focus-box-shadow: 0 0 0 0.25rem lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.25);
}
.btn-close {
    --bs-btn-close-focus-shadow: 0 0 0 0.25rem lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.25);
}
.navbar,
.navbar-dark,
.navbar[data-bs-theme=dark] {
    --bs-navbar-color: lch(var(--s1-accent-l) var(--s1-accent-ch) / 0.65);
    --bs-navbar-hover-color: lch(var(--s1-accent-l) var(--s1-accent-ch) / 0.8);
    --bs-navbar-disabled-color: lch(var(--s1-accent-l) var(--s1-accent-ch) / 0.3);
    --bs-navbar-active-color: lch(var(--s1-accent-l) var(--s1-accent-ch) / 1);
    --bs-navbar-brand-color: lch(var(--s1-accent-l) var(--s1-accent-ch) / 1);
    --bs-navbar-brand-hover-color: lch(var(--s1-accent-l) var(--s1-accent-ch) / 1);
    --bs-navbar-toggler-border-color: lch(var(--s1-accent-l) var(--s1-accent-ch) / 0.15);
}
.card {
    --bs-card-cap-bg: lch(var(--s1-font-l) var(--s1-font-ch) / 0.03);
}
.toast {
    --bs-toast-bg: lch(var(--s1-bkg-l) var(--s1-bkg-ch) / 0.85);
    --bs-toast-header-bg: lch(var(--s1-bkg-l) var(--s1-bkg-ch) / 0.85);
}
.text-bg-primary,
.bg-primary {
    background-color: lch(var(--s1-primary-l) var(--s1-primary-ch) / var(--bs-bg-opacity, 1)) !important;
}
.text-bg-secondary,
.bg-secondary {
    background-color: lch(var(--s1-secondary-l) var(--s1-secondary-ch) / var(--bs-bg-opacity, 1)) !important;
}
.text-bg-success,
.bg-success {
    background-color: lch(var(--s1-success-l) var(--s1-success-ch) / var(--bs-bg-opacity, 1)) !important;
}
.text-bg-info,
.bg-info {
    background-color: lch(var(--s1-info-l) var(--s1-info-ch) / var(--bs-bg-opacity, 1)) !important;
}
.text-bg-warning,
.bg-warning {
    background-color: lch(var(--s1-warning-l) var(--s1-warning-ch) / var(--bs-bg-opacity, 1)) !important;
}
.text-bg-danger,
.bg-danger {
    background-color: lch(var(--s1-danger-l) var(--s1-danger-ch) / var(--bs-bg-opacity, 1)) !important;
}
.text-bg-light,
.bg-light,
.bg-white {
    background-color: lch(var(--s1-l-100) var(--s1-white-ch) / var(--bs-bg-opacity, 1)) !important;
}
.text-bg-dark,
.bg-dark,
.bg-black {
    background-color: lch(var(--s1-l-0) var(--s1-black-ch) / var(--bs-bg-opacity, 1)) !important;
}
.bg-body {
    background-color: lch(var(--s1-bkg-l) var(--s1-bkg-ch) / var(--bs-bg-opacity, 1)) !important;
}
.bg-body-secondary {
    background-color: var(--bs-secondary-bg) !important;
}
.bg-body-tertiary {
    background-color: var(--bs-tertiary-bg) !important;
}
.link-primary {
    color: lch(var(--s1-primary-l) var(--s1-primary-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(var(--s1-primary-l) var(--s1-primary-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-primary-l) var(--s1-primary-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-primary:focus,
.link-primary:hover {
    color: lch(calc(var(--s1-primary-l) - 20) var(--s1-primary-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(calc(var(--s1-primary-l) - 20) var(--s1-primary-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(calc(var(--s1-primary-l) - 20) var(--s1-primary-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-secondary {
    color: lch(var(--s1-secondary-l) var(--s1-secondary-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(var(--s1-secondary-l) var(--s1-secondary-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-secondary-l) var(--s1-secondary-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-secondary:focus,
.link-secondary:hover {
    color: lch(calc(var(--s1-secondary-l) - 20) var(--s1-secondary-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(calc(var(--s1-secondary-l) - 20) var(--s1-secondary-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(calc(var(--s1-secondary-l) - 20) var(--s1-secondary-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-success {
    color: lch(var(--s1-success-l) var(--s1-success-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(var(--s1-success-l) var(--s1-success-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-success-l) var(--s1-success-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-success:focus,
.link-success:hover {
    color: lch(calc(var(--s1-success-l) - 20) var(--s1-success-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(calc(var(--s1-success-l) - 20) var(--s1-success-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(calc(var(--s1-success-l) - 20) var(--s1-success-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-info {
    color: lch(var(--s1-info-l) var(--s1-info-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(var(--s1-info-l) var(--s1-info-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-info-l) var(--s1-info-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-info:focus,
.link-info:hover {
    color: lch(calc(var(--s1-info-l) - 20) var(--s1-info-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(calc(var(--s1-info-l) - 20) var(--s1-info-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(calc(var(--s1-info-l) - 20) var(--s1-info-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-warning {
    color: lch(var(--s1-warning-l) var(--s1-warning-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(var(--s1-warning-l) var(--s1-warning-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-warning-l) var(--s1-warning-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-warning:focus,
.link-warning:hover {
    color: lch(calc(var(--s1-warning-l) - 20) var(--s1-warning-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(calc(var(--s1-warning-l) - 20) var(--s1-warning-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(calc(var(--s1-warning-l) - 20) var(--s1-warning-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-danger {
    color: lch(var(--s1-danger-l) var(--s1-danger-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(var(--s1-danger-l) var(--s1-danger-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-danger-l) var(--s1-danger-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-danger:focus,
.link-danger:hover {
    color: lch(calc(var(--s1-danger-l) - 20) var(--s1-danger-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(calc(var(--s1-danger-l) - 20) var(--s1-danger-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(calc(var(--s1-danger-l) - 20) var(--s1-danger-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-light {
    color: lch(var(--s1-l-100) var(--s1-white-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(var(--s1-l-100) var(--s1-white-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-l-100) var(--s1-white-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-light:focus,
.link-light:hover {
    color: lch(var(--s1-l-80) var(--s1-white-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(var(--s1-l-80) var(--s1-white-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-l-80) var(--s1-white-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-dark {
    color: lch(var(--s1-l-0) var(--s1-black-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(var(--s1-l-0) var(--s1-black-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-l-0) var(--s1-black-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-dark:focus,
.link-dark:hover {
    color: lch(var(--s1-l-20) var(--s1-black-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(var(--s1-l-20) var(--s1-black-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-l-20) var(--s1-black-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-body-emphasis {
    color: lch(var(--s1-accent-l) var(--s1-accent-ch) / var(--bs-link-opacity, 1)) !important;
    -webkit-text-decoration-color: lch(var(--s1-accent-l) var(--s1-accent-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-accent-l) var(--s1-accent-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-body-emphasis:focus,
.link-body-emphasis:hover {
    color: lch(calc(var(--s1-accent-l) - 20) var(--s1-accent-ch) / var(--bs-link-opacity, .75)) !important;
    -webkit-text-decoration-color: lch(calc(var(--s1-accent-l) - 20) var(--s1-accent-ch) / var(--bs-link-underline-opacity, 0.75)) !important;
    text-decoration-color: lch(calc(var(--s1-accent-l) - 20) var(--s1-accent-ch) / var(--bs-link-underline-opacity, 0.75)) !important;
}
.icon-link {
    -webkit-text-decoration-color: lch(var(--s1-primary-l) var(--s1-primary-ch) / var(--bs-link-opacity, 0.5));
    text-decoration-color: lch(var(--s1-primary-l) var(--s1-primary-ch) / var(--bs-link-opacity, 0.5));
}
.focus-ring-primary {
    --bs-focus-ring-color: lch(var(--s1-primary-l) var(--s1-primary-ch) / var(--bs-focus-ring-opacity))
}
.focus-ring-secondary {
    --bs-focus-ring-color: lch(var(--s1-secondary-l) var(--s1-secondary-ch) / var(--bs-focus-ring-opacity))
}
.focus-ring-success {
    --bs-focus-ring-color: lch(var(--s1-success-l) var(--s1-success-ch) / var(--bs-focus-ring-opacity))
}
.focus-ring-info {
    --bs-focus-ring-color: lch(var(--s1-info-l) var(--s1-info-ch) / var(--bs-focus-ring-opacity))
}
.focus-ring-warning {
    --bs-focus-ring-color: lch(var(--s1-warning-l) var(--s1-warning-ch) / var(--bs-focus-ring-opacity))
}
.focus-ring-danger {
    --bs-focus-ring-color: lch(var(--s1-danger-l) var(--s1-danger-ch) / var(--bs-focus-ring-opacity))
}
.focus-ring-light {
    --bs-focus-ring-color: lch(var(--s1-l-100) var(--s1-white-ch) / var(--bs-focus-ring-opacity))
}
.focus-ring-dark {
    --bs-focus-ring-color: lch(var(--s1-l-0) var(--s1-black-ch) / var(--bs-focus-ring-opacity))
}
.border-primary {
    border-color: lch(var(--s1-primary-l) var(--s1-primary-ch) / var(--bs-border-opacity)) !important
}
.border-secondary {
    border-color: lch(var(--s1-secondary-l) var(--s1-secondary-ch) / var(--bs-border-opacity)) !important
}
.border-success {
    border-color: lch(var(--s1-success-l) var(--s1-success-ch) / var(--bs-border-opacity)) !important
}
.border-info {
    border-color: lch(var(--s1-info-l) var(--s1-info-ch) / var(--bs-border-opacity)) !important
}
.border-warning {
    border-color: lch(var(--s1-warning-l) var(--s1-warning-ch) / var(--bs-border-opacity)) !important
}
.border-danger {
    border-color: lch(var(--s1-danger-l) var(--s1-danger-ch) / var(--bs-border-opacity)) !important
}
.border-light,
.border-white {
    border-color: lch(var(--s1-l-100) var(--s1-white-ch) / var(--bs-border-opacity)) !important
}
.border-dark,
.border-black {
    border-color: lch(var(--s1-l-0) var(--s1-black-ch) / var(--bs-border-opacity)) !important
}
.text-primary {
    color: lch(var(--s1-primary-l) var(--s1-primary-ch) / var(--bs-text-opacity)) !important
}
.text-secondary {
    color: lch(var(--s1-secondary-l) var(--s1-secondary-ch) / var(--bs-text-opacity)) !important
}
.text-accent {
    color: lch(var(--s1-accent-l) var(--s1-accent-ch) / var(--bs-text-opacity)) !important
}
.text-success {
    color: lch(var(--s1-success-l) var(--s1-success-ch) / var(--bs-text-opacity)) !important
}
.text-info {
    color: lch(var(--s1-info-l) var(--s1-info-ch) / var(--bs-text-opacity)) !important
}
.text-warning {
    color: lch(var(--s1-warning-l) var(--s1-warning-ch) / var(--bs-text-opacity)) !important
}
.text-danger {
    color: lch(var(--s1-danger-l) var(--s1-danger-ch) / var(--bs-text-opacity)) !important
}
.text-light,
.text-white {
    color: lch(var(--s1-l-100) var(--s1-white-ch) / var(--bs-text-opacity)) !important
}
.text-dark,
.text-black {
    color: lch(var(--s1-l-0) var(--s1-black-ch) / var(--bs-text-opacity)) !important
}
.text-body {
    color: lch(var(--s1-font-l) var(--s1-font-ch) / var(--bs-text-opacity)) !important
}
.text-black-50 {
    color: lch(var(--s1-l-50) var(--s1-black-ch)) !important
}
.text-white-50 {
    color: lch(var(--s1-l-50) var(--s1-white-ch)) !important
}
.link-underline-primary {
    -webkit-text-decoration-color: lch(var(--s1-primary-l) var(--s1-primary-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-primary-l) var(--s1-primary-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-underline-secondary {
    -webkit-text-decoration-color: lch(var(--s1-secondary-l) var(--s1-secondary-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-secondary-l) var(--s1-secondary-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-underline-success {
    -webkit-text-decoration-color: lch(var(--s1-success-l) var(--s1-success-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-success-l) var(--s1-success-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-underline-info {
    -webkit-text-decoration-color: lch(var(--s1-info-l) var(--s1-info-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-info-l) var(--s1-info-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-underline-warning {
    -webkit-text-decoration-color: lch(var(--s1-warning-l) var(--s1-warning-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-warning-l) var(--s1-warning-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-underline-danger {
    -webkit-text-decoration-color: lch(var(--s1-danger-l) var(--s1-danger-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-danger-l) var(--s1-danger-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-underline-light {
    -webkit-text-decoration-color: lch(var(--s1-l-100) var(--s1-white-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-l-100) var(--s1-white-ch) / var(--bs-link-underline-opacity, 1)) !important;
}
.link-underline-dark {
    -webkit-text-decoration-color: lch(var(--s1-l-0) var(--s1-black-ch) / var(--bs-link-underline-opacity, 1)) !important;
    text-decoration-color: lch(var(--s1-l-0) var(--s1-black-ch) / var(--bs-link-underline-opacity, 1)) !important;
}

/*** BS REPLACE HARD CODED COLORS ***/
.table-primary {
    --bs-table-color: var(--bs-black);
    --bs-table-bg: lch(90 var(--s1-primary-ch));
    --bs-table-border-color: lch(65 var(--s1-primary-ch));
    --bs-table-striped-bg: lch(85 var(--s1-primary-ch));
    --bs-table-striped-color: var(--bs-black);
    --bs-table-active-bg: lch(70 var(--s1-primary-ch));
    --bs-table-active-color: var(--bs-black);
    --bs-table-hover-bg: lch(75 var(--s1-primary-ch));
    --bs-table-hover-color: var(--bs-black);
    color: var(--bs-table-color);
    border-color: var(--bs-table-border-color)
}
.table-secondary {
    --bs-table-color: var(--bs-black);
    --bs-table-bg: lch(90 var(--s1-secondary-ch));
    --bs-table-border-color: lch(65 var(--s1-secondary-ch));
    --bs-table-striped-bg: lch(85 var(--s1-secondary-ch));
    --bs-table-striped-color: var(--bs-black);
    --bs-table-active-bg: lch(70 var(--s1-secondary-ch));
    --bs-table-active-color: var(--bs-black);
    --bs-table-hover-bg: lch(75 var(--s1-secondary-ch));
    --bs-table-hover-color: var(--bs-black);
}
.table-success {
    --bs-table-color: var(--bs-black);
    --bs-table-bg: lch(90 var(--s1-success-ch));
    --bs-table-border-color: lch(65 var(--s1-success-ch));
    --bs-table-striped-bg: lch(85 var(--s1-success-ch));
    --bs-table-striped-color: var(--bs-black);
    --bs-table-active-bg: lch(70 var(--s1-success-ch));
    --bs-table-active-color: var(--bs-black);
    --bs-table-hover-bg: lch(75 var(--s1-success-ch));
    --bs-table-hover-color: var(--bs-black);
}
.table-info {
    --bs-table-color: var(--bs-black);
    --bs-table-bg: lch(90 var(--s1-info-ch));
    --bs-table-border-color: lch(65 var(--s1-info-ch));
    --bs-table-striped-bg: lch(85 var(--s1-info-ch));
    --bs-table-striped-color: var(--bs-black);
    --bs-table-active-bg: lch(70 var(--s1-info-ch));
    --bs-table-active-color: var(--bs-black);
    --bs-table-hover-bg: lch(75 var(--s1-info-ch));
    --bs-table-hover-color: var(--bs-black);
}
.table-warning {
    --bs-table-color: var(--bs-black);
    --bs-table-bg: lch(90 var(--s1-warning-ch));
    --bs-table-border-color: lch(65 var(--s1-warning-ch));
    --bs-table-striped-bg: lch(85 var(--s1-warning-ch));
    --bs-table-striped-color: var(--bs-black);
    --bs-table-active-bg: lch(70 var(--s1-warning-ch));
    --bs-table-active-color: var(--bs-black);
    --bs-table-hover-bg: lch(75 var(--s1-warning-ch));
    --bs-table-hover-color: var(--bs-black);
}
.table-danger {
    --bs-table-color: var(--bs-black);
    --bs-table-bg: lch(90 var(--s1-danger-ch));
    --bs-table-border-color: lch(65 var(--s1-danger-ch));
    --bs-table-striped-bg: lch(85 var(--s1-danger-ch));
    --bs-table-striped-color: var(--bs-black);
    --bs-table-active-bg: lch(70 var(--s1-danger-ch));
    --bs-table-active-color: var(--bs-black);
    --bs-table-hover-bg: lch(75 var(--s1-danger-ch));
    --bs-table-hover-color: var(--bs-black);
}
.table-light {
    --bs-table-color: var(--bs-black);
    --bs-table-bg: var(--bs-light);
    --bs-table-border-color: var(--bs-gray-300);
    --bs-table-striped-bg: var(--bs-gray-100);
    --bs-table-striped-color: var(--bs-black);
    --bs-table-active-bg: var(--bs-gray-200);
    --bs-table-active-color: var(--bs-black);
    --bs-table-hover-bg: var(--bs-gray-200);
    --bs-table-hover-color: var(--bs-black);
}
.table-dark {
    --bs-table-color: var(--bs-white);
    --bs-table-bg: var(--bs-dark);
    --bs-table-border-color: var(--bs-gray-700);
    --bs-table-striped-bg: var(--bs-gray-900);
    --bs-table-striped-color: var(--bs-white);
    --bs-table-active-bg: var(--bs-gray-800);
    --bs-table-active-color: var(--bs-white);
    --bs-table-hover-bg: var(--bs-gray-800);
    --bs-table-hover-color: var(--bs-white);
}
.form-control:focus {
        color: var(--bs-body-color);
        background-color: var(--bs-body-bg);
    border-color: lch(calc(var(--s1-primary-l) / 100 * 90) var(--s1-primary-ch));
        box-shadow: 0 0 0 .25rem lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.25);
}
.form-select:focus {
    border-color: lch(calc(var(--s1-primary-l) / 100 * 90) var(--s1-primary-ch));
    outline: 0;
        box-shadow: 0 0 0 .25rem lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.25);
}
.form-check-input:focus {
    border-color: lch(calc(var(--s1-primary-l) / 100 * 90) var(--s1-primary-ch));
    outline: 0;
        box-shadow: 0 0 0 .25rem lch(var(--s1-primary-l) var(--s1-primary-ch) / 0.25);
}
.form-check-input:checked {
    background-color: var(--s1-primary);
    border-color: var(--s1-primary);
}
.form-check-input[type=checkbox]:indeterminate {
    background-color: var(--s1-primary);
    border-color: var(--s1-primary);
}
.form-range::-webkit-slider-thumb {
    background-color: var(--s1-primary);
}
.form-range::-webkit-slider-thumb:active {
    background-color: lch(calc(var(--s1-primary-l) / 100 * 90) var(--s1-primary-ch));
}
.form-range::-moz-range-thumb {
    background-color: var(--s1-primary);
}
.form-range::-moz-range-thumb:active {
    background-color: lch(calc(var(--s1-primary-l) / 100 * 90) var(--s1-primary-ch));
}
.form-floating>.form-control:disabled~label,
.form-floating>:disabled~label {
    color: var(--s1-secondary);
}
.btn-primary {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--s1-primary);
    --bs-btn-border-color: var(--s1-primary);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: lch(calc(var(--s1-primary-l) + 10) var(--s1-primary-ch));
    --bs-btn-hover-border-color: lch(calc(var(--s1-primary-l) + 7.5) var(--s1-primary-ch));
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: lch(calc(var(--s1-primary-l) + 7.5) var(--s1-primary-ch));
    --bs-btn-active-border-color: lch(calc(var(--s1-primary-l) + 5) var(--s1-primary-ch));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--s1-primary);
    --bs-btn-disabled-border-color: var(--s1-primary)
}
.btn-secondary {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--s1-secondary);
    --bs-btn-border-color: var(--s1-secondary);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: lch(calc(var(--s1-secondary-l) + 10) var(--s1-secondary-ch));
    --bs-btn-hover-border-color: lch(calc(var(--s1-secondary-l) + 7.5) var(--s1-secondary-ch));
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: lch(calc(var(--s1-secondary-l) + 7.5) var(--s1-secondary-ch));
    --bs-btn-active-border-color: lch(calc(var(--s1-secondary-l) + 5) var(--s1-secondary-ch));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--s1-secondary);
    --bs-btn-disabled-border-color: var(--s1-secondary)
}
.btn-success {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-success);
    --bs-btn-border-color: var(--bs-success);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: lch(calc(var(--s1-success-l) + 10) var(--s1-success-ch));
    --bs-btn-hover-border-color: lch(calc(var(--s1-success-l) + 7.5) var(--s1-success-ch));
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: lch(calc(var(--s1-success-l) + 7.5) var(--s1-success-ch));
    --bs-btn-active-border-color: lch(calc(var(--s1-success-l) + 5) var(--s1-success-ch));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-success);
    --bs-btn-disabled-border-color: var(--bs-success)
}
.btn-info {
    --bs-btn-color: var(--bs-black);
    --bs-btn-bg: var(--bs-info);
    --bs-btn-border-color: var(--bs-info);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: lch(calc(var(--s1-info-l) + 10) var(--s1-info-ch));
    --bs-btn-hover-border-color: lch(calc(var(--s1-info-l) + 7.5) var(--s1-info-ch));
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: lch(calc(var(--s1-info-l) + 7.5) var(--s1-info-ch));
    --bs-btn-active-border-color: lch(calc(var(--s1-info-l) + 5) var(--s1-info-ch));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-black);
    --bs-btn-disabled-bg: var(--bs-info);
    --bs-btn-disabled-border-color: var(--bs-info)
}
.btn-warning {
    --bs-btn-color: var(--bs-black);
    --bs-btn-bg: var(--bs-warning);
    --bs-btn-border-color: var(--bs-warning);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: lch(calc(var(--s1-warning-l) + 10) var(--s1-warning-ch));
    --bs-btn-hover-border-color: lch(calc(var(--s1-warning-l) + 7.5) var(--s1-warning-ch));
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: lch(calc(var(--s1-warning-l) + 7.5) var(--s1-warning-ch));
    --bs-btn-active-border-color: lch(calc(var(--s1-warning-l) + 5) var(--s1-warning-ch));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-black);
    --bs-btn-disabled-bg: var(--bs-warning);
    --bs-btn-disabled-border-color: var(--bs-warning)
}
.btn-danger {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-danger);
    --bs-btn-border-color: var(--bs-danger);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: lch(calc(var(--s1-danger-l) + 10) var(--s1-danger-ch));
    --bs-btn-hover-border-color: lch(calc(var(--s1-danger-l) + 7.5) var(--s1-danger-ch));
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: lch(calc(var(--s1-danger-l) + 7.5) var(--s1-danger-ch));
    --bs-btn-active-border-color: lch(calc(var(--s1-danger-l) + 5) var(--s1-danger-ch));
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-danger);
    --bs-btn-disabled-border-color: var(--bs-danger)
}
.btn-light {
    --bs-btn-color: var(--bs-black);
    --bs-btn-bg: var(--bs-light);
    --bs-btn-border-color: var(--bs-light);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: var(--bs-gray-100);
    --bs-btn-hover-border-color: var(--bs-gray-200);
    --bs-btn-focus-shadow-rgb: 211, 212, 213;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: var(--bs-gray-200);
    --bs-btn-active-border-color: var(--bs-gray-300);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-black);
    --bs-btn-disabled-bg: var(--bs-light);
    --bs-btn-disabled-border-color: var(--bs-light)
}
.btn-dark {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-dark);
    --bs-btn-border-color: var(--bs-dark);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-gray-800);
    --bs-btn-hover-border-color: var(--bs-gray-600);
    --bs-btn-focus-shadow-rgb: 66, 70, 73;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-gray-700);
    --bs-btn-active-border-color: var(--bs-gray-600);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(255, 255, 255, 0.125);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-dark);
    --bs-btn-disabled-border-color: var(--bs-dark)
}
.btn-outline-primary {
    --bs-btn-color: var(--s1-primary);
    --bs-btn-border-color: var(--s1-primary);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--s1-primary);
    --bs-btn-hover-border-color: var(--s1-primary);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--s1-primary);
    --bs-btn-active-border-color: var(--s1-primary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--s1-primary);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--s1-primary);
    --bs-gradient: none
}
.btn-outline-secondary {
    --bs-btn-color: var(--s1-secondary);
    --bs-btn-border-color: var(--s1-secondary);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--s1-secondary);
    --bs-btn-hover-border-color: var(--s1-secondary);
    --bs-btn-focus-shadow-rgb: 108, 117, 125;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--s1-secondary);
    --bs-btn-active-border-color: var(--s1-secondary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--s1-secondary);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--s1-secondary);
    --bs-gradient: none
}
.btn-outline-success {
    --bs-btn-color: var(--bs-success);
    --bs-btn-border-color: var(--bs-success);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-success);
    --bs-btn-hover-border-color: var(--bs-success);
    --bs-btn-focus-shadow-rgb: 25, 135, 84;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-success);
    --bs-btn-active-border-color: var(--bs-success);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-success);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-success);
    --bs-gradient: none
}
.btn-outline-info {
    --bs-btn-color: var(--bs-info);
    --bs-btn-border-color: var(--bs-info);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: var(--bs-info);
    --bs-btn-hover-border-color: var(--bs-info);
    --bs-btn-focus-shadow-rgb: 13, 202, 240;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: var(--bs-info);
    --bs-btn-active-border-color: var(--bs-info);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-info);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-info);
    --bs-gradient: none
}
.btn-outline-warning {
    --bs-btn-color: var(--bs-warning);
    --bs-btn-border-color: var(--bs-warning);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: var(--bs-warning);
    --bs-btn-hover-border-color: var(--bs-warning);
    --bs-btn-focus-shadow-rgb: 255, 193, 7;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: var(--bs-warning);
    --bs-btn-active-border-color: var(--bs-warning);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-warning);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-warning);
    --bs-gradient: none
}
.btn-outline-danger {
    --bs-btn-color: var(--bs-danger);
    --bs-btn-border-color: var(--bs-danger);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-danger);
    --bs-btn-hover-border-color: var(--bs-danger);
    --bs-btn-focus-shadow-rgb: 220, 53, 69;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-danger);
    --bs-btn-active-border-color: var(--bs-danger);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-danger);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-danger);
    --bs-gradient: none
}
.btn-outline-light {
    --bs-btn-color: var(--bs-light);
    --bs-btn-border-color: var(--bs-light);
    --bs-btn-hover-color: var(--bs-black);
    --bs-btn-hover-bg: var(--bs-light);
    --bs-btn-hover-border-color: var(--bs-light);
    --bs-btn-focus-shadow-rgb: 248, 249, 250;
    --bs-btn-active-color: var(--bs-black);
    --bs-btn-active-bg: var(--bs-light);
    --bs-btn-active-border-color: var(--bs-light);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-light);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-light);
    --bs-gradient: none
}
.btn-outline-dark {
    --bs-btn-color: var(--bs-dark);
    --bs-btn-border-color: var(--bs-dark);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-dark);
    --bs-btn-hover-border-color: var(--bs-dark);
    --bs-btn-focus-shadow-rgb: 33, 37, 41;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-dark);
    --bs-btn-active-border-color: var(--bs-dark);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--bs-dark);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-dark);
    --bs-gradient: none
}
.btn-link {
    --bs-btn-font-weight: 400;
    --bs-btn-disabled-color: var(--s1-secondary);
    --bs-btn-box-shadow: 0 0 0 var(--bs-black);
    --bs-btn-focus-shadow-rgb: 49, 132, 253;
}
.dropdown-menu {
    --bs-dropdown-link-active-color: var(--bs-white);
    --bs-dropdown-link-active-bg: var(--s1-primary);
    --bs-dropdown-header-color: var(--s1-secondary);
}
.dropdown-menu-dark {
    --bs-dropdown-color: #dee2e6;
    --bs-dropdown-bg: #343a40;
    --bs-dropdown-link-color: #dee2e6;
    --bs-dropdown-link-hover-color: var(--bs-white);
        --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);
    --bs-dropdown-link-active-color: var(--bs-white);
    --bs-dropdown-link-active-bg: var(--s1-primary);
    --bs-dropdown-link-disabled-color: #adb5bd;
    --bs-dropdown-header-color: #adb5bd
}
.navbar-dark,
.navbar[data-bs-theme=dark] {
        --bs-navbar-color: rgba(255, 255, 255, 0.55);
        --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);
        --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);
    --bs-navbar-active-color: var(--bs-white);
    --bs-navbar-brand-color: var(--bs-white);
    --bs-navbar-brand-hover-color: var(--bs-white);
        --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);
}
.pagination {
    --bs-pagination-active-color: var(--bs-white);
    --bs-pagination-active-bg: var(--s1-primary);
    --bs-pagination-active-border-color: var(--s1-primary);
}
.progress,
.progress-stacked {
    --bs-progress-bar-color: var(--bs-white);
    --bs-progress-bar-bg: var(--s1-primary);
}
.list-group {
    --bs-list-group-active-color: var(--bs-white);
    --bs-list-group-active-bg: var(--s1-primary);
    --bs-list-group-active-border-color: var(--s1-primary);
}
.btn-close {
    --bs-btn-close-color: var(--bs-black);
}
.carousel-control-next,
.carousel-control-prev {
    color: var(--bs-white);
}
.carousel-control-next:focus,
.carousel-control-next:hover,
.carousel-control-prev:focus,
.carousel-control-prev:hover {
    color: var(--bs-white);
}
.carousel-indicators [data-bs-target] {
    background-color: var(--bs-white);
}
.carousel-caption {
    color: var(--bs-white);
}
.carousel-dark .carousel-indicators [data-bs-target] {
    background-color: var(--bs-black)
}
.carousel-dark .carousel-caption {
    color: var(--bs-black)
}
[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],
[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] {
    background-color: var(--bs-black)
}
[data-bs-theme=dark] .carousel .carousel-caption,
[data-bs-theme=dark].carousel .carousel-caption {
    color: var(--bs-black)
}

/*** COLOR ADJUSTMENTS ***/
.dropdown-menu,
.offcanvas {
    background-image: linear-gradient(lch(var(--s1-bkg-l) var(--s1-bkg-ch) / 0.2) 0%, lch(var(--s1-bkg-l) var(--s1-bkg-ch) / 0.2) 100%), linear-gradient(rgba(255,255,255,1) 0%, rgba(255,255,255,1) 100%);
}

/*** PAGE GRID ***/
body > *:not(script, link) {
  --page-padding: 1rem;
  --content-max-width: 1320px; /* use BS container width var */
  --breakout-max-width: calc(var(--content-max-width) + 8rem);
  --breakout-size: calc(
    (var(--breakout-max-width) - var(--content-max-width)) / 2
  );
  display: grid;
  grid-template-columns:
    [full-width-start] minmax(var(--page-padding), 1fr)
    [breakout-start] minmax(0, var(--breakout-size))
    [content-start]
    min(50% - (var(--page-padding) * 2), var(--content-max-width) / 2)
    [center]
    min(50% - (var(--page-padding) * 2), var(--content-max-width) / 2)
    [content-end]
    minmax(0, var(--breakout-size)) [breakout-end]
    minmax(var(--page-padding), 1fr) [full-width-end];
  grid-column: full-width;
  grid-auto-rows: max-content;
}
.s1-breakout {
  grid-column: breakout;
}
.s1-bleed {
  grid-column: full-width;
  display: grid;
  grid-template-columns: inherit;
  background: var(--s1-accent);
}
body > *:not(script, link) > :not([class^="s1-"], [class*=" s1-"]),
.s1-bleed > :not([class^="s1-"], [class*=" s1-"]) {
  grid-column: content;
}
.s1-fill > :not([class^="s1-"], [class*=" s1-"]) {
  grid-column: full-width;
}

.s1-bleed-right,
.s1-bleed-left {
  display: grid;
  grid-template-columns: subgrid;
  background: var(--s1-accent);
}
.s1-bleed-right {
  grid-column: breakout-start / full-width-end;
}
.s1-bleed-left {
  grid-column: full-width-start / breakout-end;
}
.s1-bleed-right > *,
.s1-bleed-left > * {
  grid-column: content;
}

.s1-bleed-right > .s1-outer,
.s1-bleed-right > .s1-inner {
  grid-column: content / full-width;
}
.s1-bleed-left > .s1-outer {
  grid-column: full-width / content;
}
.s1-bleed-left > .s1-inner {
  grid-column: content;
}
@media (width >= 576px) { /* BS small breakpoint */
  .s1-bleed-right > [class^="s1-"],
  .s1-bleed-right > [class*=" s1-"],
  .s1-bleed-left > [class^="s1-"],
  .s1-bleed-left > [class*=" s1-"] {
    grid-row: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .s1-bleed-right > .s1-inner {
    grid-column: content / center;
  }
  .s1-bleed-right > .s1-outer {
    grid-column: center / full-width;
    padding-left: calc(var(--breakout-size) / 1.5);
  }
  .s1-bleed-left > .s1-inner {
    grid-column: center / content;
  }
  .s1-bleed-left > .s1-outer {
    grid-column: full-width / center;
    padding-right: calc(var(--breakout-size) / 1.5);
  }
  .s1-outer:not(.no-cover),
  .s1-outer:not(.no-cover) img {
    height: 100%;
    object-fit: cover;
  }
}

/*** MISC ***/
::-moz-selection { /* Code for Firefox */
  background: var(--bs-highlight-bg);
}
::selection {
  background: var(--bs-highlight-bg);
}
img {
    max-width: 100%;
}
img.s1-bleed {
    width: 100%;
}
textarea.form-control {
    min-height: calc(8em + .75rem + calc(var(--bs-border-width) * 2));
}
.grecaptcha-badge {
    transform: scale(0.75);
    transform-origin: top left;
    bottom: 44px !important;
    right: -204px !important;
    z-index: 10;
}
.grecaptcha-badge:hover {
    right: -65px !important;
}
/*** Re-target pagination for CMS output ***/
.pagination ul {
    --bs-pagination-padding-x: 0.75rem;
    --bs-pagination-padding-y: 0.375rem;
    --bs-pagination-font-size: 1rem;
    --bs-pagination-color: var(--bs-link-color);
    --bs-pagination-bg: var(--bs-body-bg);
    --bs-pagination-border-width: var(--bs-border-width);
    --bs-pagination-border-color: var(--bs-border-color);
    --bs-pagination-border-radius: var(--bs-border-radius);
    --bs-pagination-hover-color: var(--bs-link-hover-color);
    --bs-pagination-hover-bg: var(--bs-tertiary-bg);
    --bs-pagination-hover-border-color: var(--bs-border-color);
    --bs-pagination-focus-color: var(--bs-link-hover-color);
    --bs-pagination-focus-bg: var(--bs-secondary-bg);
    --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    --bs-pagination-disabled-color: var(--bs-secondary-color);
    --bs-pagination-disabled-bg: var(--bs-secondary-bg);
    --bs-pagination-disabled-border-color: var(--bs-border-color);
    display: flex;
    padding-left: 0;
    list-style: none
}
.pagination ul li a {
    position: relative;
    display: block;
    padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);
    font-size: var(--bs-pagination-font-size);
    color: var(--bs-pagination-color);
    text-decoration: none;
    background-color: var(--bs-pagination-bg);
    border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out
}
@media (prefers-reduced-motion:reduce) {
    .pagination ul li a {
        transition: none
    }
}
.pagination ul li a:hover {
    z-index: 2;
    color: var(--bs-pagination-hover-color);
    background-color: var(--bs-pagination-hover-bg);
    border-color: var(--bs-pagination-hover-border-color)
}
.pagination ul li a:focus {
    z-index: 3;
    color: var(--bs-pagination-focus-color);
    background-color: var(--bs-pagination-focus-bg);
    outline: 0;
    box-shadow: var(--bs-pagination-focus-box-shadow)
}
.pagination ul li.active > a {
    z-index: 3;
    color: var(--bs-pagination-active-color);
    background-color: var(--bs-pagination-active-bg);
    border-color: var(--bs-pagination-active-border-color)
}
.pagination ul li:not(:first-child) a {
    margin-left: calc(var(--bs-border-width) * -1)
}
.pagination ul li:first-child a {
    border-top-left-radius: var(--bs-pagination-border-radius);
    border-bottom-left-radius: var(--bs-pagination-border-radius)
}
.pagination ul li:last-child a {
    border-top-right-radius: var(--bs-pagination-border-radius);
    border-bottom-right-radius: var(--bs-pagination-border-radius)
}

/* ICOMOON ********************************************************************/
@namespace xlink 'http://www.w3.org/1999/xlink';
.icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  stroke-width: 0;
  stroke: currentColor;
  fill: currentColor;
}

/*** TYPOGRAPHY ***/
.heading,
h1, h2, h3, h4, h5, h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--s1-font-headings);
  font-optical-sizing: auto;
  font-weight: 800;
  font-style: normal;
}
del {
    color: var(--bs-tertiary-color);
}
ins {
    color: var(--bs-emphasis-color);
}

/*** FOR DEV MODE ***/
#vp {
    display: inline-block;
    position:fixed;
    bottom:0;
    left:0;
    padding:0 0.2rem;
    background:var(--bs-white);
    color:var(--bs-black);
    opacity:0.3;
    font-size:0.8rem;
    pointer-events: none;
    z-index:9999999;
}
