/* /Components/Home/DealStarburst.razor.rz.scp.css */
.deal-starburst[b-hg1noznw5t] {
    width: 118px;
    aspect-ratio: 1;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5d447;
    color: #2e2925;
    clip-path: polygon( 50% 0%, 58% 12%, 70% 4%, 75% 18%, 90% 13%, 90% 29%, 100% 34%, 91% 45%, 100% 55%, 88% 61%, 94% 75%, 78% 76%, 76% 92%, 62% 85%, 52% 100%, 43% 87%, 29% 96%, 25% 80%, 10% 85%, 12% 68%, 0% 61%, 10% 50%, 0% 39%, 13% 33%, 7% 18%, 23% 18%, 27% 3%, 40% 12% );
    filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.22));
    opacity: 0;
    transform: scale(0.72) rotate(-8deg);
}

.deal-starburst-inner[b-hg1noznw5t] {
    width: 80%;
    text-align: center;
    transform: rotate(-4deg);
}

.deal-starburst-name[b-hg1noznw5t] {
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.05;
    text-transform: uppercase;
}

.deal-starburst-price[b-hg1noznw5t] {
    margin-top: 5px;
    color: #8f171b;
    font-size: 1.05rem;
    font-weight: 900;
    line-height: 1;
}

.deal-starburst-visible[b-hg1noznw5t] {
    animation: starburst-in-b-hg1noznw5t 420ms ease-out forwards;
}

@keyframes starburst-in-b-hg1noznw5t {

    from {
        opacity: 0;
        transform: scale(0.72) rotate(-8deg);
    }

    to {
        opacity: 1;
        transform: scale(1) rotate(4deg);
    }
}

@media (max-width: 600px) {

    .deal-starburst[b-hg1noznw5t] {
        width: 88px;
    }

    .deal-starburst-name[b-hg1noznw5t] {
        font-size: 0.57rem;
    }

    .deal-starburst-price[b-hg1noznw5t] {
        font-size: 0.84rem;
    }
}

@media (prefers-reduced-motion: reduce) {

    .deal-starburst[b-hg1noznw5t] {
        opacity: 1;
        transform: rotate(4deg);
    }

    .deal-starburst-visible[b-hg1noznw5t] {
        animation: none;
    }
}
/* /Components/Home/DepartmentSpecialCard.razor.rz.scp.css */
/* CSS for DepartmentSpecialCard component */
.department-card[b-rgdmanmdf5] {
    position: relative;
    overflow: visible;
    background: #fbf8f5;
    border: 1px solid rgba(0, 0, 0, 0.07);
    border-radius: 10px;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.05);
}

.department-card-header[b-rgdmanmdf5] {
    position: relative;
    min-height: 64px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: #8f171b;
    color: #ffffff;
    border-radius: 10px 10px 0 0;
    overflow: visible;
}

.department-card-header h3[b-rgdmanmdf5] {
    margin: 0;
    flex-shrink: 0;
    font-size: 1.3rem;
    font-weight: 800;
}

.department-starbursts[b-rgdmanmdf5] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-top: -30px;
    margin-bottom: -30px;
    z-index: 5;
}
.department-card-items[b-rgdmanmdf5] {
    padding: 16px 20px 8px;
}

.department-item[b-rgdmanmdf5] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    padding: 9px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}

    .department-item:last-child[b-rgdmanmdf5] {
        border-bottom: none;
    }

.department-item-name[b-rgdmanmdf5] {
    color: #352f2c;
    font-size: 0.96rem;
    line-height: 1.35;
}

.department-item-price[b-rgdmanmdf5] {
    flex-shrink: 0;
    color: #8f171b;
    font-size: 1rem;
    font-weight: 800;
}

.department-card-link[b-rgdmanmdf5] {
    display: block;
    padding: 14px 20px 16px;
    color: #8f171b;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
}

    .department-card-link:hover[b-rgdmanmdf5] {
        text-decoration: underline;
    }

@media (max-width: 600px) {

    .department-card-header[b-rgdmanmdf5] {
        min-height: 58px;
        padding: 14px 16px;
        gap: 8px;
    }

        .department-card-header h3[b-rgdmanmdf5] {
            font-size: 1.15rem;
        }

    .department-starbursts[b-rgdmanmdf5] {
        gap: 3px;
        margin-top: -23px;
        margin-bottom: -23px;
    }
}
/* /Components/Home/DepartmentSpecials.razor.rz.scp.css */
/* CSS for DepartmentSpecials component */
.department-specials[b-6gfm0uarpk] {
    width: 100%;
    padding: 58px 28px 64px;
    background: #ffffff;
}

.department-specials-inner[b-6gfm0uarpk] {
    max-width: 1440px;
    margin: 0 auto;
}

.department-specials-heading[b-6gfm0uarpk] {
    margin-bottom: 34px;
    text-align: center;
}

.department-specials-eyebrow[b-6gfm0uarpk] {
    color: #8f171b;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.department-specials-heading h2[b-6gfm0uarpk] {
    margin: 7px 0 0;
    color: #292929;
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 800;
}

.department-specials-heading p[b-6gfm0uarpk] {
    margin: 10px 0 0;
    color: #6d625c;
    font-size: 0.98rem;
}

.department-specials-grid[b-6gfm0uarpk] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
}

@media (max-width: 800px) {

    .department-specials-grid[b-6gfm0uarpk] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {

    .department-specials[b-6gfm0uarpk] {
        padding: 42px 16px 48px;
    }
}
/* /Components/Home/FeaturedSpecialCard.razor.rz.scp.css */
/* CSS for FeaturedSpecialCard component */
.featured-special-card[b-jnmu1g3lxy] {
    overflow: hidden;
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.07);
    border-radius: 10px;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.06);
    transition: transform 160ms ease, box-shadow 160ms ease;
}

    .featured-special-card:hover[b-jnmu1g3lxy] {
        transform: translateY(-3px);
        box-shadow: 0 8px 22px rgba(0, 0, 0, 0.10);
    }

.featured-special-image-wrap[b-jnmu1g3lxy] {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.featured-special-image[b-jnmu1g3lxy] {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 12px;
}

.featured-special-content[b-jnmu1g3lxy] {
    padding: 18px 20px 20px;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.featured-special-name[b-jnmu1g3lxy] {
    min-height: 2.8em;
    margin: 0;
    color: #292929;
    font-size: 1.08rem;
    font-weight: 700;
    line-height: 1.35;
}

.featured-special-price-row[b-jnmu1g3lxy] {
    margin-top: 12px;
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.featured-special-price[b-jnmu1g3lxy] {
    color: #8f171b;
    font-size: clamp(2rem, 3vw, 2.7rem);
    font-weight: 900;
    line-height: 1;
}

.featured-special-unit[b-jnmu1g3lxy] {
    color: #5f5651;
    font-size: 0.92rem;
    font-weight: 600;
}

@media (max-width: 600px) {

    .featured-special-image-wrap[b-jnmu1g3lxy] {
        aspect-ratio: 16 / 10;
    }

    .featured-special-name[b-jnmu1g3lxy] {
        min-height: auto;
    }

    .featured-special-content[b-jnmu1g3lxy] {
        padding: 16px 18px 18px;
    }
}
/* /Components/Home/FeaturedSpecials.razor.rz.scp.css */
/* CSS for FeaturedSpecials component */
.featured-specials[b-3oh1ucn8lk] {
    width: 100%;
    background: #f7f2ee;
    padding: 54px 28px 60px;
}

.featured-specials-inner[b-3oh1ucn8lk] {
    max-width: 1440px;
    margin: 0 auto;
}

.featured-specials-heading[b-3oh1ucn8lk] {
    text-align: center;
    margin-bottom: 34px;
}

.featured-specials-eyebrow[b-3oh1ucn8lk] {
    color: #8f171b;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.featured-specials-heading h2[b-3oh1ucn8lk] {
    margin: 7px 0 0;
    color: #292929;
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 800;
    line-height: 1.1;
}

.featured-specials-dates[b-3oh1ucn8lk] {
    margin: 10px 0 0;
    color: #6d625c;
    font-size: 0.98rem;
}

.featured-specials-grid[b-3oh1ucn8lk] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.featured-specials-footer[b-3oh1ucn8lk] {
    margin-top: 34px;
    text-align: center;
}

.featured-specials-view-all[b-3oh1ucn8lk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 20px;
    background: #8f171b;
    color: #ffffff;
    border-radius: 5px;
    font-size: 0.95rem;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 150ms ease, transform 150ms ease;
}

    .featured-specials-view-all:hover[b-3oh1ucn8lk] {
        background: #aa1c22;
        color: #ffffff;
        transform: translateY(-1px);
    }

@media (max-width: 900px) {

    .featured-specials-grid[b-3oh1ucn8lk] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {

    .featured-specials[b-3oh1ucn8lk] {
        padding: 38px 16px 44px;
    }

    .featured-specials-heading[b-3oh1ucn8lk] {
        margin-bottom: 24px;
    }

    .featured-specials-grid[b-3oh1ucn8lk] {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .featured-specials-view-all[b-3oh1ucn8lk] {
        width: 100%;
    }
}

.weekly-ad-callout[b-3oh1ucn8lk] {
    max-width: 820px;
    margin: 24px auto 0;
    padding: 15px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    background: #fff8d9;
    border: 1px solid #e7cb4e;
    border-radius: 8px;
    text-align: left;
}

.weekly-ad-callout-text[b-3oh1ucn8lk] {
    display: flex;
    align-items: center;
    gap: 13px;
    color: #352f2c;
}

.weekly-ad-callout-icon[b-3oh1ucn8lk] {
    color: #8f171b;
}

.weekly-ad-callout-text strong[b-3oh1ucn8lk] {
    display: block;
    margin-bottom: 2px;
    font-size: 1rem;
    font-weight: 800;
}

.weekly-ad-callout-text span[b-3oh1ucn8lk] {
    display: block;
    color: #6d625c;
    font-size: 0.88rem;
}

.weekly-ad-callout-button[b-3oh1ucn8lk] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 11px 16px;
    background: #8f171b;
    color: #ffffff;
    border-radius: 5px;
    font-size: 0.9rem;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 150ms ease, transform 150ms ease;
}

    .weekly-ad-callout-button:hover[b-3oh1ucn8lk] {
        background: #aa1c22;
        color: #ffffff;
        transform: translateY(-1px);
    }

@media (max-width: 700px) {

    .weekly-ad-callout[b-3oh1ucn8lk] {
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
        padding: 16px;
    }

    .weekly-ad-callout-button[b-3oh1ucn8lk] {
        width: 100%;
    }
}
/* /Components/Home/HeroCarousel.razor.rz.scp.css */
/* CSS for HeroCarousel component */
.home-carousel[b-x1cn3idxqo] {
    position: relative;
    width: 100%;
    height: 500px;
    overflow: hidden;
    background: #26211e;
    color: #ffffff;
    outline: none;
    touch-action: pan-y;
}

.carousel-slides[b-x1cn3idxqo] {
    position: relative;
    width: 100%;
    height: 100%;
}

.carousel-slide[b-x1cn3idxqo] {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 700ms ease, visibility 700ms ease;
}

.carousel-slide-active[b-x1cn3idxqo] {
    opacity: 1;
    visibility: visible;
}

.carousel-image[b-x1cn3idxqo] {
    position: absolute;
    inset: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    transform: scale(1.01);
}

/* Darker at the left for white text, while allowing most
   of the food photography to remain unobstructed. */

.carousel-overlay[b-x1cn3idxqo] {
    position: absolute;
    inset: 0;
    background: linear-gradient( 90deg, rgba(20, 15, 12, 0.78) 0%, rgba(20, 15, 12, 0.58) 32%, rgba(20, 15, 12, 0.18) 62%, rgba(20, 15, 12, 0.04) 100%);
}

.carousel-content-container[b-x1cn3idxqo] {
    max-width: 1440px;
    height: 100%;
    margin: 0 auto;
    padding: 0 80px;
    display: flex;
    align-items: center;
}

.carousel-content[b-x1cn3idxqo] {
    width: min(620px, 55%);
}

.carousel-eyebrow[b-x1cn3idxqo] {
    margin-bottom: 10px;
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.92);
}

.carousel-title[b-x1cn3idxqo] {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.2rem, 4vw, 4rem);
    font-weight: 800;
    line-height: 1.05;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.carousel-description[b-x1cn3idxqo] {
    max-width: 540px;
    margin: 18px 0 0;
    color: rgba(255, 255, 255, 0.94);
    font-size: 1.15rem;
    line-height: 1.5;
    text-shadow: 0 1px 5px rgba(0, 0, 0, 0.45);
}

.carousel-action[b-x1cn3idxqo] {
    display: inline-flex;
    align-items: center;
    margin-top: 26px;
    padding: 12px 18px;
    background: #8f171b;
    color: #ffffff;
    border-radius: 5px;
    font-size: 0.95rem;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 150ms ease, transform 150ms ease;
}

    .carousel-action:hover[b-x1cn3idxqo] {
        background: #aa1c22;
        color: #ffffff;
        transform: translateY(-1px);
    }

/* -------------------------------------------------------
   Navigation arrows
------------------------------------------------------- */

.carousel-arrow[b-x1cn3idxqo] {
    position: absolute;
    top: 50%;
    z-index: 10;
    width: 46px;
    height: 64px;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.26);
    border: 0;
    cursor: pointer;
    transition: background-color 150ms ease;
}

    .carousel-arrow:hover[b-x1cn3idxqo] {
        background: rgba(0, 0, 0, 0.50);
    }

.carousel-arrow-previous[b-x1cn3idxqo] {
    left: 0;
}

.carousel-arrow-next[b-x1cn3idxqo] {
    right: 0;
}

.carousel-triangle[b-x1cn3idxqo] {
    width: 0;
    height: 0;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
}

.carousel-triangle-left[b-x1cn3idxqo] {
    border-right: 12px solid #ffffff;
}

.carousel-triangle-right[b-x1cn3idxqo] {
    border-left: 12px solid #ffffff;
}

/* -------------------------------------------------------
   Indicators and progress
------------------------------------------------------- */

.carousel-navigation[b-x1cn3idxqo] {
    position: absolute;
    left: 50%;
    bottom: 18px;
    z-index: 10;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.carousel-indicators[b-x1cn3idxqo] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.carousel-indicator[b-x1cn3idxqo] {
    width: 10px;
    height: 10px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.95);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.20);
    cursor: pointer;
}

.carousel-indicator-active[b-x1cn3idxqo] {
    background: #ffffff;
}

.carousel-progress[b-x1cn3idxqo] {
    width: 100px;
    height: 2px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.28);
}

.carousel-progress-fill[b-x1cn3idxqo] {
    width: 100%;
    height: 100%;
    background: #ffffff;
    transform-origin: left;
    animation: carousel-progress-b-x1cn3idxqo 7s linear forwards;
}

.carousel-paused .carousel-progress-fill[b-x1cn3idxqo] {
    animation-play-state: paused;
}

@keyframes carousel-progress-b-x1cn3idxqo {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

/* -------------------------------------------------------
   Tablet
------------------------------------------------------- */

@media (max-width: 1000px) {

    .home-carousel[b-x1cn3idxqo] {
        height: 420px;
    }

    .carousel-content-container[b-x1cn3idxqo] {
        padding: 0 64px;
    }

    .carousel-content[b-x1cn3idxqo] {
        width: 65%;
    }
}

/* -------------------------------------------------------
   Mobile
------------------------------------------------------- */

@media (max-width: 700px) {

    .home-carousel[b-x1cn3idxqo] {
        height: 350px;
    }

    .carousel-image[b-x1cn3idxqo] {
        background-position: center;
    }

    .carousel-overlay[b-x1cn3idxqo] {
        background: linear-gradient( 0deg, rgba(20, 15, 12, 0.86) 0%, rgba(20, 15, 12, 0.58) 48%, rgba(20, 15, 12, 0.12) 78%, rgba(20, 15, 12, 0.04) 100%);
    }

    .carousel-content-container[b-x1cn3idxqo] {
        padding: 28px 46px 58px;
        align-items: flex-end;
    }

    .carousel-content[b-x1cn3idxqo] {
        width: 100%;
    }

    .carousel-eyebrow[b-x1cn3idxqo] {
        margin-bottom: 6px;
        font-size: 0.72rem;
    }

    .carousel-title[b-x1cn3idxqo] {
        font-size: clamp(1.75rem, 8vw, 2.5rem);
    }

    .carousel-description[b-x1cn3idxqo] {
        margin-top: 10px;
        font-size: 0.95rem;
        line-height: 1.4;
    }

    .carousel-action[b-x1cn3idxqo] {
        margin-top: 15px;
        padding: 9px 13px;
        font-size: 0.86rem;
    }

    .carousel-arrow[b-x1cn3idxqo] {
        width: 34px;
        height: 50px;
    }

    .carousel-triangle[b-x1cn3idxqo] {
        border-top-width: 7px;
        border-bottom-width: 7px;
    }

    .carousel-triangle-left[b-x1cn3idxqo] {
        border-right-width: 9px;
    }

    .carousel-triangle-right[b-x1cn3idxqo] {
        border-left-width: 9px;
    }

    .carousel-navigation[b-x1cn3idxqo] {
        bottom: 10px;
    }
}
/* /Components/Layout/AppFooter.razor.rz.scp.css */
.roxies-footer[b-lzmchpi0wo] {
    width: 100%;
    margin-top: auto;
    background: #2b2725;
    color: #f7f3ef;
}

/* -------------------------------------------------------
   Main footer
------------------------------------------------------- */

.roxies-footer-main[b-lzmchpi0wo] {
    padding: 48px 28px 42px;
}

.roxies-footer-content[b-lzmchpi0wo] {
    max-width: 1440px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr 0.9fr;
    gap: 48px;
}

.roxies-footer-brand[b-lzmchpi0wo] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.roxies-footer-logo-link[b-lzmchpi0wo] {
    display: inline-flex;
    text-decoration: none;
}

.roxies-footer-logo[b-lzmchpi0wo] {
    width: auto;
    height: 78px;
    max-width: 250px;
    object-fit: contain;
}

.roxies-footer-tagline[b-lzmchpi0wo] {
    max-width: 280px;
    margin-top: 18px;
    color: #d5cbc3;
    font-size: 0.95rem;
    line-height: 1.6;
}

/* -------------------------------------------------------
   Footer headings
------------------------------------------------------- */

.roxies-footer-section h2[b-lzmchpi0wo] {
    margin: 0 0 18px;
    color: #ffffff;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

/* -------------------------------------------------------
   Contact
------------------------------------------------------- */

.roxies-footer-contact[b-lzmchpi0wo] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 14px;
    color: #f7f3ef;
    text-decoration: none;
    line-height: 1.5;
}

    .roxies-footer-contact:hover[b-lzmchpi0wo] {
        color: #ffffff;
        text-decoration: underline;
    }

.roxies-directions-button[b-lzmchpi0wo] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    padding: 10px 15px;
    background: #8f171b;
    color: #ffffff;
    border-radius: 5px;
    font-size: 0.92rem;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 150ms ease, transform 150ms ease;
}

    .roxies-directions-button:hover[b-lzmchpi0wo] {
        background: #a51d22;
        color: #ffffff;
        transform: translateY(-1px);
    }

/* -------------------------------------------------------
   Store hours
------------------------------------------------------- */

.roxies-hours-list[b-lzmchpi0wo] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

    .roxies-hours-list div[b-lzmchpi0wo] {
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .roxies-hours-list span[b-lzmchpi0wo] {
        color: #d5cbc3;
        font-size: 0.9rem;
    }

    .roxies-hours-list strong[b-lzmchpi0wo] {
        color: #ffffff;
        font-size: 0.95rem;
        font-weight: 600;
    }

.roxies-hours-note[b-lzmchpi0wo] {
    margin-top: 16px;
    color: #c9bdb5;
    font-size: 0.85rem;
    font-style: italic;
}

/* -------------------------------------------------------
   Footer navigation
------------------------------------------------------- */

.roxies-footer-nav[b-lzmchpi0wo] {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

    .roxies-footer-nav a[b-lzmchpi0wo] {
        color: #d5cbc3;
        text-decoration: none;
        font-size: 0.94rem;
        transition: color 150ms ease;
    }

        .roxies-footer-nav a:hover[b-lzmchpi0wo] {
            color: #ffffff;
            text-decoration: underline;
        }

/* -------------------------------------------------------
   Bottom footer
------------------------------------------------------- */

.roxies-footer-bottom[b-lzmchpi0wo] {
    background: #211e1c;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.roxies-footer-bottom-content[b-lzmchpi0wo] {
    max-width: 1440px;
    min-height: 52px;
    margin: 0 auto;
    padding: 12px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: #d8d1cc;
    font-size: 0.82rem;
}

.roxies-footer-location[b-lzmchpi0wo] {
    text-align: right;
}

.roxies-footer-credit[b-lzmchpi0wo] {
    text-align: right;
    color: #d8d1cc;
}

    .roxies-footer-credit a[b-lzmchpi0wo] {
        color: #ffffff;
        font-weight: 600;
        text-decoration: none;
    }

        .roxies-footer-credit a:hover[b-lzmchpi0wo] {
            color: #ffffff;
            text-decoration: underline;
        }



/* -------------------------------------------------------
   Tablet
------------------------------------------------------- */

@media (max-width: 1050px) {

    .roxies-footer-content[b-lzmchpi0wo] {
        grid-template-columns: 1fr 1fr;
        gap: 42px 56px;
    }
}

/* -------------------------------------------------------
   Mobile
------------------------------------------------------- */

@media (max-width: 650px) {

    .roxies-footer-main[b-lzmchpi0wo] {
        padding: 38px 20px 34px;
    }

    .roxies-footer-content[b-lzmchpi0wo] {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .roxies-footer-logo[b-lzmchpi0wo] {
        height: 66px;
    }

    .roxies-footer-tagline[b-lzmchpi0wo] {
        margin-top: 14px;
    }

    .roxies-footer-section h2[b-lzmchpi0wo] {
        margin-bottom: 14px;
    }

    .roxies-footer-bottom-content[b-lzmchpi0wo] {
        padding: 16px 20px;
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
        color: #d8d1cc;
        font-size: 0.82rem;
    }

    .roxies-footer-location[b-lzmchpi0wo] {
        text-align: left;
    }

    .roxies-footer-credit[b-lzmchpi0wo] {
        text-align: left;
    }
}
/* /Components/Layout/AppHeader.razor.rz.scp.css */
.roxies-header[b-2vc4mau194] {
    width: 100%;
    position: relative;
    z-index: 1000;
    background: #ffffff;
}

/* -------------------------------------------------------
   Utility / location bar
------------------------------------------------------- */

.roxies-utility-bar[b-2vc4mau194] {
    background: #8f171b;
    color: #ffffff;
    font-size: 0.9rem;
}

.roxies-utility-content[b-2vc4mau194] {
    max-width: 1440px;
    min-height: 40px;
    margin: 0 auto;
    padding: 0 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.roxies-utility-right[b-2vc4mau194] {
    display: flex;
    align-items: center;
    gap: 28px;
}

.roxies-utility-link[b-2vc4mau194],
.roxies-hours[b-2vc4mau194] {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #ffffff;
    text-decoration: none;
    white-space: nowrap;
}

    .roxies-utility-link:hover[b-2vc4mau194] {
        color: #ffffff;
        text-decoration: underline;
    }

.roxies-location[b-2vc4mau194] {
    font-weight: 600;
}

/* -------------------------------------------------------
   Main navigation
------------------------------------------------------- */

.roxies-main-header[b-2vc4mau194] {
    background: #ffffff;
    border-bottom: 1px solid rgba(0, 0, 0, 0.09);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.roxies-main-content[b-2vc4mau194] {
    max-width: 1440px;
    min-height: 90px;
    margin: 0 auto;
    padding: 10px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.roxies-brand[b-2vc4mau194] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    text-decoration: none;
}

.roxies-logo[b-2vc4mau194] {
    display: block;
    width: auto;
    height: 70px;
    max-width: 240px;
    object-fit: contain;
}

.roxies-desktop-nav[b-2vc4mau194] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
}

.roxies-nav-link[b-2vc4mau194] {
    position: relative;
    padding: 11px 13px;
    color: #292929;
    text-decoration: none;
    font-size: 0.98rem;
    font-weight: 600;
    border-radius: 5px;
    transition: background-color 150ms ease, color 150ms ease;
}

    .roxies-nav-link:hover[b-2vc4mau194] {
        color: #8f171b;
        background: #f7f2ee;
    }

.roxies-specials-link[b-2vc4mau194] {
    color: #8f171b;
    font-weight: 700;
}

/* -------------------------------------------------------
   Mobile menu
------------------------------------------------------- */

.roxies-mobile-menu-button[b-2vc4mau194] {
    display: none;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    color: #8f171b;
    background: transparent;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
}

    .roxies-mobile-menu-button:hover[b-2vc4mau194] {
        background: #f7f2ee;
    }

.roxies-mobile-nav[b-2vc4mau194] {
    display: none;
}

/* -------------------------------------------------------
   Tablet
------------------------------------------------------- */

@media (max-width: 1100px) {

    .roxies-main-content[b-2vc4mau194] {
        min-height: 78px;
    }

    .roxies-logo[b-2vc4mau194] {
        height: 58px;
    }

    .roxies-desktop-nav[b-2vc4mau194] {
        display: none;
    }

    .roxies-mobile-menu-button[b-2vc4mau194] {
        display: flex;
    }

    .roxies-mobile-nav[b-2vc4mau194] {
        display: flex;
        flex-direction: column;
        background: #ffffff;
        border-bottom: 1px solid rgba(0, 0, 0, 0.12);
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.10);
    }

    .roxies-mobile-nav-link[b-2vc4mau194] {
        padding: 14px 28px;
        color: #292929;
        text-decoration: none;
        font-size: 1rem;
        font-weight: 600;
        border-bottom: 1px solid #eeeeee;
    }

        .roxies-mobile-nav-link:hover[b-2vc4mau194] {
            color: #8f171b;
            background: #f7f2ee;
        }

    .roxies-mobile-specials-link[b-2vc4mau194] {
        color: #8f171b;
        font-weight: 700;
    }

    .roxies-mobile-contact[b-2vc4mau194] {
        padding: 18px 28px 22px;
        display: flex;
        flex-direction: column;
        gap: 13px;
        background: #f7f2ee;
    }

        .roxies-mobile-contact a[b-2vc4mau194],
        .roxies-mobile-contact div[b-2vc4mau194] {
            display: flex;
            align-items: flex-start;
            gap: 8px;
            color: #333333;
            text-decoration: none;
            line-height: 1.4;
        }

        .roxies-mobile-contact a[b-2vc4mau194] {
            font-weight: 600;
        }
}

/* -------------------------------------------------------
   Phone
------------------------------------------------------- */

@media (max-width: 700px) {

    .roxies-utility-content[b-2vc4mau194] {
        min-height: 38px;
        padding: 0 16px;
        justify-content: space-between;
        gap: 12px;
    }

    .roxies-location span[b-2vc4mau194] {
        display: none;
    }

    .roxies-location[b-2vc4mau194]::after {
        content: "Quincy, MA";
    }

    .roxies-utility-right[b-2vc4mau194] {
        gap: 12px;
    }

    .roxies-hours[b-2vc4mau194] {
        display: none;
    }

    .roxies-utility-link[b-2vc4mau194] {
        font-size: 0.85rem;
    }

    .roxies-main-content[b-2vc4mau194] {
        min-height: 72px;
        padding: 8px 16px;
    }

    .roxies-logo[b-2vc4mau194] {
        height: 54px;
        max-width: 190px;
    }

    .roxies-mobile-nav-link[b-2vc4mau194] {
        padding-left: 20px;
        padding-right: 20px;
    }

    .roxies-mobile-contact[b-2vc4mau194] {
        padding-left: 20px;
        padding-right: 20px;
    }
}


.roxies-weekly-ad-button[b-2vc4mau194] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-left: 8px;
    padding: 11px 16px;
    background: #8f171b;
    color: #ffffff;
    border-radius: 5px;
    font-size: 0.95rem;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.14);
    transition: background-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}

    .roxies-weekly-ad-button:hover[b-2vc4mau194] {
        background: #aa1c22;
        color: #ffffff;
        transform: translateY(-1px);
        box-shadow: 0 4px 9px rgba(0, 0, 0, 0.18);
    }

.roxies-mobile-pdf-link[b-2vc4mau194] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 14px 20px;
    padding: 13px 16px;
    background: #8f171b;
    color: #ffffff;
    border-radius: 5px;
    font-weight: 800;
    text-decoration: none;
}

    .roxies-mobile-pdf-link:hover[b-2vc4mau194] {
        background: #aa1c22;
        color: #ffffff;
    }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-3kauy937pt] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-3kauy937pt] {
    flex: 1;
}

.sidebar[b-3kauy937pt] {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row[b-3kauy937pt] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-3kauy937pt]  a, .top-row[b-3kauy937pt]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-3kauy937pt]  a:hover, .top-row[b-3kauy937pt]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-3kauy937pt]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-3kauy937pt] {
        justify-content: space-between;
    }

    .top-row[b-3kauy937pt]  a, .top-row[b-3kauy937pt]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-3kauy937pt] {
        flex-direction: row;
    }

    .sidebar[b-3kauy937pt] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-3kauy937pt] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-3kauy937pt]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-3kauy937pt], article[b-3kauy937pt] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-3kauy937pt] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-3kauy937pt] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-fuyewf8lbl],
.components-reconnect-repeated-attempt-visible[b-fuyewf8lbl],
.components-reconnect-failed-visible[b-fuyewf8lbl],
.components-pause-visible[b-fuyewf8lbl],
.components-resume-failed-visible[b-fuyewf8lbl],
.components-rejoining-animation[b-fuyewf8lbl] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-fuyewf8lbl],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-fuyewf8lbl],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-fuyewf8lbl],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-fuyewf8lbl],
#components-reconnect-modal.components-reconnect-retrying[b-fuyewf8lbl],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-fuyewf8lbl],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-fuyewf8lbl],
#components-reconnect-modal.components-reconnect-failed[b-fuyewf8lbl],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-fuyewf8lbl] {
    display: block;
}


#components-reconnect-modal[b-fuyewf8lbl] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-fuyewf8lbl 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-fuyewf8lbl 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-fuyewf8lbl 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-fuyewf8lbl]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-fuyewf8lbl 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-fuyewf8lbl {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-fuyewf8lbl {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-fuyewf8lbl {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-fuyewf8lbl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-fuyewf8lbl] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-fuyewf8lbl] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-fuyewf8lbl] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-fuyewf8lbl] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-fuyewf8lbl] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-fuyewf8lbl] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-fuyewf8lbl 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-fuyewf8lbl] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-fuyewf8lbl {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Layout/StoreAlert.razor.rz.scp.css */
.store-alert[b-ph75aog5lt] {
    width: 100%;
    background: #f5ead7;
    border-bottom: 1px solid #dec9a8;
    color: #3f3025;
}

.store-alert-content[b-ph75aog5lt] {
    max-width: 1440px;
    margin: 0 auto;
    padding: 12px 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    text-align: center;
}

.store-alert-icon[b-ph75aog5lt] {
    flex-shrink: 0;
    font-size: 2rem;
    line-height: 1;
}

.store-alert-message[b-ph75aog5lt] {
    line-height: 1.35;
}

.store-alert-title[b-ph75aog5lt] {
    font-size: 1rem;
    font-weight: 700;
}

.store-alert-text[b-ph75aog5lt] {
    margin-top: 2px;
    font-size: 0.92rem;
}

@media (max-width: 700px) {

    .store-alert-content[b-ph75aog5lt] {
        padding: 10px 16px;
        gap: 10px;
        align-items: flex-start;
        text-align: left;
    }

    .store-alert-icon[b-ph75aog5lt] {
        font-size: 1.7rem;
    }

    .store-alert-title[b-ph75aog5lt] {
        font-size: 0.94rem;
    }

    .store-alert-text[b-ph75aog5lt] {
        font-size: 0.85rem;
    }
}
/* /Components/Pages/Home.razor.rz.scp.css */
.home-hero[b-sxv2ue0j8m] {
    width: 100%;
    min-height: 200px;
    background-image: url('/images/site/home/mountain-lake.jpg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    overflow: hidden;
}

.home-hero-overlay[b-sxv2ue0j8m] {
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient( rgba(15, 35, 60, 0.52), rgba(15, 35, 60, 0.38) );
}

.home-hero-container[b-sxv2ue0j8m] {
    width: 100%;
    display: flex;
    justify-content: center;
}

.home-hero-content[b-sxv2ue0j8m] {
    width: 100%;
    max-width: 950px;
    padding: 80px 32px;
    text-align: center;
}

.home-hero-title[b-sxv2ue0j8m] {
    margin: 0 0 24px;
    color: #ffffff;
    font-size: clamp(2.75rem, 6vw, 4.5rem);
    font-weight: 600;
    line-height: 1.1;
    text-shadow: 0 3px 12px rgba(0, 0, 0, 0.6);
}

.home-hero-description[b-sxv2ue0j8m] {
    max-width: 900px;
    margin: 0 auto;
    color: #ffffff;
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.75;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.65);
}

@media (max-width: 600px) {
    .home-hero[b-sxv2ue0j8m],
    .home-hero-overlay[b-sxv2ue0j8m] {
        min-height: 620px;
    }

    .home-hero-content[b-sxv2ue0j8m] {
        padding: 56px 22px;
    }

    .home-hero-title[b-sxv2ue0j8m] {
        font-size: 2.4rem;
    }

    .home-hero-description[b-sxv2ue0j8m] {
        font-size: 1rem;
        line-height: 1.6;
    }
}
/* /Components/Shared/HomeCarousel.razor.rz.scp.css */
.home-carousel[b-ccopc5rbqz] {
    --carousel-duration: 7s;
    position: relative;
    width: 100%;
    height: 700px;
    overflow: hidden;
    background-color: #182b3c;
    outline: none;
    touch-action: pan-y;
}

.carousel-slides[b-ccopc5rbqz] {
    position: relative;
    width: 100%;
    height: 100%;
}

/*
    Slides
*/

.carousel-slide[b-ccopc5rbqz] {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity 900ms ease-in-out, visibility 900ms ease-in-out;
}

.carousel-slide-active[b-ccopc5rbqz] {
    z-index: 1;
    opacity: 1;
    visibility: visible;
}

/*
    Image layer and Ken Burns effect

    The image is a separate layer so it can zoom without
    enlarging the text or controls.
*/

.carousel-image[b-ccopc5rbqz] {
    position: absolute;
    inset: -2%;
    width: 104%;
    height: 104%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    transform: scale(1);
    transform-origin: center center;
    will-change: transform;
}

.carousel-slide-active .carousel-image[b-ccopc5rbqz] {
    animation: carousel-ken-burns-b-ccopc5rbqz var(--carousel-duration) linear forwards;
}

.carousel-paused .carousel-slide-active .carousel-image[b-ccopc5rbqz] {
    animation-play-state: paused;
}

@keyframes carousel-ken-burns-b-ccopc5rbqz {
    from {
        transform: scale(1);
    }

    to {
        transform: scale(1.075);
    }
}

/*
    Overlay
*/

.carousel-overlay[b-ccopc5rbqz] {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient( rgba(15, 35, 60, 0.52), rgba(15, 35, 60, 0.38) );
}

.carousel-content-container[b-ccopc5rbqz] {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding-inline: 110px;
    box-sizing: border-box;
}

.carousel-content[b-ccopc5rbqz] {
    width: 100%;
    max-width: 950px;
    margin: 0 auto;
    padding-block: 80px;
    text-align: center;
    box-sizing: border-box;
}

/*
    Slide-in text

    The title enters first, followed by the description.
*/

.carousel-title[b-ccopc5rbqz],
.carousel-description[b-ccopc5rbqz] {
    opacity: 0;
    will-change: transform, opacity;
}

.carousel-title[b-ccopc5rbqz] {
    margin: 0 0 24px;
    color: #ffffff;
    font-family: "Raleway", Arial, sans-serif;
    /*
        Approximately 32px on smaller screens,
        growing fluidly to 48px on wide screens.
    */
    font-size: clamp(2rem, 3.2vw, 3rem);
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: normal;
    transform: translateY(36px);
    text-shadow: 0 3px 12px rgba(0, 0, 0, 0.65);
}

.carousel-description[b-ccopc5rbqz] {
    max-width: 900px;
    margin: 0 auto;
    color: #ffffff;
    font-family: "Raleway", Arial, sans-serif;
    /*
        Approximately 16px on phones,
        growing fluidly to 22px.
    */
    font-size: clamp(1rem, 1.5vw, 1.375rem);
    font-weight: 400;
    line-height: 1.75;
    transform: translateY(28px);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
}

.carousel-slide-active .carousel-title[b-ccopc5rbqz] {
    animation: carousel-title-enter-b-ccopc5rbqz 750ms cubic-bezier(0.22, 1, 0.36, 1) 180ms forwards;
}

.carousel-slide-active .carousel-description[b-ccopc5rbqz] {
    animation: carousel-description-enter-b-ccopc5rbqz 750ms cubic-bezier(0.22, 1, 0.36, 1) 360ms forwards;
}

.carousel-paused .carousel-slide-active .carousel-title[b-ccopc5rbqz],
.carousel-paused .carousel-slide-active .carousel-description[b-ccopc5rbqz] {
    animation-play-state: paused;
}

@keyframes carousel-title-enter-b-ccopc5rbqz {
    from {
        opacity: 0;
        transform: translateY(36px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes carousel-description-enter-b-ccopc5rbqz {
    from {
        opacity: 0;
        transform: translateY(28px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/*
    Arrow buttons
*/

.carousel-arrow[b-ccopc5rbqz] {
    position: absolute;
    top: 50%;
    z-index: 10;
    width: 76px;
    height: 120px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 0;
    background: transparent;
    cursor: pointer;
    opacity: 0.66;
    transform: translateY(-50%);
    transition: opacity 180ms ease, transform 180ms ease;
}

    .carousel-arrow:hover[b-ccopc5rbqz] {
        opacity: 1;
    }

    .carousel-arrow:active[b-ccopc5rbqz] {
        transform: translateY(-50%) scale(0.92);
    }

    .carousel-arrow:focus-visible[b-ccopc5rbqz] {
        opacity: 1;
        outline: 2px solid #ffffff;
        outline-offset: -6px;
    }

.carousel-arrow-previous[b-ccopc5rbqz] {
    left: 12px;
}

.carousel-arrow-next[b-ccopc5rbqz] {
    right: 12px;
}

/*
    Filled white triangles
*/

.carousel-triangle[b-ccopc5rbqz] {
    display: block;
    width: 0;
    height: 0;
    filter: drop-shadow(0 3px 5px rgba(0, 0, 0, 0.72));
    transition: transform 180ms ease;
}

.carousel-triangle-left[b-ccopc5rbqz] {
    border-top: 22px solid transparent;
    border-bottom: 22px solid transparent;
    border-right: 32px solid #ffffff;
}

.carousel-triangle-right[b-ccopc5rbqz] {
    border-top: 22px solid transparent;
    border-bottom: 22px solid transparent;
    border-left: 32px solid #ffffff;
}

.carousel-arrow:hover .carousel-triangle[b-ccopc5rbqz] {
    transform: scale(1.12);
}

/*
    Bottom navigation
*/

.carousel-navigation[b-ccopc5rbqz] {
    position: absolute;
    left: 50%;
    bottom: 24px;
    z-index: 10;
    width: min(320px, calc(100% - 120px));
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 13px;
    transform: translateX(-50%);
}

.carousel-indicators[b-ccopc5rbqz] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.carousel-indicator[b-ccopc5rbqz] {
    width: 11px;
    height: 11px;
    padding: 0;
    border: 2px solid #ffffff;
    border-radius: 50%;
    background-color: transparent;
    cursor: pointer;
    opacity: 0.72;
    transition: background-color 180ms ease, transform 180ms ease, opacity 180ms ease;
}

    .carousel-indicator:hover[b-ccopc5rbqz] {
        transform: scale(1.25);
        opacity: 1;
    }

.carousel-indicator-active[b-ccopc5rbqz] {
    background-color: #ffffff;
    opacity: 1;
}

.carousel-indicator:focus-visible[b-ccopc5rbqz] {
    outline: 2px solid #ffffff;
    outline-offset: 4px;
}

/*
    Seven-second progress indicator
*/

.carousel-progress[b-ccopc5rbqz] {
    width: 100%;
    height: 3px;
    overflow: hidden;
    background-color: rgba(255, 255, 255, 0.32);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}

.carousel-progress-fill[b-ccopc5rbqz] {
    width: 100%;
    height: 100%;
    background-color: #ffffff;
    transform: scaleX(0);
    transform-origin: left center;
    animation: carousel-progress-b-ccopc5rbqz var(--carousel-duration) linear forwards;
}

.carousel-paused .carousel-progress-fill[b-ccopc5rbqz] {
    animation-play-state: paused;
}

@keyframes carousel-progress-b-ccopc5rbqz {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

/*
    Tablet
*/

@media (max-width: 960px) {
    .home-carousel[b-ccopc5rbqz] {
        height: 620px;
    }

    .carousel-content-container[b-ccopc5rbqz] {
        padding-inline: 90px;
    }

    .carousel-content[b-ccopc5rbqz] {
        max-width: 760px;
        padding-block: 64px;
    }

    .carousel-arrow[b-ccopc5rbqz] {
        width: 62px;
    }

    .carousel-triangle-left[b-ccopc5rbqz] {
        border-top-width: 19px;
        border-bottom-width: 19px;
        border-right-width: 28px;
    }

    .carousel-triangle-right[b-ccopc5rbqz] {
        border-top-width: 19px;
        border-bottom-width: 19px;
        border-left-width: 28px;
    }
}

/*
    Phone
*/

@media (max-width: 600px) {
    .home-carousel[b-ccopc5rbqz] {
        height: 580px;
    }

    .carousel-overlay[b-ccopc5rbqz] {
        align-items: flex-end;
        background: linear-gradient( 0deg, rgba(8, 24, 38, 0.94) 0%, rgba(8, 24, 38, 0.68) 60%, rgba(8, 24, 38, 0.16) 100% );
    }

    .carousel-content-container[b-ccopc5rbqz] {
        padding-inline: 58px;
    }

    .carousel-content[b-ccopc5rbqz] {
        padding-block: 56px 108px;
    }

    .carousel-title[b-ccopc5rbqz] {
        margin-bottom: 18px;
        font-size: clamp(1.8rem, 8vw, 2.25rem);
        line-height: 1.15;
    }

    .carousel-description[b-ccopc5rbqz] {
        font-size: clamp(0.95rem, 4vw, 1.05rem);
        line-height: 1.6;
    }

    .carousel-arrow[b-ccopc5rbqz] {
        width: 46px;
        height: 90px;
    }

    .carousel-arrow-previous[b-ccopc5rbqz] {
        left: 0;
    }

    .carousel-arrow-next[b-ccopc5rbqz] {
        right: 0;
    }

    .carousel-triangle-left[b-ccopc5rbqz] {
        border-top-width: 15px;
        border-bottom-width: 15px;
        border-right-width: 22px;
    }

    .carousel-triangle-right[b-ccopc5rbqz] {
        border-top-width: 15px;
        border-bottom-width: 15px;
        border-left-width: 22px;
    }

    .carousel-navigation[b-ccopc5rbqz] {
        bottom: 22px;
        width: min(240px, calc(100% - 116px));
    }
}

/*
    Reduced motion

    The component continues to work, but animated movement,
    zooming, and progress motion are removed.
*/

@media (prefers-reduced-motion: reduce) {
    .carousel-slide[b-ccopc5rbqz],
    .carousel-title[b-ccopc5rbqz],
    .carousel-description[b-ccopc5rbqz],
    .carousel-arrow[b-ccopc5rbqz],
    .carousel-triangle[b-ccopc5rbqz],
    .carousel-indicator[b-ccopc5rbqz],
    .carousel-progress-fill[b-ccopc5rbqz] {
        animation: none;
        transition: none;
    }

    .carousel-slide-active .carousel-title[b-ccopc5rbqz],
    .carousel-slide-active .carousel-description[b-ccopc5rbqz] {
        opacity: 1;
        transform: none;
    }

    .carousel-slide-active .carousel-image[b-ccopc5rbqz] {
        animation: none;
        transform: scale(1);
    }

    .carousel-progress-fill[b-ccopc5rbqz] {
        transform: scaleX(1);
    }
}

/*

Main tuning values

The image zoom strength is here:

to {
    transform: scale(1.075);
}

For a more subtle zoom:

transform: scale(1.04);

For a more noticeable zoom:

transform: scale(1.1);

The title and description delays are here:

180ms
360ms

The progress animation and C# timer both use seven seconds:

--carousel-duration: 7s;
TimeSpan.FromSeconds(7);

Those values should remain synchronized.

*/
