﻿
/* Box sizing rules */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* Prevent font size inflation */
html {
    -moz-text-size-adjust: none;
    -webkit-text-size-adjust: none;
    text-size-adjust: none;
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
    margin-block-end: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role='list'],
ol[role='list'] {
    list-style: none;
}

/* Set core body defaults */
body {
    min-height: 100vh;
    line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4,
button, input, label {
    line-height: 1.1;
}

/* Balance text wrapping on headings */
h1, h2,
h3, h4 {
    text-wrap: balance;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
    text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
    max-width: 100%;
    display: block;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
    font-family: inherit;
    font-size: inherit;
}

    /* Make sure textareas without a rows attribute are not tiny */
    textarea:not([rows]) {
        min-height: 10em;
    }

/* Anything that has been anchored to should have extra scroll margin */
:target {
    scroll-margin-block: 5ex;
}

.hidden {
    display: none !important;
}

/*

Breakpoints: 1408px, 1054px, 834px
1252
513
*/

:root {
    --colour-brand-red: #d32228;
    --colour-light-grey: #dddddd;
    --colour-white: #fdfdfd;
    --colour-peach: #ffd5ab;
    --colour-light-peach: #ffebd3;
    --colour-orange: #f66c32; /*#ff7d44;*/
    --colour-orange-grad: #ff976a;
    --colour-orange-border: #c05b30;
    --colour-dark-red: #5c0e0e;
    --colour-black: #101010;
    --colour-yellow: #f7d70f;
    --colour-dark-brown: #2c1911;
    --colour-blue: #167acd;
    --colour-pale-lavender: #f4f0ff;
    --colour-light-coral: #ffe1d6;
    font-size: 1rem;
    font-family: 'Roboto', sans-serif;
}

@media (max-width: 480px) {
    :root {
        font-size: 0.85rem;
    }
}

body {
    margin: 0px;
    font-family: 'Roboto', sans-serif;
}

a {
    color: var(--colour-brand-red);
}

h1 {
    font-family: Heebo, sans-serif;
    font-size: 5em;
    line-height: 1.2;
    font-weight: 900;
    margin-top: 1.5em;
}

h2 {
    font-family: Heebo, sans-serif;
    font-size: 4.375em;
    line-height: 1.2;
    font-weight: 900;
    margin-top: 1.5em;
}

h3 {
    font-family: Heebo, sans-serif;
    font-size: 3.125em;
    line-height: 1.2;
    font-weight: 900;
    margin-top: 1.5em;
}

h4 {
    font-family: Heebo, sans-serif;
    font-size: 2.3em;
    line-height: 1.2;
    font-weight: 900;
    margin-top: 1.5em;
}

/* Navbar */

div#msm-banner {
    background-color: var(--colour-yellow);
}

div#msm-banner div.container {
    padding: 1em 0;
}

div#msm-banner div.container div.content {
    display: flex;
    justify-content: space-between;
}

div#msm-banner div.container div.content p {
    margin: 0;
}

div#msm-banner div.container div.content p a {
    text-decoration: underline;
}

div#msm-banner div.container div.content button {
    border: none;
    background: none;
}

div#free-trial-form .msm-banner {
    background-color: var(--colour-yellow);
    color: var(--colour-black);
    text-align: left;
    padding: 2px;
    margin: 0 0 1em 0;
}
div#free-trial-form .msm-banner p {
    margin: 0.5em 0;
    padding: 0 10px;
    text-align: center;
    font-weight: 400;
}
div#free-trial-form .msm-banner p br {
    display: none;
}


@media (max-width: 1408px) {
    div#msm-banner div.container div.content p {
        font-size: 1.3em;
    }
    div#free-trial-form .msm-banner p br {
        display: inline;
    }
}

@media (max-width: 1054px) {
    div#msm-banner div.container div.content p {
        font-size: 1em;
    }
    div#free-trial-form .msm-banner p br {
        display: none;
    }
}

@media (max-width: 834px) {
    div#msm-banner div.container {
        padding: 1em 1.5em;
    }

    div#free-trial-form .msm-banner p br {
        display: inline;
    }
}


.header {
    padding: 0.5em 0;
}

.header .navbar {
    width: 1280px;
    margin: 0 auto;
    display: flex;
    column-gap: 2.5em;
    align-items: center;
    font-family: 'Heebo', sans-serif;
    font-size: 1em;
    font-weight: 700;
}

.header .navbar-header {
    flex-shrink: 0;
}

.header .logo img {
    margin-top: -6px;
}

.header .nav-menu-expand {
    display: none;
    float: right;
}

.header .navbar-toggle {
    position: relative;
    float: right;
    margin-top: 0px;
    margin-bottom: 8px;
    background-color: transparent;
    background-image: none;
    padding: 9px 10px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: initial;
    border-radius: 4px;
}

.header .icon-bar {
    background-color: rgb(255, 255, 255);
    margin-top: 4px;
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 1px;
}


.header .navbar-collapse {
    flex: 1;
    display: flex;
    justify-content: space-between;
}

.header ul {
    padding: 0;
    margin: 0;
    list-style: none;
}

.header li {
    padding: 0;
    margin: 0;
}

.header .nav-items {
    display: flex;
    flex-wrap: wrap;
}

.header .nav-items li a {
    color: var(--colour-white);
    line-height: 1.25em;
    padding: 0.75em 1em;
    text-decoration: none;
    display: block;
    white-space: nowrap;
}

.header .nav-items li a:hover {
    text-decoration: underline;
}

#login-items {
    align-items: center;
}

.header li.with-button a:hover {
    text-decoration: none;
}

.header .nav-items li .btn.btn-small {
    margin-right: 0px;
    padding: 0.5em 1em;
}

@media (max-width: 1408px) {
    .header .navbar {
        width: 970px;
    }

    .header .navbar .with-button {
        display: none;
    }

    .header .nav-items li a {
        padding: 0.75em 0.75em;
    }
}

@media (max-width: 1054px) {
    .header .navbar {
        width: 750px;
    }

    .header .nav-items li a {
        padding: 0.75em 0.5em;
    }

    #login-items {
        display: none;
    }
}

@media (max-width: 834px) {
    .header .navbar {
        display: block;
        width: auto;
        padding: 1em 1.5em;
    }

    .header .navbar-header {
        display: flex;
        flex: 1;
        justify-content: space-between;
    }

    .header .navbar ul li.logo img {
        margin-top: 3px;
    }

    .header .nav-menu-expand {
        display: block;
        margin-right: -10px;
    }

    .header .navbar .navbar-collapse.collapsed {
        max-height: 0px;
        transition: max-height 0.15s ease-out;
    }

    .header .navbar .navbar-collapse {
        max-height: 600px;
        clear: both;
        transition: max-height 0.25s ease-in;
        overflow: hidden;
        margin-right: -0.5em;
        display: block;
    }

    .header .navbar .navbar-collapse ul {
        width: 100%;
    }

    .header .nav-items {
        text-align: right;
        display: block;
    }

    .header .nav-items li {
        font-size: 1.5em;
    }

    .header .nav-items li a {
        display: inline-block;
    }

    #login-items {
        display: block;
    }
}

/* Footer */

#footer .columns {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1.5fr;
}

#footer h4 {
    margin: 2em 0 0.75em 0;
}

#footer ul {
    padding: 0;
    margin: 0;
    list-style: none;
    font-weight: 200;
}

#footer ul li {
    margin: 0.75em 0;
}

#footer ul li.phone {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.885.511a1.745 1.745 0 0 1 2.61.163L6.29 2.98c.329.423.445.974.315 1.494l-.547 2.19a.678.678 0 0 0 .178.643l2.457 2.457a.678.678 0 0 0 .644.178l2.189-.547a1.745 1.745 0 0 1 1.494.315l2.306 1.794c.829.645.905 1.87.163 2.611l-1.034 1.034c-.74.74-1.846 1.065-2.877.702a18.634 18.634 0 0 1-7.01-4.42 18.634 18.634 0 0 1-4.42-7.009c-.362-1.03-.037-2.137.703-2.877L1.885.511z' fill='white' /%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 1em;
    background-position: 0 0.2em;
    padding: 0 0 0 1.5em;
}

#footer ul li.email {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.05 3.555A2 2 0 0 1 2 2h12a2 2 0 0 1 1.95 1.555L8 8.414.05 3.555zM0 4.697v7.104l5.803-3.558L0 4.697zM6.761 8.83l-6.57 4.027A2 2 0 0 0 2 14h12a2 2 0 0 0 1.808-1.144l-6.57-4.027L8 9.586l-1.239-.757zm3.436-.586L16 11.801V4.697l-5.803 3.546z' fill='white' /%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 1em;
    background-position: 0 0.2em;
    padding: 0 0 0 1.5em;
}

#footer ul li.address {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10zm0-7a3 3 0 1 1 0-6 3 3 0 0 1 0 6z' fill='white' /%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 1em;
    background-position: 0 0.2em;
    padding: 0 0 0 1.5em;
}

#footer ul li a {
    font-weight: 200;
}

#footer a {
    color: var(--colour-white);
}

@media (max-width: 1408px) {
    #footer .columns {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 834px) {
    #footer .columns {
        grid-template-columns: 1fr;
    }

    #footer .container ul,
    #footer .container p {
        font-size: 1.25em;
    }
}

/* Page Title */

.page-title {
    text-align: center;
}

div.page-title-new div.testimonial {
    padding-top: 1.2em;
}

div.page-title-new div.testimonial p.stars {
    margin-top: 0;
}

div.page-title-new p.cta {
    margin: 0;
}
div.page-title-new p.login {
    margin-top: 0;
}

@media (max-width: 834px) {
    div.page-title-new {
        text-align: center;
    }
}

/* Trial Form */

#request-form-container .columns {
    display: grid;
    grid-template-columns: 2fr 1fr;
    align-items: center;
}

#request-form-container .columns .col1 {
    background-color: #871c20;
    margin: 120px 60px 60px 0px;
    border-radius: 20px;
    padding: 40px;
    box-shadow: 0px 6px 28px -4px rgba(0,0,0,0.45);
}

#request-form-container .columns h2 {
    margin: 10px 0 30px 0;
    text-align: center;
}

#request-form-container .form-group {
    font-size: 1.5em;
    margin: 1em 0;
}

#request-form-container div.checkbox {
    font-size: 1.5em;
    margin: 1em 0;
}

#request-form-container .disclaimer {
    font-size: 1em;
}

#request-form-container .validation-error {
    background-color: var(--colour-yellow);
    color: var(--colour-black);
    font-weight: 400;
    padding: 0.25em 0.5em;
    margin-top: 0.25em;
}

#request-form-container .validation-error.hidden,
#request-form-container .setup-message.hidden {
    display: none;
}

#request-form-container .setup-message {
    display: flex;
    align-items: center;
    background-color: var(--colour-peach);
    color: var(--colour-black);
    font-weight: 400;
    padding: 0.5em 1em;
    margin-top: 0.25em;
}

#request-form-container .setup-message p {
    margin: 0;
    padding-left: 1em;
    font-size: 1.3em;
}

#request-form-container .setup-message .loader {
    width: 48px;
    height: 48px;
    border: 5px solid var(--colour-dark-brown);
    border-bottom-color: transparent;
    border-radius: 50%;
    display: inline-block;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
}

@keyframes rotation {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

#request-form-container .col2 p {
    font-weight: 600;
}

#request-form-container .col2 span {
    font-weight: 300;
    display: block;
    margin-left: 36px;
}



.form-control {
    display: block;
    width: 100%;
    padding: 6px 12px;
    font-size: 1em;
    line-height: 1.5;
    color: #222;
    background-color: #fff;
    background-image: none;
    border: 1px solid #ccc;
    border-radius: 6px;
    -webkit-box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%);
    box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%);
    -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
    -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
    box-sizing: border-box;
}



.lity-container #request-form-container {
    background-color: var(--colour-dark-red);
    color: var(--colour-white);
    padding: 2em;
}

.lity-container #request-form-container a {
    color: var(--colour-yellow);
}

.lity-container #request-form-container .columns {
    column-gap: 2em;
}

.lity-container #request-form-container .columns .col1 {
    margin: 0;
}

@media (max-width: 1408px) {
    #request-form-container .columns {
        grid-template-columns: 3fr 1fr;
    }

    #request-form-container .col2 svg {
        display: none;
    }

    #request-form-container .col2 span {
        margin-left: 0;
    }
}

@media (max-width: 1054px) {
    #request-form-container .columns {
        grid-template-columns: 1fr;
    }

    #request-form-container .columns .col2 {
        display: none;
    }

    #request-form-container .columns .col1 {
        margin: 4em 0 2em 0;
    }
}

@media (max-width: 834px) {
    #request-form-container .columns h2 {
        font-size: 3em;
    }

    #request-form-container div.checkbox {
        font-size: 1em;
    }
}

/* Sections */

.section {
    position: relative;
}

.section-red {
    background-color: var(--colour-brand-red);
    color: var(--colour-white);
}

.section-peach {
    background-color: var(--colour-peach);
    color: var(--colour-dark-brown);
}

.section-white {
    background-color: var(--colour-white);
    color: var(--colour-black);
}

.section-grey {
    background-color: var(--colour-light-grey);
    color: var(--colour-black);
}

.section-orange {
    background-color: var(--colour-orange);
    color: var(--colour-white);
}

.section-red {
    background-color: var(--colour-brand-red);
    color: var(--colour-white);
}

.section-darkred {
    background-color: var(--colour-dark-red);
    color: var(--colour-white);
}

.section-light-coral {
    background-color: var(--colour-light-coral);
    color: #21110e;
}

.section-pale-lavender {
    background-color: var(--colour-pale-lavender);
    color: #1b1429;
}

.section-black {
    background-color: var(--colour-black);
    color: var(--colour-white);
}

.section-red a,
.section-darkred a,
.section-orange a,
.section-black a {
    color: var(--colour-yellow);
}

/* Transitions */

.transition.invert {
    transform: rotate(180deg);
}

.transition.invert.flip {
    transform: rotate(180deg) scaleX(-1);
}

.transition.flip {
    transform: scaleX(-1);
}

.transition.bottom {
    top: auto;
    bottom: 0px;
}

.transition {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    line-height: 0;
    overflow: hidden;
}

.transition.small svg {
    height: 1.5rem;
}

.transition.medium svg {
    height: 3rem;
}

.transition.large svg {
    height: 6rem;
}

.transition svg {
    position: relative;
    display: block;
    width: calc(100% + 1.3px);
    height: 3rem;
}

.transition.from-red .shape-fill {
    fill: var(--colour-brand-red);
}

.transition.from-white .shape-fill {
    fill: var(--colour-white);
}

.transition.from-grey .shape-fill {
    fill: var(--colour-light-grey);
}

.transition.from-peach .shape-fill {
    fill: var(--colour-peach);
}

.transition.from-orange .shape-fill {
    fill: var(--colour-orange);
}

.transition.from-darkred .shape-fill {
    fill: var(--colour-dark-red);
}

.transition.from-black .shape-fill {
    fill: var(--colour-black);
}

.transition.from-pale-lavender .shape-fill {
    fill: var(--colour-pale-lavender);
}

.transition.from-light-coral .shape-fill {
    fill: var(--colour-light-coral);
}

/* Container */

.container {
    width: 1280px;
    margin: 0px auto;
    padding: 1em 0; /* 1em seems to equate to 24px (@ 150% dpi), line-height leaves 16px below the baseline of the text, then 1.5em font-size and 1.5em margin, 
                       leaves 54px margin below text, so adding 1em padding (24px) takes the gap from the baseline of the final p to the bottom of 
                       the container to 94px, which is almost 4em = 96px */
}

    .container ul,
    .container ol,
    .container p {
        font-size: 1.5em;
        font-weight: 300;
        line-height: 1.5;
        margin: 1.5em 0;
    }

    .container a {
        font-weight: 400;
    }

@media (max-width: 1408px) {
    div.container {
        width: 970px;
    }
}

@media (max-width: 1054px) {
    div.container {
        width: 750px;
    }
}

@media (max-width: 834px) {
    div.container {
        width: auto;
        padding-right: 1.5em;
        padding-left: 1.5em;
        margin-right: auto;
        margin-left: auto;
    }
}

/* Testimonials */

.testimonial {
    padding: 40px 0 40px 0;
    text-align: center;
}

    .testimonial .stars {
        font-weight: 600;
        font-size: 3.125em;
        text-align: center;
        margin-bottom: -20px;
    }

        .testimonial .stars img {
            display: inline;
            width: 70px;
            height: 70px;
            filter: drop-shadow( 3px 3px 2px rgba(71, 38, 15, 0.5));
        }

    .testimonial blockquote {
        position: relative;
        text-align: center;
        quotes: "“" "”" "‘" "’";
        border-width: initial;
        border-style: none;
        border-color: initial;
        border-image: initial;
    }

        .testimonial blockquote p {
            font-size: 1.875em;
            font-weight: 300;
        }

            .testimonial blockquote p::before {
                position: absolute;
                margin-top: -0.4em;
                margin-left: -50px;
                content: open-quote;
                font-weight: bold;
                font-size: 3.33em;
                color: var(--colour-brand-red);
            }

            .testimonial blockquote p::after {
                position: absolute;
                margin-top: -0.35em;
                margin-left: 5px;
                content: close-quote;
                font-weight: bold;
                font-size: 3.33em;
                color: var(--colour-brand-red);
            }

.section-red .testimonial blockquote p::before {
    color: var(--colour-orange);
}

.section-red .testimonial blockquote p::after {
    color: var(--colour-orange);
}

.testimonial .source {
    text-align: right;
    font-weight: 600;
    font-size: 1.125em;
}

.testimonial br.w1 {
    display: none;
}

@media (max-width: 1408px) {
    .testimonial br.w1 {
        display: inline;
    }
}

@media (max-width: 1054px) {
    .testimonial br.w0 {
        display: none;
    }
}

@media (max-width: 512px) {
    .testimonial .stars img {
        width: 50px;
        height: 50px;
    }

    .testimonial br.w1 {
        display: none;
    }

    .testimonial blockquote p {
        font-size: 1.75em;
        font-weight: 300;
    }
}


/* Components */

.head-text-link-group h1,
.head-text-link-group h2,
.head-text-link-group h3,
.head-text-link-group h4 {
    margin: 0;
}

.head-text-link-group p {
    margin: 0.75em 0;
}

    .head-text-link-group p:has(a) {
        margin: 0.75em 0 0 0;
    }

.head-text-group h1,
.head-text-group h2,
.head-text-group h3,
.head-text-group h4 {
    margin: 0;
}

.head-text-group p {
    margin: 0.75em 0 0 0;
}





/* Buttons */

.btn {
    text-decoration: none;
    font-family: 'Heebo', sans-serif;
    border-style: hidden;
    cursor: pointer;
}

    .btn.btn-small {
        padding: 8px 16px;
        margin-right: 10px;
        border-radius: 10px;
        font-size: 16px;
        font-weight: 700;
    }

    .btn.btn-medium {
        display: inline-block;
        padding: 12px 24px;
        margin-right: 10px;
        margin-bottom: 10px;
        border-radius: 10px;
        font-size: 20px;
        font-weight: 700;
    }

    .btn.btn-large {
        display: inline-block;
        padding: 12px 24px;
        margin-right: 10px;
        margin-bottom: 10px;
        border-radius: 10px;
        font-size: 32px;
        font-weight: 700;
    }

    .btn.btn-white {
        background-color: var(--colour-white);
        color: var(--colour-brand-red) !important;
    }

        .btn.btn-white.outline {
            border: solid 2px var(--colour-brand-red);
        }

    .btn.btn-blue {
        background-color: var(--colour-blue);
        color: var(--colour-white) !important;
    }

    .btn.btn-red {
        background-color: var(--colour-brand-red);
        color: var(--colour-white) !important;
    }

    .btn.center {
        display: block;
        margin-left: auto;
        margin-right: auto;
    }

@media (max-width: 1054px) {
    a.btn.btn-small {
        padding: 8px 16px !important;
        border-radius: 10px;
        font-size: 14px;
        margin-top: 6px;
    }
}

/* Individual Page Components */

.price-box {
    background-color: var(--colour-orange);
    border-radius: 5px;
    max-width: 65%;
    margin: 2.35em auto 0 auto;
    color: var(--colour-white);
    padding: 20px 2px 2px 2px;
    text-align: center;
}

    .price-box h1 {
        margin-top: 0.5em;
    }

    .price-box p.sub {
        margin-top: 0;
    }

    .price-box .inner {
        padding: 2.25em;
        padding-bottom: 0.5em;
        background-color: var(--colour-white);
        color: var(--colour-black);
        margin: 0;
        border-radius: 0 0 3px 3px;
    }

    .price-box ul {
        list-style: none;
        padding: 0;
        margin: 0;
    }


@media (max-width: 1408px) {
    .price-box {
        max-width: 85%;
    }
}

@media (max-width: 1054px) {
    .price-box {
        max-width: 100%;
    }

    br.wt1 {
        display: none;
    }
}

@media (max-width: 834px) {
    .page-title {
        text-align: left;
    }

    .price-box .inner {
        text-align: left;
    }

    .price-box ul {
        list-style: disc;
        padding: 0 0 0 0.85em;
        margin: 0;
    }

    .price-box .cta {
        text-align: center;
    }
}

#free-trial-form .columns {
    display: grid;
    grid-template-columns: 2fr 1fr;
    align-items: center;
}

#free-trial-form .columns .col1 {
    background-color: var(--colour-orange);
    color: var(--colour-white);
    margin: 3em 3em 3em 0;
    border-radius: 20px;
    padding: 40px;
    box-shadow: 0px 6px 28px -4px rgba(0,0,0,0.45);
}

#free-trial-form .columns .col1 a {
    color: var(--colour-yellow);
}

#free-trial-form .columns h2 {
    margin: 10px 0 30px 0;
    text-align: center;
}

#free-trial-form .form-group {
    font-size: 1.5em;
    margin: 1em 0;
}

#free-trial-form div.checkbox {
    font-size: 1.5em;
    margin: 1em 0;
}

#free-trial-form .disclaimer {
    font-size: 1em;
}

#free-trial-form .validation-error {
    background-color: var(--colour-yellow);
    color: var(--colour-black);
    font-weight: 400;
    padding: 0.25em 0.5em;
    margin-top: 0.25em;
}

    #free-trial-form .validation-error.hidden,
    #free-trial-form .setup-message.hidden {
        display: none;
    }

#free-trial-form .setup-message {
    display: flex;
    align-items: center;
    background-color: var(--colour-peach);
    color: var(--colour-black);
    font-weight: 400;
    padding: 0.5em 1em;
    margin-top: 0.25em;
}

#free-trial-form .setup-message p {
    margin: 0;
    padding-left: 1em;
    font-size: 1.3em;
}

#free-trial-form .setup-message .loader {
    width: 48px;
    height: 48px;
    border: 5px solid var(--colour-dark-brown);
    border-bottom-color: transparent;
    border-radius: 50%;
    display: inline-block;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
}

@keyframes rotation {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

#free-trial-form .col2 p {
    font-weight: 600;
}

#free-trial-form .col2 span {
    font-weight: 300;
    display: block;
    margin-left: 36px;
}

@media (max-width: 1408px) {
    #free-trial-form .columns {
        grid-template-columns: 3fr 2fr;
    }

    #free-trial-form .col2 svg {
        display: none;
    }

    #free-trial-form .col2 span {
        margin-left: 0;
    }
}

@media (max-width: 1054px) {
    #free-trial-form .columns {
        grid-template-columns: 1fr;
    }

        #free-trial-form .columns .col1 {
            margin: 4em 0 2em 0;
        }
}

@media (max-width: 834px) {
    #free-trial-form .columns h2 {
        font-size: 3em;
    }

    #free-trial-form div.checkbox {
        font-size: 1em;
    }
}

#book-demo-form .columns {
    display: grid;
    grid-template-columns: 2fr 1fr;
}

#book-demo-form .columns .col2 {
    margin-top: 50px;
}

#book-demo-form .col2 p {
    font-weight: 600;
}

#book-demo-form .col2 span {
    font-weight: 300;
    display: block;
    margin-left: 36px;
}

@media (max-width: 1408px) {
    #book-demo-form .columns .col1 {
        padding-top: 50px;
    }
    #book-demo-form .columns .col2 {
        margin-top: 30px;
        padding-left: 10px;
    }
}
@media (max-width: 1054px) {
    #book-demo-form .columns {
        grid-template-columns: 1fr;
    }
    #book-demo-form .columns .col1 {
        padding-top: 0;
    }
    #book-demo-form .columns .col2 {
        padding-left: 40px;
    }
}


.contact-details .container {
    display: grid;
    grid-template-columns: 3fr 2fr;
    grid-gap: 60px;
    margin-top: 40px;
}

.contact-details .container .col1 {
    align-self: center;
}

.contact-details ul {
    padding: 0;
    margin: 0;
    list-style: none;
    font-weight: 200;
}

.contact-details ul li {
    margin: 0.75em 0;
}

.contact-details ul li.phone {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.885.511a1.745 1.745 0 0 1 2.61.163L6.29 2.98c.329.423.445.974.315 1.494l-.547 2.19a.678.678 0 0 0 .178.643l2.457 2.457a.678.678 0 0 0 .644.178l2.189-.547a1.745 1.745 0 0 1 1.494.315l2.306 1.794c.829.645.905 1.87.163 2.611l-1.034 1.034c-.74.74-1.846 1.065-2.877.702a18.634 18.634 0 0 1-7.01-4.42 18.634 18.634 0 0 1-4.42-7.009c-.362-1.03-.037-2.137.703-2.877L1.885.511z' fill='black' /%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 1em;
    background-position: 0 0.2em;
    padding: 0 0 0 1.5em;
}

.contact-details ul li.email {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.05 3.555A2 2 0 0 1 2 2h12a2 2 0 0 1 1.95 1.555L8 8.414.05 3.555zM0 4.697v7.104l5.803-3.558L0 4.697zM6.761 8.83l-6.57 4.027A2 2 0 0 0 2 14h12a2 2 0 0 0 1.808-1.144l-6.57-4.027L8 9.586l-1.239-.757zm3.436-.586L16 11.801V4.697l-5.803 3.546z' fill='black' /%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 1em;
    background-position: 0 0.2em;
    padding: 0 0 0 1.5em;
}

.contact-details ul li.address {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10zm0-7a3 3 0 1 1 0-6 3 3 0 0 1 0 6z' fill='black' /%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 1em;
    background-position: 0 0.2em;
    padding: 0 0 0 1.5em;
}

.contact-details ul li.email a {
    font-weight: 300;
}

@media (max-width: 1054px) {
    .contact-details .container {
        grid-template-columns: 2fr 1fr;
    }
}

@media (max-width: 834px) {
    .contact-details .container {
        grid-template-columns: 1fr;
    }

        .contact-details .container .col1 {
            display: none;
        }

        .contact-details .container .col2 {
            padding-bottom: 40px;
        }
}


/* Login */

#login-form {
    display: none;
    width: 600px;
}

    #login-form h2 {
        margin-top: 0;
        background-color: var(--colour-brand-red);
        color: #fff;
        padding: 20px 40px;
        font-size: 48px;
        margin: 0;
    }

div#login-form div.login-box {
    background-color: #ddd;
    padding: 20px 40px 40px 40px;
}

    div#login-form div.login-box p.label {
        margin-bottom: 10px;
    }

    div#login-form div.login-box .input-group {
        width: 100%;
    }

    div#login-form div.login-box a {
        color: var(--colour-brand-red);
        font-weight: 700;
    }

.lity #login-form {
    display: block;
}

@media (max-width: 770px) {
    #login-form {
        width: 100%;
    }
}

.banner {
    text-align: center;
    background: #167acd;
    padding: 20px;
    margin: 10px;
    color: #fff;
}

    .banner p.head {
        font-size: 28px;
        margin-bottom: 0;
    }

    .banner p.sub {
        margin-top: 5px;
    }

div.section-light-grey div.container .banner p a {
    color: #fff;
    font-weight: bold;
}

/* Component CSS */

.text-center {
    text-align: center;
}

.mt-1 {
    margin-top: 0.25rem !important;
}

.mt-2 {
    margin-top: 0.5rem !important;
}

.mt-3 {
    margin-top: 0.75rem !important;
}

.mt-4 {
    margin-top: 1rem !important;
}

.mt-5 {
    margin-top: 1.25rem !important;
}

.mt-6 {
    margin-top: 1.5rem !important;
}

.mt-7 {
    margin-top: 1.75rem !important;
}

.mt-8 {
    margin-top: 2rem !important;
}

.mt-9 {
    margin-top: 2.25rem !important;
}

.mt-10 {
    margin-top: 2.5rem !important;
}

.mt-11 {
    margin-top: 2.75rem !important;
}

.mt-12 {
    margin-top: 3rem !important;
}

.mt-14 {
    margin-top: 3.5rem !important;
}

.mt-16 {
    margin-top: 4rem !important;
}

.mt-18 {
    margin-top: 4.5rem !important;
}

.mt-20 {
    margin-top: 5rem !important;
}

.mt-22 {
    margin-top: 5.5rem !important;
}

.mt-24 {
    margin-top: 6rem !important;
}

.mt-28 {
    margin-top: 7rem !important;
}

.mt-32 {
    margin-top: 8rem !important;
}

.mb-1 {
    margin-bottom: 0.25rem !important;
}

.mb-2 {
    margin-bottom: 0.5rem !important;
}

.mb-3 {
    margin-bottom: 0.75rem !important;
}

.mb-4 {
    margin-bottom: 1rem !important;
}

.mb-5 {
    margin-bottom: 1.25rem !important;
}

.mb-6 {
    margin-bottom: 1.5rem !important;
}

.mb-7 {
    margin-bottom: 1.75rem !important;
}

.mb-8 {
    margin-bottom: 2rem !important;
}

.mb-9 {
    margin-bottom: 2.25rem !important;
}

.mb-10 {
    margin-bottom: 2.5rem !important;
}

.mb-11 {
    margin-bottom: 2.75rem !important;
}

.mb-12 {
    margin-bottom: 3rem !important;
}

.mb-14 {
    margin-bottom: 3.5rem !important;
}

.mb-16 {
    margin-bottom: 4rem !important;
}

.mb-18 {
    margin-bottom: 4.5rem !important;
}

.mb-20 {
    margin-bottom: 5rem !important;
}

.mb-22 {
    margin-bottom: 5.5rem !important;
}

.mb-24 {
    margin-bottom: 6rem !important;
}

.mb-28 {
    margin-bottom: 7rem !important;
}

.mb-32 {
    margin-bottom: 8rem !important;
}

.ml-1 {
    margin-left: 0.25rem !important;
}

.ml-2 {
    margin-left: 0.5rem !important;
}

.ml-3 {
    margin-left: 0.75rem !important;
}

.ml-4 {
    margin-left: 1rem !important;
}

.ml-5 {
    margin-left: 1.25rem !important;
}

.ml-6 {
    margin-left: 1.5rem !important;
}

.ml-7 {
    margin-left: 1.75rem !important;
}

.ml-8 {
    margin-left: 2rem !important;
}

.ml-9 {
    margin-left: 2.25rem !important;
}

.ml-10 {
    margin-left: 2.5rem !important;
}

.ml-11 {
    margin-left: 2.75rem !important;
}

.ml-12 {
    margin-left: 3rem !important;
}

.ml-14 {
    margin-left: 3.5rem !important;
}

.ml-16 {
    margin-left: 4rem !important;
}

.ml-18 {
    margin-left: 4.5rem !important;
}

.ml-20 {
    margin-left: 5rem !important;
}

.ml-22 {
    margin-left: 5.5rem !important;
}

.ml-24 {
    margin-left: 6rem !important;
}

.ml-28 {
    margin-left: 7rem !important;
}

.ml-32 {
    margin-left: 8rem !important;
}

.mr-1 {
    margin-right: 0.25rem !important;
}

.mr-2 {
    margin-right: 0.5rem !important;
}

.mr-3 {
    margin-right: 0.75rem !important;
}

.mr-4 {
    margin-right: 1rem !important;
}

.mr-5 {
    margin-right: 1.25rem !important;
}

.mr-6 {
    margin-right: 1.5rem !important;
}

.mr-7 {
    margin-right: 1.75rem !important;
}

.mr-8 {
    margin-right: 2rem !important;
}

.mr-9 {
    margin-right: 2.25rem !important;
}

.mr-10 {
    margin-right: 2.5rem !important;
}

.mr-11 {
    margin-right: 2.75rem !important;
}

.mr-12 {
    margin-right: 3rem !important;
}

.mr-14 {
    margin-right: 3.5rem !important;
}

.mr-16 {
    margin-right: 4rem !important;
}

.mr-18 {
    margin-right: 4.5rem !important;
}

.mr-20 {
    margin-right: 5rem !important;
}

.mr-22 {
    margin-right: 5.5rem !important;
}

.mr-24 {
    margin-right: 6rem !important;
}

.mr-28 {
    margin-right: 7rem !important;
}

.mr-32 {
    margin-right: 8rem !important;
}

.my-1 {
    margin-bottom: 0.25rem !important;
    margin-top: 0.25rem !important;
}

.my-2 {
    margin-bottom: 0.5rem !important;
    margin-top: 0.5rem !important;
}

.my-3 {
    margin-bottom: 0.75rem !important;
    margin-top: 0.75rem !important;
}

.my-4 {
    margin-bottom: 1rem !important;
    margin-top: 1rem !important;
}

.my-5 {
    margin-bottom: 1.25rem !important;
    margin-top: 1.25rem !important;
}

.my-6 {
    margin-bottom: 1.5rem !important;
    margin-top: 1.5rem !important;
}

.my-7 {
    margin-bottom: 1.75rem !important;
    margin-top: 1.75rem !important;
}

.my-8 {
    margin-bottom: 2rem !important;
    margin-top: 2rem !important;
}

.my-9 {
    margin-bottom: 2.25rem !important;
    margin-top: 2.25rem !important;
}

.my-10 {
    margin-bottom: 2.5rem !important;
    margin-top: 2.5rem !important;
}

.my-11 {
    margin-bottom: 2.75rem !important;
    margin-top: 2.75rem !important;
}

.my-12 {
    margin-bottom: 3rem !important;
    margin-top: 3rem !important;
}

.my-14 {
    margin-bottom: 3.5rem !important;
    margin-top: 3.5rem !important;
}

.my-16 {
    margin-bottom: 4rem !important;
    margin-top: 4rem !important;
}

.my-18 {
    margin-bottom: 4.5rem !important;
    margin-top: 4.5rem !important;
}

.my-20 {
    margin-bottom: 5rem !important;
    margin-top: 5rem !important;
}

.my-22 {
    margin-bottom: 5.5rem !important;
    margin-top: 5.5rem !important;
}

.my-24 {
    margin-bottom: 6rem !important;
    margin-top: 6rem !important;
}

.my-28 {
    margin-bottom: 7rem !important;
    margin-top: 7rem !important;
}

.my-32 {
    margin-bottom: 8rem !important;
    margin-top: 8rem !important;
}

.mx-1 {
    margin-left: 0.25rem !important;
    margin-right: 0.25rem !important;
}

.mx-2 {
    margin-left: 0.5rem !important;
    margin-right: 0.5rem !important;
}

.mx-3 {
    margin-left: 0.75rem !important;
    margin-right: 0.75rem !important;
}

.mx-4 {
    margin-left: 1rem !important;
    margin-right: 1rem !important;
}

.mx-5 {
    margin-left: 1.25rem !important;
    margin-right: 1.25rem !important;
}

.mx-6 {
    margin-left: 1.5rem !important;
    margin-right: 1.5rem !important;
}

.mx-7 {
    margin-left: 1.75rem !important;
    margin-right: 1.75rem !important;
}

.mx-8 {
    margin-left: 2rem !important;
    margin-right: 2rem !important;
}

.mx-9 {
    margin-left: 2.25rem !important;
    margin-right: 2.25rem !important;
}

.mx-10 {
    margin-left: 2.5rem !important;
    margin-right: 2.5rem !important;
}

.mx-11 {
    margin-left: 2.75rem !important;
    margin-right: 2.75rem !important;
}

.mx-12 {
    margin-left: 3rem !important;
    margin-right: 3rem !important;
}

.mx-14 {
    margin-left: 3.5rem !important;
    margin-right: 3.5rem !important;
}

.mx-16 {
    margin-left: 4rem !important;
    margin-right: 4rem !important;
}

.mx-18 {
    margin-left: 4.5rem !important;
    margin-right: 4.5rem !important;
}

.mx-20 {
    margin-left: 5rem !important;
    margin-right: 5rem !important;
}

.mx-22 {
    margin-left: 5.5rem !important;
    margin-right: 5.5rem !important;
}

.mx-24 {
    margin-left: 6rem !important;
    margin-right: 6rem !important;
}

.mx-28 {
    margin-left: 7rem !important;
    margin-right: 7rem !important;
}

.mx-32 {
    margin-left: 8rem !important;
    margin-right: 8rem !important;
}

.pt-1 {
    padding-top: 0.25rem !important;
}

.pt-2 {
    padding-top: 0.5rem !important;
}

.pt-3 {
    padding-top: 0.75rem !important;
}

.pt-4 {
    padding-top: 1rem !important;
}

.pt-5 {
    padding-top: 1.25rem !important;
}

.pt-6 {
    padding-top: 1.5rem !important;
}

.pt-7 {
    padding-top: 1.75rem !important;
}

.pt-8 {
    padding-top: 2rem !important;
}

.pt-9 {
    padding-top: 2.25rem !important;
}

.pt-10 {
    padding-top: 2.5rem !important;
}

.pt-11 {
    padding-top: 2.75rem !important;
}

.pt-12 {
    padding-top: 3rem !important;
}

.pt-14 {
    padding-top: 3.5rem !important;
}

.pt-16 {
    padding-top: 4rem !important;
}

.pt-18 {
    padding-top: 4.5rem !important;
}

.pt-20 {
    padding-top: 5rem !important;
}

.pt-22 {
    padding-top: 5.5rem !important;
}

.pt-24 {
    padding-top: 6rem !important;
}

.pt-28 {
    padding-top: 7rem !important;
}

.pt-32 {
    padding-top: 8rem !important;
}

.pb-1 {
    padding-bottom: 0.25rem !important;
}

.pb-2 {
    padding-bottom: 0.5rem !important;
}

.pb-3 {
    padding-bottom: 0.75rem !important;
}

.pb-4 {
    padding-bottom: 1rem !important;
}

.pb-5 {
    padding-bottom: 1.25rem !important;
}

.pb-6 {
    padding-bottom: 1.5rem !important;
}

.pb-7 {
    padding-bottom: 1.75rem !important;
}

.pb-8 {
    padding-bottom: 2rem !important;
}

.pb-9 {
    padding-bottom: 2.25rem !important;
}

.pb-10 {
    padding-bottom: 2.5rem !important;
}

.pb-11 {
    padding-bottom: 2.75rem !important;
}

.pb-12 {
    padding-bottom: 3rem !important;
}

.pb-14 {
    padding-bottom: 3.5rem !important;
}

.pb-16 {
    padding-bottom: 4rem !important;
}

.pb-18 {
    padding-bottom: 4.5rem !important;
}

.pb-20 {
    padding-bottom: 5rem !important;
}

.pb-22 {
    padding-bottom: 5.5rem !important;
}

.pb-24 {
    padding-bottom: 6rem !important;
}

.pb-28 {
    padding-bottom: 7rem !important;
}

.pb-32 {
    padding-bottom: 8rem !important;
}

.pl-1 {
    padding-left: 0.25rem !important;
}

.pl-2 {
    padding-left: 0.5rem !important;
}

.pl-3 {
    padding-left: 0.75rem !important;
}

.pl-4 {
    padding-left: 1rem !important;
}

.pl-5 {
    padding-left: 1.25rem !important;
}

.pl-6 {
    padding-left: 1.5rem !important;
}

.pl-7 {
    padding-left: 1.75rem !important;
}

.pl-8 {
    padding-left: 2rem !important;
}

.pl-9 {
    padding-left: 2.25rem !important;
}

.pl-10 {
    padding-left: 2.5rem !important;
}

.pl-11 {
    padding-left: 2.75rem !important;
}

.pl-12 {
    padding-left: 3rem !important;
}

.pl-14 {
    padding-left: 3.5rem !important;
}

.pl-16 {
    padding-left: 4rem !important;
}

.pl-18 {
    padding-left: 4.5rem !important;
}

.pl-20 {
    padding-left: 5rem !important;
}

.pl-22 {
    padding-left: 5.5rem !important;
}

.pl-24 {
    padding-left: 6rem !important;
}

.pl-28 {
    padding-left: 7rem !important;
}

.pl-32 {
    padding-left: 8rem !important;
}

.pr-1 {
    padding-right: 0.25rem !important;
}

.pr-2 {
    padding-right: 0.5rem !important;
}

.pr-3 {
    padding-right: 0.75rem !important;
}

.pr-4 {
    padding-right: 1rem !important;
}

.pr-5 {
    padding-right: 1.25rem !important;
}

.pr-6 {
    padding-right: 1.5rem !important;
}

.pr-7 {
    padding-right: 1.75rem !important;
}

.pr-8 {
    padding-right: 2rem !important;
}

.pr-9 {
    padding-right: 2.25rem !important;
}

.pr-10 {
    padding-right: 2.5rem !important;
}

.pr-11 {
    padding-right: 2.75rem !important;
}

.pr-12 {
    padding-right: 3rem !important;
}

.pr-14 {
    padding-right: 3.5rem !important;
}

.pr-16 {
    padding-right: 4rem !important;
}

.pr-18 {
    padding-right: 4.5rem !important;
}

.pr-20 {
    padding-right: 5rem !important;
}

.pr-22 {
    padding-right: 5.5rem !important;
}

.pr-24 {
    padding-right: 6rem !important;
}

.pr-28 {
    padding-right: 7rem !important;
}

.pr-32 {
    padding-right: 8rem !important;
}

.py-1 {
    padding-bottom: 0.25rem !important;
    padding-top: 0.25rem !important;
}

.py-2 {
    padding-bottom: 0.5rem !important;
    padding-top: 0.5rem !important;
}

.py-3 {
    padding-bottom: 0.75rem !important;
    padding-top: 0.75rem !important;
}

.py-4 {
    padding-bottom: 1rem !important;
    padding-top: 1rem !important;
}

.py-5 {
    padding-bottom: 1.25rem !important;
    padding-top: 1.25rem !important;
}

.py-6 {
    padding-bottom: 1.5rem !important;
    padding-top: 1.5rem !important;
}

.py-7 {
    padding-bottom: 1.75rem !important;
    padding-top: 1.75rem !important;
}

.py-8 {
    padding-bottom: 2rem !important;
    padding-top: 2rem !important;
}

.py-9 {
    padding-bottom: 2.25rem !important;
    padding-top: 2.25rem !important;
}

.py-10 {
    padding-bottom: 2.5rem !important;
    padding-top: 2.5rem !important;
}

.py-11 {
    padding-bottom: 2.75rem !important;
    padding-top: 2.75rem !important;
}

.py-12 {
    padding-bottom: 3rem !important;
    padding-top: 3rem !important;
}

.py-14 {
    padding-bottom: 3.5rem !important;
    padding-top: 3.5rem !important;
}

.py-16 {
    padding-bottom: 4rem !important;
    padding-top: 4rem !important;
}

.py-18 {
    padding-bottom: 4.5rem !important;
    padding-top: 4.5rem !important;
}

.py-20 {
    padding-bottom: 5rem !important;
    padding-top: 5rem !important;
}

.py-22 {
    padding-bottom: 5.5rem !important;
    padding-top: 5.5rem !important;
}

.py-24 {
    padding-bottom: 6rem !important;
    padding-top: 6rem !important;
}

.py-28 {
    padding-bottom: 7rem !important;
    padding-top: 7rem !important;
}

.py-32 {
    padding-bottom: 8rem !important;
    padding-top: 8rem !important;
}

.px-1 {
    padding-left: 0.25rem !important;
    padding-right: 0.25rem !important;
}

.px-2 {
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
}

.px-3 {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
}

.px-4 {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
}

.px-5 {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
}

.px-6 {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

.px-7 {
    padding-left: 1.75rem !important;
    padding-right: 1.75rem !important;
}

.px-8 {
    padding-left: 2rem !important;
    padding-right: 2rem !important;
}

.px-9 {
    padding-left: 2.25rem !important;
    padding-right: 2.25rem !important;
}

.px-10 {
    padding-left: 2.5rem !important;
    padding-right: 2.5rem !important;
}

.px-11 {
    padding-left: 2.75rem !important;
    padding-right: 2.75rem !important;
}

.px-12 {
    padding-left: 3rem !important;
    padding-right: 3rem !important;
}

.px-14 {
    padding-left: 3.5rem !important;
    padding-right: 3.5rem !important;
}

.px-16 {
    padding-left: 4rem !important;
    padding-right: 4rem !important;
}

.px-18 {
    padding-left: 4.5rem !important;
    padding-right: 4.5rem !important;
}

.px-20 {
    padding-left: 5rem !important;
    padding-right: 5rem !important;
}

.px-22 {
    padding-left: 5.5rem !important;
    padding-right: 5.5rem !important;
}

.px-24 {
    padding-left: 6rem !important;
    padding-right: 6rem !important;
}

.px-28 {
    padding-left: 7rem !important;
    padding-right: 7rem !important;
}

.px-32 {
    padding-left: 8rem !important;
    padding-right: 8rem !important;
}

