/*
 * Easy Web Sites Ltd. Shop
 * Custom Theme Stylesheet
 * Author: Easy Web Sites Ltd. | easywebsites.co.uk
 */


/*----------------------------------------*/
/*  BASE HTML + BODY
/*----------------------------------------*/
html {
    font-size: 16px; /* 1rem = 16px (Bootstrap 5 baseline) */
}

body {
    font-family: "Robot Sans", sans-serif;
    color: #333;
    font-size: 1rem;
    line-height: 1.6;
    width: 100%;
}

/*----------------------------------------*/
/*  WhatsApp Button
/*----------------------------------------*/

/* Fixed bottom-right with padding for Bootstrap 3 */
.whatsapp-fixed {
    position: fixed;
    right: 32px;
    bottom: 32px;
    z-index: 1000;
}
.whatsapp-fixed img {
    height: auto;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    border-radius: 8px;
    transition: box-shadow 0.2s;
}
.whatsapp-fixed img:hover {
    box-shadow: 0 6px 24px rgba(0,0,0,0.22);
}

/*----------------------------------------*/
/*  CONTAINERS (Bootstrap 5 mimic)
/*----------------------------------------*/
.container {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

@media(min-width: 576px) {
    .container {
        max-width: 540px;
    }
}

@media(min-width: 768px) {
    .container {
        max-width: 720px;
    }
}

@media(min-width: 992px) {
    .container {
        max-width: 960px;
    }
}

@media(min-width: 1200px) {
    .container {
        max-width: 1140px;
    }
}

@media(min-width: 1400px) {
    .container {
        max-width: 1320px;
    }
}

.container-fluid {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

/*----------------------------------------*/
/*  HEADINGS
/*----------------------------------------*/
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    color: #222;
    font-family: "Exo 2", serif;
    font-weight: 400;
    margin-top: 0;
    line-height: 1.2;
}

/* Responsive fluid typography */
h1, .h1 {
    font-size: clamp(2.25rem, 6vw, 3.5rem); /* 36px–56px */
}

h2, .h2 {
    font-size: clamp(2rem, 5vw, 3rem); /* 32px–48px */
}

h3, .h3 {
    font-size: clamp(1.75rem, 4vw, 2.5rem); /* 28px–40px */
}

h4, .h4 {
    font-size: clamp(1.5rem, 3vw, 2rem); /* 24px–32px */
}

h5, .h5 {
    font-size: clamp(1.25rem, 2.5vw, 1.5rem); /* 20px–24px */
}

h6, .h6 {
    font-size: clamp(1rem, 2vw, 1.25rem); /* 16px–20px */
}

/* Font Awesome sizing reset */
.fa {
    font-size: 14px;
}

/* Paragraph spacing */
p {
    margin-bottom: 1.2em;
}

/*----------------------------------------*/
/*  TEXT + FORMS
/*----------------------------------------*/
a {
    color: #007acc;
}

a:hover {
    text-decoration: none;
    color: #000;
}

legend {
    font-size: 18px;
    padding: 7px 0;
}

label {
    font-size: 12px;
    font-weight: normal;
}

select.form-control, textarea.form-control, input[type="text"].form-control, input[type="password"].form-control, input[type="datetime"].form-control, input[type="datetime-local"].form-control, input[type="date"].form-control, input[type="month"].form-control, input[type="time"].form-control, input[type="week"].form-control, input[type="number"].form-control, input[type="email"].form-control, input[type="url"].form-control, input[type="search"].form-control, input[type="tel"].form-control, input[type="color"].form-control {
    font-size: 12px;
}

.input-group input, .input-group select, .input-group .dropdown-menu, .input-group .popover {
    font-size: 12px;
}

.input-group .input-group-addon {
    font-size: 12px;
    height: 30px;
}

span.hidden-xs, span.hidden-sm, span.hidden-md, span.hidden-lg {
    display: inline;
}

.tab-content > .tab-pane {
    padding: 15px;
}

div.required .control-label:before {
    content: '* ';
    color: #f00;
    font-weight: bold;
}

/*----------------------------------------*/
/*  DROPDOWN
/*----------------------------------------*/
.dropdown-menu li > a:hover {
    text-decoration: none;
    color: #007acc;
    background-color: #eee;
}

.dropdown-menu {
    border: none;
}

/*----------------------------------------*/
/*  PRODUCT WRAPPER
/*----------------------------------------*/
#product {
    margin-top: 10px;
}

/*----------------------------------------*/
/*  TOP BAR + CURRENCY / LANGUAGE SELECTORS
/*----------------------------------------*/
#top {
    background-color: #000;
    padding: 0;
    margin: 0;
    min-height: 36px;
}

#top .container {
    padding: 0 20px;
}

#top #form-currency .currency-select, #top #form-language .language-select {
    text-align: left;
    color: #333;
    font-size: 13px;
    padding: 3px 16px;
}

#top #form-currency .currency-select:hover, #top #form-language .language-select:hover {
    text-shadow: none;
    text-decoration: none;
    color: #007acc;
    background-color: #eee;
}

/* Top bar link styles */
#top .btn-group > .btn-link, #top-links > ul > li, #top-links > ul > li > a {
    color: #bbb;
    background: none;
    text-decoration: none;
}

#top .btn-group > .btn-link:hover, #top-links > ul > li > a:hover {
    color: #eee;
}

/* Top bar dropdown menu links */
#top-links .dropdown-menu a {
    text-shadow: none;
    font-size: 13px;
}

#top .btn-link strong {
    font-size: 14px;
    line-height: 14px;
}

#top-links {
    padding-top: 6px;
}

#top-links a + a {
    margin-left: 15px;
}

/*----------------------------------------*/
/*  HEADER / LOGO
/*----------------------------------------*/
header {
    padding-top: 15px;
    padding-bottom: 15px;
    background-color: rgba(34, 34, 34, 1);
}

#logo {
    margin: 0 0 15px 0;
}

#logo img {
    max-height: 160px;
}

/*----------------------------------------*/
/*  SEARCH BAR
/*----------------------------------------*/
#search {
    margin-bottom: 15px;
}

#search .input-lg {
    height: 40px;
    line-height: 20px;
    padding: 0 10px;
    border: 1px solid #e0e0e0;
    box-shadow: none;
    border-right: none;
}

#search .btn-lg {
    color: #999;
    font-size: 15px;
    line-height: 18px;
    padding: 10px 15px;
    text-shadow: none;
    box-shadow: none;
    background: none;
    border: 1px solid rgba(241, 126, 40, 1);
    border-left: none;
}

/*----------------------------------------*/
/*  CART STYLES
/*----------------------------------------*/
#cart {
    margin-bottom: 15px;
    float: right;
}

#cart > .btn {
    font-size: 14px;
    line-height: 18px;
    color: #fff;
    background: none;
    border: none;
    text-shadow: none;
    box-shadow: none;
}

#cart > .btn .fa {
    font-size: 22px;
    color: rgba(241, 126, 40, 1);
}

#cart.open > .btn {
    background-image: none;
    color: #007acc;
}

#cart.open > .btn:hover {
    color: #007acc;
}

#cart .dropdown-menu {
    z-index: 1001;
    min-width: 350px;
}

/* Responsive cart / logo adjustments */
@media(max-width: 767px) {
    #cart {
        float: none;
        text-align: center;
        display: block;
    }

    #cart > .btn {
        float: none;
        padding: 0;
    }

    #cart .dropdown-menu {
        color: #222;
    }

    #logo {
        text-align: center;
    }

    #logo img {
        display: inline-block;
    }
}

@media(max-width: 478px) {
    #cart .dropdown-menu {
        min-width: 100%;
    }

    #cart .dropdown-menu li > div {
        min-width: 100%;
    }
}

#cart .dropdown-menu table {
    margin-bottom: 10px;
}

#cart .dropdown-menu li > div {
    min-width: 427px;
    padding: 0 10px;
}

#cart .dropdown-menu li p {
    margin: 20px 0;
}

/*----------------------------------------*/
/*  NAVIGATION WRAPPER VERTICAL ALIGNMENT
/*----------------------------------------*/
.nav-wrapper {
    display: flex;
    align-items: center;
    min-height: 50px;
    width: 100%;
    font-family: "Exo 2",sans-serif;
    background: rgba(241, 126, 40, 1);
}

.nav-wrapper .container {
    flex-grow: 1;
}

/*----------------------------------------*/
/*  MAIN NAVBAR CONTAINER + BASIC STYLES
/*----------------------------------------*/
#menu.navbar {
    margin-bottom: 0 !important;
}

#menu .navbar-collapse {
    padding: 0;
}

/*----------------------------------------*/
/*  DESKTOP FLEX ALIGNMENT FOR NAV CONTENT
/*----------------------------------------*/
@media(min-width: 768px) {
    #menu.navbar {
        display: flex;
        align-items: center;
    }

    #menu .navbar-header,
    #menu .navbar-collapse {
        display: flex;
        align-items: center;
    }

    #menu .navbar-collapse {
        flex-grow: 1;
    }
}

/*----------------------------------------*/
/*  MOBILE RESET (REVERT FLEX TO BLOCK)
/*----------------------------------------*/
@media(max-width: 767px) {
    #menu.navbar,
    #menu .navbar-header,
    #menu .navbar-collapse {
        display: block;
    }

    #menu .navbar-collapse {
        padding: 10px 0;
    }

    #menu .nav > li > a {
        padding: 12px 15px;
        font-size: 16px;
    }
}

/*----------------------------------------*/
/*  NAVBAR LINK STYLES
/*----------------------------------------*/
#menu .nav > li > a {
    color: #fff;
    padding: 10px 15px 10px 15px;
    min-height: 15px;
    background-color: transparent;
    font-size: 16px;
}

/* Active/open states */
#menu .nav > li:hover > a, #menu .nav > li.open > a {
    color: #ccc;
}

/*----------------------------------------*/
/*  DROPDOWN INNER CONTAINER
/*----------------------------------------*/
#menu .dropdown-menu {
    padding-bottom: 0;
}

#menu .dropdown-inner {
    display: table;
}

#menu .dropdown-inner ul {
    display: table-cell;
}

/* Dropdown inner links */
#menu .dropdown-inner a {
    min-width: 175px;
    display: block;
    padding: 4px 20px;
    clear: both;
    line-height: 20px;
    color: #333333;
    font-size: 12px;
}

#menu .dropdown-inner li a:hover {
    color: #007acc;
}

/* "See all" category link at bottom of dropdown */
#menu .see-all {
    display: block;
    margin-top: 0.5em;
    border-top: 1px solid #ddd;
    padding: 3px 20px;
    border-radius: 0 0 3px 3px;
    font-size: 12px;
}

#menu .see-all:hover, #menu .see-all:focus {
    text-decoration: none;
    color: #ffffff;
    background-color: #007acc;
}

/* Category label on left */
#menu #category {
    float: left;
    font-size: 16px;
    line-height: 40px;
    color: #000;
    margin-left: 15px;
}

/* Navbar toggler for mobile */
#menu .btn-navbar {
    font-size: 15px;
    font-stretch: expanded;
    color: #fff;
    padding: 2px 18px;
    float: right;
    background-color: #007acc;
}

#menu .btn-navbar:hover,
#menu .btn-navbar:focus,
#menu .btn-navbar:active,
#menu .btn-navbar.disabled,
#menu .btn-navbar[disabled] {
    color: #ffffff;
    background-color: #000;
}

/*----------------------------------------*/
/*  RESPONSIVE DROPDOWN ON HOVER (DESKTOP)
/*----------------------------------------*/
@media(min-width: 768px) {
    #menu .dropdown:hover .dropdown-menu {
        display: block;
    }
}

/*----------------------------------------*/
/*  MOBILE DROPDOWN ADJUSTMENTS
/*----------------------------------------*/
@media(max-width: 767px) {
    #menu .navbar-nav {
        margin: 0;
    }

    #menu .in {
        border-top: 1px dotted #bbb;
    }

    #menu {
        border-radius: 4px;
    }

    #menu div.dropdown-inner > ul.list-unstyled {
        display: block;
    }

    #menu div.dropdown-menu {
        margin-left: 0 !important;
        padding-bottom: 10px;
        background-color: #fff;
    }

    #menu .dropdown-inner {
        display: block;
    }

    #menu .dropdown-inner a {
        width: 100%;
        color: #222;
    }

    #menu .dropdown-menu a:hover, #menu .dropdown-menu ul li a:hover {
        background-color: #eee;
    }

    #menu .see-all {
        margin-top: 0;
        border: none;
        border-radius: 0;
        color: #222;
    }

    #menu .see-all:hover {
        color: #007acc;
    }
}

/*----------------------------------------*/
/*  STYLED DROPDOWN TO MATCH MAIN NAV
/*----------------------------------------*/
#menu .dropdown-menu {
    background-color: rgba(241, 126, 40, 1);
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

#menu .dropdown-inner a {
    background-color: rgba(241, 126, 40, 1);
    color: #fff;
    padding: 8px 20px;
    font-size: 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    transition: background-color 0.3s ease, color 0.3s ease;
}

#menu .dropdown-inner a:hover {
    background-color: rgba(34, 34, 34, 1);
    color: #fff!important;
}

/* Optional: highlight the last item (e.g. 'see all') */
#menu .see-all {
    background-color: #333;
    color: #fff;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

#menu .see-all:hover {
    background-color: #000;
    color: #fff;
}

/*----------------------------------------*/
/*  SEARCH ICON STYLING
/*----------------------------------------*/
#search .fa {
    color: rgba(241, 126, 40, 1);
}


/*----------------------------------------*/
/*  FOOTER STYLES
/*----------------------------------------*/
footer {
    margin-top: 30px;
    padding-top: 15px;
    background-color: #222;
    color: #999;
}

footer hr {
    border-top: none;
    border-bottom: 1px solid #444;
}

footer a {
    color: #ccc;
}

footer a:hover {
    color: #fff;
    text-decoration: underline;
}

footer h5 {
    font-family: 'Open Sans', sans-serif;
    font-size: 15px;
    color: #fff;
    margin-bottom: 15px;
}

footer li {
    margin: 4px 0;
}

footer li a {
    position: relative;
    padding-left: 12px;
    color: #999;
}

footer li a:after {
    font-family: "FontAwesome";
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    text-decoration: none;
    font-size: 14px;
    left: 0;
    text-indent: 0;
    text-align: center;
    content: '>';
    position: absolute;
}

footer li a:hover {
    color: #fff;
    text-decoration: underline;
}

/*----------------------------------------*/
/*  ALERTS
/*----------------------------------------*/
.alert {
    padding: 8px 14px;
}

/*----------------------------------------*/
/*  GLOBAL BREADCRUMB STYLING (ALL PAGES)
/*----------------------------------------*/

.breadcrumb {
    background: none;
    padding: 0;
    margin-bottom: 20px;
    font-size: 13px;
    border-radius: 0;
}

.breadcrumb > li {
    display: inline-block;
    color: #666;
}

.breadcrumb > li + li:before {
    content: ">";
    padding: 0 6px;
    color: #999;
}

.breadcrumb > li a {
    color: #f17e28;
    text-decoration: none;
}

.breadcrumb > li a:hover {
    text-decoration: underline;
}

.pagination {
    margin: 0;
}

/*----------------------------------------*/
/*  BUTTONS + BUTTON GROUPS
/*----------------------------------------*/
.buttons {
    margin: 1em 0;
}

.btn {
    padding: 7px 16px;
    font-size: 14px;
    border: none;
    border-radius: 4px;
}

.btn-xs {
    font-size: 9px;
}

.btn-sm {
    font-size: 10.2px;
}

.btn-lg {
    padding: 10px 16px;
    font-size: 15px;
}

/* Grouped buttons and dropdown menus */
.btn-group > .btn, .btn-group > .dropdown-menu, .btn-group > .popover {
    font-size: 12px;
}

.btn-group > .btn-xs {
    font-size: 9px;
}

.btn-group > .btn-sm {
    font-size: 10.2px;
}

.btn-group > .btn-lg {
    font-size: 15px;
}

/*----------------------------------------*/
/*  BUTTON VARIANTS
/*----------------------------------------*/
.btn-default {
    color: #777;
    background-color: #e7e7e7;
}

.btn-primary {
    color: #ffffff;
    background-color: #007acc;
}

.btn-primary:hover, .btn-primary:active, .btn-primary.active, .btn-primary.disabled, .btn-primary[disabled] {
    background-color: #222;
}

.btn-warning {
    color: #ffffff;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
    background-color: #faa732;
    background-image: linear-gradient(to bottom, #fbb450, #f89406);
    background-repeat: repeat-x;
    border-color: #f89406 #f89406 #ad6704;
}

.btn-warning:hover, .btn-warning:active, .btn-warning.active, .btn-warning.disabled, .btn-warning[disabled] {
    box-shadow: inset 0 1000px 0 rgba(0, 0, 0, 0.1);
}

.btn-danger {
    color: #ffffff;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
    background-color: #da4f49;
}

.btn-danger:hover, .btn-danger:active, .btn-danger.active, .btn-danger.disabled, .btn-danger[disabled] {
    box-shadow: inset 0 1000px 0 rgba(0, 0, 0, 0.1);
}

.btn-success {
    color: #ffffff;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
    background-color: #5bb75b;
}

.btn-success:hover, .btn-success:active, .btn-success.active, .btn-success.disabled, .btn-success[disabled] {
    box-shadow: inset 0 1000px 0 rgba(0, 0, 0, 0.1);
}

.btn-info {
    color: #ffffff;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
    background-color: #df5c39;
}

.btn-info:hover, .btn-info:active, .btn-info.active, .btn-info.disabled, .btn-info[disabled] {
    background-image: none;
    background-color: #df5c39;
}

/*----------------------------------------*/
/*  LINK + INVERSE BUTTONS
/*----------------------------------------*/
.btn-link {
    border-color: transparent;
    cursor: pointer;
    color: #23a1d1;
    border-radius: 0;
}

.btn-link, .btn-link:active, .btn-link[disabled] {
    background-color: transparent;
    background-image: none;
    box-shadow: none;
}

.btn-inverse {
    color: #ffffff;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
    background-color: #363636;
}

.btn-inverse:hover, .btn-inverse:active, .btn-inverse.active, .btn-inverse.disabled, .btn-inverse[disabled] {
    background-color: #222222;
}

/*----------------------------------------*/
/*  LIST GROUP STYLING
/*----------------------------------------*/
.list-group a {
    border: 1px solid #dddddd;
    color: #888888;
    padding: 8px 12px;
}

.list-group a.active,
.list-group a.active:hover,
.list-group a:hover {
    color: #007acc;
    background: #eeeeee;
    border: 1px solid #dddddd;
}

/*----------------------------------------*/
/*  CAROUSEL NAV + CAPTIONS
/*----------------------------------------*/
.carousel-caption {
    color: #ffffff;
    text-shadow: 0 1px 0 #000000;
}

.carousel-control .icon-prev:before {
    content: '\f053';
    font-family: FontAwesome;
}

.carousel-control .icon-next:before {
    content: '\f054';
    font-family: FontAwesome;
}

/*----------------------------------------*/
/*  CATEGORY PAGE LAYOUT + STRUCTURE
/*----------------------------------------*/
#product-category,  #product-product, #checkout-cart, #information-information, #information-contact {
    padding-top: 20px;
    padding-bottom: 40px;
}

/*----------------------------------------*/
/*  SIDEBAR LIST GROUP MENU
/*----------------------------------------*/
#column-left .list-group {
    border: 1px solid #ccc;
    border-radius: 4px;
    overflow: hidden;
}

#column-left .list-group-item {
    font-size: 14px;
    padding: 10px 15px;
    border: none;
    border-bottom: 1px solid #eee;
    color: #333;
    background-color: #fff;
    transition: background 0.3s ease;
}

#column-left .list-group-item:last-child {
    border-bottom: none;
}

#column-left .list-group-item.active {
    background-color: rgba(241, 126, 40, 1);
    color: #fff;
    font-weight: bold;
}

#column-left .list-group-item:hover {
    background-color: #f5f5f5;
}

/*----------------------------------------*/
/*  PRODUCT LISTING GRID
/*----------------------------------------*/
.product-thumb {
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 15px;
    background: #fff;
    margin-bottom: 30px;
    transition: box-shadow 0.3s ease;
    height: 100%;
}

.product-thumb:hover {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.product-thumb .image {
    text-align: center;
    margin-bottom: 10px;
}

.product-thumb .image img {
    width: 100%;
    height: auto;
    transition: transform 0.3s ease;
}

.product-thumb:hover .image img {
    transform: scale(1.05);
}

.product-thumb .caption h4 {
    font-size: 16px;
    font-weight: bold;
    margin-top: 0;
    margin-bottom: 10px;
    min-height: 48px;
}

.product-thumb .caption p {
    font-size: 13px;
    color: #666;
    margin-bottom: 10px;
    height: 40px;
    overflow: hidden;
}

.product-thumb .price {
    font-size: 16px;
    color: rgba(241, 126, 40, 1);
    font-weight: bold;
    margin-bottom: 10px;
}

/*----------------------------------------*/
/*  PRODUCT RATINGS
/*----------------------------------------*/
.product-thumb .rating {
    padding-bottom: 10px;
}

.rating .fa-stack {
    font-size: 8px;
}

.rating .fa-star-o {
    color: #999;
    font-size: 15px;
}

.rating .fa-star {
    color: #fc0;
    font-size: 15px;
}

.rating .fa-star + .fa-star-o {
    color: #e69500;
}

/*----------------------------------------*/
/*  PRODUCT PRICING STYLES
/*----------------------------------------*/
.product-thumb .price-new {
    font-weight: 600;
}

.product-thumb .price-old {
    color: #999;
    text-decoration: line-through;
    margin-left: 10px;
}

.product-thumb .price-tax {
    color: #999;
    font-size: 12px;
    display: block;
}

/*----------------------------------------*/
/*  PRODUCT BUTTON GROUP
/*----------------------------------------*/
.product-thumb .button-group {
    display: flex;
    gap: 5px;
    justify-content: space-between;
    background-color: #eee;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease;
}

.product-thumb:hover .button-group {
    opacity: 1;
    visibility: visible;
}

.product-list .product-thumb .button-group {
    visibility: visible;
    opacity: 1;
}

.product-thumb .button-group button {
    flex: 1;
    font-size: 13px;
    border: none;
    background-color: #f8f8f8;
    color: #333;
    padding: 6px;
    border-radius: 4px;
    transition: background 0.2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    font-weight: bold;
    line-height: 1.2;
}

.product-thumb .button-group button:hover {
    background-color: rgba(241, 126, 40, 1);
    color: #fff;
    cursor: pointer;
}

/*----------------------------------------*/
/*  MOBILE PRODUCT BUTTONS
/*  Always visible, horizontally aligned
/*----------------------------------------*/
@media(max-width: 767px) {
    .product-thumb .button-group {
        display: flex !important;
        justify-content: center;
        align-items: center;
        opacity: 1 !important;
        visibility: visible !important;
        padding-top: 10px;
        gap: 10px;
        flex-wrap: wrap;
    }

    .product-thumb .button-group button {
        flex: 0 0 auto;
        margin: 0;
        padding: 6px 12px;
        font-size: 14px;
    }

    .product-thumb .caption h4 {
        min-height: auto;
    }

    .product-thumb .caption p {
        height: auto;
    }
}

/*----------------------------------------*/
/*  TOOLBAR (SORT / SHOW)
/*----------------------------------------*/
#content .form-group label.input-group-addon {
    background: #eee;
    border: 1px solid #ccc;
    border-right: none;
    font-weight: normal;
    color: #333;
}

#content .form-group .form-control {
    border-left: none;
}

/*----------------------------------------*/
/*  BREADCRUMB STYLING (UNIFIED)
/*----------------------------------------*/
.breadcrumb {
    background: transparent;
    padding: 0;
    margin-bottom: 20px;
    font-size: 13px;
    border-radius: 0;
}

.breadcrumb > li {
    display: inline-block;
    color: #777;
}

.breadcrumb > li + li:before {
    content: ">";
    padding: 0 8px;
    color: #aaa;
}

/*----------------------------------------*/
/*  PRODUCT IMAGE THUMBNAILS
/*----------------------------------------*/
.thumbnails {
    overflow: auto;
    clear: both;
    list-style: none;
    padding: 0;
    margin: 0;
    margin-left: -20px;
}

.thumbnails > li {
    margin-left: 20px;
}

.thumbnails > img {
    width: 100%;
}

.image-additional a {
    margin-bottom: 20px;
    padding: 5px;
    display: block;
    border: 1px solid #ddd;
}

.image-additional {
    max-width: 78px;
}

.thumbnails .image-additional {
    float: left;
    margin-left: 20px;
}

/*----------------------------------------*/
/*  CLEARFIXES FOR RESPONSIVE PRODUCT GRIDS
/*----------------------------------------*/
@media(min-width: 1200px) {
    #content .col-lg-2:nth-child(6n+1),
    #content .col-lg-3:nth-child(4n+1),
    #content .col-lg-4:nth-child(3n+1),
    #content .col-lg-6:nth-child(2n+1) {
        clear: left;
    }
}

@media(min-width: 992px) and (max-width: 1199px) {
    #content .col-md-2:nth-child(6n+1),
    #content .col-md-3:nth-child(4n+1),
    #content .col-md-4:nth-child(3n+1),
    #content .col-md-6:nth-child(2n+1) {
        clear: left;
    }
}

@media(min-width: 768px) and (max-width: 991px) {
    #content .col-sm-2:nth-child(6n+1),
    #content .col-sm-3:nth-child(4n+1),
    #content .col-sm-4:nth-child(3n+1),
    #content .col-sm-6:nth-child(2n+1) {
        clear: left;
    }
}

/*----------------------------------------*/
/*  FIXED COLUMN GRID LOGIC
/*  Used for layouts with left and right columns
/*----------------------------------------*/
@media(min-width: 768px) {
    /* Left column product layout takes full width */
    #column-left .product-layout .col-md-3 {
        width: 100%;
    }

    /* If left column and content present, each product gets 50% */
    #column-left + #content .product-layout .col-md-3 {
        width: 50%;
    }

    /* If left, content, and right column present, set full width again */
    #column-left + #content + #column-right .product-layout .col-md-3 {
        width: 100%;
    }

    /* Content + right column only */
    #content + #column-right .product-layout .col-md-3 {
        width: 100%;
    }
}

/*----------------------------------------*/
/*  PAGE SECTIONS: WELL HEADINGS
/*----------------------------------------*/
.well > h2 {
    margin-top: 0px;
}

/*----------------------------------------*/
/*  LEFT & RIGHT COLUMN PRODUCT WRAPPERS
/*----------------------------------------*/
#column-left .product-layout,
#column-right .product-layout {
    width: 100%;
}

/*----------------------------------------*/
/*  FIXED CART QUANTITY INPUT WIDTH ON MOBILE
/*----------------------------------------*/
.input-group .form-control[name^=quantity] {
    min-width: 50px;
}

/*----------------------------------------*/
/*  BUTTON FIXES FOR .btn-info (e.g. missing hover/focus colours)
/*----------------------------------------*/
.btn-info:hover,
.btn-info:active,
.btn-info.active,
.btn-info.disabled,
.btn-info[disabled] {
    background-image: none;
    background-color: #df5c39;
}

/*----------------------------------------*/
/*  DESKTOP HEADER SEARCH/CART SPACING
/*----------------------------------------*/
@media(min-width: 768px) {
    #search {
        margin-top: 20px;
    }

    header #cart {
        margin-top: 15px;
    }
}

/*----------------------------------------*/
/*  CUSTOM CSS BY KYLE
/*----------------------------------------*/

/* Section padding used for consistent spacing across pages */
section {
    padding: 5rem 0;
}

/* Light background modifier class */
.bg-light {
    background: #eeeeee;
}

/*----------------------------------------*/
/*  REVIEWS SECTION STYLING
/*  Adds background image and spacing
/*----------------------------------------*/
section#reviews {
    background: url(../../../../../image/catalog/homepage/reviews.jpg) no-repeat center;
    background-size: cover;
    padding: 5rem 0;
}

/* First span in first row of reviews gets white colour and text shadow */
#reviews .row:first-of-type span:first-of-type {
    color: #fff;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.7);
    display: block;
    margin-bottom: 1rem;
    text-align: center;
}

/*----------------------------------------*/
/*  HOMEPAGE MAIN BANNER
/*----------------------------------------*/
.banner-container {
    position: relative;
    overflow: hidden;
}

/* Ensure banner images span full width */
.banner-image {
    width: 100%;
    display: block;
}

/* Banner overlay to darken image and vertically center content */
.banner-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: table;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3); /* optional overlay tint */
    overflow: hidden;
}

.banner-overlay > div {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    padding: 20px;
}

/* Banner heading is white */
.banner-overlay h1 {
    color: #fff;
}

/*----------------------------------------*/
/*  HOMEPAGE IMAGE BOX GRID
/*----------------------------------------*/
.image-box {
    position: relative;
    overflow: hidden;
    margin-bottom: 2rem;
}

.image-box img {
    width: 100%;
    height: auto;
    display: block;
}

.image-box a {
    display: block;
    text-decoration: none;
    color: white;
    position: relative;
}

/* Image box title sits in bottom left of each box */
.image-box-title {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    text-transform: uppercase;
    color: #fff;
    text-shadow: 1px 1px 3px rgba(0, 0, 10, 0.8);
    z-index: 1;
}

/*----------------------------------------*/
/*  IMAGE BOX HOVER EFFECT
/*  Subtle zoom with scale and fade overlay
/*----------------------------------------*/
.image-box {
    position: relative;
    overflow: hidden;
    margin-bottom: 2rem;
    transition: transform 0.3s ease;
}

.image-box:hover {
    transform: scale(1.03); /* Slight zoom on hover */
}

.image-box img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.image-box:hover img {
    opacity: 0.9;
}

/* Optional: fade in title slightly stronger on hover */
.image-box-title {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    text-transform: uppercase;
    color: #fff;
    text-shadow: 1px 1px 3px rgba(0, 0, 10, 0.8);
    z-index: 1;
    transition: opacity 0.3s ease;
    opacity: 0.9;
}

.image-box:hover .image-box-title {
    opacity: 1;
}

/*----------------------------------------*/
/*  SUPPLIERS SWIPER CAROUSEL
/*----------------------------------------*/
.swiper-viewport{
	margin:0!important;
	padding:5rem 0;
}

/* Hide ugly dots on swiper */
.swiper-pagination{
	display:none;
}

/* Center logos in div */
.carousel-inner>.item>a>img, .carousel-inner>.item>img, .img-responsive, .thumbnail a>img, .thumbnail>img{
	margin:auto;
}

/*----------------------------------------*/
/*  RESPONSIVE SECTION SPACING
/*----------------------------------------*/
@media(min-width: 768px) {
    section {
        padding: 5rem 0;
    }
}

/*----------------------------------------*/
/*  PRODUCT PAGE STYLING
/*----------------------------------------*/

/* Breadcrumb Consistency */
#product-product .breadcrumb {
    margin-bottom: 20px;
    font-size: 13px;
    background: none;
    padding: 0;
}

/* Left Column - Gallery */
#product-product .thumbnails {
    list-style: none;
    padding: 0;
}

#product-product .thumbnail img {
    border-radius: 4px;
    transition: transform 0.3s ease;
}

#product-product .thumbnail:hover img {
    transform: scale(1.05);
}

/* Tabs */
#product-product .nav-tabs {
    margin-top: 20px;
    border-bottom: 2px solid #f17e28;
}

#product-product .nav-tabs > li > a {
    color: #333;
    padding: 10px 20px;
    border-radius: 4px 4px 0 0;
    transition: background 0.3s ease;
}

#product-product .nav-tabs > li.active > a,
#product-product .nav-tabs > li > a:hover {
    background: #f17e28;
    border-color: #ddd #ddd transparent;
}

/* Tab Content */
#product-product .tab-content {
    background: #fff;
    padding: 20px;
    border: 1px solid #f17e28;
    border-top: none;
    border-radius: 0 0 4px 4px;
    font-size: 14px;
    line-height: 1.6;
}

/* Right Column - Summary */
#product-product h1 {
    font-size: 30px;
    margin-bottom: 10px;
}

#product-product .list-unstyled li {
    margin-bottom: 8px;
    font-size: 14px;
}

/* Price Display */
#product-product h2 {
    font-size: 24px;
    color: rgba(241, 126, 40, 1);
    margin: 15px 0 5px;
}

/* Add to Cart */
#product-product .form-group label {
    font-weight: 600;
}

#product-product #input-quantity {
    width: 80px;
    display: inline-block;
    margin-right: 10px;
}

#product-product #button-cart {
    margin-top: 10px;
    font-size: 16px;
    background-color: rgba(241, 126, 40, 1);
    border: none;
    padding: 10px 20px;
    text-transform: uppercase;
}

#product-product #button-cart:hover {
    background-color: #a57d31;
}

/* Rating */
#product-product .rating .fa-star-o,
#product-product .rating .fa-star {
    color: #fc0;
    font-size: 15px;
}

#product-product .rating a {
    font-size: 13px;
    color: #555;
}

/* Responsive */
@media(max-width: 767px) {
    #product-product .col-sm-8,
    #product-product .col-sm-4 {
        width: 100%;
    }

    #product-product #input-quantity {
        width: 100%;
        margin-bottom: 10px;
    }

    #product-product #button-cart {
        width: 100%;
    }
}



.dropdown > a{
  font-weight: bold;
}



/*----------------------------------------*/
/*  FAQ Accordion Section - Bootstrap 3
/*  Targets #faqs
/*----------------------------------------*/
#faqs .panel-group {
    margin-top: 20px;
    margin-bottom: 40px;
}

/* Panel styling */
#faqs .panel {
    border-radius: 0;
    border: 1px solid #ccc;
    box-shadow: none;
}

/* Panel heading with branded colour */
#faqs .panel-heading {
    background-color: #f5f5f5;
    border-bottom: 1px solid #ddd;
    padding: 12px 15px;
}

#faqs .panel-heading h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
}

/* Font Awesome icon spacing */
#faqs .panel-title i {
    margin-right: 8px;
    transition: transform 0.3s ease;
}

/* Panel title links */
#faqs .panel-title a {
    display: block;
    color: #333;
    text-decoration: none;
}

#faqs .panel-title a:hover,
#faqs .panel-title a:focus {
    color: #007acc;
}

/* Panel body text */
#faqs .panel-body {
    background: #fff;
    padding: 15px;
    font-size: 14px;
    line-height: 1.6;
    border-top: 1px solid #ddd;
}

/* Responsive tweak */
@media(max-width: 767px) {
    #checkout-cart .table-responsive {
        border: none;
    }

    #checkout-cart h1 {
        font-size: 22px;
    }

    #checkout-cart .btn {
        font-size: 13px;
    }
}





/* Mega dropdown */

/*
 * Source Signs mega menu
 */

#menu {
	position: relative;
}

#menu .navbar-collapse,
#menu .navbar-nav {
	position: static;
}

#menu .mega-dropdown {
	position: static;
}

#menu .mega-dropdown > a .fa {
	font-size: 10px;
	margin-left: 5px;
}

#menu .mega-menu {
	left: 0;
	right: 0;
	width: 100%;
	padding: 22px;
	margin-top: 0;
	background: #fff;
	border: 0;
	border-top: 4px solid #f17e28;
	border-radius: 0 0 4px 4px;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
}

.mega-menu-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid #e5e5e5;
	color: #333;
}

.mega-menu-header > span {
	font-size: 20px;
	font-weight: 700;
}

.mega-menu-header > a {
	color: #f17e28;
	font-size: 14px;
	font-weight: 600;
}

.mega-menu-header > a:hover,
.mega-menu-header > a:focus {
	color: #333;
	text-decoration: none;
}

.mega-menu-row {
	display: flex;
	flex-wrap: wrap;
}

.mega-menu-col {
	display: flex;
	float: none;
	margin-bottom: 20px;
}

.mega-menu-card {
	position: relative;
	width: 100%;
	padding: 18px 18px 45px;
	background: #f7f7f7;
	border: 1px solid #e4e4e4;
	border-top: 3px solid #f17e28;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.mega-menu-card:hover {
	border-color: #f17e28;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.mega-menu-card-title {
	margin: 0 0 13px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
}

.mega-menu-card-title a {
	color: #333;
}

.mega-menu-card-title a:hover,
.mega-menu-card-title a:focus {
	color: #f17e28;
	text-decoration: none;
}

.mega-menu-links {
	margin: 0;
}

.mega-menu-links li {
	margin-bottom: 3px;
}

.mega-menu-links a {
	display: block;
	padding: 5px 0;
	color: #555;
	font-size: 14px;
	line-height: 1.35;
}

.mega-menu-links a:before {
	content: "\f105";
	margin-right: 7px;
	color: #f17e28;
	font-family: FontAwesome;
}

.mega-menu-links a:hover,
.mega-menu-links a:focus {
	color: #f17e28;
	text-decoration: none;
}

.mega-menu-view-all {
	position: absolute;
	right: 18px;
	bottom: 16px;
	left: 18px;
	color: #333;
	font-size: 13px;
	font-weight: 600;
}

.mega-menu-view-all:hover,
.mega-menu-view-all:focus {
	color: #f17e28;
	text-decoration: none;
}

/* Open on hover on desktop; Bootstrap still handles clicks and mobile taps. */
@media (min-width: 768px) {
	#menu .mega-dropdown:hover > .mega-menu,
	#menu .mega-dropdown:focus-within > .mega-menu {
		display: block;
	}

	#menu .mega-dropdown:hover > a,
	#menu .mega-dropdown.open > a {
		background-color: rgba(0, 0, 0, 0.08);
	}
}

/* Mobile presentation */
@media (max-width: 767px) {
	#menu .mega-menu {
		position: static;
		float: none;
		width: auto;
		max-height: 70vh;
		padding: 15px;
		overflow-y: auto;
		border-top-width: 2px;
		box-shadow: none;
	}

	.mega-menu-header {
		display: block;
	}

	.mega-menu-header > span {
		display: block;
		margin-bottom: 7px;
		font-size: 18px;
	}

	.mega-menu-row {
		display: block;
		margin: 0;
	}

	.mega-menu-col {
		display: block;
		width: 100%;
		padding: 0;
	}

	.mega-menu-card {
		padding: 15px 15px 42px;
	}

	.mega-menu-card-title {
		font-size: 16px;
	}
}

@media (max-width: 767px) {
	/*
	 * Keep the main navigation collapsed on page load.
	 * The existing theme rule forces navbar-collapse to display:block.
	 */
	#menu .navbar-collapse.collapse {
		display: none !important;
	}

	#menu .navbar-collapse.collapse.in {
		display: block !important;
	}

	/* Allow the shop panel to expand naturally with the page. */
	#menu .mega-menu {
		width: auto;
		max-height: none;
		padding: 8px;
		overflow: visible;
	}

	/* Hide “Shop by category” and its top-level View All link. */
	.mega-menu-header {
		display: none;
	}

	.mega-menu-row {
		margin: 0;
	}

	.mega-menu-col {
		margin-bottom: 6px;
		padding: 0;
	}

	.mega-menu-card {
		padding: 8px 10px;
		border-top-width: 2px;
		box-shadow: none;
	}

	.mega-menu-card-title {
		margin: 0 0 4px;
		font-size: 14px;
		line-height: 1.2;
	}

	.mega-menu-links li {
		margin: 0;
	}

	.mega-menu-links a {
		padding: 2px 0;
		font-size: 12px;
		line-height: 1.3;
	}

	.mega-menu-links a:before {
		margin-right: 5px;
	}

	/* Stop the card’s View All link requiring lots of bottom padding. */
	.mega-menu-view-all {
		position: static;
		display: inline-block;
		margin-top: 4px;
		font-size: 11px;
		line-height: 1.2;
	}
}











/* Source Signs homepage content — Bootstrap 3.4.1 */

.source-homepage .source-section {
    padding: 5rem 0;
}

.source-homepage .source-intro {
    position: relative;
    z-index: 2;
    padding: 0;
}

.source-homepage .source-heading {
    color: #f17e28;
}

.source-homepage .source-why-column {
    padding: 48px;
    color: #fff;
    background: #f17e28;
    border-radius: 6px;
}

.source-homepage .source-why-column h2 {
    margin-bottom: 24px;
    color: #fff;
}

.source-homepage .source-button-row {
    margin-top: 30px;
    text-align: center;
}

.source-homepage .btn-source-primary,
.source-homepage .btn-source-secondary {
    padding: 8px 18px;
    color: #fff;
    border: 0;
    border-radius: 100px;
    transition: background-color 0.2s ease;
}

.source-homepage .btn-source-primary {
    background: #f17e28;
}

.source-homepage .btn-source-primary:hover,
.source-homepage .btn-source-primary:focus {
    color: #fff;
    background: #d96510;
}

.source-homepage .btn-source-secondary {
    background: #222;
}

.source-homepage .btn-source-secondary:hover,
.source-homepage .btn-source-secondary:focus {
    color: #fff;
    background: #000;
}

.source-homepage .source-services-column {
    padding-top: 24px;
    padding-bottom: 24px;
}

.source-homepage .source-service-card {
    width: 100%;
    margin-bottom: 20px;
    padding: 28px 20px;
    text-align: center;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
}

.source-homepage .source-service-card .fa {
    display: block;
    margin-bottom: 20px;
    color: #f17e28;
    font-size: 32px;
}

.source-homepage .source-service-title {
    display: block;
    margin-bottom: 16px;
    font-family: "Exo 2", serif;
    font-size: 1.5rem;
    font-weight: bold;
}

.source-homepage .source-service-card p {
    min-height: 52px;
}

.source-homepage .source-section-image {
    width: 100%;
    height: auto;
}

.source-homepage .source-dark-section {
    color: #fff;
    background: #222;
}

.source-homepage .source-orange-section {
    background: #f17e28;
}

.source-homepage .source-family-section {
    padding: 0;
    background: #eee;
}

.source-homepage .source-family-image {
    min-height: 420px;
    background: url('image/catalog/homepage/sign-makers-glasgow-3.jpg') no-repeat center;
    background-size: cover;
}

.source-homepage .source-family-copy {
    padding: 50px 40px;
}

.source-homepage .source-family-copy > h2 {
    margin-bottom: 18px;
    color: #f17e28;
}

.source-homepage .source-features {
    margin-top: 35px;
}

.source-homepage .source-feature {
    margin-bottom: 28px;
}

.source-homepage .source-feature:last-child {
    margin-bottom: 0;
}

.source-homepage .source-feature-icon {
    display: table;
    width: 54px;
    height: 54px;
    margin: 4px auto 0;
    color: #f17e28;
    text-align: center;
    border: 1px solid #222;
    border-radius: 50%;
}

.source-homepage .source-feature-icon span {
    display: table-cell;
    vertical-align: middle;
}

.source-homepage .source-feature-icon .fa {
    font-size: 23px;
}

.source-homepage .source-feature h3 {
    margin-bottom: 8px;
    color: #f17e28;
    font-size: 1.75rem;
}

/* Bootstrap 3 equal-height conversions */
@media (min-width: 768px) {
    .source-homepage .source-service-row,
    .source-homepage .source-equal-row,
    .source-homepage .source-family-row {
        display: flex;
    }

    .source-homepage .source-service-row:before,
    .source-homepage .source-service-row:after,
    .source-homepage .source-equal-row:before,
    .source-homepage .source-equal-row:after,
    .source-homepage .source-family-row:before,
    .source-homepage .source-family-row:after {
        display: none;
    }

    .source-homepage .source-service-row {
        align-items: stretch;
    }

    .source-homepage .source-service-column {
        display: flex;
    }

    .source-homepage .source-equal-row {
        align-items: center;
    }

    .source-homepage .source-family-row {
        align-items: stretch;
    }

    .source-homepage .source-family-image {
        min-height: 650px;
    }
}

@media (min-width: 992px) {
    .source-homepage .source-intro .container {
        margin-top: -48px;
    }

    .source-homepage .source-intro-row {
        display: flex;
        align-items: stretch;
    }

    .source-homepage .source-intro-row:before,
    .source-homepage .source-intro-row:after {
        display: none;
    }

    .source-homepage .source-services-column {
        display: flex;
        align-items: center;
    }
}

@media (max-width: 991px) {
    .source-homepage .source-why-column {
        margin-bottom: 15px;
    }
}

@media (max-width: 767px) {
    .source-homepage .source-section {
        padding: 3.5rem 0;
    }

    .source-homepage .source-why-column {
        padding: 32px 25px;
        border-radius: 0;
    }

    .source-homepage .source-service-card p {
        min-height: 0;
    }

    .source-homepage .source-section-image {
        margin-top: 25px;
    }

    .source-homepage .source-orange-section .source-section-image {
        margin-top: 0;
        margin-bottom: 25px;
    }

    .source-homepage .source-family-image {
        min-height: 320px;
    }

    .source-homepage .source-family-copy {
        padding: 40px 20px;
    }

    .source-homepage .source-feature h3 {
        font-size: 1.4rem;
    }
}




/*----------------------------------------*/
/*  SOURCE SIGNS 2027 - PHASE 1 GLOBAL UI
/*----------------------------------------*/
:root {
    --source-orange: #f17e28;
    --source-orange-accessible: #c65300;
    --source-dark: #171717;
    --source-dark-soft: #242424;
    --source-light: #f5f5f3;
    --source-border: #dededb;
    --source-text: #303030;
    --source-muted: #686868;
}

html {
    font-size: 16px;
}

body {
    color: var(--source-text);
    font-family: "Roboto", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.65;
    background: #fff;
}

body > * {
    box-sizing: border-box;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    color: var(--source-dark);
    font-family: "Exo 2", Arial, sans-serif;
    font-weight: 700;
    letter-spacing: -0.02em;
}

a {
    color: var(--source-orange-accessible);
}

a:hover,
a:focus {
    color: var(--source-dark);
}

:focus-visible {
    outline: 3px solid var(--source-orange-accessible);
    outline-offset: 3px;
}

.btn {
    min-height: 42px;
    padding: 10px 18px;
    font-size: 15px;
    font-weight: 700;
    border-radius: 3px;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.btn-primary {
    color: #fff;
    background: var(--source-orange-accessible);
    border: 2px solid var(--source-orange-accessible);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
    color: #fff;
    background: var(--source-dark);
    border-color: var(--source-dark);
}

.form-control {
    min-height: 44px;
    padding: 10px 12px;
    color: var(--source-text);
    font-size: 16px !important;
    border: 1px solid #b9b9b6;
    border-radius: 3px;
    box-shadow: none;
}

.form-control:focus {
    border-color: var(--source-orange-accessible);
    box-shadow: 0 0 0 2px rgba(198, 83, 0, 0.15);
}

/* Utility bar */
#top {
    min-height: 42px;
    color: #ddd;
    background: #0d0d0d;
    border: 0;
}

#top .container {
    padding-right: 15px;
    padding-left: 15px;
}

#top .top-contact {
    display: flex;
    min-height: 42px;
    align-items: center;
    gap: 24px;
}

#top .top-contact a,
#top-links > ul > li > a {
    color: #eee;
    font-size: 13px;
    font-weight: 500;
}

#top .top-contact a:hover,
#top .top-contact a:focus,
#top-links > ul > li > a:hover,
#top-links > ul > li > a:focus {
    color: #fff;
    text-decoration: underline;
}

#top .top-contact .fa,
#top-links .fa {
    margin-right: 6px;
    color: var(--source-orange);
}

#top-links {
    padding-top: 0;
}

#top-links > ul {
    margin-bottom: 0;
}

#top-links > ul > li > a {
    display: flex;
    min-height: 42px;
    align-items: center;
    padding: 0 4px;
}

#top-links .dropdown-menu {
    margin-top: 0;
    border: 1px solid var(--source-border);
    border-radius: 0 0 3px 3px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* Main header */
.site-header {
    padding: 22px 0;
    background: var(--source-dark);
}

.site-header-row {
    display: flex;
    align-items: center;
}

#logo {
    margin: 0;
}

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

.site-search-label,
.site-cart-label {
    margin-bottom: 6px;
    color: #cfcfcf;
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

#search {
    margin-bottom: 0;
}

#search .input-lg {
    height: 46px;
    color: var(--source-text);
    font-size: 16px;
    border: 1px solid #fff;
    border-right: 0;
    border-radius: 3px 0 0 3px;
    background: #fff;
}

#search .btn-lg {
    height: 46px;
    padding: 10px 17px;
    color: #fff;
    border: 1px solid var(--source-orange-accessible);
    border-radius: 0 3px 3px 0;
    background: var(--source-orange-accessible);
}

#search .btn-lg:hover,
#search .btn-lg:focus {
    color: #fff;
    background: #a83f00;
    border-color: #a83f00;
}

#search .fa {
    color: inherit;
}

#cart {
    width: 100%;
    margin-bottom: 0;
    float: none;
}

#cart > .btn {
    width: 100%;
    min-height: 46px;
    padding: 10px 16px;
    color: #fff;
    text-align: left;
    border: 1px solid #4e4e4e;
    border-radius: 3px;
    background: var(--source-dark-soft);
}

#cart > .btn:hover,
#cart > .btn:focus,
#cart.open > .btn {
    color: #fff;
    border-color: var(--source-orange);
    background: #303030;
}

#cart > .btn .fa {
    margin-right: 8px;
    color: var(--source-orange);
    font-size: 18px;
}

#cart .dropdown-menu {
    right: 0;
    left: auto;
    margin-top: 8px;
    border: 1px solid var(--source-border);
    border-radius: 3px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

/* Main navigation */
.nav-wrapper {
    min-height: 58px;
    font-family: "Exo 2", Arial, sans-serif;
    background: var(--source-orange);
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

#menu.navbar {
    min-height: 58px;
    border: 0;
}

#menu .nav > li > a {
    min-height: 58px;
    padding: 19px 16px 17px;
    color: #1c1c1c;
    font-size: 15px;
    font-weight: 700;
    line-height: 22px;
    background: transparent;
}

#menu .nav > li:hover > a,
#menu .nav > li.open > a,
#menu .nav > li > a:hover,
#menu .nav > li > a:focus {
    color: #fff;
    background: var(--source-dark);
}

#menu .nav-contact {
    margin-left: auto;
}

#menu .nav-contact > a {
    padding-right: 20px;
    padding-left: 20px;
}

#menu #category {
    margin-left: 0;
    color: var(--source-dark);
    font-size: 17px;
    font-weight: 800;
    line-height: 50px;
}

#menu .btn-navbar {
    margin-top: 8px;
    padding: 8px 13px;
    color: #fff;
    background: var(--source-dark);
    border-radius: 3px;
}

#menu .btn-navbar:hover,
#menu .btn-navbar:focus {
    color: #fff;
    background: #000;
}

/* Mega menu refinements */
#menu .mega-menu {
    padding: 24px;
    border-top: 0;
    border-radius: 0 0 4px 4px;
    box-shadow: 0 14px 35px rgba(0, 0, 0, 0.16);
}

.mega-menu-header {
    margin-bottom: 20px;
    padding-bottom: 14px;
}

.mega-menu-header > span {
    color: var(--source-dark);
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 21px;
    font-weight: 800;
}

.mega-menu-header > a,
.mega-menu-card-title a:hover,
.mega-menu-card-title a:focus,
.mega-menu-links a:hover,
.mega-menu-links a:focus,
.mega-menu-view-all:hover,
.mega-menu-view-all:focus {
    color: var(--source-orange-accessible);
}

.mega-menu-card {
    border: 1px solid #e2e2df;
    border-top: 3px solid var(--source-orange);
    border-radius: 3px;
    background: #f7f7f5;
}

.mega-menu-card:hover {
    border-color: var(--source-orange);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

.mega-menu-card-title {
    font-size: 17px;
}

.mega-menu-links a {
    color: #494949;
    font-size: 14px;
}

.mega-menu-links a:before {
    color: var(--source-orange-accessible);
}

/* Breadcrumbs */
.breadcrumb {
    margin-bottom: 28px;
    padding: 12px 0;
    font-size: 14px;
    border-bottom: 1px solid #ececea;
}

.breadcrumb > li + li:before {
    content: "\f105";
    padding: 0 9px;
    color: #8a8a8a;
    font-family: FontAwesome;
}

.breadcrumb > li a {
    color: var(--source-orange-accessible);
}

/* Global content rhythm */
#product-category,
#product-product,
#checkout-cart,
#information-information,
#information-contact {
    padding-top: 30px;
    padding-bottom: 64px;
}

#content > h1:first-child {
    margin-bottom: 24px;
}

/* Footer */
.site-footer {
    margin-top: 0;
    padding: 56px 0 0;
    color: #c7c7c7;
    background: #111;
    border-top: 5px solid var(--source-orange);
}

.site-footer .footer-main-row {
    margin-bottom: 38px;
}

.site-footer .footer-logo {
    width: auto;
    max-width: 190px;
    max-height: 95px;
    margin-bottom: 20px;
}

.site-footer h5 {
    margin-bottom: 18px;
    color: #fff;
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 18px;
    font-weight: 800;
}

.site-footer p {
    color: #bdbdbd;
    font-size: 14px;
}

.site-footer a {
    color: #e2e2e2;
}

.site-footer a:hover,
.site-footer a:focus {
    color: #fff;
    text-decoration: underline;
}

.site-footer .footer-contact-item {
    margin-bottom: 8px;
}

.site-footer .footer-contact-item .fa {
    width: 20px;
    color: var(--source-orange);
}

.site-footer .footer-links li {
    margin: 0;
}

.site-footer .footer-links li a {
    display: inline-block;
    padding: 5px 0;
    color: #c7c7c7;
}

.site-footer .footer-links li a:after {
    display: none;
}

.site-footer .footer-socials {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}

.site-footer .footer-socials a {
    display: flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 20px;
    border: 1px solid #4b4b4b;
    border-radius: 50%;
    background: #202020;
}

.site-footer .footer-socials a:hover,
.site-footer .footer-socials a:focus {
    color: #fff;
    text-decoration: none;
    border-color: var(--source-orange);
    background: var(--source-orange-accessible);
}

.site-footer .footer-bottom {
    padding: 24px 0 18px;
    border-top: 1px solid #353535;
}

.site-footer .footer-bottom p {
    margin-bottom: 0;
}

.text-sm-right {
    text-align: right;
}

/* Responsive */
@media (min-width: 768px) {
    #menu.navbar,
    #menu .navbar-collapse,
    #menu .navbar-nav {
        width: 100%;
    }

    #menu .navbar-nav {
        display: flex;
        align-items: stretch;
    }
}

@media (max-width: 991px) {
    .site-header-row {
        align-items: flex-end;
    }

    #logo img {
        max-height: 76px;
    }

    #menu .nav > li > a {
        padding-right: 11px;
        padding-left: 11px;
        font-size: 14px;
    }
}

@media (max-width: 767px) {
    .site-header {
        padding: 18px 0;
    }

    .site-header-row {
        display: block;
    }

    .site-logo-column,
    .site-search-column,
    .site-cart-column {
        margin-bottom: 16px;
    }

    .site-cart-column {
        margin-bottom: 0;
    }

    #logo {
        text-align: left;
    }

    #logo img {
        display: block;
        max-height: 78px;
    }

    .site-search-label,
    .site-cart-label {
        margin-bottom: 5px;
    }

    #cart {
        text-align: left;
    }

    #cart > .btn {
        float: none;
        padding: 10px 16px;
    }

    #cart .dropdown-menu {
        width: 100%;
        min-width: 0;
    }

    #cart .dropdown-menu li > div {
        min-width: 0;
    }

    .nav-wrapper {
        min-height: 50px;
    }

    #menu.navbar {
        min-height: 50px;
    }

    #menu .navbar-header {
        min-height: 50px;
    }

    #menu .navbar-collapse {
        padding: 0;
        background: var(--source-dark);
    }

    #menu .nav > li > a {
        min-height: 0;
        padding: 13px 15px;
        color: #fff;
        font-size: 15px;
        border-bottom: 1px solid #343434;
    }

    #menu .nav-contact {
        margin-left: 0;
    }

    #menu .mega-menu {
        background: #fff;
    }

    .site-footer {
        padding-top: 42px;
    }

    .site-footer .footer-main-row > div {
        margin-bottom: 30px;
    }

    .site-footer .footer-bottom {
        padding-top: 22px;
    }

    .site-footer .footer-bottom p {
        margin-bottom: 12px;
    }

    .text-sm-right {
        text-align: left;
    }
}

@media (max-width: 480px) {
    #top .top-contact {
        gap: 10px;
    }

    #top .top-contact a {
        font-size: 12px;
    }
}

/*----------------------------------------*/
/*  SOURCE SIGNS 2027 - PHASE 2 HOMEPAGE
/*----------------------------------------*/
.source-homepage {
    overflow: hidden;
    color: #30343a;
    background: #fff;
}

.source-homepage .source-eyebrow {
    display: block;
    margin-bottom: 12px;
    color: #c65300;
    font-family: "Roboto", sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
    line-height: 1.4;
    text-transform: uppercase;
}

.source-homepage h1,
.source-homepage h2,
.source-homepage h3 {
    letter-spacing: -0.02em;
}

.source-homepage h2 {
    margin-top: 0;
    color: #1f2328;
    font-size: 42px;
    line-height: 1.12;
}

.source-homepage h3 {
    color: #1f2328;
    font-size: 23px;
    line-height: 1.25;
}

.source-homepage p,
.source-homepage li {
    font-size: 16px;
    line-height: 1.75;
}

.source-homepage .btn-source-primary,
.source-homepage .btn-source-dark,
.source-homepage .btn-source-light {
    padding: 13px 24px;
    font-weight: 700;
    border: 2px solid transparent;
    border-radius: 4px;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.source-homepage .btn-source-primary {
    color: #fff;
    background: #c65300;
    border-color: #c65300;
}

.source-homepage .btn-source-primary:hover,
.source-homepage .btn-source-primary:focus {
    color: #fff;
    background: #9e4200;
    border-color: #9e4200;
    transform: translateY(-1px);
}

.source-homepage .btn-source-dark {
    color: #fff;
    background: #202428;
    border-color: #202428;
}

.source-homepage .btn-source-dark:hover,
.source-homepage .btn-source-dark:focus {
    color: #fff;
    background: #000;
    border-color: #000;
}

.source-homepage .btn-source-light {
    color: #202428;
    background: #fff;
    border-color: #fff;
}

.source-homepage .btn-source-light:hover,
.source-homepage .btn-source-light:focus {
    color: #202428;
    background: #f4f4f4;
    border-color: #f4f4f4;
}

.source-hero {
    position: relative;
    min-height: 600px;
    background: #1c1f22;
}

.source-hero picture {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.source-hero-image {
    width: 100%;
    height: 100%;
    min-height: 600px;
    object-fit: cover;
}

.source-hero-overlay {
    position: relative;
    z-index: 2;
    min-height: 600px;
    display: flex;
    align-items: center;
    color: #fff;
    background: linear-gradient(90deg, rgba(20, 22, 25, 0.92) 0%, rgba(20, 22, 25, 0.74) 45%, rgba(20, 22, 25, 0.18) 74%, rgba(20, 22, 25, 0.05) 100%);
}

.source-hero-content {
    max-width: 700px;
    padding: 80px 0 100px;
}

.source-homepage .source-hero .source-eyebrow {
    color: #ffb275;
}

.source-hero h1 {
    margin: 0 0 22px;
    color: #fff;
    font-size: 68px;
    font-weight: 700;
    line-height: 1;
}

.source-hero p {
    max-width: 650px;
    margin-bottom: 32px;
    color: #fff;
    font-size: 20px;
    line-height: 1.65;
}

.source-hero-actions .btn {
    margin: 0 10px 10px 0;
}

.source-proof {
    position: relative;
    z-index: 3;
    margin-top: -42px;
}

.source-proof .container {
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.15);
}

.source-proof-row {
    display: flex;
    align-items: stretch;
}

.source-proof-row:before,
.source-proof-row:after {
    display: none;
}

.source-proof-item {
    padding: 26px 30px;
    text-align: center;
    border-right: 1px solid #e8e8e8;
}

.source-proof-item:last-child {
    border-right: 0;
}

.source-proof-number,
.source-proof-label {
    display: block;
}

.source-proof-number {
    margin-bottom: 6px;
    color: #c65300;
    font-family: "Exo 2", sans-serif;
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
}

.source-proof-label {
    color: #555b61;
    font-size: 14px;
    font-weight: 700;
}

.source-home-section {
    padding: 100px 0;
}

.source-section-heading {
    max-width: 760px;
    margin: 0 auto 48px;
}

.source-section-heading p {
    margin: 18px 0 0;
    color: #626970;
}

.source-services-section {
    padding-top: 120px;
    background: #f6f7f8;
}

.source-service-grid {
    margin-bottom: -30px;
}

.source-service-column {
    margin-bottom: 30px;
}

.source-image-card {
    position: relative;
    display: block;
    height: 360px;
    overflow: hidden;
    color: #fff;
    background: #222;
    border-radius: 6px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
}

.source-image-card:hover,
.source-image-card:focus {
    color: #fff;
    text-decoration: none;
}

.source-image-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.source-image-card:hover img,
.source-image-card:focus img {
    transform: scale(1.045);
}

.source-image-card:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.02) 20%, rgba(17, 19, 21, 0.9) 100%);
}

.source-image-card-overlay {
    position: absolute;
    z-index: 2;
    right: 28px;
    bottom: 26px;
    left: 28px;
}

.source-image-card-title,
.source-image-card-link {
    display: block;
}

.source-image-card-title {
    margin-bottom: 8px;
    color: #fff;
    font-family: "Exo 2", sans-serif;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.2;
}

.source-image-card-link {
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

.source-image-card-link .fa {
    margin-left: 5px;
}

.source-story-section {
    background: #fff;
}

.source-story-row {
    display: flex;
    align-items: center;
}

.source-story-row:before,
.source-story-row:after {
    display: none;
}

.source-story-image-wrap {
    position: relative;
    padding: 0 30px 30px 0;
}

.source-story-image {
    width: 100%;
    border-radius: 6px;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.14);
}

.source-story-badge {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 250px;
    padding: 24px;
    color: #fff;
    background: #c65300;
    border-radius: 5px;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.16);
}

.source-story-badge strong,
.source-story-badge span {
    display: block;
}

.source-story-badge strong {
    margin-bottom: 5px;
    font-family: "Exo 2", sans-serif;
    font-size: 19px;
}

.source-story-badge span {
    font-size: 14px;
}

.source-story-copy {
    padding-left: 55px;
}

.source-story-copy p {
    color: #5e656c;
}

.source-tick-list {
    margin: 25px 0 30px;
    padding: 0;
    list-style: none;
}

.source-tick-list li {
    position: relative;
    margin-bottom: 10px;
    padding-left: 30px;
}

.source-tick-list li:before {
    content: "\f00c";
    position: absolute;
    top: 0;
    left: 0;
    color: #c65300;
    font-family: FontAwesome;
}

.source-bespoke-section {
    padding: 0 0 100px;
    background: #fff;
}

.source-bespoke-panel {
    overflow: hidden;
    color: #fff;
    background: #202428;
    border-radius: 8px;
    box-shadow: 0 22px 55px rgba(0, 0, 0, 0.18);
}

.source-bespoke-row {
    display: flex;
    align-items: stretch;
}

.source-bespoke-row:before,
.source-bespoke-row:after {
    display: none;
}

.source-bespoke-copy {
    padding: 60px;
}

.source-homepage .source-bespoke-copy .source-eyebrow {
    color: #ffb275;
}

.source-bespoke-copy h2,
.source-bespoke-copy p {
    color: #fff;
}

.source-bespoke-copy p {
    max-width: 650px;
    margin-bottom: 28px;
    color: #e0e2e4;
}

.source-bespoke-steps {
    display: flex;
    align-items: center;
    padding: 50px;
    background: #c65300;
}

.source-bespoke-steps ol {
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.source-bespoke-steps li {
    display: flex;
    align-items: center;
    margin-bottom: 18px;
    color: #fff;
    font-weight: 700;
    line-height: 1.35;
}

.source-bespoke-steps li:last-child {
    margin-bottom: 0;
}

.source-bespoke-steps li span {
    display: inline-block;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    margin-right: 14px;
    color: #202428;
    text-align: center;
    line-height: 38px;
    background: #fff;
    border-radius: 50%;
}

.source-work-section {
    color: #fff;
    background: #202428;
}

.source-homepage .source-work-section .source-eyebrow {
    color: #ffb275;
}

.source-work-section h2 {
    color: #fff;
}

.source-work-heading-row {
    margin-bottom: 40px;
}

.source-work-heading-copy {
    padding-top: 20px;
}

.source-work-heading-copy p {
    color: #c9cdd0;
}

.source-work-grid {
    margin-bottom: -30px;
}

.source-work-grid > div {
    margin-bottom: 30px;
}

.source-work-image {
    width: 100%;
    border-radius: 5px;
}

.source-why-section {
    background: #f6f7f8;
}

.source-why-grid {
    display: flex;
    align-items: stretch;
}

.source-why-grid:before,
.source-why-grid:after {
    display: none;
}

.source-why-column {
    display: flex;
}

.source-why-card {
    width: 100%;
    padding: 38px 32px;
    background: #fff;
    border-top: 4px solid #c65300;
    border-radius: 5px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

.source-why-icon {
    display: inline-block;
    width: 56px;
    height: 56px;
    margin-bottom: 15px;
    color: #c65300;
    text-align: center;
    line-height: 56px;
    background: #fff1e6;
    border-radius: 50%;
}

.source-why-icon .fa {
    font-size: 22px;
}

.source-why-card h3 {
    margin-top: 0;
}

.source-why-card p {
    margin-bottom: 0;
    color: #60676d;
}

.source-contact-strip {
    padding: 65px 0;
    background: #fff;
}

.source-contact-row {
    display: flex;
    align-items: center;
}

.source-contact-row:before,
.source-contact-row:after {
    display: none;
}

.source-contact-strip h2 {
    max-width: 760px;
    margin-bottom: 0;
    font-size: 34px;
}

.source-contact-action {
    text-align: right;
}

.source-home-modules {
    padding-right: 0;
    padding-left: 0;
}

.source-home-modules > .row {
    margin-right: 0;
    margin-left: 0;
}

@media (max-width: 1199px) {
    .source-hero h1 {
        font-size: 58px;
    }

    .source-bespoke-copy {
        padding: 50px;
    }

    .source-bespoke-steps {
        padding: 40px;
    }
}

@media (max-width: 991px) {
    .source-homepage h2 {
        font-size: 36px;
    }

    .source-hero,
    .source-hero-overlay,
    .source-hero-image {
        min-height: 540px;
    }

    .source-story-row,
    .source-bespoke-row {
        display: block;
    }

    .source-story-copy {
        padding-top: 50px;
        padding-left: 15px;
    }

    .source-bespoke-steps {
        display: block;
    }
}

@media (max-width: 767px) {
    .source-homepage h2 {
        font-size: 31px;
    }

    .source-homepage p,
    .source-homepage li {
        font-size: 15px;
    }

    .source-hero,
    .source-hero-overlay,
    .source-hero-image {
        min-height: 590px;
    }

    .source-hero-overlay {
        align-items: flex-end;
        background: linear-gradient(180deg, rgba(20, 22, 25, 0.2) 0%, rgba(20, 22, 25, 0.9) 58%, rgba(20, 22, 25, 0.98) 100%);
    }

    .source-hero-content {
        padding: 180px 0 55px;
    }

    .source-hero h1 {
        font-size: 44px;
    }

    .source-hero p {
        font-size: 17px;
    }

    .source-hero-actions .btn {
        display: block;
        width: 100%;
        margin-right: 0;
    }

    .source-proof {
        margin-top: 0;
    }

    .source-proof .container {
        border-radius: 0;
        box-shadow: none;
    }

    .source-proof-row,
    .source-why-grid,
    .source-contact-row {
        display: block;
    }

    .source-proof-item {
        padding: 22px 15px;
        border-right: 0;
        border-bottom: 1px solid #e8e8e8;
    }

    .source-proof-item:last-child {
        border-bottom: 0;
    }

    .source-home-section {
        padding: 70px 0;
    }

    .source-services-section {
        padding-top: 70px;
    }

    .source-section-heading {
        margin-bottom: 35px;
    }

    .source-image-card {
        height: 320px;
    }

    .source-story-image-wrap {
        padding-right: 0;
        padding-bottom: 0;
    }

    .source-story-badge {
        position: relative;
        right: auto;
        bottom: auto;
        width: auto;
        margin: -20px 18px 0;
    }

    .source-story-copy {
        padding-top: 45px;
    }

    .source-bespoke-section {
        padding-bottom: 70px;
    }

    .source-bespoke-panel {
        margin-right: -15px;
        margin-left: -15px;
        border-radius: 0;
    }

    .source-bespoke-copy,
    .source-bespoke-steps {
        padding: 40px 25px;
    }

    .source-work-grid > div {
        margin-bottom: 20px;
    }

    .source-why-column {
        display: block;
        margin-bottom: 20px;
    }

    .source-why-column:last-child {
        margin-bottom: 0;
    }

    .source-contact-strip {
        padding: 55px 0;
    }

    .source-contact-strip h2 {
        font-size: 29px;
    }

    .source-contact-action {
        margin-top: 25px;
        text-align: left;
    }
}

/* Phase 2 resets for class names retained from Tom's earlier homepage pass. */
.source-homepage .source-why-column {
    padding: 0 15px;
    color: inherit;
    background: transparent;
    border-radius: 0;
}

/*----------------------------------------*/
/*  SOURCE SIGNS 2027 - PHASE 3 INFO PAGES
/*----------------------------------------*/
#information-information #content > h1{
    margin: 20px 0 32px;
    font-size: 42px;
    line-height: 1.1;
    color: #1d2327;
}

.source-info-page{
    padding-bottom: 40px;
}

.source-info-page p{
    font-size: 16px;
    line-height: 1.75;
    color: #545b61;
}

.source-info-page h2,
.source-info-page h3{
    color: #1d2327;
}

.source-info-page h2{
    margin: 0 0 18px;
    font-size: 28px;
}

.source-info-page h3{
    margin: 0 0 12px;
    font-size: 20px;
}

.source-info-section{
    padding: 48px 0;
    border-top: 1px solid #e7e7e7;
}

.source-info-section:first-child{
    padding-top: 0;
    border-top: 0;
}

.source-info-split{
    display: table;
    width: 100%;
    table-layout: fixed;
}

.source-info-split > [class*="col-"]{
    display: table-cell;
    float: none;
    vertical-align: middle;
}

.source-info-image{
    width: 100%;
    border-radius: 6px;
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.12);
}

.source-info-panel{
    height: 100%;
    padding: 30px;
    background: #f5f6f7;
    border-top: 3px solid #f17e28;
}

.source-info-panel-dark{
    background: #1d2327;
    color: #fff;
}

.source-info-panel-dark h2,
.source-info-panel-dark h3,
.source-info-panel-dark p{
    color: #fff;
}

.source-info-list{
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.source-info-list li{
    position: relative;
    margin-bottom: 11px;
    padding-left: 28px;
    font-size: 15px;
    line-height: 1.5;
    color: #454b50;
}

.source-info-list li:before{
    position: absolute;
    top: 1px;
    left: 0;
    font-family: FontAwesome;
    content: "\f00c";
    color: #c65300;
}

.source-info-card-row{
    margin-top: 24px;
}

.source-info-card-column{
    margin-bottom: 30px;
}

.source-info-card{
    height: 100%;
    padding: 28px;
    background: #fff;
    border: 1px solid #e4e6e8;
    border-top: 3px solid #f17e28;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}

.source-info-card .btn{
    margin-top: 14px;
}

.source-info-cta{
    margin-top: 18px;
    padding: 34px;
    background: #1d2327;
    color: #fff;
    border-radius: 6px;
}

.source-info-cta h2,
.source-info-cta p{
    color: #fff;
}

.source-info-cta .btn + .btn{
    margin-left: 8px;
}

@media (max-width: 767px){
    #information-information #content > h1{
        margin-bottom: 24px;
        font-size: 34px;
    }

    .source-info-section{
        padding: 34px 0;
    }

    .source-info-split,
    .source-info-split > [class*="col-"]{
        display: block;
        width: 100%;
    }

    .source-info-split > [class*="col-"]{
        margin-bottom: 24px;
    }

    .source-info-split > [class*="col-"]:last-child{
        margin-bottom: 0;
    }

    .source-info-panel,
    .source-info-card,
    .source-info-cta{
        padding: 24px;
    }

    .source-info-cta .btn{
        display: block;
        width: 100%;
        margin: 8px 0 0;
    }
}

/*----------------------------------------*/
/*  SOURCE SIGNS 2027 - PHASE 4 NAV + INFO
/*----------------------------------------*/
#menu .source-signs-dropdown > a .fa{
    margin-left: 6px;
    font-size: 10px;
}

#menu .source-signs-dropdown > .dropdown-menu{
    min-width: 230px;
    margin: 0;
    padding: 10px 0;
    border: 0;
    border-top: 3px solid var(--source-dark);
    border-radius: 0 0 6px 6px;
    background: #fff;
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.16);
}

#menu .source-signs-dropdown > .dropdown-menu > li > a{
    padding: 12px 20px;
    color: var(--source-dark);
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 15px;
    font-weight: 700;
}

#menu .source-signs-dropdown > .dropdown-menu > li > a:hover,
#menu .source-signs-dropdown > .dropdown-menu > li > a:focus{
    color: var(--source-orange-accessible);
    background: #f6f6f4;
}

#menu .nav-bespoke > a{
    color: #fff;
    background: var(--source-dark);
}

#menu .nav-bespoke > a:hover,
#menu .nav-bespoke > a:focus{
    color: #fff;
    background: #000;
}

.source-info-page{
    padding-bottom: 55px;
}

.source-info-hero{
    position: relative;
    margin-bottom: 60px;
    overflow: hidden;
    border-radius: 10px;
    background: #f3f3f0;
}

.source-info-hero .row{
    display: table;
    width: 100%;
    margin: 0;
    table-layout: fixed;
}

.source-info-hero .row > [class*="col-"]{
    display: table-cell;
    float: none;
    padding: 0;
    vertical-align: middle;
}

.source-info-hero-copy{
    padding: 52px;
}

.source-info-kicker{
    display: block;
    margin-bottom: 13px;
    color: var(--source-orange-accessible);
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 1.6px;
    text-transform: uppercase;
}

.source-info-lead{
    margin-bottom: 24px;
    color: #30363a;
    font-size: 19px !important;
    line-height: 1.65 !important;
}

.source-info-hero-image{
    width: 100%;
    height: 460px;
    object-fit: cover;
}

.source-info-actions{
    margin-top: 28px;
}

.source-info-actions .btn + .btn{
    margin-left: 8px;
}

.source-info-section{
    padding: 62px 0;
    border-top: 1px solid #e7e7e5;
}

.source-info-section-heading{
    max-width: 760px;
    margin-bottom: 34px;
}

.source-info-section-heading h2{
    margin-bottom: 14px;
    font-size: 32px;
}

.source-info-section-heading p{
    margin-bottom: 0;
}

.source-info-card-row{
    display: flex;
    flex-wrap: wrap;
    margin-top: 8px;
}

.source-info-card-column{
    display: flex;
    margin-bottom: 30px;
}

.source-info-card{
    width: 100%;
    padding: 32px;
    border: 1px solid #e3e4e2;
    border-top: 4px solid var(--source-orange);
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.06);
}

.source-info-card h2,
.source-info-card h3{
    margin-top: 0;
}

.source-info-card-icon{
    display: flex;
    width: 48px;
    height: 48px;
    margin-bottom: 20px;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 20px;
    border-radius: 50%;
    background: var(--source-orange-accessible);
}

.source-info-split{
    display: table;
    width: 100%;
    table-layout: fixed;
}

.source-info-split > [class*="col-"]{
    display: table-cell;
    float: none;
    vertical-align: middle;
}

.source-info-image{
    width: 100%;
    border-radius: 8px;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.14);
}

.source-info-copy-pad{
    padding: 30px 42px;
}

.source-info-panel{
    height: 100%;
    padding: 38px;
    border: 0;
    border-left: 4px solid var(--source-orange);
    border-radius: 6px;
    background: #f4f4f1;
}

.source-info-panel-dark{
    border-left-color: var(--source-orange);
    background: var(--source-dark);
}

.source-info-list{
    margin-top: 20px;
}

.source-info-list li{
    margin-bottom: 12px;
    padding-left: 29px;
    font-size: 15px;
}

.source-info-pill-list{
    margin: 0 -5px;
    padding: 0;
    list-style: none;
}

.source-info-pill-list li{
    display: inline-block;
    margin: 5px;
    padding: 9px 14px;
    color: #343a3e;
    font-size: 14px;
    font-weight: 600;
    border: 1px solid #dedfdd;
    border-radius: 20px;
    background: #fff;
}

.source-info-gallery{
    margin-top: 28px;
}

.source-info-gallery [class*="col-"]{
    margin-bottom: 30px;
}

.source-info-gallery img{
    width: 100%;
    height: 270px;
    object-fit: cover;
    border-radius: 7px;
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.1);
}

.source-info-process{
    margin-top: 28px;
    counter-reset: source-step;
}

.source-info-process-item{
    position: relative;
    min-height: 125px;
    padding: 26px 22px 22px 72px;
    border: 1px solid #e3e4e2;
    border-radius: 6px;
    background: #fff;
}

.source-info-process-item:before{
    counter-increment: source-step;
    position: absolute;
    top: 24px;
    left: 20px;
    display: flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    content: counter(source-step);
    color: #fff;
    font-family: "Exo 2", Arial, sans-serif;
    font-weight: 800;
    border-radius: 50%;
    background: var(--source-orange-accessible);
}

.source-info-process-item h3{
    margin: 0 0 8px;
    font-size: 18px;
}

.source-info-process-item p{
    margin-bottom: 0;
    font-size: 14px;
    line-height: 1.6;
}

.source-info-cta{
    margin-top: 18px;
    padding: 44px;
    border-radius: 8px;
    background: var(--source-dark);
}

.source-info-cta h2{
    margin-top: 0;
    font-size: 30px;
}

.source-info-cta p{
    max-width: 760px;
    color: #d6d8d9;
    font-size: 17px;
}

@media (min-width: 768px){
    #menu .source-signs-dropdown:hover > .dropdown-menu,
    #menu .source-signs-dropdown:focus-within > .dropdown-menu{
        display: block;
    }
}

@media (max-width: 991px){
    .source-info-hero-copy{
        padding: 38px;
    }

    .source-info-hero-image{
        height: 400px;
    }

    .source-info-copy-pad{
        padding: 24px 28px;
    }
}

@media (max-width: 767px){
    #menu .source-signs-dropdown > .dropdown-menu{
        position: static;
        float: none;
        width: 100%;
        margin: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    #menu .source-signs-dropdown > .dropdown-menu > li > a{
        padding: 12px 30px;
        color: #fff;
        border-bottom: 1px solid #414141;
        background: #303030;
    }

    #menu .source-signs-dropdown > .dropdown-menu > li > a:hover,
    #menu .source-signs-dropdown > .dropdown-menu > li > a:focus{
        color: #fff;
        background: #111;
    }

    #menu .nav-bespoke > a{
        background: #111;
    }

    .source-info-hero{
        margin-right: -15px;
        margin-bottom: 40px;
        margin-left: -15px;
        border-radius: 0;
    }

    .source-info-hero .row,
    .source-info-hero .row > [class*="col-"]{
        display: block;
        width: 100%;
    }

    .source-info-hero-copy{
        padding: 34px 25px;
    }

    .source-info-hero-image{
        height: 310px;
    }

    .source-info-lead{
        font-size: 17px !important;
    }

    .source-info-section{
        padding: 42px 0;
    }

    .source-info-section-heading h2{
        font-size: 27px;
    }

    .source-info-card-row,
    .source-info-card-column{
        display: block;
    }

    .source-info-card{
        padding: 26px;
    }

    .source-info-split,
    .source-info-split > [class*="col-"]{
        display: block;
        width: 100%;
    }

    .source-info-split > [class*="col-"]{
        margin-bottom: 24px;
    }

    .source-info-split > [class*="col-"]:last-child{
        margin-bottom: 0;
    }

    .source-info-copy-pad{
        padding: 8px 0;
    }

    .source-info-panel{
        padding: 28px;
    }

    .source-info-gallery img{
        height: auto;
    }

    .source-info-process-item{
        margin-bottom: 18px;
    }

    .source-info-cta{
        padding: 32px 25px;
    }

    .source-info-cta h2{
        font-size: 26px;
    }

    .source-info-actions .btn,
    .source-info-cta .btn{
        display: block;
        width: 100%;
        margin: 8px 0 0;
    }
}

/*----------------------------------------*/
/*  SOURCE SIGNS 2027 - PHASE 5 EDITORIAL INFO PAGES
/*----------------------------------------*/
.source-info-page.source-info-editorial{
    padding-bottom: 65px;
}

.source-editorial-intro{
    position: relative;
    margin-bottom: 72px;
    padding: 54px 54px 54px 0;
}

.source-editorial-intro:before{
    position: absolute;
    top: 0;
    right: auto;
    bottom: 0;
    left: calc((100% - 100vw) / 2);
    z-index: -1;
    width: 100%;
    content: "";
    background: #f4f4f1;
}

.source-editorial-intro-copy{
    padding: 32px 42px 32px 0;
}

.source-editorial-intro-copy .source-info-lead{
    max-width: 680px;
    margin-bottom: 20px;
    font-size: 21px !important;
}

.source-editorial-feature-image{
    width: 100%;
    height: 500px;
    object-fit: cover;
    border-radius: 7px;
    box-shadow: 0 22px 48px rgba(0, 0, 0, 0.16);
}

.source-editorial-overlap{
    position: relative;
    z-index: 2;
    margin-top: -82px;
    margin-left: 38px;
    padding: 22px 25px;
    max-width: 260px;
    color: #fff;
    border-radius: 4px;
    background: var(--source-orange-accessible);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.source-editorial-overlap strong{
    display: block;
    margin-bottom: 5px;
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 17px;
}

.source-editorial-overlap span{
    display: block;
    font-size: 13px;
    line-height: 1.5;
}

.source-editorial-section{
    padding: 76px 0;
    border-top: 1px solid #e6e6e3;
}

.source-editorial-section.source-editorial-section-dark{
    margin-right: 0;
    margin-left: 0;
    padding-right: 0;
    padding-left: 0;
    box-shadow: 0 0 0 100vmax var(--source-dark);
    clip-path: inset(0 -100vmax);
    color: #fff;
    border-top: 0;
    background: var(--source-dark);
}

.source-editorial-section-dark h2,
.source-editorial-section-dark h3,
.source-editorial-section-dark p{
    color: #fff;
}

.source-editorial-section-dark p{
    color: #d7dadc;
}

.source-editorial-copy{
    max-width: 690px;
}

.source-editorial-copy h2{
    margin: 0 0 18px;
    font-size: 35px;
    line-height: 1.2;
}

.source-editorial-copy p{
    font-size: 16px;
    line-height: 1.8;
}

.source-editorial-image{
    width: 100%;
    height: 390px;
    object-fit: cover;
    border-radius: 6px;
    box-shadow: 0 15px 36px rgba(0, 0, 0, 0.12);
}

.source-editorial-image-tall{
    height: 530px;
}

.source-editorial-service-list{
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid #dedfdd;
}

.source-editorial-service-list li{
    position: relative;
    padding: 14px 0 14px 30px;
    font-size: 15px;
    font-weight: 600;
    border-bottom: 1px solid #dedfdd;
}

.source-editorial-service-list li:before{
    position: absolute;
    top: 16px;
    left: 2px;
    color: var(--source-orange-accessible);
    font-family: FontAwesome;
    content: "\f00c";
}

.source-editorial-mosaic{
    margin: -7px;
}

.source-editorial-mosaic:before,
.source-editorial-mosaic:after{
    display: table;
    content: "";
}

.source-editorial-mosaic:after{
    clear: both;
}

.source-editorial-mosaic-main,
.source-editorial-mosaic-side{
    float: left;
    padding: 7px;
}

.source-editorial-mosaic-main{
    width: 62%;
}

.source-editorial-mosaic-side{
    width: 38%;
}

.source-editorial-mosaic img{
    width: 100%;
    object-fit: cover;
    border-radius: 5px;
}

.source-editorial-mosaic-main img{
    height: 520px;
}

.source-editorial-mosaic-side img{
    height: 253px;
}

.source-editorial-mosaic-side img + img{
    margin-top: 14px;
}

.source-editorial-number-grid{
    margin-top: 32px;
}

.source-editorial-number-item{
    min-height: 180px;
    padding: 28px 25px;
    border-top: 3px solid var(--source-orange);
    background: #fff;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
}

.source-editorial-number{
    display: block;
    margin-bottom: 18px;
    color: var(--source-orange-accessible);
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 32px;
    font-weight: 800;
}

.source-editorial-number-item h3{
    margin: 0 0 9px;
    font-size: 19px;
}

.source-editorial-number-item p{
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
}

.source-editorial-band{
    position: relative;
    min-height: 420px;
    margin: 72px 0;
    overflow: hidden;
    border-radius: 8px;
    background-position: center;
    background-size: cover;
}

.source-editorial-band:before{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    content: "";
    background: linear-gradient(90deg, rgba(23, 27, 30, 0.92) 0%, rgba(23, 27, 30, 0.72) 45%, rgba(23, 27, 30, 0.08) 100%);
}

.source-editorial-band-copy{
    position: relative;
    z-index: 2;
    max-width: 570px;
    padding: 70px 58px;
}

.source-editorial-band-copy h2,
.source-editorial-band-copy p{
    color: #fff;
}

.source-editorial-band-copy h2{
    margin-top: 0;
    font-size: 34px;
}

.source-editorial-band-copy p{
    color: #e4e5e5;
    font-size: 16px;
    line-height: 1.75;
}

.source-editorial-pill-grid{
    margin: 20px -6px 0;
    padding: 0;
    list-style: none;
}

.source-editorial-pill-grid li{
    display: inline-block;
    margin: 6px;
    padding: 10px 15px;
    color: #292e31;
    font-size: 14px;
    font-weight: 700;
    border: 1px solid #dddedc;
    border-radius: 2px;
    background: #fff;
}

.source-editorial-quote{
    position: relative;
    padding: 42px 45px 42px 82px;
    border-left: 4px solid var(--source-orange);
    background: #f4f4f1;
}

.source-editorial-quote:before{
    position: absolute;
    top: 26px;
    left: 28px;
    color: var(--source-orange-accessible);
    font-family: FontAwesome;
    font-size: 30px;
    content: "\f10d";
}

.source-editorial-quote p{
    margin: 0;
    color: #2b3033;
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.55;
}

.source-editorial-materials{
    margin-top: 28px;
}

.source-editorial-material{
    margin-bottom: 20px;
    padding: 24px;
    border: 1px solid #e1e2df;
    background: #fff;
}

.source-editorial-material h3{
    margin: 0 0 7px;
    font-size: 18px;
}

.source-editorial-material p{
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
}

@media (max-width: 991px){
    .source-editorial-intro{
        padding-right: 0;
    }

    .source-editorial-intro:before{
        right: 12%;
    }

    .source-editorial-feature-image{
        height: 430px;
    }

    .source-editorial-mosaic-main img{
        height: 430px;
    }

    .source-editorial-mosaic-side img{
        height: 208px;
    }
}

@media (max-width: 767px){
    .source-editorial-intro{
        margin-bottom: 45px;
        padding: 0;
    }

    .source-editorial-intro:before{
        display: none;
    }

    .source-editorial-intro-copy{
        padding: 28px 5px 35px;
    }

    .source-editorial-feature-image,
    .source-editorial-image,
    .source-editorial-image-tall{
        height: auto;
    }

    .source-editorial-overlap{
        margin: -45px 18px 0;
    }

    .source-editorial-section{
        padding: 48px 0;
    }

    .source-editorial-copy{
        margin-bottom: 28px;
    }

    .source-editorial-copy h2{
        font-size: 29px;
    }

    .source-editorial-mosaic-main,
    .source-editorial-mosaic-side{
        float: none;
        width: 100%;
    }

    .source-editorial-mosaic-main img,
    .source-editorial-mosaic-side img{
        height: auto;
    }

    .source-editorial-number-item{
        min-height: 0;
        margin-bottom: 20px;
    }

    .source-editorial-band{
        min-height: 0;
        margin: 48px 0;
    }

    .source-editorial-band:before{
        background: rgba(23, 27, 30, 0.82);
    }

    .source-editorial-band-copy{
        padding: 48px 28px;
    }

    .source-editorial-quote{
        padding: 34px 28px 34px 62px;
    }

    .source-editorial-quote p{
        font-size: 18px;
    }
}


/*----------------------------------------*/
/*  SOURCE SIGNS 2027 - PHASE 6 MEDIA RICH PAGES + OVERFLOW FIX
/*----------------------------------------*/
.source-project-gallery{
    margin: 38px -8px 0;
}

.source-project-gallery > [class*="col-"]{
    padding: 8px;
}

.source-project-gallery figure{
    position: relative;
    margin: 0;
    overflow: hidden;
    min-height: 280px;
    border-radius: 6px;
    background: #111;
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.12);
}

.source-project-gallery img{
    width: 100%;
    height: 320px;
    object-fit: cover;
    transition: transform .35s ease;
}

.source-project-gallery figure:hover img{
    transform: scale(1.025);
}

.source-project-gallery figcaption{
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 28px 18px 16px;
    color: #fff;
    font-family: "Exo 2", Arial, sans-serif;
    font-weight: 700;
    background: linear-gradient(to bottom, transparent, rgba(0,0,0,.78));
}

.source-project-gallery .source-project-gallery-tall img{
    height: 440px;
}

.source-project-gallery .source-project-gallery-portrait img{
    height: 440px;
}

.source-media-strip{
    margin: 70px 0;
    padding: 48px;
    border-radius: 8px;
    background: #f4f4f1;
}

.source-media-strip img{
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: 5px;
}

.source-media-strip .row{
    display: flex;
    align-items: center;
}

.source-media-strip .row > [class*="col-"]{
    float: none;
}

.source-media-strip-copy{
    padding: 20px 28px;
}

.source-media-strip-copy h2{
    margin-top: 0;
}

@media (max-width: 767px){
    .source-media-strip{
        margin: 45px 0;
        padding: 20px;
    }

    .source-media-strip .row,
    .source-media-strip .row > [class*="col-"]{
        display: block;
    }

    .source-media-strip-copy{
        padding: 24px 0 0;
    }

    .source-project-gallery img,
    .source-project-gallery .source-project-gallery-tall img,
    .source-project-gallery .source-project-gallery-portrait img{
        height: 280px;
    }
}

/*----------------------------------------*/
/*  SOURCE SIGNS 2027 - PHASE 7 SHOP UI
/*----------------------------------------*/
.source-category-page,
.source-product-page {
    --shop-border: #e5e2dd;
    --shop-surface: #f5f4f1;
    --shop-dark: #171717;
}

.source-eyebrow {
    display: block;
    margin-bottom: 9px;
    color: var(--source-orange-accessible);
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.6px;
    text-transform: uppercase;
}

/* Category landing */
.source-category-heading {
    max-width: 820px;
    margin-bottom: 34px;
}

.source-category-heading h1 {
    margin: 0 0 14px;
    font-size: 42px;
    line-height: 1.08;
}

.source-category-description {
    color: #5f5f5f;
    font-size: 17px;
    line-height: 1.7;
}

.source-category-description p:last-child {
    margin-bottom: 0;
}

.source-category-image {
    margin-bottom: 42px;
    padding: 18px;
    background: var(--shop-surface);
}

.source-category-image img {
    width: 100%;
    max-height: 420px;
    object-fit: cover;
}

.source-subcategory-section {
    margin-bottom: 46px;
}

.source-subcategory-section h2 {
    margin: 0 0 20px;
    font-size: 28px;
}

.source-subcategory-card {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    min-height: 82px;
    margin-bottom: 18px;
    padding: 20px 22px;
    color: #222;
    background: #fff;
    border: 1px solid var(--shop-border);
    border-top: 3px solid var(--source-orange);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 17px;
    font-weight: 800;
}

.source-subcategory-card:hover,
.source-subcategory-card:focus {
    color: var(--source-orange-accessible);
    text-decoration: none;
    transform: translateY(-2px);
}

.source-product-toolbar {
    margin-bottom: 24px;
    padding: 15px 0 0;
    border-top: 1px solid var(--shop-border);
    border-bottom: 1px solid var(--shop-border);
}

.source-product-toolbar .btn-default,
.source-product-toolbar .input-group-addon,
.source-product-toolbar .form-control {
    height: 40px;
}

.source-compare-link {
    display: inline-block;
    margin-left: 10px;
    color: #666;
    font-size: 13px;
}

/* Listing cards */
.source-product-listing .product-thumb {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 24px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--shop-border);
    border-radius: 0;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}

.source-product-listing .product-thumb .image {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 280px;
    flex: 0 0 280px;
    margin: 0;
    padding: 22px;
    background: var(--shop-surface);
}

.source-product-listing .product-thumb .image img {
    width: 100%;
    height: 220px;
    object-fit: contain;
}

.source-product-listing .source-product-card-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    padding: 26px;
}

.source-product-listing .caption {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
}

.source-product-listing .caption h2 {
    margin: 0 0 12px;
    font-size: 24px;
}

.source-product-listing .caption h2 a {
    color: #1c1c1c;
}

.source-product-listing .caption p {
    height: auto;
    max-width: 720px;
    color: #666;
    font-size: 14px;
    line-height: 1.65;
}

.source-product-listing .product-thumb .price {
    color: var(--source-orange-accessible);
    font-size: 22px;
}

.source-product-listing .product-thumb .button-group {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    margin-top: 16px;
    background: transparent;
    opacity: 1;
    visibility: visible;
}

.source-product-listing .source-configure-product {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    padding: 13px 16px;
    color: #fff;
    background: var(--shop-dark);
    font-family: "Exo 2", Arial, sans-serif;
    font-weight: 800;
}

.source-product-listing .source-configure-product:hover,
.source-product-listing .source-configure-product:focus {
    color: #fff;
    background: var(--source-orange-accessible);
    text-decoration: none;
}

.source-product-listing .button-group button {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 48px;
    flex: 0 0 48px;
    margin-left: 5px;
    border-radius: 0;
    background: #efefec;
}

.source-pagination-row {
    margin-top: 20px;
}

/* Product configurator */
.source-product-hero {
    margin-bottom: 56px;
}

.source-product-gallery {
    position: relative;
    padding: 28px;
    background: var(--shop-surface);
}

.source-product-page .thumbnails {
    overflow: visible;
    margin: 0;
}

.source-product-page .thumbnails > li {
    margin-left: 0;
}

.source-product-main-image .thumbnail {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
}

.source-product-main-image .thumbnail img {
    width: 100%;
    max-height: 620px;
    object-fit: contain;
}

.source-product-thumbs {
    margin-top: 18px;
}

.source-product-thumbs .list-inline {
    margin: 0 -5px;
}

.source-product-thumbs .image-additional {
    float: none;
    width: 90px;
    max-width: none;
    margin: 0 5px 10px;
    padding: 0;
    vertical-align: top;
}

.source-product-thumbs .thumbnail {
    margin: 0;
    padding: 5px;
    background: #fff;
    border-color: var(--shop-border);
}

.source-product-purchase-panel {
    padding: 34px;
    background: #fff;
    border: 1px solid var(--shop-border);
    border-top: 5px solid var(--source-orange);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
}

.source-product-purchase-panel h1 {
    margin: 0 0 14px;
    font-size: 34px;
    line-height: 1.12;
}

.source-product-status {
    margin-bottom: 20px;
    color: #666;
    font-size: 13px;
}

.source-product-status span {
    display: inline-block;
    margin-right: 14px;
}

.source-product-status .fa {
    color: #548a4e;
}

.source-product-price {
    margin-bottom: 24px;
    padding: 18px 0;
    border-top: 1px solid var(--shop-border);
    border-bottom: 1px solid var(--shop-border);
}

.source-product-price strong {
    display: block;
    color: var(--source-orange-accessible);
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 30px;
    line-height: 1.2;
}

.source-product-price small,
.source-product-discounts span {
    display: block;
    margin-top: 5px;
    color: #737373;
}

.source-product-price-old {
    display: block;
    margin-bottom: 4px;
    color: #8c8c8c;
    text-decoration: line-through;
}

.source-configurator-heading {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    margin: 26px 0 20px;
}

.source-configurator-heading-compact {
    margin-top: 0;
}

.source-configurator-step {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-right: 14px;
    color: #fff;
    background: var(--shop-dark);
    border-radius: 50%;
    font-family: "Exo 2", Arial, sans-serif;
    font-weight: 800;
}

.source-configurator-heading h2 {
    margin: 0;
    color: #222;
    font-size: 20px;
}

.source-configurator-heading p {
    margin: 4px 0 0;
    color: #747474;
    font-size: 13px;
}

.source-product-configurator .form-group {
    margin-bottom: 18px;
}

.source-product-configurator .control-label {
    margin-bottom: 8px;
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
}

.source-product-configurator .required .control-label:before {
    margin-right: 4px;
    color: #c65300;
}

.source-product-configurator .form-control {
    height: 46px;
    border: 1px solid #d6d3ce;
    border-radius: 0;
    box-shadow: none;
}

.source-product-configurator textarea.form-control {
    height: auto;
    min-height: 120px;
}

.source-option-choices .radio,
.source-option-choices .checkbox {
    margin: 0 0 8px;
}

.source-option-choices label {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    background: #f7f6f3;
    border: 1px solid #e2dfd9;
    cursor: pointer;
}

.source-option-choices input {
    margin: 0 10px 0 0 !important;
}

.source-option-choices .img-thumbnail {
    width: 44px;
    height: 44px;
    margin-right: 10px;
    object-fit: contain;
}

.source-option-choices small {
    color: var(--source-orange-accessible);
    font-weight: 700;
}

.source-upload-button {
    padding: 12px;
    border: 1px dashed #aaa;
    border-radius: 0;
    background: #f7f6f3;
}

.source-add-to-cart-panel {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--shop-border);
}

.source-quantity-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.source-quantity-row label {
    margin: 0 12px 0 0;
}

.source-product-page #input-quantity {
    width: 90px;
    margin: 0;
}

.source-product-page #button-cart {
    margin-top: 8px;
    padding: 15px 20px;
    background: var(--source-orange-accessible);
    border: 0;
    border-radius: 0;
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: .3px;
    text-transform: none;
}

.source-product-page #button-cart:hover,
.source-product-page #button-cart:focus {
    background: #9f4200;
}

.source-product-information {
    margin-bottom: 54px;
}

.source-product-information .nav-tabs {
    margin: 0;
    border-bottom: 1px solid var(--shop-border);
}

.source-product-information .nav-tabs > li > a {
    margin: 0 4px 0 0;
    padding: 14px 20px;
    color: #444;
    background: #efeeeb;
    border: 0;
    border-radius: 0;
    font-family: "Exo 2", Arial, sans-serif;
    font-weight: 800;
}

.source-product-information .nav-tabs > li.active > a,
.source-product-information .nav-tabs > li > a:hover,
.source-product-information .nav-tabs > li > a:focus {
    color: #fff;
    background: var(--shop-dark);
    border: 0;
}

.source-product-information .tab-content {
    min-height: 160px;
    padding: 32px;
    border: 1px solid var(--shop-border);
    border-top: 0;
    font-size: 15px;
    line-height: 1.75;
}

.source-specification-table > thead > tr > td {
    color: #fff;
    background: var(--shop-dark);
}

.source-related-products {
    margin-top: 46px;
}

.source-related-products > h2 {
    margin: 0 0 24px;
}

.source-product-tags {
    margin-top: 28px;
    color: #777;
    font-size: 13px;
}

.source-empty-category {
    padding: 50px 30px;
    text-align: center;
    background: var(--shop-surface);
}

@media(min-width: 992px) {
    .source-product-purchase-panel {
        position: -webkit-sticky;
        position: sticky;
        top: 20px;
    }
}

@media(max-width: 767px) {
    .source-category-heading h1 {
        font-size: 34px;
    }

    .source-product-listing .product-thumb {
        display: block;
    }

    .source-product-listing .product-thumb .image {
        width: 100%;
        padding: 18px;
    }

    .source-product-listing .product-thumb .image img {
        height: auto;
        max-height: 300px;
    }

    .source-product-listing .source-product-card-content {
        padding: 20px;
    }

    .source-product-listing .button-group {
        padding-top: 0;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    }

    .source-product-gallery {
        margin-bottom: 22px;
        padding: 18px;
    }

    .source-product-purchase-panel {
        padding: 24px 20px;
    }

    .source-product-purchase-panel h1 {
        font-size: 30px;
    }

    .source-product-information .nav-tabs > li {
        float: none;
    }

    .source-product-information .nav-tabs > li > a {
        margin: 0 0 3px;
    }

    .source-product-information .tab-content {
        padding: 22px 18px;
    }

    .source-product-page #input-quantity {
        width: 100px;
        margin: 0;
    }
}

/*----------------------------------------*/
/*  SOURCE SIGNS 2027 - PHASE 8 SHOP POLISH
/*----------------------------------------*/
.source-shop-intro{
    max-width: 700px;
    margin: 0;
    color: #5d5d5d;
    font-size: 17px;
    line-height: 1.7;
}

.source-subcategory-section .row{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.source-subcategory-section .row > [class*="col-"]{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.source-subcategory-card{
    width: 100%;
    min-height: 96px;
    margin-bottom: 22px;
    padding: 24px 26px;
    font-size: 19px;
    border-top-width: 4px;
}

/* Category sidebar: remove the stock OpenCart/module feel */
.source-category-page #column-left{
    margin-top: 4px;
}

.source-category-page #column-left > *{
    margin-bottom: 22px;
}

.source-category-page #column-left .list-group{
    overflow: hidden;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.07);
}

.source-category-page #column-left .list-group-item{
    padding: 13px 16px;
    color: #303030;
    border-bottom: 1px solid #ebe8e2;
    background: #fff;
}

.source-category-page #column-left .list-group-item.active{
    color: #fff;
    background: var(--source-dark);
}

.source-category-page #column-left .list-group-item:hover,
.source-category-page #column-left .list-group-item:focus{
    color: var(--source-orange-accessible);
    background: #f7f5f1;
}

.source-category-page #column-left .ajax-filter{
    overflow: hidden;
    margin: 0 0 22px;
    border: 1px solid #e4e0d9;
    background: #fff;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.07);
}

.source-category-page #column-left .ajax-filter > .title{
    padding: 0 !important;
    color: #fff !important;
    background: var(--source-dark) !important;
}

.source-category-page #column-left .ajax-filter > .title > .title{
    padding: 15px 17px !important;
    color: #fff !important;
    background: transparent !important;
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 16px;
    font-weight: 800;
}

.source-category-page #column-left .ajax-filter .af-body{
    padding: 6px 14px 14px;
}

.source-category-page #column-left .ajax-filter .af-container{
    border: 0 !important;
}

.source-category-page #column-left .ajax-filter .af-heading{
    padding: 13px 0 !important;
    color: #222 !important;
    background: transparent !important;
    border-bottom: 1px solid #ece9e3 !important;
    font-family: "Exo 2", Arial, sans-serif;
    font-weight: 700;
}

.source-category-page #column-left .ajax-filter .af-wrapper{
    padding: 12px 0 !important;
}

.source-category-page #column-left .ajax-filter input[type="text"]{
    min-height: 42px;
    border: 1px solid #d8d4cc;
    border-radius: 0;
    box-shadow: none;
}

/* Cleaner bespoke catalogue toolbar */
.source-product-toolbar{
    margin: 18px 0 26px;
    padding: 18px 20px 10px;
    background: #f5f4f1;
    border: 0;
}

.source-product-toolbar label{
    display: block;
    margin-bottom: 6px;
    color: #666;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.source-product-toolbar .form-control{
    height: 43px;
    border: 1px solid #d8d4cc;
    border-radius: 0;
    box-shadow: none;
}

.source-product-count{
    display: block;
    color: #333;
    font-size: 14px;
    font-weight: 500;
}

/* Two-column catalogue cards */
.source-product-grid{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.source-product-grid > .product-layout{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.source-product-listing .source-shop-product-card{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    width: 100%;
    margin-bottom: 30px;
    background: #fff;
    border: 1px solid #e4e0d9;
    box-shadow: 0 15px 38px rgba(0, 0, 0, 0.07);
}

.source-product-listing .source-shop-product-card .image{
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none;
    width: 100%;
    padding: 28px;
    background: #f3f2ee;
}

.source-product-listing .source-shop-product-card .image img{
    width: 100%;
    height: 300px;
    object-fit: contain;
}

.source-product-listing .source-shop-product-card .source-product-card-content{
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    padding: 24px;
}

.source-product-card-label{
    display: block;
    margin-bottom: 9px;
    color: var(--source-orange-accessible);
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.source-product-listing .source-shop-product-card .caption h2{
    min-height: 0;
    margin-bottom: 10px;
    font-size: 23px;
}

.source-product-listing .source-shop-product-card .caption p{
    height: auto;
    min-height: 0;
    margin-bottom: 14px;
}

.source-product-listing .source-shop-product-card .source-configure-product{
    margin-top: 16px;
}

/* Product page: make the configurator feel purpose-built rather than stock OpenCart */
.source-product-titlebar{
    margin-bottom: 34px;
    padding: 34px 38px;
    color: #fff;
    background: var(--source-dark);
}

.source-product-titlebar .source-eyebrow{
    color: #ff9b52;
}

.source-product-titlebar h1{
    margin: 0;
    color: #fff;
    font-size: 40px;
    line-height: 1.08;
}

.source-product-titlebar .source-product-status{
    margin: 12px 0 0;
    color: #d8d8d8;
}

.source-product-titlebar .source-product-price{
    margin: 0;
    padding: 0;
    text-align: right;
    border: 0;
}

.source-product-titlebar .source-product-price strong{
    color: #ff9b52;
    font-size: 34px;
}

.source-product-titlebar .source-product-price small,
.source-product-titlebar .source-product-price-old{
    color: #d0d0d0;
}

.source-product-hero{
    margin-bottom: 34px;
}

.source-product-gallery{
    min-height: 540px;
    padding: 36px;
    border: 1px solid #e4e0d9;
    background: #f5f4f1;
}

.source-product-purchase-panel{
    padding: 0;
    overflow: hidden;
    border: 1px solid #e4e0d9;
    border-top: 0;
    box-shadow: 0 16px 42px rgba(0, 0, 0, 0.08);
}

.source-configurator-intro{
    padding: 27px 30px 23px;
    color: #fff;
    background: var(--source-orange-accessible);
}

.source-configurator-intro .source-eyebrow{
    margin-bottom: 5px;
    color: #fff;
    opacity: .82;
}

.source-configurator-intro h2{
    margin: 0 0 7px;
    color: #fff;
    font-size: 26px;
}

.source-configurator-intro p{
    margin: 0;
    color: #fff;
    line-height: 1.55;
}

.source-product-configurator{
    padding: 6px 30px 30px;
}

.source-product-configurator .form-group{
    margin-bottom: 14px;
    padding: 16px;
    background: #f7f6f3;
    border-left: 3px solid #ddd7ce;
}

.source-product-configurator .form-group.required{
    border-left-color: var(--source-orange);
}

.source-product-configurator .source-quantity-row{
    padding: 0;
    background: transparent;
    border-left: 0;
}

.source-product-configurator .source-add-to-cart-panel{
    margin-top: 22px;
    padding: 22px;
    background: #fff;
    border: 1px solid #e4e0d9;
}

.source-order-process{
    margin: 0 0 50px;
    padding: 26px 28px;
    background: #f5f4f1;
}

.source-order-process .row{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.source-order-process-item{
    position: relative;
    min-height: 82px;
    padding: 0 18px 0 48px;
    border-right: 1px solid #ddd8d0;
}

.source-order-process .col-sm-3:last-child .source-order-process-item{
    border-right: 0;
}

.source-order-process-number{
    position: absolute;
    top: 0;
    left: 0;
    color: var(--source-orange-accessible);
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 28px;
    font-weight: 800;
}

.source-order-process-item strong{
    display: block;
    margin-bottom: 5px;
    color: #222;
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 15px;
}

.source-order-process-item span{
    color: #6c6c6c;
    font-size: 12px;
    line-height: 1.5;
}

.source-product-information{
    padding-top: 8px;
}

.source-product-information .nav-tabs{
    border: 0;
}

.source-product-information .nav-tabs > li > a{
    margin-right: 7px;
    padding: 13px 18px;
    color: #303030;
    background: #f0efec;
    border-bottom: 3px solid transparent;
}

.source-product-information .nav-tabs > li.active > a,
.source-product-information .nav-tabs > li > a:hover,
.source-product-information .nav-tabs > li > a:focus{
    color: #1f1f1f;
    background: #fff;
    border-bottom: 3px solid var(--source-orange);
}

.source-product-information .tab-content{
    padding: 36px;
    border: 1px solid #e4e0d9;
    background: #fff;
}

/* Phase 5 dark section cards: keep copy readable inside the white cards */
.source-editorial-section-dark .source-editorial-number-item h3{
    color: #222;
}

.source-editorial-section-dark .source-editorial-number-item p{
    color: #5f5f5f;
}

@media(max-width: 767px){
    .source-product-toolbar{
        padding: 15px 15px 5px;
    }

    .source-product-titlebar{
        padding: 26px 22px;
    }

    .source-product-titlebar h1{
        font-size: 32px;
    }

    .source-product-titlebar .source-product-price{
        margin-top: 20px;
        text-align: left;
    }

    .source-product-gallery{
        min-height: 0;
        padding: 22px;
    }

    .source-product-configurator{
        padding: 6px 18px 20px;
    }

    .source-configurator-intro{
        padding: 22px 20px;
    }

    .source-order-process .row{
        display: block;
    }

    .source-order-process-item{
        min-height: 0;
        margin-bottom: 18px;
        padding-bottom: 18px;
        border-right: 0;
        border-bottom: 1px solid #ddd8d0;
    }
}

/*----------------------------------------*/
/*  SOURCE SIGNS 2027 - PHASE 9 PRODUCT BUILDER
/*----------------------------------------*/
.source-product-builder-heading{
    margin-bottom: 28px;
    padding: 34px 38px;
    color: #fff;
    background: #171717;
    border-bottom: 4px solid var(--source-orange);
}

.source-product-builder-heading .source-eyebrow{
    margin-bottom: 8px;
    color: #ff9b52;
}

.source-product-builder-heading h1{
    margin: 0 0 10px;
    color: #fff;
    font-size: 42px;
    line-height: 1.05;
}

.source-product-builder-lead{
    max-width: 690px;
    margin: 0;
    color: #d8d8d8;
    font-size: 15px;
    line-height: 1.6;
}

.source-product-builder-meta{
    text-align: right;
}

.source-product-stock{
    display: inline-block;
    margin-bottom: 12px;
    padding: 7px 11px;
    color: #dcdcdc;
    font-size: 12px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
}

.source-product-stock .fa{
    margin-right: 6px;
    color: #85c98a;
}

.source-product-builder-heading .source-product-price{
    margin: 0;
    padding: 0;
    border: 0;
}

.source-product-builder-heading .source-product-price strong{
    display: block;
    color: #ff9b52;
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 38px;
    line-height: 1;
}

.source-product-builder-heading .source-product-price small,
.source-product-builder-heading .source-product-price-old{
    display: block;
    margin-top: 5px;
    color: #bfbfbf;
}

.source-product-builder{
    margin-bottom: 42px;
}

.source-product-gallery-stage{
    position: relative;
}

.source-product-gallery-badge{
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 3;
    padding: 8px 11px;
    color: #555;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .4px;
    background: rgba(255,255,255,.94);
    border: 1px solid #e5e0d8;
    box-shadow: 0 5px 18px rgba(0,0,0,.08);
}

.source-product-gallery-badge .fa{
    margin-right: 5px;
    color: var(--source-orange-accessible);
}

.source-product-builder .source-product-gallery{
    min-height: 610px;
    padding: 50px 42px 30px;
    background: #f5f4f1;
    border: 1px solid #e3dfd8;
}

.source-product-builder .source-product-gallery .thumbnails{
    margin: 0;
}

.source-product-builder .source-product-main-image{
    margin-bottom: 22px;
}

.source-product-builder .source-product-main-image > .thumbnail{
    min-height: 470px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    margin: 0;
    padding: 26px;
    background: #fff;
    border: 0;
    border-radius: 0;
    box-shadow: 0 14px 35px rgba(0,0,0,.07);
}

.source-product-builder .source-product-main-image img{
    max-height: 430px;
    width: auto;
    margin: auto;
}

.source-product-builder .source-product-thumbs{
    margin: 0;
}

.source-product-builder .source-product-thumbs .list-inline{
    margin: 0 -5px;
}

.source-product-builder .source-product-thumbs .image-additional{
    padding: 0 5px;
}

.source-product-builder .source-product-thumbs .thumbnail{
    width: 78px;
    height: 78px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    margin: 0;
    padding: 6px;
    background: #fff;
    border: 1px solid #ddd8cf;
    border-radius: 0;
}

.source-product-builder .source-product-thumbs .thumbnail:hover,
.source-product-builder .source-product-thumbs .thumbnail:focus{
    border-color: var(--source-orange);
}

.source-product-gallery-note{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 10px;
    margin-top: 12px;
    padding: 13px 15px;
    color: #666;
    font-size: 12px;
    line-height: 1.5;
    background: #fff;
    border: 1px solid #e6e2dc;
}

.source-product-gallery-note .fa{
    margin-top: 2px;
    color: var(--source-orange-accessible);
}

.source-product-builder .source-product-purchase-panel{
    margin: 0;
    border: 0;
    box-shadow: 0 18px 48px rgba(0,0,0,.10);
}

.source-product-builder .source-configurator-intro{
    padding: 28px 30px 24px;
    background: #202020;
    border-top: 4px solid var(--source-orange);
}

.source-product-builder .source-configurator-intro .source-eyebrow{
    color: #ff9b52;
    opacity: 1;
}

.source-product-builder .source-configurator-intro h2{
    font-size: 28px;
}

.source-builder-mini-steps{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    background: #f4f2ee;
    border-bottom: 1px solid #e2ddd5;
}

.source-builder-mini-steps span{
    position: relative;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    padding: 14px 8px;
    color: #777;
    font-size: 11px;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .6px;
    border-right: 1px solid #e2ddd5;
}

.source-builder-mini-steps span:last-child{
    border-right: 0;
}

.source-builder-mini-steps span.active{
    color: #222;
    background: #fff;
}

.source-builder-mini-steps b{
    display: inline-block;
    width: 22px;
    height: 22px;
    margin-right: 4px;
    color: #fff;
    line-height: 22px;
    background: var(--source-orange-accessible);
    border-radius: 50%;
}

.source-product-builder .source-product-configurator{
    padding: 22px 26px 26px;
    background: #fff;
}

.source-product-builder .source-configurator-heading{
    margin: 0 0 18px;
    padding: 0 0 16px;
    border-bottom: 1px solid #e7e2db;
}

.source-configurator-fields{
    counter-reset: source-option;
}

.source-product-builder .source-option-block{
    position: relative;
    margin-bottom: 12px;
    padding: 17px 17px 17px 52px;
    background: #f7f6f3;
    border: 1px solid #ebe7e1;
    border-left: 0;
}

.source-product-builder .source-option-block:before{
    counter-increment: source-option;
    content: counter(source-option, decimal-leading-zero);
    position: absolute;
    top: 18px;
    left: 15px;
    color: var(--source-orange-accessible);
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 15px;
    font-weight: 800;
}

.source-product-builder .source-option-block.required{
    border-left: 3px solid var(--source-orange);
    padding-left: 49px;
}

.source-product-builder .source-option-block .control-label{
    display: block;
    margin-bottom: 8px;
    color: #242424;
    font-family: "Exo 2", Arial, sans-serif;
    font-size: 13px;
    font-weight: 800;
}

.source-product-builder .source-option-block.required .control-label:after{
    content: "Required";
    float: right;
    margin-left: 8px;
    color: var(--source-orange-accessible);
    font-family: Roboto, Arial, sans-serif;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .6px;
    text-transform: uppercase;
}

.source-product-builder .source-option-block .form-control{
    height: 44px;
    background: #fff;
    border-color: #d7d2ca;
    box-shadow: none;
}

.source-product-builder .source-option-textarea .form-control{
    height: auto;
    min-height: 115px;
    resize: vertical;
}

.source-product-builder .source-option-choices .radio,
.source-product-builder .source-option-choices .checkbox{
    margin: 7px 0;
}

.source-product-builder .source-option-choices label{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    min-height: 42px;
    margin: 0;
    padding: 9px 11px;
    background: #fff;
    border: 1px solid #ddd8d0;
}

.source-product-builder .source-option-choices input{
    margin-right: 9px;
}

.source-product-builder .source-file-option{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 20px;
    background: #fff7f0;
    border: 1px solid #f1d0b5;
}

.source-product-builder .source-file-option:before{
    display: none;
}

.source-file-option-icon{
    width: 54px;
    height: 54px;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    margin-right: 15px;
    color: var(--source-orange-accessible);
    font-size: 24px;
    line-height: 54px;
    text-align: center;
    background: #fff;
    border: 1px solid #efd9c7;
}

.source-file-option-copy{
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
}

.source-file-option-copy p{
    margin: -2px 0 11px;
    color: #696969;
    font-size: 12px;
    line-height: 1.45;
}

.source-product-builder .source-upload-button{
    min-height: 44px;
    color: #222;
    font-weight: 800;
    background: #fff;
    border-color: #d7c6b8;
}

.source-product-builder .source-upload-button:hover,
.source-product-builder .source-upload-button:focus{
    color: #fff;
    background: var(--source-orange-accessible);
    border-color: var(--source-orange-accessible);
}

.source-product-builder .source-add-to-cart-panel{
    margin: 22px -26px -26px;
    padding: 24px 26px 26px;
    color: #fff;
    background: #1d1d1d;
    border: 0;
}

.source-add-to-cart-heading{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 17px;
}

.source-add-to-cart-heading .source-configurator-step{
    margin-right: 12px;
    color: #fff;
    background: var(--source-orange-accessible);
}

.source-add-to-cart-heading h2{
    margin: 0 0 3px;
    color: #fff;
    font-size: 21px;
}

.source-add-to-cart-heading p{
    margin: 0;
    color: #bbb;
    font-size: 12px;
}

.source-buy-row{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
    gap: 12px;
}

.source-product-builder .source-quantity-row{
    width: 90px;
    margin: 0;
}

.source-product-builder .source-quantity-row .control-label{
    margin-bottom: 7px;
    color: #fff;
}

.source-product-builder .source-quantity-row .form-control{
    height: 48px;
    color: #222;
    font-size: 17px;
    text-align: center;
    background: #fff;
    border: 0;
}

.source-buy-button{
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
}

.source-product-builder #button-cart{
    min-height: 48px;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: .4px;
    text-transform: uppercase;
}

.source-purchase-assurance{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 17px;
    padding-top: 15px;
    color: #ccc;
    font-size: 10px;
    border-top: 1px solid rgba(255,255,255,.12);
}

.source-purchase-assurance .fa{
    margin-right: 4px;
    color: #ff9b52;
}

.source-order-process-five{
    padding: 0;
    background: #202020;
}

.source-order-process-grid{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.source-order-process-five .source-order-process-item{
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-height: 126px;
    padding: 25px 19px 22px 50px;
    border-right: 1px solid #383838;
}

.source-order-process-five .source-order-process-item:last-child{
    border-right: 0;
}

.source-order-process-five .source-order-process-number{
    top: 24px;
    left: 18px;
    color: #ff9b52;
    font-size: 22px;
}

.source-order-process-five .source-order-process-item strong{
    color: #fff;
    font-size: 14px;
}

.source-order-process-five .source-order-process-item span{
    color: #aaa;
    font-size: 11px;
}

.source-product-information{
    margin-bottom: 48px;
    padding: 0;
}

.source-product-information-heading{
    margin-bottom: 18px;
}

.source-product-information-heading h2{
    margin: 0;
    font-size: 30px;
}

.source-product-details-layout{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    border: 1px solid #e1ddd6;
    background: #fff;
    box-shadow: 0 12px 35px rgba(0,0,0,.06);
}

.source-product-information .nav-tabs{
    width: 235px;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    margin: 0;
    padding: 18px 0;
    background: #f4f2ee;
    border: 0;
    border-right: 1px solid #e1ddd6;
}

.source-product-information .nav-tabs > li{
    float: none;
    display: block;
    margin: 0;
}

.source-product-information .nav-tabs > li > a{
    position: relative;
    display: block;
    margin: 0;
    padding: 14px 38px 14px 20px;
    color: #555;
    background: transparent;
    border: 0;
    border-left: 3px solid transparent;
    border-radius: 0;
    font-weight: 700;
}

.source-product-information .nav-tabs > li > a:after{
    content: "\f105";
    position: absolute;
    top: 50%;
    right: 18px;
    margin-top: -8px;
    font-family: FontAwesome;
    color: #aaa;
}

.source-product-information .nav-tabs > li.active > a,
.source-product-information .nav-tabs > li.active > a:hover,
.source-product-information .nav-tabs > li.active > a:focus,
.source-product-information .nav-tabs > li > a:hover,
.source-product-information .nav-tabs > li > a:focus{
    color: #222;
    background: #fff;
    border: 0;
    border-left: 3px solid var(--source-orange);
}

.source-product-information .tab-content{
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 0;
    padding: 34px 38px;
    border: 0;
    background: #fff;
}

.source-product-information .tab-pane{
    color: #4f4f4f;
    font-size: 14px;
    line-height: 1.75;
}

.source-product-information .tab-pane h2,
.source-product-information .tab-pane h3{
    color: #222;
}

.source-product-information .tab-pane ul,
.source-product-information .tab-pane ol{
    margin-top: 14px;
    margin-bottom: 20px;
}

.source-product-information .tab-pane li{
    margin-bottom: 7px;
}

@media(max-width: 991px){
    .source-product-builder-heading h1{
        font-size: 35px;
    }

    .source-product-builder .source-product-gallery{
        min-height: 520px;
        padding: 45px 24px 25px;
    }

    .source-product-builder .source-product-main-image > .thumbnail{
        min-height: 390px;
    }

    .source-product-builder .source-product-main-image img{
        max-height: 350px;
    }

    .source-order-process-grid{
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

    .source-order-process-five .source-order-process-item{
        min-width: 33.333%;
    }
}

@media(max-width: 767px){
    .source-product-builder-heading{
        padding: 25px 20px;
    }

    .source-product-builder-heading h1{
        font-size: 31px;
    }

    .source-product-builder-meta{
        margin-top: 20px;
        text-align: left;
    }

    .source-product-builder-heading .source-product-price strong{
        font-size: 31px;
    }

    .source-product-builder .source-product-gallery{
        min-height: 0;
        padding: 48px 16px 18px;
    }

    .source-product-builder .source-product-main-image > .thumbnail{
        min-height: 320px;
        padding: 15px;
    }

    .source-product-builder .source-product-main-image img{
        max-height: 290px;
    }

    .source-product-builder .source-product-purchase-panel{
        margin-top: 24px;
    }

    .source-builder-mini-steps span{
        padding: 12px 4px;
        font-size: 9px;
    }

    .source-builder-mini-steps b{
        display: block;
        margin: 0 auto 4px;
    }

    .source-product-builder .source-product-configurator{
        padding: 18px 16px 20px;
    }

    .source-product-builder .source-add-to-cart-panel{
        margin: 20px -16px -20px;
        padding: 22px 16px;
    }

    .source-product-builder .source-option-block,
    .source-product-builder .source-option-block.required{
        padding: 16px 14px 16px 44px;
    }

    .source-product-builder .source-option-block:before{
        left: 12px;
    }

    .source-product-builder .source-file-option{
        padding: 16px;
    }

    .source-file-option-icon{
        display: none;
    }

    .source-buy-row{
        display: block;
    }

    .source-product-builder .source-quantity-row{
        width: 100%;
        margin-bottom: 12px;
    }

    .source-product-builder .source-quantity-row .form-control{
        max-width: 90px;
    }

    .source-order-process-five .source-order-process-item{
        min-width: 100%;
        min-height: 0;
        padding: 18px 16px 18px 52px;
        border-right: 0;
        border-bottom: 1px solid #383838;
    }

    .source-order-process-five .source-order-process-number{
        top: 17px;
        left: 17px;
    }

    .source-product-details-layout{
        display: block;
    }

    .source-product-information .nav-tabs{
        width: 100%;
        padding: 0;
        overflow-x: auto;
        white-space: nowrap;
        border-right: 0;
        border-bottom: 1px solid #e1ddd6;
    }

    .source-product-information .nav-tabs > li{
        display: inline-block;
    }

    .source-product-information .nav-tabs > li > a{
        padding: 13px 17px;
        border-left: 0;
        border-bottom: 3px solid transparent;
    }

    .source-product-information .nav-tabs > li > a:after{
        display: none;
    }

    .source-product-information .nav-tabs > li.active > a,
    .source-product-information .nav-tabs > li.active > a:hover,
    .source-product-information .nav-tabs > li.active > a:focus,
    .source-product-information .nav-tabs > li > a:hover,
    .source-product-information .nav-tabs > li > a:focus{
        border-left: 0;
        border-bottom: 3px solid var(--source-orange);
    }

    .source-product-information .tab-content{
        padding: 24px 20px;
    }
}

/*----------------------------------------*/
/*  SOURCE SIGNS - CONSOLIDATED MINI CART
/*----------------------------------------*/
#cart{
    position:relative;
}

#cart > .btn,
#cart.open > .btn{
    color:#fff;
}

#cart #cart-total{
    color:#fff !important;
}

#cart > .btn .fa{
    color:var(--source-orange);
}

#cart .source-mini-cart-menu{
    right:0;
    left:auto;
    width:440px;
    min-width:0;
    max-width:calc(100vw - 30px);
    padding:0;
    overflow:hidden;
    border:0;
    border-radius:3px;
    box-shadow:0 18px 45px rgba(0,0,0,.22);
}

#cart .source-mini-cart-menu,
#cart .source-mini-cart-menu *{
    box-sizing:border-box;
}

#cart .source-mini-cart-menu li > div{
    width:auto;
    min-width:0;
    max-width:100%;
}

#cart .source-mini-cart-header{
    display:block;
    padding:20px 22px 18px;
    color:#fff;
    background:#171717;
    border-top:3px solid var(--source-orange);
}

#cart .source-mini-cart-header .source-eyebrow{
    display:block;
    margin-bottom:4px;
    color:#ff9b52;
}

#cart .source-mini-cart-header strong{
    display:block;
    color:#fff;
    font-family:"Exo 2",Arial,sans-serif;
    font-size:20px;
    line-height:1.25;
}

#cart .source-mini-cart-products{
    display:block;
    width:100%;
    max-width:100%;
    max-height:390px;
    padding:0 12px;
    overflow-x:hidden;
    overflow-y:auto;
    background:#fff;
}

#cart .source-mini-cart-product{
    position:relative;
    display:flex;
    width:100%;
    min-width:0;
    max-width:100%;
    gap:14px;
    padding:16px 38px 16px 4px;
    border-bottom:1px solid #ece8e3;
}

#cart .source-mini-cart-image{
    flex:0 0 68px;
    width:68px;
    height:68px;
    padding:5px;
    background:#faf9f7;
    border:1px solid #e4ded7;
}

#cart .source-mini-cart-image img{
    width:100%;
    height:100%;
    object-fit:contain;
}

#cart .source-mini-cart-copy{
    flex:1 1 0;
    width:0;
    min-width:0;
}

#cart .source-mini-cart-name,
#cart .source-mini-cart-name a{
    max-width:100%;
    color:#171717;
    font-family:"Exo 2",Arial,sans-serif;
    font-weight:700;
    line-height:1.3;
    white-space:normal;
    overflow-wrap:anywhere;
}

#cart .source-mini-cart-options{
    margin:7px 0;
}

#cart .source-mini-cart-options small{
    display:block;
    max-width:100%;
    margin-top:3px;
    color:#6f6b67;
    line-height:1.35;
    white-space:normal;
    overflow-wrap:anywhere;
}

#cart .source-mini-cart-line{
    display:flex;
    width:100%;
    min-width:0;
    max-width:100%;
    justify-content:space-between;
    gap:15px;
    margin-top:8px;
    color:#77716c;
    font-size:12px;
}

#cart .source-mini-cart-line strong{
    flex:0 0 auto;
    color:#c65300;
    font-size:14px;
    white-space:nowrap;
}

#cart .source-mini-cart-remove{
    position:absolute;
    top:13px;
    right:4px;
    width:28px;
    height:28px;
    padding:0;
    color:#555;
    background:#f4f1ed;
    border:0;
    border-radius:50%;
}

#cart .source-mini-cart-remove:hover,
#cart .source-mini-cart-remove:focus{
    color:#fff;
    background:#171717;
}

#cart .source-mini-cart-footer{
    display:block;
    width:100%;
    max-width:100%;
    padding:18px 22px 22px;
    overflow:hidden;
    background:#f6f3ef;
}

#cart .source-mini-cart-totals{
    width:100%;
    min-width:0;
    margin-bottom:16px;
}

#cart .source-mini-cart-totals > div{
    display:flex;
    width:100%;
    min-width:0;
    justify-content:space-between;
    gap:20px;
    padding:7px 0;
    color:#555;
}

#cart .source-mini-cart-totals > div:last-child{
    margin-top:4px;
    padding-top:12px;
    color:#171717;
    font-size:16px;
    border-top:1px solid #dcd5ce;
}

#cart .source-mini-cart-totals strong{
    flex:0 0 auto;
    white-space:nowrap;
}

#cart .source-mini-cart-actions{
    display:flex;
    width:100%;
    min-width:0;
    gap:10px;
}

#cart .source-mini-cart-actions .btn{
    display:flex;
    flex:1 1 0;
    width:0;
    min-width:0;
    min-height:44px;
    margin:0;
    padding:11px 10px;
    align-items:center;
    justify-content:center;
    gap:7px;
    color:#fff;
    font-weight:700;
    white-space:nowrap;
}

#cart .source-mini-cart-actions .btn-default{
    color:#444;
}

#cart .source-mini-cart-actions .btn-primary{
    color:#fff;
}

#cart .source-mini-cart-empty{
    display:block;
    padding:34px 24px;
    color:#6c6762;
    text-align:center;
}

#cart .source-mini-cart-empty > i{
    display:block;
    margin-bottom:12px;
    color:var(--source-orange);
    font-size:34px;
}

#cart .source-mini-cart-empty strong{
    display:block;
    color:#171717;
    font-family:"Exo 2",Arial,sans-serif;
    font-size:18px;
}

@media(max-width:480px){
    #cart .source-mini-cart-menu{
        width:calc(100vw - 30px);
    }

    #cart .source-mini-cart-actions{
        display:block;
    }

    #cart .source-mini-cart-actions .btn{
        width:100%;
    }

    #cart .source-mini-cart-actions .btn + .btn{
        margin-top:8px;
    }
}

/*  SOURCE SIGNS 2027 - PHASE 10B CART FIX
/*  Robust styling for stock checkout/cart.twig
/*----------------------------------------*/
#checkout-cart.source-cart-page #content{
    padding-bottom: 55px;
}

#checkout-cart.source-cart-page .source-cart-heading{
    position: relative;
    margin: 0 0 32px;
    padding: 38px 130px 36px 38px;
    overflow: hidden;
    color: #fff;
    background: #1d2327;
    border-radius: 8px;
}

#checkout-cart.source-cart-page .source-cart-heading .source-eyebrow{
    color: #f3a367;
}

#checkout-cart.source-cart-page .source-cart-heading h1{
    margin: 6px 0 10px;
    color: #fff;
    font-size: 38px;
    line-height: 1.1;
}

#checkout-cart.source-cart-page .source-cart-heading h1 small{
    color: rgba(255,255,255,.7);
}

#checkout-cart.source-cart-page .source-cart-heading p{
    max-width: 700px;
    margin: 0;
    color: rgba(255,255,255,.78);
    font-size: 16px;
    line-height: 1.6;
}

#checkout-cart.source-cart-page .source-cart-heading-icon{
    position: absolute;
    top: 50%;
    right: 38px;
    width: 72px;
    height: 72px;
    margin-top: -36px;
    color: #fff;
    text-align: center;
    line-height: 72px;
    background: #c65300;
    border-radius: 50%;
}

#checkout-cart.source-cart-page .source-cart-heading-icon .fa{
    font-size: 28px;
}

#checkout-cart.source-cart-page .source-cart-items-panel{
    margin-bottom: 32px;
    background: #fff;
    border: 1px solid #e3e5e7;
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(0,0,0,.07);
}

#checkout-cart.source-cart-page .source-cart-items-panel .table{
    margin-bottom: 0;
    border: 0;
}

#checkout-cart.source-cart-page .source-cart-items-panel .table > thead > tr > td{
    padding: 15px 14px;
    color: #fff;
    font-family: 'Exo 2', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    background: #2b3034;
    border-color: #2b3034;
}

#checkout-cart.source-cart-page .source-cart-items-panel .table > thead > tr > td:first-child{
    border-radius: 7px 0 0 0;
}

#checkout-cart.source-cart-page .source-cart-items-panel .table > thead > tr > td:last-child{
    border-radius: 0 7px 0 0;
}

#checkout-cart.source-cart-page .source-cart-items-panel .table > tbody > tr > td{
    padding: 22px 14px;
    vertical-align: middle;
    border-color: #eceeef;
}

#checkout-cart.source-cart-page .source-cart-product-image{
    width: 130px;
}

#checkout-cart.source-cart-page .source-cart-product-image img{
    max-width: 105px;
    padding: 0;
    background: #f7f7f7;
    border: 0;
    border-radius: 5px;
}

#checkout-cart.source-cart-page .source-cart-product-name > a{
    display: inline-block;
    margin-bottom: 9px;
    color: #1d2327;
    font-family: 'Exo 2', sans-serif;
    font-size: 17px;
    font-weight: 700;
}

#checkout-cart.source-cart-page .source-cart-product-name small{
    display: block;
    margin: 5px 0 0;
    color: #666d72;
    line-height: 1.45;
}

#checkout-cart.source-cart-page .source-cart-model{
    color: #6a7075;
}

#checkout-cart.source-cart-page .source-cart-quantity .input-group{
    width: 145px;
}

#checkout-cart.source-cart-page .source-cart-quantity .form-control{
    height: 42px;
    text-align: center;
}

#checkout-cart.source-cart-page .source-cart-quantity .btn{
    height: 42px;
    min-width: 40px;
}

#checkout-cart.source-cart-page .source-cart-unit-price{
    color: #555c61;
    font-size: 15px;
}

#checkout-cart.source-cart-page .source-cart-line-total{
    color: #1d2327;
    font-family: 'Exo 2', sans-serif;
    font-size: 18px;
    font-weight: 800;
}

#checkout-cart.source-cart-page .source-cart-next-heading{
    margin-top: 34px;
}

#checkout-cart.source-cart-page .source-cart-next-heading h2{
    margin: 4px 0 8px;
    font-size: 25px;
}

#checkout-cart.source-cart-page #accordion{
    margin-top: 18px;
}

#checkout-cart.source-cart-page #accordion .panel{
    overflow: hidden;
    border: 1px solid #e3e5e7;
    border-radius: 6px;
    box-shadow: none;
}

#checkout-cart.source-cart-page #accordion .panel-heading{
    padding: 0;
    background: #f5f6f7;
}

#checkout-cart.source-cart-page #accordion .panel-title > a{
    display: block;
    padding: 16px 18px;
    color: #1d2327;
    font-weight: 700;
}

#checkout-cart.source-cart-page .source-cart-totals{
    margin-top: 24px;
    padding: 0 15px;
}

#checkout-cart.source-cart-page .source-cart-totals .table{
    margin: 0;
    overflow: hidden;
    color: #fff;
    background: #1d2327;
    border: 0;
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(0,0,0,.12);
}

#checkout-cart.source-cart-page .source-cart-totals .table > tbody > tr > td{
    padding: 15px 20px;
    color: rgba(255,255,255,.8);
    border-color: rgba(255,255,255,.12);
}

#checkout-cart.source-cart-page .source-cart-totals .table > tbody > tr > td:last-child{
    color: #fff;
    font-family: 'Exo 2', sans-serif;
    font-weight: 700;
}

#checkout-cart.source-cart-page .source-cart-totals .table > tbody > tr:last-child > td{
    padding-top: 18px;
    padding-bottom: 18px;
    color: #fff;
    font-size: 20px;
    border-bottom: 0;
}

#checkout-cart.source-cart-page .source-cart-actions{
    margin-top: 22px;
}

#checkout-cart.source-cart-page .source-cart-actions .btn{
    min-width: 180px;
    padding: 13px 20px;
    font-weight: 700;
}

#checkout-cart.source-cart-page .source-cart-actions .pull-right .btn{
    min-width: 220px;
}

@media (max-width: 767px){
    #checkout-cart.source-cart-page .source-cart-heading{
        padding: 30px 24px;
    }

    #checkout-cart.source-cart-page .source-cart-heading h1{
        font-size: 31px;
    }

    #checkout-cart.source-cart-page .source-cart-heading-icon{
        display: none;
    }

    #checkout-cart.source-cart-page .source-cart-items-panel{
        border-radius: 6px;
    }

    #checkout-cart.source-cart-page .source-cart-items-panel .table{
        min-width: 760px;
    }

    #checkout-cart.source-cart-page .source-cart-actions .pull-left,
    #checkout-cart.source-cart-page .source-cart-actions .pull-right{
        float: none !important;
    }

    #checkout-cart.source-cart-page .source-cart-actions .btn{
        display: block;
        width: 100%;
        margin-bottom: 10px;
    }
}

.source-checkout-page{
    padding-top: 24px;
    padding-bottom: 55px;
}

.source-checkout-intro{
    position: relative;
    margin: 0 0 22px;
    padding: 30px 34px;
    overflow: hidden;
    color: #fff;
    background: #171717;
    border-bottom: 4px solid #f36f21;
    border-radius: 3px;
}

.source-checkout-intro:after{
    content: '';
    position: absolute;
    top: -70px;
    right: -45px;
    width: 220px;
    height: 220px;
    border: 38px solid rgba(243,111,33,.12);
    border-radius: 50%;
}

.source-checkout-intro .source-eyebrow{
    display: block;
    margin-bottom: 6px;
    color: #f36f21;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.source-checkout-intro h1{
    position: relative;
    z-index: 1;
    margin: 0 0 7px;
    color: #fff;
    font-size: 32px;
    font-weight: 800;
    line-height: 1.1;
}

.source-checkout-intro p{
    position: relative;
    z-index: 1;
    max-width: 720px;
    margin: 0;
    color: #d7d7d7;
    font-size: 14px;
    line-height: 1.65;
}

.source-checkout-assurance{
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    margin-top: 17px;
    color: #f4f4f4;
    font-size: 12px;
    font-weight: 700;
}

.source-checkout-assurance span i{
    margin-right: 6px;
    color: #f36f21;
}

/* Give the Dreamvention checkout enough room to breathe */
@media (min-width: 1200px){
    .source-checkout-page.container{
        width: 1280px;
        max-width: calc(100% - 30px);
    }
}

.source-quick-checkout,
.source-quick-checkout *{
    box-sizing: border-box;
}

.source-quick-checkout{
    color: #303030;
    font-size: 14px;
}

.source-quick-checkout .qc-row{
    margin-left: -10px;
    margin-right: -10px;
}

.source-quick-checkout [class*='qc-col-sm-']{
    padding-left: 10px;
    padding-right: 10px;
}

/* Dreamvention cards - these are the actual components used on this checkout */
.source-quick-checkout .ve-card{
    margin-bottom: 20px !important;
    overflow: hidden;
    background: #fff !important;
    border: 1px solid #ddd8d2 !important;
    border-radius: 4px !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.06) !important;
}

.source-quick-checkout .ve-card__header{
    padding: 16px 18px !important;
    color: #fff !important;
    background: #171717 !important;
    border: 0 !important;
    border-top: 3px solid #f17e28 !important;
}

.source-quick-checkout .ve-card__header .ve-h4,
.source-quick-checkout .ve-card__header h4,
.source-quick-checkout .ve-card__header .text{
    margin: 0 !important;
    color: #fff !important;
    font-family: "Exo 2", Arial, sans-serif !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

.source-quick-checkout .ve-card__header .icon{
    margin-right: 7px;
    color: #f17e28 !important;
}

.source-quick-checkout .ve-card__header .ve-p{
    margin: 6px 0 0 !important;
    color: #c7c7c7 !important;
    font-size: 12px !important;
    line-height: 1.5 !important;
}

.source-quick-checkout .ve-card__section{
    padding: 20px !important;
    background: #fff !important;
}

.source-quick-checkout .ve-hr{
    margin: 0 !important;
    border-color: #ece7e1 !important;
}

/* Guest / Register / Login */
.source-quick-checkout .ve-btn-group{
    display: flex !important;
    width: 100% !important;
    margin-bottom: 18px !important;
    overflow: hidden;
    background: #ece9e5;
    border: 1px solid #ddd8d2;
    border-radius: 4px;
}

.source-quick-checkout .ve-btn-group .ve-btn{
    flex: 1 1 0;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 12px 14px !important;
    color: #343434 !important;
    background: #f4f2ef !important;
    border: 0 !important;
    border-right: 1px solid #ddd8d2 !important;
    border-radius: 0 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-align: center !important;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.source-quick-checkout .ve-btn-group .ve-btn:last-child{
    border-right: 0 !important;
}

.source-quick-checkout .ve-btn-group .ve-btn.active,
.source-quick-checkout .ve-btn-group .ve-btn:hover,
.source-quick-checkout .ve-btn-group .ve-btn:focus{
    color: #fff !important;
    background: #c65300 !important;
}

/* Actual Dreamvention fields */
.source-quick-checkout .ve-field{
    margin-bottom: 15px !important;
}

.source-quick-checkout .ve-label,
.source-quick-checkout .ve-field > label,
.source-quick-checkout .ve-row > label{
    margin-bottom: 6px !important;
    color: #303030 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

.source-quick-checkout .ve-input,
.source-quick-checkout input.ve-input,
.source-quick-checkout select.ve-input,
.source-quick-checkout textarea.ve-input{
    width: 100%;
    min-height: 44px !important;
    padding: 10px 12px !important;
    color: #222 !important;
    background: #fff !important;
    border: 1px solid #cfc9c2 !important;
    border-radius: 3px !important;
    box-shadow: none !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
}

.source-quick-checkout textarea.ve-input{
    min-height: 95px !important;
    resize: vertical;
}

.source-quick-checkout .ve-input:focus,
.source-quick-checkout input.ve-input:focus,
.source-quick-checkout select.ve-input:focus,
.source-quick-checkout textarea.ve-input:focus{
    border-color: #c65300 !important;
    box-shadow: 0 0 0 3px rgba(198,83,0,.12) !important;
    outline: 0 !important;
}

.source-quick-checkout .ve-field--block{
    display: flex !important;
    gap: 8px;
    align-items: stretch;
}

.source-quick-checkout .ve-field--block .ve-input{
    flex: 1 1 auto;
    min-width: 0;
}

.source-quick-checkout .ve-field--block .ve-btn{
    flex: 0 0 auto;
}

/* Radio choices for shipping/payment */
.source-quick-checkout .ve-radio{
    position: relative;
    display: flex !important;
    align-items: center;
    width: 100%;
    min-height: 48px;
    margin: 0 0 8px !important;
    padding: 11px 13px !important;
    color: #353535 !important;
    background: #f8f6f3 !important;
    border: 1px solid #dfdad4 !important;
    border-radius: 3px !important;
    cursor: pointer;
}

.source-quick-checkout .ve-radio:hover,
.source-quick-checkout .ve-radio--selected{
    background: #fff8f3 !important;
    border-color: #c65300 !important;
}

.source-quick-checkout .ve-radio .text{
    flex: 1 1 auto;
    min-width: 0;
    font-weight: 700;
}

.source-quick-checkout .ve-radio .price{
    flex: 0 0 auto;
    margin-left: 12px;
    color: #c65300;
    font-weight: 800;
}

/* Shipping/payment sit as a matched pair on desktop */
.source-quick-checkout .qc-shipping-method .ve-card,
.source-quick-checkout .qc-payment-method .ve-card{
    height: calc(100% - 20px);
}

.source-quick-checkout .qc-shipping-method .ve-card__section,
.source-quick-checkout .qc-payment-method .ve-card__section{
    min-height: 105px;
}

/* Cart review */
.source-quick-checkout .qc-cart .ve-card__section{
    padding: 18px 20px !important;
}

.source-quick-checkout .qc-cart .ve-table{
    width: 100%;
    margin: 0;
    table-layout: auto;
}

.source-quick-checkout .qc-cart .ve-table td{
    padding: 10px 9px !important;
    vertical-align: middle !important;
    border-bottom: 1px solid #eee9e3 !important;
}

.source-quick-checkout .qc-cart .qc-image{
    width: 78px;
}

.source-quick-checkout .qc-cart .ve-thumbnail{
    display: block;
    width: 62px;
    height: 62px;
    padding: 5px;
    background: #faf8f5;
    border: 1px solid #ddd8d2;
    border-radius: 3px;
}

.source-quick-checkout .qc-cart .ve-thumbnail img{
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.source-quick-checkout .qc-cart .qc-name a{
    color: #171717 !important;
    font-family: "Exo 2", Arial, sans-serif;
    font-weight: 700;
}

.source-quick-checkout .qc-cart .qc-name p{
    margin: 4px 0 0;
    color: #6e6963;
}

.source-quick-checkout .qc-cart .qc-price,
.source-quick-checkout .qc-cart .qc-total{
    white-space: nowrap;
    font-weight: 800;
}

.source-quick-checkout .qc-cart .qc-total{
    color: #c65300;
}

.source-quick-checkout .qc-cart .ve-input-group{
    display: flex;
    align-items: stretch;
    width: 150px;
}

.source-quick-checkout .qc-cart .ve-input-group .ve-btn{
    min-width: 34px;
    min-height: 38px !important;
    padding: 8px !important;
    border-radius: 0 !important;
}

.source-quick-checkout .qc-cart .ve-input-group .ve-input{
    width: 48px !important;
    min-height: 38px !important;
    padding: 7px 5px !important;
    text-align: center;
    border-radius: 0 !important;
}

.source-quick-checkout .qc-cart .ve-input-group .delete{
    color: #fff !important;
    background: #b53b32 !important;
    border-color: #b53b32 !important;
}

/* Alerts */
.source-quick-checkout .ve-alert,
.source-quick-checkout .alert{
    margin-bottom: 14px !important;
    padding: 13px 15px !important;
    border-radius: 3px !important;
    font-size: 12px !important;
    line-height: 1.5 !important;
}

.source-quick-checkout .ve-alert--danger,
.source-quick-checkout .alert-danger{
    color: #8a2724 !important;
    background: #fff0ef !important;
    border: 1px solid #edb4b0 !important;
}

/* Custom/comments/terms block */
.source-quick-checkout .qc-custom .ve-card__section{
    padding-bottom: 16px !important;
}

/* Final confirmation - make it feel like the end of checkout, not a loose button */
.source-quick-checkout .qc-confirm{
    margin-top: 0 !important;
}

.source-quick-checkout .qc-confirm > .ve-mb-3,
.source-quick-checkout .qc-confirm > .ve-clearfix{
    min-height: 76px;
    margin: 0 0 20px !important;
    padding: 16px 18px !important;
    background: #171717 !important;
    border-top: 3px solid #f17e28;
    border-radius: 4px;
    box-shadow: 0 8px 24px rgba(0,0,0,.08);
}

.source-quick-checkout .qc-confirm .ve-card__section{
    min-height: 78px;
    padding: 16px 18px !important;
    background: #171717 !important;
}

.source-quick-checkout .qc-confirm .ve-btn--primary,
.source-quick-checkout .qc-confirm .ve-btn--hg,
.source-quick-checkout .qc-confirm button{
    min-width: 210px;
    min-height: 48px !important;
    padding: 13px 22px !important;
    color: #fff !important;
    background: #c65300 !important;
    border: 2px solid #c65300 !important;
    border-radius: 3px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.source-quick-checkout .qc-confirm .ve-btn--primary:hover,
.source-quick-checkout .qc-confirm .ve-btn--primary:focus,
.source-quick-checkout .qc-confirm button:hover,
.source-quick-checkout .qc-confirm button:focus{
    background: #f17e28 !important;
    border-color: #f17e28 !important;
}

/* Captcha should not look like an orphaned legacy field */
.source-quick-checkout img[src*='captcha']{
    display: block;
    margin-top: 8px;
    padding: 4px;
    background: #fff;
    border: 1px solid #d7d1cb;
    border-radius: 3px;
}

@media (max-width: 767px){
    #cart .source-mini-cart-menu{
        right: 0;
        left: auto;
        width: calc(100vw - 30px);
        min-width: 0;
    }

    #cart .source-mini-cart-actions{
        display: block;
    }

    #cart .source-mini-cart-actions .btn{
        width: 100%;
    }

    #cart .source-mini-cart-actions .btn + .btn{
        margin-top: 8px;
    }

    .source-quick-checkout .qc-row{
        margin-left: 0;
        margin-right: 0;
    }

    .source-quick-checkout [class*='qc-col-sm-']{
        padding-left: 0;
        padding-right: 0;
    }

    .source-quick-checkout .ve-card__header,
    .source-quick-checkout .ve-card__section{
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .source-quick-checkout .ve-btn-group{
        display: block !important;
    }

    .source-quick-checkout .ve-btn-group .ve-btn{
        display: block;
        width: 100%;
        border-right: 0 !important;
        border-bottom: 1px solid #ddd8d2 !important;
    }

    .source-quick-checkout .ve-btn-group .ve-btn:last-child{
        border-bottom: 0 !important;
    }

    .source-quick-checkout .ve-field--block{
        display: block !important;
    }

    .source-quick-checkout .ve-field--block .ve-btn{
        width: 100%;
        margin-top: 7px !important;
    }

    .source-quick-checkout .qc-cart .ve-table,
    .source-quick-checkout .qc-cart .ve-table tbody,
    .source-quick-checkout .qc-cart .ve-table tr,
    .source-quick-checkout .qc-cart .ve-table td{
        display: block;
        width: 100%;
    }

    .source-quick-checkout .qc-cart .ve-table tr{
        position: relative;
        padding: 12px 0;
        border-bottom: 1px solid #eee9e3;
    }

    .source-quick-checkout .qc-cart .ve-table td{
        padding: 5px 0 !important;
        border: 0 !important;
        text-align: left !important;
    }

    .source-quick-checkout .qc-cart .qc-image{
        width: 70px;
    }

    .source-quick-checkout .qc-cart .ve-input-group{
        width: 150px;
    }

    .source-quick-checkout .qc-confirm > .ve-mb-3,
    .source-quick-checkout .qc-confirm > .ve-clearfix,
    .source-quick-checkout .qc-confirm .ve-card__section{
        min-height: 0;
    }

    .source-quick-checkout .qc-confirm .ve-btn--primary,
    .source-quick-checkout .qc-confirm .ve-btn--hg,
    .source-quick-checkout .qc-confirm button{
        display: block;
        width: 100%;
        min-width: 0;
        float: none !important;
    }
}

/* Quick Checkout button states */
.source-quick-checkout .ve-btn{
    color:#222 !important;
    font-weight:700 !important;
}

.source-quick-checkout .ve-btn--primary,
.source-quick-checkout .ve-btn--success,
.source-quick-checkout button[type="submit"]{
    color:#fff !important;
    background:#c65300 !important;
    border-color:#c65300 !important;
}

.source-quick-checkout .ve-btn--primary:hover,
.source-quick-checkout .ve-btn--primary:focus,
.source-quick-checkout .ve-btn--success:hover,
.source-quick-checkout .ve-btn--success:focus,
.source-quick-checkout button[type="submit"]:hover,
.source-quick-checkout button[type="submit"]:focus{
    color:#fff !important;
    background:#9f4200 !important;
    border-color:#9f4200 !important;
}

.source-quick-checkout .ve-btn--danger,
.source-quick-checkout .qc-cart .delete{
    color:#fff !important;
}

.source-quick-checkout .qc-cart .ve-field--block .ve-btn,
.source-quick-checkout .qc-cart .ve-input-group .ve-btn{
    min-width:42px;
}

/* Checkout spacing refinements */
.source-quick-checkout .qc-cart .ve-card__section{
    padding:22px 24px !important;
}

.source-quick-checkout .qc-cart .ve-table td{
    padding-top:13px !important;
    padding-bottom:13px !important;
}

.source-quick-checkout .qc-cart .ve-field--block{
    margin-top:10px;
}

.source-quick-checkout .qc-cart .ve-field--block + .ve-field--block{
    margin-top:12px;
}

.source-quick-checkout .qc-confirm > .ve-mb-3,
.source-quick-checkout .qc-confirm > .ve-clearfix{
    padding-right:24px !important;
    padding-left:24px !important;
}

/*----------------------------------------*/
/*  SOURCE SIGNS - CONTACT PAGE
/*----------------------------------------*/
#information-contact{
    padding-top:30px;
    padding-bottom:70px;
}

#information-contact #content > h1{
    position:relative;
    margin:0 0 38px;
    padding-bottom:18px;
    color:var(--source-dark);
    font-size:44px;
    line-height:1.1;
}

#information-contact #content > h1:after{
    position:absolute;
    bottom:0;
    left:0;
    width:70px;
    height:4px;
    content:"";
    background:var(--source-orange);
}

#information-contact #content > h3{
    margin:0 0 18px;
    color:var(--source-dark);
    font-size:24px;
}

#information-contact .panel{
    margin-bottom:42px;
    overflow:hidden;
    border:1px solid #e2ded7;
    border-radius:0;
    box-shadow:0 14px 36px rgba(0,0,0,.07);
}

#information-contact .panel > .panel-body{
    padding:0;
}

#information-contact .panel > .panel-body > .row{
    display:flex;
    align-items:stretch;
    margin:0;
}

#information-contact .panel > .panel-body > .row > [class*="col-"]{
    padding:30px;
    border-right:1px solid #ece7e0;
}

#information-contact .panel > .panel-body > .row > [class*="col-"]:last-child{
    border-right:0;
}

#information-contact .panel .img-thumbnail{
    width:100%;
    max-height:220px;
    padding:0;
    object-fit:contain;
    border:0;
    border-radius:0;
    background:#f5f3ef;
}

#information-contact address{
    margin:10px 0 18px;
    color:#5d5a56;
    font-size:15px;
    line-height:1.7;
}

#information-contact .panel strong{
    color:var(--source-dark);
    font-family:"Exo 2",Arial,sans-serif;
    font-size:16px;
}

#information-contact .panel .btn-info{
    min-height:42px;
    color:#fff;
    background:var(--source-dark);
    border:0;
}

#information-contact .panel .btn-info:hover,
#information-contact .panel .btn-info:focus{
    color:#fff;
    background:var(--source-orange-accessible);
}

#information-contact .panel-group .panel{
    margin-bottom:10px;
    box-shadow:none;
}

#information-contact .panel-group .panel-heading{
    padding:0;
    background:var(--source-dark);
    border:0;
}

#information-contact .panel-group .panel-title a{
    display:block;
    padding:15px 18px;
    color:#fff;
    font-weight:700;
}

#information-contact .panel-group .panel-title a:hover,
#information-contact .panel-group .panel-title a:focus{
    color:#fff;
    text-decoration:none;
    background:#2a2a2a;
}

#information-contact form.form-horizontal{
    margin-top:50px;
    padding:36px 38px 32px;
    background:#f5f4f1;
    border-top:4px solid var(--source-orange);
    box-shadow:0 16px 40px rgba(0,0,0,.07);
}

#information-contact form fieldset{
    min-width:0;
}

#information-contact form legend{
    margin-bottom:28px;
    padding:0 0 16px;
    color:var(--source-dark);
    font-family:"Exo 2",Arial,sans-serif;
    font-size:28px;
    font-weight:700;
    border:0;
    border-bottom:1px solid #ddd7cf;
}

#information-contact form .form-group{
    margin-bottom:20px;
}

#information-contact form .control-label{
    padding-top:12px;
    color:#34312e;
    font-size:14px;
    font-weight:700;
    text-align:left;
}

#information-contact form .form-control{
    min-height:48px;
    padding:11px 13px;
    border:1px solid #ccc6be;
    border-radius:0;
    background:#fff;
}

#information-contact form textarea.form-control{
    min-height:190px;
    resize:vertical;
}

#information-contact form .form-control:focus{
    border-color:var(--source-orange-accessible);
    box-shadow:0 0 0 2px rgba(198,83,0,.12);
}

#information-contact form .text-danger{
    margin-top:6px;
    color:#b52f24;
    font-size:13px;
    font-weight:700;
}

#information-contact form .buttons{
    margin:24px 0 0;
}

#information-contact form .btn-primary{
    min-width:180px;
    padding:13px 24px;
    color:#fff;
    background:var(--source-orange-accessible);
    border-color:var(--source-orange-accessible);
}

#information-contact form .btn-primary:hover,
#information-contact form .btn-primary:focus{
    color:#fff;
    background:var(--source-dark);
    border-color:var(--source-dark);
}

#information-contact form iframe,
#information-contact form .g-recaptcha,
#information-contact form [class*="captcha"]{
    max-width:100%;
}

@media(max-width:991px){
    #information-contact .panel > .panel-body > .row{
        display:block;
    }

    #information-contact .panel > .panel-body > .row > [class*="col-"]{
        width:50%;
        min-height:180px;
        float:left;
        border-right:1px solid #ece7e0;
        border-bottom:1px solid #ece7e0;
    }

    #information-contact .panel > .panel-body > .row > [class*="col-"]:nth-child(2n){
        border-right:0;
    }
}

@media(max-width:767px){
    #information-contact{
        padding-top:22px;
        padding-bottom:50px;
    }

    #information-contact #content > h1{
        margin-bottom:30px;
        font-size:34px;
    }

    #information-contact .panel > .panel-body > .row > [class*="col-"]{
        width:100%;
        min-height:0;
        float:none;
        padding:24px;
        border-right:0;
    }

    #information-contact form.form-horizontal{
        margin-top:36px;
        padding:28px 20px 24px;
    }

    #information-contact form legend{
        font-size:24px;
    }

    #information-contact form .control-label{
        padding-top:0;
        margin-bottom:7px;
    }

    #information-contact form .btn-primary{
        width:100%;
    }
}

/*----------------------------------------*/
/*  SOURCE SIGNS - PHASE 13 ACCOUNT + STATUS PAGES
/*----------------------------------------*/
#account-login,
#account-register,
#account-forgotten,
#account-password,
#account-edit,
#account-address,
#account-newsletter,
#account-order,
#account-return,
#account-account,
#common-success,
#error-not-found{
    padding-top:30px;
    padding-bottom:70px;
}

#account-login #content > h1,
#account-register #content > h1,
#account-forgotten #content > h1,
#account-password #content > h1,
#account-edit #content > h1,
#account-address #content > h1,
#account-order #content > h1,
#account-return #content > h1,
#common-success #content > h1,
#error-not-found #content > h1{
    margin:0 0 28px;
    color:var(--source-dark);
    font-size:40px;
    line-height:1.1;
}

/* Login */
#account-login #content > .row{
    display:flex;
    flex-wrap:wrap;
    margin-right:-12px;
    margin-left:-12px;
}

#account-login #content > .row > [class*="col-"]{
    display:flex;
    padding-right:12px;
    padding-left:12px;
}

#account-login .well{
    width:100%;
    margin:0;
    padding:32px;
    background:#fff;
    border:1px solid #e3dfd8;
    border-top:4px solid var(--source-orange);
    border-radius:4px;
    box-shadow:0 14px 34px rgba(0,0,0,.07);
}

#account-login .well h2{
    margin:0 0 18px;
    font-size:27px;
}

#account-login .well p{
    color:#62605d;
}

#account-login .well form .form-group{
    margin-bottom:18px;
}

#account-login .well form a{
    display:inline-block;
    margin-top:8px;
    font-size:14px;
}

/* Account dashboard */
#account-account #content{
    max-width:980px;
}

#account-account #content > h2{
    margin:32px 0 0;
    padding:18px 22px;
    color:#fff;
    font-size:21px;
    background:var(--source-dark);
    border-left:4px solid var(--source-orange);
}

#account-account #content > h2:first-of-type{
    margin-top:0;
}

#account-account #content > ul.list-unstyled{
    margin:0;
    padding:10px 22px 14px;
    border:1px solid #e5e1da;
    border-top:0;
    background:#fff;
}

#account-account #content > ul.list-unstyled > li{
    margin:0;
    border-bottom:1px solid #eeeae4;
}

#account-account #content > ul.list-unstyled > li:last-child{
    border-bottom:0;
}

#account-account #content > ul.list-unstyled > li > a{
    position:relative;
    display:block;
    padding:12px 28px 12px 0;
    color:#343230;
    font-weight:600;
}

#account-account #content > ul.list-unstyled > li > a:after{
    position:absolute;
    top:50%;
    right:2px;
    color:var(--source-orange-accessible);
    font-family:FontAwesome;
    content:"\f105";
    transform:translateY(-50%);
}

#account-account #content > ul.list-unstyled > li > a:hover,
#account-account #content > ul.list-unstyled > li > a:focus{
    color:var(--source-orange-accessible);
    text-decoration:none;
}

/* Account forms */
#account-register form.form-horizontal,
#account-forgotten form.form-horizontal,
#account-password form.form-horizontal,
#account-edit form.form-horizontal,
#account-newsletter form.form-horizontal,
#account-return form.form-horizontal{
    padding:30px 32px;
    background:#fff;
    border:1px solid #e3dfd8;
    border-top:4px solid var(--source-orange);
    box-shadow:0 14px 34px rgba(0,0,0,.06);
}

#account-register fieldset + fieldset,
#account-return fieldset + fieldset{
    margin-top:32px;
}

#account-register legend,
#account-forgotten legend,
#account-password legend,
#account-edit legend,
#account-newsletter legend,
#account-return legend{
    margin-bottom:24px;
    padding-bottom:12px;
    color:var(--source-dark);
    font-family:"Exo 2",Arial,sans-serif;
    font-size:23px;
    font-weight:800;
    border-bottom:2px solid var(--source-orange);
}

#account-register .form-group,
#account-forgotten .form-group,
#account-password .form-group,
#account-edit .form-group,
#account-newsletter .form-group,
#account-return .form-group{
    margin-bottom:18px;
}

#account-register .control-label,
#account-forgotten .control-label,
#account-password .control-label,
#account-edit .control-label,
#account-newsletter .control-label,
#account-return .control-label{
    padding-top:10px;
    color:#3f3b38;
    font-size:14px;
    font-weight:700;
}

#account-register .radio label,
#account-register .checkbox label,
#account-newsletter .radio label,
#account-return .radio label,
#account-return .checkbox label{
    font-size:15px;
}

/* Tables: orders, addresses, returns and history */
#account-order .table-responsive,
#account-address .table-responsive,
#account-return .table-responsive{
    margin-bottom:24px;
    border:0;
}

#account-order .table,
#account-address .table,
#account-return .table{
    margin-bottom:24px;
    background:#fff;
    border-color:#ded9d2;
    box-shadow:0 10px 28px rgba(0,0,0,.05);
}

#account-order .table > thead > tr > td,
#account-order .table > thead > tr > th,
#account-address .table > thead > tr > td,
#account-address .table > thead > tr > th,
#account-return .table > thead > tr > td,
#account-return .table > thead > tr > th{
    padding:13px 14px;
    color:#fff;
    font-weight:700;
    background:var(--source-dark);
    border-color:#333;
}

#account-order .table > tbody > tr > td,
#account-address .table > tbody > tr > td,
#account-return .table > tbody > tr > td{
    padding:13px 14px;
    vertical-align:middle;
    border-color:#ebe6df;
}

#account-order .table .btn-info,
#account-address .table .btn-info,
#account-return .table .btn-info{
    color:#fff;
    background:var(--source-orange-accessible);
}

#account-order .table .btn-info:hover,
#account-order .table .btn-info:focus,
#account-address .table .btn-info:hover,
#account-address .table .btn-info:focus,
#account-return .table .btn-info:hover,
#account-return .table .btn-info:focus{
    background:var(--source-dark);
}

/* Order detail hierarchy */
#account-order #content > h2{
    margin:30px 0 18px;
    padding-bottom:10px;
    font-size:26px;
    border-bottom:2px solid var(--source-orange);
}

#account-order #content > h2:first-of-type{
    margin-top:0;
}

/* Generic success and error states */
#common-success #content,
#error-not-found #content{
    max-width:940px;
    margin:0 auto;
}

#common-success .source-status-panel,
#error-not-found #content{
    padding:46px;
    background:#fff;
    border:1px solid #e3dfd8;
    border-top:5px solid var(--source-orange);
    box-shadow:0 16px 38px rgba(0,0,0,.07);
}

#common-success .source-status-icon,
#error-not-found #content:before{
    display:flex;
    width:64px;
    height:64px;
    margin-bottom:22px;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-family:FontAwesome;
    font-size:26px;
    border-radius:50%;
    background:var(--source-orange-accessible);
}

#error-not-found #content:before{
    content:"\f071";
}

#common-success .source-status-icon:before{
    content:"\f00c";
}

#common-success .source-status-panel h1{
    margin:0 0 18px;
    font-size:38px;
}

#common-success .source-status-message{
    color:#57534f;
    font-size:16px;
    line-height:1.75;
}

#common-success .source-status-message p:last-child{
    margin-bottom:0;
}

#common-success .source-status-panel .buttons{
    margin-top:28px;
    margin-bottom:0;
}

/* Order-success journey */
#common-success .source-order-success-process{
    margin:32px 0 8px;
    padding:24px;
    background:#f5f3ef;
}

#common-success .source-order-success-process h2{
    margin:0 0 20px;
    font-size:23px;
}

#common-success .source-order-success-steps{
    display:flex;
    margin:0 -6px;
    padding:0;
    list-style:none;
}

#common-success .source-order-success-steps li{
    position:relative;
    flex:1 1 20%;
    margin:0 6px;
    padding:48px 12px 14px;
    color:#45413e;
    text-align:center;
    font-size:13px;
    font-weight:700;
    background:#fff;
    border:1px solid #e2ddd6;
}

#common-success .source-order-success-steps li span{
    position:absolute;
    top:10px;
    left:50%;
    display:flex;
    width:30px;
    height:30px;
    align-items:center;
    justify-content:center;
    color:#fff;
    border-radius:50%;
    background:var(--source-dark);
    transform:translateX(-50%);
}

#common-success .source-order-success-steps li:first-child{
    border-color:var(--source-orange);
}

#common-success .source-order-success-steps li:first-child span{
    background:var(--source-orange-accessible);
}

/* Shared account/status button rows */
#account-login .buttons,
#account-register .buttons,
#account-forgotten .buttons,
#account-password .buttons,
#account-edit .buttons,
#account-address .buttons,
#account-newsletter .buttons,
#account-order .buttons,
#account-return .buttons,
#common-success .buttons,
#error-not-found .buttons{
    margin-top:24px;
}

@media(max-width:767px){
    #account-login,
    #account-register,
    #account-forgotten,
    #account-password,
    #account-edit,
    #account-address,
    #account-newsletter,
    #account-order,
    #account-return,
    #account-account,
    #common-success,
    #error-not-found{
        padding-top:20px;
        padding-bottom:50px;
    }

    #account-login #content > h1,
    #account-register #content > h1,
    #account-forgotten #content > h1,
    #account-password #content > h1,
    #account-edit #content > h1,
    #account-address #content > h1,
    #account-order #content > h1,
    #account-return #content > h1,
    #common-success #content > h1,
    #error-not-found #content > h1{
        font-size:32px;
    }

    #account-login #content > .row,
    #account-login #content > .row > [class*="col-"]{
        display:block;
    }

    #account-login #content > .row > [class*="col-"] + [class*="col-"]{
        margin-top:20px;
    }

    #account-login .well,
    #account-register form.form-horizontal,
    #account-forgotten form.form-horizontal,
    #account-password form.form-horizontal,
    #account-edit form.form-horizontal,
    #account-newsletter form.form-horizontal,
    #account-return form.form-horizontal,
    #common-success .source-status-panel,
    #error-not-found #content{
        padding:26px 22px;
    }

    #account-register .control-label,
    #account-forgotten .control-label,
    #account-password .control-label,
    #account-edit .control-label,
    #account-newsletter .control-label,
    #account-return .control-label{
        padding-top:0;
    }

    #common-success .source-order-success-steps{
        display:block;
        margin:0;
    }

    #common-success .source-order-success-steps li{
        margin:0 0 8px;
        padding:13px 14px 13px 52px;
        text-align:left;
    }

    #common-success .source-order-success-steps li span{
        top:50%;
        left:12px;
        transform:translateY(-50%);
    }

    #account-order .table-responsive,
    #account-address .table-responsive,
    #account-return .table-responsive{
        overflow-x:auto;
    }
}
