/*
- Add branding styles here, i.e. Background colours, fonts and text colours
 */

.monte {
    font-family: "Montserrat", sans-serif;
}

.work {
    font-family: "Work Sans", sans-serif;
}

a {
    color: #40a161;
}

body,
.normal {
    font-family: Nunito, sans-serif;
    font-size: 20px;
    color: #666;
}

.body-text,
a.body-text {
    color: #666;
}

small,
.small {
    font-size: 16px;
    line-height: 1.1em;
}

.medium-small {
    font-size: 18px;
}

.medium {
    font-size: 20px;
}

.large {
    font-size: 24px;
}

.larger {
    font-size: 40px;
}

h1.page-title {
    font-weight: 900;
    line-height: inherit;
    text-transform: inherit;
}

h2.page-sub-title {
    color: white;
    margin: 1em 0;
    line-height: inherit;
    text-transform: inherit;
    font-weight: normal;
}

.title {
    font-weight: bold;
    font-size: 48px;
    font-family: "Montserrat", sans-serif;
    text-transform: capitalize;
    margin: 0;
    line-height: 72px;
}

.title.looser {
    margin-bottom: 36px;
}

h2,
.sub-title {
    font-weight: bold;
    font-size: 32px;
    font-family: "Work Sans", sans-serif;
    margin-top: 10px;
    margin-bottom: 10px;

    color: #40a161;

    display: block;
    line-height: 1.3;
    text-transform: lowercase;
}

h2,
.sub-title::first-letter {
    text-transform: uppercase;
}

.sub-title.looser {
    margin: 48px auto 10px auto;
}

.sub-title.pull-up {
    margin-bottom: 0 !important;
}

.sub-sub-title {
    font-size: 20px;
    font-weight: bold;
    color: #40a161;
}

.running-text {
    font-size: 20px;
    text-align: justify;
    padding: 0 10%;
    line-height: 1.5;
}

.btn-large {
    font-size: 20px;
    letter-spacing: 0.05em;
}
.btn-round-sm {
    border-radius: 27px;
}

.btn-small {
    letter-spacing: 0.05em;
}

input::placeholder,
textarea::placeholder,
.Select-placeholder /* React Select */
 {
    color: #bbb !important;
}

.Select,
.Select-placeholder,
.Select-input,
.Select-value {
    padding-left: 0 !important;
    font-size: 18px !important;
}

.Select-control {
    border-bottom: 1px solid #bbb !important;
}

.is-focused:not(.is-open) > .Select-control {
    border-bottom: 2px solid #f7931d !important;
    box-shadow: unset !important;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"] {
    height: 2rem !important;
    padding-top: 18px !important;
}

textarea {
    padding-top: 28px !important;
    margin-bottom: 0 !important;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
textarea {
    font-size: 18px !important;
    font-family: Nunito, sans-serif !important;
    border-bottom: 1px solid #bbb !important;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="password"]:focus,
textarea:focus {
    border-bottom: 1px solid #f7931d !important;
    box-shadow: 0 1px 0 0 #f7931d !important;
}

input[type="text"]:not(.browser-default):focus:not([readonly]) + label,
input[type="email"]:not(.browser-default):focus:not([readonly]) + label {
    color: #000000;
}

@media (max-width: 1000px) {
    body,
    .normal {
        font-size: 18px;
    }
    small,
    .small {
        font-size: 14px;
    }

    .medium {
        font-size: 21px;
    }

    .large {
        font-size: 22px;
    }
    .larger {
        font-size: 36px;
        font-weight: bold;
    }
    h1,
    .title {
        font-size: 40px;
    }
    h2,
    .sub-title {
        font-size: 26px;
    }
}

@media (max-width: 600px) {
    body,
    .normal {
        font-size: 16px;
    }

    small,
    .small {
        font-size: 12px;
    }

    .medium-small {
        font-size: 16px;
    }

    .medium {
        font-size: 16px;
    }

    .large {
        font-size: 20px;
    }
    .larger {
        font-size: 26px;
        font-weight: bold;
    }
    h1,
    .title {
        font-size: 32px;
    }
    h2,
    .sub-title {
        font-size: 24px;
    }

    .running-text {
        font-size: 16px; /* medium */
        text-align: left;
        padding: 0;
    }
}

@media (max-width: 376px) and (max-height: 600px) {
    .large {
        font-size: 16px;
    }
    .larger {
        font-size: 24px;
        font-weight: bold;
    }
    .btn-large {
        height: auto;
        line-height: inherit;
        padding-top: 0.1em;
    }
}

.brand-orange-background,
.brand-orange-background:hover,
.brand-orange-background:focus,
.brand-orange-background:active,
.bob,
.bob:active,
.bob:hover,
.bob:focus {
    background-color: #f7931d;
}

.brand-orange-text,
.bot {
    color: #f7931d;
}

.brand-orange-text-hover:hover,
.both:hover {
    color: #f7931d;
}

.brand-turquoise-background,
.brand-turquoise-background:active,
.brand-turquoise-background:focus,
.brand-turquoise-background:hover,
.btb,
.btb:active,
.btb:focus,
.btb:hover {
    background-color: #0b733f;
}

.brand-turquoise-text,
.btt {
    color: #0b733f;
}

.brand-navy-background,
.bnb,
.bnb:hover,
.bnb:focus,
.brand-navy-background:hover,
.brand-navy-background:focus {
    background-color: #40a161;
}

.brand-navy-text,
.bnt {
    color: #40a161;
}

.white-back {
    background-color: #ffffff;
}

.text-white {
    color: #ffffff;
}

.top-banner {
    align-items: center;
    position: relative;
    z-index: 5;
    flex-direction: column;
    justify-content: space-between;
    padding-bottom: 0;
}

/* Make sure all children are above the background which are rendered in before and after pseudo elements */
.top-banner > * {
    z-index: 20 !important;
}

.top-banner:before {
    /* Apply a translucent blur on top of the background image */
    background: linear-gradient(to right, rgba(64, 161, 97, 0.45), rgba(64, 161, 97, 0.16));
    height: 100%;
    width: 100%;
    top: 0;
    z-index: 15;
    position: absolute;
    content: " ";
}

.top-banner:after {
    /* Actual background image */
    background: url("/assets/images/brand/banner-background-large.jpg") top right;
    background-size: cover;
    height: 100%;
    width: 100%;
    top: 0;
    z-index: 10;
    position: absolute;
    content: " ";
}

@media (max-width: 600px) {
    .top-banner {
        flex-direction: column-reverse;
        padding-top: 65px;
    }
    .top-banner:before {
        background: linear-gradient(rgba(64, 161, 97, 0.48), rgba(64, 161, 97, 0.16));
    }
    .top-banner:after {
        background: url("/assets/images/brand/banner-background.jpg") top center;
    }
}

.top-banner-content {
    display: flex;
    text-align: center;
    flex-direction: column;
    align-items: center;
    flex-grow: 1;
    margin-top: 10%;
}

.top-banner-content a {
    margin-top: 40px;
}

@media (max-width: 380px) and (max-height: 668px) {
    section {
        padding-top: 1em;
    }
    .top-banner-content p {
        margin-top: 0.2em;
        margin-bottom: 0.4em;
    }
    .top-banner-content a {
        margin-top: 0.4em;
        margin-bottom: 0.4em;
    }
}

@media (max-height: 860px) {
    .top-banner-content {
        margin-top: 0;
    }
}

.deployment {
    position: relative;
    z-index: 5;
}

.deployment > * {
    z-index: 20 !important;
}

.deployment:before {
    background-color: rgba(244, 244, 244, 0.94);
    height: 100%;
    width: 100%;
    top: 0;
    z-index: 15;
    position: absolute;
    content: " ";
}

.deployment:after {
    background: url("../images/brand/deployment-background.jpg") top center repeat-y;
    background-size: 1920px auto;
    height: 100%;
    width: 100%;
    top: 0;
    z-index: 10;
    position: absolute;
    content: " ";
}

.shared {
    fill: #40a161;
    stroke: rgba(221, 221, 221, 0.66) !important;
}

.dedicated {
    fill: #0b733f;
}

.non-free {
    fill: rgba(221, 221, 221, 0.66);
}

.country {
    cursor: pointer;
    stroke: rgba(64, 161, 97, 0.66);
}

.country:hover {
    stroke: #f7931d !important;
}

.input-field label focus:not([readonly]) {
    color: #40a161;
}
