:root {
    --min-font-size-navbar: 12px;
    --max-font-size-navbar: 20px;
}

@font-face {
    font-family: "font-body";
    src: url("./assets/fonts/OpenSans/OpenSans-Regular.ttf");
    /* font-weight: normal; */
}
@font-face {
    font-family: "font-body-bold";
    src: url("./assets/fonts/OpenSans/OpenSans-Bold.ttf");
    /* font-weight: bold; */
}
@font-face {
    font-family: "font-body-italic";
    src: url("./assets/fonts/OpenSans/OpenSans-Italic.ttf");
    /* font-weight: bold; */
}
@font-face {
    font-family: "font-title";
    src: url("./assets/fonts/swansea-font/SwanseaBold-D0ox.ttf");
    /* font-weight: normal; */
}
@font-face {
    font-family: "font-navbar";
    src: url("./assets/fonts/swansea-font/Swansea-q3pd.ttf");
    /* font-weight: normal; */
}

@keyframes fadeInOpacity {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

body {
    padding: 0;
    margin: 0;
    left: 0;
}

.page {
    width: 100%;
    margin: auto;
}

.backdrop {
    position: absolute;
    width: 100%;
    height: 100%;
    margin: auto;
}

/* .content {
    font-family: "font-body";
    width: 100%;
    height: 100%;
    margin: auto;
    text-align: center;
    background-color: #e0e0e0;

    padding: 10px 0;
}

.content-header {
    font-family: "font-body-bold";
} */

.spacer-small {
    height: 5%;
}
.spacer-large {
    height: 15%;
}

.list-container {
    margin: auto;
    /* width: 50%; */
    text-align: left;
    list-style-position: outside;
    display: inline-block;
}












.nav-title-image-container {
    float: left;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.nav-title-image {
    height: calc(30px + 1vw);
    padding-left: calc(2px + 1vw);
}
.nav-button {
    cursor: default;
    -webkit-transition: background-color 300ms ease;
    -moz-transition:    background-color 300ms ease;
    -ms-transition:     background-color 300ms ease;
    -o-transition:      background-color 300ms ease;
    transition:         background-color 300ms ease;

    top: 0px;
    float: right;
    font-family: "font-navbar";
    letter-spacing: 1px;

    font-size: calc(12px + 0.5vw);
    padding: calc(15px + 0.5vw) calc(10px + 0.6vw);
    color: rgb(45, 45, 45);
    background-color: white;
}
.nav-button:hover {
    cursor: pointer;
    background-color: #e2e2e2;
}
.nav-button-button-mobl {
    padding: calc(10px + 0.5vw) calc(10px + 0.6vw);
}
.nav-bottom-spacer {
    height: 0px;
    border-top: 1px solid rgb(86, 86, 86);
    padding: 0px 0px;

    margin-block-start: 0px;
    margin-block-end: 0px;

    /* margin-bottom: calc(5px + 0.5vw); */
}
.nav-sandwich-icon-bar {
    width: 35px;
    height: 3px;
    background-color: black;
    margin: 4.5px 0px;
    border-radius: 5px;
}
.nav-mobl-button {
    cursor: default;
    -webkit-transition: background-color 300ms ease;
    -moz-transition:    background-color 300ms ease;
    -ms-transition:     background-color 300ms ease;
    -o-transition:      background-color 300ms ease;
    transition:         background-color 300ms ease;

    text-decoration: none;
    font-family: "font-navbar";
    letter-spacing: 1px;

    font-size: calc(14px + 0.3vw);
    padding: calc(7px + 0.5vw) calc(10px + 1vw);
    color: rgb(45, 45, 45);
    background-color: white;
}
.nav-mobl-button:hover {
    cursor: pointer;
    background-color: #e2e2e2;
}
.nav-mobl-button-spacer {
    height: 0px;
    border-top: 1px solid rgb(177, 177, 177);
    padding: 0px 0px;
    margin-block-start: 0px;
    margin-block-end: 0px;
}











.product-list-container {
    margin: auto;
    width: 100%;
    text-align: center;
}
.product-list-title {
    margin: auto;
    padding: 0px 5px;
    font-family: "font-body-bold";
    /* font-size: 40px; */
    /* font-size: calc(2vw + 20px); */
    font-size: calc(2vw + 20px);
    margin-bottom: 10px;
    color: rgb(22, 54, 104);
    text-decoration-line: underline;
}
.product-list-item {
    margin: auto;
    padding: 5px 5px;
    font-family: "font-body-bold";
    /* font-size: 20px; */
    font-size: calc(1vw + 10px);
    color: rgb(22, 54, 104);
}

/* .content {
    font-family: "font-body";
    width: 100%;
    height: 100%;
    margin: auto;
    padding: 10px 0;
} */







.c-banner-image {
    background-repeat: no-repeat;
    background-attachment: fixed;  
    background-size: cover;
    background-position: center;
    background-attachment: scroll;

    width: 100%;
    margin: auto;

    position: relative;
}
.c-banner-image-small {
    height: 200px;
}
.c-banner-image-large {
    height: 400px;
}

.c-banner-inner {
    margin: auto;
    text-align: center;
}

.c-banner-text {
    text-align: center;
    margin: auto;
    position: absolute;
    padding: 20px calc(5% + 5px);
    
    font-family: "font-body";
    color: white;
    background-color: rgb(0, 0, 0, 0.5);

    top: 50%;
    transform:     translateY(-50%);
    -ms-transform: translateY(-50%);
}
.c-banner-text-small {
    font-size: 20px;
}
.c-banner-text-large {
    font-size: 40px;
}











.paragraph-container-desk {
    overflow: hidden;
}
.paragraph-image-desk {
    float: left;
    /* width: calc(49%); */
    border-style: solid;
    border-width: 1px;
    border-color: rgb(213, 213, 213);
    padding-bottom: 1000px;
    margin-bottom: -1000px;
}
.paragraph-text-container-desk {
    float: right;
    /* width: calc(49%); */
    font-size: calc(0.5vw + 15px);
    padding-bottom: 1000px;
    margin-bottom: -1000px;
}
.paragraph-container-mobl {}
.paragraph-image-mobl {
    width: 100%;
    margin-bottom: 5px;
    border-style: solid;
    border-width: 1px;
    border-color: rgb(213, 213, 213);
}
.paragraph-text-container-mobl {
    width: 100%;
    font-size: calc(0.5vw + 15px);
}
.paragraph-text-container-noimage {
    /* background-color: rgb(245, 247, 249); */
    padding: 20px max(5%, 20px);
    font-size: calc(0.3vw + 15px);
}
.paragraph-text {
    font-family: "font-body";
    color: rgb(60, 60, 60);
    text-align: justify;
    text-justify: inter-word;
    /* hyphens: auto; */

    line-height: 150%;
}


.c-table-row {
    /* margin-top: 25px; */
    position: relative;
    width: 100%;
}
.c-table-row-cell-container {
    clear: none;
    float: left;
}
.c-table-row-cell {
    margin: auto;
}

.hyperlink {
    all: unset;
    color: rgb(34, 50, 109);

    text-decoration: underline;

    transition: color 0.2s ease-in;
}
.hyperlink:hover {
    color: rgb(136, 151, 206);
    cursor: pointer;
}

.spacer-line-small {
    height: 5%;
    border-width: 0.8px;
    border-style: solid;
    border-color: rgb(200, 200, 200);
}

.spacer-line-medium {
    height: 5%;
    border-width: 1px;
    border-style: solid;
    border-color: rgb(200, 200, 200);
}



.banner-desk-container---who-we-are {
    height: calc(100px + 30vw);
}
.banner-desk-text-title---who-we-are {
    padding: 0 calc((100px + 30vw) * 0.03);
    margin-top: calc((100px + 30vw) * 0.15);
    font-size: calc((100px + 30vw) * 0.1);
}
.banner-desk-text---who-we-are {
    padding: 0 calc((100px + 30vw) * 0.03);
    margin-top: calc((100px + 30vw) * 0.05);
    font-size: calc((100px + 30vw) * 0.042);

    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
}
.banner-mobl-text-title---who-we-are {
    margin-top: calc(10px + 0.5vw);
    font-size: calc(20px + 2vw);
}
.banner-mobl-text---who-we-are {
    padding: 0 calc(5px + 1vw);
    margin-top: calc(5px + 0.1vw);
    margin-bottom: calc(10px + 0.5vw);
    font-size: calc(12px + 1vw);

    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
}



.banner-desk-container---our-capabilities {
    height: calc(120px + 35vw);
}
.banner-desk-text-title---our-capabilities {
    padding: 0 calc((100px + 30vw) * 0.03);
    margin-top: calc((100px + 30vw) * 0.12);
    font-size: calc((100px + 30vw) * 0.09);
}
.banner-desk-text---our-capabilities {
    padding: 0 calc((100px + 30vw) * 0.03);
    margin-top: calc((100px + 30vw) * 0.04);
    font-size: calc((100px + 30vw) * 0.038);
}
.banner-mobl-text-title---our-capabilities {
    margin-top: calc(10px + 0.5vw);
    font-size: calc(20px + 2vw);
}
.banner-mobl-text---our-capabilities {
    padding: 0 calc(5px + 1vw);
    margin-top: calc(5px + 0.5vw);
    margin-bottom: calc(15px + 2vw);
    font-size: calc(12px + 1vw);
}



.banner-desk-container---qc-lab {
    height: calc(100px + 35vw);
}
.banner-desk-text-title---qc-lab {
    padding: 0 calc((100px + 30vw) * 0.03);
    margin-top: calc((100px + 30vw) * 0.15);
    font-size: calc((100px + 30vw) * 0.1);
}
.banner-desk-text---qc-lab {
    padding: 0 calc((100px + 30vw) * 0.03);
    margin-top: calc((100px + 30vw) * 0.05);
    font-size: calc((100px + 30vw) * 0.042);

    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
}
.banner-desk-text-small---qc-lab {
    padding: 0 calc((100px + 30vw) * 0.045);
    font-size: calc((100px + 30vw) * 0.038);
    text-align: left;
}
.banner-mobl-text-title---qc-lab {
    margin-top: calc(10px + 0.5vw);
    font-size: calc(20px + 2vw);
}
.banner-mobl-text---qc-lab {
    padding: 0 calc(5px + 1vw);
    margin-top: calc(5px + 0.1vw);
    margin-bottom: calc(10px + 0.5vw);
    font-size: calc(12px + 1vw);

    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
}
.banner-mobl-text-small---qc-lab {
    padding: 0 calc(5px + 1.5vw);
    font-size: calc(10px + 1vw);
    text-align: left;
}



.banner-desk-container---careers {
    height: calc(120px + 35vw);
}
.banner-desk-text-title---careers {
    padding: 0 calc((100px + 30vw) * 0.03);
    margin-top: calc((100px + 30vw) * 0.18);
    font-size: calc((100px + 30vw) * 0.09);
}
.banner-desk-text---careers {
    padding: 0 calc((100px + 30vw) * 0.03);
    margin-top: calc((100px + 30vw) * 0.04);
    font-size: calc((100px + 30vw) * 0.038);
}
.banner-mobl-text-title---careers {
    margin-top: calc(10px + 0.5vw);
    font-size: calc(20px + 2vw);
}
.banner-mobl-text---careers {
    padding: 0 calc(5px + 1vw);
    margin-top: calc(5px + 0.5vw);
    margin-bottom: calc(15px + 2vw);
    font-size: calc(12px + 1vw);
}



.banner-desk-container---contact-us {
    height: calc(120px + 35vw);
}
.banner-desk-text-title---contact-us {
    padding: 0 calc((100px + 30vw) * 0.03);
    margin-top: calc((100px + 30vw) * 0.45);
    font-size: calc((100px + 30vw) * 0.09);
}
.banner-desk-text---contact-us {
    padding: 0 calc((100px + 30vw) * 0.03);
    margin-top: calc((100px + 30vw) * 0.04);
    font-size: calc((100px + 30vw) * 0.038);
}
.banner-mobl-text-title---contact-us {
    margin-top: calc(10px + 0.5vw);
    font-size: calc(20px + 2vw);
}
.banner-mobl-text---contact-us {
    padding: 0 calc(5px + 1vw);
    margin-top: calc(5px + 0.5vw);
    margin-bottom: calc(15px + 2vw);
    font-size: calc(12px + 1vw);
}



.banner-image {}
.banner-text {
    background-color: rgb(192, 209, 245);
    color: rgb(32, 65, 135);
    font-family: 'font-title';
}
.banner-desk-container {
    padding: 0 0;
}
.banner-desk-image-container {
    float: left;
    width: 60%;
    height: 100%;
}
.banner-desk-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.banner-desk-text-container {
    float: right;
    width: 40%;
    height: 100%;
}
.banner-desk-text-title {
    text-decoration-line: underline;
}
.banner-desk-text {
    font-family: "font-body";
}
.banner-mobl-container {
    /* padding-bottom: calc(5px + 1vw); */
}
.banner-mobl-image-container {
    width: 100%;
    height: calc(150px + 20vw);
}
.banner-mobl-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.banner-mobl-text-container {
    width: 100%;
    padding: calc(5px + 1vw) 0;
}
.banner-mobl-text-title {
    text-align: center;
    text-decoration-line: underline;
}
.banner-mobl-text {
    font-family: "font-body";
}





.content {
    font-family: "font-body";
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
    color: rgb(43, 43, 43);
}
.content-desk {
    padding: 0 calc(20px + 5vw);
    font-size: calc(12px + 0.3vw);
    line-height: 150%;
}
.content-mobl {
    padding: 0 calc(5px + 2vw);
    font-size: calc(12px + 0.3vw);
    line-height: 150%;
}
.content-spacer {
    padding-top: calc(5px + 1vw);
}





.footer-container {
    width: 100%;
    padding: calc(20px + 2vw) 0;

    /* background-color: rgb(8, 30, 120); */
    /* background-color: rgb(35, 83, 19); */
    background-color: rgb(173, 228, 155);
    font-family: "font-body";
    font-size: calc(10px + 0.1vw);
    text-align: center;
}
.footer-text {
    margin: calc(10px + 0.1vw) 0;
    padding: 0 5px;
    color: rgb(29, 69, 16);
}
