/* ==============================================================
   REPROX MEDIA - CUSTOM CSS OVERRIDES ONLY

   PURPOSE
   OPS loads its Default CSS automatically. Paste this file into the Custom
   CSS field so these rules add to or override the default theme. Do not paste
   the Default CSS into Custom CSS and do not add &lt;style&gt; tags.

   IMPORTANT HOMEPAGE CONTRACT
   - index-middle is the first CMS slot the active Reprox theme renders.
   - Put the standalone Seasonal Banner in index-middle.
   - Put reviews/service benefits in cms_middle_footer, the next rendered slot.
   - index-middle-top is not emitted by the active storefront template.
   - This file must never hide any Index container or its parent regions.
   - OPS does not accept CSS Grid syntax. Use Flexbox and
     Bootstrap-compatible rows/columns only.
   ============================================================== */

/* ==============================================================
   REPROX MEDIA - CUSTOMER HOME PAGE + FOOTER MOCKUP
   Paste into OPS Custom CSS without &lt;style&gt; tags.
   Scoped to .rm-home-layout and #footer so product/checkout pages
   retain the theme's existing behavior.
   ============================================================== */

/* ==============================================================
   SITE-WIDE TYPOGRAPHY CONTROLS

   1. Change the font-family value in the body rule below.
   2. Change the font-size value in the html rule below.

   If the font is not already installed by OPS, add its provider's
   @import line as the FIRST line of this Custom CSS file. Example:
   @import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap');
   ============================================================== */

html {
    font-size: 16px !important;
}

html body,
html body button,
html body input,
html body select,
html body textarea,
html body .btn,
html body .form-control {
    font-family: Arial, Helvetica, sans-serif !important;
}

html body {
    font-size: 1rem !important;
}

/* ---------- Home page foundation ---------- */

/* OPS owns homepage index visibility and ordering. Do not hide #main-content. */

body.home_page_body .rm-home-layout,
body.home_page_body .rm-home-layout *,
#footer .rm-footer-newsletter,
#footer .rm-footer-newsletter *,
#footer .rm-footer-main,
#footer .rm-footer-main *,
#footer .rm-footer-legal,
#footer .rm-footer-legal * {
    box-sizing: border-box;
}

body.home_page_body .rm-home-layout {
    background: #ffffff;
    color: #171717;
    overflow: hidden;
    width: 100%;
}

body.home_page_body .rm-home-layout > section {
    margin: 0 !important;
}

body.home_page_body .rm-home-layout .container,
#footer .rm-footer-newsletter .container,
#footer .rm-footer-main .container,
#footer .rm-footer-legal .container {
    max-width: 1320px;
    width: 100%;
}

body.home_page_body .rm-home-layout > .rm-home-section {
    background: #ffffff;
    padding: 64px 0 80px;
}

body.home_page_body .rm-home-layout > .rm-home-section + .rm-home-section {
    border-top: 1px solid #eeeeee;
}

body.home_page_body .rm-home-layout .rm-home-section__head {
    margin: 0 0 28px !important;
}

.rm-home-section__head h2 {
    color: #202020;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.25;
    margin: 0;
    padding: 0;
    text-align: left;
}

.rm-home-viewer,
.rm-home-viewer #home_page,
.rm-home-viewer .middle_inner_section {
    background: transparent !important;
    margin: 0 !important;
    padding: 0 !important;
}

.rm-home-viewer .HomePage_Title,
.rm-home-viewer #home_page > .HomePage_Title {
    display: none !important;
}

/* ---------- OPS-generated category/product cards ---------- */

.rm-home-viewer #home_page .row.card-aligned,
.rm-home-viewer #home_page .carousel-item > .row,
.rm-home-viewer > .row.card-aligned {
    align-items: stretch !important;
    display: flex !important;
    flex-wrap: wrap !important;
    margin-left: -10px !important;
    margin-right: -10px !important;
}

.rm-home-viewer .product-box {
    box-sizing: border-box !important;
    display: flex !important;
    flex: 0 0 25% !important;
    max-width: 25% !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
}

.rm-home-viewer .product-box .card {
    background: #ffffff !important;
    border: 1px solid #d3d3d3 !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    color: #222222 !important;
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    margin: 0 0 24px !important;
    min-height: 360px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: relative !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease !important;
    width: 100% !important;
}

.rm-home-viewer .product-box .card:hover,
.rm-home-viewer .product-box .card:focus-within {
/*    border-color: #aaaaaa !important;*/
    border-color: #c9c9c9 !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.09) !important;
/*    transform: translateY(-2px) !important;*/
}

.rm-home-viewer .product-box .card > .edatalayer,
.rm-home-viewer .product-box .thumbnail {
/*  background: #e4e4e4 !important;  */
    background: #e9e9e9 !important;
    border: 0 !important;
    border-radius: 9px 9px 0 0 !important;
    display: block !important;
    height: 305px !important;
    margin: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    width: 100% !important;
}

.rm-home-viewer .product-box .card > .edatalayer picture,
.rm-home-viewer .product-box .card > .edatalayer img,
.rm-home-viewer .product-box .thumbnail picture,
.rm-home-viewer .product-box .thumbnail img,
.rm-home-viewer .product-box .card-img-top {
    border-radius: 9px 9px 0 0 !important;
    display: block !important;
    height: 100% !important;
    margin: 0 !important;
    max-width: none !important;
    object-fit: cover !important;
    padding: 0 !important;
    width: 100% !important;
}

.rm-home-viewer--products .product-box .card > .edatalayer img,
.rm-home-viewer--products .product-box .thumbnail img,
.rm-home-viewer--products .product-box .card-img-top {
    object-fit: contain !important;
}

.rm-home-viewer .product-box .card-body {
    background: #ffffff !important;
    color: #555555 !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
    padding: 14px 16px 0 !important;
}

.rm-home-viewer .product-box .card-title,
.rm-home-viewer .product-box .card-body h2,
.rm-home-viewer .product-box .card-body h3,
.rm-home-viewer .product-box .card-body .h2,
.rm-home-viewer .product-box .card-body .h3 {
    color: #202020 !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
    margin: 0 0 7px !important;
    padding: 0 !important;
    text-align: left !important;
}

.rm-home-viewer .product-box .card-text,
.rm-home-viewer .product-box .card-text p,
.rm-home-viewer .product-box .card-text li,
.rm-home-viewer .product-box .card-body p,
.rm-home-viewer .product-box .card-body li {
    color: #5c5c5c !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    margin-bottom: 0 !important;
    text-align: left !important;
}

.rm-home-viewer .product-box .card-body ul {
    margin: 0 !important;
    padding-left: 17px !important;
}

.rm-home-viewer .product-box .card-footer {
    background: #ffffff !important;
    border: 0 !important;
    display: block !important;
    margin-top: auto !important;
    padding: 8px 16px 16px !important;
}

.rm-home-viewer .product-box .btn,
.rm-home-viewer .product-box .btn-info {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #e91f2f !important;
    display: inline-block !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
    padding: 0 !important;
    text-align: left !important;
    text-decoration: none !important;
    width: auto !important;
}

.rm-home-viewer .product-box .btn:hover,
.rm-home-viewer .product-box .btn-info:hover,
.rm-home-viewer .product-box .btn:focus,
.rm-home-viewer .product-box .btn-info:focus {
    color: #bd1522 !important;
    text-decoration: underline !important;
}

.rm-home-viewer .carousel-control-prev,
.rm-home-viewer .carousel-control-next {
    background: #ffffff !important;
    border: 1px solid #d3d3d3 !important;
    border-radius: 50% !important;
    color: #202020 !important;
    height: 38px !important;
    opacity: 1 !important;
    top: -58px !important;
    width: 38px !important;
}

.rm-home-viewer .carousel-control-prev {
    left: auto !important;
    right: 48px !important;
}

.rm-home-viewer .carousel-control-next {
    right: 0 !important;
}

/* ---------- Feature promotions ---------- */

body.home_page_body .rm-home-layout > .rm-promo-pair {
    background: #ffffff;
    padding: 0 0 88px !important;
}

.rm-promo-card {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 10px;
    min-height: 350px;
    overflow: hidden;
    position: relative;
}

.rm-promo-card:before {
    bottom: 0;
    content: "";
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.rm-promo-card--cutouts {
    background-color: #ead8ef;
    background-image: linear-gradient(115deg, rgba(255, 255, 255, 0.15), rgba(160, 99, 174, 0.16));
}

.rm-promo-card--trade-show {
    background-color: #cfe5fb;
    background-image: linear-gradient(115deg, rgba(255, 255, 255, 0.15), rgba(65, 137, 198, 0.14));
}

.rm-promo-card__content {
    bottom: 28px;
    left: 28px;
    max-width: 58%;
    position: absolute;
    z-index: 1;
}

.rm-promo-card__eyebrow,
.rm-seasonal-banner__eyebrow,
.rm-reviews__eyebrow {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin: 0 0 8px;
    text-transform: uppercase;
}

.rm-promo-card h2 {
    color: #171717;
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
    margin: 0 0 12px;
    text-transform: uppercase;
}

.rm-promo-card p {
    color: #3f3f3f;
    font-size: 14px;
    line-height: 1.45;
}

.rm-button {
    border-radius: 12px;
    display: inline-block;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    min-width: 150px;
    padding: 14px 24px;
    text-align: center;
    text-decoration: none !important;
}

.rm-button--red {
    background: #ff1d25;
    color: #ffffff !important;
}

.rm-button--red:hover,
.rm-button--red:focus {
    background: #d71920;
    color: #ffffff !important;
}

.rm-button--light {
    background: #ffffff;
    color: #171717 !important;
}

.rm-button--light:hover,
.rm-button--light:focus {
    background: #f0f0f0;
    color: #171717 !important;
}

/* ---------- Seasonal banner ---------- */

.rm-seasonal-banner {
    background: #d60018;
    color: #ffffff;
    overflow: hidden;
    padding: 0;
}

.rm-seasonal-banner__inner {
    align-items: center;
    display: flex;
    justify-content: space-between;
    min-height: 250px;
    position: relative;
}

.rm-seasonal-banner__copy {
    flex: 0 0 48%;
    max-width: 48%;
    position: relative;
    z-index: 2;
}

.rm-seasonal-banner h2 {
    color: #ffffff;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.1;
    margin: 0 0 44px;
    text-transform: uppercase;
}

.rm-seasonal-banner__columns {
    display: flex;
}

.rm-seasonal-banner__columns p {
    flex: 0 0 46%;
    max-width: 46%;
    margin-right: 8%;
}

.rm-seasonal-banner__columns p:last-child {
    margin-right: 0;
}

.rm-seasonal-banner p {
    color: #ffffff;
    font-size: 14px;
    line-height: 1.25;
    margin-bottom: 0;
}

.rm-seasonal-banner__art {
    color: rgba(255, 255, 255, 0.24);
    font-size: 64px;
    font-weight: 300;
    left: 57%;
    letter-spacing: 0.02em;
    line-height: 0.86;
    pointer-events: none;
    position: absolute;
    text-align: center;
    text-transform: uppercase;
    top: 50%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
    z-index: 1;
}

.rm-seasonal-banner__art span {
    display: block;
}

.rm-seasonal-banner .rm-button {
    align-items: center;
    display: flex;
    flex: 0 0 300px;
    justify-content: center;
    max-width: 300px;
    min-height: 64px;
    padding: 14px 28px;
    position: relative;
    width: 300px;
    z-index: 2;
}

/* ---------- Reviews ---------- */

.rm-reviews {
    background: #ffffff;
    padding: 12px 0;
    text-align: center;
}

.rm-reviews h2 {
    color: #292929;
    font-size: 38px;
    font-weight: 400;
    line-height: 1.2;
    margin: 0 0 20px;
}

.rm-reviews__eyebrow {
    color: #e91f2f;
}

.rm-reviews__link {
    color: #e91f2f !important;
    font-size: 15px;
    font-weight: 700;
}

/*
   Native Elfsight widget mount point.
   The widget platform calculates its own responsive height, avoiding the
   scrollbar produced when the entire elf.site page is placed in an iframe.
   Review-card settings themselves are managed in the Elfsight widget editor.
*/
.rm-reviews__embed {
    background: #ffffff;
    margin: 32px auto 0;
    max-width: 1320px;
    min-height: 280px;
    overflow: hidden;
    width: 100%;
}

.rm-reviews__embed > [class*="elfsight-app-"] {
    min-height: 280px;
    width: 100%;
}

.rm-reviews__fallback {
    color: #555555;
    font-size: 13px;
    margin: 14px 0 0;
}

.rm-reviews__fallback a {
    color: #e91f2f !important;
    font-weight: 700;
}

/* ------Reviews block styling 08-22-2026 */

.sk_branding {
    visibility: hidden !important;
}

.sk-ww-google-reviews { 
min-height: 480px !important;    
}

/* ---------- Trust strip ---------- */

.rm-service-strip {
    background: #ededed;
    padding: 32px 0;
}

.rm-service-item {
    align-items: center;
    display: flex;
    min-height: 76px;
    padding-bottom: 10px;
    padding-top: 10px;
}

.rm-service-item > i,
.rm-service-item > .rm-service-icon {
    align-items: center;
    color: #121212;
    display: flex;
    flex: 0 0 64px;
    font-size: 44px;
    height: 54px;
    justify-content: center;
    margin-right: 14px;
    text-align: center;
    width: 64px;
}

.rm-service-icon--fast {
    position: relative;
}

.rm-service-icon--fast i {
    font-size: 42px;
    line-height: 54px;
    margin-left: 9px;
}

.rm-service-icon--fast::before,
.rm-service-icon--fast::after {
    background: #121212;
    content: "";
    height: 2px;
    left: 0;
    position: absolute;
}

.rm-service-icon--fast::before {
    box-shadow: 4px 9px 0 #121212;
    top: 17px;
    width: 14px;
}

.rm-service-icon--fast::after {
    left: 5px;
    top: 35px;
    width: 9px;
}

.rm-service-item h3 {
    color: #111111;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
    margin: 0 0 4px;
}

.rm-service-item p {
    color: #333333;
    font-size: 12px;
    line-height: 1.3;
    margin: 0;
}

/* ---------- Footer shell ---------- */

#footer.footer-content,
#footer.footer-content.bg-info,
#footer.footer-content.bg-primary {
    background: #000000 !important;
    border: 0 !important;
    color: #ffffff !important;
    margin: 0 !important;
    padding: 0 !important;
}

#footer .rm-footer-shell {
    display: block !important;
    margin: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    width: 100% !important;
}

/* ---------- Newsletter band ---------- */

#footer .rm-footer-newsletter {
    background: #23344e;
    color: #ffffff;
    padding: 36px 0;
}

#footer .rm-footer-newsletter h2 {
    color: #ffffff;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.25;
    margin: 0 0 7px;
}

#footer .rm-footer-newsletter p {
    color: #ffffff;
    font-size: 14px;
    line-height: 1.4;
    margin: 0;
}

#footer .rm-footer-subscriber,
#footer .rm-footer-subscriber #footersubscribe_sidebar,
#footer .rm-footer-subscriber .card,
#footer .rm-footer-subscriber .card-body {
    background: transparent !important;
    border: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

#footer .rm-footer-subscriber h3,
#footer .rm-footer-subscriber > p,
#footer .rm-footer-subscriber #footersubscribe_sidebar > .card-body > p,
#footer .rm-footer-subscriber .help-block {
    display: none !important;
}

#footer .rm-footer-subscriber .form-row,
#footer .rm-footer-subscriber .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

#footer .rm-footer-subscriber .form-row > [class*="col-"],
#footer .rm-footer-subscriber .row > [class*="col-"] {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

#footer .rm-footer-subscriber .input-group {
    background: #ffffff !important;
    border: 3px solid #ffffff !important;
    border-radius: 999px !important;
    display: flex !important;
    overflow: hidden !important;
    padding: 0 !important;
    width: 100% !important;
}

#footer .rm-footer-subscriber input[type="email"],
#footer .rm-footer-subscriber input[type="text"],
#footer .rm-footer-subscriber .form-control {
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 999px 0 0 999px !important;
    box-shadow: none !important;
    color: #222222 !important;
    height: 38px !important;
    min-width: 0 !important;
    padding: 9px 18px !important;
}

#footer .rm-footer-subscriber .input-group-append {
    background: transparent !important;
    border: 0 !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

#footer .rm-footer-subscriber button,
#footer .rm-footer-subscriber .btn {
    background: #d60018 !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    height: 38px !important;
    margin: 0 !important;
    min-width: 116px !important;
    padding: 7px 18px !important;
}

#footer .rm-footer-subscriber button:before,
#footer .rm-footer-subscriber button:after,
#footer .rm-footer-subscriber .btn:before,
#footer .rm-footer-subscriber .btn:after {
    display: none !important;
}

#footer .rm-footer-subscriber .custom-control {
    color: #ffffff !important;
    font-size: 12px !important;
    margin-bottom: 0 !important;
    margin-top: 10px !important;
    text-align: left !important;
}

#footer .rm-footer-subscriber .custom-control a {
    color: #ffffff !important;
}

#footer .rm-footer-subscriber .row.my-2 {
    margin-bottom: 0 !important;
    margin-top: 0 !important;
}

/* ---------- Main footer ---------- */

#footer .rm-footer-main {
    background: #050505;
    color: #ffffff;
/*. increase vertical paddings
    padding: 52px 0 46px;*/
    padding: 60px 0;
}

#footer .rm-footer-main h2,
#footer .rm-footer-main h3,
#footer .rm-footer-main h4,
#footer .rm-footer-main h5 {
    color: #ffffff !important;
}

#footer .rm-footer-main h2 {
    font-size: 19px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    margin: 0 0 16px !important;
}

#footer .rm-footer-logo {
    display: inline-block;
    margin: 0 0 20px;
}

#footer .rm-footer-logo img {
    display: block;
    filter: brightness(0) invert(1);
    height: auto;
    max-height: 70px;
    max-width: 300px;
    width: auto;
}

#footer .rm-footer-brand > p {
    color: #d4d4d4 !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    margin: 0 0 26px !important;
    max-width: 500px;
}

#footer .rm-footer-social > span {
    color: #ffffff;
    display: block;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 12px;
}

#footer .rm-footer-social ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}

#footer .rm-footer-social li {
    margin: 0 18px 0 0;
}

#footer .rm-footer-social a {
    color: #ffffff !important;
    font-size: 26px !important;
    padding: 0 !important;
}

#footer .rm-footer-social-icon {
    color: #ffffff;
    display: inline-block;
    font-size: 26px;
}

#footer .rm-footer-main ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

#footer .rm-footer-main li {
    display: block;
    margin: 0;
    padding: 0;
}

#footer .rm-footer-main a {
    color: #ffffff !important;
    font-size: 14px;
    line-height: 1.45;
    padding: 3px 0;
    text-decoration: none;
}

#footer .rm-footer-main a:hover,
#footer .rm-footer-main a:focus {
    color: #e91f2f !important;
}

#footer .rm-footer-links .bottom-links img {
    display: none !important;
}

#footer .rm-footer-products .footer-category-list > ul > li > ul,
#footer .rm-footer-products > ul > li > ul {
    display: none !important;
}

#footer .rm-footer-products .footer-category-list > ul > li:nth-child(n+9),
#footer .rm-footer-products > ul > li:nth-child(n+9) {
    display: none !important;
}

#footer .rm-footer-products .badge {
    display: none !important;
}

#footer .rm-footer-contact #contactus_sidebar,
#footer .rm-footer-contact #contactus_sidebar .card-header,
#footer .rm-footer-contact #contactus_sidebar .card-body,
#footer .rm-footer-contact .card {
    background: transparent !important;
    border: 0 !important;
    color: #ffffff !important;
    margin: 0 !important;
    padding: 0 !important;
}

#footer .rm-footer-contact #contactus_sidebar .card-header,
#footer .rm-footer-contact #contactus_sidebar .card-title {
    display: none !important;
}

#footer .rm-footer-contact #contactus_sidebar h2 {
    color: #ffffff !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    margin: 18px 0 12px !important;
}

#footer .rm-footer-contact #contactus_sidebar,
#footer .rm-footer-contact #contactus_sidebar p,
#footer .rm-footer-contact #contactus_sidebar div {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
}

/* ---------- Legal/payment bar ---------- */

#footer .rm-footer-legal {
    background: #050505;
    border-top: 1px solid #3c3c3c;
    color: #bdbdbd;
    padding: 16px 0px 60px;
}

#footer .rm-footer-legal p {
    color: #bdbdbd !important;
    display: inline-block;
    font-size: 12px !important;
    margin: 0 28px 0 0 !important;
}

#footer .rm-footer-legal ul {
    display: inline-flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
    padding: 0;
}

#footer .rm-footer-legal li {
    border-left: 1px solid #777777;
    margin: 0;
    padding: 0 10px;
}

#footer .rm-footer-legal li:first-child {
    border-left: 0;
    padding-left: 0;
}

#footer .rm-footer-legal a {
    color: #bdbdbd !important;
    font-size: 12px !important;
    text-decoration: none;
}

#footer .rm-footer-legal a:hover,
#footer .rm-footer-legal a:focus {
    color: #ffffff !important;
}

#footer .rm-payment-list {
    text-align: right;
}

#footer .rm-payment-list i {
    color: #ffffff;
    font-size: 34px;
    margin-left: 8px;
}

/* ---------- Tablet ---------- */

@media only screen and (max-width: 991px) {
    .rm-home-viewer .product-box {
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }

    .rm-promo-card {
        min-height: 320px;
    }

    .rm-seasonal-banner__inner {
        min-height: 300px;
    }

    .rm-seasonal-banner__copy {
        flex-basis: 60%;
        max-width: 60%;
        padding-right: 28px;
    }

    .rm-seasonal-banner h2 {
        margin-bottom: 30px;
    }

    .rm-seasonal-banner__columns {
        display: block;
    }

    .rm-seasonal-banner__columns p {
        max-width: 100%;
        margin: 0 0 14px;
        width: 100%;
    }

    .rm-seasonal-banner__art {
        font-size: 50px;
        left: 58%;
        opacity: 0.7;
    }

    .rm-seasonal-banner .rm-button {
        flex-basis: 170px;
        max-width: 170px;
        width: 170px;
    }

    #footer .rm-footer-main {
        padding-bottom: 30px;
    }

    #footer .rm-payment-list {
        text-align: left;
    }

    #footer .rm-payment-list i {
        margin-left: 0;
        margin-right: 8px;
    }
}

/* ---------- Mobile ---------- */

@media only screen and (max-width: 575px) {
    body.home_page_body .rm-home-layout > .rm-home-section {
        padding-bottom: 54px !important;
        padding-top: 42px !important;
    }

    body.home_page_body .rm-home-layout .rm-home-section__head {
        margin-bottom: 20px !important;
    }

    .rm-home-section__head h2 {
        font-size: 22px;
    }

    .rm-home-viewer #home_page .row.card-aligned,
    .rm-home-viewer #home_page .carousel-item > .row,
    .rm-home-viewer > .row.card-aligned {
        margin-left: -6px !important;
        margin-right: -6px !important;
    }

    .rm-home-viewer .product-box {
        flex: 0 0 50% !important;
        max-width: 50% !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    .rm-home-viewer .product-box .card {
        border-radius: 8px !important;
        min-height: 286px !important;
    }
    .rm-home-viewer .product-box .card > .edatalayer,
    .rm-home-viewer .product-box .thumbnail {
/* thumbnail height set to aspect-ratio 08-22-2026
        height: 200px !important;*/
    aspect-ratio: 1/1 !important;
    }

    .rm-home-viewer .product-box .card-body {
        padding: 11px 11px 0 !important;
    }

    .rm-home-viewer .product-box .card-title,
    .rm-home-viewer .product-box .card-body h2,
    .rm-home-viewer .product-box .card-body h3,
    .rm-home-viewer .product-box .card-body .h2,
    .rm-home-viewer .product-box .card-body .h3 {
        font-size: 15px !important;
    }

    .rm-home-viewer .product-box .card-text,
    .rm-home-viewer .product-box .card-text p,
    .rm-home-viewer .product-box .card-text li,
    .rm-home-viewer .product-box .card-body p,
    .rm-home-viewer .product-box .card-body li {
        font-size: 11px !important;
    }

    .rm-home-viewer .product-box .card-footer {
        padding: 7px 11px 12px !important;
    }

    .rm-home-viewer .product-box .btn,
    .rm-home-viewer .product-box .btn-info {
        font-size: 11px !important;
    }

    body.home_page_body .rm-home-layout > .rm-promo-pair {
        padding-bottom: 58px !important;
    }

    .rm-promo-card {
        min-height: 290px;
    }

    .rm-promo-card__content {
        bottom: 20px;
        left: 20px;
        max-width: 78%;
    }

    .rm-promo-card h2 {
        font-size: 25px;
    }

    .rm-seasonal-banner {
        padding: 38px 0;
    }

    .rm-seasonal-banner__inner {
        align-items: flex-start;
        flex-direction: column;
        min-height: 0;
    }

    .rm-seasonal-banner__copy {
        flex-basis: auto;
        max-width: 100%;
        padding-right: 0;
    }

    .rm-seasonal-banner h2 {
        font-size: 25px;
        margin-bottom: 26px;
    }

    .rm-seasonal-banner__art {
        font-size: 42px;
        left: auto;
        margin: 26px 0;
        opacity: 0.7;
        position: relative;
        top: auto;
        transform: none;
    }

    .rm-seasonal-banner .rm-button {
        flex-basis: auto;
        max-width: 180px;
        min-height: 52px;
        width: 180px;
    }

    .rm-reviews {
        padding: 0px 0px;
    }

    .rm-reviews h2 {
        font-size: 28px;
    }

    .rm-reviews__embed {
        margin-top: 24px;
    }

    .rm-service-strip {
        padding: 22px 0;
    }

    #footer .rm-footer-newsletter {
        padding: 24px 0;
    }

    #footer .rm-footer-subscriber .input-group {
        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        display: block !important;
        overflow: visible !important;
    }

    #footer .rm-footer-subscriber input[type="email"],
    #footer .rm-footer-subscriber input[type="text"],
    #footer .rm-footer-subscriber .form-control {
        border-radius: 999px !important;
        margin-bottom: 9px !important;
        width: 100% !important;
    }

    #footer .rm-footer-subscriber .input-group-append {
        width: 100% !important;
    }

    #footer .rm-footer-subscriber button,
    #footer .rm-footer-subscriber .btn {
        width: 100% !important;
    }

    #footer .rm-footer-main {
        padding: 40px 0 22px;
    }

    #footer .rm-footer-logo img {
        max-width: 240px;
    }

    #footer .rm-footer-legal p {
        display: block;
        margin: 0 0 12px !important;
    }

    #footer .rm-footer-legal ul {
        display: block;
    }

    #footer .rm-footer-legal li,
    #footer .rm-footer-legal li:first-child {
        border-left: 0;
        padding: 2px 0;
    }

    #footer .rm-payment-list {
        padding-top: 10px;
    }

    #footer .rm-payment-list i {
        font-size: 30px;
    }
}

/* ==============================================================
   FOOTER SUBSCRIBE BAND — EQUAL LEFT / RIGHT ALIGNMENT

   Removes the Bootstrap offset from the first newsletter column.
   Both columns now use the same centered content frame as the main
   footer: copy aligns left and the form aligns right.
   ============================================================== */

@media only screen and (min-width: 992px) {
    #footer .rm-footer-newsletter > .container {
        margin-left: auto !important;
        margin-right: auto !important;
        max-width: 1320px !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
        width: 100% !important;
    }

    #footer .rm-footer-newsletter > .container > .row {
        align-items: center !important;
        display: flex !important;
        justify-content: space-between !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
    }

    #footer .rm-footer-newsletter > .container > .row > [class*="col-"] {
        flex: 0 0 48% !important;
        margin-left: 0 !important;
        max-width: 48% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 48% !important;
    }
}

@media only screen and (max-width: 991.98px) {
    #footer .rm-footer-newsletter > .container > .row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    #footer .rm-footer-newsletter > .container > .row > [class*="col-"] {
        flex: 0 0 100% !important;
        margin-left: 0 !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
    }
}

/* ---------- Customer-mockup card counts ---------- */

/* The two curated category rows use six compact cards on desktop. */
@media only screen and (min-width: 992px) {
    body.home_page_body .rm-home-section--popular .rm-home-viewer .product-box,
    body.home_page_body .rm-home-section--school .rm-home-viewer .product-box {
        flex: 0 0 16.666667% !important;
        max-width: 16.666667% !important;
    }

    body.home_page_body .rm-home-section--popular .product-box .card,
    body.home_page_body .rm-home-section--school .product-box .card {
        min-height: 330px !important;
    }

    body.home_page_body .rm-home-section--popular .product-box .card > .edatalayer,
    body.home_page_body .rm-home-section--popular .product-box .thumbnail,
    body.home_page_body .rm-home-section--school .product-box .card > .edatalayer,
    body.home_page_body .rm-home-section--school .product-box .thumbnail {
        height: 200px !important;
    }

    body.home_page_body .rm-home-section--popular .product-box .card-title,
    body.home_page_body .rm-home-section--popular .product-box .card-body h3,
    body.home_page_body .rm-home-section--school .product-box .card-title,
    body.home_page_body .rm-home-section--school .product-box .card-body h3 {
        font-size: 15px !important;
    }

    body.home_page_body .rm-home-section--popular .product-box .card-text,
    body.home_page_body .rm-home-section--popular .product-box .card-text p,
    body.home_page_body .rm-home-section--school .product-box .card-text,
    body.home_page_body .rm-home-section--school .product-box .card-text p {
        font-size: 12px !important;
    }
}

/* Three curated category cards per row on tablet. */
@media only screen and (min-width: 576px) and (max-width: 991px) {
    body.home_page_body .rm-home-section--popular .rm-home-viewer .product-box,
    body.home_page_body .rm-home-section--school .rm-home-viewer .product-box {
        flex: 0 0 33.333333% !important;
        max-width: 33.333333% !important;
    }
}

/* ---------- Footer social icon spacing ---------- */

#footer .rm-footer-main .rm-footer-social ul li {
    flex: 0 0 34px !important;
    margin: 0 14px 0 0 !important;
    padding: 0 !important;
    width: 34px !important;
}

#footer .rm-footer-main .rm-footer-social ul li:last-child {
    margin-right: 0 !important;
}

#footer .rm-footer-main .rm-footer-social-icon {
    align-items: center !important;
    display: flex !important;
    height: 34px !important;
    justify-content: center !important;
    line-height: 1 !important;
    width: 34px !important;
}

/* ---------- Footer newsletter final OPS overrides ---------- */

#footer .rm-footer-subscriber #footersubscribe_sidebar .form-group.email {
    margin: 0 !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group {
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 999px !important;
    display: block !important;
    height: 44px !important;
    max-width: none !important;
    overflow: visible !important;
    position: relative !important;
    width: 100% !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group .form-control {
    border-radius: 999px !important;
    height: 44px !important;
    line-height: 44px !important;
    padding: 0 138px 0 18px !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append {
    height: 44px !important;
    margin: 0 !important;
    position: absolute !important;
    right: 0 !important;
    top: 0 !important;
    width: 120px !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append button,
#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append .btn {
    border: 3px solid #ffffff !important;
    height: 44px !important;
    line-height: 38px !important;
    margin: 0 !important;
    min-width: 0 !important;
    padding: 0 16px !important;
    width: 120px !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .help-block {
    display: none !important;
    margin: 0 !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .row.my-2 {
    margin-bottom: 0 !important;
    margin-top: 12px !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .custom-control {
    margin: 0 !important;
}

@media only screen and (max-width: 575px) {
    #footer .rm-footer-subscriber #footersubscribe_sidebar .input-group {
        background: transparent !important;
        border-radius: 0 !important;
        height: auto !important;
        position: static !important;
    }

    #footer .rm-footer-subscriber #footersubscribe_sidebar .input-group .form-control {
        height: 44px !important;
        line-height: 44px !important;
        margin-bottom: 9px !important;
        padding: 0 18px !important;
        width: 100% !important;
    }

    #footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append {
        height: 44px !important;
        position: static !important;
        width: 100% !important;
    }

    #footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append button,
    #footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append .btn {
        height: 44px !important;
        width: 100% !important;
    }
}

/* ---------- Homepage Index visibility contract ---------- */

body.home_page_body main#main-content #middle-content > .home-header.text-left.text-md-center.mb-4.mb-lg-5.bg-light {
    display: none !important;
}

/*
   Hide only slides positively identified by the homepage helper as the old
   generated product viewer. The OPS-owned #index, #home_page, and
   #carousel-example2 containers always remain rendered so all CMS content
   that the active OPS theme outputs can appear normally.
*/
body.home_page_body #carousel-example2 .rm-obsolete-home-viewer-item {
    display: none !important;
}

body.home_page_body #carousel-example2.rm-obsolete-home-viewer-only {
    margin: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
}

body.home_page_body #carousel-example2.rm-obsolete-home-viewer-only > .carousel-control-prev,
body.home_page_body #carousel-example2.rm-obsolete-home-viewer-only > .carousel-control-next,
body.home_page_body #carousel-example2.rm-obsolete-home-viewer-only > .carousel-indicators {
    display: none !important;
}

/*
   IMPORTANT: Do not hide #index, #home_page, or #carousel-example2 here.
   OPS may render separately managed Homepage Index entries inside that region.
   The documented helper in reprox_home_page_cms_mockup.html marks only the
   obsolete generated product slides. It never hides an OPS Index container.
*/

/*
   CMS display mode adds Bootstrap's .container class around the entire Index
   region. Remove only that OUTER width limit so full-width Reprox sections can
   reach both viewport edges. Each Reprox section still has its own inner
   .container, which keeps text and cards aligned to the approved content width.
*/
body.home_page_body main#main-content > .container.body-container {
    max-width: none !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0 !important;
    width: 100% !important;
}

body.home_page_body .rm-middle-footer-layout,
body.home_page_body .rm-middle-footer-layout * {
    box-sizing: border-box;
}

/* ---------- Homepage hero banner navigation ---------- */

/*
   OPS positions the previous and next controls at the exact left and right
   edges of #top-banner. Because the controls are circular, placing them at
   0px makes the buttons look clipped against the browser window.

   These selectors are intentionally limited to #top-banner. They do not move
   the red navigation buttons used by the New Products carousel below it.
*/
body.home_page_body #top-banner > .carousel-control-prev {
    left: 20px !important;
    right: auto !important;
}

body.home_page_body #top-banner > .carousel-control-next {
    left: auto !important;
    right: 20px !important;
}

/*
   On smaller screens, use a slightly tighter inset so the controls remain
   easy to reach without covering too much of the banner artwork.
*/
@media (max-width: 767.98px) {
    body.home_page_body #top-banner > .carousel-control-prev {
        left: 10px !important;
    }

    body.home_page_body #top-banner > .carousel-control-next {
        right: 10px !important;
    }
}

/* ==============================================================
   PRODUCT DETAIL CALCULATOR — CUSTOM OVERRIDES ONLY

   The OPS Default CSS remains active. These rules only repair the
   Reprox product calculator and design-choice cards. Every selector
   is scoped to #product_info so homepage and footer layouts are not
   affected.
   ============================================================== */

#product_info #product-info #price_calculator {
    background-color: #f5f5f5 !important;
    background-image: none !important;
}

#product_info #product-info #price_calculator #productpricetotal,
#product_info #product-info #price_calculator .card-body .price_calculator #productpricetotal {
    background-color: #d6d6d6 !important;
    background-image: none !important;
}

#product_info #product-info #price_calculator #productpricetotal,
#product_info #product-info #price_calculator #productpricetotal span,
#product_info #product-info #price_calculator #productpricetotal div,
#product_info #product-info #price_calculator #productpricetotal label {
    color: #333333 !important;
}

#product_info #action-btn.allbtn {
    display: flex !important;
    flex-direction: column !important;
    margin: 24px 0 0 !important;
    padding: 0 !important;
    width: 100% !important;
}

#product_info #action-btn > .col-12 {
    flex: 0 0 auto !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
}

/* OPS outputs Upload first; customers should see Browse first. */
#product_info #action-btn > .col-12:nth-child(1) {
    order: 2 !important;
}

#product_info #action-btn > .col-12:nth-child(2) {
    order: 1 !important;
}

#product_info #action-btn > .col-12:nth-child(n+3) {
    order: 3 !important;
}

#product_info #action-btn .btn-title-text,
#product_info #action-btn .btn-title-text.upload_design,
#product_info #action-btn .btn-title-text.upload_design.cart_continue_main,
#product_info #action-btn .btn-title-text.browse_design,
#product_info #action-btn .btn-title-text.custom_design {
    background: #ffffff !important;
    background-image: none !important;
    border: 2px solid #666666 !important;
    border-radius: 3px !important;
    box-shadow: none !important;
    color: #333333 !important;
    display: block !important;
    height: auto !important;
    margin: 0 0 16px !important;
    min-height: 80px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: relative !important;
    width: 100% !important;
}

#product_info #action-btn .btn-title-text > a {
    background: transparent !important;
    color: #333333 !important;
    display: block !important;
    height: auto !important;
    margin: 0 !important;
    min-height: 78px !important;
    padding: 16px 18px 14px 74px !important;
    position: relative !important;
    text-align: left !important;
    text-decoration: none !important;
    width: 100% !important;
}

#product_info #action-btn .btn-title-text > a > i,
#product_info #action-btn .btn-title-text i,
#product_info #action-btn .btn-title-text i::before,
#product_info #action-btn .btn-title-text i::after,
#product_info #action-btn .btn-title-text.upload_design a .icon-cart-shopping-light-1::before {
    display: none !important;
}

#product_info #action-btn .btn-title-text .h4,
#product_info #action-btn .btn-title-text a .h4 {
    color: #333333 !important;
    display: block !important;
    float: none !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
    margin: 0 0 3px !important;
    padding: 0 !important;
    position: static !important;
    text-align: left !important;
}

#product_info #action-btn .btn-title-text > a::before {
    align-items: center !important;
    background: transparent !important;
    color: #e91f2f !important;
    display: flex !important;
    font-family: "Font Awesome 6 Pro", "Font Awesome 5 Pro", "Font Awesome 5 Free", FontAwesome !important;
    font-size: 31px !important;
    font-style: normal !important;
    font-weight: 900 !important;
    height: 48px !important;
    justify-content: center !important;
    left: 16px !important;
    line-height: 1 !important;
    position: absolute !important;
    text-align: center !important;
    top: 15px !important;
    width: 42px !important;
}

#product_info #action-btn .btn-title-text > a::after {
    color: #666666 !important;
    display: block !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    text-align: left !important;
    white-space: normal !important;
}

#product_info #action-btn .btn-title-text.browse_design > a::before {
    content: "\f002" !important;
}

#product_info #action-btn .btn-title-text.browse_design > a::after {
    content: "Choose from our Design Template Collection" !important;
}

#product_info #action-btn .btn-title-text.upload_design > a::before {
    content: "\f093" !important;
}

#product_info #action-btn .btn-title-text.upload_design > a::after {
    content: "Upload your Print-ready Design file" !important;
}

#product_info #action-btn .btn-title-text.custom_design > a::before {
    content: "\f1fc" !important;
}

#product_info #action-btn .btn-title-text.custom_design > a::after {
    content: "Design online in our Designer Studio" !important;
}

#product_info #action-btn .btn-title-text:hover,
#product_info #action-btn .btn-title-text:focus-within {
    background: #f5f5f5 !important;
    background-image: none !important;
    border-color: #e91f2f !important;
    box-shadow: none !important;
}

#product_info #action-btn .btn-title-text:hover > a,
#product_info #action-btn .btn-title-text:focus-within > a,
#product_info #action-btn .btn-title-text:hover a .h4,
#product_info #action-btn .btn-title-text:focus-within a .h4 {
    color: #333333 !important;
}

@media only screen and (max-width: 575px) {
    #product_info #action-btn .btn-title-text > a {
        padding: 14px 14px 12px 64px !important;
    }

    #product_info #action-btn .btn-title-text > a::before {
        font-size: 27px !important;
        left: 11px !important;
        top: 14px !important;
        width: 38px !important;
    }
}

/* ==============================================================
   FOOTER SUBSCRIBE BAND — FINAL CUSTOM OVERRIDES

   Keeps the CMS heading and description aligned at left, restores the
   email placeholder, and holds the Subscribe button inside the field
   with equal space on every side. Scoped to the Reprox footer only.
   ============================================================== */

#footer .rm-footer-newsletter .row {
    align-items: center !important;
}

#footer .rm-footer-newsletter .row > [class*="col-"] {
    min-width: 0 !important;
}

#footer .rm-footer-newsletter h2 {
    color: #ffffff !important;
    font-size: 21px !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    line-height: 1.25 !important;
    margin: 0 0 7px !important;
    padding: 0 !important;
    text-align: left !important;
}

#footer .rm-footer-newsletter p {
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
    margin: 0 !important;
    max-width: 560px !important;
    padding: 0 !important;
    text-align: left !important;
}

#footer .rm-footer-subscriber,
#footer .rm-footer-subscriber #footersubscribe_sidebar,
#footer .rm-footer-subscriber #footersubscribe_sidebar form,
#footer .rm-footer-subscriber #footersubscribe_sidebar .card-body,
#footer .rm-footer-subscriber #footersubscribe_sidebar .form-row,
#footer .rm-footer-subscriber #footersubscribe_sidebar .form-row > [class*="col-"] {
    max-width: none !important;
    width: 100% !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .form-row > [class*="col-"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: left !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .form-group.email {
    margin: 0 !important;
    width: 100% !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group {
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 24px !important;
    box-shadow: none !important;
    display: block !important;
    height: 48px !important;
    max-width: none !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: relative !important;
    width: 100% !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group .form-control {
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 24px !important;
    box-shadow: none !important;
    color: #333333 !important;
    display: block !important;
    font-size: 14px !important;
    height: 48px !important;
    line-height: normal !important;
    margin: 0 !important;
    opacity: 1 !important;
    padding: 0 148px 0 18px !important;
    text-align: left !important;
    width: 100% !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group .form-control::placeholder {
    color: #7a8290 !important;
    opacity: 1 !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append {
    background: transparent !important;
    border: 0 !important;
    bottom: auto !important;
    display: block !important;
    height: 40px !important;
    left: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    position: absolute !important;
    right: 4px !important;
    top: 4px !important;
    transform: none !important;
    width: 132px !important;
    z-index: 2 !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append button,
#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append .btn {
    align-items: center !important;
    background: #d60018 !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 20px !important;
    box-shadow: none !important;
    color: #ffffff !important;
    display: flex !important;
    float: none !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    height: 40px !important;
    justify-content: center !important;
    left: auto !important;
    line-height: 1 !important;
    margin: 0 !important;
    min-width: 0 !important;
    padding: 0 20px !important;
    position: static !important;
    right: auto !important;
    text-align: center !important;
    top: auto !important;
    transform: none !important;
    white-space: nowrap !important;
    width: 132px !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append button:hover,
#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append button:focus,
#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append .btn:hover,
#footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append .btn:focus {
    background: #b90015 !important;
    color: #ffffff !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .row.my-2 {
    display: block !important;
    margin: 12px 0 0 !important;
    padding: 0 !important;
    text-align: left !important;
    width: 100% !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .custom-control {
    color: #ffffff !important;
    display: block !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    min-height: 20px !important;
    text-align: left !important;
    white-space: normal !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .custom-control-label,
#footer .rm-footer-subscriber #footersubscribe_sidebar .custom-control a {
    color: #ffffff !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    text-align: left !important;
}

@media only screen and (max-width: 991.98px) {
    #footer .rm-footer-newsletter {
        padding: 28px 0 !important;
    }

    #footer .rm-footer-newsletter .row > [class*="col-"]:first-child {
        margin-bottom: 20px !important;
    }
}

@media only screen and (max-width: 575px) {
    #footer .rm-footer-newsletter h2 {
        font-size: 19px !important;
        line-height: 1.3 !important;
    }

    #footer .rm-footer-newsletter p {
        font-size: 13px !important;
    }

    #footer .rm-footer-subscriber #footersubscribe_sidebar .input-group {
        background: #ffffff !important;
        border-radius: 24px !important;
        height: 48px !important;
        overflow: hidden !important;
        position: relative !important;
    }

    #footer .rm-footer-subscriber #footersubscribe_sidebar .input-group .form-control {
        height: 48px !important;
        margin: 0 !important;
        padding: 0 122px 0 15px !important;
        width: 100% !important;
    }

    #footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append {
        height: 40px !important;
        position: absolute !important;
        right: 4px !important;
        top: 4px !important;
        width: 108px !important;
    }

    #footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append button,
    #footer .rm-footer-subscriber #footersubscribe_sidebar .input-group-append .btn {
        height: 40px !important;
        padding: 0 14px !important;
        width: 108px !important;
    }
}

/* ==============================================================
   FOOTER SUBSCRIBE CONSENT — CENTER BELOW EMAIL FIELD

   The CMS places the Terms of Use checkbox inside `.row.my-2`.
   Center the complete checkbox-and-label group beneath the field
   while preserving the label's natural internal alignment.
   ============================================================== */

#footer .rm-footer-subscriber #footersubscribe_sidebar .row.my-2 {
    align-items: center !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    margin: 12px 0 0 !important;
    padding: 0 !important;
    width: 100% !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .row.my-2 > .custom-control.custom-checkbox {
    flex: 0 0 auto !important;
    float: none !important;
    margin: 0 !important;
    max-width: none !important;
    padding-right: 0 !important;
    text-align: left !important;
    width: auto !important;
}

#footer .rm-footer-subscriber #footersubscribe_sidebar .row.my-2 > .term-error {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    text-align: center !important;
    width: 100% !important;
}