
body[class*="template_programmes"] #pageheader>.wrapper:last-child {padding-bottom: calc(64px + 12px); }

@media all and (max-width: 899px) {
    body[class*="template_programmes"] #pageheader > .wrapper:last-child {
        padding-bottom: 48px;
    }
}
/*

body[class*="template_programmes"] input {
-webkit-appearance: auto;
    appearance: auto;
}
*/



form#coursesearch {  background: var(--mid-blue); padding: 32px 0 }
form#coursesearch h2{  font-size: 24px; line-height: 1.25; font-weight: 600;  margin-bottom: 1em;  }



div#programmes { background: var(--light-blue); }

ul#courseresults { display: flex; flex-wrap: wrap; width: calc(100% + var(--gutter));
    position: relative; right: calc(var(--gutter) / 2); padding-bottom: var(--gutter); }


ul#courseresults > li  {  width: 100%; margin: calc(var(--gutter) / 2);


    display: flex; flex-direction: column; background: white; padding: 16px;

    border-radius: 8px; font-size: 14px;
    border: 1px solid var(--cta-blue);
}
ul#courseresults > li dl dd.course_type  {  display: block; }
ul#courseresults > li dl dt::before {   content: ' '; display: block; height:0px; }
ul#courseresults > li dl dt::after { content: ' '; }
ul#courseresults > li dl dt,
ul#courseresults > li dl strong { font-weight:600;}
ul#courseresults > li dl dt { display:inline-block; margin-right:8px;}
ul#courseresults > li dl dd
{ display:inline-block; margin-right:8px; margin-bottom: 8px; }
ul#courseresults > li dl dt { margin-right: 5px;  line-height: 24px;  border: 1px solid transparent; border-left: none;}

ul#courseresults > li dl dd.linebreaker{ display:block; height: 0; margin-bottom: 0 !important;}
ul#courseresults > li dl dd a{

    /*padding: 0 10px ; */ padding: 5px 10px;
    font-size: 14px;line-height: 1.2;
    letter-spacing: 0.16px;

    color: var(--menu-blue);

    display: inline-block;
    background: white;
    border: 1px solid var(--menu-blue); font-weight: 400;

    border-radius: 18px;
    position:relative;

}

ul#courseresults > li dl dd a:is(:hover,:focus-visible){
    background: var(--hero-blue); color: white;
}
ul#courseresults > li dl dd a:focus-visible{
    box-shadow: 0 0 0 1px white, 0 0 0 4px var(--orange);
}

ul#courseresults > li p.logos { display: flex; flex-wrap: wrap; margin-bottom: 12px;}
ul#courseresults > li p.logos span { display: block; height: 40px; margin-right: 16px;}
ul#courseresults > li p.logos span img { display: block; height: 40px; width: auto;}
ul#courseresults > li > a { /*display: flex; align-items: center;*/  font-size: 17px; line-height: 1.2; color: var(--black); font-weight: 600;margin-bottom:8px;}
ul#courseresults > li > a span {   }
ul#courseresults > li > a::before { float: right;
    display: inline-block; height:24px; width:24px; flex: 1; margin-right: 8px; content:""; background-repeat: no-repeat; background-size: contain; background-position:right top;
    background-image: url('data:image/svg+xml;utf8, <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve"><path fill="%23004265" d="M14,3v2h3.6l-9.8,9.8l1.4,1.4L19,6.4V10h2V3 M19,19H5V5h7V3H5C4.5,3,4,3.2,3.6,3.6C3.2,4,3,4.5,3,5v14 c0,0.5,0.2,1,0.6,1.4C4,20.8,4.5,21,5,21h14c0.5,0,1-0.2,1.4-0.6C20.8,20,21,19.5,21,19v-7h-2V19z"/></svg>');


}

/*ul#courseresults > li */div.note{
    background: var(--light-blue);
    position: relative; z-index: 2;
    border: 1px solid var(--cta-blue);     margin-top: 8px;
    border-radius: 8px; font-size: 14px; padding: 8px 10px;
}

.wrapper > div.note{
    font-size: 17px; padding: 16px;
    background-color: white; margin-bottom: var(--gutter_big);
}


@media all and (min-width:1200px) {
    .wrapper > div.note{
        width: calc(50% - var(--gutter)) !important;
    }
}
 .wrapper > div.note > *:not(:last-child){
    margin-bottom: 1em;
}
.wrapper > div.note > :last-child { margin-bottom: 0 !important;  }


/* ul#courseresults > li*/ div.note :is(strong, a) {
    font-weight: 600; color:inherit;
     position: relative; /*display:inline-block;*/  transition: all .2s ease-in-out
}

 ul#courseresults > li div.note :is(strong, a) {
    font-weight: 600; color:inherit;
     position: relative; display:inline-block;  transition: all .2s ease-in-out
}


/*ul#courseresults > li */div.note a{
    color: inherit;
    background-image: linear-gradient(currentColor, currentColor), linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
    background-position: 0 100%, 0 100%;
    background-repeat: no-repeat, no-repeat;
    background-size: 100% 1px, 100% 1px;
    transition: background-size .2s;

    font-weight: 700;
}

/*ul#courseresults > li */div.note a:is(:hover,:focus-visible) {
    color: white;
    background-image: linear-gradient(var(--cta-blue), var(--cta-blue)), linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
    background-size: 100% 100%, 100% 100%;
    transition: background-size .2s;
}


ul#courseresults > li > a span/*,
ul#courseresults > li > ul > li a span*/
{
    transition: all 0.2s ease; cursor: pointer;
    text-decoration: none;
/*    padding: 2px 0;*/
    background-image: linear-gradient(currentColor, currentColor), linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
    background-position: 0 100%, 0 100%;
    background-repeat: no-repeat, no-repeat;
    background-size: 0 1px, 100% 1px;
    transition: background-size .5s;

}
ul#courseresults > li > a:hover span/*,
ul#courseresults > li > ul > li a:hover span*/ {
    background-size: 100% 1px, 100% 1px

}



.popup li>a>span,
ul#courseresults > li > ul > li a
{
background-image:linear-gradient(120deg, var(--menu-blue) 0%, var(--menu-blue) 100%);background-position:0 100%;background-repeat:no-repeat;background-size:100% 0; border-bottom:1px solid currentColor; color:inherit;text-decoration:none;transition:background-size 0.2s ease; display: inline !important;
}
.popup li>a:is(:hover,:focus-visible)>span,
ul#courseresults > li > ul > li a:is(:hover,:focus-visible)
{
    background-size:100% 100%;color:#FFF !important;  border-bottom-color:var(--menu-blue) !important;  }






/*.popup li>a>span,
ul#courseresults > li > ul > li a {position: relative; display:inline-block; }
ul#courseresults > li > ul > li a span{position: relative;
    z-index: 1; }
.popup li>a>span::before,
ul#courseresults > li > ul > li a::before {
    content: '';
    background-color: currentColor;
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 1px;
    z-index: 0;
    transition: all .2s ease-out;
}
.popup li>a:is(:hover,:focus-visible)>span,
ul#courseresults > li > ul > li a:is(:hover,:focus-visible){ color:white; }

.popup li>a:is(:hover,:focus-visible)>span::before,
ul#courseresults > li > ul > li a:is(:hover,:focus-visible)::before {
    background-color: var(--menu-blue);
    bottom: -1px;
    height: 100%;
}*/


ul#courseresults > li > a:focus-visible span {
    background:var(--orange);
}
ul#courseresults > li > ul > li a:focus-visible span {
    box-shadow: 0 0 0 1px white, 0 0 0 4px var(--orange);

}


ul#courseresults > li > ul { margin-bottom:8px; }
ul#courseresults > li > ul li { margin:0.5em 0; }
ul#courseresults > li > ul li a { color: inherit;   }



@media all and (min-width:600px) {
    ul#courseresults > li {
        width: calc(50% - var(--gutter));
    }
    .mapopen ul#courseresults > li {
        width: calc(100% - var(--gutter)) !important;
    }
}
@media all and (min-width:900px) {
    ul#courseresults > li {
        width: calc(33.3333% - var(--gutter));
    }
    .mapopen ul#courseresults > li {
        width: calc(100% - var(--gutter)) !important;
    }
}
@media all and (min-width:1200px) {
    ul#courseresults > li {
    width: calc(25% - var(--gutter));
    }

    .mapopen ul#courseresults > li {
        width: calc(50% - var(--gutter)) !important;
    }
}




form#coursesearch fieldset { background: white; border-radius: 12px; border: 1px solid var(--cta-blue); overflow: hidden; margin: 16px 0;
}


form#coursesearch ul#subject_methodologies_list,
form#coursesearch ul#programme_subject_list,
form#coursesearch ul#programme_provider_list {

}
@media all and (min-width:600px) {
    form#coursesearch ul#subject_methodologies_list,
    form#coursesearch ul#programme_subject_list,
    form#coursesearch ul#programme_provider_list {
        column-count: 2;
        column-gap: var(--gutter);
    }
}
@media all and (min-width:900px) {
    form#coursesearch ul#subject_methodologies_list,
    form#coursesearch ul#programme_subject_list,
    form#coursesearch ul#programme_provider_list {
        column-count: 3;
        column-gap: var(--gutter);
    }
}
@media all and (min-width:1200px) {
    form#coursesearch ul#subject_methodologies_list,
    form#coursesearch ul#programme_subject_list,
    form#coursesearch ul#programme_provider_list {
        column-count: 4;
        column-gap: var(--gutter);
    }
}



@media all and (max-width: 899px) {

}


form#coursesearch li   {  font-size: 16px;   line-height: 1.2;      break-inside: avoid-column; }
form#coursesearch li label { display:flex; align-items:center;position: relative; font-family: inherit; cursor: pointer;}

form#coursesearch fieldset.inactive,
form#coursesearch fieldset li label input {  position: fixed; opacity: 0; pointer-events: none; top: -100px; }
form#coursesearch fieldset li label span { display:block; padding-right: 0.5em; }
form#coursesearch fieldset li label>b { display:block; content:""; width:42px; min-width:42px; height: 42px; border-radius: 50%;
       position: relative; order: 0; margin-right: 0; }
form#coursesearch fieldset li label:is(:hover) > b ,
form#coursesearch fieldset li label:has(input:focus-visible) > b {
    background: var(--mid-blue);
}


form#coursesearch fieldset li label>input:checked~b {  /*background: var(--menu-blue);*/ }

form#coursesearch fieldset li label>b::after ,
form#coursesearch fieldset li label>b::before { content:""; display: block; position: absolute;}

form#coursesearch fieldset li label>b::before {
width:15px; height: 15px;  border: 1.5px solid rgba(0,0,0,0.6); border-radius:2px; top:50%; left: 50%; transform: translate(-50%,-50%); }
form#coursesearch fieldset li label input[type="checkbox"]:checked ~ b::after {
     width:11px; height: 5px; border: 2px solid #FFF; border-top: none; border-right: none; left:50%; margin-top: -1px; top:50%; transform: translate(-50%,-50%) rotate(-45deg);  }

form#coursesearch fieldset li label>input:checked~b::before {

         background: var(--menu-blue); border-color: var(--menu-blue);

}
form#coursesearch fieldset li label:has(input:focus-visible) {  box-shadow:  0 0 0 3px var(--orange);}


form#coursesearch fieldset li label input[type="radio"] ~ b::before {
    width:20px; height: 20px; border-radius: 50%;  border: 2px solid var(--menu-blue);
}



form#coursesearch fieldset li label input[type="radio"]:checked ~ b::before { background: none;  }
form#coursesearch fieldset li label input[type="radio"]:checked ~ b::after {
    width:12px; height:12px; border-radius: 50%;  background:  var(--menu-blue); top:50%; left: 50%; transform: translate(-50%,-50%);
}


form#coursesearch fieldset div { padding: 16px;}


form#coursesearch fieldset div p:last-child{ margin-top:16px;}
form#coursesearch input[type="submit"]{ background: var(--hero-blue); color: white; font-family: inherit; font-size: 16px; padding: 0.75em 1.5em; min-width: 18em; line-height: 18px; border-radius: 8px; border: none; outline: none; cursor: pointer;}

form#coursesearch input[type="submit"]:focus-visible { box-shadow: 0 0 0 1px white, 0 0 0 4px var(--orange); }

@media all and (max-width:599.98px) {
    form#coursesearch input[type="submit"]{   min-width: 0;  }

}



form#coursesearch fieldset :is(h3,legend) { font-size: 20px; margin:0;}
form#coursesearch button { font-size: inherit; line-height: inherit; background: none; outline: none; font-family: inherit; color: #221D33;}
form#coursesearch :is(h3,legend) button { background: white; padding: 16px 24px; display: block; width: 100%; display: flex; align-items: center;}
form#coursesearch button { font-size: inherit; line-height: inherit; background: none; outline: none; font-family: inherit; color: #221D33;}

form#coursesearch :is(h3,legend) button::before { display: inline-block; height:24px; width:24px; margin-right: 8px; content:""; background-repeat: no-repeat; background-size: contain; background-position:0 0;
    background-image: url('data:image/svg+xml;utf8, <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve"><path fill="%23221D33" d="M6.4,13.1h12v-2h-12 M3.4,6.1v2h18v-2 M10.4,18.1h4v-2h-4V18.1z"/></svg>');

}
form#coursesearch :is(h3,legend) button:focus-visible span { box-shadow: 0 0 0 1px var(--hero-blue), 0 0 0 3px var(--orange); }

form#coursesearch :is(h3,legend) button:is(:hover,:focus-visible)::before ,
form#coursesearch :is(h3,legend) button.opened::before {    background-image: url('data:image/svg+xml;utf8, <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve"><path fill="%23FFFFFF" d="M6.4,13.1h12v-2h-12 M3.4,6.1v2h18v-2 M10.4,18.1h4v-2h-4V18.1z"/></svg>');}

form#coursesearch :is(h3,legend) button:is(:hover,:focus-visible), /*{ background: var(--orange); }*/
form#coursesearch :is(h3,legend) button.opened {   background: var(--hero-blue); color: white;}

form#coursesearch :is(h3,legend) button span { display: flex; align-items: center;}

form#coursesearch :is(h3,legend) button span::after {
    content: "";
    margin: 2px 0 0 8px;
    display: inline-block;
    width: 20px;
    height: 20px;
    background-size: 20px 20px;
    background-repeat: no-repeat;
    background-position: center;
    background-image: url('data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve"><polygon fill="%23535A63" points="10,15.4 1.3,6.7 2.7,5.3 10,12.6 17.3,5.3 18.7,6.7 	"/></svg>');

    transition: all 0.2s ease;

}
form#coursesearch :is(h3,legend) button:is(:hover,:focus-visible) span::after,
form#coursesearch :is(h3,legend) button.opened span::after {

    background-image: url('data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve"><polygon fill="%23FFFFFF" points="10,15.4 1.3,6.7 2.7,5.3 10,12.6 17.3,5.3 18.7,6.7 	"/></svg>');
}
form#coursesearch :is(h3,legend) button.opened span::after {
    transform: rotate(180deg);
}


div#courseresultswrapper { padding: 32px 0;}







body.loading::before {
    display: block;
    content: "";
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    background: #004265;
    opacity: 0.75;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 9992;
}




body.loading::after {
    z-index: 9993; box-sizing: border-box;
    content: " ";
    display: block;
    width: 90px;
    height: 90px;
    animation: spin 1s infinite linear;
    border-radius: 50%;
    border-width: 12px;
    border-style: solid;


    border-color: rgba(255, 255, 255, 0.4) rgba(255, 255, 255, 0.4) rgba(255, 255, 255, 0.4) rgba(255, 255, 255, 1);

    overflow: hidden;
    text-indent: -99999em;
    margin: auto;
    position: fixed;
    top: 50%;
    left: 50%;  /*
    position: relative; left: calc(50% - 45px);*/
    margin: -45px 0 0 -45px;


}


/*

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}


*/