/* =========================================================
   Imports
   ========================================================= */
@import url("https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap");
@import url('https://fonts.googleapis.com/css2?family=Neuton:ital,wght@0,200;0,300;0,400;0,700;0,800;1,400&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');

/* =========================================================
   CSS variables
   ========================================================= */
:root {
    --main-color: #0077ff;
    --secondary-color: #7f51dd;
    --text-color: #000;
    --text-light: #777;
    --bg: #fff;
    --bg-light: #ddd;
    --bg-lighter: #eee;
    --bg-lighterer: #f9f9f9;
    --bg-dark: #bbb;
    --font-primary: "Lato", sans-serif;
    --font-secondary: "Libre Baskerville", serif;
    /*--font-secondary: "Cormorant Upright", serif;*/
    --border-radius: 5px;
    --border-radius-big: 10px;
    --border-radius-bigger: 20px;
    --menu-height: 100px;
    --menu-width: 1100px;
}

@media (max-width: 1100px) {
    :root {
        --menu-height: 330px;
    }
}


/* =========================================================
   Reset and base styles
   ========================================================= */
html, body {
    font-family: var(--font-primary);
    font-weight: normal;
    font-size: 13pt;
    line-height: 18pt;
    margin: 0;
    padding: 0;
    background-color: var(--bg);
    color: var(--text-color);
    height: 100%;
    overscroll-behavior-y: none;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

* {
    /*z-index: 1;*/
}

img {
    vertical-align: middle;
}

h1 {
    font-size: 1.6em;
    margin: 0.2em 0 0 0;
    font-weight: 800;
}

h2 {
    font-size: 1.2em;
    margin: 0.8em 0 0.8em 0;
    text-align: left;
    text-transform: capitalize;
    background-color: var(--text-color);
    color: var(--bg);
    width: fit-content;
    border-radius: var(--border-radius);
    /*border-top-right-radius: var(--border-radius-big);*/
    padding: 0.3em 0.4em;
    line-height: 1em;
    /*font-family: var(--font-secondary);*/
    /*font-style: italic;*/
    /*font-weight: 800;*/
    font-weight: 700;
}

h2:not(:first-of-type) {
    margin-top: 3em; /* or whatever value you want */
}

h3 {
    font-size: 1.0em;
    margin: 0.9em 0 0 0;
    background-color: var(--text-light);
    color: var(--bg);
    width: fit-content;
    padding: 0.3em 0.4em;
    border-radius: var(--border-radius);
    /*font-family: var(--font-secondary);*/
    /*font-style: italic;*/
    /*font-weight: 800;*/
    font-weight: 700;
}

h4 {
    font-size: 1.0em;
    margin: 0.5em 0 0 0;
    background-color: var(--text-light);
    color:var(--bg);
    font-style: italic;
    width: fit-content;
    font-weight: 400;
    border-radius: var(--border-radius-big);
    padding:0 10px;
}

h2, h3, h4 {
    /*font-style: italic;*/
    letter-spacing: -0.1pt;
}


a {
    background: none;
    color: var(--main-color);
    text-decoration: underline;
    text-underline-offset: 0.2rem;
}

a {
    font-weight: normal;
    padding: 0 5px 2px 5px;
    margin: 0 2px;
}

a:hover {
    border-radius: var(--border-radius);
    text-decoration: none;
    color: var(--bg);
    background-color: var(--main-color);
    transition: background-color 150ms linear;
}

img {
    max-width: 100%;
}

ul {
    padding-left: 12px;
}

ul li {
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: 10px;
    line-height: 16pt;
    text-align: left;
    /*padding: 5px 0px 5px 10px;*/
}

li {
    list-style-type: "⨳";
}

li::marker {
    content: "⨳";
    font-weight: 400;
}

/* =========================================================
   Components - tables
   ========================================================= */
table {
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    border: none;
}

thead th {
    background-color: var(--bg-lighter);
    color: var(--text-color);
    padding: 8px 12px;
    text-align: left;
    border-bottom: 2px solid var(--text-color);
    font-weight: 600;
}

thead th:first-child {
    border-top-left-radius: 8px;
}

thead th:last-child {
    border-top-right-radius: 8px;
}

tbody tr:nth-child(odd) {
    background-color: var(--bg);
}

tbody tr:nth-child(even) {
    background-color: var(--bg-lighterer);
}

tbody td {
    padding: 8px 12px;
    border-bottom: 1px solid var(--bg-light);
}

tbody tr:last-child td {
    /*border-bottom: none;*/
}

tbody tr:hover {
    background-color: var(--bg-lighter);
}


table.key-value th:first-child, table.key-value td:first-child {
    text-align: left;
}

table.key-value tbody tr td:not(:first-child),
table.key-value thead tr th:not(:first-child) {
    text-align: right;
}

/* =========================================================
   Componentts - grid
   ========================================================= */
.grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 30px 30px;
    /*margin: 0 -15px;*/
    /*padding: 0 15px;*/
    box-sizing: border-box;
}

.grid-large {
    gap: 60px 60px;
}

.grid.vertically-centered {
    align-items: center;
    height: 100%;
}

/* Columns span by grid-column */
.col-1 {
    grid-column: span 1;
}

.col-2 {
    grid-column: span 2;
}

.col-3 {
    grid-column: span 3;
}

.col-4 {
    grid-column: span 4;
}

.col-5 {
    grid-column: span 5;
}

.col-6 {
    grid-column: span 6;
}

.col-7 {
    grid-column: span 7;
}

.col-8 {
    grid-column: span 8;
}

.col-9 {
    grid-column: span 9;
}

.col-10 {
    grid-column: span 10;
}

.col-11 {
    grid-column: span 11;
}

.col-12 {
    grid-column: span 12;
}


@media (max-width: 800px) {
    .grid {
        grid-template-columns: 1fr;
        gap: 20px; /* smaller gaps for mobile */
        /*margin: 0 -10px;*/
        /*padding: 0 10px;*/
    }


    [class*="col-"] {
        grid-column: span 1 !important;
    }
}

/* =========================================================
   Components - stacks
   ========================================================= */
.stack {
    display: flex;
    gap: 10px;
    flex-direction: column;
}

.stack-small {
    gap: 4px;
}

.stack-big {
    gap: 20px;
}

.stack-bigger {
    gap: 40px;
}

.stack-huge {
    gap: 60px;
}

.stack-column {
    flex-direction: column;
}

.stack-row {
    flex-direction: row;
}

.stack-center {
    align-items: center;
}

.stack-start {
    align-items: flex-start;
}

.stack-end {
    align-items: flex-end;
}

.stack-wrap {
    flex-wrap: wrap;
}

.stack-justify-start {
    justify-content: flex-start;
}

.stack-justify-center {
    justify-content: center;
}

.stack-justify-end {
    justify-content: flex-end;
}

.stack-justify-between {
    justify-content: space-between;
}

.stack-justify-around {
    justify-content: space-around;
}

.stack-justify-evenly {
    justify-content: space-evenly;
}

.stack-equal > * {
    flex: 1 1 0;
    min-width: 0; /* to prevent overflow issues */
}

@media (max-width: 800px) {
    .stack-responsive {
        flex-direction: column; /* behaves like stack-column */
        align-items: stretch; /* make children fill width */
    }
}

/* =========================================================
   Components - forms
   ========================================================= */
label {
    display: block;
    margin-bottom: 0.5em;
    font-weight: bold;
    color: var(--text-color);
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
textarea {
    font-family: var(--font-primary);
    padding: 0.5em 0.6em;
    border: 2px solid var(--bg-light);
    border-radius: var(--border-radius);
    box-sizing: border-box;
    font-size: 1em;
    background-color: var(--bg);
    transition: border-color 0.3s, box-shadow 0.2s;
    /*margin-bottom: 1em;*/
}

input:focus,
textarea:focus,
select:focus, .focus .ts-control {
    border: 2px solid var(--bg-light);
    box-shadow: 0 0 12px 2px var(--bg-light);
    outline: none;
    transition: border-color 0.3s, box-shadow 0.2s;
}

.ts-control {
    border: 2px solid var(--bg-light);
}

.ts-dropdown-content {
    max-height: 350px; /* limit max height */
    overflow-y: auto; /* enable vertical scroll if content overflows */
}

.tom-select {
    display: none;
}

/* =========================================================
   Components - side menu
   ========================================================= */
.side-menu {
    position: fixed;
    top: 110px;
    left: 20px; /* distance from the left edge */
    max-width: 200px;
    font-family: Arial, sans-serif;
    z-index: 9999;
}

.side-menu li::marker {
    content: none;
}

.side-menu a.button {
    font-size: 0.9em;
    padding: 0.3em 0.8em;
    text-transform: capitalize;
}

.side-menu a.button::before {
    content: none;
}

.side-menu a.active {
    background-color: var(--main-color);
}

.side-menu a.push {
    background-color: var(--secondary-color);
}

@media (max-width: 1200px) {
    .side-menu {
        display: none;
    }
}

/* =========================================================
   Components - button
   ========================================================= */
a.button {
    border-radius: var(--border-radius);
    background-color: var(--text-color);
    /*background-color: var(--main-color;*/
    padding: 7px 12px 8px 12px;
    text-decoration: none;
    color: var(--bg);
    /*text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);*/
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
    /*text-transform: capitalize;*/
}

a.button:hover {
    background-color: var(--main-color);
    color: var(--bg);
}

a.button2:hover {
    background-color: var(--secondary-color);
    color: var(--bg);
}

a.button::before {
    content: "➞ ";
    margin-right: 4px;
}

a.button.naked::before {
    content: none;
}

a.button i {
    margin-right: 4px;
}

button,
input[type="submit"] {
    background-color: var(--text-color);
    color: white;
    padding: 0.7em 1.3em;
    border: none;
    border-radius: var(--border-radius);
    font-size: 1em;
    cursor: pointer;
    transition: background-color 0.3s;
    text-transform: capitalize;
}

button:hover:not(.ag-chart button),
input[type="submit"]:hover {
    background-color: var(--main-color);
}

button.medium, .button.medium {
    font-size: 0.9em;
    padding: 0.5em 0.6em 0.55em 0.6em;
}

button.small, .button.small {
    font-size: 0.8em;
    padding: 0.3em 0.6em;
}

button.active {
    background-color: var(--main-color);
}

/* =========================================================
   Components - listed chips
   ========================================================= */
.chips ul {
    list-style: none;
}

.chips li {
    background-color: var(--bg-light);
    border-radius: 20px;
    display: inline-block;
    padding: 3px 14px;
    font-size: 0.8em;
    color: var(--text-light);
    position: relative;
    margin: 6px 6px;
    text-transform: capitalize;
}

.chips li::before {
    content: "➞";
    margin-right: 6px;
}

/* =========================================================
   Components - push folio
   ========================================================= */
.push-folio {
    background-size: auto 100%;
    background-repeat: no-repeat;
    background-position: center center;
    display: flex;
    justify-content: center;
    align-items: center;
    /*margin: 20px 0;*/
    min-height: 500px;
    background-image: linear-gradient(rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.7)), url("../img/splash4.jpg");
}

.push-folio a {
    margin-top: -20px;
    display: flex;
    gap: 10px;
    color: var(--text-color);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    transition: transform 0.2s cubic-bezier(.34, 1.56, .64, 1);
}

.push-folio a:hover {
    transform: scale(1.05);
    background: none;
}

.push-folio a .button {
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
    border-radius: var(--border-radius);
    font-size: 20px;
    padding: 10px;
    background-color: var(--text-color);
    color: var(--bg);
    box-shadow: 5px 5px 25px rgba(0, 0, 0, 0.3);
    cursor: pointer;
}

.push-folio .moto {
    background-color: var(--bg);
    color: var(--text-color);
    font-size: 0.9em;
    padding: 3px 10px;
    border-radius: var(--border-radius);
    box-shadow: 5px 5px 25px rgba(0, 0, 0, 0.2);
}

.push-folio img {
    width: 450px;
    /*box-shadow: 5px 5px 25px rgba(0, 0, 0, 0.9);*/
}

.push-folio .verbatim {
    margin: 10px auto;
    scale: 0.9;
}

/* =========================================================
   Components - folio-push
   ========================================================= */
.push-folio-index {
    /*margin: 0 auto;*/
    /*max-width: var(--menu-width);*/
    cursor: pointer;
    background-color: var(--secondary-color);
    border-radius: var(--border-radius-big);
    color: var(--bg);
    padding: 1em 1.5em;
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.push-folio-index-bottom {
    background-image: linear-gradient(rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.9)), url("../img/splash4.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    height: 30px;
    width: 100%;
}

.push-folio-index:hover {
    background-color: var(--main-color);
    transform: scale(1.02);
}

.push-folio-index h2 {
    background-color: transparent;
    margin-bottom: 0.3em;
    padding: 0;
    font-size: 1.2em;
    font-weight: bolder;
}

@media screen and (max-width: 800px) {
    .push-folio-index img {
        display: none;
    }
}


/* =========================================================
   Components - charts overrides
   ========================================================= */
.ag-charts-tooltip-heading {
    display: none;
}

.ag-charts-tooltip {
    --tooltip-row-spacing: 4px;
}

/* =========================================================
   Components - splash
   ========================================================= */
#splash {
    background-image: linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.1)), url("../img/splash6.jpg");
    background-size: auto 100%;
    background-repeat: no-repeat;
    background-position: center center;
    min-height: 400px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 10px 0 -20px 0;
    position: relative;
}

#home #splash {
    /*min-height: 500px;*/
    background-image: linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.7)), url("../img/splash5.jpg");
}

#error #splash {
    /*min-height: 500px;*/
    background-image: linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 1)), url("../img/splash4.jpg");
}

#expertises #splash {
    background-image: linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 1)), url("../img/splash3.jpg");
}

#about-us #splash {
    background-image: linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 1)), url("../img/splash1.jpg");
}

#services #splash {
    background-image: linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 1)), url("../img/splash2.jpg");
}

@media screen and (max-width: 800px) {
    #splash {
        min-height: 300px;
    }
}


/* =========================================================
   Components - title, verbatim
   ========================================================= */
.title {
    font-family: var(--font-secondary);
    font-size: 8em;
    font-style: italic;
    margin: 70px auto;
    text-transform: capitalize;
    text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.3);
    line-height: 0.9em;
    text-align: center;
}

.subtitle {
    font-family: var(--font-secondary);
    font-style: italic;
    margin-top: -1.8em;
    font-size: 1.5em;
    text-align: center;
    line-height: 1em;
    max-width: 700px;
}

.verbatim {
    width: 75%;
    margin: 10px auto;
    background-color: transparent;
    scale: 1;
}

.verbatim strong {
    background: linear-gradient(45deg, rgba(255, 0, 255, 0.5), rgba(0, 255, 255, 0.5), rgba(255, 255, 0, 0.5), rgba(255, 0, 255, 0.5));
    display: inline;
    background-size: 400% 400%;
    animation: backgroundStrongAnimate 20s ease infinite;
}

@keyframes backgroundStrongAnimate {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

a.verbatim {
    transition: all 0.3s ease;
    display: block;
    text-decoration: none;
}

a.verbatim:hover {
    background-color: transparent;
    transform: scale(1.02);
}

a.verbatim:hover .text {
    background-color: var(--text-color);
    color: var(--bg);
}

.verbatim .text {
    transition: all 0.3s ease;
    background-color: var(--bg);
    color: var(--text-color);
    border-radius: 0 10px 10px 10px;
    border: 6px solid var(--text-color);
    padding: 0 33px;
    line-height: 1.1em;
    font-family: var(--font-secondary);
    font-style: italic;
    font-size: 1.9em;
    /*font-weight: bold;*/
    letter-spacing: -0.2pt;
    text-align: center;
}

.verbatim .quotes {
    z-index: 1;
    border-radius: var(--border-radius);
    border: 10px solid var(--text-color);
    background: url("../img/quotes.png");
    background-size: cover;
    background-color: var(--text-color);
    position: relative;
    display: block;
    /*left:-10px;*/
    margin-top: -50px;
    top: 50px;
    left: -30px;
    width: 50px;
    height: 50px;
    /*margin-bottom: 10px;*/
}

.verbatim .logo {
    width: 100%;
    position: absolute;
    margin-top: 5px;
    text-align: right;
}

.verbatim .logo img {
    width: 100px;
}

@media screen and (max-width: 800px) {
    .title {
        font-size: 5em;
    }

    .verbatim {
        width: 85%;
        scale: 0.9;
        /*margin:20px auto;*/
    }

    .verbatim .text {
        padding: 0 20px;
    }
}

@media screen and (max-width: 600px) {
    .title {
        font-size: 4em;
    }
}

/* =========================================================
   Components - intro
   ========================================================= */
.intro {
    margin: 0 auto;
    font-size: 1.15em;
    color: var(--text-color);
    padding: 50px 80px;
    border-radius: var(--border-radius-big);
    background: linear-gradient(45deg, rgba(255, 0, 255, 0.1), rgba(0, 255, 255, 0.1), rgba(255, 255, 0, 0.15), rgba(255, 0, 255, 0.15));
    background-size: 400% 400%;
    animation: introBackgroundAnimate 10s ease infinite;
    border-bottom: 6px solid transparent;
    border-image: linear-gradient(90deg, rgba(0, 255, 255, 0.5), rgba(255, 0, 255, 0.5), rgba(255, 255, 0, 0.5));
    border-image-slice: 1;
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.2), 0 0 40px rgba(0, 0, 0, 0.1);
}

.intro h2 {
    margin: 0.5em 0;
    background-color: transparent;
    color: var(--text-color);
    font-weight: 900;
    font-family: var(--font-secondary);
    font-style: italic;
    letter-spacing: -0.2pt;
    font-size: 1.6em;
    padding: 0;
    padding-bottom: 4px;
    border-radius: 0;
    /*border-bottom: 4px solid var(--text-color);*/
}


.intro h3 {
    background-color: transparent;
    color: var(--text-light);
    margin-top: -0.5em;
    margin-bottom: 1.3em;
    padding: 0;
    font-size: 1.3em;
}

.intro em {
    /*background: linear-gradient(45deg, rgba(255, 0, 255, 0.1), rgba(0, 255, 255, 0.1), rgba(255, 255, 0, 0.15), rgba(255, 0, 255, 0.15));*/
    background-color: var(--text-color);
    color: var(--bg);
    border-radius: var(--border-radius-big);
    padding: 2px 8px 3px 8px;
    font-weight: normal;
}

@media screen and (max-width: 800px) {
    .intro {
        font-size: 1.1em;
        padding: 15px 20px;
    }
}

@keyframes introBackgroundAnimate {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}


/* =========================================================
   Layout and structure - header
   ========================================================= */
header {
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: var(--menu-width);
    z-index: 99;
    transition: top 0.3s;
}

header .container {
    margin: 20px 30px;
    padding: 0 15px 0 20px;
    color: var(--bg);
    border-radius: 10px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(6px);
    background-color: rgba(0, 0, 0, 0.8);
    /*border-bottom: 6px solid transparent;*/
    border-image: linear-gradient(90deg, rgba(0, 255, 255, 0.9), rgba(255, 0, 255, 0.9), rgba(255, 255, 0, 0.9));
    border-image-slice: 1;
}

header .logo {
    padding: 10px 0 5px 0;
    display: inline-block;
    margin-right: 20px;
}

header .logo img {
    width: 90px;
}

header .logo a, header .logo a:hover {
    padding: 0;
    margin: 0;
    background: none;
}

header .extra {
    float: right;
    vertical-align: middle;
    display: inline-block;
    padding: 20px 0;
}

header .extra a {
    margin: 0 5px;
}

header nav {
    vertical-align: middle;
    display: inline-block;
    font-weight: 800;
    font-size: 0.95em;
    text-transform: capitalize;
    padding: 0;
}

header nav ul {
    padding: 17px 0;
    margin: 0;
}

header nav li {
    color: var(--bg);
    display: inline-block;
    padding: 0 4px 0 4px;
    margin: 5px 0;
}

header nav li:last-child {
    border: none;
}

header nav li a, header nav li a:hover {
    text-decoration: none;
    padding: 4px 9px 6px 9px;
    color: var(--bg);
    /*background-color: var(--text-color);*/
    border-radius: var(--border-radius);
}

header nav li a:hover {
    color: var(--text-color);
    background-color: var(--bg);
    text-decoration: none;

    transition: background-color 200ms linear;
}

header nav li.current a {
    padding: 4px 9px 6px 9px;
    text-decoration: none;
    border-radius: var(--border-radius);
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
    color: var(--text-color);
    background-color: var(--bg);
    font-weight: 800;
}

header a {
    text-transform: capitalize;
}

header a.button {
    background-color: var(--bg);
    color: var(--text-color);
}

header a.button:hover {
    background-color: var(--main-color);
    color: var(--bg);
}

header a.button2:hover {
    background-color: var(--secondary-color);
    color: var(--bg);
}

@media screen and (max-width: 1100px) {

    header nav ul {
        padding: 0;
    }

    header .extra {
        display: block;
        float: none;
        margin: 10px 0 5px 0;
        padding: 0;
    }

    header .extra a {
        /*display: block;*/
        margin: 10px 5px;
        font-size: 0.8em;
    }

    header {
        /*padding: 20px;*/
    }

    header .logo {
        display: block;
    }

    header .container {
        display: block;
        padding: 0 10px;
    }

    header nav li {
        display: block;
        margin: 15px 0;
    }
}

/* =========================================================
   Layout and structure - footer
   ========================================================= */
footer {
    margin-top: 80px;
    width: 100%;
    padding: 45px 0;
    font-weight: normal;
    font-size: 0.9em;
    background-color: var(--bg-lighter);
}

footer .content {
    max-width: 1000px;
    text-align: center;
    margin: 0 auto;
    color: var(--text-color);
}

footer .stack > div {
    flex: 1;
    padding: 20px;
    text-align: left;
    box-sizing: border-box;
}

footer a {
    padding: 4px 6px;
    margin: 0;
    color: var(--text-color);
    text-decoration: none;
}

footer a:hover {
    color: var(--bg);
    background: var(--text-color);
    padding: 4px 6px;
}

footer a.logo:hover {
    background-color: transparent;
}

footer .logo img {
    width: 100px;
}

footer .section {
    padding: 0 6px;
    color: var(--text-color);
    font-weight: bold;
    display: block;
    margin-bottom: 10px;
}

footer ul {
    padding-left: 0;
    margin-left: 0;
}

footer li {
    display: block;
    list-style: none;
    padding-left: 0;
    margin-left: 0;
}

/* =========================================================
   Layout and structure - layout
   ========================================================= */
.content {
    text-align: justify;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    background-color: transparent;
}

.content-narrow {
    max-width: 800px;
}

.content-wide {
    max-width: 1200px;
}

.content-centered {
    text-align: center;
}

.content-padded {
    padding: 5px;
}

.container-base {
    width: 100%;
    background-color: var(--bg);
    padding: 30px 0;
}

.container-alternate {

}

.container-padded {
    padding: 60px 0;
}

@media screen and (max-width: 800px) {
    .container-base {
        /*padding: 15px 0;*/
    }

    .container-padded {
        padding: 30px 0;
    }

    .content {
        text-align: left;
    }
}

main {
    flex: 1;
    margin-top: var(--menu-height);
    padding: 0 30px;
}

/* =========================================================
   Layout and structure - blocks
   ========================================================= */
.focus .icon, #folio .icon {
    font-size: 2.7em;
    color: var(--text-color);
    opacity: 0.4;
    margin-bottom: -0.1em;
    display: block;
}

.focus1 {
    position: relative;
    background-color: var(--bg);
    color: var(--text-color);
    padding: 5px 25px;
    text-align: justify;
    margin: 50px 0;
    font-size: 1em;
}

.focus1 p:last-of-type, .focus1 ul:last-of-type {
    margin-bottom: 0;
}

.focus1::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    bottom: 5px;
    width: 5px;
    background-color: var(--text-color);
    border-radius: 30px;
}

.focus1 h2, .focus1 h3, .focus1 h4 {
    margin-top: 20px;
}

.focus2 {
    background: linear-gradient(to top, var(--bg), var(--bg-lighter));
    border-top: 10px solid var(--text-color);
    padding: 10px 60px;
    font-size: 1.15em;
}

.focus2 h2 {
    background-color: transparent;
    color: var(--text-color);
    font-weight: bold;
    padding: 0;
    font-family: var(--font-secondary);
    font-style: italic;
    font-size: 1.9em;
}

@media screen and (max-width: 800px) {
    .focus2 {
        padding: 10px 30px;
    }
}

/* =========================================================
   Utilities
   ========================================================= */
.debug {
    margin: 0 auto;
    background-color: var(--bg-light);
    padding: 10px;
    position: fixed;
    bottom: 0;
    width: 100%;
    opacity: 0.7;
}

.hidden {
    display: none;
}

.thin {
    font-weight: 300;
}

.positive {
    color: #009C60;
}

.negative {
    color: #e53935;
}

.index-id {
    display: inline-block;
    background-color: var(--bg-light);
    padding: 0.5em 0.5em 0.4em 0.5em;
    border-radius: var(--border-radius);
    font-size: 0.6em;
    line-height: 1;
    font-weight: bold;
    font-family: monospace;
    vertical-align: middle;
}

.list-as-enum ul {
    padding-left: 0;
}

.list-as-enum li {
    display: inline-block;
    padding: 0;
    left: 0;
}

.screenshot {

}

.screenshot img {
    border-radius: var(--border-radius-big);
    box-shadow: 0 10px 35px rgba(0, 0, 0, 0.3);
}

@media screen and (max-width: 900px) {
    .screenshot {
        order: 2
    }
}

#splash .arrow, .push-folio .arrow {
    font-size: 2em;
}

.arrow {
    font-size: 1.5em;
    text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5);
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.spin {
    display: inline-block;
    animation: spin 1.2s linear infinite;
}

/* =========================================================
   Page specific - about us
   ========================================================= */
.portraits {
    max-width: 40%;
    max-height: 120px;
    box-shadow: 0 12px 20px rgba(0, 0, 0, 0.25);
    border-radius: var(--border-radius-big);
    /*border-bottom: 10px solid var(--text-color);*/
    /*margin-top: 20px;*/
}

/* =========================================================
   Page specific - indexes
   ========================================================= */
#indexes .tag {
    color: var(--text-color);
    background-color: var(--bg-light);
    padding: 0.6em 0.7em;
    border-radius: var(--border-radius);
    cursor: pointer;
    user-select: none;
    line-height: 1;
    vertical-align: middle;
    text-transform: capitalize;
}

#indexes .tag:hover {
    background-color: var(--bg-dark);
}

#indexes .tag.active {
    background-color: var(--text-color);
    color: var(--bg);
}

#indexes .filter {
    font-size: 1em;
}

#indexes .indexes-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .88em;
}

#indexes .indexes-table th,
#indexes .indexes-table td {
    padding: 8px 10px;
    /*padding: 0.4em;*/
    border-bottom: 1px solid var(--bg-light);
    vertical-align: middle;
    text-align: left;
}

#indexes .indexes-table tr:last-child th,
#indexes .indexes-table tr:last-child td {
    border-bottom: none;
}

#indexes .indexes-table th {
    position: sticky;
    top: 0;
    cursor: pointer;
    /*background: var(--bg);*/
    z-index: 2;
    box-shadow: inset 0 -3px 0 var(--text-color);
    border-bottom: none;
    padding-top: 0.8em;
    padding-bottom: 1em;
}

#indexes .indexes-table th.num-col,
#indexes .indexes-table td.num-col {
    text-align: right;
    width: 70px;
}

#indexes .indexes-table th.id-col,
#indexes .indexes-table td.id-col {
    width: 100px;
}

#indexes .indexes-table .tag-pill {
    background-color: var(--bg-light);
    color: var(--text-color);
    padding: 0.4em 0.5em;
    line-height: 1em;
    border-radius: var(--border-radius);
    font-size: 0.7em;
    user-select: none;
}

#indexes .indexes-table .details {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    /*transition: opacity 0.3s ease, max-height 0.3s ease;*/
}

#indexes .indexes-table .details-col:hover .details {
    opacity: 1;
    max-height: 500px; /* large enough to show content */
    overflow: visible;
}

#indexes .indexes-table .details-col .name {
    max-width: 370px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    /*font-weight: 550;*/
    /*font-size: 0.95em;*/
}

#indexes .indexes-table tbody tr {
    cursor: pointer;
    transition: background-color 0.3s ease;
    border-radius: 10px;
}

#indexes .indexes-table tbody tr:hover {
    background-color: var(--bg-lighter);

}

#indexes .indexes-table tr:hover .name {
    background-color: var(--text-color);
    color: var(--bg);
    padding: 0px 7px;
    border-radius: 4px;
}

#indexes .indexes-table tr:hover .name:hover {
    /*background-color: var(--main-color);*/
}

#indexes .indexes-table tr:hover .index-id {
    background-color: var(--text-color);
    color: var(--bg);
    /*padding: 0px 6px;*/
    /*border-radius: 4px;*/
}

#indexes .filter input[type="text"] {
    flex: 1 1 auto;
    min-width: 0; /* prevent overflow issues */
}

@media (max-width: 1100px) {
    #indexes .indexes-table {
        font-size: 0.7em;
    }
}

@media (max-width: 800px) {
    #indexes .indexes-table th:nth-child(n+2),
    #indexes .indexes-table td:nth-child(n+2) {
        display: none;
    }

    #indexes #view-selector {
        display: none;
    }

    #indexes .indexes-table .details-col .name {
        max-width: 280px;
    }

}

#indexes .results {
    position: relative;
}

#indexes #view-selector {
    position: absolute;
    top: 50px;
    right: 0;
}

#indexes #loader {
    margin: 30px auto;
}

/* =========================================================
   Page specific - index
   ========================================================= */
#index table {
    font-size: 0.9em;
}

#index .header {
    /*margin-bottom: 2em;*/
}

#index .name {
    font-size: 2em;
    font-weight: bold;
    padding: 0.3em;
    background-color: var(--text-color);
    color: var(--bg);
    border-radius: var(--border-radius);
    line-height: 0.9em;
}

#index .index-id {
    font-size: 0.9em;
    background-color: var(--text-light);
    color: var(--bg);
}

#index .description {
    font-size: 0.9em;
    border-radius: var(--border-radius);
}

#index .description p:first-of-type {
    margin-top: 0;
}

#index .description p:last-of-type {
    margin-bottom: 0;
}

#index .tag {
    font-size: 0.9em;
    color: var(--text-color);
    background-color: var(--bg-light);
    padding: 0.4em 0.6em;
    border-radius: var(--border-radius);
    cursor: pointer;
    user-select: none;
    line-height: 1;
    vertical-align: middle;
    text-transform: capitalize;
}

#index table.key-value th:first-child {
    width: 40%;
}

#index .monthly-returns td, #index .monthly-returns th {
    text-align: right;
}

#index .monthly-returns td:last-of-type {
    font-weight: bold;
}

@media (max-width: 600px) {
    #index table.monthly-returns th:not(:first-child):not(:last-child),
    #index table.monthly-returns td:not(:first-child):not(:last-child) {
        display: none;
    }
}

#index .documents-links a {
    text-decoration: none;
    display: inline-block;
}

#index .positions table th:nth-child(5),
#index .positions table td:nth-child(5) {
    text-align: right;
}

@media (max-width: 600px) {
    /* Hide all columns except 1st, 2nd, and 5th */
    #index #positions-table th:not(:nth-child(2)):not(:nth-child(5)),
    #index #positions-table td:not(:nth-child(2)):not(:nth-child(5)) {
        display: none;
    }
}

#index h2 {
    position: sticky;
    top: 20px;
    z-index: 2;
}

#index .intro h2 {
    position: inherit;
}

#index nav {
    background-color: transparent;
}

#index .annotations > div {
    color: var(--text-light);
    font-size: 0.8em;
    line-height: 1.1em;
}

/* =========================================================
   Page specific - home
   ========================================================= */
#home .focus h2 {
    background-color: transparent;
    color: var(--text-color);
    font-weight: 800;
    padding: 0;
    font-size: 1.3em;
    margin: 0;
    display: block;
}

#home .focus h3 {
    background-color: transparent;
    color: var(--text-light);
    padding: 0;
    margin: 0;
    margin-bottom: 0.2em;
    display: block;
}

#home .focus p {
    font-size: 0.95em;
}

#home .focus {
    /*min-height: 500px;*/
}

#home .focus img.icon {
    opacity: 0.4;
    width: 85px;
    margin-bottom: -15px;
    margin-left: -10px;
}

#home .focus .details {
    min-height: 200px;
}

@media (max-width: 600px) {
    #home .focus .details {
        min-height: 0px;
    }
}

/* =========================================================
   Page specific - services
   ========================================================= */
.focus h4 {
    display: block;
    width: fit-content;
    margin-top: -0.5em;
    color: var(--text-light);
    background-color: var(--bg-light);
    border-radius: var(--border-radius-big);
    padding: 0 7px;
    font-size: 0.9em;
    font-style: italic;
    font-weight: normal;
    text-transform: capitalize;
}
