@charset "UTF-8";

@layer reset, grid, gridDefaults, userDefaults, elements;

@property --bg-overlay-opacity {
syntax: '<number>';
inherits: false;
initial-value: 0;
}


@layer reset{


    /*:where(:not(iframe, canvas, img, svg, video):not(svg *)) {
    all: unset;
    display: revert;
    }

    /* Box sizing rules */
    *,
    *::before,
    *::after {
    box-sizing: border-box;
    }

    *{margin:0;}

    /* Set core root defaults */
    html{
    line-height: 1.5;
    }

    html:focus-within {
    scroll-behavior: smooth;
    }

    /* Set core body defaults */
    body {
    min-height: 100vh;
    text-rendering: optimizeSpeed;
    font-family:-apple-system, BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue", Arial,"Noto Sans",sans-serif,"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    }


    [type="checkbox"], [type="radio"] {box-sizing: border-box;padding: 0;}
    [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {height: auto;}
    [type="search"] {-webkit-appearance: textfield;}
    [type="search"]::-webkit-search-decoration {-webkit-appearance: none;}
    ::-webkit-file-upload-button {-webkit-appearance: button;font: inherit;}
    [hidden], [type="hidden"] {display: none;}

    /* *:focus:not(:focus-visible), *:focus { outline: 0;}*/

    button[disabled]{
        pointer-events: none;
        opacity:.5;
        filter:grayscale(1);
    }

    article, 
    aside, 
    figcaption, 
    figure, 
    footer, 
    header, 
    hgroup, 
    main, 
    nav, 
    section {
    display: block; 
    }

    /* Remove default margin */
    body,
    h1,
    h2,
    h3,
    h4,
    p,
    figure,
    blockquote,
    dl,
    dd {
    margin: 0;
    }

    svg{vertical-align: top;}

    /*
    Remove list styles (bullets/numbers)
    in case you use it with normalize.css
    ol, ul {
    list-style: none;
    }*/

    /* A elements that don't have a class get default styles */
    a:not([class]) {
    text-decoration-skip-ink: auto;
    }

    /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
    ul[role='list'],
    ol[role='list'] {
    list-style: none;
    }

    /* For images to not be able to exceed their container */
    img,
    picture {
    max-width: 100%;
    height: auto;
    display: block;
    border-style: none;
    overflow: hidden;
    }


    pre, code {font-family: monospace, monospace;font-size: 1em;}
    b, strong{font-weight: bolder;}
    em{font-style:italic;}

    sub, sup {font-size: 75%;line-height: 0;position: relative;vertical-align: baseline;}
    sub {bottom: -0.25em;}
    sup {top: -0.5em;}

    /* h1{
    font-size:3.815rem;// 61.04px
    }
    h2{
    font-size:3.052rem;// 48.832px
    }
    h3{
    font-size:2.441rem;// 39.056px 
    }
    h4{
    font-size:1.953rem;// 31.248px 
    }
    h5{
    font-size:1.563rem;// 25.008px 
    }
    h6{
    font-size:1.25rem;// 20px 
    } */

    /* Removes spacing between cells in tables */
    table {
    border-collapse: collapse;
    }

    /* Inherit fonts for inputs and buttons */
    input,
    button,
    textarea,
    select {
    font: inherit;
    }

    button, [type="button"], [type="reset"], [type="submit"] {
    -webkit-appearance: button;
    cursor: pointer;
    background-color: transparent;
    background-image: none;
    }

    textarea {
    overflow: auto;
    resize:vertical;
    }




    /* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
    @media (prefers-reduced-motion: reduce) {
        html:focus-within {
        scroll-behavior: auto;
        }
        
        *,
        *::before,
        *::after {
            animation-duration: 0.01ms !important;
            animation-iteration-count: 1 !important;
            transition-duration: 0.01ms !important;
            scroll-behavior: auto !important;
        }
    }

}

@layer grid{
    :root{
        /* FLUID FONT SIZES */
        --fluid-min-width: 640;
        --fluid-max-width: 990;

        --base-font-size: 16;

        --fluid-screen: 100vw;
        --fluid-bp: calc(
        (var(--fluid-screen) - var(--fluid-min-width) / 16 * 1rem) /
        (var(--fluid-max-width) - var(--fluid-min-width))
        );

        /* SYSTEM DEFAULT FONT FAMILY STACK */
        --system-font-family: -apple-system, BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue", Arial,"Noto Sans",sans-serif,"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";

        /* --font-family-general: var(--system-font-family);
        --font-family-headings: var(--font-family-general); */

        /* COLORS */
        /*--text-color: 0,0,0;*/
        --clr-background-contrast: 0,0,0;

        --text-color-alpha: .75;
        --bg-transparent: transparent;  
        --text-color: var(--clr-background-contrast );

        --text-color-auto: rgba( var(--text-color),var(--text-color-alpha,1) );

        color: var(--text-color-auto);
    }


    *{border-style:solid;border-width:0;}


    html::-webkit-scrollbar {
        display: none;
    }

    
    /* Hide scrollbar for IE, Edge and Firefox */
    html {
        scroll-behavior: smooth;
        overscroll-behavior-y: contain;
    }

    html, body, section{
        overflow-x: clip;
    }

    body,
    .gwe-body{
        scroll-behavior: smooth;
        min-height:100vh;
        display:flex;
        flex-direction:column;
        position:relative;
        font-family: var(--general-font-family,''), var(--system-font-family);
        background-color: var(--clr-background, #FFF);
        --default-contrast: 0,0,0;
        --text-color: var(--clr-background-contrast, var(--default-contast) );
        font-weight: 400;
    }

    /* FLUID FONT SIZE */
    h1,h2,h3,h4,h5,h6,p,blockquote,a,button, .gwe-p, .gwe-h1, .gwe-h2, .gwe-h3, .gwe-h4, .gwe-h5, .gwe-h6, .gwe-blockquote, .gwe-text, .gwe-label, summary, .gwe-dropdown, form, .gwe-filter-title, .gwe-separator{
        --min-font-size: min( ( var(--base-font-size) + ( ( var(--font-size) - var(--base-font-size) ) / 2.5) ), var(--font-size) );
        font-size: calc(((var(--min-font-size) / 16) * 1rem) + (var(--font-size) - var(--min-font-size)) * var(--fluid-bp));
    }

    @media (min-width: 990px) {
        h1,h2,h3,h4,h5,h6,p,blockquote,a,button, .gwe-p, .gwe-h1, .gwe-h2, .gwe-h3, .gwe-h4, .gwe-h5, .gwe-h6, .gwe-blockquote, .gwe-text, .gwe-label, summary, .gwe-dropdown, form, .gwe-filter-title, .gwe-separator{
            font-size: calc( (var(--font-size) / 16) * 1rem);
        }
    }

    @media (max-width: 640px) {
        h1,h2,h3,h4,h5,h6,p,blockquote,a,button, .gwe-p, .gwe-h1, .gwe-h2, .gwe-h3, .gwe-h4, .gwe-h5, .gwe-h6, .gwe-blockquote, .gwe-text, .gwe-label, summary, .gwe-dropdown, form, .gwe-filter-title, .gwe-separator{
            font-size: calc( (var(--min-font-size) / 16) * 1rem);
        }
    }
    /* END FLUID FONT SIZE */

    .gwe-p a,
    .gwe-text a,
    .gwe-label a,
    .gwe-blockquote a,
    .gwe-h1 a,
    .gwe-h2 a,
    .gwe-h3 a,
    .gwe-h4 a,
    .gwe-h5 a,
    .gwe-h6 a{
        color: var(--link-color);
    }

    h1,h2,h3,h4,h5,h6{
        --text-color-alpha: 1;
        text-wrap:balance;
    }

    .gwe-rich-text img{
        max-height: 90vmin;
        display:block;
        margin-inline: auto;
    }

    .gwe-rich-text iframe.ql-video{
        width:100%;
        aspect-ratio: 16 / 9;
        height:auto;
    }

    /* New block-JSON RTE (see RTE_BACKEND_HANDOFF.md §8) — content subset of GWE_EDITOR/src/ui/rte/rte.css. */
    .gwe-rte-paragraph      { margin:.35em 0; line-height:1.6; }
    .gwe-rte-simple-text    { margin:0; line-height:1.6; }
    .gwe-rte-heading-1      { font-size:2em;   font-weight:700; margin:.6em 0 .3em;  line-height:1.15; }
    .gwe-rte-heading-2      { font-size:1.6em; font-weight:700; margin:.55em 0 .3em; line-height:1.2; }
    .gwe-rte-heading-3      { font-size:1.3em; font-weight:600; margin:.5em 0 .25em; }
    .gwe-rte-heading-4      { font-size:1.15em;font-weight:600; margin:.5em 0 .25em; }
    .gwe-rte-heading-5      { font-size:1em;   font-weight:600; margin:.5em 0 .25em; }
    .gwe-rte-heading-6      { font-size:.9em;  font-weight:600; text-transform:uppercase; letter-spacing:.03em; margin:.5em 0 .25em; }
    ul.gwe-rte-list         { list-style:disc;    margin:.4em 0; padding-inline-start:1.4em; }
    ol.gwe-rte-list         { list-style:decimal; margin:.4em 0; padding-inline-start:1.4em; }
    .gwe-rte-divider        { border:none; border-top:1px solid rgba(150,150,150,.4); margin:1em 0; }
    .gwe-rte-callout        { border-radius:8px; padding:12px 14px; margin:.6em 0; }
    .gwe-rte-inline-code    { font-family:ui-monospace,Menlo,monospace; font-size:.9em; background:rgba(135,135,135,.22); padding:.1em .35em; border-radius:4px; }
    .gwe-rte-image-caption  { font-size:.85em; opacity:.7; margin-top:6px; }
    .gwe-rte-video-ratio    { position:relative; width:100%; padding-top:56.25%; } /* required so the absolutely-positioned iframe/video doesn't collapse */
    .gwe-rte-table          { font-size:.95em; }
    .gwe-rte-table-cell     { min-width:60px; }
    .gwe-rte-link           { color: var(--link-color, #3b82f6); text-decoration:underline; }
    .gwe-rte-link-button    { display:inline-block; text-decoration:none; }
    /* .gwe-button = the builder's existing button style (link "shown as button" reuses it) */

    [data-animation-split]{
        font-kerning: none;
        text-rendering: optimizeSpeed;
        text-wrap: wrap;
    }

    /* text-wrap:balance/pretty (e.g. the h1-h6 rule above) picks its own break points, which
       throws off SplitText's "lines" measurement - the split ends up not matching what's
       actually rendered. Force plain wrap for anything being split (and its clone, which
       inherits the real element's classes/tags and so is just as exposed) and !important since
       specificity alone hasn't reliably won against every text-wrap source in practice. */
    [data-animation-split],
    [data-animation-split] *,
    [data-animation-appear-clone],
    [data-animation-appear-clone] *{
        text-wrap: wrap !important;
    }

    /* :not([data-animation-appear-clone]) - the split-text ("chars"/"words"/"lines") animation
       animates a throwaway positioned clone in place of the real contentEditable element. That
       clone still carries the cloned data-animation-appear attribute but is never given
       data-animation-appear-start (onStart sets that on the real element only), so without this
       exclusion the clone stays visibility:hidden for the whole tween on published sites (which
       add .gwe-has-js) - the per-letter reveal plays invisibly and the text just pops in as one
       block at onComplete. Not reproducible in the editor iframe because it never adds .gwe-has-js. */
    .gwe-has-js [data-animation-appear]:not([data-animation-appear-start]):not([data-animation-appear-clone]){
        visibility:hidden;
    }

    h1{
        font-family: var(--heading-1-font-family,''), var(--general-font-family,''),  var(--system-font-family);
    }
    h2{
        font-family: var(--heading-2-font-family,''), var(--heading-1-font-family,''), var(--general-font-family,''),  var(--system-font-family);
    }
    h3{
        font-family: var(--heading-3-font-family,''), var(--heading-2-font-family,''), var(--heading-1-font-family,''), var(--general-font-family,''),  var(--system-font-family);
    }
    h4{
        font-family: var(--heading-4-font-family,''), var(--heading-3-font-family,''), var(--heading-2-font-family,''), var(--heading-1-font-family,''), var(--general-font-family,''),  var(--system-font-family);
    }
    h5{
        font-family: var(--heading-5-font-family,''), var(--heading-4-font-family,''), var(--heading-3-font-family,''), var(--heading-2-font-family,''), var(--heading-1-font-family,''),var(--general-font-family,''),  var(--system-font-family);
    }
    h6{
        font-family: var(--heading-6-font-family,''), var(--heading-5-font-family,''), var(--heading-4-font-family,''), var(--heading-3-font-family,''), var(--heading-2-font-family,''), var(--heading-1-font-family,''),var(--general-font-family,''),  var(--system-font-family);
    }

    p, .gwe-p{
        font-family: var(--paragraph-font-family,''), var(--general-font-family,''), var(--system-font-family);
    }

    blockquote, .gwe-blockquote{
        font-family: var(--paragraph-font-family,''), var(--general-font-family,''), var(--system-font-family);
    }

    .gwe-list{}

    .gwe-list li{
        margin-left: calc(var(--list-level,0) * var(--list-margin,1em))
    }

    .gwe-text, .gwe-label{
        font-family: var(--general-font-family,''), var(--system-font-family);
    }

    .gwe-details-summary{
        --text-color-alpha: 1;
    }

    :where(p, h1, h2, h3, h4, h5, h6, blockquote, a, button, .gwe-text, .gwe-p, .gwe-h1, .gwe-h2, .gwe-h3, .gwe-h4, .gwe-h5, .gwe-h6, .gwe-blockquote, .gwe-label, .gwe-form-submit, .gwe-footer-text, .gwe-link, .gwe-dropdown, .gwe-legal-text,.gwe-form, .gwe-layout, .gwe-layout-item, .gwe-details-summary, .gwe-lang-switcher, .gwe-list, .gwe-rich-text, .gwe-rte-content, .gwe-separator){
        --text-color-auto: rgba( var(--text-color),var(--text-color-alpha,1) );
        color: var(--text-color-auto);
    }

    .gwe-lang-switcher option{color:#000;}

    main{
        flex-grow:1;
    }

    section{
        display:block;
        align-content:start;
        /* min-height: fit-content; */
        /* contain: size layout; */
        /* display: flow-root; */
        /* max-height: max-content;  */
    }

    @supports (-webkit-touch-callout: none) {
        *{
            aspect-ratio: auto !important;
        }
    }

    header, section, footer, .gwe-container, .gwe-columns, .gwe-grid, .gwe-hr{
        clear:both;
    }

    details summary div{display: inline !important;}

    .skip-nav{
        position: absolute;
        padding: .5em;
        color: #FFF;
        background: #000;
        top: 0;
        left: 0;
        transform: translateY(-300%);
        transition: 0.3s;
        -moz-transition: 0.3s;
        -webkit-transition: 0.3s;
        -o-transition: 0.3s;
        z-index: 999;
        font-size: 1rem;
    }

    .skip-nav:focus{
        transform: translateY(0);
    }



        /* TODO REMOVE GRID */
        .gwe-grid{
            --grid-cols: 4;
            grid-template-columns: repeat(var(--grid-cols), 1fr);
        }

        .gwe-grid-cell{
            grid-column: span var(--col-span);
            grid-row: span var(--row-span);
        }

        .gwe-columns{
            --column-gap: 15;
            gap: calc(var(--column-gap,0) * 1px);
        }
        .gwe-column{
            --column-flex-basis: 1;
            flex-basis: calc( var(--column-flex-basis,1) * 100% );
        }
        /* END REMOVE GRID. */



    .gwe-nav{
        --nav-mode: block;
        --nav-display: block;
        --nav-mode-btn: none;

        display: var(--nav-display, block);
        justify-content: var(--nav-align, start);
    }

    .gwe-nav-menu-button{
        display: var(--nav-mode-btn,none);
        position:relative;
        z-index:999;
        width: var(--nav-btn-width, 48px);
        height: var(--nav-btn-height, 48px);
        --nav-menu-btn-final: var(--nav-menu-btn-mask, var(--nav-menu-btn, url(/assets/img/menu.svg)));

        /* Mismo fix que .gwe-icon: hay que redeclarar --text-color-auto acá, en la raíz, no
        alcanza con pisar --text-color-alpha en :after (ver comentario en .gwe-icon). */
        --text-color-alpha: 1;
        --text-color-auto: rgba( var(--text-color),var(--text-color-alpha) );
    }

    .gwe-nav-menu-button:after{
        content: "";
        display:block;
        width:100%;height:100%;

        background-color: var(--nav-icon-color, var(--text-color-auto));
        mask-image: var(--nav-menu-btn-final);
        mask-repeat: no-repeat;
        mask-position: center center;
        mask-size: 100%;
        -webkit-mask-image: var(--nav-menu-btn-final);
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-position: center center;
        -webkit-mask-size: 100%;
    }

    .gwe-nav-menu{
        display: var(--nav-mode, block);
        align-items: center;
    }

    .gwe-nav[open] > .gwe-nav-menu{
        display:block;
        
        position:fixed;
        inset: 0;
        z-index:100;
        overflow-y:auto;
    }

    .gwe-nav[open] > .gwe-nav-menu-button{
        --nav-menu-btn-final: var(--nav-menu-btn-close-mask, var(--nav-menu-btn-close, url(/assets/img/close.svg)));
    }


    /* ------------------------------------------------------------------ */
    /* Carrito (cart) — acceso al carrito para el encabezado. Wrapper flex */
    /* con ícono (máscara CSS, como el botón de menú), texto y contador.   */
    /* ------------------------------------------------------------------ */
    .gwe-cart{
        display: var(--visibility-flex, flex);
        align-items: center;
        position: relative;
        cursor: pointer;
    }

    .gwe-cart-icon{
        display: var(--visibility-block, block);
        position: relative;
        flex-shrink: 0;
        /* --cart-icon-width/--cart-icon-height quedan como fallback de compatibilidad para
        sitios que ya tenían un tamaño asimétrico guardado de antes de unificar el panel de
        Estilos > Carrito a un único campo "Tamaño" (--cart-icon-size, ver StyleManager.jsx) -
        si no están seteados (caso nuevo/normal), ambos ejes usan --cart-icon-size. */
        width: var(--cart-icon-width, var(--cart-icon-size, 24px));
        height: var(--cart-icon-height, var(--cart-icon-size, 24px));
        --cart-icon-final: var(--cart-icon-mask, none);

        /* Mismo fix que .gwe-icon: hay que redeclarar --text-color-auto acá, en la raíz, no
        alcanza con pisar --text-color-alpha en :after (ver comentario en .gwe-icon). */
        --text-color-alpha: 1;
        --text-color-auto: rgba( var(--text-color),var(--text-color-alpha) );
    }

    .gwe-cart-icon:after{
        content: "";
        display:block;
        width:100%;height:100%;

        background-color: var(--cart-icon-color, var(--text-color-auto));
        mask-image: var(--cart-icon-final);
        mask-repeat: no-repeat;
        mask-position: center center;
        mask-size: 100%;
        -webkit-mask-image: var(--cart-icon-final);
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-position: center center;
        -webkit-mask-size: 100%;
    }

    .gwe-icon{
        display: var(--visibility-block, block);
        position: relative;
        flex-shrink: 0;
        width: var(--icon-size, 24px);
        height: var(--icon-size, 24px);

        /* Los íconos van siempre a color plano (sin la opacidad al 75% que usan los textos):
        se redeclara --text-color-auto acá, en la raíz, porque el color "Contraste" elegido a
        mano desde el panel de estilos (StyleInputColor) escribe --icon-color en esta misma
        clase, no en :after - si solo se pisara --text-color-alpha en :after, ese --icon-color
        heredaría el valor de --text-color-auto ya congelado (con alpha .75) desde acá arriba. */
        --text-color-alpha: 1;
        --text-color-auto: rgba( var(--text-color),var(--text-color-alpha) );
    }

    .gwe-icon:after{
        content: "";
        display:block;
        width:100%;height:100%;

        background-color: var(--icon-color, var(--text-color-auto));
        mask-image: var(--icon-mask, none);
        mask-repeat: no-repeat;
        mask-position: center center;
        mask-size: 100%;
        -webkit-mask-image: var(--icon-mask, none);
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-position: center center;
        -webkit-mask-size: 100%;
    }

    .gwe-icon-empty{
        outline: 1px dashed rgba(0,0,0,.25);
        background-color: rgba(0,0,0,.04);
    }

    .gwe-dynamic-pagination-icon{
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: var(--icon-size, 16px);
        height: var(--icon-size, 16px);
        vertical-align: middle;

        /* Mismo fix que .gwe-icon: hay que redeclarar --text-color-auto acá, en la raíz, no
        alcanza con pisar --text-color-alpha en :after (ver comentario en .gwe-icon). */
        --text-color-alpha: 1;
        --text-color-auto: rgba( var(--text-color),var(--text-color-alpha) );
    }

    .gwe-dynamic-pagination-icon:after{
        content: "";
        display:block;
        width:100%;height:100%;

        background-color: var(--icon-color, var(--text-color-auto));
        mask-image: var(--icon-mask, none);
        mask-repeat: no-repeat;
        mask-position: center center;
        mask-size: 100%;
        -webkit-mask-image: var(--icon-mask, none);
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-position: center center;
        -webkit-mask-size: 100%;
    }

    .gwe-cart-badge{
        display: var(--visibility-flex, inline-flex);
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        min-width: 18px;
        height: 18px;
        padding: 0 5px;
        border-radius: 999px;
        line-height: 1;
        white-space: nowrap;
    }

    /* Imagen del item del carrito (Detalle de carrito): foto recortada. */
    .gwe-cart-product-image{
        object-fit: cover;
    }
    /* Recuadro placeholder cuando la línea todavía no tiene imagen (solo diseño). */
    .gwe-cart-product-image-empty{
        background-color: rgba(0,0,0,.06);
        outline: 1px dashed rgba(0,0,0,.15);
    }

    /* Control de carrito (Detalle de carrito): contenedor con el selector de cantidad arriba y el
       botón "Quitar del carrito" debajo. Mismo cascarón en el canvas (CartContainerComponent /
       CartQuantity*Component) y en el sitio publicado (CartControlComponent.php y hermanos);
       cart.js cablea −/campo/+/Quitar a la API del carrito. */
    .gwe-cart-control{
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        gap: 8px;
    }
    /* Selector de cantidad: [−] [valor] [+]. */
    .gwe-cart-quantity{
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }
    /* "Quitar del carrito": botón con apariencia de link, color de Error por defecto. NO fijamos
       `font` acá: el reset global (input,button,textarea,select{font:inherit}) ya hereda la
       tipografía, y así la regla fluida de font-size (selector `button`, que lee --font-size) no
       queda pisada por una clase de mayor especificidad — si no, el control de tamaño no aplica. */
    .gwe-cart-remove{
        padding: 0;
        border: none;
        background: none;
        color: var(--clr-error, #dc2626);
        text-decoration: underline;
        cursor: pointer;
    }
    .gwe-cart-remove:hover{
        opacity: .8;
    }
    /* Botones −/+ del selector: usan la clase gwe-button (look global del tema). El padding lateral
       (16px) y el borde redondeado (3px) por defecto se fijan por instancia (ver Blocks.js) para que
       ganen sobre los estilos globales de botón y sigan siendo editables. Acá solo el estado
       deshabilitado (tope de stock / mínimo 1). */
    .gwe-cart-quantity-btn:disabled{
        opacity: .5;
        cursor: default;
    }
    .gwe-cart-quantity-value{
        width: 44px;
        height: 28px;
        padding: 0;
        border: 1px solid rgba(0,0,0,.2);
        border-radius: 3px;
        background-color: #fff;
        color: inherit;
        font: inherit;
        text-align: center;
        box-sizing: border-box;
        -moz-appearance: textfield;
        appearance: textfield;
    }
    /* Sin flechas nativas del input number (Chrome/Safari): el +/− lo maneja el selector. */
    .gwe-cart-quantity-value::-webkit-outer-spin-button,
    .gwe-cart-quantity-value::-webkit-inner-spin-button{
        -webkit-appearance: none;
        margin: 0;
    }


    .gwe-nav[open] .gwe-dropdown{
        display:flex;
        flex-direction: column;
        align-items: center;
    }
    .gwe-nav[open] .gwe-dropdown > span{
        display:inline-flex;
    }
    .gwe-nav[open] .gwe-dropdown-content{
        position:static;
        width:auto;
    }



    .gwe-dropdown{
        position: relative;
        --btn-style: inline-block;
        display: var(--btn-style, inline-block);
        padding:10px;
    }

    .gwe-dropdown > span{
        display:flex;
        width:100%;
        align-items:center;
        gap:1ch;
        cursor:pointer;
    }



    .gwe-dropdown > span:after{
        content: "";
        width:0.4em;
        height:0.4em;
        border:1px solid currentColor;
        margin-left:auto;
        border-left:0;border-top:0;
        transform: scaleY(1) translateY(0) rotate(45deg);
        display:inline-block;
        transition: transform .2s ease-in-out;
    }



    .gwe-dropdown-content{
        --dropdown-absolute-top: 0;

        --dropdown-anchor: calc(100% + var(--dropdown-absolute-top) * 1px) auto auto 0;
        --dropdown-position: absolute;

        --dropdown-fixed-top: 0;
        --dropdown-fixed-width: 100%;

        --dropdown-backdrop: none;
        --dropdown-backdrop-opacity: 0.5;
        --dropdown-backdrop-blur: 0;

        --dropdown-fixed-anchor: calc((var(--dropdown-fixed-top,0) + var(--dropdown-absolute-top,0)) * 1px) 0 auto 0;
        display:none;
        position: var(--dropdown-position);
        inset: var(--dropdown-anchor);
        z-index: 100;
        background-color: var(--clr-header, var(--transparent));
        --text-color: var(--clr-header-contrast);
        min-width: 100%;
        width: max-content;
    }

    .gwe-dropdown[open]:after {

        content: var(--dropdown-backdrop,none);
        position: absolute;
        inset: -100vmax;
        background: rgba(0, 0, 0, var(--dropdown-backdrop-opacity, 0.5) );
        backdrop-filter: blur( calc(var(--dropdown-backdrop-blur,0) * 2px) );
        z-index: -1;
        display: block;
    }

    .gwe-dropdown-content:before{
        content: "";
        position: absolute;
        display: block;
        inset: calc(var(--dropdown-absolute-top) * -1px) 0 auto 0;
        height: calc(var(--dropdown-absolute-top) * 1px);
        background: transparent;
        opacity:0;
    }

    /* .gwe-dropdown-content:after{
        content: "";
        position: absolute;
        display: block;
        inset: var(--dropdown-extend);
        z-index: -1;
        background-color: var(--dropdown-bg-color);

        border-radius: inherit;
    } */

    .gwe-dropdown:not([data-behaviour="click"]):hover > .gwe-dropdown-content,
    .gwe-dropdown[data-behaviour="click"][open] > .gwe-dropdown-content,
    .gwe-dropdown[data-preview="true"] > .gwe-dropdown-content{
        display:block;
    }

    .gwe-dropdown:not([data-behaviour="click"]):hover > span:after,
    .gwe-dropdown[data-behaviour="click"][open] > span:after,
    .gwe-dropdown[data-preview="true"] > span:after{
        transform:  scaleY(-1)  translateY(-25%) rotate(45deg) ;
    }






    .gwe-div,
    .gwe-section,
    .gwe-text,
    .gwe-p,
    .gwe-h1,
    .gwe-h2,
    .gwe-h3,
    .gwe-h4,
    .gwe-h5,
    .gwe-h6,
    .gwe-blockquote,
    .gwe-line,
    .gwe-image,
    .gwe-form,
    .gwe-input-text,
    .gwe-label,
    .gwe-filter-title,
    .gwe-layout-item,
    .gwe-code{
        display: var(--visibility-block, block);
    }

    .gwe-form-recaptcha{
        opacity:.65;
    }

    .gwe-form-recaptcha, .gwe-form-recaptcha *{
        font-size: .75rem;
        /* opacity: .65; */
    }
    .gwe-form-recaptcha a{
        text-decoration: none;
    }
    .gwe-form-recaptcha a:hover{
        text-decoration: underline;
    }

    .gwe-button{
        --btn-style: inline-block;
        display: var(--btn-style, inline-block);
        --text-color-alpha: 1;
        text-decoration: none;
        /* width:fit-content; */
    }
    .gwe-button:empty{display:none;}
    .gwe-link{
        --btn-style: inline-block;
        display: var(--btn-style, inline-block);
        text-decoration:none;
        vertical-align: top;
    }
    .gwe-link:hover{
        text-decoration:underline;
    }
    .gwe-p a:hover{
        text-decoration:underline;
    }
    .gwe-link-block{
        text-decoration:none;
        display:block;
        --btn-style: block;
        display: var(--btn-style, block);
        --height-full:auto;
        height: var(--height-full, auto);
        vertical-align: top;
    }


    /* TODO REMOVE */
        .gwe-columns,
        .gwe-flex-container{
            display: var(--visibility-flex, flex);   
        }


        .gwe-column,
        .gwe-grid-cell{
            display: var(--visibility-flex, block);/*flex);*/
            flex-direction: column;
            min-width: 0;
            max-width: 100%;
        }

        .gwe-grid{
            display: var(--visibility-grid, grid);
        }
    /* END REMOVE */



    .gwe-video{
        display: var(--visibility-grid, grid);
        position: relative;

    }

    .gwe-image{
        --img-responsive: 100%;
        max-width: var(--img-responsive,100%);
        width:auto;
        height:auto;
        object-fit: contain;
        overflow: hidden;
    }

    .gwe-image[data-lightbox],
    .glightbox{
        cursor:zoom-in;
    }

    .gwe-line{
        --text-color-alpha: 1;
        --hr-border: 12px;
        --text-color-auto: rgba( var(--text-color),var(--text-color-alpha) );
        --hr-color: var(--text-color-auto);
        max-width: var(--hr-width,100%);
        background-color:var(--hr-color, rgba(0,0,0,0.5) );
        height: calc( var(--hr-border,5px) + var(--hr-border,5px) + var(--hr-height, 1px) );
        border-top: var(--hr-border) solid transparent;
        border-bottom: var(--hr-border) solid transparent;
        border-left:0;
        border-right:0;
        background-clip: padding-box;
        margin-block: 16px;
    }

    

    .gwe-video{
        align-items: stretch;
    }

    .gwe-video-iframe{
        width:100%;
        object-fit:cover;
    }   


    /* TODO dejar solo gwe-input */
    .gwe-input,
        .gwe-input-text,
        .gwe-input-email,
        .gwe-input-select,
        .gwe-input-textarea,
        .gwe-input-date,
        .gwe-input-number{
        width: 100%;
    }

    .gwe-input-textarea{
        resize: vertical;
        field-sizing: content;
        /* box-sizing: content-box; */
        min-height: 3lh;
        max-height: 10em;
    }

        /*TODO REMOVE */
        .gwe-form-submit{
            /* display: inline-block; */
            --text-color-alpha: 1;
        }
        /* END REMOVE */

    .gwe-input-container{
        display:block;
    }

    .gwe-input-container:has([required]) .gwe-label:not(:has([data-slate-leaf])):after,
    .gwe-input-container:has([required]) .gwe-label:has([data-slate-leaf]) [data-slate-leaf]:after{
        content:'*';
    }
    

        /* TODO REMOVE */
        .gwe-container{
            max-width: var(--container-width,960px);
            margin-left:auto;
            margin-right: auto;
        }
        /* END REMOVE */




    img[src*='img.svg']{
        display: none;
    }

    .gwe-video:has(img[src*='video.svg']){
        display: none;
    }


    section *{
        --transform-rotate-x: 0;
        --transform-rotate-y: 0;
        --transform-rotate-z: 0;

        --transform-translate-x: 0;
        --transform-translate-y: 0;
        --transform-translate-z: 0;

        --transform-scale: 1;

        --transform-skew-x: 0;
        --transform-skew-y: 0;

        /* transform-style: preserve-3d; */
        
        /* perspective: 1000px; ERROR WITH POSITION FIXED  */

        /* transform: scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y)) translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) translateZ(var(--transform-translate-z)) rotateX(var(--transform-rotate-x)) rotateY(var(--transform-rotate-y)) rotateZ(var(--transform-rotate-z)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)); */

        /* Only apply transform when needed - avoids breaking background-attachment: fixed */
        /* Transform is applied via inline style when animations are active, or when custom transform values are set */
    }

    /* Apply transform only to elements with animations or custom transform values */
    section *[style*="transform:"],
    section *[style*="--transform-"],
    [data-transform],
    section *[data-animation-scroll],
    section *[data-animation-appear],
    section *[data-animation-continuous] {
        transform: scale(var(--transform-scale)) translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) translateZ(var(--transform-translate-z)) rotateX(var(--transform-rotate-x)) rotateY(var(--transform-rotate-y)) rotateZ(var(--transform-rotate-z)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)); 
    }

    section{
        /* perspective: 1000px; */
        max-width: 100%;
    }

    *{
        --bg-overlay-opacity: 0;
        --background-image: none;
        --background-gradient: none;
        --background-repeat: no-repeat;
        --background-size: auto;
        --background-position: center center;
        --background-attachment: scroll;
        --background-gradient-attachment: scroll;

        --custom-shadow: 0;

        --filter-blur: 0;
        --filter-brightness: 0;
        --filter-saturation: 0;

        --backdrop-filter-blur: 0;

        --transition: 0s;

        transition: --bg-overlay-opacity var(--transition), all var(--transition);
        

        box-shadow: 0 calc(var(--custom-shadow) * 1px) calc(var(--custom-shadow) * 5px) 0 rgba(0, 0, 0, 0.25);

        background-image: linear-gradient(rgba(0, 0, 0, var(--bg-overlay-opacity, 0) ), rgba(0, 0, 0, var(--bg-overlay-opacity, 0) )), var(--background-image,none), var(--background-gradient,none);
        background-repeat: var(--background-repeat,no-repeat);
        background-size: auto, var(--background-size,auto);
        background-position: center center, var(--background-position,center center);
        background-attachment: scroll, var(--background-attachment,scroll), var(--background-gradient-attachment,scroll);

        /* filter: brightness( calc(100% + ( var(--filter-brightness) * 5%) ) ) saturate( calc(100% + ( var(--filter-saturation) * 10%) ) ); */

        /* backdrop-filter: blur( calc(var(--backdrop-filter-blur) * 2px) ); */

        /* overflow: visible; */
    }


        




    .gwe-hidden{
        display: none !important;
    }

    .gwe-map{
        position: relative;
        min-height: 300px;
        overflow: hidden;
    }
    .gwe-map-canvas{
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
    }
    .gwe-map-overlay{
        position: absolute;
        inset: 0;
        z-index: 1;
        cursor: pointer;
    }
    .gwe-map-placeholder{
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding: 1rem;
        background: #e5e7eb;
        color: #6b7280;
        font-size: 0.875rem;
        pointer-events: none;
    }

    .gwe-legal-text, .gwe-legal-text *{
        font-size:14px;
    }


    




    .gwe-gallery{
        --gallery-visible: var(--gallery-type, grid);
        --gallery-type: grid;
        --gallery-cols: 3;
        --gallery-gap: 10px;
        --carousel: grid;

        --gallery-img-height: 240;
        --gallery-justify-snap: 85%;

        --gallery-carousel-btns: none;

        --gallery-img-grid-aspect-ratio: 1 / 1;

        --gallery-img-aspect-ratio: var(--gallery-img-grid-aspect-ratio, 1 / 1);

        /* display:var(--gallery-type, grid); */

        display: var(--visibility-gallery, var(--gallery-type, grid));
        grid-template-columns: repeat(var(--gallery-cols,3), 1fr);
        gap: var(--gallery-gap,0px);


        flex-wrap: wrap;
        scrollbar-width: none;
        -ms-overflow-style: none;  /* IE and Edge */
        scroll-behavior: smooth;

        scroll-snap-type: x mandatory;
    }

    .gwe-gallery::after {
        content: '';
        flex-grow: 999999999;
        order: 999999999;
        min-width: calc(100% - var(--gallery-justify-snap,85%));
    }

    .gwe-gallery-item{
        overflow: hidden;
        flex-grow: calc(var(--w) * 100 / var(--h));
        flex-basis: calc(1px * var(--w) * var(--gallery-img-height) / var(--h));
        scroll-snap-align: center;

        /* Column/row span — only meaningful in the 2D grid ("Grilla") mode.
           The gallery inherits `--gallery-item-grid-col/row` to its items: it is
           left unset in grid mode (so the span fallback applies) and set to `auto`
           in carousel/justified mode to neutralize the span without discarding the
           stored span values. */
        --gallery-item-col-span: 1;
        --gallery-item-row-span: 1;
        grid-column: var(--gallery-item-grid-col, span var(--gallery-item-col-span, 1));
        grid-row: var(--gallery-item-grid-row, span var(--gallery-item-row-span, 1));
    }

    .gwe-gallery-item img{
        object-fit: cover;
        aspect-ratio: var(--gallery-img-aspect-ratio, 1);
    }

    /* Image limit ("+N" cut): images past the limit are kept in the DOM (so the
       lightbox can still reach them) but hidden in the grid, and the last visible
       image shows a "+N" overlay. */
    .gwe-gallery-item.gwe-gallery-item-hidden{
        display: none;
    }

    .gwe-gallery-item{
        position: relative;
    }

    .gwe-gallery-more{
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(0, 0, 0, var(--gallery-more-overlay, 0.5));
        color: var(--gallery-more-color, #fff);
        font-size: var(--gallery-more-font-size, 2rem);
        font-weight: 600;
        pointer-events: none;
    }



    .gwe-gallery-carousel-btns{
        display: var(--gallery-carousel-btns, none);
        pointer-events: none;
        position: sticky;
        left: 0;
        grid-column: 1;
        height:100%;
        z-index:2;
    }
        
    .gwe-gallery-carousel-btn{
        pointer-events: all;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        z-index: 100;
        padding:15px 5px;
        border-radius: 6px;
        background: rgba(0,0,0,.5);
        margin:10px;
    }

    .gwe-gallery-carousel-prev{
        left: 0;
    }

    .gwe-gallery-carousel-next{
        right: 0;
    }

    .gwe-gallery-carousel-btn:hover{
        cursor: pointer;
        background-color: rgba(0,0,0,.65);
    }

    .gwe-gallery-carousel-btn svg{
        width:25px;
        fill: #FFF;
    }

    @media (min-width: 768px) {
        .gslide-description{
            background: transparent !important;
            color:#FFF !important;
            text-align:center !important;
        }
    }


    .gwe-slider{
        display:grid;
        aspect-ratio:  2 / 1;
        position:relative;
    }

    .gwe-slider-item{
        grid-row:1;
        grid-column:1;
        align-content: center;

        opacity:0;
        pointer-events: none;

        transition: opacity .5s ease-in-out;
        transition-delay: .5s;
    }


    .gwe-slider:not(:has(.gwe-selected)) .gwe-slider-item[data-active]
    {
        opacity:1;
        pointer-events: all;    
        z-index:2;
        
        transition-delay: 0s;
    }

    .gwe-slider:has(.gwe-selected) .gwe-slider-item.gwe-selected,
    .gwe-slider:has(.gwe-selected) .gwe-slider-item:has(.gwe-selected)
    {
        opacity:1;
        pointer-events: all;    
        z-index:2;
        
        transition-delay: 0s;
    }

    .gwe-slider-nav{
        
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 10px;
        padding:20px;
        z-index:5;
        
        /* display: none; */
    }
        
    .gwe-slider-nav-btn{
        width: 12px;
        height: 12px;
        display:block;
        border-radius: 50%;
        background: rgba(255,255,255,1);
        box-shadow: 0 0 0 1px rgba(0,0,0,.1);
        cursor: pointer;
    }

    .gwe-slider-nav-btn[data-active]{
        scale:1.25
    }

    .gwe-slider-btn{
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        z-index: 100;
        padding:15px 5px;
        border-radius: 6px;
        background: rgba(0,0,0,.5);
        margin:0 10px;
    }

    .gwe-slider-prev{
        left: 0;
    }

    .gwe-slider-next{
        right: 0;
    }

    .gwe-slider-btn:hover{
        cursor: pointer;
        background-color: rgba(0,0,0,.65);
    }

    .gwe-slider-btn svg{
        width:25px;
        fill: #FFF;
    }






        /* .gwe-cookie-message{
            position:fixed;
            bottom:10px;
            left:10px;
            padding:15px;
            max-width:300px;
            background:var(--clr-header);
            color:var(--clr-header-contrast);
            z-index:100;
            border-radius: 6px;
            box-shadow: 0 0 0 1px rgba(0,0,0,.1);
        } */


    .grecaptcha-badge {
        visibility: hidden;
    }


    .gwe-slider, .gwe-slider-item {
    transform: none !important;
    perspective: none !important;
    }

    form{font-size:1rem;font-weight:400;}

    .pointer-events-none{
        pointer-events: none;
    }

    .gwe-list {
        padding-left: var(--list-margin, 1.5em);
        list-style-position: outside;
    }

    ol.gwe-list {
        list-style-type: decimal;
    }

    ul.gwe-list {
        list-style-type: disc;
    }



    .gwe-table{
        width:100%;
        table-layout: var(--table-layout,fixed);
        border-collapse: collapse;
        min-width: var(--table-min-width,none);
    }

    .gwe-table-wrapper{
        max-width:100%;
        width:100%;
        min-width:0;
        overflow-x:auto;
        -webkit-overflow-scrolling: touch;
    }

    @media (max-width: 640px) {
        .gwe-table-wrapper {
            max-width: 100vw;
        }
    }

    .gwe-table-cell{
        border-width: var(--table-border-width, 1px);
        border-color: var(--table-border-color, currentColor);
        border-style: solid;
        padding: var(--table-gap, 10px);
    }

    .gwe-table th.gwe-table-cell{
        background-color: var(--table-heading-color, transparent);
        --text-color: var(--table-heading-text-color, currentColor);
        text-align:inherit;
        font-weight:inherit;
    }

    .gwe-table thead{
        position:var(--table-heading-position,static);
        top:0;
        z-index:2;
    }

    .gwe-table th:first-child{
        position:var(--table-heading-position,static);
        left:0;
        z-index:3;
    }


    .gwe-editor-mode-preview a:empty, .gwe-editor-mode-preview a:not([data-href]){
        display:none;
    }








    /* LAYOUTS */

    .gwe-layout{


        /* max-width: var(--container-width,960px); */
        margin-left:auto;
        margin-right: auto;

        --height-full:auto;
        height: var(--height-full, auto);



        --layout: flex;
        --visibility-layout: var(--layout);
        display: var(--visibility-layout,flex);

        gap: var(--layout-gap);

        --layout-cols: 4;
        grid-template-columns: repeat(var(--layout-cols), 1fr);

        --layout-flex-direction: row;
        flex-direction: var(--layout-flex-direction);

        --layout-flex-wrap: nowrap;
        flex-wrap: var(--layout-flex-wrap);

        --layout-align-items: stretch;
        align-items: var(--layout-align-items);
        
        --layout-justify-items: start;
        justify-content: var(--layout-justify-items);

        --layout-flex-overflow: visible;
        overflow-x:var(--layout-flex-overflow);

        --layout-flex-scroll-snap: none;
        scroll-snap-type: var(--layout-flex-scroll-snap);

        --layout-flex-scroll-padding: 0px;
        

        /* scroll-padding: var(--layout-gap); tambien podria ser gap / 2; o setear un padding especifico*/

        --layout-items-basis: 0%;
        --layout-flex-items: 1 1 var(--layout-items-basis,0%);
        --layout-flex-items-multiplier: 1;


        /* "auto" = minimo nativo de flexbox (min-content): en texto con varias palabras
           permite achicarse hasta el ancho de la palabra mas larga y hacer wrap; en contenido
           que no puede partirse (un glifo, un numero, un icono) no se achica mas alla de su
           tamaño real, evitando que se corte. Un "Ancho minimo" fijo desde el panel pisa esto. */
        --layout-flex-items-min-width: auto;

        --layout-items-min-width: var(--layout-flex-items-min-width);

    }

    @media (max-width: 640px) {
        .gwe-layout{
            --layout-flex-direction: column;
        }
    }

    .gwe-layout-item{

        flex: var(--layout-flex-items, 1 1 var(--layout-items-basis,0%));

        /* "Encajar" guarda shrink:0 en --layout-flex-items ("0 0 auto"), lo que hace que el area
           nunca se achique y el texto nunca haga salto de linea, desbordando el layout. Forzamos
           shrink:1 (gana sobre el shorthand por ser declarada despues) para que el area se achique
           hasta el ancho del layout y el contenido haga wrap en vez de desbordar. */
        flex-shrink: 1;

        min-width: var(--layout-items-min-width,auto);

        scroll-snap-align: start;

        --layout-item-col-span: 1;
        --layout-item-row-span: 1;
        grid-column: span var(--layout-item-col-span);
        grid-row: span var(--layout-item-row-span);

        --layout-item-flex-grow: 1;
        flex-grow: calc( var(--layout-item-flex-grow,1) * (var(--layout-flex-items-multiplier,1)) );

    }



    /* DYNAMIC LISTS */


    .gwe-dynamic-list{

        /* max-width: var(--container-width,960px); */
        margin-left:auto;
        margin-right: auto;

        --layout: grid;
        --visibility-layout: var(--layout);
        /* display: var(--visibility-layout,grid); */

        --layout-cols: 4;
        

        --layout-flex-direction: row;

        --layout-flex-wrap: nowrap;

        --layout-align-items: stretch;
        
        --layout-justify-items: start;

        --layout-flex-overflow: hidden;

        --layout-flex-scroll-snap: none;

        /* scroll-padding: var(--layout-gap); tambien podria ser gap / 2; o setear un padding especifico*/

        --layout-items-basis: 0%;
        --layout-flex-items: 1 1 var(--layout-items-basis,0%);
        --layout-flex-items-multiplier: 1;

        --layout-flex-items-min-width: 0px;

        --layout-items-min-width: var(--layout-flex-items-min-width);


        --dynamic-list-filters: var(--dynamic-list-filters-width, 25%) 1fr;
        /* --btn-style: inline-block; */
    }


    .gwe-dynamic-list-content:has(.gwe-dynamic-list-filter){ /* container de filters + items */
        gap: var(--grid-gap);
        display: grid;
        grid-template-columns: var(--dynamic-list-filters);
        /* flex-wrap: wrap; */
        /* flex-direction: var(--dynamic-list-filters, row); */
    }

    .gwe-dynamic-list-filter{
        /* span all implicit rows → full-height sidebar */
        /* grid-row: 1 / -1;  */

        /* grid-column: 2; */
        /* flex: 0 0 var(--filters-location, 25%); */

        align-self:start;
    }

    .gwe-dynamic-list-filter-button{
        display: var(--filters-mode-button-display, none);
        width:var(--btn-filter-style,auto);
    }

    .gwe-dynamic-list-filter-content{
        display: var(--filters-mode-content-display, block);
    }

    @media (max-width: 640px) {
        .gwe-dynamic-list-filter-button{
            display: var(--filters-mode-button-display, block);
            /* var(--btn-style) */
        }

        .gwe-dynamic-list-filter-content{
            display: var(--filters-mode-content-display, none);
        }
    }

    .gwe-dynamic-list-filter-content.gwe-filter-visible{
        display:block !important;
    }



    .gwe-filter-group{
        display: block;
        /* flex-direction: var(--filter-group-direction, column); */

    }

    .gwe-filter-option{
        text-align: left;
        display:flex;
        width:auto;
        padding:0;
    }

    .gwe-filter-option-active,
    .gwe-editor-state-isgwe-filter-option-active{
        color:var(--clr-primary);
        /* font-weight: bold; */
    }

    .gwe-filter-option-active:after,
    .gwe-editor-state-isgwe-filter-option-active:after{
        content: ' ×';
        display:inline-block;
        margin-left:.5em;
    }

    .gwe-filter-group:has(.gwe-filter-option-active,.gwe-editor-state-isgwe-filter-option-active) > .gwe-filter-option:not(.gwe-filter-option-active,.gwe-editor-state-isgwe-filter-option-active){
        display:none;
    }



    .gwe-dynamic-list-items-container{
        flex:1 1 0;
        min-width: 0;
    }

    .gwe-dynamic-list-items{
        /* display: grid;
        gap: var(--grid-gap);
        grid-template-columns: repeat(var(--grid-cols), 1fr); */

        display: var(--visibility-layout,grid);
        gap: var(--layout-gap);
        grid-template-columns: repeat(var(--layout-cols), 1fr);

        flex-direction: var(--layout-flex-direction);
        flex-wrap: var(--layout-flex-wrap);
        align-items: var(--layout-align-items);
        justify-content: var(--layout-justify-items);
        overflow-x:var(--layout-flex-overflow);
        scroll-snap-type: var(--layout-flex-scroll-snap);
        scroll-padding: var(--layout-flex-scroll-padding, 0px);
    }

    .gwe-dynamic-list:not(:has(div.gwe-dynamic-item)){
        display:flex;
        flex-direction: column;
    }

    /* .gwe-dynamic-item{
        --item-col-span: 1;
        --item-row-span: 1;

        grid-column: span var(--item-col-span);
        grid-row: span var(--item-row-span);
    } */

    .gwe-dynamic-item{
        flex: var(--layout-flex-items, 1 1 var(--layout-items-basis,0%));

        min-width: var(--layout-items-min-width,none);

        scroll-snap-align: start;

        --layout-item-col-span: 1;
        --layout-item-row-span: 1;
        grid-column: span var(--layout-item-col-span);
        grid-row: span var(--layout-item-row-span);

        --layout-item-flex-grow: 1;
        flex-grow: calc( var(--layout-item-flex-grow,1) * (var(--layout-flex-items-multiplier,1)) );
    }

    

    .gwe-dynamic-list-pagination{
        /* grid-column: span var(--grid-cols); */
        display:flex;
        justify-content: center;
        align-items: center;
    }
        

    .gwe-dynamic-placeholder{
        display:none;
    }


    footer a[target="_F960AFIPInfo"]{
        display: inline-block;
    }

    footer a[target="_F960AFIPInfo"] img{
        height:1.4em;
        width:auto;
        margin-right:.6ch;
        vertical-align: text-bottom;
        display: inline-block;
    }

    footer a[target="_F960AFIPInfo"]:after {
    content: "Data fiscal";
    }
}


/* Lang Switcher */
.gwe-lang-switcher{
    position: relative;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: var(--font-size, 1rem);
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    text-align: inherit;
}

[data-slate-placeholder]{
    display:none !important;
}

[data-slate-zero-width="n"][data-slate-length="0"]{
    display:none !important;
}



.gwe-cookie-banner{

}

.gwe-cookie-banner-buttons{
    display:flex;
    gap:var(--cookies-buttons-gap,10px);
}

.gwe-cookie-banner-button{
    padding:4px 8px;
    border-width:1px;
    border-radius:3px;
    border-color:currentColor;
    flex:1;
}