@font-face
{
    font-family: SourceSansPro;
    src: url("fonts/SourceSansPro-Black.ttf");
    font-weight: 900;
    font-style: normal;
}

@font-face
{
    font-family: SourceSansPro;
    src: url("fonts/SourceSansPro-BlackItalic.ttf");
    font-weight: 900;
    font-style: italic;
}

@font-face
{
    font-family: SourceSansPro;
    src: url("fonts/SourceSansPro-Bold.ttf");
    font-weight: 700;
    font-style: normal;
}

@font-face
{
    font-family: SourceSansPro;
    src: url("fonts/SourceSansPro-BoldItalic.ttf");
    font-weight: 700;
    font-style: italic;
}

@font-face
{
    font-family: SourceSansPro;
    src: url("fonts/SourceSansPro-ExtraLight.ttf");
    font-weight: 200;
    font-style: normal;
}

@font-face
{
    font-family: SourceSansPro;
    src: url("fonts/SourceSansPro-ExtraLightItalic.ttf");
    font-weight: 200;
    font-style: italic;
}

@font-face
{
    font-family: SourceSansPro;
    src: url("fonts/SourceSansPro-Light.ttf");
    font-weight: 300;
    font-style: normal;
}

@font-face
{
    font-family: SourceSansPro;
    src: url("fonts/SourceSansPro-LightItalic.ttf");
    font-weight: 300;
    font-style: italic;
}

@font-face
{
    font-family: SourceSansPro;
    src: url("fonts/SourceSansPro-SemiBold.ttf");
    font-weight: 600;
    font-style: normal;
}

@font-face
{
    font-family: SourceSansPro;
    src: url("fonts/SourceSansPro-SemiBoldItalic.ttf");
    font-weight: 600;
    font-style: italic;
}

@font-face
{
    font-family: SourceSansPro;
    src: url("fonts/SourceSansPro-Regular.ttf");
    font-weight: 400;
    font-style: normal;
}

@font-face
{
    font-family: SourceSansPro;
    src: url("fonts/SourceSansPro-Italic.ttf");
    font-weight: 400;
    font-style: italic;
}

@font-face
{
    font-family: Chendolle;
    src: url("fonts/Chendolle.otf");
    font-weight: 400;
    font-style: normal;
}

html, body
{
    min-height: 100vh;
    font-size: 20px;
}

body
{
    display: flex;
    flex-direction: column;
    background: #fff;
    font-family: SourceSansPro, sans-serif;
    font-weight: normal;
    font-style: normal;
}

h1
{
    font-family: Chendolle, sans-serif;
    font-size: 6em;
    font-weight: normal;
    font-style: normal;
    color: #2e404f;
}

h2
{
    font-size: 2em;
}

h2, h3, h4, h5, h6
{
    font-family: SourceSansPro, sans-serif;
    font-weight: bold;
    font-style: normal;
}

.kete_header
{
    background: rgba(46, 64, 78, .2);
    height: 150px;
}

.kete_header .navbar-brand
{
    flex-grow: 1;
}

.kete_header .navbar-toggler
{
    color: rgba(255, 255, 255, .5);
    border-color: rgba(255, 255, 255, .1);
}

.kete_header .kete_logo
{
    max-height: 2.5rem;
}

.kete_header #kete_header_navbar_collapse
{
    flex-grow: 3;
}

.kete_header .navbar-nav
{
    align-items: center;
    justify-content: space-between;
    flex-grow: 1;
}

nav.kete_header .nav-link
{
    color: #fff;
    font-family: SourceSansPro, sans-serif;
    font-weight: 700;
    font-size: 20px;
}

nav.kete_header .nav-link:hover
{
    opacity: 0.9;
}

.my_kete_item .nav-link
{
    background: #a3cc57;
    padding: 0 2em !important;
    border-radius: 1em;
}

.header_background
{
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
}

.header_background.header_background_darkgreen
{
    background: url("img/kete_header_bg_darkgreen_8000x1561.png") no-repeat center;
    height: 780.5px; /*1561px;*/
}

aside.messages
{
    position: absolute;
    top: calc(150px - 2em);
    left: 0;
    right: 0;
}

aside.messages .alert
{
    margin-left: 25%;
    margin-right: 25%;
    min-height: 3em;
    background-color: rgba(255, 243, 205, 0.88);
    font-size: 0.75rem;
}

aside.messages button.close
{
    margin: 0;
    font-size: 1rem;
    border-radius: 0;
}

aside.messages button.close:hover
{
    background-color: transparent;
    color: darkred;
}

aside.messages .alert p
{
    margin-bottom: 0;
}

main
{
    padding-top: 150px;
    margin-top: -150px;
    overflow-x: hidden; /* needed because the svg waves have to extend beyond the edge of the main container to ensure there are no gaps, but this causes the horizontal scrollbars to appear which isn't cool */
}

main header.generic_page
{
    background: url('img/kete_bg_tile_darkgreen_204x205.png') repeat;
    margin-top: -150px;
    padding-top: calc(150px + 4em);
    padding-bottom: 0;
    color: #fff;
}

main header.generic_page .top_wave
{
    /* we need to overstretch the svg image slightly to handle issues with pixel-rounding */
    position: relative;
    top: 5px;
    left: -1px;
    width: calc(100% + 2px);
}

main header.generic_page .white_wave
{
    background: url('img/kete_header_whitewave_4000x400.svg') no-repeat center bottom / contain;
    width: 100%;
    min-height: calc(100vw / 10);
    margin-top: -5%;
}

main header.generic_page > .container
{
    display: flex;
    align-items: center;
    justify-content: space-around;
}

main header.generic_page h1
{
    color: #fff;
    line-height: .8;
    text-indent: -1em;
    padding-left: 1em;
    padding-right: .5em;
}

main.about header.generic_page h1,
main.become_an_issuer header.generic_page h1
{
    text-indent: -.3em;
    padding-left: .3em;
}

main.for_parents header.generic_page h1
{
    text-indent: 0;
    padding-left: 0;
}

/*
main header.generic_page h1.heading_about_us
{
    text-indent: -9999px;
    background: url("img/header_about_us_1065x589.png") no-repeat center / contain content-box;
    !*width: calc(1065px / 2);*!
    height: calc(589px / 2 + 2em);
    margin: 0;
    padding: 2em 1em;
}
*/

main header.generic_page h2
{
    text-align: center;
    flex-shrink: 1;
    margin-top: 0;
    font-size: 1.2em;
}

footer#page_footer
{
    position: relative; /* needed to absolute position the digibadge version div */
    background: #2e404f;
    padding: 7.1875em 0 6.875em; /*115px 0 110px;*/
}

footer#page_footer .digitalbadge_version
{
    font-size: 13px;
    color: #707070;
    position: absolute;
    bottom: 1em;
    left: 1em;
}

footer#page_footer .footer_actions
{
    display: flex;
    align-items: center;
    justify-content: space-around;
}

footer#page_footer #footer_logo
{
    height: 75px;
}

footer#page_footer .keep_in_touch
{
    display: flex;
    flex-direction: column;
    /*align-items: center;*/
    flex-grow: 1;
    max-width: 300px;
    text-align: center;
    padding-left: 2em;
}

footer#page_footer .keep_in_touch h2
{
    font-family: Chendolle, sans-serif;
    font-weight: normal;
    font-style: normal;
    font-size: 40px;
    color: #fff;
    margin: 0 0 0.5em 0;
}

footer#page_footer .social_buttons
{
    display: flex;
    justify-content: space-around;
}

footer#page_footer .social_buttons img
{
    height: 66px;
    /*margin: 22px 22px 0;*/
}

footer#page_footer .social_buttons a
{
    /*margin: 1em 0 0 1em;*/
}

footer#page_footer .social_buttons a:first-child
{
    margin-left: 0;
}


footer#page_footer /*.social_buttons*/ a:hover,
footer#page_footer /*.social_buttons*/ a:focus
{
    opacity: 0.75;
}

footer#page_footer .keep_in_touch > img
{
    height: 28px;
}


footer#page_footer .footer_section_links
{
    display: flex;
    justify-content: space-around;
    align-content: center;
    margin-top: 60px;
}

footer#page_footer .footer_section_links a
{
    color: #fff;
    font-family: SourceSansPro, sans-serif;
    font-weight: 700;
    font-size: 1.5em;
    line-height: .9;
    text-align: center;
}

footer#page_footer .footer_lower
{
    display: flex;
    justify-content: space-around;
    color: #f0ebe5;
    font-size: 1em;
    font-family: SourceSansPro, sans-serif;
    margin-top: 80px;
}


footer#page_footer .footer_tertiary_links a
{
    color: #f0ebe5;
}

footer#page_footer .footer_tertiary_links a::before
{
    content: '|';
    padding-right: 0.5em;
    margin-left: 0.5em;
}

footer#page_footer .footer_tertiary_links a:first-child::before
{
    content: none;
    padding: 0;
    margin: 0;
}

.kete_form_field input[type="text"], .kete_form_field input[type="email"], .kete_form_field input[type="password"]
{
    border: none;
    margin-bottom: 0.5em;
    border-radius: 1em;
    padding: 0 1em;
    text-align: center;
    min-width: 20em;
}

.kete_btn
{
    font-family: SourceSansPro, sans-serif;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1;
    padding: .5em 1em;
    color: #fff;
    border: none;
    border-radius: 1.5em;
    text-align: center;
    flex-grow: 1;
}

/*
.kete_btn:hover,
.kete_btn:focus
{
    opacity: .75;
}
*/

.kete_btn_orange
{
    background: #f09930;
}

.kete_btn_orange:hover,
.kete_btn_orange:focus
{
    background: #d6862b;
    color: #fff;
    text-decoration: none;
}

.kete_btn_green
{
    background: #a3cc57;
}

.kete_btn_green:hover,
.kete_btn_green:focus
{
    background: #8fb34d;
    color: #fff;
    text-decoration: none;
}

.kete_btn_purple
{
    background: #a661a6;
}

.kete_btn_purple:hover,
.kete_btn_purple:focus
{
    background: #8c538c;
    color: #fff;
    text-decoration: none;
}

.kete_btn_grey
{
    background: #f0ebe5;
    color: #707070;
}

.kete_btn_grey:hover,
.kete_btn_grey:focus
{
    background: #d6d2ce;
    color: #707070;
    text-decoration: none;
}

.kete_btn:disabled
{
    background: #ddd;
    color: #aaa;
}

.kete_btns
{
    display: flex;
    flex-direction: row;
    margin: 2em 0;
}

.kete_btns .kete_btn
{
    /*margin-left: 1em;*/
    margin: 0 0 0 1em;
}

.kete_btns .kete_btn:first-child
{
    margin-left: 0;
}

.kete_toggle_btn
{
    position: absolute;
    left: -9999px;
}

.kete_toggle_btn + label
{
    font-family: SourceSansPro, sans-serif;
    font-weight: 700;
    font-size: 20px;
    padding: .25em 1em;
    background: #f0ebe5;
    color: #707070;
    border: none;
    border-radius: 1.5em;
    text-align: center;
    cursor: pointer;
    position: relative;
}

.kete_toggle_btn + label:before
{
    content: '\02717'; /* cross */
    position: absolute;
    left: 0.5em;
}

.kete_toggle_btn + label:hover,
.kete_toggle_btn:focus + label
{
    background: #d6d2ce;
}

.kete_toggle_btn:checked + label
{
    background: #a3cc57;
    color: #fff;
}

.kete_toggle_btn:checked + label:before
{
    content: '\02713'; /* tick */
}

.kete_toggle_btn:checked + label:hover,
.kete_toggle_btn:checked:focus + label
{
    background: #8fb34d;
    color: #fff;
}


.kete_toggle_submit_btn
{
    margin: 1em 0 .5em;
    background: #f0ebe5;
    color: #707070;
}

.kete_toggle_submit_btn:hover,
.kete_toggle_submit_btn:focus
{
    background: #d6d2ce;
}

.kete_toggle_submit_btn::before
{
    content: '\02717'; /* cross */
    margin-right: .5em;
    background: rgba(0, 0, 0, 0.1);
    display: inline-block;
    width: 1.25em;
    height: 1.25em;
    line-height: 1.25em;
    margin-left: -1em;
    border-radius: .75em;
}

.kete_toggle_submit_btn.checked
{
    background: #a3cc57;
    color: #fff;
}

.kete_toggle_submit_btn.checked:hover,
.kete_toggle_submit_btn.checked:focus
{
    background: #8fb34d;
    color: #fff;
}

.kete_toggle_submit_btn.checked::before
{
    content: '\02713'; /* tick */
}

li button.kete_toggle_btn
{
    margin: 1em 0 .5em;
}

li.kete_toggle_option
{
    font-size: .8em;
}

/* *********************************************************************************************************************************************************

    Generic All-Auth Styles

   ********************************************************************************************************************************************************* */


main.account_page .my_kete_panel input:not([type="radio"]):not([type="checkbox"])
{
    display: block;
}

main.account_page .my_kete_panel input[type="submit"], button
{
    font-family: SourceSansPro, sans-serif;
    font-weight: 700;
    font-size: 20px;
    color: #fff;
    border: none;
    border-radius: 1.5em;
    text-align: center;
    background: #f09930;
    border: 0;
    padding: .25em 8em;
    margin: 2em 0;
}

main.account_page .my_kete_panel input[type="submit"]:hover,
main.account_page .my_kete_panel input[type="submit"]:focus,
button:hover,
button:focus
{
    background: #d6862b;
    color: #fff;
    text-decoration: none;
    /*background: #f79b31;*/
}

/* *********************************************************************************************************************************************************

    Login Section Styles

   ********************************************************************************************************************************************************* */

main.kete_login
{
    background: #a3cc57;
}

main.kete_login .login_methods
{
    display: flex;
    align-items: center;
    justify-content: space-around;
    margin: 4em 0 8em;
}

main.kete_login .login_with_social div.kete_btns,
main.kete_login form.login
{
    display: flex;
    flex-direction: column;
}

main.kete_login .login_signup
{
    text-align: center;
    padding: 4em 0 8em;
    border-top: solid #fff;
}

main.kete_login .login_signup > h2
{
    margin-bottom: 0.5em;
    color: #fff;
}

main.kete_login #remember_me
{
    align-self: center;
}

main.kete_login #profile_login
{
    margin: 1em 0;
}

main.kete_login #forgotten_password
{
    color: #fff;
    align-self: center;
}

main.kete_login #profile_create
{
    margin: 4em 0 1em;
}

main.kete_login .separator
{
    width: 4px;
    background: #24633d;
    align-self: normal;
    margin: 0 1em;
}

.kete_form_field
{
    text-align: center;
}

.kete_form_field .errorlist
{
    list-style: none;
    font-weight: 700;
    color: darkred;
    padding-left: 0;
    margin-top: 2em;
}

.kete_form_field:first-of-type .errorlist
{
    margin-top: 0;
}


/* *********************************************************************************************************************************************************

    MY KETE Section Styles

   ********************************************************************************************************************************************************* */

main.my_kete
{
    background: url('img/kete_bg_tile_darkgreen_204x205.png') repeat;
    padding-top: 150px;
    margin-top: -150px;
    overflow-x: visible;
}

main,
main.my_kete,
main.my_kete > div.container
{
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    /*justify-content: stretch;*/
}

.my_kete_panel
{
    flex-grow: 1;
}

.my_kete_panel_header
{
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.my_kete_user
{
    font-size: 20px;
    font-weight: bold;
    color: #fff;
    text-align: right;
    line-height: 1;
}

.my_kete_user a
{
    color: #fff;
}

.my_kete_user a.sign_out
{
    font-size: .8em;
    color: #f0ebe5;
}

.my_kete_tabs
{
    margin-top: 2em;
}

.my_kete_tabs a
{
    background: #efeae6;
    font-size: 20px;
    font-weight: 700;
    padding: .75em 2em;
    margin-right: .25em;
    border: solid 2px transparent;
    border-radius: 1em 1em 0 0;
    display: inline-block;
    color: #707070;
}

.my_kete_tabs a:focus
{
    border-color: darkgreen;
}

main.my_badges #kete_tab_my_badges,
main.my_profile #kete_tab_my_profile
{
    background: #fff;
    color: #2e404f;
}

.my_kete_panel
{
    padding: 24px;
    background: #fff;
    border-radius: 0 1em 1em 1em;
    margin-bottom: -2em;
    z-index: 10;
    position: relative;
}

.my_kete_panel h1
{
    font-size: 6em;
    line-height: 1;
    margin-bottom: .3em;
}

div.my_kete_panel .kete_btn, div.my_kete_panel button
{
    width: 40%;
    padding: .5em 0;
    line-height: 1;
}

.kete_profile_data h2
{
    margin-bottom: 1em;
}

.kete_profile_data h3
{
    font-size: 1.2em;
    font-weight: 400;
    color: #707070;
    margin-bottom: 0;
}

.kete_profile_value
{
    font-size: 1em;
    font-weight: 700;
    margin-bottom: 1em;
}

.kete_profile_data li
{
    text-indent: -1em;
    padding-left: 1em;
    margin-left: -1em;
    list-style: none;
}

.kete_profile_data li::before
{
    content: '\02014';
    display: inline-block;
    width: 1em;
}

main.my_badges .my_badges_header
{
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

main.my_badges .my_badges_header .kete_btn
{
    max-width: 40%;
}

main.kete_main .kete_grid_buttons
{
    display: flex;
    flex-direction: column;
    width: 24%; /*230px;*/
    margin-left: 10px; /*30px;*/
}

main.kete_main .kete_grid
{
    flex-grow: 1;
    flex-wrap: wrap;
    display: flex;
    /*justify-content: space-around;*/
    width: 80%;
    margin: -12px 0 0 -12px;
}

main.kete_main .kete_grid_panel
{
    display: flex;
}

main.kete_main .kete_grid_panel .no_selectors
{
    border: solid 4px #d0d0d0;
    border-radius: 1em;
    padding: 8em 0;
    color: #707070;
    text-align: center;
    flex-grow: 1;
    margin: 16px;
    display: none;
}

main.kete_main .kete_grid .kete_grid_selector
{
    background: #f0ebe5;
    color: #707070;
    width: 192px;
    padding: 30px 22px 1em;
    margin: 12px 0 0 12px;
    border-radius: 1.5em;
    border: solid transparent 8px;
    display: none;
    cursor: pointer;
}

main.kete_main .kete_grid .kete_grid_selector:hover,
main.kete_main .kete_grid .kete_grid_selector:focus
{
    background: #d6d2ce;
}

main.my_badges .kete_grid_panel.show_enrolled .kete_grid_selector.enrolled
{
    display: block;
}

main.my_badges .kete_grid_panel.show_awarded .kete_grid_selector.awarded
{
    display: block;
}

main.browse_badges .kete_grid .kete_grid_selector
{
    display: block;
}

main.kete_main .kete_grid .kete_grid_selector.selected
{
    border-color: #a3cc57;
}

main.kete_main .kete_grid .kete_grid_selector h1
{
    font-family: SourceSansPro, sans-serif;
    font-size: 1em;
    font-weight: 700;
    text-align: center;
    margin: 1em -1em;
    line-height: 1;
    height: 2.2em;
    overflow: hidden;
}

main.kete_main .kete_grid .kete_grid_selector_image
{
    width: 132px;
    height: 132px;
    background-color: #fff;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    border-radius: 50%;
}

main.kete_main .kete_grid .enrolled .kete_grid_selector_image
{
    filter: saturate(0);
}

main.kete_main .kete_grid .kete_grid_selector.selected .kete_grid_selector_image
{
    border-radius: 0;
}

main.kete_main .kete_grid_panel .kete_grid_details_store
{
    display: none;
}

main.kete_main .kete_grid_panel .kete_grid_details
{
    width: 100%;
    background: #f0ebe5;
    border-radius: 1.5em;
    border: solid #a3cc57 8px;
    margin: 16px 0 0 16px;
    padding: 1em;
}

main.kete_main .kete_grid_details .kete_grid_selector_image
{
    width: 108px;
    height: 108px;
    border-radius: 0;
    margin: 0 16px 16px 0;
    flex-grow: 0;
    flex-shrink: 0;
}

.kete_grid_details header
{
    display: flex;
    margin-bottom: 16px;
    position: relative;
}


.kete_grid_details > header > div
{
    flex-grow: 1;
    position: relative;
}

.kete_grid_details > header h1
{
    font-family: SourceSansPro, sans-serif;
    font-size: 1em;
    font-weight: 700;
    padding-right: 2em;
}

.kete_grid_details > :last-child
{
    margin-bottom: 0;
}

.kete_badge_organisation_image
{
    width: 50px;
    height: 50px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    flex-grow: 0;
    flex-shrink: 0;
    margin-right: 16px;
}

.kete_issued_by
{
    flex-grow: 1;
}

.kete_badge_organisation_details
{
    display: flex;
    align-items: center;
    margin-bottom: 2em;
}

.kete_grid_details button.close_details
{
    background: transparent;
    color: #707070;
    position: absolute;
    top: 0;
    right: 0;
    margin: 0;
    padding: 0;
    font-size: 2em;
    line-height: .5;
    width: auto;
}


.kete_grid_details_white_panel
{
    background: #fff;
    padding: 1em;
    border-radius: .5em;
}

.kete_grid_details_white_panel > :last-child
{
    margin-bottom: 0;
}

.kete_grid_details_white_panel + .kete_grid_details_white_panel
{
    margin-top: 1em;
}

.kete_achievement
{
    font-size: 1em;
    font-weight: 700;
    color: #2e404f;
    margin-top: 1em;
}

.kete_achievement:first-child
{
    margin-top: 0;
}

.kete_objective
{
    font-size: 1em;
    font-weight: 400;
    color: #000;
    margin-bottom: 0.5em;
    padding-left: 1.7em;
    text-indent: -1.7em;
}

.kete_objective:last-child
{
    margin-bottom: 0;
}

.kete_objective::before
{
    display: inline-block;
    width: 1.2em;
    height: 1.2em;
    border: solid 1px #707070;
    border-radius: .3em;
    content: '';
    vertical-align: middle;
    margin-right: 0.5em;
    line-height: 1.1;
    text-align: center;
    text-indent: 0;
}

.kete_objective.kete_awarded::before
{
    content: '\2713';
    color: #cc2147;
}

main.browse_badges .kete_grid .kete_grid_selector_image
{
    border-radius: 0;
}

main.browse_badges .organisation_badges
{
    margin-left: 124px;
}

main.browse_badges .organisation_badges h2
{
    font-size: 20px;
}

main.browse_badges .organisation_badges ul
{
    list-style: none;
    padding: 0;
}

main.browse_badges .organisation_badge_details
{
    display: flex;
    margin-bottom: 1em;
}

main.browse_badges .organisation_badge_details .badge_name
{
    font-weight: 700;
}

main.browse_badges .organisation_badges h2
{
    margin: 2em 0 1em;
}

main.claim_page h2
{
    font-size: 1.2em;
}

main.claim_page .claim_error
{
    font-weight: 700;
    color: darkred;
}

main.claim_page .claim_succeeded
{
    font-weight: 700;
    color: #24633d;
    margin: 2em 0;
}

main.claim_page .claim_succeeded a
{
    color: #a3cc57;
}

main.claim_page form
{
    background: #f0ebe5;
    border-radius: 1.5em;
    padding: 1em;
}

main.claim_page .form_fields
{
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}

main.claim_page .form_fields label
{
    padding-right: 2em;
    margin: 0;
}

main.claim_page .form_fields .kete_btn
{
    margin: 0 0 0 auto;
    flex-grow: 0;
}


/* *********************************************************************************************************************************************************

    Can My Organisation Aside Styles

   ********************************************************************************************************************************************************* */

.can_my_organisation
{
    background: #a661a6;
    margin-top: 2em;
}

.join_kete_nz
{
    background: #a3cc57;
    margin-top: 2em;
}

.can_my_organisation svg.top_wave,
.join_kete_nz svg.top_wave
{
    /* at some resolutions, pixel-rounding will cause a single line of the coloured background to appear above the svg image; by shifting everything up one pixel we avoid that */
    position: relative;
    top: -1px;
}

.join_kete_nz svg.top_wave
{
    top: -5px;
}

.join_kete_nz .container
{
    display: flex;
    align-items: center;
    justify-content: space-around;
    padding-top: 2em;
    padding-bottom: 2em;
}

.can_my_organisation h1,
.join_kete_nz h1
{
    color: #fff;
    text-align: center;
    line-height: 1;
    margin: 0.5em 0;
}

.join_kete_nz h1
{
    line-height: .8;
    text-align: left;
    text-indent: -0.25em;
    transform: rotate(-7.5deg);
    padding-left: 0.3em;
    padding-right: 0.3em;
}

.can_my_organisation p,
.join_kete_nz p
{
    color: #fff;
    font-weight: 700;
    font-size: 1.5em;
    text-align: center;
    line-height: 1.2;
    padding: 0 4em;
}

.join_kete_nz p
{
    padding: 0 1em;
}

.can_my_organisation .kete_btn
{
    max-width: 40%;
}

.join_kete_nz .kete_btn
{
    max-width: 80%;
}

.can_my_organisation .kete_btns,
.join_kete_nz .kete_btns
{
    justify-content: center;
    margin: 3em 0 6em;
}

.join_kete_nz .kete_btns
{
    margin: 1em;
}


/* *********************************************************************************************************************************************************

    Kete Generic Content Styles

   ********************************************************************************************************************************************************* */

main.kete_generic_content h2
{
    margin-top: 2em;
}

main.kete_generic_content h2:first-child
{
    margin-top: 0;
}

main.kete_generic_content h2
{
    margin-top: 1.5em;
}


/* *********************************************************************************************************************************************************

    Kete Homepage Styles

   ********************************************************************************************************************************************************* */

main.kete_home .welcome_to_kete
{
    background: url('img/kete_bg_tile_darkgreen_204x205.png') repeat;
    padding-top: calc(150px + 6em);
    margin-top: -150px;
    padding-bottom: calc(8em + 100% / 22.81703);
    color: #fff;
}


main.kete_home .welcome_to_kete > .container
{
    display: flex;
    align-items: center;
    justify-content: space-around;
}

main.kete_home .welcome_to_kete h1
{
    color: #a3cc57;
    line-height: 0.9;
    transform: rotate(-7deg);
    text-align: left;
}

main.kete_home .welcome_to_kete h2
{
    font-size: 1.6em;
    margin-top: 2em;
}

main.kete_home .welcome_to_kete header
{
    padding-right: 1em;
    text-align: center;
}

main.kete_home .welcome_to_kete div.right_actions
{
    display: flex;
    flex-direction: column;
    align-items: normal;
    min-width: 30%;
    text-align: center;
}


main.kete_home .welcome_to_kete div.right_actions > p
{
    margin-top: 1em;
}

main.kete_home .welcome_to_kete div.right_actions > *
{
    margin-bottom: 0.5em;
}

main.kete_home .welcome_to_kete div.right_actions > p a
{
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
}

main.kete_home .welcome_to_kete div.right_actions > p a:hover
{
    opacity: .8;
    text-decoration: none;
}

main.kete_home .home_wave
{
    position: absolute;
    left: -1px;
    width: calc(100% + 2px);
}

main.kete_home .home_wave.home_wave_top
{
    top: 3px; /* needed to fix rounding issues when users zoom down their browsers */
    transform: translateY(-100%);
}

main.kete_home .home_wave.home_wave_bottom
{
    bottom: 2px;
    transform: translateY(100%);
}

main.kete_home .how_it_works
{
    position: relative;
    background: #a3cc57;
    color: #fff;
    padding-bottom: calc(4em + 100% / 15.39982);
}

main.kete_home .how_it_works .home_wave_top path
{
    fill: #a3cc57;
    stroke: none;
}

main.kete_home .meet_kids .home_wave path
{
    fill: #a661a6;
    stroke: none;
}

main.kete_home .how_it_works h1
{
    color: #fff;
    font-size: 5em;
}


main.kete_home .how_it_works .images
{
    display: flex;
    justify-content: space-around;
}


main.kete_home .how_it_works .images a
{
    max-width: 25%;
}

main.kete_home .how_it_works .images a:hover,
main.kete_home .how_it_works .images a:focus
{
    opacity: .8;
}

main.kete_home .how_it_works .images > a:nth-child(2)
{
    margin-top: 2em;
}

main.kete_home .how_it_works .images img
{
    max-width: 100%;
}

main.kete_home .how_it_works .kete_btns
{
    max-width: 50%;
    margin-left: auto;
    margin-right: auto;
}

main.kete_home .meet_kids
{
    position: relative;
    background: #a661a6;
    padding: 0;
}

main.kete_home .meet_kids .container
{
    display: flex;
}

main.kete_home .meet_kids .kids_images
{
    min-width: 40%;
}

main.kete_home .meet_kids .kids_images div
{
    position: relative;
    background: url('img/home_kids_2579x2580.png') no-repeat center;
    background-size: contain;
    padding-bottom: 100%;
}

main.kete_home .meet_kids .kids_images a
{
    position: absolute;
    opacity: .5;
}

main.kete_home .meet_kids .kids_images #logan
{
    left: 4.07135%;
    right: 61.14773%;
    top: 29.4186%;
    bottom: 23.13953%;
}


main.kete_home .meet_kids .kids_images #gerry
{
    left: 38.96859%;
    top: 2.67442%;
    right: 25.08724%;
    bottom: 48.95349%;
}

main.kete_home .meet_kids .kids_images #dorla
{
    top: 46.97674%;
    left: 56.76619%;
    right: 7.75494%;
    bottom: 6.27907%;
}

main.kete_home .meet_kids .right_actions
{
    display: flex;
    flex-direction: column;
    text-align: center;
    align-items: center;
    justify-content: center;
}

main.kete_home .meet_kids .right_actions h1
{
    font-size: 5em;
    color: #fff;
    line-height: 0.9;
}

main.kete_home .meet_kids .right_actions h2
{
    color: #fff;
    font-size: 1.6em;
    margin: 1em 0;
}

main.kete_home .meet_kids .right_actions .kete_btn
{
    min-width: 50%;
    flex-grow: 0;
}

main.kete_home aside.join_kete_nz
{
    background: url('img/kete_bg_tile_lightgreen_200x200.png') repeat;
    margin-top: 0;
    padding-top: calc(100% / 8.78313);
    padding-bottom: 2em;
}


/* *********************************************************************************************************************************************************

    Contact Us Page Styles

   ********************************************************************************************************************************************************* */


main.contact form
{
    margin-top: 4em;
}

main.contact form .field
{
    margin-bottom: 1.6em;
}


main.contact form .field.required_field
{
    margin-bottom: 0.4em;
}


main.contact form input, main.contact form textarea
{
    background: #f5f2f0;
    display: block;
    width: 100%;
    border: none;
    padding: .5em 1em;
    border-radius: 1.5em;
}

main.contact form input::placeholder, main.contact form textarea::placeholder
{
    color: #707070;
}

main.contact form .required
{
    color: #f00;
    padding-left: 1.4em;
    font-size: 0.75em;
    margin-top: .25em;
}

main.contact form .kete_btns
{
    justify-content: center;
}

main.contact form .kete_btn
{
    min-width: 25%;
    flex-grow: 0;
}

main.contact .message_sent
{
    font-weight: 700;
    margin: 4em 0;
}

main.contact .contact_us_error
{
    color: red;
    margin-bottom: 2em;
    padding-left: 3em;
    text-indent: -2em;
    line-height: 1.2;
}

main.contact .contact_us_error::before
{
    content: '\02717';
    margin-right: 1em;
    width: 1em;
    display: inline-block;
    text-indent: 0;
}


/* *********************************************************************************************************************************************************

    Public BUS Styles

   ********************************************************************************************************************************************************* */


main.public_bus .my_kete_panel
{
    margin-top: 2em;
    padding: 2.4em;
}

main.public_bus header
{
    display: flex;
    align-items: top;
    justify-content: space-between;
}

main.public_bus header h1
{
    font-family: SourceSansPro, sans-serif;
    font-weight: 700;
    font-size: 3em;
}

main.public_bus .right_actions
{
    margin-left: 2em;
}

main.public_bus .kete_badge_image_wrap
{
    width: 40%;
}

main.public_bus .kete_badge_image
{
    padding-bottom: 100%;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

main.public_bus .badge_description
{
    font-size: 0.9em;
    line-height: 1.5;
}

main.public_bus .blurb
{
    text-align: center;
    margin-top: 2em;
    border-top: solid 1px;
    padding-top: 2em;
    font-family: SourceSansPro, sans-serif;
}

main.public_bus h2
{
    font-family: Chendolle, sans-serif;
    font-size: 3em;
    color: #24633d;
    text-shadow: #a3cc57 2px 2px 2px;
}

main.public_bus .blurb p
{
    margin-bottom: 0;
}

main.public_bus .blurb_details
{
    font-weight: 700;
}

.sharing_link_details
{
    margin-top: 2em;
}

div.sharing_link_details .kete_btn
{
    margin: 0;
    width: 100%;
}

div.sharing_link_details div
{
    padding: 2em;
    margin-top: -1em;
    background: #f0ebe5;
    border: solid 4px #f09930;
    border-radius: 0 0 1em 1em;
    margin-left: 0;
    display: none;
}

div.sharing_link_details a.sharing_link
{
    margin-bottom: 1em;
    display: block;
    text-align: center;
}

div.sharing_link_details div > :last-child
{
    margin-bottom: 0;
}


div.sharing_link_details.show_sharing_details button.kete_btn
{
    border-radius: 1em 1em 0 0;
}

div.sharing_link_details.show_sharing_details div
{
    display: block;
}

@media only screen and (max-width: 944px)   /* MOBILE AND TABLET */
{
    html, body
    {
        font-size: 16px;
    }

    main.my_badges .my_badges_header
    {
        flex-direction: column;
        margin-bottom: 2em;
        align-items: normal;
    }

    main.my_badges .my_badges_header .kete_btn
    {
        max-width: 100%;
    }

    main.my_badges .kete_grid_panel
    {
        flex-direction: column;
    }

    main.my_badges .kete_grid
    {
        order: 2;
        width: 100%;
        /*justify-content: space-around;*/
        /*margin-left: 0;*/
    }

    main.my_badges .kete_grid .kete_grid_selector
    {
        /*margin-left: 0;*/
    }

    main.my_badges .kete_grid_buttons
    {
        order: 1;
        width: 100%;
        flex-direction: row;
        justify-content: space-between;
        margin-left: 0;
        margin-bottom: 2em;
    }

    .kete_toggle_btn + label
    {
        width: calc(50% - 7.5px);
    }

    .can_my_organisation
    {
        font-size: .75em;
    }


    main.kete_home .welcome_to_kete > .container
    {
        flex-direction: column;
    }

    main.kete_home .welcome_to_kete div.right_actions
    {
        margin-top: 4em;
    }

    main.kete_home .how_it_works
    {
        padding-top: 2em;
    }


    main.kete_home aside.join_kete_nz
    {
        padding-top: 4em;
    }

    main header.generic_page h2
    {
        max-width: 40%;
    }

    main header.generic_page h2 br
    {
        display: none;
    }

    div.my_kete_panel .kete_btn, div.my_kete_panel button
    {
        width: 100%;
        margin: .5em 0;
    }

}

@media only screen and (max-width: 749px)   /* MOBILE ONLY */
{
    html, body
    {
        font-size: 13px;
    }

    .kete_header #kete_header_navbar_collapse
    {
        background: #a3cc57;
        padding: 0 5%;
        z-index: 20;
        position: absolute;
        top: 150px;
        left: 0;
        right: 0;
    }

    .kete_header .kete_logo
    {
        max-height: 40px;
    }

    .kete_header .navbar-nav
    {
        align-items: unset;
    }

    .kete_header .navbar-toggler-icon
    {
        background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
    }

    .kete_header .dropdown-menu
    {
        background: rgba(0, 0, 0, .05);
    }

    .kete_header .dropdown-item
    {
        color: #24633d;
    }

    .my_kete_item .nav-link
    {
        background: none;
        padding: .5rem 0 !important;
        border-radius: 0;
    }

    main header.generic_page > .container
    {
        flex-direction: column;
    }

    main header.generic_page h1
    {
        padding-right: 0;
        margin-bottom: 0.5em;
    }

    main header.generic_page h2
    {
        max-width: none;
    }

    footer#page_footer .container
    {
        padding-left: 15%;
        padding-right: 15%;
    }

    footer#page_footer .footer_actions
    {
        flex-direction: column;
        align-items: unset;
        text-align: center;
    }

    footer#page_footer #footer_logo
    {
        height: 50px;
    }

    footer#page_footer .keep_in_touch
    {
        margin-top: 2em;
        padding-left: 0;
    }

    footer#page_footer .social_buttons img
    {
        /*height: 33px;*/
    }

    footer#page_footer .footer_section_links
    {
        flex-direction: column;
    }

    footer#page_footer .footer_section_links a
    {
        margin-top: 1em;
    }

    footer#page_footer .footer_section_links a:first-child
    {
        margin-top: 0;
    }

    footer#page_footer .footer_lower
    {
        flex-direction: column;
        align-items: center;
    }

    footer#page_footer .footer_lower .footer_tertiary_links
    {
        margin-bottom: 1em;
    }

    .kete_btns
    {
        flex-direction: column;
    }

    .kete_btns .kete_btn
    {
        margin-left: 0;
        margin-top: 1em;
    }

    .kete_btns .kete_btn:first-child
    {
        margin-top: 0;
    }

    .my_kete_panel_header
    {
        flex-direction: column;
        align-items: normal;
    }

    .my_kete_user
    {
        order: 1;
    }

    .my_kete_tabs
    {
        order: 2;
    }

    .my_kete_tabs a
    {
        padding: .5em 1em;
    }

    .my_badges .kete_grid_details header
    {
        flex-direction: column;
    }

    .kete_grid_details > header > div
    {
        position: static;
    }

    main.my_badges .kete_grid
    {
        justify-content: space-around;
    }


    main.my_badges .kete_grid_details .kete_grid_selector_image
    {
        width: calc(100% - 2em);
    }

    .kete_issued_by > b
    {
        display: block;
    }


    main.browse_badges .organisation_badges
    {
        margin-left: 0;
    }

    main.browse_badges .organisation_badge_details
    {
        flex-direction: column;
    }

    .can_my_organisation h1
    {
        font-size: 4em;
    }

    .can_my_organisation p
    {
        padding: 0;
    }

    .can_my_organisation .kete_btns
    {
        align-content: center;
    }

    .can_my_organisation .kete_btns .kete_btn:first-child
    {
        margin: auto;
    }

    .can_my_organisation .kete_btn
    {
        width: 80%;
        max-width: 80%;
    }

    .join_kete_nz .kete_btn
    {
        width: 100%;
        max-width: 100%;
    }

    .join_kete_nz .container
    {
        flex-direction: column;
        padding-top: 0;
        padding-bottom: 4em;
    }

    main.claim_page .form_fields
    {
        flex-direction: column;
    }

    main.claim_page .claim_error
    {
        margin-bottom: 1em;
    }

    main.claim_page .form_fields .kete_btn
    {
        margin: 1em 0 0;
    }

    main.kete_login .login_methods
    {
        flex-direction: column;
    }

    main.kete_login .separator
    {
        width: auto;
        height: 4px;
        margin: 2em 0 1em;
    }


    main.kete_home .how_it_works
    {
        padding-top: 4em;
    }

    main.kete_home .how_it_works .images
    {
        flex-direction: column;
        align-items: center;
    }

    main.kete_home .how_it_works .images a
    {
        max-width: 50%;
        margin-top: 2em;
    }

    main.kete_home .how_it_works h1
    {
        font-size: 4em;
        line-height: .8;
    }

    main.kete_home .meet_kids .container
    {
        flex-direction: column;
    }

    main.kete_home .meet_kids
    {
        padding: 2em 0;
    }


    main.public_bus header
    {
        flex-direction: column;
    }

    main.public_bus .kete_badge_image_wrap
    {
        width: 100%;
        margin-bottom: 2em;
    }

    main.public_bus .right_actions
    {
        margin-left: 0;
    }


}

