body {
    display: flex;
}

main {
    flex: 1 0 auto;
    /*
    For IE 11, which doesn't treat <main> as a block element because, I think, it doesn't recognise the <main> element
    at all.
    */
    display: block;
}

#page, .page {
    padding-left: 0;
    padding-right: 0;
}

main .content,
header #non_nav_header,
nav ul.menu,
nav .more_menu_container,
#search_panel,
footer .footer_content
{
    max-width: 980px;
    margin: 0 auto 0 auto;
    box-sizing: border-box;
    padding-left: 10px;
    padding-right: 10px;
}

footer .footer_content
{
    padding-top: 10px;
    padding-bottom: 10px;
	margin-top:25px;
}

ul.key_products,
ul.key_products_condensed {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0;
}

ul.key_products li,
ul.key_products_condensed li {
    margin: 0;
    list-style-type: none;
    color: #474747;
    background: url("data:image/svg+xml,%3Csvg width='10' height='10' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpolygon points='0,0 0,10 10,5' fill='%239b9fa7'/%3E%3C/svg%3E") left center no-repeat;
}

ul.key_products li {
    padding: 9px 1px 9px 25px;
}

ul.key_products_condensed li {
    padding: 5px 1px 5px 25px;
}

footer {
    margin-top: 20px;
}

#footer_main {
    background: linear-gradient(#e2e2e2, #fff);
    color: #4e4e4e;
    padding-bottom: 10px;
}

#footer_main .footer_row {
    display: flex;
    flex-wrap: wrap;
}

#footer_main .footer_column {
    flex: 1;
    padding-top: 6px;
    padding-bottom: 6px;
}

#footer_main ul:not(.key_products_condensed) {
    margin-left: 0;
    margin-top: 0;
}

#footer_main ul:not(.key_products_condensed) li {
    list-style-type: none;
    margin-left: 0;
    padding: 0 6px 6px 0;
    line-height: 1em;
}

#footer_main a {
    text-decoration: none;
    color: #4e4e4e;
}

#footer_main a:hover {
    color: #e56220;
}

#footer_main a * {
    vertical-align: middle;
}

#footer_main input {
    display: block;
    width: 100%;
    max-width: 300px;
}

#footer_main .subscribe_button_container input {
    text-align: center;
    font-size: 18px;
    color: #fff;
    padding: 6px 0;
    border-radius: 8px;
    -webkit-appearance: none; /* Prevent roundy-gradienty button in iOS */
    background-color: #e76225;
    text-shadow: -1px 1px 0 #c3531b, 1px 1px 0 #c3531b, 1px -1px 0 #c3531b, -1px -1px 0 #c3531b;
}

#footer_main .subscribe_button_container input:hover {
    background-color: #b64d1d;
    color: #fff;
}

#footer_main .email {
    border: 1px solid #999;
    margin-top: 6px;
    margin-bottom: 10px;
    padding: 2px 6px;
}

#point_switcher {
    background: url('../images/icons/point.png') left center no-repeat;
    padding-left: 20px;
}

#point_switcher.point_switcher_inactive {
    background-image: url('../images/icons/point-grey.png');
    color: #333;
}

#footer_bottom {
    background-color: #464646;
    color: #fff;
    font-size: 12px;
    /*padding-top: 5px;*/
    padding-bottom: 5px;
}

#footer_bottom a {
    text-decoration: none;
    /*color: #e56220;*/
}

#footer_bottom span {
    padding-right: 20px;
}

#footer_bottom span:last-child {
    padding-right: 0;
}

header .hidden {
    display: none;
}

#non_nav_header {
    margin-bottom: 7px;
}

#header_components {
    margin: 0;
    padding: 0;
}

#header_components li {
    list-style: none;
    margin: 0;
    padding: 0;
}

#non_nav_header_inner {
    display: flex;
    align-items: center;
}

#logo {
    margin-right: 5px;
    max-width: 156px;
    flex: 1;
}

#logo img {
    max-width: 100%;
    width: 100%;
    height: auto;
}

#header_components {
    flex: 1;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

#header_components li {
    display: flex;
    align-items: center;
}

#header_components li:first-child {
    margin-left: 0;
}

#header_components li:hover * {
    color: #e56220;
}

#header_components li:hover svg,
#header_components li:hover svg * {
    fill: #e56220;
}

#header_components li a {
    text-decoration: none;
    color: inherit;
}

#header_components li a * {
    vertical-align: middle;
}

header input.addsearch {
    background-image: url('../images/icons/search_box.png');
    background-repeat: no-repeat;
    background-position: 96% 50%;
    border: 1px solid rgb(217, 217, 217);
    padding: 6px;
    box-shadow: rgb(217, 217, 217) 2px 2px 4px inset;
    width: 220px;
}

#search_panel {
    background-color: #f3f3f3;
    border-bottom: solid 1px lightgrey;
    box-sizing: border-box;
}

#search_panel label {
    display: flex;
    padding-top: 10px;
    padding-bottom: 10px;
}

#search_panel_input {
    flex: 1;
}

#search_closer {
    font-size: 25px;
    text-decoration: none;
    margin-left: 5px;
    color: inherit;
}

.hideable_panel {
    transition: height 200ms ease 0s;
    overflow: hidden;
}

nav .menu_container {
    background-color: #e56220;
    margin: 0 auto;
    text-align: left;
}

nav .menu_container ul.menu {
    position: relative;
    display: flex;
    margin: 0 auto;
    list-style: none;
    line-height: 30px;
}

nav .menu_container ul.menu > li {
    list-style: none;
    padding: 0;
    border-left: 1px #b64d1d solid;
    margin: 0;
}

nav .menu_container ul.menu > li:first-child {
    padding-left: 0;
    margin-left: 0;
    border-left: none;
}

nav .menu_container ul.menu > li > a {
    display: block;
    padding: 10px 11px 10px 14px;
    color: #fff;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    white-space: nowrap;
    transition: 0.2s;
    text-shadow: -1px 1px 0 #c3531b, 1px 1px 0 #c3531b, 1px -1px 0 #c3531b, -1px -1px 0 #c3531b;
}

nav .menu_container ul.menu > li:first-child > a {
    padding-left: 0;
}

nav .menu_container ul.menu > li:hover > a {
    text-decoration: underline;
}

nav .menu_container ul.menu li .mega_menu {
    position: absolute;
    margin: 0 auto;
    left: -999em;
    text-align: left;
    padding: 10px;
    border: 1px solid #e6e6e6;
    border-top:none;
    z-index: 100;
    color: #474747;
    box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.35);
    background: linear-gradient(#FFF, #F2F2F2);
    border-bottom-right-radius: 8px;
    border-bottom-left-radius: 8px;
    height: 277px;
    line-height: normal;
    display: flex;
    box-sizing: content-box;
}

nav .menu_container ul.menu li .mega_menu * {
    line-height: inherit;
}

nav .menu_container ul.menu li .mega_menu .column {
    flex: 1;
    padding-top: 5px;
    padding-right: 10px;
}

nav .menu_container ul.menu li .mega_menu .column .mega_block {
    margin-bottom: 25px;
}

nav .menu_container ul.menu li .mega_menu .column .mega_block:last-child {
    margin-bottom: 0;
}

nav .menu_container ul.menu li .mega_menu a {
    color: #474747;
    text-decoration: none;
}

nav .menu_container ul.menu li .mega_menu a:hover {
    outline: none;
}

nav .menu_container ul.menu li .mega_menu p {
    color: #757575;
    margin: 0;
}

nav .menu_container ul.menu li .mega_menu a.mega_menu_link_block {
    display: block;
    padding: 1px;
}

nav .menu_container ul.menu li .mega_menu .flag_clump {
    margin-top: 15px;
}

nav .menu_container ul.menu li .mega_menu img.success_stories {
}

nav .menu_container ul.menu li .mega_menu h2 {
    font-size: 20px;
    font-weight: normal;
    margin: 0 0 10px 0;
    padding: 0;
    color: inherit;
}

nav .menu_container ul.menu li .mega_menu a.mega_menu_link_block:last-child h2:last-child {
    margin: 0;
}

nav .menu_container ul.menu li .mega_menu h2 img {
    margin-right: 5px;
}

nav .menu_container ul.menu li .mega_menu *.all_new {
    font-size: 14px;
    font-style: italic;
    vertical-align: super;
    color: #e56220;
}

nav .menu_container ul.menu li .mega_menu ul.key_products li:hover,
nav .menu_container ul.menu li .mega_menu ul.key_products_condensed li:hover {
    background-image: url("data:image/svg+xml,%3Csvg width='10' height='10' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpolygon points='0,0 0,10 10,5' fill='%23fff'/%3E%3C/svg%3E");
}

nav .menu_container ul.menu li .mega_menu ul.key_products li a,
nav .menu_container ul.menu li .mega_menu ul.key_products_condensed li a {
    display: block;
    color: inherit;
}

nav .menu_container ul.menu li .mega_menu ul.key_products li:hover,
nav .menu_container ul.menu li .mega_menu ul.key_products_condensed li:hover,
a.mega_menu_link_block:hover, nav .menu_container ul.menu li .mega_menu a.mega_menu_link_block:hover * {
    background-color: #c3531b;
    color: #fff;
    box-shadow: 0 0 0 6px #c3531b;
	border-radius: 1px;
}

nav .more_menu_container {
    background-color: #e87941;
    overflow: hidden;
}

nav .more_menu_container h2 {
    font-size: 1.2em;
    margin-bottom: 5px;
}

nav .more_menu_container ul.more_menu {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    padding: 20px 0 10px 10px;
    margin: -10px;
}

nav .more_menu_container ul.more_menu li {
    list-style: none;
    padding: 0;
    margin: 0;
    width: 33.3%;
    border: solid transparent;
    border-width: 0 10px 10px 0;
    background-clip: padding-box;
    box-sizing: border-box;
}

nav .more_menu_container ul.more_menu li a {
    color: #fff;
    text-decoration: none;
}

#breadcrumb_bar {
    display: flex;
    padding: 9px 0;
    margin: 0 0 50px 0;
    border-bottom: 1px solid #e6e6e6;
}

#breadcrumb_bar li {
    list-style: none;
    margin: 0;
    padding: 0 10px 0 0;
}

#breadcrumb_bar li a {
    background: url(../images/icons/bar1.png) right no-repeat;
    padding-right: 20px;
}

@media (min-width: 601px) {
    #header_components li#wo_login_button a img,
    .nav_menu,
    #search_panel,
    #search_opener,
    #header_components li#menu_link {
        display: none;
    }

    #non_nav_header_inner {
        padding-top: 22px;
        padding-bottom: 14px;
    }

    .header_component_caption {
        margin-right: 5px;
    }

    #header_components li {
        margin-left: 20px;
    }

    nav .more_menu_container {
        margin-top: 1px;
    }
}

@media (min-width: 920px) {
    nav .menu_container ul.menu li.active_mega_menu .mega_menu {
        left: 0;
        right: 0;
    }
}

@media (max-width: 919px) {
    #footer_main .footer_column {
        border-bottom: solid 1px #e7e7e7;
    }

    .header_component_caption {
        display: none;
    }

    #breadcrumb_bar {
        padding: 6px 0;
        font-size: 14px;
    }

    #breadcrumb_bar li {
        padding-right: 7px;
    }
}

@media (min-width: 501px) and (max-width: 919px) {
    #footer_main .footer_column {
        flex-basis: 50%;
    }
}

@media (max-width: 600px) {
    footer .footer_content {
        padding-top: 0;
        padding-bottom: 0;
    }

    #footer_main .footer_links_row .footer_column {
        padding-top: 6px;
        padding-bottom: 6px;
    }

    #non_nav_header {
        border-bottom: solid 7px #e56220;
    }

    #non_nav_header_inner {
        padding-top: 8px;
        padding-bottom: 8px;
    }

    #header_components li {
        margin-left: 15px;
        flex: 0 0 30px;
    }

    #search_input {
        display: none;
    }

    nav {
        background: none;
        border-bottom: none;
        margin-bottom: 0;
    }

    nav .menu_container {
        background: none;
        display: none;
    }

    nav .more_menu_container {
        margin-top: 2px;
    }

    nav .more_menu_container ul.more_menu li.hidden {
        display: block;
    }

    nav .menu_container ul.menu li.nav_item,
    nav .menu_container ul.menu li.nav_more,
    #breadcrumb_bar {
        display: none;
    }
}

@media (max-width: 500px) {
    #footer_main .footer_column {
        flex-basis: 100%;
    }
}

@media (max-width: 350px) {
    #header_components li {
        margin-left: 5px;
    }
}
@media print {
    #footer_main, #launcher, #header_components, .menu_container, #footer_bottom {display: none}
   

}
