:root {
    --off-white: #D3DEE3;
    --dark: #002D41;
    --dark-rgb: 0, 46, 66;
    --white: #FFFFFF;
    --white-rgb: 255,255,255;
    --background: var(--white);
    --background-rgb: var(--white-rgb);
    --foreground: var(--dark);
    --foreground-rgb: var(--dark-rgb);
    --red: #EE4450;
    --red-rgb: 237, 69, 80;
    --blue: #17A5B7;
    --blue-rgb: 22, 163, 182;
    --vh: 100vh;
    --header-min: 5.19rem;
    --header-max: 8.5rem;
}
*:focus {
    outline: none;
    opacity: 0.9;
}

[data-theme="light"] {
    --background: var(--white);
    --background-rgb: var(--white-rgb);
    --foreground: var(--dark);
    --foreground-rgb: var(--dark-rgb);
    --vh: 100vh;
}
[data-theme="dark"] {
    --background: var(--dark);
    --background-rgb: var(--dark-rgb);
    --foreground: var(--white);
    --foreground-rgb: var(--white-rgb);
    --vh: 100vh;
}

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}progress,sub,sup{vertical-align:baseline}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}details,main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}textarea{overflow:auto}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}[hidden],template{display:none}
*, *::before, *::after {
    box-sizing: border-box;
}
html,body {
    background: #FFFFFF;
    color: var(--foreground);
    padding: 0;
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
}
button[data-theme-toggle] {
    position: fixed;
    bottom: 1rem;
    right: 1rem;
    z-index: 1000;
    appearance: none;
    border: 0;
    
    display: inline-flex;
    border: 0.2rem solid var(--background);
    border-radius: 2rem;
    padding: 0 2rem;
    min-height: 2rem;
    align-items: center;
    justify-content: center;
    background: var(--foreground);
    color: var(--background);
    text-align: center;
    font-size: 1rem;
    line-height: 2rem;
    letter-spacing: -0.00625rem;

    cursor: pointer;

    transition: all 0.3s ease-in-out;
}
button[data-theme-toggle]::before {
    content: 'switch to dark mode';
}
[data-theme="dark"] button[data-theme-toggle]::before {
    content: 'switch to light mode';
}
button[data-theme-toggle]:hover {
    background-color: var(--red);
    border-color: var(--red);
    color: var(--white);
}
header#nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--header-min);
    overflow: visible;
    z-index: 100;
}
header#nav a {
    color: var(--foreground);
}
header#nav nav {
    transform: translateY(var(--header-max) * -1);
    opacity: 0;
    user-select: none;
    pointer-events: none;
    transition: none;
    width: 0;
    overflow: hidden;
}
header#nav .contact {
    transform: translateY(var(--header-max) * -1);
    opacity: 0;
    user-select: none;
    pointer-events: none;
    transition: none;
    width: 0;
    overflow: hidden;
}
main {
    padding-top: var(--header-min);
    background: var(--background);
    color: var(--foreground);
    min-height: 100%;
}
.container {
    display: flex;
    max-width: 81rem;
    width: 100%;
    padding: 0 1rem;
    position: relative;
    align-items: center;
    justify-content: space-between;
    margin: 0 auto;
    z-index: 6;
}
header .logo {
    position: relative;
    flex-grow: 1;
}
header .logo svg .tlc {
    fill: var(--foreground);
}
header .container {
    height: 100%;
    justify-content: space-between;
}
header#nav .subnav {
    display: none;
}
header .mobile a {
    display: block;
    width: 3rem;
    position: relative;
    height: 3rem;
}
header .mobile a span,
header .mobile a::before,
header .mobile a::after {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1);
    transition: transform 0.15s ease-in-out;
    width: 0.4rem;
    height: 0.4rem;
    overflow: hidden;
    border-radius: 50%;
    background: var(--foreground);
}
header .mobile a::before {
    margin-left: -0.863125rem;
}
header .mobile a::after {
    margin-left: 0.863125rem;
}
header .mobile a:hover span,
header .mobile a:focus span,
header .mobile a:active span,
header .mobile a:hover::before,
header .mobile a:focus::before,
header .mobile a:active::before,
header .mobile a:hover::after,
header .mobile a:focus::after,
header .mobile a:active::after {
    transform: translate(-50%, -50%) scale(1.2);
}
.scrolllogo {
    position: fixed;
    top: 0;
    left: 0;
    transform: translate(-50%, -100%);
}
.toplogo svg {
    height: auto;
    width: 15rem;
    margin: 0;
    display: block;
    max-width: 100%;
}
a {
    color: var(--background);
    text-decoration: none;
}
footer#footer {
    background: #FFF;
    padding: 3.375rem 1rem;
    border-top: 1.4375rem solid var(--dark);
    position: relative;
    z-index: 6;
}
[data-theme="dark"] footer#footer {
    border-color: var(--blue);
}
footer#footer .container {
    display: flex;
    flex-direction: column;
    color: var(--dark);
}
footer#footer a {
    color: var(--dark);
    transition: color 0.2s ease-in-out;
}
footer#footer a:hover,
footer#footer a:focus,
footer#footer a:active {
    color: var(--red);
}
footer#footer .logo {
    padding-bottom: 2.3125rem;
}
footer#footer .logo svg {
    width: 24.1875rem;
    height: auto;
    max-width: 90%;
}
footer#footer .bigfoot,
footer#footer .details {
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: start;
    width: 100%;
}
footer#footer .bigfoot .contact,
footer#footer .bigfoot .contact address,
footer#footer .bigfoot .contact a {
    text-align: left;
    font-style: normal;
    font-size: 1.125rem;
    line-height: 1.75rem;
    letter-spacing: 0;
    padding: 0;
    margin: 0;
    display: block;
}
footer#footer .bigfoot .contact {
    padding-bottom: 3.9375rem;
}
footer#footer nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
footer#footer nav ul a {
    font-size: 1rem;
    text-decoration: underline;
    line-height: 2.8125rem;
}
.accreditations {
    text-align: center;
    padding-bottom: 4.1875rem;
}
.accreditations img {
    display: inline-block;
    width: 18.75rem;
    max-width: 100%;
    height: auto;
    aspect-ratio: 303 / 82;
}

.home-blue,
.home-red {
    height: auto;
    position: fixed;
    user-select: none;
    pointer-events: none;
    z-index: 5;
    /* opacity: 0; */
}

@keyframes floatBlue {
	0% {
		transform: translateY(-0.5rem) translateX(5%);
	}
	50% {
		transform: translateY(0) translateX(5.5%);
	}
	100% {
		transform: translateY(-0.5rem) translateX(5%);
	}
}
@keyframes floatRed {
	0% {
		transform: translateY(0) translateX(-20.5%);
	}
	50% {
		transform: translateY(0.5rem) translateX(-20%);
	}
	100% {
		transform: translateY(0) translateX(-20.5%);
	}
}
.home-blue {
    width: clamp(10.7rem, 35vw, 35vh);
    max-width: 40.625rem;
    right: 0;
    top: 50%;
    transform: translateY(-0.5rem) translateX(5%);
	animation: floatBlue 4.7s ease-in-out infinite;
}
.home-red {
    width: clamp(6.75rem, 25vw, 25vh);
    max-width: 25.75rem;
    left: 0;
    top: calc(5rem + 5%) ;
    transform: translateY(0) translateX(-20.5%);
	animation: floatRed 6s ease-in-out infinite;
}

.mobile-overlay {
    display: none;
}
.mobile-menu-active .mobile-overlay {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    text-align: center;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--off-white);
    color: var(--dark);
    padding: 6.24vh 1rem;
    z-index: 1001;
}
[data-theme="dark"].mobile-menu-active .mobile-overlay {
    background-color: var(--dark);
    color: var(--off-white);
}

.mobile-overlay .contact a {
    font-size: 1.875rem;
    line-height: 2.1875rem;
    letter-spacing: -0.006875rem;
    color: var(--red);
    text-decoration: none;
    display: block;
}
.mobile-overlay .contact a:hover,
.mobile-overlay .contact a:active,
.mobile-overlay .contact a:focus {
    text-decoration: underline;
}
.mobile-overlay .contact a:first-child {
    font-weight: 700;
}
.mobile-overlay nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.mobile-overlay nav ul li {
    padding-bottom: 1.5625rem;
}
.mobile-overlay nav ul li:last-child {
    padding-bottom: 0;
}
.mobile-overlay nav ul a {
    color: var(--blue);
    transform: color 0.3s ease-in-out;
    font-size: 3.25rem;
    line-height: 3.6875rem;
    letter-spacing: -0.01125rem;
    text-decoration: none;
}
.mobile-overlay nav ul a.active,
.mobile-overlay nav ul a:hover,
.mobile-overlay nav ul a:focus,
.mobile-overlay nav ul a:active {
    color: var(--red);
}
.mobile-overlay a.close {
    display: inline-block;
    position: relative;
    width: 3rem;
    height: 3rem;
    transform: scale(1);
    transition: transform 0.15s ease-in-out;
}
.mobile-overlay a.close:hover,
.mobile-overlay a.close:focus,
.mobile-overlay a.close:active {
    transform: scale(1.2);
}
.mobile-overlay a.close span {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-0.2rem, -0.2rem) scale(1);
    transition: transform 0.15s ease-in-out;
    width: 0.4rem;
    height: 0.4rem;
    overflow: hidden;
    border-radius: 50%;
    background: var(--foreground);
}
.mobile-overlay a.close span:nth-of-type(1) {
    transform: translate(-0.7rem, -0.7rem) scale(1);
}
.mobile-overlay a.close span:nth-of-type(2) {
    transform: translate(0.3rem, -0.7rem) scale(1);
}
.mobile-overlay a.close span:nth-of-type(3) {
    transform: translate(-0.7rem, 0.3rem) scale(1);
}
.mobile-overlay a.close span:nth-of-type(4) {
    transform: translate(0.3rem, 0.3rem) scale(1);
}

.buttons {
    width: 100%;
    text-align: center;
}
.btn {
    display: inline-flex;
    border: 0.2rem solid var(--blue);
    border-radius: 2.25rem;
    padding: 0 2.5rem;
    min-height: 3.6rem;
    align-items: center;
    justify-content: center;
    background: var(--blue);
    color: var(--white);
    text-align: center;
    font-size: 1.8rem;
    line-height: 1;
    letter-spacing: -0.00625rem;
    transition: border-color 0.1s ease-in-out, color 0.1s ease-in-out, background-color 0.1s ease-in-out, transform 0.1s ease-in-out;
    padding-bottom: 0.3rem;
    transform: translate(0rem, 0rem);
}
.buttons .btn {
    width: 100%;
    margin: 0 1rem 1rem;
    max-width: 20rem;
}
.btn.cta {
    background: var(--red);
    border-color: var(--red);
}
.btn:hover,
.btn:focus,
.btn:active,
.btn.cta:hover,
.btn.cta:focus,
.btn.cta:active {
    border-color: var(--foreground);
    background-color: var(--foreground);
    color: var(--background);
    transform: translate(0.1rem, -0.1rem);
}

header#nav,
main.home {
    background-color: var(--off-white);
}
[data-theme="dark"] header#nav,
[data-theme="dark"] main.home {
    background-color: var(--dark);
}
#hero {
    min-height: 50vh;
    text-align: center;
    background-image: url(../img/homeherobg.jpg);
    background-repeat: no-repeat;
    background-position: bottom center;
    background-size: contain;
    background-color: var(--off-white);
}
[data-theme="dark"] #hero {
    background-image: url(../img/homeherobg-dark.jpg);
    background-color: var(--dark);
}
#hero .container {
    flex-direction: column;
    align-items: start;
    text-align: center;
    z-index: 6;
}
#hero p {
    width: 100%;
    order: 4;
    max-width: 20rem;
    margin: 0 auto 1rem;
    font-size: 1.125rem;
    line-height: 1.5rem;
    letter-spacing: 0;
}
p.big {
    order: 2;
    font-weight: 700;
    font-size: 1.5rem;
    line-height: 1.75rem;
    letter-spacing: 0.005625rem;
}
h1 {
    width: 100%;
    text-align: center;
    font-size: 2.25rem;
    font-size: clamp(2.25rem, 9.375vw, 9.125rem);
    line-height: 2.25rem;
    line-height: clamp(2.25rem, 9.375vw, 10.4375rem);
    letter-spacing: -0.008125rem;
    letter-spacing: clamp(-0.008125rem, -0.0346vw, -0.0325rem);
    font-weight: 200;
    margin-bottom: 1.875rem;
    order: 1;
    margin: 1.125rem auto 3rem;
}
h1 em {
    display: none;
}
h1 span {
    display: block;
    position: relative;
    z-index: 6;
}
h1 span:last-child {
    font-weight: 700;
}
#hero .buttons {
    order: 3;
}

.container img {
    max-width: 100%;
    height: auto;
}

#about .about-creds {
    text-align: center;
    background: var(--white);
    color: var(--dark);
}
#about .about-creds .container img {
    width: 100%;
    max-width: 10.5rem;
    margin: 0 auto 1rem;
}
#about .about-creds .cred {
    padding-left: 1rem;
    padding-right: 1rem;
}
#about .container.about {
    flex-direction: column;
}
#about .container.about>div:first-child {
    order: 2;
}
#about .container.about>div:last-child {
    order: 1;
}
#about p {
    margin: 0 auto 1.5rem;
}
#about p.big {
    font-weight: 700;
    margin: 0 auto 3rem;
}
#about .container.about>div {
    margin: 0 auto 3rem;
}

h2 {
    font-size: clamp(1.8rem, 4vw, 3.375rem);
    line-height: 1.3;
    letter-spacing: 0rem;
    font-weight: 700;
    margin-bottom: 1em;
    width: 100%;
}
h3 {
    font-size: clamp(1rem, 2vw, 1.5rem);
    line-height: 1.3;
    letter-spacing: 0rem;
    font-weight: 700;
    margin-bottom: 1em;
    width: 100%;
}