/* ========================================================
    base styles 
======================================================== */
.rhythm-container {
    max-width: 1170px;
    margin: 30px auto;
}

.rhythm-container *,
.modal * {
    font-family: 'lato', sans-serif;
}

/* ========================================================
    header
======================================================== */
.rhythm-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    border-radius: 20px 20px 0 0;
    background: #000;
    color: #FFF;
}

.rhythm-logo {
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 1px;
}

.rhythm-logo img {
    width: 24px;
    height: auto;
}

.rhythm-header-right {
    display: flex;
    align-items: center;
    gap: 20px;
}

.rhythm-phone a {
    display: flex;
    align-items: center;
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 20px;
    font-weight: 800;
    text-decoration: none;
    color: #fff;
}

.rhythm-phone-icon {
    width: 24px;
    height: auto;
    transform: rotate(8.286deg);
}

.rhythm-phone-num,
.btn-rhythm-contact {
    display: none;
}

.btn-rhythm-contact {
    padding: 8px 16px;
    background: transparent;
    border: 2px solid #E00034;
    border-radius: 10px;
    text-transform: uppercase;
    font-size: 16px;
    font-weight: 700;
    color: #FFF;
}

.btn-rhythm-contact:hover {
    background: #E00034;
    color: #FFF;
}

/* ========================================================
    breadcrumbs
======================================================== */
.rhythm-breadcrumbs {
    padding: 20px;
    background: #F2F2F2;
    border-left: 2px solid #E8EDEE;
    border-right: 2px solid #E8EDEE;
}

.rhythm-breadcrumbs ul {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    max-width: 750px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
    font-size: 14px;
    text-align: center;
}

.rhythm-breadcrumbs .step-number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0 auto 10px;
    border-radius: 50%;
    font-size: 16px;
    font-weight: 600;
}

.rhythm-breadcrumbs li.disabled {
    color: #6A7282;
    cursor: not-allowed;
}

.rhythm-breadcrumbs li.active {
    font-weight: 700;
    color: #101828;
}

.rhythm-breadcrumbs li.active .step-number {
    background: #E00034;
    color: #FFF;
}

.rhythm-breadcrumbs li.prev a {
    display: block;
    font-weight: 700;
    text-decoration: none;
    color: #101828;
}

.rhythm-breadcrumbs li.prev .step-number {
    background: #FFF;
    color: #6A7282;
}

.rhythm-breadcrumbs li.prev a:hover .step-number {
    background: #E00034;
    color: #FFF;
}

/* ========================================================
    main body
======================================================== */
.rhythm-body {
    padding: 20px;
    border-radius: 0 0 20px 20px;
    border: 2px solid #E8EDEE;
    border-top: none;
}

/* ========================================================
    step description
======================================================== */
.rhythm-step-description h1 {
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 20px;
    font-weight: 800;
    text-transform: uppercase;
    color: #000;
}

.rhythm-step-description p {
    font-size: 14px;
    color: #717182;
}

.rhythm-step-description p.rhythm-subscription-length {
    margin: 25px 0 0;
    padding: 11px 15px;
    background: #EFF6FF;
    border-radius: 10px;
    font-size: 16px;
    text-align: center;
    color: #1F2A44;
}

/* ========================================================
    subcategory view
======================================================== */
.rhythm-subcategories {
    margin-top: 40px;
}

.subcategories {
    display: flex;
    justify-content: center;
    gap: 15px;
}

.subcategories > ul {
    flex-basis: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
}

.subcategories > ul li {
    height: 100%;
}

.available-for {
    margin-bottom: 20px;
    padding: 15px 20px;
    background: #EFF6FF;
    border: 1px solid #BEDBFF;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    color: #1C398E;
}

/* ========================================================
    cards
======================================================== */
.card {
    display: flex;
    flex-direction: column;
    position: relative;
    height: 100%;
    padding: 30px 25px;
    background: #FFF;
    box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.10);
    font-size: 14px;
    color: #000;
}

.subscription-type-badge {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 6px 7px;
    background: #fff;
    border: 2px solid #1F2A44;
    border-radius: 8px;
    font-size: 14px;
    color: #1F2A44;
}

.card:hover .subscription-type-badge {
    border-color: #2E6DF6;
    color: #2E6DF6;
}

.card-title-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 7px;
}

.card-title {
    margin: 0;
    /* font-family: 'proxima-nova', sans-serif; */
    display: inline-block;
    margin-right: 10px;
    font-size: 20px;
    font-weight: 800;
}

.card-title-small {
    padding: 7px 30px;
    background: #E00034;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 400;
    color: #fff;
}

.card-subtitle {
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 14px;
    font-weight: 700;
}

.as-low-as {
    margin: 20px 0 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    color: #2C3E50;
}

.card-price {
    margin: 0 0 20px;
}

.card-price .price {
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 24px;
    font-weight: 800;
    line-height: 36px;
}

.card-price .price-term {
    font-size: 12px;
    color: #2C3E50;
}

.card-desc {
    margin-bottom: 35px;
    line-height: normal;
}

.card-desc .list-heading {
    margin-bottom: 10px;
}

.card-desc .features-list {
    list-style: none;
    padding: 0;
}

.card-desc .features-list li {
    position: relative;
    margin-bottom: 6px;
    padding-left: 22px;
    line-height: 24px;
}

.card-desc .features-list li::before {
    content: "";
    position: absolute;
    top: 4px;
    left: 0;
    width: 16px;
    height: 16px;
    background-image: url('/assets/images/rhythm/rhythm-icon-check-green.svg');
    background-repeat: no-repeat;
    background-size: contain;
}

.card-desc .text-red {
    color: #F00;
}

/* ========================================================
    buttons
======================================================== */
.btn-card-primary {
    display: block;
    margin-top: auto;
    padding: 12px 12px;
    background: #353535;
    border: 2px solid #353535;
    border-radius: 10px;
    text-transform: uppercase;
    color: #fff;
}
.btn-card-primary:hover {
    background: #1e1e1e;
    border: 2px solid #1e1e1e;
    color: #fff;
}
.btn-card-primary:focus {
    color: #fff;
}

.btn-card-gray {
    background: #FFF;
    border: 2px solid #D1D5DC;
    border-radius: 5px;
    text-transform: uppercase;
    text-decoration: none;
    color: #364153;
}
.btn-card-gray:hover {
    background: #f6f6f6;
}

/* ========================================================
    product list view
======================================================== */
.rhythm-product-listing {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: 40px;
}

.essential-products,
.advanced-products {
    flex-basis: 100%;
}

.product-card-header {
    display: flex;
    align-items: center;
    margin-bottom: 7px;
}

.product-card-header .card-title {
    margin-bottom: 0;
}

.product-card-header .card-price {
    margin: 0;
}

.rhythm-products {
    margin: 20px 0 0;
    padding: 0;
    list-style: none;
}

.rhythm-product {
    margin-bottom: 20px;
    padding: 15px;
    border: 2px solid #E8EDEE;
}

.rhythm-product:last-of-type {
    margin-bottom: 0;
}

.product-upper {
    display: flex;
    flex-direction: column;
}

.rhythm-product .img img {
    width: 100px;
    height: auto;
    margin: 0 auto;
}

.rhythm-product .product-center {
    flex-grow: 1;
    padding-right: 15px;
}

.rhythm-product .name {
    font-weight: 700;
}

.rhythm-product .product-sku {
    margin-bottom: 15px;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px;
    color: #353535;
}

.rhythm-product .name a {
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 16px;
    line-height: normal;
    font-weight: 700;
    text-decoration: none;
    color: #000;
}

.product-feature-icons {
    display: flex;
    text-align: center;
}

.product-feature {
    flex-basis: 33.33333%;
    max-width: 60px;
}

.product-feature .feature-text {
    font-size: 10px;
    line-height: normal;
}

.product-right {
    padding-top: 15px;
}

.product-right .btn {
    min-width: 160px;
}

.btn-rhythm-details {
    width: 100%;
    margin-bottom: 10px;
    padding: 5px 10px;
    background: #FFF;
    border: 2px solid #353535;
    border-radius: 10px;
    text-transform: uppercase;
    color: #353535;
}
.btn-rhythm-details:hover {
    background: #353535;
    color: #FFF;
}

.product-specs {
    margin-top: 20px;
    padding: 10px 15px;
    background: #F2F2F2;
    border-radius: 10px;
    font-size: 12px;
}

.product-spec-subhead {
    margin-bottom: 0;
    font-weight: bold;
}

.product-specs ul {
    margin-bottom: 10px;
    padding-left: 20px;
    list-style: disc;
}

.rhythm-footer-text {
    margin-top: 25px;
    padding: 20px;
    background: #F2F2F2;
    border-radius: 10px;
    font-size: 14px;
    color: #1F2A44;
}

.footer-text-headline {
    margin-bottom: 0;
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 16px;
    font-weight: 700;
}

.rhythm-footer-cards {
    margin-top: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.footer-card {
    display: flex;
    flex-direction: column;
    flex-basis: 100%;
    background: #fff;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
}

.footer-card img {
    width: 202px;
    height: auto;
    margin: 0 auto;
}

.footer-card-text {
    display: grid;
    grid-template-rows: 1fr 1.75fr;
    flex-grow: 1;
    padding: 15px 10px;
}

.footer-card-text p {
    margin-bottom: 0;
}

/* ========================================================
    pdp page view
======================================================== */
.rhythm-pdp {
    margin-top: 40px;
}

.rhythm-pdp .required {
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 16px;
    font-weight: bold;
    color: #E00034;
}

.pdp-card-upper {
    padding: 0 20px;
}

.pdp-card-upper a:not(.btn) {
    color: #2E6DF6;
    text-decoration: underline;
}
.pdp-card-upper a:not(.btn):hover {
    text-decoration: none;
}

.pdp-card-header {
    padding: 30px 0 10px;
}

.pdp-card-upper .pdp-card-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.pdp-card-title {
    margin: 5px 0;
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 16px;
    font-weight: 800;
    line-height: 1.3;
    color: #101828;
}

.pdp-card-title-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.pdp-product-title {
    font-size: 18px;
}

.pdp-card-term {
    margin: 0;
    padding: 7px 30px;
    background: #E00034;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 400;
    color: #fff;
}

.pdp-card-content {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 20px 0;
}

.pdp-card-content .product-img {
    margin-bottom: 15px;
}

.product-img img {
    border: 2px solid #E8EDEE;
}

.product-description {
    flex-grow: 1;
    padding: 0 25px;
}

.product-name {
    margin: 0;
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 16px;
    font-weight: 800;
    line-height: 30px;
    color: #101828;
}

.subscription-includes {
    padding-left: 0;
    list-style: none;
}

.pdp-card-upper .qtybox {
    padding: 30px 30px 0 0;
}

.pdp-card-upper .core-qtybox label {
    text-align: center;
}

.pdp-card-upper .core-qtybox .qty-input {
    margin: 0 auto;
}

.pdp-card-upper .qty-input {
    position: relative;
    width: 65px;
    height: 40px;
    margin: 0;
    padding: 0 20px;
    border: 2px solid #E8EDEE;
    border-radius: 10px;
}
.pdp-card-upper .qty-input.error {
    border: 2px solid #E00034;
}

.pdp-card-upper .qty-input input {
    border: none;
    box-shadow: none;
    background: transparent;
    width: 100%;
    height: 100%;
    padding: 0;
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 16px;
    font-weight: 700;
    text-align: center;
}

.pdp-card-upper .qty-nav {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.pdp-card-upper .qty-up,
.pdp-card-upper .qty-down {
    position: absolute;
    top: 0;
    transform: none;
    display: block;
    width: 20px;
    height: 100%;
    background: none;
    border: none;
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 16px;
    line-height: 36px;
    font-weight: 700;
    text-align: center;
}

.pdp-card-upper .qty-up {
    right: 0;
}

.pdp-card-upper .qty-down {
    left: 0;
}

.pdp-card-upper .qty-up.disabled,
.pdp-card-upper .qty-down.disabled {
    background: none;
    color: #E8EDEE;
    cursor: not-allowed;
}

.edit-product-selection {
    padding-top: 38px;
}

.qty-limit {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 20px;
    padding: 15px 20px;
    background: #FFECEB;
    border: 1px solid #F9423A;
    border-radius: 20px;
    color: #E00034;
}

.qty-limit .btn-card-gray {
    min-width: 215px;
}

.pdp-card-footer {
    display: flex;
    justify-content: space-between;
    margin: 0 -20px;
    padding: 15px 20px;
    background: #F2F2F2;
}

.subtotal-label,
.yourprice .price {
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 16px;
    font-weight: 800;
    line-height: 30px;
    color: #101828;
}

.yourprice .per-month {
    font-size: 14px;
    line-height: 24px;
    color: #1F2A44;
}

.pdp-card-lower {
    margin: 30px 0;
    padding-top: 0;
}

.pdp-card-lower .pdp-card-header {
    border-bottom: none;
}

.terms-box {
    padding: 20px 15px;
    background: #EFF6FF;
    border: 1px solid #BEDBFF;
    border-radius: 20px;
}

.terms-box .opt-regular {
    margin-top: 0;
}

#contact-form .opt-label {
    display: none;
}

.terms-box .form-group label {
    font-size: 14px;
}

#divOptionsBlock .opt-regular:first-of-type,
#divOptionsBlock .opt-regular:last-of-type {
    /* hidden fields */
    display: none;
}

#divOptionsBlock .opt-regular:nth-of-type(2) .opt-field {
    /* name fields */
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

#divOptionsBlock .opt-regular:nth-of-type(2) .form-group {
    flex-basis: 100%;
    margin-bottom: 0;
}

#divOptionsBlock .label,
#divOptionsBlock label {
    color: #0A0A0A;
}

#divOptionsBlock .opt-regular input[type="text"] {
    border: 2px solid #D1D5DC;
    border-radius: 5px;
    box-shadow: none;
}

input:-webkit-autofill, 
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus{
    /* prevent browser autofill from turning input blue */
    -webkit-box-shadow: 0 0 0px 1000px #ffffff inset !important;
    -webkit-text-fill-color: #000000 !important;
}

#divOptionsBlock .opt-regular input[type="radio"] + label {
    /* option radio buttons */
    background: #FFF;
    border: 2px solid #D1D5DC;
    border-radius: 5px;
    color: #364153;
}

#divOptionsBlock .opt-regular input[type="radio"] + label:hover {
    background: #f6f6f6;
}

.radio-format>input[type="radio"]:checked+label.radio-option {
    /* checked radio button */
    border-color: #2E6DF6 !important;
}

#divOptionsBlock .form-group.error input[type="text"],
#divOptionsBlock .form-group.error input[type="radio"] + label {
    border: 2px solid #E00034;
}

.terms-subhead {
    color: #1C398E;
}

.terms-subhead img {
    margin: -2px 10px 0 0;
}

.terms-box .btn-card-gray {
    margin: 15px 0;
}

.terms-box .btn-card-gray img {
    margin: -2px 3px 0 0;
}

.terms-box .fine-print {
    margin-left: 0;
    font-size: 12px;
    color: #4A5565;
}

.accept-terms {
    position: relative;
}

/* Custom Checkbox Styles */
.accept-terms input[type="checkbox"] {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}

.accept-terms label {
    cursor: pointer;
    position: relative;
    margin-bottom: 0;
    padding-left: 28px;
    font-weight: 400;
    color: #0A0A0A;
}

.accept-terms.disabled label {
    cursor: not-allowed;
}

.accept-terms .custom-checkbox {
    position: absolute;
    left: 0;
    top: 3px;
    width: 14px;
    height: 14px;
    border: 1px solid #ccc;
    border-radius: 3px;
    background-color: #fff;
    box-shadow: 0 0.628px 1.256px 0 rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.accept-terms input[type="checkbox"]:checked + label .custom-checkbox {
    background-color: #364153;
    border-color: #364153;
}

.accept-terms input[type="checkbox"]:checked + label .custom-checkbox::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -40%);
    width: 10px;
    height: 10px;
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='7' height='6' viewBox='0 0 7 6' fill='none'><path d='M6 0.5L2.6001 4.69922L0.5 2.5' stroke='white' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}

.accept-terms ul {
    margin-bottom: 8px;
    padding-left: 15px;
    font-size: 12px;
    color: #364153;
}

/* terms error and success handling */
.terms-subhead.error {
    margin-bottom: 0 !important; /* override shift4 default */
    color: #BA002B;
}
.terms-subhead.error .icon-blue {
    display: none;
}
.terms-subhead.error .icon-red {
    display: inline !important;
}

.terms-box .btn-card-gray.error {
    border-color: #E00034;
}
.terms-box .btn-card-gray.error .icon-external-link,
.terms-box .btn-card-gray.error .icon-checked {
    display: none !important;
}
.terms-box .btn-card-gray.error .icon-external-link-red {
    display: inline !important;
}

.terms-box .btn-card-gray.success {
    border-color: #2E6DF6;
}
.terms-box .btn-card-gray.success .icon-external-link,
.terms-box .btn-card-gray.success .icon-external-link-red {
    display: none !important;
}
.terms-box .btn-card-gray.success .icon-checked {
    display: inline !important;
}

.accept-terms.error {
    margin-bottom: 0 !important; /* override shift4 default */
}
.accept-terms.error .custom-checkbox {
    border-color: #E00034;
}
.accept-terms.error label,
.accept-terms.error label ul,
.accept-terms.error .fine-print {
    color: #BA002B
}

/* Add to cart button */
#Add {
    min-width: 270px;
    margin-left: auto;
}

/* terms and quote request modals */
body.modal-open .header-navigation {
    z-index: 1;
}

.modal.in {
    z-index: 10000000001;
}

.modal .modal-title {
    margin: 0;
    float: left;
    /* font-family: 'proxima-nova', sans-serif; */
    font-size: 16px;
    line-height: 30px;
    color: #101828;
}

.modal .close {
    font-size: 28px;
}

.modal .close[disabled]:hover {
    cursor: not-allowed;
}

.modal-footer small {
    margin-right: 15px;
    font-style: italic;
}

.modal-footer .btn {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 5px;
}

/* Shake animation for scroll-to-accept text */
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }
    20%, 40%, 60%, 80% { transform: translateX(2px); }
}

#scroll-to-accept.shake {
    display: inline-block;
    animation: shake 0.4s ease-in-out;
}



/* Tablet styles (768px and up) */
@media screen and (min-width: 768px) {
    /* ========================================================
        header
    ======================================================== */
    .rhythm-logo {
        gap: 20px;
        font-size: 20px;
    }

    .rhythm-logo img,
    .rhythm-phone-icon {
        width: auto;
        height: auto;
    }

    .rhythm-phone-num {
        display: block;
    }

    .btn-rhythm-contact {
        display: inline-block;
    }

    /* ========================================================
        breadcrumbs
    ======================================================== */
    .rhythm-breadcrumbs ul {
        padding: 0 15px;
    }

    /* ========================================================
        subcategory view
    ======================================================== */
    .subcategories > ul {
        flex-basis: 60%;
    }

    /* ========================================================
        cards
    ======================================================== */
    .card-title {
        font-size: 28px;
    }

    .card-price .price {
        font-size: 32px;
    }

    .card-price .price-term {
        font-size: 14px;
    }

    .card-subtitle {
        font-size: 16px;
    }

    /* ========================================================
        product list view
    ======================================================== */
    .product-upper {
        flex-direction: row;
    }
    
    .footer-card {
        flex-basis: calc(33% - 5px);
    }

    /* ========================================================
        pdp page view
    ======================================================== */
    .pdp-card-upper .pdp-card-header {
        flex-wrap: nowrap;
    }

    .pdp-card-title {
        margin: 0;
        line-height: 30px;
    }

    .pdp-card-title-wrap {
        flex-direction: row;
    }

    .pdp-product-title {
        margin-right: 20px;
        font-size: 28px;
    }

    .pdp-card-content {
        flex-wrap: nowrap;
        justify-content: flex-start;
    }

    .pdp-card-content .product-img {
        margin-bottom: 0;
    }

    .pdp-card-upper .core-qtybox label {
        text-align: right;
    }

    .pdp-card-upper .core-qtybox .qty-input {
        margin: 0 0 0 auto;
    }

    .qty-limit {
        flex-wrap: nowrap;
        justify-content: space-between;
        gap: 0;
    }

    .terms-box .fine-print {
        margin-left: 25px;
    }

    #divOptionsBlock .opt-regular:nth-of-type(2) .form-group:nth-of-type(1),
    #divOptionsBlock .opt-regular:nth-of-type(2) .form-group:nth-of-type(2),
    #divOptionsBlock .opt-regular:nth-of-type(2) .form-group:nth-of-type(4),
    #divOptionsBlock .opt-regular:nth-of-type(2) .form-group:nth-of-type(5) {
        /* first name, last name, phone, email = 50% width */
        flex-basis: calc(50% - 7.5px);
    }

    #divOptionsBlock .opt-regular:nth-of-type(2) .form-group:nth-of-type(3),
    #divOptionsBlock .opt-regular:nth-of-type(2) .form-group:nth-of-type(6) {
        /* org name, street address = 100% width */
        flex-basis: 100%;
    }

    #divOptionsBlock .opt-regular:nth-of-type(2) .form-group:nth-of-type(7),
    #divOptionsBlock .opt-regular:nth-of-type(2) .form-group:nth-of-type(8),
    #divOptionsBlock .opt-regular:nth-of-type(2) .form-group:nth-of-type(9) {
        /* city, state, zip = 33.3333% width */
        flex-basis: calc(33.3333% - 10px);
    }
}



/* Desktop styles (1201px and up) */
@media screen and (min-width: 1201px) {
    /* ========================================================
        product list view
    ======================================================== */
    .rhythm-product-listing .card-subtitle {
        min-height: 48px;
    }

    /* ========================================================
        product list view
    ======================================================== */
    .rhythm-product-listing {
        flex-wrap: nowrap;
    }

    .rhythm-footer-cards {
        flex-wrap: nowrap;
    }
}