.festivities-with-hiperall-v1 {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    line-height: 0;
    overflow: hidden;
    position: relative;
    z-index: 20;
}
.festivities-with-hiperall-v1__link,
.festivities-with-hiperall-v1__picture {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    line-height: 0;
}
.festivities-with-hiperall-v1__image {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: var(--sb-desktop-height, 120px);
    object-fit: cover;
    object-position: center;
    margin: 0;
    padding: 0;
}

/* Fixed decorative objects on the viewport sides, separate from falling PNGs. */
.festivities-with-hiperall-v1__side-objects {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    pointer-events: none;
    z-index: 9997;
    contain: layout paint;
}
.festivities-with-hiperall-v1__side-object {
    position: absolute;
    display: block;
    height: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    transform: translateY(-50%);
    pointer-events: none;
    user-select: none;
    object-fit: contain;
}
@media (max-width: 767px) {
    .festivities-with-hiperall-v1__image {
        max-height: var(--sb-mobile-height, 90px);
    }
    .festivities-with-hiperall-v1__side-objects--hide-mobile {
        display: none !important;
    }
}

/* Site-wide falling PNG layer. It never blocks clicks or scrolling. */
.festivities-with-hiperall-v1__particles {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    pointer-events: none;
    z-index: 9998;
    contain: layout paint;
}
.festivities-with-hiperall-v1__particle {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: var(--particle-size, 30px);
    height: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    opacity: var(--particle-opacity, 0.85);
    pointer-events: none;
    user-select: none;
    animation: festivities-hiperall-png-fall var(--particle-duration, 12s) linear var(--particle-delay, 0s) infinite;
}
@keyframes festivities-hiperall-png-fall {
    from {
        transform: translate3d(0, -16vh, 0) rotate(var(--particle-rotation-start, 0deg));
    }
    to {
        transform: translate3d(var(--particle-drift, 40px), 116vh, 0) rotate(var(--particle-rotation-end, 360deg));
    }
}
@media (prefers-reduced-motion: reduce) {
    .festivities-with-hiperall-v1__particles {
        display: none !important;
    }
}

/* Promotional popup: independently configured from the banner and decorative effects. */
.fh-popup-overlay,
.fh-popup-overlay * {
    box-sizing: border-box;
}
.fh-popup-overlay {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 20px;
    overflow-y: auto;
    background: rgba(0, 0, 0, .66);
    -webkit-overflow-scrolling: touch;
}
.fh-popup-overlay[hidden] {
    display: none !important;
}
body.fh-popup-open {
    overflow: hidden;
}
.fh-popup-dialog {
    position: relative;
    flex: 0 1 auto;
    width: min(580px, 100%);
    max-width: 100%;
    max-height: calc(100vh - 40px);
    margin: auto;
    overflow: auto;
    border: 0;
    border-radius: 16px;
    background: #fff;
    color: #202820;
    box-shadow: 0 18px 65px rgba(0, 0, 0, .32);
    text-align: center;
}
.fh-popup-close {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 50%;
    background: rgba(255, 255, 255, .96);
    color: #222;
    font: 30px/1 Arial, sans-serif;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
}
.fh-popup-close:hover,
.fh-popup-close:focus-visible {
    background: #f1f1f1;
    color: #000;
}
.fh-popup-content--image {
    padding: 0;
    line-height: 0;
}
.fh-popup-image {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: calc(100vh - 40px);
    margin: 0 auto;
    object-fit: contain;
    border: 0;
    border-radius: 16px;
}
.fh-popup-content--text {
    padding: 42px 32px 32px;
}
.fh-popup-discount {
    display: inline-block;
    margin: 0 0 14px;
    padding: 9px 16px;
    border-radius: 999px;
    background: #0b6b35;
    color: #fff;
    font-size: clamp(18px, 3vw, 28px);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .02em;
}
.fh-popup-title {
    margin: 0 0 12px;
    color: #18251b;
    font-size: clamp(23px, 4vw, 34px);
    line-height: 1.2;
}
.fh-popup-message {
    margin: 0;
    color: #444c46;
    font-size: 16px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}
.fh-popup-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin-top: 22px;
    padding: 11px 22px;
    border-radius: 7px;
    background: #0b6b35;
    color: #fff !important;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
}
.fh-popup-cta:hover,
.fh-popup-cta:focus-visible {
    background: #084d27;
    color: #fff !important;
}
@media (max-width: 600px) {
    .fh-popup-overlay { padding: 14px; }
    .fh-popup-dialog { width: 100%; max-height: calc(100vh - 28px); border-radius: 12px; }
    .fh-popup-content--text { padding: 48px 21px 24px; }
    .fh-popup-image { max-height: calc(100vh - 28px); border-radius: 12px; }
    .fh-popup-close { top: 7px; right: 7px; width: 34px; height: 34px; font-size: 27px; }
}

/* One animated GIF crossing the viewport at randomized intervals. */
.festivities-with-hiperall-v1__flying-gif {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    pointer-events: none;
    z-index: 9996;
    contain: layout paint;
}
.festivities-with-hiperall-v1__flying-gif-image {
    position: absolute;
    top: 0;
    left: 0;
    display: none;
    width: var(--flying-gif-size, 100px);
    max-width: none;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    transform: translate3d(-150%, -50%, 0);
    pointer-events: none;
    user-select: none;
    object-fit: contain;
}
@media (prefers-reduced-motion: reduce) {
    .festivities-with-hiperall-v1__flying-gif { display: none !important; }
}

/* Optional canvas fireworks layer. It is purely decorative and never intercepts input. */
.festivities-with-hiperall-v1__fireworks {
    position: fixed;
    inset: 0;
    z-index: 9996;
    display: block;
    width: 100vw;
    height: 100vh;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    pointer-events: none;
    user-select: none;
    contain: strict;
}
@media (prefers-reduced-motion: reduce) {
    .festivities-with-hiperall-v1__fireworks { display: none !important; }
}

/* Seasonal photo frames: decorate existing photo wrappers without editing source files. */
.fwh-seasonal-photo-frame {
    position: relative !important;
    isolation: isolate;
    box-sizing: border-box !important;
    outline-width: var(--fwh-photo-frame-border-width, 4px) !important;
    outline-style: solid !important;
    outline-offset: 1px !important;
}
.fwh-seasonal-photo-frame__decor {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    z-index: 20 !important;
    box-sizing: border-box !important;
    border: var(--fwh-photo-frame-border-width, 4px) solid currentColor !important;
    border-radius: inherit !important;
    pointer-events: none !important;
    user-select: none !important;
    overflow: hidden !important;
    line-height: 1 !important;
}
.fwh-seasonal-photo-frame__corner,
.fwh-seasonal-photo-frame__edge {
    position: absolute !important;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI Emoji", sans-serif !important;
    font-size: var(--fwh-photo-frame-ornament-size, 22px) !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-align: center !important;
    white-space: nowrap !important;
    transform: none !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.5), 0 0 3px rgba(255,255,255,.8) !important;
    pointer-events: none !important;
}
.fwh-seasonal-photo-frame__corner--tl { top: 0; left: 1px; }
.fwh-seasonal-photo-frame__corner--tr { top: 0; right: 1px; }
.fwh-seasonal-photo-frame__corner--bl { bottom: 0; left: 1px; }
.fwh-seasonal-photo-frame__corner--br { bottom: 0; right: 1px; }
.fwh-seasonal-photo-frame__edge { left: 50%; max-width: 76%; overflow: hidden; font-size: calc(var(--fwh-photo-frame-ornament-size, 22px) * .65) !important; transform: translateX(-50%) !important; }
.fwh-seasonal-photo-frame__edge--top { top: 1px; }
.fwh-seasonal-photo-frame__edge--bottom { bottom: 1px; }
.fwh-seasonal-photo-frame--christmas { outline-color: #176b3a !important; box-shadow: 0 0 0 1px #c6a14a, inset 0 0 0 1px rgba(255,255,255,.35) !important; }
.fwh-seasonal-photo-frame--christmas > .fwh-seasonal-photo-frame__decor { color: #e8f6eb !important; border-color: #bb2637 !important; box-shadow: inset 0 0 0 2px #176b3a !important; }
.fwh-seasonal-photo-frame--thanksgiving { outline-color: #b45309 !important; box-shadow: 0 0 0 2px #eab308 !important; }
.fwh-seasonal-photo-frame--thanksgiving > .fwh-seasonal-photo-frame__decor { color: #ffcf70 !important; border-color: #b45309 !important; box-shadow: inset 0 0 0 2px #f4a259 !important; }
.fwh-seasonal-photo-frame--july4 { outline-color: #c52436 !important; box-shadow: 0 0 0 2px #244a9b !important; }
.fwh-seasonal-photo-frame--july4 > .fwh-seasonal-photo-frame__decor { color: #fff !important; border-color: #244a9b !important; box-shadow: inset 0 0 0 2px #c52436 !important; }
.fwh-seasonal-photo-frame--halloween { outline-color: #e87518 !important; box-shadow: 0 0 0 2px #542477 !important; }
.fwh-seasonal-photo-frame--halloween > .fwh-seasonal-photo-frame__decor { color: #ffba5a !important; border-color: #e87518 !important; box-shadow: inset 0 0 0 2px #542477 !important; }
.fwh-seasonal-photo-frame--valentines { outline-color: #e11d48 !important; box-shadow: 0 0 0 2px #f9a8d4 !important; }
.fwh-seasonal-photo-frame--valentines > .fwh-seasonal-photo-frame__decor { color: #ffdfeb !important; border-color: #e11d48 !important; box-shadow: inset 0 0 0 2px #f9a8d4 !important; }
.fwh-seasonal-photo-frame--newyear { outline-color: #b58b2a !important; box-shadow: 0 0 0 2px #1f2937 !important; }
.fwh-seasonal-photo-frame--newyear > .fwh-seasonal-photo-frame__decor { color: #ffe9a6 !important; border-color: #b58b2a !important; box-shadow: inset 0 0 0 2px #f5d56a !important; }
.fwh-seasonal-photo-frame--custom { outline-color: #176b3a !important; box-shadow: 0 0 0 1px #d4af37 !important; }
.fwh-seasonal-photo-frame--custom > .fwh-seasonal-photo-frame__decor { color: #f8fafc !important; border-color: #176b3a !important; box-shadow: inset 0 0 0 2px #d4af37 !important; }
/* Standalone IMG elements get a tasteful themed outline if no photo wrapper exists. */
.fwh-seasonal-photo-image { box-sizing: border-box !important; }
.fwh-seasonal-photo-image.fwh-seasonal-photo-frame--christmas { outline: 3px solid #176b3a !important; outline-offset: 2px; box-shadow: 0 0 0 5px #c6a14a !important; }
.fwh-seasonal-photo-image.fwh-seasonal-photo-frame--thanksgiving { outline: 3px solid #b45309 !important; outline-offset: 2px; box-shadow: 0 0 0 5px #eab308 !important; }
.fwh-seasonal-photo-image.fwh-seasonal-photo-frame--july4 { outline: 3px solid #c52436 !important; outline-offset: 2px; box-shadow: 0 0 0 5px #244a9b !important; }
.fwh-seasonal-photo-image.fwh-seasonal-photo-frame--halloween { outline: 3px solid #e87518 !important; outline-offset: 2px; box-shadow: 0 0 0 5px #542477 !important; }
.fwh-seasonal-photo-image.fwh-seasonal-photo-frame--valentines { outline: 3px solid #e11d48 !important; outline-offset: 2px; box-shadow: 0 0 0 5px #f9a8d4 !important; }
.fwh-seasonal-photo-image.fwh-seasonal-photo-frame--newyear { outline: 3px solid #b58b2a !important; outline-offset: 2px; box-shadow: 0 0 0 5px #1f2937 !important; }
.fwh-seasonal-photo-image.fwh-seasonal-photo-frame--custom { outline: 3px solid #176b3a !important; outline-offset: 2px; box-shadow: 0 0 0 5px #d4af37 !important; }
@media (max-width: 767px) {
    .fwh-seasonal-photo-frame__corner { font-size: calc(var(--fwh-photo-frame-ornament-size, 22px) * .72) !important; }
    .fwh-seasonal-photo-frame__edge { font-size: calc(var(--fwh-photo-frame-ornament-size, 22px) * .5) !important; }
}


/* Seasonal photo-frame design variants: three distinct designs per supported holiday. */
.fwh-seasonal-photo-frame.fwh-seasonal-photo-design--christmas_garland,
.fwh-seasonal-photo-image.fwh-seasonal-photo-design--christmas_garland { outline-color:#176b3a !important; box-shadow:0 0 0 2px #c6a14a,0 0 0 5px #176b3a !important; }
.fwh-seasonal-photo-design--christmas_garland > .fwh-seasonal-photo-frame__decor { border-color:#bb2637 !important; box-shadow:inset 0 0 0 2px #176b3a !important; }
.fwh-seasonal-photo-frame.fwh-seasonal-photo-design--christmas_snow,
.fwh-seasonal-photo-image.fwh-seasonal-photo-design--christmas_snow { outline-color:#a8dff5 !important; box-shadow:0 0 0 2px #fff,0 0 0 5px #7fc7e6 !important; }
.fwh-seasonal-photo-design--christmas_snow > .fwh-seasonal-photo-frame__decor { color:#dff7ff !important; border-color:#b9e9fb !important; box-shadow:inset 0 0 0 2px #e8f9ff !important; }
.fwh-seasonal-photo-frame.fwh-seasonal-photo-design--christmas_candy_cane,
.fwh-seasonal-photo-image.fwh-seasonal-photo-design--christmas_candy_cane { outline-color:#c52436 !important; box-shadow:0 0 0 2px #fff,0 0 0 5px #c52436 !important; }
.fwh-seasonal-photo-design--christmas_candy_cane > .fwh-seasonal-photo-frame__decor { border-color:#fff !important; box-shadow:inset 0 0 0 2px #c52436,0 0 0 1px #fff !important; }
.fwh-seasonal-photo-frame.fwh-seasonal-photo-design--thanksgiving_leaves,
.fwh-seasonal-photo-image.fwh-seasonal-photo-design--thanksgiving_leaves { outline-color:#b45309 !important; box-shadow:0 0 0 2px #eab308,0 0 0 5px #b45309 !important; }
.fwh-seasonal-photo-design--thanksgiving_leaves > .fwh-seasonal-photo-frame__decor { border-color:#d97706 !important; box-shadow:inset 0 0 0 2px #f4c17b !important; }
.fwh-seasonal-photo-frame.fwh-seasonal-photo-design--thanksgiving_pumpkins,
.fwh-seasonal-photo-image.fwh-seasonal-photo-design--thanksgiving_pumpkins { outline-color:#c2410c !important; box-shadow:0 0 0 2px #fed7aa,0 0 0 5px #c2410c !important; }
.fwh-seasonal-photo-design--thanksgiving_pumpkins > .fwh-seasonal-photo-frame__decor { border-color:#ea580c !important; box-shadow:inset 0 0 0 2px #facc15 !important; }
.fwh-seasonal-photo-frame.fwh-seasonal-photo-design--thanksgiving_harvest,
.fwh-seasonal-photo-image.fwh-seasonal-photo-design--thanksgiving_harvest { outline-color:#854d0e !important; box-shadow:0 0 0 2px #facc15,0 0 0 5px #92400e !important; }
.fwh-seasonal-photo-design--thanksgiving_harvest > .fwh-seasonal-photo-frame__decor { border-color:#92400e !important; box-shadow:inset 0 0 0 2px #eab308 !important; }
.fwh-seasonal-photo-frame.fwh-seasonal-photo-design--july4_stars,
.fwh-seasonal-photo-image.fwh-seasonal-photo-design--july4_stars { outline-color:#c52436 !important; box-shadow:0 0 0 2px #244a9b,0 0 0 5px #fff !important; }
.fwh-seasonal-photo-design--july4_stars > .fwh-seasonal-photo-frame__decor { border-color:#244a9b !important; box-shadow:inset 0 0 0 2px #c52436 !important; }
.fwh-seasonal-photo-frame.fwh-seasonal-photo-design--july4_stripes,
.fwh-seasonal-photo-image.fwh-seasonal-photo-design--july4_stripes { outline-color:#244a9b !important; box-shadow:0 0 0 2px #fff,0 0 0 5px #c52436 !important; }
.fwh-seasonal-photo-design--july4_stripes > .fwh-seasonal-photo-frame__decor { border-color:#fff !important; box-shadow:inset 0 0 0 2px #244a9b,0 0 0 1px #c52436 !important; }
.fwh-seasonal-photo-frame.fwh-seasonal-photo-design--july4_fireworks,
.fwh-seasonal-photo-image.fwh-seasonal-photo-design--july4_fireworks { outline-color:#1e3a8a !important; box-shadow:0 0 0 2px #facc15,0 0 0 5px #1e3a8a !important; }
.fwh-seasonal-photo-design--july4_fireworks > .fwh-seasonal-photo-frame__decor { color:#facc15 !important; border-color:#1e3a8a !important; box-shadow:inset 0 0 0 2px #facc15 !important; }
