/* Fill fonts
--------------------------------------------- */
:root {--fill-text-min:25; --fill-text-margin:5; --fill-text-density:1;}
.js-fill-text {width: 100%;display: block; line-height: 1em;}
.js-fill-text>*{display: block;width: fit-content;font-size: inherit!important;line-height: inherit!important;}

/* Page Loader
-----------------------------------------------------*/

.js-loading-page #main-site {transition:opacity 0.2s; opacity:1; }
.js-loading-page.loading-page #main-site {opacity:0;}


/* temporaly disabled page loader to identify a good one */
.js-loading-page .page-loader {transition:opacity 0.2s; opacity:0;}
.js-loading-page.loading-page .page-loader {opacity:1}
.page-loader {position: fixed; pointer-events: none; filter: brightness(0.3); width: 100px;height: 100px;}
.page-loader {left:50%; top:50%; transform:translate(-50%,-50%); }
.page-loader svg { width:100%; height:100%; }


/* Link
-----------------------------------------------------*/
.js-link {cursor:pointer}

/* Lazy Load
-----------------------------------------------------*/

.lazy-image-wrapper {overflow:hidden; position:relative}
.lazy-spinner {display:block; position: absolute;top:50%;left: 50%; transform:translate(-50%,-50%); width:60%!important; height:60%!important; max-width: 70px!important; max-height: 70px!important;background:url('../images/loader/lazy-loading.svg') no-repeat center center; background-size:contain  }
img:not(.lazyload-img) ~  .lazy-spinner { display:none;}
img.lazyloaded ~  .lazy-spinner,
.map-loaded .lazy-spinner { display:none;}
.map-container .lazy-spinner {z-index:3;}
.lazyload-img {filter: blur(20px); }
.lazyload-img.lazyloaded {filter:none}
/*.lazyload-img.lazyloaded{ animation:loaded-image-remove-blur 0.5s; animation-fill-mode: forwards;}*/

@keyframes loaded-image-remove-blur {

    99%{filter: blur(0px);}
    100% {filter:none }

}

/* Img Contain
-----------------------------------------------------*/
.js-img-contain .lazy-image-wrapper {height:auto!important;width: auto!important; margin: 0 auto;}
.js-img-contain .lazy-image-wrapper.img-contain-vr {height: 100%!important;width: fit-content!important;}
.js-img-contain .lazy-image-wrapper.img-contain-hr {width: 100%!important; height: fit-content!important;}
.js-img-contain .lazy-image-wrapper.img-contain-vr img:not(.zoomImg){height: 100%!important; width: auto!important;}
.js-img-contain .lazy-image-wrapper.img-contain-hr img:not(.zoomImg){width: 100%!important; height: auto!important;}

/* 404 page
--------------------------------------------- */
#page-404 {display:flex;flex-flow:column;width:100%;height:var(--window);max-width:1100px;margin:0 auto;justify-content: center;align-items: center;text-align: center;padding: 10px;}
#page-404 h1 {--font-size:15vh;--line-height:1.1em;margin-bottom: 0.3em;}
.mobile #page-404 h1 {--font-size:60px;}
#page-404 .button {max-width: 300px;margin-top:40px;}


/* More
--------------------------------------------- */
.js-more:not(.active) .js-more-complete {display:none;}
.js-more.active .js-more-short {display:none;}
.js-more-button {cursor:pointer; white-space: nowrap;}
.js-more .js-truncate {display:inline}
.disable-more .js-more-button {pointer-events: none;}

/* Zoom
--------------------------------------------- */
.js-zoom {overflow:hidden;}
.js-zoom.zoom-enabled { cursor:zoom-in; }
.js-zoom .zoomImg { object-fit: contain; min-width: 100%; min-height: 100%; }

/* Preview
--------------------------------------------- */
.js-gallery-preview {cursor:pointer}

/* Reveal
--------------------------------------------- */
.reveal 
.reveal-child>* {visibility: hidden;}

/* Appear
--------------------------------------------- */
.js-appear-trigger {height:1px; display:block; width:100%; bottom:0; pointer-events:none; }

/* Resize frame
--------------------------------------------- */
.js-resize-frame *{width:100%!important}
.js-resize-frame iframe { min-width:0!important; }

/* Horizontal Drag Scroll
----------------------------------------------*/
.slide.dragging .slide-wrapper { pointer-events:none; }
.slide-wrapper.no-slide { cursor:auto; }

/* Infinite  Scroll Trigger
--------------------------------------------- */
.js-infinite-scroll-trigger {width: 100%;height:1px;pointer-events: none;text-align:center;opacity:0;position:absolute;top: 80%;left:0;}

.infinite-loading-icon { overflow: hidden; transition: height 1s;height: 0; display:flex; align-items:center; justify-content:center; }
.js-infinite-scroll-trigger  + .infinite-loading-icon {  height: 40px; }

/* Marquee
--------------------------------------------- */

.js-marquee {overflow:hidden; display:flex; align-items:center; width:100%; }
.js-marquee *{ -webkit-font-smoothing: antialised; backface-visibility: hidden; will-change:transform;-webkit-backface-visibility: hidden;
    --webkit-will-change:transform;  -webkit-font-smoothing: subpixel-antialiased; -webkit-transform-style: preserve-3d;-webkit-transform:translate3d(0,0,0); transform:translate3d(0,0,0);transform-style: preserve-3d; }
.js-marquee .marquee-content { padding-right:3px; height:100%; display:flex; }
.js-marquee .marquee-content>div+div {padding-left:15px}

/* Form Validation
--------------------------------------------- */
.js-form-validation .js-form-submit.empty-require-disable button,
.js-form-validation .js-form-submit.initial-require-disable button,
.js-form-validation .js-form-submit.not-match-disable button{ pointer-events: none;}
.js-form-validation .js-form-submit.empty-require-disable button:after , 
.js-form-validation .js-form-submit.not-match-disable button:after {content: '(Resolve all errors first)';margin-left: 10px;}

/* Cursor
--------------------------------------------- */
:root {--cursor-auto:'';}
.cursor-out #cursor,
.cursor-on-iframe #cursor,
.cursor-default #cursor{ display:none; }
#cursor {position:fixed; width:fit-content; z-index:20; pointer-events: none; }
.js-cursor,
.js-cursor * {cursor:none;}

#cursor img{ display:none; }
#cursor:not([class]) .icon-cursor-auto,
#cursor[class=""] .icon-cursor-auto {display:block;}
#cursor.loading .icon-cursor-loading {display:block;}
#cursor.pointer .icon-cursor-pointer {display:block;}
#cursor.move:not(.pointer) .icon-cursor-move {display:block;}

/* Cookie Notice
--------------------------------------------- */

:root {
--cookie-background:white; 
--cookie-align:left;
--cookie-round:30px;
--cookie-width:500px;
--cookie-space-around:20px;
--cookie-space-inside:20px; 
--cookie-space-between-text:20px;
--cookie-space-buttons:20px;
--cookie-buttons-round:30px;
}

.open-privacy #cookie-notice { display:none }
#cookie-notice {z-index:6!important; background:none!important; pointer-events:none;}
#cookie-notice .cookie-notice-container {background-color:var(--cookie-background);pointer-events:all;float: var(--cookie-align, left);}
#cookie-notice .cookie-notice-container {margin:var(--cookie-space-around, 20px);  padding:var(--cookie-space-around,20px); border-radius:var(--cookie-round,0)}
#cookie-notice .cookie-notice-container { max-width:var(--cookie-width,500px)!important; min-width:auto!important; width:calc(100% - calc(2*var(--cookie-space-around)));}
#cookie-notice .cookie-notice-container { text-align:left; }
#cookie-notice *{color: var(--color-text, inherit)!important;font-size:var(--font-size,'18px')!important;font-family:var(--font-family,sans-serif)!important;line-height: var(--line-height,auto)!important;margin: 0;}
#cookie-notice .column {--spacing:var(--cookie-space-between-text,15px)}
#cookie-notice #cn-notice-buttons {display: flex;margin-top:var(--cookie-space-buttons,15px);}
#cookie-notice #cn-notice-buttons {   column-gap: var(--cookie-space-between-buttons,20px); grid-auto-columns: var(--cookie-buttons-width,170px);}
#cookie-notice #cn-notice-buttons {justify-content:flex-end}

#cookie-notice #cn-notice-buttons a.cn-button {text-align:center;border:1px solid; border-radius:var(--cookie-buttons-round,0px); text-transform: initial; }
#cookie-notice #cn-notice-buttons a.cn-button {background:none; margin:0; padding:2px 20px; }
#cookie-notice #cn-close-notice {display: none;}

.mobile #cookie-notice #cn-notice-buttons {position:relative; z-index:2;display:flex; justify-content: space-between;}

/* Gallery
--------------------------------------------- */

.js-gallery-window li:not(.current) { display:none }
.js-gallery-window .slide li,
.js-gallery-window .scroll li {display:block}

/* To review */
.gallery { height: 100%; width: 100%;}
.gallery .gallery-inner {height: 100%; width: 100%;  }
.gallery:not(.gallery-vertical) .gallery-inner:not(.slide, .scroll){overflow: hidden;}
.gallery li {height: 100%; width: 100%; display: block;}
.gallery .lazy-image-wrapper {width: 100%;height:100%;}
.gallery .gallery-image-list:not(.scroll-wrapper) {display:flex;width:max-content;height:100%;justify-content: flex-start;}

.gallery .gallery-image-list.slide-wrapper img{height:100%;width:auto;max-width: none;display: block;}
.gallery .gallery-image-list.slide-wrapper li *:not(.gallery-info) {height: 100%;}

.gallery.contain  img {width: 100%;  height: 100%; object-fit: contain;}
.gallery.cover img {width:100%;height:100%; object-fit: cover;}

/* End To review */

.gallery-window-opened {overflow:hidden}

.gallery .gallery-button { position:absolute; right:0; top:0; cursor: pointer; mix-blend-mode: exclusion;}
.gallery .gallery-button:before, .gallery .gallery-button:after { --color-text:white }

.gallery.caption .gallery-caption {padding:5px; max-width:fit-content; margin:0 auto; text-align:center;}
.gallery.caption .caption-title {padding-bottom:2px}

.gallery.gallery-vertical .gallery-image-list {display:block;width:100%;height: auto;}
.gallery.gallery-vertical .gallery-inner li { height:auto; }
.gallery.gallery-vertical .gallery-inner li img {width:100%; height:auto;}
.gallery.gallery-vertical .gallery .lazy-image-wrapper {height:auto}

.gallery.gallery-window {position: fixed; bottom:-100%; left:0; width: 100%; height: 100%; z-index:3; background: var(--background-color,white);}
.gallery.gallery-window:not(.open) {opacity:0; pointer-events:none; }

.gallery.gallery-vertical.single {height: 100%;}
.gallery.gallery-vertical.single ul {align-items:center;height: 100%;}

.gallery.gallery-grid .gallery-inner {overflow:visible; height:auto; width:100%; }
.gallery.gallery-grid .gallery-image-list { overflow:visible; display:grid;grid-template-columns: var(--layout, repeat(var(--columns, 2 ),1fr));grid-column-gap: var(--spacing,10px);grid-row-gap: var(--spacing,10px); width:100%;}
.gallery.gallery-grid .gallery-inner li {height: max-content;width: 100%;}
.gallery.gallery-grid .gallery-inner li img {width:100%; height:auto;}

/*.gallery-start .js-gallery-prev,
.gallery-end .js-gallery-next {display:none!important}*/

.gallery ul.gallery-nav { width:100%; height:auto; display:flex; align-items:center; justify-content:center; left:0; }
/*.gallery-start .js-gallery-prev, 
.gallery-end .js-gallery-next {opacity: 0.3; pointer-events: none; cursor:auto;}*/
.js-gallery-prev,.js-gallery-next,.js-gallery-close { cursor:pointer}

.gallery ul li.gallery-nav-button {cursor:pointer;height: 13px;width: 13px;margin: 20px 7px;border: 3px solid white;display:block;border-radius:50%;}
.gallery ul li.gallery-nav-button.current {background:white; }

.gallery:not(.gallery-end) .gallery-next .end-icon {display:none}
.gallery.gallery-end .gallery-next .next-icon {display:none}

/* Simple Contact
--------------------------------------------- */
:root{
    --contact-border-width:1px;
    --contact-height:27px;
    --contact-border-color:var(--color-text);
    --contact-width:100%;
    --contact-spacing-message:0px;
    --contact-spacing:2px;
    --contact-spacing-left:2px;
    --contact-button-width:40px;
}

.contact-email {position:relative;max-width: var(--contact-width,300px);text-align:left;display:inline-block;width: 100%;}
.contact-email input[ type=email] {padding-left: var(--contact-spacing-left,2px);padding-bottom: 0;padding-top: 0;background:var(--contact-background,none);padding-right:var(--contact-button-width,50px);height:var(--contact-height,calc(var(--line-height) + 10px));margin-bottom:var(--contact-spacing,10px);border:var(--contact-border,var(--contact-border-width,2px) solid var(--contact-border-color,black));width: 100%;display: inline-flex;align-items: center;}
.contact-email input[ type=submit] {border:none;position:absolute;top:0;margin:0;display: flex;padding: 0;right:0;height:var(--contact-height,calc(var(--line-height) + 10px));width:var(--contact-button-width,50px);margin-right: var(--contact-border-width);text-transform: initial;align-items: center;}
.contact-email.submit-icon  input[ type=submit] {font-size:0!important; -webkit-mask: var(--contact-button-image) no-repeat center center; mask: var(--contact-button-image) no-repeat center center;-webkit-mask-size: contain;mask-size: containt;background-color:var(--contact-button-color, var(--color-text));}
.contact-email input[type="checkbox"] { width:var(--line-height); height:var(--line-height);}
.contact-email input[type="checkbox"]:after { width:80%; height:80%; }
.contact-email .fl_acceptance label{display:table;width: 100%;}
.contact-email .wpcf7-form-control-wrap {float:left;width: 100%;}
.contact-email .ajax-loader {height:var(--contact-height,calc(var(--line-height)))!important;width:calc(var(--contact-button-width,50px) - 15px)!important;position: absolute;left: 0;top: calc(100% + var(--contact-spacing-message,20px));}
form.contact-email .wpcf7-response-output { --font-size:0.9em; padding: 0;border:none;text-align:left!important;position: absolute;top: 100%;padding-top: var(--contact-spacing-message,20px);}
.contact-email .wpcf7-not-valid-tip { --font-size:0.8em; margin-top:-10px}
.contact-email br { height:0; display:none}
.contact-email .wpcf7-spinner {position: absolute; top:100%; left:0; }

/* Map
--------------------------------------------- */
.map-container {position:relative}
.marker-popup {position:absolute; cursor:pointer; display:block; z-index:3; }
.marker-popup img{max-width:100%;}


/* Pagination
-----------------------------------------------------*/
.page-numbers {display:flex; align-items:center; margin: 0 4px;}
.page-numbers .page-numbers-inner {display: flex; text-align:center;align-items:center;justify-content:center;margin-top:2px; padding-left: 5px;padding-bottom: 4px;padding-top: 2px;padding-right: 2px;}
.page-numbers:not(.prev):first-child:before, 
.page-numbers.prev+.page-numbers:before {content:"page"; margin:0 6px;}


/* Cart Menu
-----------------------------------------------------*/

.cart-menu .cart-menu-item {display:flex;align-items:center;width: 100%;height: 100%;}
.cart-menu .cart-contents-count {position:relative;  left:-7px; top:2px; background:black; --color-text:white; --font-size:9px; --font-family:sans-serif; font-weight:700; width:15px; height:15px; display:flex; align-items:center; justify-content:center; border-radius:30%}

/* Animate form label
-----------------------------------------------------*/

.js-label-animation .label-active label {top:0px; transform:scale(0.8); transform-origin:0 0}
.js-label-animation p {position:relative}
.js-label-animation p>label {position: absolute;top: 18px;left:15px;}
.js-label-animation label {transition:0.1s; }