/*
Theme Name: Musubi WP Theme
Theme URI: 
Author: Alastair Mogford
Author URI: 
Description: 
Version: 1.0
License: 
License URI: 
Tags: 
Text Domain: musubi
*/

*, 
*::before,
*::after {
    box-sizing: border-box;
}

:root{

    /* core colours */
    --musubi-navy-core: #002D66;
    --musubi-red-core: #E31B37;
    --musubi-white-core: #FFFFFF;
    --musubi-grey-core: #3F3F3F; 

    /* tints */
    --musubi-navy-50: #f2f4f7;
    --musubi-navy-100: #e5eaf0;
    --musubi-navy-200: #ccd5e0;
    --musubi-navy-300: #b2c0d1;
    --musubi-navy-400: #99abc2;
    --musubi-navy-500: #8096b2;
    --musubi-navy-600: #6681a3;
    --musubi-navy-700: #4c6c94;
    --musubi-navy-800: #335785;
    --musubi-navy-900: #194275;
    --musubi-navy-950: #002d66; /* core */

    --musubi-red-50: #fff1f1;
    --musubi-red-100: #ffe4e4;
    --musubi-red-200: #ffcdcf;
    --musubi-red-300: #fea3a7;
    --musubi-red-400: #fc7079;
    --musubi-red-500: #f63d4e;
    --musubi-red-600: #e31b37; /* core */
    --musubi-red-700: #c0102d;
    --musubi-red-800: #a0112d;
    --musubi-red-900: #89122e;
    --musubi-red-950: #4d0413;

    --musubi-grey-50: #f7f7f7;
    --musubi-grey-100: #ededed;
    --musubi-grey-200: #e5e5e5; /* light */
    --musubi-grey-300: #c8c8c8;
    --musubi-grey-400: #adadad;
    --musubi-grey-500: #999999;
    --musubi-grey-600: #888888;
    --musubi-grey-700: #7b7b7b;
    --musubi-grey-800: #676767;
    --musubi-grey-900: #545454;
    --musubi-grey-950: #363636;

    --breakpoint-xl: 1440px;
    --breakpoint-l: 1280px;
    --breakpoint-m: 960px;
    --breakpoint-s: 640px;
    --breakpoint-xs: 480px;

    
}



html{
    font-size: 16px;
    scroll-behavior: smooth;
}

@media (max-width: 768px) {
    html{
        font-size: 15px;
    }    
}
@media (max-width: 480px) {
    html{
        font-size: 14px;
        scroll-padding-top: 80px;
    }    
}

body{
    margin: 0;
    padding: 0;
    background-color: white;
}



/* ----------------- SITEWIDE ----------------- */


main{
    background-color: var(--musubi-white-core);
}


.wrapper{
    max-width: 64rem;
    margin-inline: auto;
    padding-inline: 1rem;
}

.wrapper-small{
    max-width: 46rem;
    margin-inline: auto;
    padding-inline: 1rem;
}

@media (max-width: 480px) {
    .wrapper,
    .wrapper-small{
        padding-inline: 0.75rem;
    }
}

.visually-hidden{
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
    color: black; 
    background-color: white;
    /* color & bg colour applied to fix accessibility */
}



/* ----------------- LINKS ----------------- */


a{
    color: var(--govuk-link-colour);
    text-decoration: underline;
    text-decoration-thickness: max(1px, .0625rem);
    text-underline-offset: 0.1578em;
}

a:hover {
    text-decoration-thickness: max(3px, .1875rem, .12em);
    -webkit-text-decoration-skip-ink: none;
    text-decoration-skip-ink: none;
    -webkit-text-decoration-skip: none;
    text-decoration-skip: none;
  }

a:focus-visible {
    outline: 3px solid transparent;
    color: #0b0c0c;
    background-color: var(--govuk-focus-colour);
    box-shadow: 0 -2px var(--govuk-focus-colour), 0 4px #0b0c0c;
    text-decoration: none;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}


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

footer{

}

footer > .wrapper{
    padding-block: 2rem;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 2rem;
}

.musubi-footer-copyright{
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    flex-wrap: nowrap;
    gap: 1rem;    
}

.musubi-footer-logo-svg{
    width: 10rem;
    height: auto;
}


.musubi-footer-logo > a,
.musubi-footer-logo img{
    display: inline-block;
    transition: all 100ms;
}

.musubi-footer-logo > a:focus-visible{
    box-shadow: none;
    outline: 3px solid var(--govuk-focus-colour);
    outline-offset: 4px;
    background-color: transparent;
}

ul#musubi-footer-nav, 
ul#musubi-footer-nav li,
ul#musubi-social-nav, 
ul#musubi-social-nav li {
    list-style: none;
    padding: 0; margin: 0;
}

ul#musubi-footer-nav > li,
ul#musubi-social-nav > li{
    margin-block: 0.5em;
}

ul#musubi-footer-nav > li > a,
ul#musubi-social-nav > li > a{
    color: var(--musubi-white-core);
    font-weight: 300;
}

ul#musubi-footer-nav  > li > a:focus-visible{
    color: black;
}


ul#musubi-social-nav > li {
    margin-block: 0.75rem;
}
ul#musubi-social-nav > li > a{
    display: flex;
    gap: 1rem;
    align-items: center;
    transition: all 100ms;

}

ul#musubi-social-nav > li > a::before{
    content: '';
    display: block;
    --circle: 2.5rem;
    width: var(--circle);
    height: var(--circle);
    border-radius: calc(var(--circle) / 2);
    background-color: var(--musubi-red-core);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 75%;
    color: white;
}

ul#musubi-social-nav > li > a:hover::before{
    background-color: var(--musubi-red-500);
}
ul#musubi-social-nav > li > a:focus-visible::before{
    background-color: var(--musubi-red-500);
}


ul#musubi-social-nav > li > a:focus-visible{
    box-shadow: none;
    outline: 3px solid var(--govuk-focus-colour);
    outline-offset: 4px;
    background-color: transparent;
    text-decoration: underline;
}


/* - - - - social icons - - - - */

ul#musubi-social-nav > li.instagram > a::before{
    background-image: url(images/icons/social/instagram_white.svg);
}
ul#musubi-social-nav > li.linkedin > a::before{
    background-image: url(images/icons/social/linkedin_white.svg);
}
ul#musubi-social-nav > li.x > a::before{
    background-image: url(images/icons/social/x_white.svg);
}




@media (max-width: 480px) {
    footer > .wrapper{
        display: grid;
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .footer-copyright {
        align-items: flex-start;
    }
}
    



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

 
header{
    width: 100%;
    background-color: var(--musubi-white-core); 
}

@media (max-width: 640px) {
    header{
        background-color: var(--musubi-grey-100); 
    }
}

.musubi-header-upper{
    width: 100%; 
    color: var(--musubi-grey-950);
}

.musubi-header-upper > .wrapper{
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    padding-block: 0.75rem;
    gap: 2rem;
}

.musubi-header-logo img{
    width: 7rem;
    height: auto;
    transition: width 100ms;
}

.musubi-header-logo > a{
    display: block; 
    text-decoration: none;
}

.musubi-header-logo > a:focus-visible {
    background-color: var(--govuk-focus-colour);
    box-shadow: 0px 0px 0px 5px var(--govuk-focus-colour);
    outline: 3px solid var(--musubi-blue-700);
    outline-offset: 3px;
}

.musubi-header-all-items{
    display: flex;
    gap: 1rem;
    align-items: center;
}



.musubi-header-strapline p.musubi-body-l{
    margin: 0;
}



/* Header responsive */


@media (max-width: 960px) {
    .musubi-header-logo img{
        width: 7rem;
    }
}
@media (max-width: 640px) {
    .musubi-header-logo img{
        width: 6rem;
    }
    .musubi-header-strapline p.musubi-body-l{
        font-size: 1rem;
    }
}
@media (max-width: 480px) {
    .musubi-header-logo img{
        width: 5rem;
    }
    .musubi-header-upper > .wrapper{
        gap: 1.5rem;
    }
}
@media (max-width: 360px) {
    .musubi-header-logo img{
        width: 4rem;
    }
}







/* ----------------- PAGE LAYOUT ----------------- */



.musubi-layout-grid{
    display: grid;
    gap: 2rem;
}


/* standard single column */
.musubi-layout-grid--single_col{
    grid-template-columns: 1fr;
}
.musubi-layout-grid--single_col .page-content{
    max-width: 70ch;
    margin-inline: auto;
}

/* full width single column */
.musubi-layout-grid--full_width {
    grid-template-columns: 1fr
}
.musubi-layout-grid--full_width .page-content{
    width: 100%;
}

/* sidebar left */
.musubi-layout-grid--sidebar_left{
    grid-template-columns: 1fr 2fr;
}

/* sidebar right */
.musubi-layout-grid--sidebar_right{
    grid-template-columns: 2fr 1fr;
}

@media (max-width: 720px) {
    .musubi-layout-grid--sidebar_left,
    .musubi-layout-grid--sidebar_right{
        grid-template-columns: 1fr;
    }
}






.musubi-layout--sidebar-sticky{
    position: sticky;
    top: 40px;
}
@media (max-width: 480px) {
    .musubi-layout--sidebar-sticky{
        position: inherit;
    }
}

@media (min-width: 480px) {
    .musubi-layout--sidebar-sticky--scroll-top{
        display: none;
    }
}
.musubi-layout--sidebar-sticky--scroll-top{
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 10;
}








/* ----------------- POSTS ----------------- */

.post-meta{
    background-color: var(--bg-color-header);
    padding: 1rem;
}

.post-meta p:nth-child(1){
    margin-top: 0;
}
.post-meta p:nth-last-child(1){
    margin-bottom: 0;
}



.wp-block-embed__wrapper{
    float: none;
    clear: both;
    width: 100%;
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 25px;
    height: 0;

}
.wp-block-embed__wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}


.post-content-date{
    font-weight: 600;
    margin-block: 2rem;
}




/* ----------- HERO ------------- */

.musubi-hero > .wrapper{
    padding-block: 2rem;
}

.musubi-hero h1{
    margin: 0;
}

.musubi-hero{
    text-align: center;
}



/* ----------- BRIDGE ------------- */




/* Note: colours set inline in the HTML using variables
        --bridge-bg
        --bridge-clr
*/

.musubi-bridge-svg-wrapper {
    width: 100%;
    line-height: 0; /* remove spacing below SVG */
    background: var(--bridge-clr, transparent); /* colour of the arc itself */
}

.musubi-bridge-svg {
    display: block;
    width: 100%;
    height: auto;
    color: var(--bridge-bg, transparent); /* colour behind the arc (element above) */
    transform: translateY(-0.5px);
}

/* If you want to use this on non-full-width content like a column */
.musubi-bridge-svg-wrapper.inline-bridge {
max-width: 100%;
overflow: hidden;
}






/* ----------------- FRONT PAGE ----------------- */

/* hero */

.musubi-fp-hero-container{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    position: relative;
}
.musubi-fp-hero-container--full{
    position: relative;
}

.musubi-fp-hero--content{
    background-color: var(--musubi-red-core);
    padding: 3rem;
    padding-bottom: 5rem;
    text-align: left;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    color: var(--musubi-white-core);
}

.musubi-fp-hero--content .musubi-heading-m{
    max-width: calc(992px / 2 - 3rem);
    margin: 0;
    
}

.musubi-fp-hero--image,
.musubi-fp-hero--image--full{
    background-image: url('images/hero/Charles_edited_web_2.jpg');
    background-repeat: no-repeat;
    background-position: center 30%;
    background-size: cover;
}

.musubi-fp-hero--image--full{
    height: 20rem;
}

.musubi-fp-hero-container--full .musubi-bridge-svg,
.musubi-fp-hero-container .musubi-bridge-svg{
    transform: translateY(1px);
}

.musubi-fp-hero-container--full .musubi-bridge-svg-wrapper,
.musubi-fp-hero-container .musubi-bridge-svg-wrapper{
    background: unset;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
}



@media (max-width: 960px) {
    .musubi-fp-hero--content{
        padding: 2rem;
        padding-bottom: 4rem;
    }
    .musubi-fp-hero--content .musubi-heading-m{
        font-size: 1.25rem;
    }   
}

@media (max-width: 480px) {
    .musubi-fp-hero-container{
        display: flex;
        flex-direction: column;
    }    
    .musubi-fp-hero--content{
        display: none;
    }
    .musubi-fp-hero--image{
        height: 12rem;
    }
}

@media (min-width: 480px) {
    .musubi-fp-hero--mobile{
        display: none;
    }
}



/* content */

/* centralise the button */
.musubi-section--fp-content .musubi-button a {
    margin-inline: auto;
}



/* big number boxes= */

.musubi-numbers-grid{
    display: grid;
    /* flex-direction: column; */
    grid-template-columns: 1fr 1fr;
    gap: 2rem;

}

.musubi-numbers-grid--col{
    display: flex;
    flex-direction: column;
    text-align: center;
    align-items: center;
}

.musubi-number-l{
    --number-diameter: 120px;
    width: var(--number-diameter);
    height: var(--number-diameter);
    border-radius: calc(var(--number-diameter) / 2);
    background-color: var(--musubi-red-core);
    color: white;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3.5rem;
}


.musubi-numbers-grid .musubi-heading-m{
    margin-bottom: 0;
}

/* 
@media (max-width: 960px) {
    .musubi-numbers-grid{
    }
    .musubi-number-l{
        --number-diameter: 160px;
    }    
}
 */



/* - - - - -  carousel - - - - -  */


.musubi-testimonials-carousel{
    padding-inline: 3rem; /* space for the arrows */
}

.musubi-testimonials-carousel .musubi-quote{
    margin-block: 0;
    margin-inline: 1rem;
    padding: 1rem;
    height: 100%;
    background-color: transparent;
    width: 26rem;
    /* width: 100%; */

    /* border: 1px solid red;
    background-color: yellow; */

}

@media (max-width: 1024px) {
    .musubi-testimonials-carousel .musubi-quote{
        width: 100%;
        margin: 0;
    }
}

.flickity-viewport {
    transition: height 0.2s;
  }

.musubi-testimonials-carousel .flickity-page-dots{
    width: calc(100% - 6rem);
    /* hack to ensure page dots don't force wider screen layout when adding padding to carousel */
}




.musubi-button-central-container{
    margin-block: 1rem;
    display: flex;
    justify-content: center;
}



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


.search-form-bar{
    margin-bottom: 2rem;
}

.search-form-bar > form{
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    align-items: center;
}


.search-form-bar input.search-field{
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    border: 1px solid var(--musubi-red-300);
    
    font-size: 1rem;
    font-family: inherit;
    padding: 0.5rem 1rem 0.5rem 1rem;
    width: 100%;
    border-radius: 30px;
    height: 44px;
}

.search-form-bar .musubi-button:focus-visible,
input.search-field:focus-visible{
    outline: 3px solid var(--musubi-navy-core);
    outline-offset: 2px;
}


h2.search-term{
    background-color: var(--musubi-grey-200);
    padding: 0.5em;
    border-radius: 0.25em;
    display: inline-block;
    margin-block: 1rem;
}


/* search results */

.search-results-grid{
    display: grid;
    gap: 2rem;
}

.search-results-grid a{
    text-decoration: none;
    color: inherit;
}

.search-result{
    border: 1px solid var(--musubi-grey-300);
    border-radius: 0.5rem;
    padding: 1rem;
    padding-right: 4rem;
    background-color: var(--musubi-grey-50);
    position: relative;
}

.search-result::after{
    content: '';
    display: block;
    position: absolute;
    width: 2rem; height: 2rem;
    right: 1rem;
    top: calc(50% - 1rem);
    background-color: var(--musubi-red-core);
    mask-image: url('https://api.iconify.design/mdi:chevron-right-circle.svg');
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
}



.search-results-grid > a:focus-visible{
    box-shadow: none;
}
.search-results-grid > a:focus-visible > .search-result{
    outline: 3px solid var(--musubi-red-core);
    outline-offset: 2px;
    background-color: var(--govuk-focus-colour);
}


.search-result > h3{
    margin-top: 0;
    font-size: 1.25rem;
    line-height: 1.5;
    color: var(--govuk-link-colour);
    text-decoration: underline;
}






/* ----------- SEARCH TYPE LABELS ------------- */


 
.post-type-label{
    padding: 0.25em 0.5em;
    font-size: 0.875rem;
    border-radius: 1rem;
    background-color: var(--musubi-red-200);
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    width: fit-content;
    align-items: center;
    gap: 0.5rem;
    color: var(--musubi-red-900);
    text-decoration: none;
    margin-bottom: 0.75rem;
}


.post-type-label--partner::before,
.post-type-label--programme::before,
.post-type-label--post::before,
.post-type-label--page::before{
    content: '';
    width: 1em; height: 1em;
    background-color: var(--musubi-red-900);
    display: inline-block;
    mask-image: var(--_post_type_icon);
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: cover;
    -webkit-mask-image: var(--_post_type_icon);
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: cover;
}

.post-type-label--partner::before{
    --_post_type_icon: url('https://api.iconify.design/mdi:file-document.svg');
}
.post-type-label--programme::before{
    --_post_type_icon: url('https://api.iconify.design/material-symbols:newspaper.svg');
}
.post-type-label--post::before{
    --_post_type_icon: url('https://api.iconify.design/ic:baseline-calendar-month.svg');
}
.post-type-label--page::before{
    --_post_type_icon: url('https://api.iconify.design/material-symbols:language.svg');
} 




/* ----------------- FAQs ----------------- */


.faq-container{
    margin-block: 2rem;
}

.faq-question-group{
    background-color: var(--casey-navy-200);
    color: var(--casey-blue-800);
    padding: 1rem;
    display: flex;
    gap: 1rem;
    align-items: center;
    flex-direction: row;
    justify-content: space-between;
    flex-wrap: nowrap;

}

.faq-question-group::after{
    content: 'Show';

    font-size: 1.125rem;
    padding: 0.5rem 0.8rem;
    color: var(--casey-blue-50);
    font-weight: 400;
    background-color: var(--casey-blue-700);
    text-decoration: none;
    /* border-bottom: 0.25rem solid rgb(var(--clr-dark-grey-rgb)); */
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-direction: row;
    flex-wrap: nowrap;
    width: fit-content;
}

.faq-question-group[aria-expanded=true]::after{
    content: 'Hide';
}

.faq-question-group:hover, 
.faq-question-group:focus-visible{
    background-color: var(--casey-navy-100);
    cursor: pointer;
}
.faq-question-group:focus-visible{
    box-shadow: none;
    outline: 3px solid var(--govuk-link-colour);
    outline-offset: 2px;
}


.faq-question-group:hover > .wp-block-group__inner-container, 
.faq-question-group:focus-visible > .wp-block-group__inner-container {
    color: var(--casey-navy-700);
    text-decoration: underline;
}

.faq-question-group:focus-visible > .wp-block-group__inner-container{
    outline: 3px solid transparent;
    color: #0b0c0c;
    background-color: var(--govuk-focus-colour);
    box-shadow: 0 -2px var(--govuk-focus-colour), 0 4px #0b0c0c;
    text-decoration: none;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;

}



.faq-question-group:hover::after,
.faq-question-group:focus-visible::after{
    color: var(--casey-blue-50);
    /* border-bottom: 0.25rem solid rgb(var(--clr-shadow-rgb)); */
    background-color: var(--casey-blue-600);
}


.faq-question-group > .wp-block-group__inner-container{
    margin: 0 !important;
}

.faq-question-group h2 {
    font-size: 1.75rem;
    margin: 0;
}

.faq-answer-group{
    background-color: var(--casey-navy-100);
    /* display: none; */
}

.faq-answer-group > .wp-block-group__inner-container{
    padding: 1rem;
}


.faq-answer-group > .wp-block-group__inner-container > *:first-child{
    margin-top: 0;
}

.faq-answer-group > .wp-block-group__inner-container > *:last-child{
    margin-bottom: 0;
}



/* Wordpress editor formatting */

body.editor-styles-wrapper .faq-question-group{
    margin: 0;
}

body.editor-styles-wrapper .faq-answer-group{
    margin: 0;
}
body.editor-styles-wrapper .faq-question-group::after{
    display: none;
}

body.editor-styles-wrapper .faq-question-group:hover, 
body.editor-styles-wrapper .faq-question-group:focus-visible{
    background-color: var(--casey-navy-200);
    cursor: inherit;
}
body.editor-styles-wrapper .faq-question-group:hover > .wp-block-group__inner-container, 
body.editor-styles-wrapper .faq-question-group:focus-visible > .wp-block-group__inner-container {
    color: inherit;
    text-decoration: inherit;
}



/* ----------------- PAGINATION ----------------- */


.pagination{
    margin-top: 2rem; 
}

.pagination .nav-links{
    display: flex;
    gap: 0.25rem;
}

.nav-links > *{
    padding: 0.5rem 0.5rem;
    background-color: var(--musubi-red-200);
}

.nav-links > .current{
    background-color: var(--musubi-red-core);
    color: var(--musubi-white-core);
}


.nav-links a{
    text-decoration: none;
    color: var(--musubi-navy-core);
    font-weight: 400;
    text-decoration: underline;
    text-decoration-thickness: max(1px, .0625rem);
    text-underline-offset: 0.1578em;

}

.nav-links a:hover{
    background-color: var(--musubi-red-800);
    color: var(--musubi-white-core);
    text-decoration-thickness: max(3px, .1875rem, .12em);
    -webkit-text-decoration-skip-ink: none;
    text-decoration-skip-ink: none;
    -webkit-text-decoration-skip: none;
    text-decoration-skip: none;
}

.nav-links a:focus-visible{
    background-color: #ffdd00;
    color: black;
    box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;

}
















/* ------------------------ casey Form controls (from govuk) ------------------------  */



/*   
.casey-select-container select {
    font-family: inherit;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.25;
    box-sizing: border-box;
    width: 100%;
    height: 2.5rem;
    padding: 5px;
    border: 2px solid #0b0c0c;
    color: #0b0c0c;
    background-color: #ffffff;
  }
  @media print {
    .casey-select-container select {
      font-family: sans-serif;
    }
  }
  @media (min-width: 40.0625em) {
    .casey-select-container select {
      font-size: 1.1875rem;
      line-height: 1.25;
    }
  }
  @media print {
    .casey-select-container select {
      font-size: 14pt;
      line-height: 1.25;
    }
  }
  .casey-select-container select:focus {
    outline: 3px solid #ffdd00;
    outline-offset: 0;
    box-shadow: inset 0 0 0 2px;
  }
  .casey-select-container select:disabled {
    opacity: 0.5;
    color: inherit;
    cursor: not-allowed;
  }
  
  .casey-select-container select option:active,
  .casey-select-container select option:checked,
  .casey-select-container select:focus::-ms-value {
    color: #ffffff;
    background-color: #1d70b8;
  }
  


  
.facetwp-facet.casey-input-container input[type=text] {
    font-family: inherit;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-weight: 400;
    font-size: 1.125rem;
    line-height: 1.25;
    box-sizing: border-box;
    min-width: unset;
    width: 100%;
    height: 2.5rem;
    margin-top: 0;
    padding: 5px;
    border: 2px solid #0b0c0c;
    border-radius: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
         appearance: none;
  }
  @media print {
    .casey-input-container input[type=text] {
      font-family: sans-serif;
    }
  }
  @media (min-width: 40.0625em) {
    .casey-input-container input[type=text] {
      font-size: 1.1875rem;
      line-height: 1.3157894737;
    }
  }
  @media print {
    .casey-input-container input[type=text] {
      font-size: 14pt;
      line-height: 1.15;
    }
  }
  .casey-input-container input[type=text]:focus {
    outline: 3px solid #ffdd00;
    outline-offset: 0;
    box-shadow: inset 0 0 0 2px;
  }
  .casey-input-container input[type=text]:disabled {
    opacity: 0.5;
    color: inherit;
    background-color: transparent;
    cursor: not-allowed;
  }
  
  .casey-input-container input[type=text]::-webkit-outer-spin-button,
  .casey-input-container input[type=text]::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
  }
  
 */





/* ----------------- TBALE OF CONTENTS ----------------- */



ul.toc-list, 
ul.toc-list li{
    list-style: none;
    padding: 0;
}

ul.toc-list{
    display: grid;
    gap: 2px;
}

ul.toc-list li{
    position: relative;
}

ul.toc-list li.h2-heading a{
    display: block;
    padding-block: 0.3rem;
    padding-inline: 0.5rem;
    position: relative;
    /* margin-top: 20px; */
    font-weight: 700;
    color: var(--govuk-link-colour);
}

ul.toc-list li.h3-heading a{
    display: block;
    padding-block: 4px;
    padding-left: 2rem;
    position: relative;
    color: var(--govuk-link-colour);

}

ul.toc-list li.h3-heading a::before{
    content: '';
    position: absolute;
    top: calc(50% - 1px); 
    left: 0.5rem;
    width: 1rem;
    height: 2px;
    background-color: var(--musubi-grey-500);
} 



ul.toc-list li.current-heading a{
    color: var(--musubi-grey-950);
    text-decoration: none;
}

ul.toc-list li.current-heading{
    background-color: var(--musubi-grey-100);
}

ul.toc-list li.current-heading::before{
    --_bar: 4px;
    content: '';
    position: absolute;
    height: 100%;
    left: calc(var(--_bar) * -1);
    top: 0;
    width: var(--_bar);
    background-color: var(--musubi-grey-700);
}
















/* ---------------- SECTIONS ----------------- */


.musubi-section{
    padding-block: 2rem;
}

.musubi-section > .wrapper > *:first-child{
    margin-top: 0;
}

.musubi-section > .wrapper > *:last-child{
    margin-bottom: 0;
}




/* ---------------- CARDS ----------------- */

.container{
    container-type: inline-size;
}

.musubi-cards-grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    container-type: inline-size;
}

.musubi-cards-grid-landscape{
    display: grid;
    gap: 2rem;
    container-type: inline-size;
}


@container (max-width: 690px) {
    .musubi-cards-grid{
        grid-template-columns: repeat(2, 1fr);
    }
}

@container (max-width: 450px) {
    .musubi-cards-grid{
        grid-template-columns: 1fr;
    }
}



.musubi-card {
    display: grid;
    grid-template-rows: min-content;
    border-bottom: 0.5rem solid var(--musubi-navy-core);
}


@container (min-width: 450px) {
    .musubi-cards-grid-landscape .musubi-card {
        grid-template-columns: 200px 1fr;
        gap: 2rem;
    }
}

@container (min-width: 690px) {
    .musubi-cards-grid-landscape .musubi-card {
        grid-template-columns: 300px 1fr;
    }
}


a.musubi-card{
    color: var(--musubi-navy-core);
    text-decoration: unset;
}

a.musubi-card:focus-visible{
    box-shadow: none;
    background-color: transparent;
    outline: 3px solid var(--musubi-blue-700);
    outline-offset: 5px;
}

.musubi-card .musubi-bridge-svg-wrapper{
    background: unset;
}
.musubi-card .musubi-bridge-svg{
    transform: translateY(0.5px);
}


.musubi-card--image-container{
    width: 100%;
    height: fit-content;
    /* border-radius: 0.25rem; */
    overflow: hidden;
    /* border: 1px solid rgb(0, 0, 0, 0.1); */
    position: relative;
}

.musubi-card--image-container .musubi-bridge-svg-wrapper{
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
}

.musubi-card--image{
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3/2;
    object-fit: cover;
    scale: 1;
    transition: 100ms;
}

.musubi-card:hover .musubi-card--image{
    scale: 1.05;
}

a.musubi-card .musubi-heading-focus{
    color: var(--musubi-blue-700);
    text-decoration: underline;
    text-decoration-thickness: max(1px, .0625rem);
    text-underline-offset: 0.1578em;
}

a.musubi-card:hover .musubi-heading-focus {
    text-decoration-thickness: max(3px, .1875rem, .12em);
    -webkit-text-decoration-skip-ink: none;
    text-decoration-skip-ink: none;
    -webkit-text-decoration-skip: none;
    text-decoration-skip: none;
  }

a.musubi-card:focus-visible .musubi-heading-focus {
    outline: 3px solid transparent;
    color: #0b0c0c;
    background-color: var(--govuk-focus-colour);
    box-shadow: 0 -2px var(--govuk-focus-colour), 0 4px #0b0c0c;
    text-decoration: none;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}


.musubi-card--content{
    background-color: var(--musubi-grey-200);
    padding: 1rem;
}

.musubi-card--content > *:first-child{
    margin-top: 0;
}
.musubi-card--content > *:last-child{
    margin-bottom: 0;
}

p.musubi-card--excerpt{
    font-size: 1rem;
    color: var(--musubi-grey-950);

    max-height: 100px; /* Approx */
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3; /* Approximate number of lines */
    -webkit-box-orient: vertical;
  
}


.musubi-card--date{
    color: var(--casey-grey-800);
    font-size: 1rem;
}








/* -------------------- COOKIE BAR OVERIDES -------------------- */


.govuk-button-group form{
    margin: 0;
}

.govuk-button-group{
    align-items: center !important;
}

.govuk-cookie-banner .govuk-heading-m, 
.govuk-cookie-banner .govuk-body,
.govuk-cookie-banner .govuk-button,
.govuk-cookie-banner .govuk-link{
    font-family: inherit !important;
}





/* ---------------- COOKIES PAGE ----------------- */


body.page-id-36 .page-content form{
    background-color: var(--casey-navy-100);
    padding: 2rem;
}

body.page-id-36 .page-content form .casey-button{
    margin-top: 1rem;
}




/* ---------------- PARTNER PAGES & LOGOS ----------------- */

.musubi-partner-logo-container{
    border: 1px solid var(--musubi-grey-300);
    background-color: var(--musubi-white-core);
}

img.musubi-partner-logo{
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center;
    padding: 1rem;
}

.musubi-partner-logo--padding-0 img.musubi-partner-logo{
    padding: 0;
}

.musubi-partner-content p:first-of-type{
    margin-top: 0px;
}

/* - - - - - - - grid - - - - - - - */

.musubi-partner-grid{
    /* display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem; */
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: center;
}

.musubi-partner-grid > a.musubi-partner-card{
    width: 185.6px;
}

/* - - - - - - - card - - - - - - - */

a.musubi-partner-card{
    background-color: var(--musubi-white-core);
    border: 1px solid var(--musubi-grey-200);
    border-radius: 0.25rem;
    padding: 0.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-weight: 400;
    transition: all 100ms;
}

a.musubi-partner-card:hover{
    border: 1px solid var(--musubi-grey-300);
    background-color: var(--musubi-grey-100);
}

a.musubi-partner-card:focus-visible{
    box-shadow: none;
    outline: 3px solid var(--musubi-red-core);
    outline-offset: 2px;
}

p.musubi-partner-card-name{
    margin-top: 1rem;
    margin-bottom: 0;
}


/* ------------ TICKER ------------ */


.musubi-ticker__item {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0 1rem;
}

.musubi-ticker__item--logos {
    max-width: 12rem;
    gap: 1rem;
    text-align: center;
}

.musubi-ticker__item__flag__img {
    max-height: 5rem;
    width: auto;
}

.musubi-ticker__org__img{
    width: 10rem;
    height: 5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

@media (max-width: 640px) {
    .musubi-ticker__item__flag__img {
        max-height: 60px;
    }
    
}  

.musubi-ticker__item__org__img {
    width: 10rem;
    height: 5rem;
    object-fit: contain;
}

@media (max-width: 640px) {
    .musubi-ticker__item__org__img {
        max-height: 60px;
    }
    
}  

.musubi-ticker-item__name{
    font-size: 16px;
}



  .scroller {
    max-width: 100%;
  }
  
  .scroller__inner {
    padding-block: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-start;
    align-items: center;
  }
  
  .scroller[data-animated="true"] {
    overflow: hidden;
    -webkit-mask: linear-gradient(
      90deg,
      transparent,
      white 20%,
      white 80%,
      transparent
    );
    mask: linear-gradient(90deg, transparent, white 20%, white 80%, transparent);
  }
  
  .scroller[data-animated="true"] .scroller__inner {
    width: max-content;
    flex-wrap: nowrap;
    animation: scroll var(--_animation-duration, 40s)
      var(--_animation-direction, forwards) linear infinite;
  }
  
  .scroller[data-direction="right"] {
    --_animation-direction: reverse;
  }
  
  .scroller[data-direction="left"] {
    --_animation-direction: forwards;
  }
  
  .scroller[data-speed="fast"] {
    --_animation-duration: 20s;
  }  
  .scroller[data-speed="medium"] {
    --_animation-duration: 60s;
  }
  .scroller[data-speed="slow"] {
    --_animation-duration: 120s;
  }
  
  @keyframes scroll {
    to {
      transform: translate(calc(-50% - 0.5rem));
    }
  }
  
  


  .scroller[data-animated="false"] *[aria-hidden="true"]{
    display: none;
  }

  .scroller[data-animated="false"] .scroller__inner{
  justify-content: center;
  }


.musubi-ticker__hidden-expand-container{
    display: none;
}
.musubi-ticker__hidden-expand-grid{
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
    align-items: center;
}


a.musubi-partner-ticker-link{
    background-color: var(--musubi-white-core);
    border: 1px solid var(--musubi-grey-200);
    border-radius: 0.25rem;
    padding: 0.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-weight: 400;
    transition: all 100ms;

    max-height: 200px;
    height: -webkit-fill-available;
}

a.musubi-partner-ticker-link:hover{
    border: 1px solid var(--musubi-grey-300);
    background-color: var(--musubi-grey-100);

}


a.musubi-partner-ticker-link:focus-visible{
    box-shadow: none;
    outline: 3px solid var(--musubi-red-core);
    outline-offset: 2px;
}




/* ----------------- PROGRAMMES ----------------- */


ul.musubi-programmes-buttons-list,
ul.musubi-programmes-buttons-list li{
    margin: 0;
    padding: 0;
    list-style: none;
}

ul.musubi-programmes-buttons-list{
    display: flex;
    gap: 1rem;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
}

/* - - - - - programme grid - - - - - */

.musubi-programme-grid{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(calc(50% - 2rem), 1fr));
    gap: 2rem;
    transition: all 200ms;
}

@media (max-width: 850px) {
    .musubi-programme-grid{
        /* grid-template-columns: repeat(2, 1fr); */
        gap: 1rem;
    }
}
@media (max-width: 480px) {
    .musubi-programme-grid{
        grid-template-columns: 1fr;
        gap: 1rem;
    }
}

.musubi-programmes-heading{
    text-align: center;
}

.musubi-programmes-heading .musubi-heading-m{
    margin: 0;
}

.musubi-programmes-heading.wrapper-small{
    padding: 0;
}

.musubi-programmes-heading p{
    font-weight: 600;
}

.musubi-programmes-heading p:last-child{
    margin-bottom: 0;
}

/* - - - - - programme card - - - - - */


a.musubi-programme-card{
    background-color: var(--musubi-grey-100);
    border: 1px solid var(--musubi-grey-300);
    border-radius: 0.25rem;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 2fr;
    transition: all 100ms;
    color: inherit;
    text-decoration: none;
}

@media (max-width: 850px) {
    a.musubi-programme-card{
        display: flex;
        flex-direction: column;
    }
    .musubi-programme-card-image-container{
        max-height: 8rem;
    }
} 
@media (max-width: 480px) {
    a.musubi-programme-card{
        display: grid;
    }
    .musubi-programme-card-image-container{
        max-height: 100%;
    }
}
@media (max-width: 360px) {
    a.musubi-programme-card{
        display: flex;
        flex-direction: column;
    }
    .musubi-programme-card-image-container{
        max-height: 6rem;
    }
}


a.musubi-programme-card:hover{
    border: 1px solid var(--musubi-grey-400);
    background-color: var(--musubi-grey-200);
}
a.musubi-programme-card:hover img.musubi-programme-card-image{
    scale: 1.1;
}

/* name on hover */
a.musubi-programme-card:hover .musubi-programme-card-name {
    text-decoration-thickness: max(3px, .1875rem, .12em);
    -webkit-text-decoration-skip-ink: none;
    text-decoration-skip-ink: none;
    -webkit-text-decoration-skip: none;
    text-decoration-skip: none;
}

a.musubi-programme-card:focus-visible .musubi-programme-card-name {
    outline: 3px solid transparent;
    color: #0b0c0c;
    background-color: var(--govuk-focus-colour);
    box-shadow: 0 -2px var(--govuk-focus-colour), 0 4px #0b0c0c;
    text-decoration: none;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}




a.musubi-programme-card:focus-visible{
    box-shadow: none;
    outline: 3px solid var(--musubi-red-core);
    outline-offset: 2px;
}







/* image */
.musubi-programme-card-image-container{
    overflow: hidden;
}
img.musubi-programme-card-image{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: scale 100ms;
}

/* content */
.musubi-programme-card-content{
    padding: 1rem;
}

h3.musubi-programme-card-name{
    margin-top: 0;
    margin-bottom: 1rem;
    color: var(--govuk-link-colour);
    text-decoration: underline;
    text-decoration-thickness: max(1px, .0625rem);
    text-underline-offset: 0.1578em;
    transition: all 100ms;

}
.musubi-programme-card-excerpt{
    margin-bottom: 0;
}






/* -------------------- TIMELINE -------------------- */



.musubi-timeline-container{
    display: flex;
    flex-direction: column;
    position: relative;
    --dot: 16px;
    margin-block: calc(var(--dot) * 3) ;
}


/* vertical line */
.musubi-timeline-container::before{
    content: '';
    display: block;
    position: absolute;
    top: calc(var(--dot) * -2);
    left: calc(var(--dot) / 2);
    width: 2px;
    height: calc(100% + var(--dot) * 4);
    /* background-color: var(--musubi-navy-core); */

    background: #002D66;
    background: linear-gradient(0deg, rgba(0, 45, 102, 0) 0%, rgba(0, 45, 102, 1) 2%, rgba(0, 45, 102, 1) 98%, rgba(0, 45, 102, 0) 100%);
}

.musubi-timeline-event-container{
    display: grid;
    grid-template-columns: 1fr 2fr 2fr;
    position: relative;
    margin-bottom: 2rem;
}

/* dot */
.musubi-timeline-event-container::before{
    content: '';
    display: block;
    position: absolute;
    top: calc(var(--dot) / -2 + 1px);
    left: 0;
    width: var(--dot);
    height: var(--dot);
    border-radius: calc(var(--dot) / 2);
    background-color: var(--musubi-red-core);
}

/* horizontal line */
.musubi-timeline-event-container::after{
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: var(--dot);
    width: calc(100% - var(--dot));
    height: 2px;
    background-color: var(--musubi-red-core);
}

.musubi-timeline-event--date,
.musubi-timeline-event--content{
    padding: var(--dot);
    padding-left: calc(var(--dot) * 2);
}

.musubi-timeline-event--date{
    font-weight: 700;
    color: var(--musubi-navy-core);
}
.musubi-timeline-event--content p:first-of-type{
    margin-top: 0;
}

.musubi-timeline-event--content p:last-of-type{
    margin-bottom: 0;
}

.musubi-timeline-event--image img{
    width: 100%;
    height: auto;
}


@media (max-width: 480px) {
    .musubi-timeline-event-container{
        grid-template-columns: 2fr 1fr;
        grid-template-rows: auto;
        grid-template-areas: 
        "date image"
        "content image";     
    }
    .musubi-timeline-event--date{
        padding: 0.5rem 1rem 0.5rem 2rem;
        grid-area: date;

    }
    .musubi-timeline-event--content{
        padding: 0.5rem 1rem 0.5rem 2rem;
        grid-area: content;
    }

    .musubi-timeline-event--image{
        grid-area: image;
    }
}







/* -------------------- BACK LINK -------------------- */


.musubi-back-link{
    display: flex;
    justify-content: center;
}

body.post-template-default .musubi-back-link{
    justify-content: flex-start;

}

.musubi-back-link a{
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--musubi-red-core);
}
.musubi-back-link a:focus-visible{
    color: black;
}

.musubi-back-link a::before{
    content: '';
    display: block;
    width: 1em; height: 1em;
    background-color: var(--musubi-red-core);
    --back-icon: url("images/icons/triangle.svg"); 
    mask-image: var(--back-icon); 
    -webkit-mask-image: var(--back-icon);
    mask-size: cover;
    -webkit-mask-size: cover;
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-position: 100%;
    -webkit-mask-position: 100%;
    flex-shrink: 0;
    rotate: 180deg;

}

.musubi-back-link a:focus-visible:before{
    background-color: black;

}


/* ----------- BREADCRUMBS ------------- */
/* - - - - - note: not really using these - - - - - */


.musubi-section.musubi-section-breadcrumb{
    padding-top: 1.25rem;
    padding-bottom: 1rem;
}

.musubi-section.musubi-section-breadcrumb .musubi-heading-central{
    margin-top: 1rem;
}


.breadcrumb{
    position: relative;
}

.container-breadcrumb{
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
}

.breadcrumb-separator{
    display: block;
    width: 1rem; height: 1rem;
    background-color: var(--musubi-navy-core);
    --_breadcrumb-icon: url('https://api.iconify.design/akar-icons:triangle-right-fill.svg');
    mask-image: var(--_breadcrumb-icon);
    mask-repeat: no-repeat;
    mask-size: cover;
    mask-position: center;
    -webkit-mask-image: var(--_breadcrumb-icon);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: cover;
    -webkit-mask-position: center;
}

.breadcrumb a{
    color: var(--musubi-navy-core);
}

.breadcrumb a:hover{
    color: var(--casey-blue-800);
}
.breadcrumb a:focus{
    color: var(--casey-blue-950);
}







/* ---------------- SITEMAP ----------------- */


ul.sitemap-list{
    line-height: 1.5;
}

ul.sitemap-list li{
    margin-block: 0.5em;
}






/* ---------------- NEWS POSTS ----------------- */



figure.wp-block-image figcaption{
    background-color: var(--musubi-grey-100);
    padding: 0.75rem 0.75rem 1rem 0.75rem;
    margin-top: 0;
    margin-bottom: 1rem;
    color: var(--musubi-grey-800);
    font-weight: 600;
    font-size: 0.875rem;
}