/**
 * Base.css
 * styles that are applied thoughout site
 *
 */

/**
 * Fonts
 * create and import fonts
 *
 */

@font-face {
    font-family: "Nunito Black";
    src: url("../fonts/Nunito/web/Nunito-Black.woff2") format("woff2"),
        url("../fonts/Nunito/web/Nunito-Black.woff") format("woff"),
        url("../fonts/Nunito/web/Nunito-Black.ttf") format("truetype");
    font-style: normal;
}

@font-face {
    font-family: "Nunito Bold";
    src: url("../fonts/Nunito/web/Nunito-Bold.woff2") format("woff2"),
        url("../fonts/Nunito/web/Nunito-Bold.woff") format("woff"),
        url("../fonts/Nunito/web/Nunito-Bold.ttf") format("truetype");
    font-style: normal;
}

@font-face {
    font-family: "ZillaSlab Bold";
    src: url("../fonts/ZillaSlab/web/ZillaSlab-Bold.woff2") format("woff2"),
        url("../fonts/ZillaSlab/web/ZillaSlab-Bold.woff") format("woff"),
        url("../fonts/ZillaSlab/web/ZillaSlab-Bold.ttf") format("truetype");
    font-style: normal;
}

@font-face {
    font-family: "ZillaSlab SemiBold";
    src: url("../fonts/ZillaSlab/web/ZillaSlab-SemiBold.woff2") format("woff2"),
        url("../fonts/ZillaSlab/web/ZillaSlab-SemiBold.woff") format("woff"),
        url("../fonts/ZillaSlab/web/ZillaSlab-SemiBold.ttf") format("truetype");
    font-style: normal;
}

@font-face {
    font-family: "ZillaSlab Medium";
    src: url("../fonts/ZillaSlab/web/ZillaSlab-Medium.woff2") format("woff2"),
        url("../fonts/ZillaSlab/web/ZillaSlab-Medium.woff") format("woff"),
        url("../fonts/ZillaSlab/web/ZillaSlab-Medium.ttf") format("truetype");
    font-style: normal;
}

@font-face {
    font-family: "KiwiMaru";
    src: url("../fonts/KiwiMaru/KiwiMaru-Medium.woff") format("woff"),
        url("../fonts/KiwiMaru/KiwiMaru-Medium.ttf") format("truetype");
    font-style: normal;
}



/**
 * Global Variables
 * variables below are applied appropriately through this stylesheet
 * change a variable below to change all instances
 *
 */

:root {

    /* Text */
    --font-1: "ZillaSlab SemiBold", Georgia, serif;
    --font-1-medium: "ZillaSlab Medium", Georgia, serif;
    --font-1-semibold: var(--font-1);
    --font-1-bold: "ZillaSlab Bold", Georgia, serif;

    --font-2: "Nunito Bold", sans-serif;
    --font-2-bold: var(--font-2);
    --font-2-black: "Nunito Black", sans-serif;

    --font-3: "KiwiMaru", Georgia, serif;

    --font-size: 1em;
    --font-size-small: 12px;
    --font-size-medium: 14px;
    --font-size-large: 16px;
    --font-size-p: 1.125em;
    --font-size-h1: 2.5em;
    --font-size-h2: 1rem;
    --font-size-h3: 2.25em;
    --font-size-h4: 1em;

    /* Color */
    --color-1: #79111E;
    --color-2: #E6D410;
    --color-3: #4D2908;
    --white: #fff;

    --color-2-55: rgba(230, 212, 16, 0.55);

    /* Utils */
    --border-radius: 2rem;

    /* Animations */
    --trans-hover: 0.2s all ease-in-out;


    /* 
     * Breakpoints 
     * 
     * NOTE: screen vars appear not to work with @media queries; use for reference
     * won't work:  `@media min-width(var(--screen-small))`
     * instead:  `@media min-width(23.5em)`
     * 
     * */
    --screen-small: 23.5em;
    --screen-medium: 48em;
    --screen-large: 80em;
}




/**
 * Wildcard
 * all elements
 *
 */

* {
    box-sizing: border-box;
}

html {
    height: 100%;
}



/**
 * Body
 * bottom of the cascade styling
 *
 */

body {
    color: var(--color-3);
    font-family: var(--font-1);
    font-size: var(--font-size-small);
    font-weight: normal;
    height: 100%;
}

.body-wrap {
    display: flex;
    height: 100%;
    flex-direction: column;
}

main {
    flex-grow: 1;
    padding-bottom: 5vh;
}



/**
 * Headers
 *
 */

h1,
h3 {
    font-family: var(--font-1-semibold);
}

h2,
h4 {
    font-family: var(--font-2-black);
}

h1 {
    color: var(--color-3);
    font-size: var(--font-size-h1);
}

h2 {
    color: var(--color-3);
    font-size: var(--font-size-h2);
    letter-spacing: 0.06375em;
    line-height: 1.25;
}

h3 {
    font-size: var(--font-size-h3);
}

h4 {
    font-size: var(--font-size-h4);
}



/**
 * Components
 * base styles for site elements
 *
 */

main a {
    color: inherit;
    border-bottom: 1px solid var(--color-3);
    text-decoration: none;
    transition: var(--trans-hover);
}

main a:hover {
    color: inherit;
    cursor: pointer;
    border-bottom: 1px solid #fff;
    text-decoration: none;
}

main a:active {
    cursor: pointer;
}

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

label {
    font-family: var(--font-1-semibold);
    font-size: 1.125rem;
    letter-spacing: 0.05em;
}

button,
button.btn,
.btn,
button:not(.btn-close) {
    background: transparent;
    border-radius: var(--border-radius);
    color: var(--color-3);
    border: 2px solid var(--color-3);
    font-size: .875rem;
    font-weight: normal;
    line-height: 2;
    padding: .375rem 1rem;
    text-transform: uppercase;
    text-align: left;
    transition: var(--trans-hover);
}

button:hover,
button:focus,
button.btn:hover,
button.btn:focus,
.btn:hover,
.btn:focus,
button:not(.btn-close):hover,
button:not(.btn-close):focus {
    color: var(--color-1);
    background: rgba(255, 255, 255, 0.55);
    border: 2px solid var(--color-1);
}

button:active,
button.btn:active,
.btn:active,
button:not(.btn-close):active {
    color: var(--color-1);
    background: rgba(255, 255, 255, 1);
    border: 2px solid var(--color-1);
}


.card {
    border-radius: 0;
}


hr {
    border-top: 0.1rem solid #0098a8;
}



/**
 * Global Classes
 * 
 */

.subtitle {
    background: #fff;
    display: inline-block;
    font-size: 1em;
    padding: 10px 20px 9px;
    text-transform: uppercase;
}

.filter-title {
    display: inline-block;
    font-family: var(--font-2-black);
    font-size: 1em;
    margin-bottom: 0;
    padding: 0 2px 0 .125rem;
    text-transform: uppercase;
}

.filter-title:before {
    background-image: url("/static/providers/img/icons/i_filter.svg");
    background-size: 100% auto;
    background-repeat: no-repeat;
    content: '';
    display: inline-block;
    height: 22.2px;
    margin-left: -4px;
    margin-right: 10px;
    padding-bottom: 6px;
    position: relative;
    vertical-align: top;
    width: 18px;
}

/* For any richtext elements inside a filter-title */
.filter-title * {
    display: inline;
}

.filter-clear-all .btn-clear {
    background: transparent;
    border: 2px solid #fff;
    color: var(--color-3);
    font-size: .75em;
    letter-spacing: 0.05em;
    line-height: 1.5;
    padding: .4375rem 40px .375rem .6375rem;
    position: relative;
    transition: var(--trans-hover);
}

.filter-clear-all .btn-clear:hover {
    background: rgba(255, 255, 255, 0.55);
}

.filter-clear-all .btn-clear::after {
    color: #fff;
    content: "\2715";
    font-size: 1.25em;
    line-height: 1;
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translate(0, -50%);
    transition: var(--trans-hover);
}

.filter-clear-all .btn-clear:hover::after {
    color: var(--color-3);
}


.btn-filter {
    font-family: var(--font-1-bold);
    letter-spacing: 0.01rem;
    position: relative;
}

.btn-filter::after {
    border-top: 7.5px solid #fff;
    border-right: 7.5px solid transparent;
    border-left: 7.5px solid transparent;
    content: '';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translate(0, -50%);
    transition: var(--trans-hover);
}

.btn-filter:hover::after {
    border-top-color: var(--color-3);
}

/* Active Filter */
.filter-wrap.filter-active .btn-filter {
    color: var(--color-1);
    background: rgba(255, 255, 255, 1);
    border: 2px solid var(--color-1);
}

.filter-wrap.filter-active .btn-filter::after {
    border-top-color: var(--color-3);
}

button.btn-secondary {
    font-family: var(--font-1-bold);
    letter-spacing: 0.01em;
    position: relative;
    padding-right: 40px;
}

.btn-secondary:after {
    background-image: url("/static/providers/img/icons/i_arrow-right_white@2x.png");
    background-size: 100% auto;
    background-repeat: no-repeat;
    content: '';
    height: 15px;
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translate(0, -50%);
    width: 15px;
}

.btn-secondary:hover {
    background: rgba(255, 255, 255, 0.55);
    color: var(--color-1);
}

.btn-secondary:hover::after {
    background-image: url("/static/providers/img/icons/i_arrow-right@2x.png");
}


#home-filter-button {
    background-color: #fff;
}

#home-filter-button::after {
    background-image: url("/static/providers/img/icons/i_arrow-right@2x.png");
    opacity: 1;
}

#home-filter-button:hover::after {
    opacity: .55;
}

button.btn-back {
    font-family: var(--font-1-medium);
    font-size: .875em;
    letter-spacing: 0.025em;
    line-height: 1.25rem;
    position: relative;
    padding-left: 48px;
    text-align: right;
}

button.btn-back::after {
    background-image: url("/static/providers/img/icons/i_arrow-left_white@2x.png");
    background-size: 100% auto;
    background-repeat: no-repeat;
    content: '';
    height: 18px;
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translate(0, -50%);
    width: 18px;
}

button.btn-back:hover,
button.btn-back:active {
    color: var(--color-1);
    background: rgba(255, 255, 255, 0.55);
}


button.btn-clear,
.btn-clear {
    border: 2px solid var(--color-2);
    border-radius: 0;
    padding: .5rem 1rem;
}

button.btn-close,
button.btn-close:hover {
    background: url("/static/providers/img/icons/i_exit.svg");
    background-repeat: no-repeat;
    opacity: 1;
}

button.btn-close:hover {
    border: none;
    outline: 0;
    opacity: .55;
}

.page-content {
    margin: 3rem 0;
}

.filter-icon {
    max-height: 60px;
    width: auto;
}

.modal-launcher {
    cursor: pointer;
    text-decoration: underline;
}


/**
 * Richtext fields
 *
 */

[data-block-key] {
    font-family: var(--font-1-medium);
}

[data-block-key] strong,
[data-block-key] b {
    font-family: var(--font-1-bold);
    font-weight: normal;
}

.right {
    float: right;
}

.left {
    float: left;
}

[class*="block"] {
    display: block;
    margin: 0 0 1rem;
    position: relative;
    overflow: hidden;
}

[class*="block"] img.right,
[class*="block"] img.left {
    margin-bottom: 2rem;
    margin-top: 2rem;
}

[class*="block"] img.right {
    margin-left: 2rem;
}

[class*="block"] img.left {
    margin-right: 2rem;
}


/**
 * Forms
 *
 */

.list-group-item {
    border: none;
    color: var(--color-3);
    cursor: pointer;
    padding: .3125rem 1.25rem;
}

input[type="checkbox"] {
    border: 2px solid var(--color-3);
    cursor: pointer;
    transition: var(--trans-hover);
}

input[type="checkbox"]:hover {
    background: var(--color-2-55);
}

input[type="checkbox"]:checked {
    background-color: var(--color-3);
    border-color: var(--color-3);
}

/* Search */
.search-form {
    background: #fff;
    border-radius: var(--border-radius);
    color: var(--color-3);
    border: 2px solid var(--color-3);
    font-size: .875rem;
    font-weight: normal;
    height: 2.75rem;
    line-height: 2;
    padding: .375rem 1rem;
    position: relative;
    margin: .25rem 0.75rem 3rem;
    text-transform: uppercase;
    text-align: left;
    transition: var(--trans-hover);
}

    .search-form:after {
        background: #fff;
        bottom: -1.75rem;
        content: '';
        height: 2px;
        left: 0;
        position: absolute;
        width: 100%;
    }

input[type="search"]  {
    background: transparent;
    border: none;
    border-radius: 2em 0 0 2em;
    color: var(--color-3);
    font-family: var(--font-2-black);
    font-size: 1.125rem;
    height: 100%;
    letter-spacing: 0.1875rem;
    left: 0;
    padding-left: 1rem;
    position: absolute;
    top: 0;
    width: 80%;
}

    input[type="search"]:focus {
        outline: none;
    }

    input[type="search"]::placeholder {
        color: var(--color-3);
        font-family: var(--font-2-black);
        font-size: 1.125rem;
        letter-spacing: 0.1875rem;
    }

    input[type="search"]::-webkit-search-cancel-button {
        appearance: none;
        background-image: url('/static/providers/img/icons/i_exit.svg');
        background-size: 1rem;
        background-repeat: no-repeat;
        background-position: center;
        height: 1rem;
        width: 1rem;
    }

button.btn-submit {
    background: rgba(255,255,255,0.55);
    border: none;
    border-radius: 0 2rem 2rem 0;
    height: 100%;
    line-height: 1;
    padding: 0.3125rem 1rem 0.3125rem 0;
    position: absolute;
    right: 0;
    text-align: right;
    top: 0;
    width: 20%;
}

    button.btn-submit:hover {
        background: #fff;
        border: none;
    }


/* Product Details Multiselect Collapsible Categories */
.compound-multiselect-category {
    margin-bottom: .3125rem;
}

.compound-multiselect-category a {
    font-size: 1.125rem;
    margin-left: 2rem;
}

    .compound-multiselect-category a:before {
        content: '-';
        left: 2rem;
        font-size: 1.5rem;
        line-height: 1.5rem;
        position: absolute;
    }

    .compound-multiselect-category a.collapsed:before {
        content: '+';
    }

.compound-multiselect-category-options {
    margin: 5px auto;
}

.compound-multiselect-category-options .list-group-item {
    padding: 0.25rem 2rem;
    font-size: 1.125em;
}


/**
 * Modal
 * 
 */

.modal-filter button.btn-clear,
.modal-filter button.btn-secondary {
    padding: .25rem 1rem;
}

.modal-filter button.btn-secondary {
    background: var(--color-2);
    padding-right: 80px;
}

.modal-filter .btn-secondary:hover {
    background: var(--color-2-55);
}

.modal-filter .modal-content {
    border: none;
}

.modal-filter .modal-header {
    border: none;
}

.modal-filter .modal-body {
    color: var(--color-3);
    padding: 1rem 2rem 2rem;
}

.modal-filter .modal-footer {
    border: none;
    position: relative;
}

.modal-filter .modal-footer:before {
    background: linear-gradient(0deg, #fff, transparent);
    content: "";
    height: 3rem;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: -3rem;
    width: 100%;
}


/**
 * Utilities
 * classes that do something helpful
 *
 */

.link-internal,
.link-external {
    position: relative;
}

.link-internal::after,
.link-external::after {
    bottom: 0;
    content: "";
    display: inline-block;
    height: 15px;
    margin: 0 8px 2px;
    right: -32px;
    vertical-align: middle;
    width: 15px;
}

.link-internal:hover::after,
.link-external:hover::after {
    opacity: .55;
}

.link-internal::after {
    background-image: url("/static/providers/img/icons/i_play-right.svg");
}

.link-external::after {
    background-image: url("/static/providers/img/icons/i_external-link.svg");
}

.link-internal a,
.link-external a {
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
}

.screen-min-medium {
    display: none;
}

.seperator-right {
    border-right: 2px solid #fff;
}

.icon-circle {
    align-items: center;
    background: #fff;
    border-radius: 50%;
    display: flex;
    height: 36px;
    justify-content: center;
    width: 36px;
}

.icon-circle img {
    max-height: 20px;
    width: auto;
    max-width: 20px;
}

.expandable {
    margin-bottom: 1rem;
    max-height: 100px;
    overflow: hidden;
    position: relative;
    display: block;
}

.expandable:not(.show) {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.expandable.show {
    max-height: none;
    overflow: visible;
}

.expandable-wrap {
    position: relative;
}

.expandable-wrap.has-expand:not(.show)::after {
    bottom: -1.25ex;
    color: var(--color-3);
    cursor: pointer;
    content: "Show More +";
    font-family: var(--font-2-black);
    font-size: 10px;
    position: absolute;
    text-transform: uppercase;
    left: 12px;
}

.expandable-wrap.has-expand.show::after {
    bottom: -1.25ex;
    color: var(--color-3);
    content: "Show Less -";
    cursor: pointer;
    font-family: var(--font-2-black);
    font-size: 10px;
    position: absolute;
    text-transform: uppercase;
    left: 12px;
}

/* .expandable:not(.show)::before {
    bottom: 0;
    content: "+";
    font-size: 1rem;
    right:  0;
} */



/**
 * Media Queries
 * 
 */

@media screen and (min-width: 23.5em) {
    body {
        font-size: var(--font-size-small);
    }
}

/* Medium Screen */
@media screen and (min-width: 48em) {
    body {
        font-size: var(--font-size-medium);
    }

    .screen-min-medium {
        display: flex;
    }
}

@media screen and (min-width: 70em) {
    body {
        font-size: var(--font-size-large);
    }
}