﻿@charset "UTF-8";
/* #0094ff;*/
.light-background {
    background-color: #ffffff;
    color: #222222;
}

.medium-background {
    background-color: #f1f5f9;
    color: #222222;
}

.medium-background {
    color: #222222;
}

.dark-background {
    background-color: #03111b;
    color: #ffffff;
}

.cta-background {
    background-color: #17468a;
    color: #ffffff;
}

.sg-button {
    padding: 1rem 2rem;
    cursor: pointer;
    border-radius: 5px;
    background-color: #17468a;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    position: relative;
    font-size: 0.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .sg-button[disabled] {
        cursor: initial;
        opacity: 0.8;
        filter: grayscale(0.7);
    }

.sg-icon-button {
    background-color: transparent;
}

.sg-learn-more-button svg {
    opacity: 1;
    width: 0px;
    position: absolute;
    left: calc(100% - 2rem);
    transition: width 0.5s ease, opacity 0.5s ease;
}

.sg-learn-more-button:hover svg {
    opacity: 1;
    width: 24px;
}

@keyframes draw {
    to {
        stroke-dashoffset: 0;
    }
}

.sg-button:hover {
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}

.sg-button:active {
    box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.3);
    transform: scale(0.98);
}

.sg-button[disabled]:hover, .sg-button[disabled]:active, .sg-learn-more-button[disabled] {
    box-shadow: none;
    transform: none;
    transition: none;
}

    .sg-learn-more-button[disabled]:hover svg {
        opacity: 0;
        width: 0px;
    }

/*.cta-background {
   > .sg-button {
        background-color: $light-background;
        color: $accent-color;
    }
}
*/
.sg-button-light {
    background-color: #ffffff;
    color: #17468a;
}

.sg-button-dark {
    background-color: #03111b;
    color: #ffffff;
}

.sg-button-cta {
    background-color: #0e7c7b;
    color: #ffffff;
}

.sg-hero {
    background-color: #03111b;
    min-height: 200px;
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    justify-content: center;
    padding: 7rem 2rem;
}

.sg-hero-title {
    color: #ffffff;
    font-size: 3em;
    margin-bottom: 10px;
    text-align: center;
    font-weight: normal;
}

.sg-hero-subtitle {
    color: #ffffff;
    text-align: center;
}

.sg-card-list {
    display: flex;
    flex-flow: row wrap;
    align-items: stretch;
    justify-content: center;
    gap: 1rem;
    padding: 1rem 6rem 1rem 6rem;
    width: 100%;
    flex: 1 1 auto;
    /*perspective: 1000px;*/
}

@media (max-width: 1200px) {
    .sg-card-list {
        flex-flow: column nowrap;
        align-items: stretch;
        gap: 0px;
        padding: 0px;
    }
}

.sg-card {
    flex: 1 1 200px;
    min-height: max-content;
    min-width: 250px;
    max-width: 450px;
    border-radius: 1rem;
    /*border: 1px solid $light-background;*/
    background-color: #ffffff;
    color: #222222;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-flow: column nowrap;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    transform-style: preserve-3d;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    /* default shadow */
    cursor: pointer;
}

.sg-card-no-hover {
    cursor: initial;
}

.sg-card:not(.sg-card-no-hover):hover {
    transform: translateY(5px) scale(1.02);
    box-shadow: 0 20px 30px rgba(0, 0, 0, 0.2);
    /* deeper shadow on hover */
    /* moves the card toward the viewer */
}

    .sg-card:not(.sg-card-no-hover):hover .sg-card-content img {
        /*filter: blur(0);*/
    }

@media (max-width: 1200px) {
    .sg-card {
        flex: 1 1 auto;
        border: none;
        border-radius: 0px;
        border-bottom: 1px solid white;
        margin-bottom: 10px;
        max-width: none;
        /*border-bottom: 1px solid gray;*/
        /*box-shadow: none;*/
    }

        .sg-card:hover {
            transform: none;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
            /*box-shadow: none;*/
        }
}

@media (min-width: 1600px) {
    .sg-card {
        min-width: 400px;
        min-height: 400px;
    }
}

.sg-card-header {
    padding: 10px;
    min-height: 20px;
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    align-items: center;
    padding: 10px;
    gap: 1rem;
}

.sg-card-title {
    font-size: 1.25em;
    font-family: "Open Sans";
    color: #222222;
    font-weight: 300;
}

.sg-card-subtitle {
    color: #222222;
    font-weight: 300;
    font-size: 0.8em;
}

.sg-card-content {
    padding: 1rem;
    flex: 1 1 auto;
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

    .sg-card-content img {
        /*filter: blur(5px);
  transition: filter 0.3s ease;*/
        width: 200px;
        aspect-ratio: 1/1;
        object-fit: cover;
    }

.sg-accent-card {
    background-color: #17468a;
    color: #ffffff;
}

    .sg-accent-card .sg-card-title, .sg-accent-card .sg-card-subtitle, .sg-accent-card .sg-card-content {
        color: #ffffff;
    }

.sg-card-content p {
    align-self: flex-start;
}

@media (max-width: 1200px) {
    .sg-card-content img {
        width: 350px;
    }

    .sg-card-content p {
        align-self: initial;
    }
}

@media (min-width: 1600px) {
    .sg-card-content img {
        width: 400px;
    }
}

.sg-card-actions {
    padding: 10px;
    /*flex: 1 1 auto;*/
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

/* #0094ff;*/
.light-background {
    background-color: #ffffff;
    color: #222222;
}

.medium-background {
    background-color: #f1f5f9;
    color: #222222;
}

.medium-background {
    color: #222222;
}

.cta-background {
    background-color: #17468a;
    color: #ffffff;
}

.sg-section {
    min-height: 200px;
    /*background-color: $accent-color;
  color: $accent-color-text;*/
    padding: 2rem 10px 2rem 10px;
    display: flex;
    flex-flow: column nowrap;
    gap: 10px;
    align-items: center;
    justify-content: center;
}

@media (max-width: 1200px) {
    .sg-section {
        align-items: stretch;
        justify-content: stretch;
    }

        .sg-section > .sg-button {
            align-self: center;
        }
}

.sg-section-title {
    text-align: center;
    font-size: clamp(1.2rem, 4vw + 1rem, 2rem);
    font-family: "Poppins";
    padding: 1rem;
    font-weight: normal;
    /*color: $accent-color-text;*/
}

.sg-section-title-emphasized {
    background-color: #17468a;
    color: #ffffff;
    border-radius: 10px;
}

.sg-section-subtitle {
    text-align: center;
    font-family: "Open Sans";
    /*color: $accent-color-text;*/
    margin-bottom: 10px;
}

/*.sg-section > p:not(.sg-section-subtitle) {
    align-self: flex-start;
}*/
form {
    flex: 1 1 auto;
    display: flex;
    flex-flow: column nowrap;
    align-items: stretch;
    gap: 1rem;
    flex: 1 1 auto;
    padding: 2rem;
    min-width: 600px;
    min-height: 250px;
    border-radius: 1rem;
    background-color: #ffffff;
    color: #222222;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

    form button {
        width: max-content;
        align-self: flex-end;
    }

@media (max-width: 1200px) {
    form {
        flex: 1 1 auto;
        min-width: max-content;
        width: 100%;
        box-shadow: none;
        border-radius: 0px;
    }

        form button {
            width: max-content;
            align-self: flex-end;
        }
}

@media (max-width: 920px) {
    form {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

        form button {
            width: 100%;
            width: max-content;
            align-self: stretch;
        }
}

.sg-form-title {
    font-family: "Open Sans";
    font-weight: 600;
}

.sg-form-field {
    display: flex;
    flex-flow: column nowrap;
    align-items: stretch;
    justify-content: space-between;
}

    .sg-form-field label {
        margin-bottom: 1rem;
    }

    .sg-form-field .sg-error-msg {
        margin-top: 5px;
    }

input, textarea, select {
    border: 1px solid rgba(0, 0, 0, 0.3);
    border-radius: 5px;
    flex: 1 1 auto;
    padding: 0.3rem 1rem 0.3rem 1rem;
    height: 2rem;
    min-height: 2rem;
}

textarea {
    resize: vertical;
}

    input:focus, textarea:focus, select:focus {
        border-color: rgba(0, 0, 255, 0.3);
    }

input.error {
    outline: 1px solid red;
}

.sg-error-msg {
    font-size: 0.8rem;
    opacity: 0.75;
    color: red;
}

label, label > * {
    font-family: "Open Sans";
    font-weight: normal;
}

.sg-footer {
    min-height: 300px;
    background-color: #03111b;
    color: #ffffff;
    padding: 7rem 2rem 2rem 2rem;
    /*padding: 2rem 10px 2rem 10px;*/
    /*display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: center;*/
    display: grid;
    grid-template-areas: "fh fh fh" "s1 s2 s3" "c c c";
    align-items: center;
    justify-content: center;
    gap: 5rem;
}

.sg-footer-header {
    grid-area: fh;
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    padding: 1rem;
    gap: 1rem;
}

.sg-footer-logo {
    width: 100px;
    height: max-content;
}

.sg-footer ul, .sg-footer li {
    list-style: none;
}

.sg-footer li {
    margin: 5px;
}

.sg-footer a {
    color: #ffffff;
    text-decoration: none;
}

@media (max-width: 920px) {
    .sg-footer {
        display: flex;
        flex-flow: column nowrap;
        gap: 10px;
        align-items: stretch;
        justify-content: center;
    }

    .sg-footer-card {
        text-align: center;
    }
}

.sg-footer-card {
    height: 100%;
    display: flex;
    justify-content: center;
    padding-bottom: 1rem;
}

@media (max-width: 920px) {
    .sg-footer-card {
        /*border-bottom: 1px solid $primary-color-text;*/
    }
}

.sg-footer-copyright {
    grid-area: c;
    text-align: center;
    opacity: 0.8;
    font-size: 0.8rem;
    font-weight: 200;
}

.sg-image-panel {
    min-height: 200px;
    display: flex;
    flex-flow: row nowrap;
    align-items: stretch;
    border-left: 10px solid rgb(23, 70, 138);
    border-right: 10px solid rgb(23, 70, 138);
    border-radius: 10px;
    margin: 0px 3rem 0px 3rem;
    flex: 1 1 auto;
    width: calc(100% - 6rem);
}

.sg-image-panel-img {
    width: 500px;
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
}

@media (max-width: 1200px) {
    .sg-image-panel-img {
        /*max-width: 500px;*/
    }

    .sg-image-panel {
        flex-flow: column nowrap;
        align-items: center;
    }
}

.sg-image-panel-img img {
    width: 400px;
    height: auto;
    border-radius: 10px;
    margin: 1rem;
}

@media (max-width: 920px) {
    .sg-image-panel {
        border: 0;
    }

    .sg-image-panel-img {
        width: 100%;
    }

        .sg-image-panel-img img {
            width: 100%;
            margin: 0;
        }
}

.sg-image-panel-text {
    flex: 1 1 auto;
    padding: 2rem;
}

    .sg-image-panel-text ul {
        list-style: none;
        gap: 1rem;
        display: flex;
        flex-flow: column nowrap;
        flex: 1 1 auto;
    }

.verbose-div {
    width: 100%;
}

    .verbose-div > p {
        margin-bottom: 0.3rem;
    }

    .verbose-div > ol, ul {
        list-style-position: inside;
    }

    .verbose-div > .lead {
        margin-bottom: 1rem;
    }

a:not(.sg-button, .a-no-effect) {
    position: relative;
}

a {
    text-decoration: none; /* remove default underline */
    color: #333;
}

    a:not(.sg-button, .a-no-effect)::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        height: 2px; /* underline thickness */
        width: 0;
        background-color: currentColor; /* same color as the text */
        transition: width 0.3s ease; /* smooth animation */
    }

    a:not(.sg-button, .a-no-effect):hover::after {
        width: 100%;
    }

* {
    box-sizing: border-box;
    padding: 0px;
    margin: 0px;
    border: none;
    outline: none;
    border-radius: 0px;
    font-family: "Inter";
}

html, body {
    min-height: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: 100px;
}

.center-align {
    flex: 1 1 auto;
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: center;
}

@media (max-width: 920px) {
    html, body {
        scroll-padding-top: 150px;
    }
}

@media (max-width: 1200px) {
    .center-align {
        flex-flow: column nowrap;
    }
}

.title, h1, title, .title > *, h1 > *, .title > * {
    font-family: "Poppins";
    font-size: clamp(2rem, 3vw + 1rem, 6rem);
    font-weight: normal;
}

h2, h3, h4, h5, h6, h7 .lead, h2 > *, h3 > *, h4 > *, h5 > *, h6 > *, h7 > *, .lead > * {
    font-family: "Open Sans";
    font-weight: normal;
}

/***/
header {
    position: sticky;
    background-color: #03111b;
    top: 0px;
    z-index: 10000;
}

nav {
    display: flex;
    flex-flow: row nowrap;
    justify-content: stretch;
    align-items: center;
}

.menu ul, .menu li {
    list-style: none;
    flex: 1 1 auto;
    font-weight: 600;
}

.menu > ul > li {
    width: 100%;
    padding-right: 1rem;
    margin: 0;
    position: relative; /* So absolute children can anchor to it */
}

.menu {
    /*flex: 1 1 auto;*/
}

    .menu a, nav span.menu-item {
        text-decoration: none;
        color: white;
        display: block;
        padding: 0.5rem;
    }

/* Flex container for root menu */
.menu-root {
    /*width: 100%;
  flex: 1 1 auto;
  flex-flow: row nowrap;
  justify-content: stretch;*/
    display: flex;
    gap: 1rem;
    position: relative; /* For absolute child positioning */
    z-index: 10000;
}

/* Style for individual dropdown items */
.dropdown {
    min-width: max-content;
    position: relative; /* Needed to anchor the dropdown menu */
}

/* Dropdown menu - initially hidden */
.dropdown-menu {
    position: absolute;
    /*top: 100%;*/ /* Position it below the parent */
    left: 0;
    display: block; /* Block-level, so we can control visibility */
    opacity: 0;
    visibility: hidden;
    pointer-events: none; /* Prevent interaction when hidden */
    transition: opacity 0.3s ease-in, transform 0.3s ease-in;
    background-color: white;
    padding: 1rem;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    width: max-content;
    z-index: 9999;
}

    /* On hover, show the dropdown menu */
    .dropdown.active-menu-item > .dropdown-menu,
    .dropdown-menu.active-menu-item {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(10px); /* Slight slide effect */
    }

    /* Nested dropdown - fly out to the right */
    .dropdown-menu .dropdown {
        position: relative;
    }

        .dropdown-menu .dropdown.active-menu-item > .dropdown-menu {
            left: calc(-100% - 2rem); /* This makes the submenu fly out to the right */
            top: 0;
            transform: translateY(0); /* Keep the vertical position */
        }

.dropdown .menu-item {
    cursor: pointer;
}

/* Change color when hovering over links */
.dropdown-menu a, .dropdown-menu .menu-item {
    color: #333;
    padding: 0.5rem 1rem;
    cursor: pointer;
}

    .dropdown-menu a:hover, .dropdown-menu .menu-item:hover {
        background-color: #f0f0f0;
    }

.dropdown > a:first-of-type:after, .dropdown > .menu-item:first-of-type:after {
    content: "▼";
    /*margin-right: 0.5rem;*/
    padding-left: 0.1rem;
    font-size: 0.65em;
    vertical-align: middle;
    display: inline-block;
}

button[data-menu] {
    display: none;
}

/*@media(max-width: 920px) {
    nav {
        display: flex;
        flex-flow: row wrap;
        align-items: stretch;
        justify-content: center;
        width: 100%;
    }*/
/*header {
        flex-flow: column nowrap;
    }*/
/*}*/
@media (max-width: 920px) {
    button[data-menu] {
        display: inline-block;
    }

    nav {
        display: flex;
        flex-flow: row wrap;
        align-items: stretch;
        justify-content: center;
        width: 100%;
    }

    .menu {
        width: 100%;
    }

    .menu-root {
        display: none;
        flex-flow: column;
        position: static;
        gap: 0px;
        flex: 1 1 auto;
        width: 100%;
        justify-content: stretch;
        padding: 1rem;
    }

    .menu-visible {
        display: flex;
    }

    .dropdown, .dropdown-menu, .dropdown-menu .dropdown {
        position: static;
        width: 100%;
        flex: 1 1 auto;
    }

    .menu > ul > li {
        padding: 0px 0px 10px 1rem;
        /*padding-bottom: 1rem;*/
        margin: 0;
        flex: 1 1 auto;
        width: 100%;
    }

    .menu a, nav span.menu-item {
        padding: 0px 0px 10px 0px;
        width: 100%;
        flex: 1 1 auto;
        /*padding: 0rem;*/
    }

    .dropdown-menu a, .dropdown-menu .menu-item {
        padding: 0px 0px 10px 1rem;
        /*padding: 0.5rem 1rem;*/
    }

    .dropdown-menu {
        padding: 0px 0px 0px 1rem;
        display: block;
        overflow: hidden;
        height: 0px;
        background-color: transparent;
        color: white;
        border: none;
        box-shadow: none;
    }

        .dropdown-menu a:hover, .dropdown-menu .menu-item:hover {
            background-color: transparent;
        }

        .dropdown-menu a, .dropdown-menu .menu-item {
            color: white;
            cursor: pointer;
        }

        .dropdown.active-menu-item > .dropdown-menu,
        .dropdown-menu.active-menu-item {
            opacity: 1;
            display: block;
            height: max-content;
            visibility: visible;
            pointer-events: auto;
        }

    .dropdown > a:first-of-type:after, .dropdown > .menu-item:first-of-type:after {
        padding-left: 1rem;
    }
}
/*
@media (max-width: $ultra-small-screen) {
    nav {
        display: flex;
        flex-flow: row wrap;
        align-items: stretch;
        justify-content: center;
        width: 100%;
    }
}*/
.menu li {
    min-width: max-content;
}

/****/
header {
    display: flex;
    align-items: center;
    flex-flow: row nowrap;
    width: 100%;
    justify-content: center;
    align-items: stretch;
    padding: 10px 2rem;
}

@media (max-width: 920px) {
    header {
        flex-flow: column nowrap;
    }
}

.hidden {
    display: none !important;
}
