/* --------------------- RESET --------------------- */

/* 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;
  margin: 0;
  text-rendering: optimizeLegibility;
}

/* 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;
  color: currentColor;
}

/* 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;
}

a.sorting {
    text-decoration: none !important;
    color: #313131;
    float: right;
}

/* --------------------- VARIABLES --------------------- */

:root {
    /* Colours */
    --primary-color: #061666;
    --secondary-color: #F48435;
    --secondary-dark-color: #F36E20;
    --accent-color: #313131;
    --grey-color: #bcbcbc;
    --light-grey-color: #e8e8e8;
    --error-color: #B30000;
    --mid-gray-color: #BCBCBC;
    --white-color: #ffffff;

    /* Widths */
    --max-container-width: 1280px;
    --mid-container-width: 860px;

    /* Breakpoints */
    --breakpoint-tablet: 960px;

    /* Spacing */
    --space-3xs: clamp(0.25rem, 0.2065rem + 0.2174vi, 0.375rem);
    --space-2xs: clamp(0.5rem, 0.4348rem + 0.3261vi, 0.6875rem);
    --space-xs: clamp(0.75rem, 0.6413rem + 0.5435vi, 1.0625rem);
    --space-sm: clamp(1rem, 0.8696rem + 0.6522vi, 1.375rem);
    --space-md: clamp(1.5rem, 1.3043rem + 0.9783vi, 2.0625rem);
    --space-lg: clamp(2rem, 1.7391rem + 1.3043vi, 2.75rem);
    --space-xl: clamp(3rem, 2.6087rem + 1.9565vi, 4.125rem);
    --space-2xl: clamp(4rem, 3.4783rem + 2.6087vi, 5.5rem);
    --space-3xl: clamp(6rem, 5.2174rem + 3.913vi, 8.25rem);

    /* One-up pairs */
    --space-3xs-2xs: clamp(0.25rem, 0.0978rem + 0.7609vi, 0.6875rem);
    --space-2xs-xs: clamp(0.5rem, 0.3043rem + 0.9783vi, 1.0625rem);
    --space-xs-sm: clamp(0.75rem, 0.5326rem + 1.087vi, 1.375rem);
    --space-sm-md: clamp(1rem, 0.6304rem + 1.8478vi, 2.0625rem);
    --space-md-lg: clamp(1.5rem, 1.0652rem + 2.1739vi, 2.75rem);
    --space-lg-xl: clamp(2rem, 1.2609rem + 3.6957vi, 4.125rem);
    --space-xl-2xl: clamp(3rem, 2.1304rem + 4.3478vi, 5.5rem);
    --space-2xl-3xl: clamp(4rem, 2.5217rem + 7.3913vi, 8.25rem);

    /* Fonts Sizes */
    --step-xs: clamp(0.7813rem, 0.7747rem + 0.0326vi, 0.8rem);
    --step-sm: clamp(0.9375rem, 0.9158rem + 0.1087vi, 1rem);
    --step-md: clamp(1rem, 1rem + 0.2174vi, 1.25rem);
    --step-lg: clamp(1.35rem, 1.2761rem + 0.3696vi, 1.5625rem);
    --step-xl: clamp(1.62rem, 1.5041rem + 0.5793vi, 1.9531rem);
    --step-2xl: clamp(1.944rem, 1.771rem + 0.8651vi, 2.4414rem);
    --step-3xl: clamp(2.3328rem, 2.0827rem + 1.2504vi, 3.0518rem);

    /* Fonts Sizes */
    --fw-reg: 500;
    --fw-bold: 700;

    /* border radius */
    --border-rad-sm: 4px;
    --border-rad-md: 8px;
    --border-rad-lg: 16px;
}

/* --------------------- BASE STYLES --------------------- */

body {
    font-family: "Figtree", Arial, sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-size: 16px;
    line-height: 1.4;
}
h1, h2, h3, h4, h5, h6 {
    font-family: "Quicksand", Arial, sans-serif;
    font-weight: 700;
    font-style: normal;
    color: var(--primary-color);
    margin-top: 0;
}
p {
    font-size: var(--step-md);
    line-height: 1.6;
    max-width: 65ch;
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0.3px;
}
input, input[type=text], textarea, select {
    font-size: var(--step-md);
    border: 2px solid var(--mid-gray-color);
    width: 100%;
    border-radius: var(--border-rad-md);
    padding: 15px 16px;
    margin-top: var(--space-2xs);
    background-color: #fff;
}
input[type=checkbox] {
    width: 24px;
}
select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-position: right 50%;
    background-repeat: no-repeat;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDZFNDEwNjlGNzFEMTFFMkJEQ0VDRTM1N0RCMzMyMkIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDZFNDEwNkFGNzFEMTFFMkJEQ0VDRTM1N0RCMzMyMkIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NkU0MTA2N0Y3MUQxMUUyQkRDRUNFMzU3REIzMzIyQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NkU0MTA2OEY3MUQxMUUyQkRDRUNFMzU3REIzMzIyQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuGsgwQAAAA5SURBVHjaYvz//z8DOYCJgUxAf42MQIzTk0D/M+KzkRGPoQSdykiKJrBGpOhgJFYTWNEIiEeAAAMAzNENEOH+do8AAAAASUVORK5CYII=);
    padding-right: 1.5em
}
select[multiple] {
    background-image: unset;
}

.error {
    color: var(--error-color);
}

input:focus, textarea:focus, select:focus {
    background-color: ivory;
    color: var(--accent-color);
}
label {
    font-size: var(--step-md);
    margin-top: var(--space-sm);
    display: inline-block;
}
.hint {
    font-size: var(--step-sm);
    color: #696969;
    display: block;
    margin-top: var(--space-2xs);
    line-height: 1.3;
}
.btn {
    border: 0 solid var(--accent-color);
    margin-top: var(--space-sm);
    border-radius: var(--border-rad-md);
    padding: 16px 24px;
    font-weight: var(--fw-bold);
    font-size: var(--step-md);
    letter-spacing: 0.5px;
    width: fit-content;
    cursor: pointer;
    transition: background-color .3s cubic-bezier(.19,1,.22,1), border .3s cubic-bezier(.19,1,.22,1), color .3s cubic-bezier(.19,1,.22,1);
    text-decoration: none;
    color: var(--accent-color);
}
.btn:focus {
    outline-offset: 5px;
    outline: 3px solid blue;
}
.btn-primary {
    background-color: var(--secondary-color);
    border: 2px solid var(--secondary-color);
}
.btn-primary:hover, .btn-primary:focus {
    background-color: var(--secondary-dark-color);
}
.btn-secondary {
    background-color: var(--white-color);
    border: 2px solid var(--secondary-color);
}
.btn-secondary:hover, .btn-secondary:focus {
    background-color: var(--light-grey-color);
}
.btn-reversed {
    background-color: var(--primary-color);
    border: 2px solid var(--secondary-color);
    color: var(--white-color);
}
.btn-reversed:hover, .btn-reversed:focus {
    background-color: var(--secondary-color);
    color: var(--primary-color);
}
.btn-link {
    text-decoration: underline;
    padding-inline: 0;
    background-color: transparent;
    font-weight: var(--fw-reg);
}
.btn-link:hover, .btn-link:focus {
    color: var(--primary-color);
}
section {
    width: 100%;
}
.container {
    width: 100%;
    max-width: var(--max-container-width);
    margin-inline: auto;
    padding-inline: 1.8rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.row {
    display: flex;
    flex-direction: column;
    align-content: center;
    align-items: center;
    width: 100%;
}
.row-fixed {
    display: flex;
    flex-direction: row;
    align-content: center;
    align-items: center;
    width: 100%;
}

.column {
    display: flex;
    flex-direction: column;
    width: 100%;
}

header {
    padding-block: var(--space-md);
}
details p {
    margin-top: var(--space-xs);
}

/* --------------------- MODIFIERS --------------------- */
.center {
    text-align: center;
}
.full-width {
    max-width: 100%;
}
.inverse {
    color: var(--white-color)!important;
}
.bold, strong, em {
    font-weight: 600;
}
.reg {
    font-weight: 500;
}
.tight {
    margin-top: 0;
}
.ff-body {
    font-family: "Figtree", Arial, sans-serif;
}
.ff-heading {
    font-family: "Quicksand", Arial, sans-serif;
}
.step-xs {
    font-size: var(--step-xs);
}
.step-sm {
    font-size: var(--step-sm);
}
.step-md {
    font-size: var(--step-md);
}
.step-lg {
    font-size: var(--step-lg);
}
.step-xl {
    font-size: var(--step-xl);
}
.step-2xl {
    font-size: var(--step-2xl);
}
.step-3xl {
    font-size: var(--step-3xl);
}

.flex-gap-3xs {
    gap: var(--space-3xs);
}
.flex-gap-2xs {
    gap: var(--space-2xs);
}
.flex-gap-xs {
    gap: var(--space-xs);
}
.flex-gap-sm {
    gap: var(--space-sm);
}
.flex-gap-md {
    gap: var(--space-md);
}
.flex-gap-lg {
    gap: var(--space-lg);
}
.flex-gap-xl {
    gap: var(--space-xl);
}
.flex-gap-2xl {
    gap: var(--space-2xl);
}
.flex-gap-2xl {
    gap: var(--space-3xl);
}
.flex-stretch {
    align-items: stretch;
}
.mt-3xs {
    margin-top: var(--space-3xs);
}
.mt-2xs {
    margin-top: var(--space-2xs);
}
.mt-xs {
    margin-top: var(--space-xs);
}
.mt-sm {
    margin-top: var(--space-sm);
}
.mt-md {
    margin-top: var(--space-md);
}
.section-pad-block {
    padding-block: var(--space-2xl);
}
.rounded-img {
    border-radius: var(--border-rad-md);
}
.c-primary {
    color: var(--primary-color);
}
.c-gray {
    color: var(--mid-gray-color);
}
.c-accent {
    color: var(--accent-color);
}

/* --------------------- HEADER --------------------- */

.logo {
    display: flex;
    gap: 8px;
    flex-direction: row;
    align-content: center;
    align-items: center;
    color: var(--primary-color);
    font-weight: 600;
    font-size: 22px;
    font-family: "Quicksand", Arial, sans-serif;
    text-decoration: none;
}
.logo span {
    display: block;
    font-size: 18px;
    margin-bottom: -2px;
    color: #F36E20;
    letter-spacing: 0;
    text-align: left;
}

header .navigation {
    display: flex;
    margin-top: var(--space-sm);
    gap: 16px;
}

header .navigation a:link {
    display: inline-block;
    text-decoration: none;
    color: var(--accent-color);
    padding: 8px;
    font-size: var(--step-md);
}

header .navigation a:link:last-of-type {
    margin-right: 0;
}

header .navigation a:visited {
    color: var(--accent-color);
}

header .navigation a.selected {
    border-bottom: 3px solid var(--secondary-color);
}
.skip-to-content-link {
    display: flex;
    justify-content: center;
}
.skip-to-content-link a {
    background: var(--white-color);
    border: 2px solid var(--secondary-color);
    font-size: var(--step-md);
    color: #000000;
    border-radius: var(--border-rad-md);
    outline-offset: 5px;
    outline: 3px solid blue;
    padding: 16px 24px;
    position: absolute;
    transform: translateY(-120%);
    transition: transform 0.3s;
    max-width: fit-content;
}

.skip-to-content-link a:focus {
    transform: translateY(20%);
}

/* --------------------- FOOTER --------------------- */

footer {
    background-color: var(--accent-color);
    color: #fff;
    padding-block: var(--space-2xl);
}
footer .logo {
    margin-bottom: var(--space-md);
}

footer ul {
    list-style-type: none;
    padding-left: 0;
}

footer ul li {
    margin-top: var(--step-md);
}

footer > .row > .column {
    align-items: flex-start;
    height: 100%;
}

footer > .row > .column > .row {
    align-items: flex-start;
}

footer p {
    margin-top: var(--step-md);
}

/* --------------------- HOME --------------------- */

#findAMusicTeacher {
    min-height: 78vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
#findAMusicTeacher p {
    max-width: 55ch;
    text-wrap: balance;
}
#findAMusicTeacher p.hint {
    text-wrap: auto;
}
#findAMusicTeacher label.checkbox {
    display: flex;
    flex-direction: row;
    gap: var(--space-2xs);
    cursor: pointer;
}
#findAMusicTeacher label.checkbox input {
    display: inline-block;
    width: 24px;
    margin: 0;
    cursor: pointer;
}
.search-form {
    max-width: 420px;
    margin-block: var(--space-md);
}
.search-form__actions {
    display: flex;
    justify-content: flex-end;
}

#introduction {
    display: flex;
    background-color: var(--primary-color);
    color: #fff;
    align-content: center;
    align-items: center;
    gap: var(--space-xl);
}

#introduction .column {
    align-content: center;
}

#introduction > .column:last-of-type {
    margin-left: var(--space-lg);
}

#introduction img {
    width: 400px;
}

#introduction p {
    margin-top: var(--step-md);
}

#howToConnect {
    margin-top: var(--space-lg);
    align-content: center;
    align-items: center;
}

.box {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.white-panel {
    border: 1px solid var(--mid-gray-color);
    border-radius: var(--border-rad-sm);
    padding: var(--space-sm);
}
.panel-orange-border {
    border: 1px solid var(--mid-gray-color);
    border-radius: var(--border-rad-md);
    padding: var(--space-md);
    box-shadow: 15px 15px 0 rgba(255, 242, 234, 1);
}
.logos {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    align-content: center;
    justify-content: center;
}

.logos img {
    display: inline-block;
}
.logos .logo-amber {
    max-width: 176px;
}
.logos .logo-rnib {
    max-width: 139px;
}
.logos .logo-arts-council {
    max-width: 340px;
}

#forMusicTeachers {
    background-color: var(--primary-color);
}

#forMusicTeachers .column {
    align-content: center;
}

#forMusicTeachers img {
    max-width: 400px;
}
/* --------------------- ABOUT PAGE --------------------- */

#about-intro .row {
    align-items: flex-start;
}
#about-intro img {
    max-width: 400px;
}

/* --------------------- SEARCH --------------------- */

#search .filters-and-matches {
    align-items: flex-start;
    margin-top: var(--space-lg);
    gap: var(--space-lg);
}

#search .filters {
    display: flex;
    width: 100%;
    background-color: var(--primary-color);
    color: #fff;
    padding: var(--space-md);
    border-radius: var(--border-rad-sm);
    flex-direction: column;
}

#search .filters h2 {
    width: 100%;
    text-align: left;
}

#search h1 {
    display: flex;
    width: 100%;
}

#search .filters form {
    margin: 0;
    padding: 0;
}
#search .filters input[type=submit] {
    margin-bottom: 0;
}

#search .filters label {
    margin-top: var(--step-md);
    display: inline-block;
}

#search .filters input[type=text], #search .filters select {
    border: 2px solid #fff;
    background-color: var(--primary-color);
    color: var(--white-color);
}

#search .matches ul {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    width: 100%;
}

#search .matches .match:first-of-type {
    margin-top: 0;
}

#search .matches .match div:nth-of-type(3) {
    text-align: right;
    display: flex;
    width: auto;
}
#search .matches .match {
    flex-direction: row;
    gap: var(--space-md);
}

#search .matches .match a:link {
    color: var(--accent-color);
}

#search .column-information-and-match-details {
    align-items: flex-start;
}

#search .column-information {
    background-color: #fff;
    display: flex;
    width: 100%;
    margin-top: var(--space-lg);
}

#search .match-details > div {
    display: flex;
}

#search .matches-summary  {
    display: flex;
    width: 100%;
}

#search .matches-summary p {
    text-align: left;
    width: 100%;
    /*margin-left: auto;*/
    /*margin-right: 0;*/
}

#search-details, #search-details-contact, #search, #registration {
    padding-block: var(--space-lg);
}

#search-details .filters {
    display: flex;
    width: 100%;
    margin-top: var(--space-lg);
    background-color: var(--primary-color);
    color: #fff;
    padding: var(--space-lg);
}

#search-details .filters h2 {
    width: 100%;
    text-align: left;
}

#search-details .filters form {
    margin: 0;
    padding: 0;
}

#search-details .filters label {
    margin-top: var(--step-md);
    display: inline-block;
}

#search-details .filters input {
    width: 100%;
    border: 1px solid #fff;
    border-radius: 8px;
    padding: 14px 10px 14px 10px;
    margin-top: var(--step-md);
    background-color: var(--primary-color);
    color: #fff;
}

#search-details .filters select {
    width: 100%;
    border: 1px solid #fff;
    border-radius: 8px;
    padding: 14px 10px 14px 10px;
    margin-top:var(--step-md);
    background-color: var(--primary-color);
    color: #fff;
}


#search-details .filters input[type=submit] {
    background-color: var(--primary-color);
    font-weight: bold;
    margin-top:var(--step-md);
    margin-bottom:var(--step-md);
    border: 1px solid var(--secondary-color);
    border-radius: 8px;
    padding: 20px 24px 20px 24px;
    color: #fff;
}

#search-details .matches {
    margin-top: var(--space-lg);
    display: flex;
    flex-direction: column;
    width: 100%;
}

#search-details .matches .match {
    border: 1px solid var(--accent-color);
    border-radius: 8px;
    padding: 20px 24px 20px 24px;
    margin-top:var(--space-lg);
}

#search-details .matches .match:first-of-type {
    margin-top: 0;
}


#search-details .matches .match p {
    margin-top:var(--step-md);
}

#search-details .matches .match .name {
    font-size: var(--step-xl);
}

#search-details .matches .match div:nth-of-type(3) {
    text-align: right;
    display: flex;
    width: auto;
}

#search-details .matches .match a:link {
    display: inline-block;
    width: 100%;
    color: var(--accent-color);
    background-color: var(--secondary-color);
    font-weight: bold;
    margin-top:var(--step-md);
    margin-bottom:var(--step-md);
    border: 0 solid var(--accent-color);
    border-radius: 8px;
    padding: 20px 24px 20px 24px;
    text-decoration: none;
    text-align: center;
}

#search-details .matches .match .column:last-of-type {
    width: 100%;
}

#search-details .matches .match a:link {
    color: var(--accent-color);
}

#search-details .column-information-and-match-details {
    align-items: flex-start;
    flex-direction: column;
}

#search-details .column-information {
    display: flex;
    width: 100%;
}

#search-details .match-details {
    display: flex;
    flex-direction: column;
    width: 100%;
}

#search-details .match-details ul {
    list-style: none;
    padding: 0;
}
#search-details .match-details li {
    display: inline-block;
    margin: 0;
}
#search-details .match-details li:not(:last-of-type):after {
    content: ", ";
}

#search-details .match-details > div {
    display: flex;
    align-items: start;
}
#search-details .match-details ul.list {
    list-style: outside;
    list-style-type: disc;
}
#search-details .match-details ul.list li {
    display: list-item;
    font-size: 1.125rem;
    padding-left: 0.5rem;
    margin-left: 1rem;
    margin-bottom: 0.5rem;
}
#search-details .match-details ul.list li::marker {
    color: #061666;
}
#search-details .match-details ul.list li:after {
    content: none;
}
#search-details .match-details .button {
    width: 100%;
    background-color:var(--secondary-color);
    font-weight: bold;
    margin-top:var(--step-md);
    margin-bottom:var(--step-md);
    border-radius: 8px;
    padding: 20px 24px 20px 24px;
    color: #fff;
    text-decoration: none;
    text-align: center;
}

hr {
    height: 1px;
    margin: 10px 0;
    background-color: var(--light-grey-color);
    border: 0;
}
.safeguard-panel header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-block: 0;
}
.safeguard-panel p {
    font-size: var(--step-sm);
}

/*  search-details-contact  */
.full-height {
    height: 100vh;
}

#search-details-contact .filters {
    display: flex;
    width: 100%;
    margin-top: var(--space-lg);
    background-color: var(--primary-color);
    color: #fff;
    padding: var(--space-lg);
}

#search-details-contact h2 {
    width: 100%;
    text-align: left;
}

#search-details-contact form {
    margin: 0;
    padding: 0;
}

#search-details-contact label {
    margin-top: var(--step-md);
    display: inline-block;
}

#search-details-contact .column-information-and-match-details {
    align-items: flex-start;
}

#search-details-contact .column-information {
    display: flex;
    width: 100%;
}

#search-details-contact .match-details {
    display: flex;
    flex-direction: column;
}

#search-details-contact .match-details > div {
    display: flex;
}

#search-details-contact .match-details .button {
    width: 100%;
    background-color:var(--secondary-color);
    font-weight: bold;
    margin-top:var(--step-md);
    margin-bottom:var(--step-md);
    border-radius: 8px;
    padding: 20px 24px 20px 24px;
    color: #fff;
    text-decoration: none;
    text-align: center;
}

#search-details-contact .match-details p {
    margin: 0;
    padding: 0;
}

#search-details-contact .match-details .divider {
    height: auto;
    border-bottom: 1px solid var(--grey-color);
    margin: 10px 0;
}

#search-details-contact .buttons {
    justify-content: space-between;
}

#search-details-contact input[type=checkbox] {
    width: auto;
    display: inline-block;
    margin-right: 16px;
    margin-top: 0;
    padding: 8px;
}

.pagination {
    display: flex;
    flex-direction: row;
}

.pagination .column {

}

.pagination-button {

}

.pagination-button {
    text-decoration: none;
    margin-top: var(--space-md);
    padding-bottom: var(--space-3xs);
    border-bottom: 4px solid var(--secondary-color);
    color: var(--accent-color);
    font-size: var(--step-md);
}

.pagination-button-disabled {
    pointer-events: none;
    color: var(--grey-color);
    border-bottom: 4px solid var(--grey-color);
}

.pagination > div.column:first-of-type a {
    margin-left: 0;
    margin-right: auto;
}

.pagination > div.column:last-of-type a {
    margin-left: auto;
    margin-right: 0;
}
#error-page {
    min-height: 60vh;
}

/* --------------------- MODAL --------------------- */

.modal::backdrop {
    background-color: rgba(0, 0, 0, 0.5);
}

.modal {
    border-radius: 8px;
    background-color: #fefefe;
    margin: auto;
    padding: 1rem;
    border: 1px solid #888;
    width: 90%;
    max-width: 680px;
}
.modal h2 {
    font-size: var(--step-xl);
}
.modal p {
    font-size: 13px;
}
.modal .modal-actions {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.close {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}

.close:hover, .close:focus {
    color: black;
    text-decoration: none;
    cursor: pointer;
}
@media (min-width: 960px) {
    .modal {
        padding: 2rem;
        width: 80%;
    }
}
@media (min-width: 500px) {
    .modal .modal-actions {
        flex-direction: row;
    }
    .modal p {
        font-size: 15px;
    }
}

/* --------------------- BATCH UPLOAD --------------------- */


#batchUpload {
    width: 600px;
    margin: 0 auto;
}

#batchUpload label {
    margin-top: var(--step-md);
    display: inline-block;
}

#batchUpload select {
    width: 100%;
    border: 1px solid var(--accent-color);
    border-radius: 8px;
    padding: 14px 10px 14px 10px;
    margin-top:var(--step-md);
}

#batchUpload .details {
    width: 100%;
    border: 1px solid var(--accent-color);
    border-radius: 8px;
    padding: 14px 10px 14px 10px;
    margin-top:var(--step-md);
    background-color: #000;
    color: #e15198;
}

#batchUpload .details-scrollable {
    width: 100%;
    height: 150px;
    overflow: scroll;
}

.logo-center {
    text-align: center;
    margin: 0 auto;
}

/* --------------------- REGISTRATION --------------------- */

.registration-container {
    align-items: flex-start;
    margin-top: var(--space-lg);
}
#registration .faqs {
    border: 1px solid var(--grey-color);
    border-radius: var(--border-rad-sm);
    padding: var(--space-sm);
}

#registration .faq {
    border-top: 1px solid var(--grey-color);
    margin-top: var(--space-md);
    padding-top: var(--space-md);
}
#registration details {
    border-top: 1px solid var(--grey-color);
    margin-top: var(--space-md);
    padding-top: var(--space-md);
    font-size: var(--step-md);
}

#registration .faq p:last-of-type {
    margin-top: var(--space-2xs);
}
#registration .success-message {
    border: 2px solid green;
    border-radius: 8px;
    padding: 1rem;
    margin-bottom: 3rem;
}
#registration .warning-message {
    border: 2px solid orange;
    border-radius: 8px;
    padding: 1rem;
}

#registration .registration-form {
    border: 1px solid var(--grey-color);
    border-radius: 5px;
    padding: var(--space-md);
}

#registration .registration-form p {
    margin-top: var(--space-2xs);
}
#registration .registration-form fieldset {
    margin-top: var(--space-md);
    border-radius: 8px;
}
#registration .registration-form fieldset legend {
    font-size: var(--step-md);
}
#registration .registration-form fieldset legend span {
    font-size: var(--step-sm);
    color: #696969;
}
#registration .registration-form fieldset div {
    display: flex;
}
#registration .registration-form fieldset div label {
    line-height: 1.4;
}
#registration .registration-form .buttons {
    justify-content: space-between;
}
#registration .registration-form label {
    line-height: 1.4;
}

#registration label.wrapped {
    display: flex;
    flex-direction: row;
    align-content: center;
    align-items: flex-start;
}

#registration input[type=checkbox] {
    scale: 1.5;
    width: auto;
    display: inline-block;
    margin-right: 20px;
    margin-top: 7px;
    padding: 8px;
}

#registration p.success {
    width: 100%;
    /*border: 2px solid #011f01;*/
    background-color: #20a420;
    color: #fff;
    padding:20px 24px 20px 24px;
    /*border-radius: 8px;*/
}
.checkbox-list {
    display: flex;
    flex-direction: column;
    margin-top: 16px;
}
#registration .checkbox-list label {
    margin-top: 10px;
}
#registration .checkbox-list input[type=checkbox]{
    margin-right: 8px;
}

/* --------------------- LOGIN --------------------- */

#login {
    width: 100%;
    margin: 0 auto;
    height: 100vh;
    padding: 20px;
}

#login label {
    margin-top: var(--step-md);
    display: inline-block;
}

#login select {
    width: 100%;
    border: 1px solid var(--accent-color);
    border-radius: 8px;
    padding: 14px 10px 14px 10px;
    margin-top:var(--step-md);
}

#login .details {
    width: 100%;
    border: 1px solid var(--accent-color);
    border-radius: 8px;
    padding: 14px 10px 14px 10px;
    margin-top:var(--step-md);
    background-color: #000;
    color: #e15198;
}

#login .details-scrollable {
    width: 100%;
    height: 150px;
    overflow: scroll;
}

#login input[type=submit] {
    text-decoration: none;
    margin-top: var(--space-md);
    border: 2px solid var(--secondary-color);
    background-color: #fff;
    color: var(--accent-color);
    font-size: var(--step-md);
}



/* --------------------- EDIT TEACHER --------------------- */

.edit-teacher-container {
    align-items: flex-start;
    margin-top: var(--space-lg);
}
#edit-teacher .faqs {
    border: 1px solid var(--grey-color);
    border-radius: var(--border-rad-sm);
    padding: var(--space-sm);
}

#edit-teacher .faq {
    border-top: 1px solid var(--grey-color);
    margin-top: var(--space-md);
    padding-top: var(--space-md);
}
#edit-teacher details {
    border-top: 1px solid var(--grey-color);
    margin-top: var(--space-md);
    padding-top: var(--space-md);
    font-size: var(--step-md);
}

#edit-teacher .faq p:last-of-type {
    margin-top: var(--space-2xs);
}


#edit-teacher .edit-teacher-form {
    border: 1px solid var(--grey-color);
    border-radius: 5px;
    padding: var(--space-md);
}

#edit-teacher .edit-teacher-form p {
    margin-top: var(--space-2xs);
}

#edit-teacher .edit-teacher-form .buttons {
    justify-content: space-between;
}

#edit-teacher label.wrapped {
    display: flex;
    flex-direction: row;
    align-content: center;
    align-items: flex-start;
}

#edit-teacher input[type=checkbox] {
    width: auto;
    display: inline-block;
    margin-right: 20px;
    margin-top: 4px;
    padding: 8px;
}

#edit-teacher p.success {
    width: 100%;
    /*border: 2px solid #011f01;*/
    background-color: #20a420;
    color: #fff;
    padding:20px 24px 20px 24px;
    /*border-radius: 8px;*/
}

#edit-teacher ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

#edit-teacher li {
    display: inline;
    font-size: 18px;
    color:var(--primary-color);
}

#edit-teacher li a {
    text-decoration: underline;
    color:var(--primary-color);
}

#edit-teacher .breadcrumb {
    fill: var(--secondary-color);
    transform: translateY(6px);
}

#edit-teacher .options {

    border: 1px solid var(--grey-color);
    border-radius: var(--border-rad-sm);
    padding: var(--space-sm);

    margin-top: 20px;
    width: 100%;
}

#edit-teacher .btn-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    input[type=submit] {
        display: flex;
        margin-left: 0;
        margin-right: auto;
        /*width: 100%;*/
        /*text-align: center;*/
        /*align-content: center;*/
        /*align-items: center;*/
    }
}

/* --------------------- ADMIN --------------------- */

.navigation .button {
    text-decoration: none;
    /*margin-top: var(--space-md);*/
    border: 2px solid var(--secondary-color);
    background-color: #fff;
    color: var(--accent-color);
    font-size: var(--step-md);
    border-radius: 8px;
}

#admin {
    display: flex;
    flex-direction: column;
    padding: 20px;
    /*align-items: flex-start;*/
    /*margin-top: var(--space-lg);*/
    /*gap: var(--space-lg);*/

    p {
        margin: 0 !important;
        padding: 0 !important;
    }

    table {
        margin-top: var(--space-lg);
        border: 1px solid #000;
        text-align: left;
        border-collapse: collapse;
    }

    td, th {
        padding: 8px;
        border: 1px solid #000;
    }

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

    #adminSearchForm {
        display: flex;
        flex-direction: row;
        /*display: block;*/
        width: auto;
        /*margin-bottom: var(--space-lg);*/
        /*max-width: 460px;*/
    }

    #adminSearchForm input[type=submit] {
        width: 200px;
        background-color: #fff;
        font-weight: bold;
        margin-top:var(--step-md);
        margin-bottom:var(--step-md);
        border: 2px solid var(--secondary-color);
        border-radius: 8px;
        padding: 20px 24px 20px 24px;
        color: var(--accent-color);
        text-decoration: none;
        text-align: center;
        margin-left: 20px;
    }

    #adminSearchForm input[type=text] {
        width: 350px;
        padding: 20px 24px 20px 24px;
        margin-top:var(--step-md);
        margin-bottom:var(--step-md);

    }


}


#search label.checkbox {
    display: flex;
    flex-direction: row;
    margin-top: 40px;
    margin-bottom: 20px;
    justify-content: flex-start;
    width: 100%;
}

#search .checkbox input[type=checkbox] {
    width: 30px;
    margin: 0;
    padding: 0;
    margin-right: 20px;
}

#terms {
    ol {
        padding-left: 20px;
    }
    li {
        margin-bottom: 0.5rem;
    }
    ol > li {
        font-weight: 600;
        font-size: 1.125rem;
        color: var(--primary-color);
    }
    ol > li > ul {
        margin-top: 0.5rem;
        list-style: outside;
        color: black;
    }
    ol > li > ul > li {
        font-weight: normal;
        max-width: 74ch;
    }
}



/* --------------------- MEDIA QUERIES --------------------- */


@media (min-width: 960px) {
    .logo {
        font-size: 26px;
    }
    .row {
        flex-direction: row;
        width: 100%;
    }
    .row-reverse {
        flex-direction: row-reverse;
    }
    .column {
        flex-direction: column;
        width: 100%;
    }

    header .navigation {
        display: flex;
        margin-left: auto;
        margin-right: 0;
        margin-top: 0;
    }
    footer {
        text-align: right;
    }
    #search-details .column-information-and-match-details {
        flex-direction: row;
    }
    #search .filters-and-matches {
        flex-direction: row;
    }

    #search aside, #search-details .column-information, #search-details-contact .column-information {
        width: 50%;
    }

    #search .matches .match .column:last-of-type {
        width: auto;
    }

    /*#search label.checkbox {*/
    /*    display: flex;*/
    /*    flex-direction: row;*/
    /*    margin-top: 40px;*/
    /*    margin-bottom: 20px;*/
    /*    justify-content: flex-start;*/
    /*    width: 100%;*/
    /*}*/

    /*#search .checkbox input[type=checkbox] {*/
    /*    width: 30px;*/
    /*    margin: 0;*/
    /*    padding: 0;*/
    /*    margin-right: 20px;*/
    /*}*/

    #batchUpload {
        margin-top: -100px;
        height: 100vh;
    }

    #login {
        width: 600px;
        margin-top: -100px;
        height: 100vh;
    }

    #login button {
        width: auto;
        margin-right :var(--step-md);
    }

    #login input[type=submit] {
        display: flex;
        width: auto;
        margin-left: auto;
        margin-right: 0;
    }

    #registration .intro {
        max-width: 800px;
    }

    #registration .faqs {
        margin-top: 0;
        width: 50%;
    }

    #registration button {
        width: auto;
        margin-right :var(--step-md);
    }

    #registration input[type=submit] {
        display: flex;
        width: auto;
        margin-left: auto;
        margin-right: 0;
    }

    #registration .buttons, #search-details-contact .buttons {
        margin-top: var(--space-md);
        display: flex;
        flex-direction: row;
    }

    #search-details-contact input[type=submit] {
        width: auto;
    }

    #search-details-contact input[type=submit] {
        display: flex;
        width: auto;
        margin-left: auto;
        margin-right: 0;
    }

    #search-details-contact .buttons {
        display: flex;
        width: auto;
        margin-left: auto;
        margin-right: 0;
    }

    #search-details-contact .buttons .button {
        width: auto;
        margin-left: auto;
        margin-right: 0;
    }


    #search > .row:first-of-type {
        flex-direction: row;
    }


    #search .matches-summary p {
        text-align: right;
        width: 100%;
        margin-left: auto;
        margin-right: 0;
    }



    #edit-teacher .intro {
        max-width: 800px;
    }

    #edit-teacher .faqs {
        margin-top: 0;
        width: 50%;
    }

    #edit-teacher button {
        width: auto;
        margin-right :var(--step-md);
    }

    #edit-teacher input[type=submit] {
        display: flex;
        width: auto;
        margin-left: auto;
        margin-right: 0;
    }

    #edit-teacher .buttons, #search-details-contact .buttons {
        margin-top: var(--space-md);
        display: flex;
        flex-direction: row;
    }

    #edit-teacher .options {
        margin-top: 0;
        width: 75%
    }


}
@media (max-width: 460px) {
    .logo {
        font-size: 18px;
    }
    .btn {
        padding: 16px 16px;
    }
    #search .matches .match {
        flex-direction: column;
        gap: var(--space-sm);
        align-items: flex-start;
    }
    .container {
        padding-inline: 1rem;
    }
}
.cookie-consent {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--accent-color);
    color: #fff;
    padding: var(--space-md);
    display: none;
    z-index: 9999;
}

.cookie-consent__content {
    max-width: var(--max-container-width);
    margin: 0 auto;
    display: flex;
    gap: var(--space-md);
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.cookie-consent__text {
    font-size: var(--step-sm);
    margin: 0;
}

.cookie-consent__buttons {
    display: flex;
    gap: var(--space-sm);
}

@media (max-width: 460px) {
    .cookie-consent__content {
        flex-direction: column;
        align-items: flex-start;
    }
}

.error-page {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 50vh;
    text-align: center;
    padding: var(--space-lg);
}

.error-page h1 {
    color: var(--primary-color);
    margin-bottom: var(--space-md);
}

.error-page p {
    margin-bottom: var(--space-lg);
}

