/* ==========================================================
VALIRINA ATELIER — GIFTS BY OCCASION
Elementor Free

CURRENT DESIGN SYSTEM

- section max-width: 1600px
- centered
- transparent background
- title left
- description left
- filters left
- compact / minimalist filters
- airy internal vertical rhythm
- no card shadows
- subtle card border
- editorial font for titles
- default site font for ordinary text

MOSAIC

Equal-size cards
Square product images
Subtle staggered columns

Desktop : 4 columns × 2 rows
Tablet  : 2 columns × 2 rows
Mobile  : 2 columns × 2 rows


SECTION SPACING SYSTEM

Desktop:      35px bottom
Tablet:       30px bottom
Mobile:       24px bottom
Small mobile: 20px bottom

Top spacing is 0 because the previous component owns
the distance leading into this section.

IMPORTANT

The following remain INTERNAL spacing and are not changed:

- title → description
- description → filters
- filters → cards
- card internal padding
- grid row / column gaps
- mosaic offsets
========================================================== */


/* ==========================================================
01 — DESKTOP VARIABLES
========================================================== */

.valirina-gifts-occasion {

    /* ======================================================
       DESIGN SYSTEM
    ====================================================== */

    --editorial-font:
        "Cormorant Garamond",
        Georgia,
        serif;

    --text-primary:
        #1d1c1a;

    --text-secondary:
        #625d57;

    --text-muted:
        #7a746e;

    --accent-color:
        #ad772d;

    --dark-color:
        #1f1d1a;


    /* ======================================================
       SECTION
    ====================================================== */

    --section-max-width:
        1600px;

    --section-padding-top:
        0px;

    --section-padding-right:
        20px;

    --section-padding-bottom:
        35px;

    --section-padding-left:
        20px;


    /* ======================================================
       MAIN TITLE
    ====================================================== */

    --section-title-size:
        40px;

    --section-title-weight:
        620;

    --section-title-line-height:
        1.02;

    --section-title-letter-spacing:
        -0.035em;

    --section-title-color:
        var(--text-primary);

    --section-title-accent:
        var(--accent-color);


    /* ======================================================
       MAIN DESCRIPTION
    ====================================================== */

    --main-description-font-size:
        16px;

    --main-description-font-weight:
        400;

    --main-description-line-height:
        1.55;

    --main-description-color:
        var(--text-secondary);

    --main-description-max-width:
        760px;


    /* ======================================================
       HEADER SPACING
    ====================================================== */

    --title-description-gap:
        10px;

    --description-filters-gap:
        18px;

    --filters-cards-gap:
        30px;


    /* ======================================================
       FILTERS
    ====================================================== */

    --filter-gap:
        7px;

    --filter-height:
        34px;

    --filter-padding-x:
        14px;

    --filter-font-size:
        12.5px;

    --filter-font-weight:
        500;

    --filter-radius:
        999px;

    --filter-background:
        transparent;

    --filter-color:
        var(--text-secondary);

    --filter-border-color:
        rgba(36, 33, 31, 0.13);

    --filter-hover-background:
        #f4f0e9;

    --filter-hover-color:
        var(--text-primary);

    --filter-active-background:
        #191613;

    --filter-active-color:
        #ffffff;


    /* ======================================================
       GRID
    ====================================================== */

    --grid-columns:
        4;

    --grid-column-gap:
        20px;

    --grid-row-gap:
        20px;


    /* ======================================================
       SUBTLE MOSAIC
    ====================================================== */

    --mosaic-offset:
        18px;


    /* ======================================================
       CARD
    ====================================================== */

    --card-radius:
        12px;

    --card-background:
        #ffffff;

    --card-border-width:
        1px;

    --card-border-color:
        rgba(36, 33, 31, 0.08);

    --card-hover-border-color:
        rgba(36, 33, 31, 0.13);

    --card-hover-up:
        -2px;

    --card-animation-speed:
        220ms;


    /* ======================================================
       IMAGE
    ====================================================== */

    --image-fit:
        cover;

    --image-position:
        center center;

    --image-hover-scale:
        1.025;

    --image-animation-speed:
        420ms;


    /* ======================================================
       INFO
    ====================================================== */

    --card-info-min-height:
        140px;

    --info-padding-top:
        16px;

    --info-padding-right:
        16px;

    --info-padding-bottom:
        15px;

    --info-padding-left:
        16px;

    --info-gap:
        6px;


    /* ======================================================
       META
    ====================================================== */

    --meta-font-size:
        11px;

    --meta-font-weight:
        500;

    --meta-line-height:
        1.2;

    --meta-color:
        var(--text-secondary);

    --meta-letter-spacing:
        0.045em;


    /* ======================================================
       PRODUCT TITLE
    ====================================================== */

    --product-title-size:
        20px;

    --product-title-weight:
        600;

    --product-title-line-height:
        1.08;

    --product-title-letter-spacing:
        -0.025em;

    --product-title-color:
        var(--text-primary);


    /* ======================================================
       DESCRIPTION
    ====================================================== */

    --description-font-size:
        13px;

    --description-font-weight:
        400;

    --description-line-height:
        1.45;

    --description-color:
        var(--text-secondary);

    --description-lines:
        1;


    /* ======================================================
       PRICE
    ====================================================== */

    --price-font-size:
        15px;

    --price-font-weight:
        600;

    --price-color:
        var(--text-secondary);


    /* ======================================================
       BADGE
    ====================================================== */

    --badge-top:
        12px;

    --badge-left:
        12px;

    --badge-height:
        26px;

    --badge-padding-x:
        11px;

    --badge-radius:
        999px;

    --badge-font-size:
        11px;

    --badge-font-weight:
        600;

    --badge-line-height:
        1;

    --badge-letter-spacing:
        0;

    --badge-background:
        #cf912b;

    --badge-color:
        #ffffff;


    /* ======================================================
       ADD BUTTON
    ====================================================== */

    --add-size:
        32px;

    --add-font-size:
        16px;

    --add-background:
        #191613;

    --add-color:
        #ffffff;

    --add-hover-scale:
        1.07;


    /* ======================================================
       BOTTOM
    ====================================================== */

    --bottom-padding-top:
        10px;

    --bottom-gap:
        10px;
}


/* ==========================================================
02 — TABLET
========================================================== */

@media (max-width: 1024px) {

    .valirina-gifts-occasion {

        --section-padding-top:
            0px;

        --section-padding-right:
            18px;

        --section-padding-bottom:
            30px;

        --section-padding-left:
            18px;


        --section-title-size:
            38px;


        --main-description-font-size:
            15px;

        --main-description-max-width:
            700px;


        --title-description-gap:
            9px;

        --description-filters-gap:
            16px;

        --filters-cards-gap:
            26px;


        --filter-gap:
            7px;

        --filter-height:
            33px;

        --filter-padding-x:
            13px;

        --filter-font-size:
            12px;


        --grid-columns:
            2;

        --grid-column-gap:
            16px;

        --grid-row-gap:
            18px;


        --mosaic-offset:
            14px;


        --image-hover-scale:
            1;


        --card-info-min-height:
            134px;


        --info-padding-top:
            14px;

        --info-padding-right:
            14px;

        --info-padding-bottom:
            14px;

        --info-padding-left:
            14px;


        --meta-font-size:
            10.5px;

        --product-title-size:
            19px;

        --description-font-size:
            12.5px;

        --price-font-size:
            14.5px;


        --badge-height:
            25px;

        --badge-font-size:
            10.5px;


        --card-hover-up:
            0px;
    }
}


/* ==========================================================
03 — MOBILE
========================================================== */

@media (max-width: 767px) {

    .valirina-gifts-occasion {

        --section-padding-top:
            0px;

        --section-padding-right:
            14px;

        --section-padding-bottom:
            24px;

        --section-padding-left:
            14px;


        --section-title-size:
            34px;


        --main-description-font-size:
            14.5px;

        --main-description-line-height:
            1.5;

        --main-description-max-width:
            100%;


        --title-description-gap:
            8px;

        --description-filters-gap:
            15px;

        --filters-cards-gap:
            24px;


        --filter-gap:
            6px;

        --filter-height:
            32px;

        --filter-padding-x:
            12px;

        --filter-font-size:
            11.5px;


        --grid-columns:
            2;

        --grid-column-gap:
            12px;

        --grid-row-gap:
            16px;


        --mosaic-offset:
            10px;


        --image-hover-scale:
            1;


        --card-info-min-height:
            132px;


        --info-padding-top:
            11px;

        --info-padding-right:
            11px;

        --info-padding-bottom:
            12px;

        --info-padding-left:
            11px;

        --info-gap:
            4px;


        --meta-font-size:
            9.5px;

        --product-title-size:
            17px;

        --description-font-size:
            11.5px;

        --price-font-size:
            14px;


        --badge-top:
            9px;

        --badge-left:
            9px;

        --badge-height:
            23px;

        --badge-padding-x:
            9px;

        --badge-font-size:
            9.5px;


        --add-size:
            30px;

        --add-font-size:
            15px;


        --bottom-padding-top:
            8px;
    }
}


/* ==========================================================
04 — SMALL MOBILE
========================================================== */

@media (max-width: 390px) {

    .valirina-gifts-occasion {

        --section-title-size:
            31px;


        --section-padding-top:
            0px;

        --section-padding-right:
            12px;

        --section-padding-bottom:
            20px;

        --section-padding-left:
            12px;


        --main-description-font-size:
            14px;


        --description-filters-gap:
            14px;

        --filters-cards-gap:
            22px;


        --filter-height:
            31px;

        --filter-padding-x:
            11px;

        --filter-font-size:
            11px;

        --filter-gap:
            5px;


        --grid-column-gap:
            9px;

        --grid-row-gap:
            14px;


        --mosaic-offset:
            6px;


        --meta-font-size:
            9px;

        --product-title-size:
            16px;

        --description-font-size:
            10.5px;

        --price-font-size:
            13.5px;


        --badge-height:
            22px;

        --badge-font-size:
            9px;


        --card-info-min-height:
            128px;
    }
}


/* ==========================================================
05 — RESET
========================================================== */

.valirina-gifts-occasion,
.valirina-gifts-occasion *,
.valirina-gifts-occasion *::before,
.valirina-gifts-occasion *::after {

    box-sizing:
        border-box;
}


/* ==========================================================
06 — MAIN SECTION
========================================================== */

.valirina-gifts-occasion {

    position:
        relative !important;

    display:
        flex !important;

    flex-direction:
        column !important;

    align-items:
        stretch !important;

    width:
        100% !important;

    max-width:
        var(--section-max-width) !important;

    margin:
        0 auto !important;

    padding:
        var(--section-padding-top)
        var(--section-padding-right)
        var(--section-padding-bottom)
        var(--section-padding-left) !important;

    background:
        transparent !important;

    border:
        0 !important;

    border-radius:
        0 !important;

    box-shadow:
        none !important;

    overflow:
        hidden !important;
}


/* ==========================================================
07 — SECTION INNER
========================================================== */

.valirina-gifts-occasion
> .e-con-inner {

    display:
        flex !important;

    flex-direction:
        column !important;

    align-items:
        stretch !important;

    justify-content:
        flex-start !important;

    width:
        100% !important;

    max-width:
        100% !important;

    min-width:
        0 !important;

    margin:
        0 !important;

    padding:
        0 !important;

    gap:
        0 !important;

    background:
        transparent !important;
}


/* ==========================================================
08 — HEADER
========================================================== */

.valirina-gifts-occasion
.gifts-header,
.valirina-gifts-occasion
.gifts-header > .e-con-inner {

    display:
        flex !important;

    flex-direction:
        column !important;

    align-items:
        flex-start !important;

    justify-content:
        flex-start !important;

    width:
        100% !important;

    max-width:
        100% !important;

    min-width:
        0 !important;

    margin:
        0 !important;

    padding:
        0 !important;

    text-align:
        left !important;

    background:
        transparent !important;

    gap:
        0 !important;
}


/* ==========================================================
09 — MAIN TITLE
========================================================== */

.valirina-gifts-occasion
.gifts-main-title,
.valirina-gifts-occasion
.gifts-main-title
.elementor-widget-container {

    display:
        block !important;

    width:
        100% !important;

    max-width:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;

    text-align:
        left !important;
}


.valirina-gifts-occasion
.gifts-main-title
.elementor-heading-title {

    display:
        block !important;

    width:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;

    color:
        var(--section-title-color) !important;

    font-family:
        var(--editorial-font) !important;

    font-size:
        var(--section-title-size) !important;

    font-weight:
        var(--section-title-weight) !important;

    line-height:
        var(--section-title-line-height) !important;

    letter-spacing:
        var(--section-title-letter-spacing) !important;

    text-align:
        left !important;

    -webkit-font-smoothing:
        antialiased;

    text-rendering:
        optimizeLegibility;
}


.valirina-gifts-occasion
.gifts-main-title
.elementor-heading-title span {

    color:
        var(--section-title-accent) !important;

    font-family:
        inherit !important;

    font-size:
        inherit !important;

    font-weight:
        inherit !important;

    line-height:
        inherit !important;

    letter-spacing:
        inherit !important;
}


/* ==========================================================
10 — MAIN DESCRIPTION
========================================================== */

.valirina-gifts-occasion
.gifts-main-description {

    display:
        block !important;

    width:
        100% !important;

    max-width:
        var(--main-description-max-width) !important;

    margin:
        var(--title-description-gap)
        0
        0
        0 !important;

    padding:
        0 !important;

    text-align:
        left !important;
}


.valirina-gifts-occasion
.gifts-main-description
.elementor-widget-container {

    display:
        block !important;

    width:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;
}


.valirina-gifts-occasion
.gifts-main-description,
.valirina-gifts-occasion
.gifts-main-description p {

    color:
        var(--main-description-color) !important;

    font-family:
        inherit !important;

    font-size:
        var(--main-description-font-size) !important;

    font-weight:
        var(--main-description-font-weight) !important;

    line-height:
        var(--main-description-line-height) !important;

    letter-spacing:
        0 !important;

    text-align:
        left !important;
}


.valirina-gifts-occasion
.gifts-main-description p {

    margin:
        0 !important;

    padding:
        0 !important;
}


/* ==========================================================
11 — FILTERS
========================================================== */

.valirina-gifts-occasion
.occasion-filters {

    display:
        flex !important;

    flex-direction:
        row !important;

    flex-wrap:
        wrap !important;

    align-items:
        center !important;

    align-content:
        center !important;

    justify-content:
        flex-start !important;

    width:
        100% !important;

    max-width:
        100% !important;

    margin:
        var(--description-filters-gap)
        0
        var(--filters-cards-gap)
        0 !important;

    padding:
        0 !important;

    gap:
        var(--filter-gap) !important;

    background:
        transparent !important;
}


.valirina-gifts-occasion
.occasion-filters > .e-con-inner {

    display:
        flex !important;

    flex-direction:
        row !important;

    flex-wrap:
        wrap !important;

    align-items:
        center !important;

    align-content:
        center !important;

    justify-content:
        flex-start !important;

    width:
        100% !important;

    max-width:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;

    gap:
        var(--filter-gap) !important;
}


/* ==========================================================
12 — FILTER WIDGET
========================================================== */

.valirina-gifts-occasion
.occasion-filter,
.valirina-gifts-occasion
.occasion-filter
.elementor-widget-container {

    display:
        inline-flex !important;

    flex:
        0 0 auto !important;

    width:
        auto !important;

    max-width:
        max-content !important;

    margin:
        0 !important;

    padding:
        0 !important;
}


/* ==========================================================
13 — FILTER BUTTON
========================================================== */

.valirina-gifts-occasion
.occasion-filter
.elementor-button {

    display:
        inline-flex !important;

    align-items:
        center !important;

    justify-content:
        center !important;

    width:
        auto !important;

    min-width:
        0 !important;

    height:
        var(--filter-height) !important;

    min-height:
        var(--filter-height) !important;

    margin:
        0 !important;

    padding:
        0
        var(--filter-padding-x) !important;

    border:
        1px
        solid
        var(--filter-border-color) !important;

    border-radius:
        var(--filter-radius) !important;

    background:
        var(--filter-background) !important;

    color:
        var(--filter-color) !important;

    font-family:
        inherit !important;

    font-size:
        var(--filter-font-size) !important;

    font-weight:
        var(--filter-font-weight) !important;

    line-height:
        1 !important;

    letter-spacing:
        0 !important;

    white-space:
        nowrap !important;

    box-shadow:
        none !important;

    transition:
        background 180ms ease,
        color 180ms ease,
        border-color 180ms ease !important;
}


.valirina-gifts-occasion
.occasion-filter
.elementor-button-text {

    color:
        inherit !important;

    font-family:
        inherit !important;

    font-size:
        inherit !important;

    font-weight:
        inherit !important;

    line-height:
        inherit !important;
}


@media (hover: hover) and (pointer: fine) {

    .valirina-gifts-occasion
    .occasion-filter:not(.is-active)
    .elementor-button:hover {

        background:
            var(--filter-hover-background) !important;

        color:
            var(--filter-hover-color) !important;

        border-color:
            rgba(36, 33, 31, .18) !important;
    }
}


.valirina-gifts-occasion
.occasion-filter.is-active
.elementor-button {

    border-color:
        var(--filter-active-background) !important;

    background:
        var(--filter-active-background) !important;

    color:
        var(--filter-active-color) !important;
}


/* ==========================================================
14 — PRODUCT GRID
========================================================== */

.valirina-gifts-occasion
.gifts-grid {

    display:
        grid !important;

    grid-template-columns:
        repeat(
            var(--grid-columns),
            minmax(0, 1fr)
        ) !important;

    grid-auto-rows:
        auto !important;

    column-gap:
        var(--grid-column-gap) !important;

    row-gap:
        var(--grid-row-gap) !important;

    align-items:
        start !important;

    width:
        100% !important;

    max-width:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;

    overflow:
        visible !important;

    background:
        transparent !important;
}


.valirina-gifts-occasion
.gifts-grid > .e-con-inner {

    display:
        contents !important;
}


/* ==========================================================
15 — RESET GRID POSITION
========================================================== */

.valirina-gifts-occasion
.gifts-grid
.gift-card {

    grid-column:
        auto !important;

    grid-row:
        auto !important;

    margin-top:
        0 !important;
}


/* ==========================================================
16 — DESKTOP SUBTLE MOSAIC
========================================================== */

@media (min-width: 1025px) {

    .valirina-gifts-occasion
    .gift-card:nth-child(
        1 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            1 !important;

        grid-row:
            1 !important;

        margin-top:
            0 !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        2 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            2 !important;

        grid-row:
            1 !important;

        margin-top:
            var(--mosaic-offset) !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        3 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            3 !important;

        grid-row:
            1 !important;

        margin-top:
            0 !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        4 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            4 !important;

        grid-row:
            1 !important;

        margin-top:
            var(--mosaic-offset) !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        5 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            1 !important;

        grid-row:
            2 !important;

        margin-top:
            0 !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        6 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            2 !important;

        grid-row:
            2 !important;

        margin-top:
            var(--mosaic-offset) !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        7 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            3 !important;

        grid-row:
            2 !important;

        margin-top:
            0 !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        8 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            4 !important;

        grid-row:
            2 !important;

        margin-top:
            var(--mosaic-offset) !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        n + 9 of .gift-card:not(.is-hidden)
    ) {

        display:
            none !important;
    }
}


/* ==========================================================
17 — TABLET SUBTLE MOSAIC
========================================================== */

@media (min-width: 768px) and (max-width: 1024px) {

    .valirina-gifts-occasion
    .gift-card:nth-child(
        1 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            1 !important;

        grid-row:
            1 !important;

        margin-top:
            0 !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        2 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            2 !important;

        grid-row:
            1 !important;

        margin-top:
            var(--mosaic-offset) !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        3 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            1 !important;

        grid-row:
            2 !important;

        margin-top:
            0 !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        4 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            2 !important;

        grid-row:
            2 !important;

        margin-top:
            var(--mosaic-offset) !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        n + 5 of .gift-card:not(.is-hidden)
    ) {

        display:
            none !important;
    }
}


/* ==========================================================
18 — MOBILE SUBTLE MOSAIC
========================================================== */

@media (max-width: 767px) {

    .valirina-gifts-occasion
    .gift-card:nth-child(
        1 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            1 !important;

        grid-row:
            1 !important;

        margin-top:
            0 !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        2 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            2 !important;

        grid-row:
            1 !important;

        margin-top:
            var(--mosaic-offset) !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        3 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            1 !important;

        grid-row:
            2 !important;

        margin-top:
            0 !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        4 of .gift-card:not(.is-hidden)
    ) {

        grid-column:
            2 !important;

        grid-row:
            2 !important;

        margin-top:
            var(--mosaic-offset) !important;
    }


    .valirina-gifts-occasion
    .gift-card:nth-child(
        n + 5 of .gift-card:not(.is-hidden)
    ) {

        display:
            none !important;
    }
}


/* ==========================================================
19 — CARD
========================================================== */

.valirina-gifts-occasion
.gift-card {

    position:
        relative !important;

    display:
        flex !important;

    flex-direction:
        column !important;

    width:
        100% !important;

    height:
        auto !important;

    min-width:
        0 !important;

    margin:
        0 !important;

    padding:
        0 !important;

    gap:
        0 !important;

    overflow:
        hidden !important;

    border:
        var(--card-border-width)
        solid
        var(--card-border-color) !important;

    border-radius:
        var(--card-radius) !important;

    background:
        var(--card-background) !important;

    box-shadow:
        none !important;

    transition:
        transform
        var(--card-animation-speed)
        ease,

        border-color
        var(--card-animation-speed)
        ease !important;
}


.valirina-gifts-occasion
.gift-card > .e-con-inner {

    display:
        flex !important;

    flex-direction:
        column !important;

    width:
        100% !important;

    height:
        auto !important;

    min-width:
        0 !important;

    min-height:
        0 !important;

    margin:
        0 !important;

    padding:
        0 !important;

    gap:
        0 !important;

    overflow:
        hidden !important;
}


@media (hover: hover) and (pointer: fine) {

    .valirina-gifts-occasion
    .gift-card:hover {

        transform:
            translateY(
                var(--card-hover-up)
            );

        border-color:
            var(--card-hover-border-color) !important;

        box-shadow:
            none !important;
    }
}


/* ==========================================================
20 — MEDIA
SQUARE IMAGE AREA
========================================================== */

.valirina-gifts-occasion
.gift-media {

    position:
        relative !important;

    display:
        block !important;

    flex:
        0 0 auto !important;

    width:
        100% !important;

    aspect-ratio:
        1 / 1 !important;

    min-width:
        0 !important;

    min-height:
        0 !important;

    margin:
        0 !important;

    padding:
        0 !important;

    overflow:
        hidden !important;

    background:
        #f4f1ec !important;
}


.valirina-gifts-occasion
.gift-media > .e-con-inner {

    position:
        relative !important;

    display:
        block !important;

    width:
        100% !important;

    height:
        100% !important;

    aspect-ratio:
        1 / 1 !important;

    margin:
        0 !important;

    padding:
        0 !important;

    overflow:
        hidden !important;
}


/* ==========================================================
21 — IMAGE
========================================================== */

.valirina-gifts-occasion
.gift-image {

    position:
        absolute !important;

    inset:
        0 !important;

    z-index:
        1 !important;

    display:
        block !important;

    width:
        100% !important;

    height:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;
}


.valirina-gifts-occasion
.gift-image
.elementor-widget-container,
.valirina-gifts-occasion
.gift-image a,
.valirina-gifts-occasion
.gift-image picture {

    display:
        block !important;

    width:
        100% !important;

    height:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;

    overflow:
        hidden !important;
}


.valirina-gifts-occasion
.gift-image img {

    display:
        block !important;

    width:
        100% !important;

    max-width:
        100% !important;

    height:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;

    border:
        0 !important;

    object-fit:
        var(--image-fit) !important;

    object-position:
        var(--image-position) !important;

    transition:
        transform
        var(--image-animation-speed)
        ease !important;
}


@media (hover: hover) and (pointer: fine) {

    .valirina-gifts-occasion
    .gift-card:hover
    .gift-image img {

        transform:
            scale(
                var(--image-hover-scale)
            );
    }
}


/* ==========================================================
22 — BADGE
========================================================== */

.valirina-gifts-occasion
.gift-badge {

    position:
        absolute !important;

    top:
        var(--badge-top) !important;

    left:
        var(--badge-left) !important;

    right:
        auto !important;

    bottom:
        auto !important;

    z-index:
        20 !important;

    display:
        inline-flex !important;

    align-items:
        center !important;

    justify-content:
        center !important;

    flex:
        0 0 auto !important;

    width:
        auto !important;

    min-width:
        0 !important;

    max-width:
        max-content !important;

    height:
        var(--badge-height) !important;

    min-height:
        var(--badge-height) !important;

    max-height:
        var(--badge-height) !important;

    margin:
        0 !important;

    padding:
        0
        var(--badge-padding-x) !important;

    border:
        0 !important;

    border-radius:
        var(--badge-radius) !important;

    background:
        var(--badge-background) !important;

    color:
        var(--badge-color) !important;

    font-family:
        inherit !important;

    font-size:
        var(--badge-font-size) !important;

    font-weight:
        var(--badge-font-weight) !important;

    line-height:
        var(--badge-line-height) !important;

    letter-spacing:
        var(--badge-letter-spacing) !important;

    text-transform:
        none !important;

    white-space:
        nowrap !important;

    box-shadow:
        none !important;

    overflow:
        hidden !important;
}


.valirina-gifts-occasion
.gift-badge
.elementor-widget-container {

    display:
        flex !important;

    align-items:
        center !important;

    justify-content:
        center !important;

    width:
        auto !important;

    height:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;

    color:
        inherit !important;

    font:
        inherit !important;
}


.valirina-gifts-occasion
.gift-badge
.elementor-heading-title,
.valirina-gifts-occasion
.gift-badge h1,
.valirina-gifts-occasion
.gift-badge h2,
.valirina-gifts-occasion
.gift-badge h3,
.valirina-gifts-occasion
.gift-badge h4,
.valirina-gifts-occasion
.gift-badge h5,
.valirina-gifts-occasion
.gift-badge h6,
.valirina-gifts-occasion
.gift-badge p,
.valirina-gifts-occasion
.gift-badge span {

    display:
        inline !important;

    width:
        auto !important;

    height:
        auto !important;

    margin:
        0 !important;

    padding:
        0 !important;

    color:
        inherit !important;

    font-family:
        inherit !important;

    font-size:
        var(--badge-font-size) !important;

    font-weight:
        var(--badge-font-weight) !important;

    font-style:
        normal !important;

    line-height:
        var(--badge-line-height) !important;

    letter-spacing:
        var(--badge-letter-spacing) !important;

    text-transform:
        none !important;

    white-space:
        nowrap !important;
}


/* ==========================================================
23 — INFO
========================================================== */

.valirina-gifts-occasion
.gift-info {

    position:
        relative !important;

    display:
        flex !important;

    flex-direction:
        column !important;

    flex:
        0 0 auto !important;

    width:
        100% !important;

    min-width:
        0 !important;

    min-height:
        var(--card-info-min-height) !important;

    margin:
        0 !important;

    padding:
        var(--info-padding-top)
        var(--info-padding-right)
        var(--info-padding-bottom)
        var(--info-padding-left) !important;

    gap:
        var(--info-gap) !important;

    background:
        var(--card-background) !important;
}


.valirina-gifts-occasion
.gift-info > .e-con-inner {

    display:
        flex !important;

    flex-direction:
        column !important;

    width:
        100% !important;

    height:
        100% !important;

    min-width:
        0 !important;

    min-height:
        0 !important;

    margin:
        0 !important;

    padding:
        0 !important;

    gap:
        var(--info-gap) !important;
}


/* ==========================================================
24 — META
========================================================== */

.valirina-gifts-occasion
.gift-meta,
.valirina-gifts-occasion
.gift-meta
.elementor-widget-container {

    width:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;
}


.valirina-gifts-occasion
.gift-meta,
.valirina-gifts-occasion
.gift-meta p {

    margin:
        0 !important;

    padding:
        0 !important;

    color:
        var(--meta-color) !important;

    font-family:
        inherit !important;

    font-size:
        var(--meta-font-size) !important;

    font-weight:
        var(--meta-font-weight) !important;

    line-height:
        var(--meta-line-height) !important;

    letter-spacing:
        var(--meta-letter-spacing) !important;

    text-transform:
        uppercase !important;
}


/* ==========================================================
25 — PRODUCT TITLE
========================================================== */

.valirina-gifts-occasion
.gift-title,
.valirina-gifts-occasion
.gift-title
.elementor-widget-container {

    width:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;
}


.valirina-gifts-occasion
.gift-title
.elementor-heading-title {

    width:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;

    color:
        var(--product-title-color) !important;

    font-family:
        var(--editorial-font) !important;

    font-size:
        var(--product-title-size) !important;

    font-weight:
        var(--product-title-weight) !important;

    line-height:
        var(--product-title-line-height) !important;

    letter-spacing:
        var(--product-title-letter-spacing) !important;

    overflow-wrap:
        anywhere !important;

    -webkit-font-smoothing:
        antialiased;
}


/* ==========================================================
26 — DESCRIPTION
========================================================== */

.valirina-gifts-occasion
.gift-description,
.valirina-gifts-occasion
.gift-description
.elementor-widget-container {

    width:
        100% !important;

    margin:
        0 !important;

    padding:
        0 !important;
}


.valirina-gifts-occasion
.gift-description,
.valirina-gifts-occasion
.gift-description p {

    margin:
        0 !important;

    padding:
        0 !important;

    color:
        var(--description-color) !important;

    font-family:
        inherit !important;

    font-size:
        var(--description-font-size) !important;

    font-weight:
        var(--description-font-weight) !important;

    line-height:
        var(--description-line-height) !important;

    letter-spacing:
        0 !important;
}


.valirina-gifts-occasion
.gift-description p {

    display:
        -webkit-box;

    overflow:
        hidden;

    -webkit-box-orient:
        vertical;

    -webkit-line-clamp:
        var(--description-lines);

    line-clamp:
        var(--description-lines);
}


/* ==========================================================
27 — BOTTOM ROW
========================================================== */

.valirina-gifts-occasion
.gift-bottom,
.valirina-gifts-occasion
.gift-bottom > .e-con-inner {

    display:
        flex !important;

    flex-direction:
        row !important;

    flex-wrap:
        nowrap !important;

    align-items:
        center !important;

    justify-content:
        space-between !important;

    width:
        100% !important;

    min-width:
        0 !important;

    margin:
        0 !important;

    padding:
        0 !important;

    gap:
        var(--bottom-gap) !important;
}


.valirina-gifts-occasion
.gift-bottom {

    margin-top:
        auto !important;

    padding-top:
        var(--bottom-padding-top) !important;
}


/* ==========================================================
28 — PRICE
========================================================== */

.valirina-gifts-occasion
.gift-price {

    flex:
        1 1 auto !important;

    width:
        auto !important;

    min-width:
        0 !important;

    margin:
        0 !important;

    padding:
        0 !important;
}


.valirina-gifts-occasion
.gift-price
.elementor-widget-container {

    margin:
        0 !important;

    padding:
        0 !important;
}


.valirina-gifts-occasion
.gift-price,
.valirina-gifts-occasion
.gift-price p,
.valirina-gifts-occasion
.gift-price
.elementor-heading-title {

    margin:
        0 !important;

    padding:
        0 !important;

    color:
        var(--price-color) !important;

    font-family:
        inherit !important;

    font-size:
        var(--price-font-size) !important;

    font-weight:
        var(--price-font-weight) !important;

    line-height:
        1.2 !important;

    white-space:
        nowrap !important;
}


/* ==========================================================
29 — ADD BUTTON
========================================================== */

.valirina-gifts-occasion
.gift-add,
.valirina-gifts-occasion
.gift-add
.elementor-widget-container {

    display:
        flex !important;

    flex:
        0 0
        var(--add-size) !important;

    width:
        var(--add-size) !important;

    min-width:
        var(--add-size) !important;

    max-width:
        var(--add-size) !important;

    height:
        var(--add-size) !important;

    min-height:
        var(--add-size) !important;

    max-height:
        var(--add-size) !important;

    margin:
        0 !important;

    padding:
        0 !important;
}


.valirina-gifts-occasion
.gift-add
.elementor-button {

    display:
        flex !important;

    align-items:
        center !important;

    justify-content:
        center !important;

    width:
        var(--add-size) !important;

    min-width:
        var(--add-size) !important;

    height:
        var(--add-size) !important;

    min-height:
        var(--add-size) !important;

    margin:
        0 !important;

    padding:
        0 !important;

    border:
        0 !important;

    border-radius:
        50% !important;

    background:
        var(--add-background) !important;

    color:
        var(--add-color) !important;

    font-family:
        inherit !important;

    font-size:
        var(--add-font-size) !important;

    line-height:
        1 !important;

    box-shadow:
        none !important;

    transition:
        transform
        180ms
        ease !important;
}


@media (hover: hover) and (pointer: fine) {

    .valirina-gifts-occasion
    .gift-add
    .elementor-button:hover {

        transform:
            scale(
                var(--add-hover-scale)
            );
    }
}


/* ==========================================================
30 — FILTERED ITEMS
========================================================== */

.valirina-gifts-occasion
.gift-card.is-hidden {

    display:
        none !important;
}


/* ==========================================================
31 — ELEMENTOR SAFETY
========================================================== */

.valirina-gifts-occasion
.gifts-header,
.valirina-gifts-occasion
.gifts-main-title,
.valirina-gifts-occasion
.gifts-main-description,
.valirina-gifts-occasion
.occasion-filters,
.valirina-gifts-occasion
.gifts-grid {

    --width:
        100% !important;

    left:
        auto !important;

    right:
        auto !important;

    transform:
        none !important;
}


/* TITLE LEFT */

.valirina-gifts-occasion
.gifts-main-title,
.valirina-gifts-occasion
.gifts-main-title
.elementor-widget-container,
.valirina-gifts-occasion
.gifts-main-title
.elementor-heading-title {

    text-align:
        left !important;
}


/* DESCRIPTION LEFT */

.valirina-gifts-occasion
.gifts-main-description,
.valirina-gifts-occasion
.gifts-main-description
.elementor-widget-container,
.valirina-gifts-occasion
.gifts-main-description p {

    text-align:
        left !important;
}


/* FILTERS LEFT */

.valirina-gifts-occasion
.occasion-filters,
.valirina-gifts-occasion
.occasion-filters > .e-con-inner {

    --justify-content:
        flex-start !important;

    --align-items:
        center !important;

    justify-content:
        flex-start !important;

    align-items:
        center !important;

    align-content:
        center !important;
}


/* HEADER */

.valirina-gifts-occasion
.gifts-header,
.valirina-gifts-occasion
.gifts-header > .e-con-inner {

    --justify-content:
        flex-start !important;

    --align-items:
        flex-start !important;
}


/* ==========================================================
32 — TOUCH
========================================================== */

@media (max-width: 1024px) {

    .valirina-gifts-occasion
    .gift-card:hover {

        transform:
            none !important;

        box-shadow:
            none !important;
    }
}


/* ==========================================================
33 — REDUCED MOTION
========================================================== */

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

    .valirina-gifts-occasion *,
    .valirina-gifts-occasion *::before,
    .valirina-gifts-occasion *::after {

        transition-duration:
            .01ms !important;

        animation-duration:
            .01ms !important;
    }
}