feat: initial import

This commit is contained in:
Iain Learmonth 2026-01-10 13:42:14 +00:00
commit 03ab1091b1
50 changed files with 1146 additions and 0 deletions

63
assets/css/contact.scss Normal file
View file

@ -0,0 +1,63 @@
@use "hugo:vars" as v;
.contact-page {
margin-bottom: 2rem;
h3, h4 {
margin-top: 3rem;
margin-bottom: 0.4rem;
& + * {
margin-top: 0;
}
}
address {
white-space: pre;
font-style: normal;
}
form {
input:not([type=checkbox]),
textarea {
min-width: 425px;
}
label {
display: block;
}
button {
width: fit-content;
min-width: 100px;
max-height: 55px;
border-radius: 6px;
padding: 13px 20px;
background-color: v.$color_primary;
color: v.$color_primary_contrast;
display: flex;
align-items: center;
justify-content: center;
&:hover {
opacity: 0.7;
cursor: pointer;
}
}
}
}
.contact-method {
display: flex;
align-items: center;
flex-direction: column;
padding: 0 20px;
}
.contact-method__name {
color: v.$color_tertiary;
margin-bottom: 0.25rem;
}
.contact-method__content {
color: v.$color_primary;
font-size: 1.118rem;
}

View file

@ -0,0 +1,35 @@
@use "hugo:vars" as v;
.flex-section {
margin: 48px 95px;
}
.flex-section__title {
font-family: "Assistant";
font-size: 31px;
font-weight: 400;
background-clip: text;
background-image: linear-gradient(to right, rgb(1, 72, 111), rgb(0, 168, 112));
color: transparent;
text-align: center;
}
.flex-section__content {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
justify-content: space-around;
font-family: "Assistant";
font-size: 17px;
font-weight: 400;
max-width: v.$max_content_width;
margin-left: auto;
margin-right: auto;
@media (max-width: v.$bp_mobile) {
&>* {
flex: 0 0 100%;
}
}
}

104
assets/css/footer.scss Normal file
View file

@ -0,0 +1,104 @@
@use "hugo:vars" as v;
footer {
border-top: 1px solid #D9E2EF;
background-color: #F1F4F8;
}
.footer__content {
max-width: v.$max_content_width;
display: flex;
text-align: start;
flex-wrap: wrap;
gap: 4px;
align-items: start;
justify-content: start;
padding: 20px 1.25rem;
margin-top: 1rem;
margin-left: auto;
margin-right: auto;
margin-bottom: 0 auto 1rem auto;
font-family: "Assistant";
font-size: 17px;
font-weight: 500;
.footer__column {
flex: 1 1 33%;
}
.footer__column-right-aligned {
flex: 1 1 33%;
justify-items: end;
a {
display: block;
}
}
.footer__logo {
flex: 0 0 250px;
max-width: 250px;
}
.footer__address {
font-style: normal;
color: v.$color_tertiary;
white-space: pre;
margin-bottom: 1rem;
}
.footer__duns {
color: v.$color_muted;
white-space: pre;
font-size: 0.88rem;
margin-bottom: 1rem;
}
.footer__menu__title {
color: v.$color_tertiary;
display: block;
text-transform: uppercase;
margin: 0 0 0.5rem 0;
}
.footer__menu__link {
display: block;
color: v.$color_muted;
}
.footer__menu__caption {
color: v.$color_tertiary;
display: block;
font-size: 0.59rem;
}
.footer__menu__logo {
display: block;
max-width: 180px;
margin: 16px 0;
}
.footer__menu__link__icon {
width: 0.9rem;
height: 0.9rem;
}
.footer__menu__link+.footer__menu__title {
margin-top: 1rem;
}
.footer__legal {
margin-top: 2rem;
color: v.$color_tertiary;
font-size: 0.88rem;
flex: 0 0 100%;
white-space: pre-wrap;
a {
color: v.$color_primary;
}
a:hover {
text-decoration: underline;
}
}
}

View file

@ -0,0 +1,59 @@
@use "hugo:vars" as v;
.full-section {
padding: 48px 95px;
display: flex;
justify-content: center;
&>div {
flex: 0 0 100%;
box-sizing: border-box;
max-width: v.$max_content_width;
}
}
.full-section__content {
font-family: "Assistant";
font-size: 17px;
font-weight: 400;
color: v.$color_panel_text;
background: v.$color_panel_background;
padding: 34px;
&>h2 {
text-align: center;
margin-top: 0;
}
ul li {
float: left;
flex: 0 0 33%;
@media (max-width: v.$bp_mobile) {
flex: 0 0 100%;
}
color: v.$color_secondary;
font-size: 1rem;
margin-bottom: 16px;
.li__icon {
width: 20.75px;
height: 20.75px;
position: relative;
top: 4px;
margin-right: 2px;
padding: 4px;
border-radius: 50%;
background-color: rgba(v.$color_secondary, 0.1);
box-sizing: border-box;
}
}
ul {
display: flex;
flex-direction: row;
list-style-type: none;
flex-wrap: wrap;
}
}

View file

@ -0,0 +1,22 @@
@use "hugo:vars" as v;
.half-section {
padding: 48px 95px;
display: flex;
justify-content: center;
&>div {
flex: 0 0 50%;
box-sizing: border-box;
max-width: calc(v.$max_content_width / 2);
}
}
.half-section__content {
font-family: "Assistant";
font-size: 17px;
font-weight: 400;
color: v.$color_panel_text;
background: v.$color_panel_background;
padding: 34px;
}

57
assets/css/header.scss Normal file
View file

@ -0,0 +1,57 @@
@use "hugo:vars" as v;
.header__content {
margin-bottom: 0 auto 1rem auto;
max-width: v.$max_content_width;
display: flex;
text-align: center;
flex-wrap: wrap;
gap: 4px;
align-items: center;
justify-content: start;
padding: 20px 1.25rem;
margin-left: auto;
margin-right: auto;
font-family: "Assistant";
font-size: 17px;
font-weight: 500;
.header__logo {
flex: 0 0 250px;
max-width: 250px;
}
.header__spacer {
flex: 1 1 auto;
}
.header__button--text {
flex: 0 0 auto;
color: v.$color_tertiary;
padding: 8px 24px;
}
.header__button {
flex: 0 0 auto;
max-height: 55px;
border-radius: 6px;
padding: 13px 20px;
background-color: v.$color_secondary;
color: v.$color_secondary_contrast;
display: flex;
align-items: center;
justify-content: center;
&:hover {
opacity: 0.7;
cursor: pointer;
}
}
.header__button__icon {
height: 17px;
}
}

114
assets/css/main.scss Normal file
View file

@ -0,0 +1,114 @@
@use "hugo:vars" as v;
html,
body {
font-size: v.$text_size;
}
body {
color: #222;
font-family: sans-serif;
line-height: 1.5;
margin: 0rem;
}
h1 {
font-size: 2.82rem;
font-weight: 400;
line-height: 1.2;
}
h2 {
font-size: 1.9375rem;
font-weight: 400;
}
h3 {
font-size: 1.235rem;
font-weight: 400;
}
h6 {
font-size: 0.706rem;
font-weight: 400;
text-transform: uppercase;
}
a {
text-decoration: none;
color: currentColor;
}
.no-top-margin {
margin-top: 0;
}
.no-bottom-margin {
margin-bottom: 0;
}
.divider {
width: 100%;
height: 5px;
margin: 0;
padding: 0;
background: linear-gradient(to right, v.$color_gradient_start, v.$color_gradient_end);
}
.primary-button {
width: fit-content;
min-width: 100px;
max-height: 55px;
border-radius: 6px;
padding: 13px 20px;
background-color: v.$color_primary;
color: v.$color_primary_contrast;
display: flex;
align-items: center;
justify-content: center;
&:hover {
opacity: 0.7;
cursor: pointer;
}
}
.primary-button__icon {
margin-left: 12px;
height: 17px;
}
main {
color: v.$color_primary;
.main__content {
max-width: v.$max_content_width;
margin-left: auto;
margin-right: auto;
padding: 1rem 1.25rem;
}
}
.page__title {
font-size: 2.53rem;
margin-bottom: 8px;
color: black;
}
.page__author {
font-size: 0.8rem;
color: v.$color_tertiary;
margin-bottom: 1rem;
}
.page__date {
color: v.$color_tertiary;
&::after {
display: block;
content: " ";
width: 100%;
height: 1px;
background-color: v.$color_hr;
margin: 32px 0px;
}
}

31
assets/css/team.scss Normal file
View file

@ -0,0 +1,31 @@
@use "hugo:vars" as v;
.team-member {
font-family: "Assistant";
font-size: 17px;
font-weight: 400;
display: flex;
align-items: center;
flex-direction: column;
padding: 0 20px;
margin-bottom: 2rem;
}
.team-member__photo {
width: 100%;
max-width: 300px;
aspect-ratio: 1;
border-radius: 50%;
background-color: lightblue;
}
.team-member__name {
font-weight: 700;
}
.team-member__education {
font-size: 13px;
font-variant: small-caps;
}
.team-member__pronoun {}