/*

16px = 1rem
18px = 1.125rem
20px = 1.25rem
22px = 1.375rem
24px = 1.5rem
26px = 1.625rem
28px = 1.75rem
30px = 1.875rem
32px = 2rem

sm (small devices)
@media (max-width: 575px) {}
@media (min-width: 576px) {}

md (medium devices)
@media (max-width: 767px) {}
@media (min-width: 768px) {}

lg (large devices)
@media (max-width: 991px) {}
@media (min-width: 992px) {}

xl (extra large devices)
@media (max-width: 1199px) {}
@media (min-width: 1200px) {}

*/

.container {
    max-width: 1600px;
}

body {
    font-family: sofia-pro, sans-serif;
    font-size: 1.5rem;
    font-weight: 300;
    line-height: 1.4;
    word-spacing: 0.15rem;
    color: #333;
    background-color: #fff;
}
@media (max-width: 767px) {
    body {
        font-size: 1.2rem;
    }
}
h1, h2, h3, h4, h5, h6 {
    font-family: sofia-pro, sans-serif;
    font-weight: 700;
    margin-bottom: 0.5rem;
    line-height: 1.2;
    color: #2d546f;
}
h1 {
    font-size: 3rem;
    margin-bottom: 1.2rem;
}
@media (max-width: 767px) {
    h1 {
        font-size: 2rem;
    }
}
h2 {
    font-size: 2.5rem;
    margin-bottom: 1.2rem;
}
@media (max-width: 767px) {
    h2 {
        font-size: 2rem;
    }
}
h3 {font-size: 2rem;}
@media (max-width: 767px) {
    h3 {
        font-size: 1.5rem;
    }
}
h4 {font-size: 1rem;}
h5 {font-size: 1rem;}
h6 {font-size: 1rem;}

p {margin-bottom: 1.5rem;}
main ul {
    margin-bottom: 1.5rem;
    padding-left: 1.5rem;
}
a {
    color: #f7941d;
    text-decoration: none;
}
a:hover {
    color: #f7941d;
    text-decoration: underline;
}

td.noWrap {white-space: nowrap;}

td.maxWidth {width: 100%;}

td.valignMiddle {vertical-align: middle;}

/* buttons */
.btn-primary {
    background-color: #f7941d !important;
    border: #f7941d 1px solid !important;
    color: #fff !important;
    font-size: 1.5rem !important;
}
    .btn-primary:hover {
        background-color: #fff !important;
        color: #f7941d !important;
        text-decoration: none;
    }

/* Bootstrap Extension - Partially Disable Class image-responsive */
main .img-not-fluid {
    display: inline-block;
}

/* Bootstrap Extension - Reset Content Image Sizes */
@media (max-width: 991px) {
    main .img-fluid {
        width: auto !important;
        height: auto !important;
    }
}

/* Input */
.required-field {display:none;}
.inputErr {background-color: #ffe5e5;}
.btn.submit-loader {
    color: transparent!important;
    background: #fff url("/images/submit-loader.gif") center center no-repeat!important;
}

/* Input */
input[type=checkbox] {
    vertical-align: top;
    margin-top: 6px;
    width:16px;
    height:16px;
}
input[type=radio] + label,
input[type=checkbox] + label {
    margin-left: 4px;
    margin-right: 10px;
    margin-bottom:0;
    display: inline-block;
}

.form-control {
    font-size: 1.5rem;
}

.required-field {
    display: none;
}

.inputErr {
    background-color: #d12b7d;
    color:#fff;
}

table.inputErr,
span.inputErr {
    border-radius: 4px;
}

table.inputErr td,
span.inputErr {
    padding: 10px;
}

/* Header */
header {
    height: CALC(50vh);
}
body.home header {
    height: CALC(100vh);
}

/* Nav */
#nav {
    background-color: rgba(45,84,111,0);
    transition: all ease-in 250ms;
}
body.scroll #nav {
    background-color: rgba(45,84,111,0.8);
}
#nav.show {
    background-color: rgba(45,84,111,0.9);
}
@media (max-width: 991px) {
    #nav {
        background-color: rgba(45,84,111,9);
    }
    body.scroll #nav {
        background-color: rgba(45,84,111,0.9);
    }
}

/* typewriter */
#visual .typewriter {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-family: sofia-pro, sans-serif;
    font-size: 4rem;
    color: #fff;
    text-shadow: 1px 1px 2px #000;
 }

@media (max-width: 991px) {
    #visual .typewriter {
        font-size: 3rem;
    }
}
@media (max-width: 767px) {
    #visual .typewriter {
        font-size: 2rem;
    }
}
@media (max-width: 575px) {
    #visual .typewriter {
        font-size: 1.5rem;
    }
}
#visual .typewriter-text {
    display: inline-block;
}

#visual .typewriter-cursor {
    display: inline-block;
}
#visual .typewriter-button{
    margin-top:0;
}
@media (max-width: 991px) {
    #visual .typewriter-button {
        margin-top: 0;
    }
}
@media (max-width: 767px) {
    #visual .typewriter-button {
        margin-top: 15px;
    }
}

#visual .typewriter-button {
    width: 100%;
}
#visual .typewriter-button a {
    opacity: 0;
    text-shadow: none;
}
#visual .typewriter-button a.bounce-in-bottom {
    opacity: 1;
}
@media (max-width: 991px) {
    #visual .typewriter a {
        font-size: 1rem!important;
    }
}
@media (max-width: 767px) {
    #visual .typewriter a {
        font-size: 0.9rem!important;
    }
}

/* Content */
main {
    margin-top:40px;
    margin-bottom:40px;
}

/* Portfolio */
.card {
    margin-bottom:30px;
}
.card h3 {
    margin: -16px -16px 0 -16px;
    padding: 8px 16px 0 16px;
    height: 50px;
    font-size:1.5rem;
    color: #fff;
    background-color: #2d546f;
}

.card .card-body {
    position: absolute;
    transform: translate(0, calc(100% - 50px));
    top: 0;
    height: 100%;
    width: 100%;
    color: #fff;
    background-color: rgba(0,0,0,0.8);
    -webkit-transition: all 300ms ease;
    -moz-transition: all 300ms ease;
    -ms-transition: all 300ms ease;
    -o-transition: all 300ms ease;
    transition: all 300ms ease;
}

.card:hover .card-body {
    transform: translate(0, 0);
    -webkit-transition: all 300ms ease;
    -moz-transition: all 300ms ease;
    -ms-transition: all 300ms ease;
    -o-transition: all 300ms ease;
    transition: all 300ms ease;
}

.card .card-body-wrapper {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 50px;
    overflow: hidden;
}
.card .text{
    padding-top:16px;
    font-size:1.2rem;
}
.card a:hover {
    text-decoration: none;
    color: #fff;
}
.card .card-footer {
    font-size: 1.2rem;
    height:50px;
}
.card a:hover .card-footer {
    background-color: #94c743;
}

/* form feedback*/
.feedback {
    display: none !important;
    position: absolute;
    left: 40px;
    top: -27px;
    border: 1px#ccc solid;
    background-color: #fff;
    padding: 4px 10px 4px 45px;
    font-size:1rem;
    -webkit-filter: drop-shadow(0px 2px 2px rgba(130,130,130,1));
    filter: drop-shadow(0px 2px 2px rgba(130,130,130,1));
    -ms-filter: "progid:DXImageTransform.Microsoft.Dropshadow(OffX=0, OffY=2, Color='#444')";
    filter: "progid:DXImageTransform.Microsoft.Dropshadow(OffX=0, OffY=2, Color='#444')";
}
.feedback::before {
    content: "";
    background-image: url(../images/image-feedback.png);
    background-size: 60px 80px;
    width: 60px;
    height: 80px;
    position: absolute;
    left: -20px;
    top: -35px;
}
.feedback::after {
    background: url(../images/arrow-feedback.png) no-repeat;
    content: "";
    height: 10px;
    width: 20px;
    background-size: 20px 10px;
    position: absolute;
    left: CALC(50% - 10px);
    bottom: -10px;
}
.feedback.show {
    display: block !important;
}

/* Footer */
footer {
    margin-top: 80px;
    padding: 20px 0 20px 0;
    font-size:1.2rem;
    background-color: #2d546f;
    color: #fff;
}
@media (max-width: 767px) {
    footer {
        font-size: 1rem;
    }
}

footer h3 {
    font-size:1.4rem;
    color: #fff;
}
footer a{
    color:#fff;
}
footer a:hover {
    color: #fff;
    text-decoration:underline;
}
footer .people {
    display: flex;
    align-items: flex-end;
    margin-bottom:-20px;
    margin-top:-80px;
}
@media (max-width: 991px) {
    footer .people {
        margin-bottom: 0;
    }
}
/* copyright */
.copyright {
    padding-top: 20px;
    padding-bottom: 20px;
    background-color: #94c743;
    text-align: center;
    color: #fff;
    font-size: 1.2rem;
}
.copyright a {
    color: #fff;
}
.copyright a:hover {
    color: #fff;
    text-decoration: underline;
}

/* Loader */
#loader {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background: url('/images/ajax-loader.gif') center center no-repeat rgba(255,255,255,0.9);
}

/* Cookie Alert */
#cookie-alert {
    position: fixed;
    bottom: 0;
    width: 100%;
    height: auto;
    max-height: 100%;
    border-top: 1px solid #ccc;
    padding: 20px;
    z-index: 99999;
    background-color: #fff;
    text-align: center;
    overflow-y: auto;
}
#cookie-alert table {
    margin-left: auto;
    margin-right: auto;
}
#cookie-alert td {
    text-align: left;
}


/* animista */
.bounce-in-top {
    -webkit-animation: bounce-in-top 1.1s both;
    animation: bounce-in-top 1.1s both;
}
/* ----------------------------------------------
 * Generated by Animista on 2020-6-30 17:13:15
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation bounce-in-top
 * ----------------------------------------
 */
@-webkit-keyframes bounce-in-top {
    0% {
        -webkit-transform: translateY(-500px);
        transform: translateY(-500px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0;
    }

    38% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
        opacity: 1;
    }

    55% {
        -webkit-transform: translateY(-65px);
        transform: translateY(-65px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }

    72% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
    }

    81% {
        -webkit-transform: translateY(-28px);
        transform: translateY(-28px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }

    90% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
    }

    95% {
        -webkit-transform: translateY(-8px);
        transform: translateY(-8px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
    }
}

.slide-in-right {
    -webkit-animation: slide-in-right 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
    animation: slide-in-right 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}
/* ----------------------------------------------
 * Generated by Animista on 2020-6-30 17:14:37
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation slide-in-right
 * ----------------------------------------
 */
@-webkit-keyframes slide-in-right {
    0% {
        -webkit-transform: translateX(1000px);
        transform: translateX(1000px);
        opacity: 0;
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1;
    }
}

.shake-horizontal {
    -webkit-animation: shake-horizontal 0.8s cubic-bezier(0.455, 0.030, 0.515, 0.955) both;
    animation: shake-horizontal 0.8s cubic-bezier(0.455, 0.030, 0.515, 0.955) both;
}
/* ----------------------------------------------
 * Generated by Animista on 2019-10-24 15:18:10
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation shake-horizontal
 * ----------------------------------------
 */
@-webkit-keyframes shake-horizontal {
    0%, 100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }

    10%, 30%, 50%, 70% {
        -webkit-transform: translateX(-10px);
        transform: translateX(-10px);
    }

    20%, 40%, 60% {
        -webkit-transform: translateX(10px);
        transform: translateX(10px);
    }

    80% {
        -webkit-transform: translateX(8px);
        transform: translateX(8px);
    }

    90% {
        -webkit-transform: translateX(-8px);
        transform: translateX(-8px);
    }
}

.slide-in-top {
    -webkit-animation: slide-in-top 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
    animation: slide-in-top 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}
/* ----------------------------------------------
 * Generated by Animista on 2024-11-13 10:30:44
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation slide-in-top
 * ----------------------------------------
 */
@-webkit-keyframes slide-in-top {
    0% {
        -webkit-transform: translateY(-1000px);
        transform: translateY(-1000px);
        opacity: 0;
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes slide-in-top {
    0% {
        -webkit-transform: translateY(-1000px);
        transform: translateY(-1000px);
        opacity: 0;
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1;
    }
}

.bounce-in-bottom {
    -webkit-animation: bounce-in-bottom 1.1s both;
    animation: bounce-in-bottom 1.1s both;
}

/* ----------------------------------------------
 * Generated by Animista on 2024-11-13 13:53:7
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation bounce-in-bottom
 * ----------------------------------------
 */
@-webkit-keyframes bounce-in-bottom {
    0% {
        -webkit-transform: translateY(500px);
        transform: translateY(500px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0;
    }

    38% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
        opacity: 1;
    }

    55% {
        -webkit-transform: translateY(65px);
        transform: translateY(65px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }

    72% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
    }

    81% {
        -webkit-transform: translateY(28px);
        transform: translateY(28px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }

    90% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
    }

    95% {
        -webkit-transform: translateY(8px);
        transform: translateY(8px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
    }
}

.slide-in-left {
    -webkit-animation: slide-in-left 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
    animation: slide-in-left 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}
/* ----------------------------------------------
 * Generated by Animista on 2024-11-15 14:18:35
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation slide-in-left
 * ----------------------------------------
 */
@-webkit-keyframes slide-in-left {
    0% {
        -webkit-transform: translateX(-1000px);
        transform: translateX(-1000px);
        opacity: 0;
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes slide-in-left {
    0% {
        -webkit-transform: translateX(-1000px);
        transform: translateX(-1000px);
        opacity: 0;
    }

    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
        opacity: 1;
    }
}

.slide-in-bottom {
    -webkit-animation: slide-in-bottom 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
    animation: slide-in-bottom 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
}
/* ----------------------------------------------
 * Generated by Animista on 2024-11-26 10:11:1
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation slide-in-bottom
 * ----------------------------------------
 */
@-webkit-keyframes slide-in-bottom {
    0% {
        -webkit-transform: translateY(1000px);
        transform: translateY(1000px);
        opacity: 0;
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes slide-in-bottom {
    0% {
        -webkit-transform: translateY(1000px);
        transform: translateY(1000px);
        opacity: 0;
    }

    100% {
        -webkit-transform: translateY(0);
        transform: translateY(0);
        opacity: 1;
    }
}

