/**
 * Site-wide custom styles.
 *
 * Loaded on every front-end page after the child theme's style.css
 * (see Denwax\Frontend\Assets::enqueueStyles).
 */


/*Green text in headings*/
h1 .hl, h2 .hl, h3 .hl, h4 .hl, h5 .hl, h6 .hl {
    color: #324803;
}



.wpml-ls{
    display: none;
}

html{
    overflow-x: hidden;
}

/* Sale badge — [sale_badge] shortcode (replaces Jet Woo Builder Archive Sale Badge) */
.sale-badge {
    display: inline-block;
    font-family: "Alegreya", Sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4em;
    color: #202020;
    background-color: var( --e-global-color-c9e017a );
    border-radius: 8px;
    padding: 5px 11px;
}

/* Archive price — [archive_price] shortcode (replaces Jet Woo Builder Archive Price) */
.archive-price {
    font-family: "Alegreya", Sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4em;
    color: #324902;
    text-align: right;
}

.archive-price del {
    color: var( --e-global-color-primary );
    font-size: 16px;
    font-weight: 700;
}

.archive-price ins {
    text-decoration: none;
}

/* FAQ accordion — [faq] shortcode (built from the `faq` repeater).
   Self-contained styling; open/closed state is driven by the control's
   aria-expanded attribute. */
.faq-shortcode .faq__item {
    border-bottom: 1px solid #e0e0e0;
    margin-bottom: 20px;
}

.faq-shortcode .faq__control {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 20px 0;
    cursor: pointer;
    color: var( --e-global-color-primary );
    outline: none;
}

.faq-shortcode .faq__question {
    flex: 1;
    font-family: "Raleway", Sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.4;
}

.faq-shortcode .faq__icons {
    display: inline-flex;
    align-items: center;
}

.faq-shortcode .faq__icon {
    display: inline-flex;
    align-items: center;
    transition: transform 0.3s ease;
}

.faq-shortcode .faq__icon svg {
    width: 8px;
    height: auto;
}

/* Icon swap + rotation: arrow points down when closed, up when open. */
.faq-shortcode .faq__icon--normal {
    transform: rotate(90deg);
}

.faq-shortcode .faq__icon--active {
    display: none;
    transform: rotate(-90deg);
}

.faq-shortcode .faq__control[aria-expanded="true"] .faq__icon--normal {
    display: none;
}

.faq-shortcode .faq__control[aria-expanded="true"] .faq__icon--active {
    display: inline-flex;
}

/* Content is hidden until its control is expanded. */
.faq-shortcode .faq__content {
    display: none;
}

.faq-shortcode .faq__control[aria-expanded="true"] + .faq__content {
    display: block;
}

.faq-shortcode .faq__content-inner {
    padding: 30px;
    background: #F2EEEA;
}

/* Elementor grids (Loop Grid / Posts widget): when a grid holds fewer items
   than it has columns, keep each item at the width it would have in a full
   grid and centre the short row, instead of stretching the items to fill the
   width. :has() counts the items, skipping the <style> tag Elementor injects
   as the first child; the column width is derived from Elementor's own
   --grid-column-gap so it matches the widget's gap setting per breakpoint.
   Each breakpoint mirrors Elementor's elementor-grid-{n} classes and
   breakpoints (laptop ≤ 1366px, tablet ≤ 1024px, mobile ≤ 767px). Rules share
   the same specificity so the narrower breakpoint, coming later, always wins;
   the desktop rules (no media query) act as the fallback for breakpoints that
   don't set their own column count. */

/* Desktop */
.elementor-grid-2 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))) {
    grid-template-columns: repeat(1, calc((100% - 1 * var(--grid-column-gap, 0px)) / 2));
    justify-content: center;
}
.elementor-grid-3 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))) {
    grid-template-columns: repeat(1, calc((100% - 2 * var(--grid-column-gap, 0px)) / 3));
    justify-content: center;
}
.elementor-grid-3 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))) {
    grid-template-columns: repeat(2, calc((100% - 2 * var(--grid-column-gap, 0px)) / 3));
    justify-content: center;
}
.elementor-grid-4 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))) {
    grid-template-columns: repeat(1, calc((100% - 3 * var(--grid-column-gap, 0px)) / 4));
    justify-content: center;
}
.elementor-grid-4 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))) {
    grid-template-columns: repeat(2, calc((100% - 3 * var(--grid-column-gap, 0px)) / 4));
    justify-content: center;
}
.elementor-grid-4 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
    grid-template-columns: repeat(3, calc((100% - 3 * var(--grid-column-gap, 0px)) / 4));
    justify-content: center;
}

/* Laptop */
@media (max-width: 1366px) {
    /* full rows (items >= columns): fill the width, no centring */
    .elementor-grid-laptop-1 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))),
    .elementor-grid-laptop-1 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))),
    .elementor-grid-laptop-1 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        justify-content: normal;
    }
    .elementor-grid-laptop-2 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))),
    .elementor-grid-laptop-2 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: normal;
    }
    .elementor-grid-laptop-3 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        justify-content: normal;
    }
    /* partial rows: natural item width, centred */
    .elementor-grid-laptop-2 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(1, calc((100% - 1 * var(--grid-column-gap, 0px)) / 2));
        justify-content: center;
    }
    .elementor-grid-laptop-3 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(1, calc((100% - 2 * var(--grid-column-gap, 0px)) / 3));
        justify-content: center;
    }
    .elementor-grid-laptop-3 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(2, calc((100% - 2 * var(--grid-column-gap, 0px)) / 3));
        justify-content: center;
    }
    .elementor-grid-laptop-4 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(1, calc((100% - 3 * var(--grid-column-gap, 0px)) / 4));
        justify-content: center;
    }
    .elementor-grid-laptop-4 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(2, calc((100% - 3 * var(--grid-column-gap, 0px)) / 4));
        justify-content: center;
    }
    .elementor-grid-laptop-4 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(3, calc((100% - 3 * var(--grid-column-gap, 0px)) / 4));
        justify-content: center;
    }
}

/* Tablet */
@media (max-width: 1024px) {
    /* full rows (items >= columns): fill the width, no centring */
    .elementor-grid-tablet-1 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))),
    .elementor-grid-tablet-1 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))),
    .elementor-grid-tablet-1 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        justify-content: normal;
    }
    .elementor-grid-tablet-2 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))),
    .elementor-grid-tablet-2 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: normal;
    }
    .elementor-grid-tablet-3 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        justify-content: normal;
    }
    /* partial rows: natural item width, centred */
    .elementor-grid-tablet-2 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(1, calc((100% - 1 * var(--grid-column-gap, 0px)) / 2));
        justify-content: center;
    }
    .elementor-grid-tablet-3 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(1, calc((100% - 2 * var(--grid-column-gap, 0px)) / 3));
        justify-content: center;
    }
    .elementor-grid-tablet-3 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(2, calc((100% - 2 * var(--grid-column-gap, 0px)) / 3));
        justify-content: center;
    }
    .elementor-grid-tablet-4 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(1, calc((100% - 3 * var(--grid-column-gap, 0px)) / 4));
        justify-content: center;
    }
    .elementor-grid-tablet-4 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(2, calc((100% - 3 * var(--grid-column-gap, 0px)) / 4));
        justify-content: center;
    }
    .elementor-grid-tablet-4 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(3, calc((100% - 3 * var(--grid-column-gap, 0px)) / 4));
        justify-content: center;
    }
}

/* Mobile */
@media (max-width: 767px) {
    /* full rows (items >= columns): fill the width, no centring */
    .elementor-grid-mobile-1 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))),
    .elementor-grid-mobile-1 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))),
    .elementor-grid-mobile-1 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        justify-content: normal;
    }
    .elementor-grid-mobile-2 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))),
    .elementor-grid-mobile-2 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: normal;
    }
    .elementor-grid-mobile-3 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        justify-content: normal;
    }
    /* partial rows: natural item width, centred */
    .elementor-grid-mobile-2 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(1, calc((100% - 1 * var(--grid-column-gap, 0px)) / 2));
        justify-content: center;
    }
    .elementor-grid-mobile-3 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(1, calc((100% - 2 * var(--grid-column-gap, 0px)) / 3));
        justify-content: center;
    }
    .elementor-grid-mobile-3 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(2, calc((100% - 2 * var(--grid-column-gap, 0px)) / 3));
        justify-content: center;
    }
    .elementor-grid-mobile-4 .elementor-grid:has(> :nth-child(1 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(1, calc((100% - 3 * var(--grid-column-gap, 0px)) / 4));
        justify-content: center;
    }
    .elementor-grid-mobile-4 .elementor-grid:has(> :nth-child(2 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(2, calc((100% - 3 * var(--grid-column-gap, 0px)) / 4));
        justify-content: center;
    }
    .elementor-grid-mobile-4 .elementor-grid:has(> :nth-child(3 of :not(style)):nth-last-child(1 of :not(style))) {
        grid-template-columns: repeat(3, calc((100% - 3 * var(--grid-column-gap, 0px)) / 4));
        justify-content: center;
    }
}
