@font-face{
    font-family: "Riposte-Medium";
    src: url("/assets/fonts/Riposte-Medium.eot");
    src: url("/assets/fonts/Riposte-Medium.eot?#iefix")format("embedded-opentype"),
	     url("/assets/fonts/Riposte-Medium.woff")format("woff"),
 	     url("/assets/fonts/Riposte-Medium.woff2")format("woff2"),
	     url("/assets/fonts/Riposte-Medium.ttf")format("truetype"),
	     url("/assets/fonts/Riposte-Medium.svg#Riposte-Medium")format("svg");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face{
    font-family: "Roobert";
    src: url("/assets/fonts/RoobertSemiMono-Regular.otf");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}


* {
    box-sizing: border-box;
}

body {
    min-height: 0;
    min-width: 0;
    margin: 0;
    padding: 0;
    font-family: var(--body-font-family);
    font-size: var(--body-font-size);
    line-height: var(--body-line-height);
    background-color: var(--body-background-colour);
    color: var(--body-colour);
    transition: all 0.3s ease-out;
    overflow-x: hidden;
}

h1 {
    color: var(--header1-colour);
    font-family: var(--header1-font-family);
    font-size: var(--header1-font-size);
    line-height: var(--header1-line-height);
    text-transform: var(--header1-transform);
    font-weight: var(--header1-weight);
}

h2 {
    color: var(--header2-colour);
    font-family: var(--header2-font-family);
    font-size: var(--header2-font-size);
    line-height: var(--header2-line-height);
    text-transform: var(--header2-transform);
    font-weight: var(--header2-weight);
}

h3 {
    color: var(--header3-colour);
    font-family: var(--header3-font-family);
    font-size: var(--header3-font-size);
    line-height: var(--header3-line-height);
    text-transform: var(--header3-transform);
    font-weight: var(--header3-weight);
}

h4 {
    color: var(--header4-colour);
    font-family: var(--header4-font-family);
    font-size: var(--header4-font-size);
    line-height: var(--header4-line-height);
    text-transform: var(--header4-transform);
    font-weight: var(--header4-weight);
}

.secondary-colour {
    color: var(--secondary-colour);
}

a {
    color: var(--primary-colour);
    display: inline-block;
    position: relative;
    text-decoration: none;
}

img {
    width: 100%;
    height: auto;
}

.container {
    width: 90%;
    max-width: 1800px;
    margin: 0 auto;
}

.responsive-container {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
}

.responsive-container iframe,
.responsive-container embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

div>*:first-child,
section>*:first-child,
main>*:first-child,
article>*:first-child {
    margin-top: 0;
}

div>*:last-child,
section>*:last-child,
main>*:last-child,
article>*:last-child {
    margin-bottom: 0;
}

a.button,
button,
.btn {
    position: relative;
    text-transform: uppercase;
    display: inline-block;
    border: none;
    outline: none;
    text-align: center;
    font-size: 1rem;
    text-decoration: none;
    display: block;
    background-color: var(--primary-colour);
    /*background: linear-gradient(to bottom right, var(--primary-colour), var(--secondary-colour));*/
    color: var(--primary-colour);
    padding: calc(var(--spacing) / 4) var(--spacing);
    cursor: pointer;
    border-radius: calc(var(--inner-spacing) / 4);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease-out;
    overflow: hidden;
}

a.button.primary,
button.primary,
.btn-primary {
    background: var(--primary-colour);
    color: var(--body-background-colour) !important;
}

a.button.secondary,
button.secondary,
.btn-secondary {
    background: var(--secondary-colour);
    color: var(--body-background-colour) !important;
}

button.fc-button,
button.tertiary,
a.button.tertiary,
a.button.info,
button.info,
.btn-info,
.btn-danger {
    background: var(--fourth-colour);
    color: var(--body-colour) !important;
}

.btn-default {
    background: var(--tertiary-colour);
    color: var(--body-colour) !important;
}

button.danger,
a.button.danger,
.btn-danger {
    background: #f00;
    color: #000;
}

button.warning,
a.button.warning,
.btn-warning {
    background: var(--secondary-colour);
    color: var(--body-background-colour);
    font-size: 1rem;

}

a.button:after,
button:after {
    content: none;
}

a.button:hover,
button:hover {
    color: var(--body-background-colour);
    /*transform: translateY(calc(var(--inner-spacing) * -0.25)) scale(1.02);*/
}

.submitting a.button,
.loading a.button,
a.button.loading,
.submitting button,
.loading button,
button.loading {
    cursor: not-allowed;
    opacity: 0.5;
}

.submitting a.button:after,
.loading a.button:after,
a.button.loading:after,
.submitting button:after,
.loading button:after,
button.loading:after {
    content: '';
    display: inline-block;
    border: 2px solid hsl(222, 100%, 95%);
    border-left-color: rgb(230, 237, 255);
    border-left-color: hsl(243, 80%, 62%);
    border-radius: 50%;
    width: calc(var(--inner-spacing) / 2);
    height: calc(var(--inner-spacing) / 2);
    animation: donut-spin 1.2s linear infinite;
    position: absolute;
    top: 37%;
    right: var(--inner-spacing);
}

.submitting-finished a.button:after,
.submitting-finished button:after {
    content: '✓';
    display: inline-block;
    animation: bounceInBottom 5s ease-in-out;
    position: absolute;
    right: var(--inner-spacing);
    top: 20%;
    opacity: 0;
}

@keyframes donut-spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes bounceInBottom {
    0% {
        transform: translateY(100%);
    }

    15% {
        opacity: 1;
        transform: translateY(0%);
    }

    90% {
        opacity: 1;
        transform: translateY(0%);
    }

    100% {
        opacity: 0;
        transform: translateY(-100%);
    }
}

@keyframes scale {
    0% {
        transform: scale(1);
    }

    100% {
        transform: scale(1.2);
    }
}

.text-columns {
    columns: 2;
}

.text-columns.three-columns {
    columns: 3;
}

.text-columns>p {
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    break-inside: avoid;
}

@media (max-width: 768px) {

    .text-columns,
    .text-columns-three-columns {
        columns: 1;
    }
}

.panel {
    margin-bottom: var(--inner-spacing);
    background: linear-gradient(to bottom right, rgba(255, 255, 255, 0.95), rgba(240, 240, 240, 0.6));
    border-radius: 1px;
    box-shadow: rgba(0, 0, 0, 0.05) 2px 2px var(--inner-spacing);
    backdrop-filter: blur(5px);
    height: 100%;
}

.panel .content {
    padding: var(--inner-spacing);
}

.panel h1,
.panel h2 {
    color: var(--body-colour);
}

.panel a {
    color: var(--body-colour);
}

.panel>img {
    aspect-ratio: 1/1;
    object-fit: cover;
}

.panel a.button {
    color: var(--body-background-colour);
}


form fieldset {
    margin-bottom: var(--inner-spacing);
}

form fieldset>legend {
    font-size: 1.1rem;
}

form label {
    display: inline-block;
    margin-top: calc(var(--inner-spacing) / 2);
}

form .label {
    margin-top: calc(var(--inner-spacing) / 2);
}

form .label+label {
    margin-top: 0;
}

form fieldset input:last-child,
form fieldset>.label:last-child {
    margin-bottom: calc(var(--inner-spacing) / 2);
}

.radio label {
    margin-top: 0;
}

label {
    font-size: calc(var(--body-font-size) * 0.75);
    position: relative;
    display: inline-block;
}

input,
textarea,
select,
#card-element {
    padding: calc(var(--inner-spacing) / 2);
    width: 100%;
    display: block;
    font-size: 1rem;
    background-color: var(--body-background-colour);
    border: rgba(100, 100, 100, 0.5) 1px solid;
    transition: all 0.3s ease-out;
    box-shadow: rgba(0, 0, 0, 0.1) 0.25rem 0.25rem 0.25rem;
    font-family: var(--body-font-family);
}

input[type="checkbox"],
input[type="radio"] {
    padding: 0;
    width: auto;
    display: inline-block;
    position: relative;
    margin-right: calc(var(--inner-spacing) / 2);
}

input:focus,
textarea:focus,
select:focus,
#card-element.StripeElement--focus {
    box-shadow: rgba(0, 0, 0, 0.1) 0rem 0rem 0rem;
    outline: none;
}

.tabs .tab-menu {}

.tabs .tab-content {}

.tabs ul.tab-menu {
    display: inline-block;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 0;
    padding-bottom: calc(var(--inner-spacing) / 2);
    margin-bottom: 0;
}

.tabs ul.tab-menu li {
    display: inline-block;
}

.tabs ul.tab-menu li a {
    display: inline-block;
    padding: calc(var(--inner-spacing) / 2);
    text-align: center;
    cursor: pointer;
    font-size: 1rem;
}

.tabs ul.tab-menu li a.active {}

.tabs ul.tab-menu li a.active:after {
    transform: scaleX(1);
}

.tabs .tab-content {
    display: none;
    border: #ccc 1px solid;
    padding: var(--inner-spacing);
}

.tabs .tab-content.active {
    display: block;
}

table {
    width: 100%;
    border-spacing: 0;
}

table td,
table th {
    padding: calc(var(--inner-spacing) / 2);
    text-align: left;
}

table th {
    background: var(--body-colour);
    color: var(--body-background-colour);
    font-weight: normal;
}

table th a {
    color: var(--body-background-colour) !important;
}

table tbody tr:nth-child(even) {
    position: relative;
    background: linear-gradient(to bottom right, var(--fourth-colour-25), var(--tertiary-colour-25));
}


@keyframes inView {
    0% {
        opacity: 0;
        filter: blur(5px);
    }

    100% {
        opacity: 1;
        filter: blur(0px);
    }
}

.in-view {
    opacity: 0;
    filter: blur(5px);
}

.in-view.active {
    animation: inView 1s ease-out;
    animation-fill-mode: forwards;
}

.in-view.in-view-inner {
    opacity: 1;
}


.in-view.in-view-inner>* {
    opacity: 0;
}

.in-view.in-view-inner.active>* {
    animation: inView 1s ease-out;
    animation-fill-mode: forwards;
    opacity: 0;
    filter: blur(5px);
}

.in-view.in-view-inner.active>*:nth-child(1) {
    animation-delay: 0ms;
}

.in-view.in-view-inner.active>*:nth-child(2) {
    animation-delay: 150ms;
}

.in-view.in-view-inner.active>*:nth-child(3) {
    animation-delay: 300ms;
}

.in-view.in-view-inner.active>*:nth-child(4) {
    animation-delay: 450ms;
}

.in-view.in-view-inner.active>*:nth-child(5) {
    animation-delay: 600ms;
}

.in-view.in-view-inner.active>*:nth-child(6) {
    animation-delay: 750ms;
}

.in-view.in-view-inner.active>*:nth-child(7) {
    animation-delay: 900ms;
}

.in-view.in-view-inner.active>*:nth-child(8) {
    animation-delay: 1050ms;
}

.in-view.in-view-inner.active>*:nth-child(9) {
    animation-delay: 1200ms;
}

.in-view.in-view-inner.active>*:nth-child(10) {
    animation-delay: 1350ms;
}

.in-view.in-view-inner.active>*:nth-child(11) {
    animation-delay: 1500ms;
}