/* GLIMRA Product Elements — all styles are scoped so each Elementor widget is independent. */
.gpe-missing-product,.gpe-editor-note{padding:12px 15px;border:1px dashed #c5bcae;color:#756952;font-size:13px;background:#f7f3ea}
.gpe-gallery{--gpe-thumb-width:85px;--gpe-gallery-gap:16px;display:grid;grid-template-columns:var(--gpe-thumb-width) minmax(0,1fr);gap:var(--gpe-gallery-gap);align-items:start;width:100%}
.gpe-gallery--right{grid-template-columns:minmax(0,1fr) var(--gpe-thumb-width)}
.gpe-gallery--right .gpe-gallery-thumbs{grid-column:2;grid-row:1}
.gpe-gallery--right .gpe-gallery-main{grid-column:1;grid-row:1}
.gpe-gallery--bottom{grid-template-columns:minmax(0,1fr)}
.gpe-gallery--bottom .gpe-gallery-thumbs{grid-row:2;flex-direction:row;overflow-x:auto;max-height:none}
.gpe-gallery-thumbs{display:flex;flex-direction:column;gap:10px;max-height:800px;overflow-y:auto;scrollbar-width:thin;min-width:0}
.gpe-thumb{position:relative;display:block;flex:0 0 auto;width:100%;aspect-ratio:1 / 1.15;min-width:0;padding:0!important;margin:0!important;border:0!important;outline:2px solid transparent;outline-offset:-2px;overflow:hidden;background:#efece8!important;cursor:pointer;opacity:.63;transition:opacity .2s,outline-color .2s}
.gpe-thumb img{width:100%;height:100%;display:block;object-fit:cover}
.gpe-thumb.is-active,.gpe-thumb:hover{opacity:1}
.gpe-thumb.is-active{outline-color:#c79841}
.gpe-gallery--bottom .gpe-thumb{width:var(--gpe-thumb-width)}
.gpe-gallery-main{position:relative;display:block;width:100%;min-width:0;aspect-ratio:.87;overflow:hidden;padding:0!important;margin:0!important;border:0!important;border-radius:0;background:#ede8df;color:#111;cursor:zoom-in}
.gpe-gallery-main img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:opacity .15s}
.gpe-gallery[data-lightbox="no"] .gpe-gallery-main{cursor:default}
.gpe-gallery-zoom{position:absolute;right:16px;top:16px;display:grid;place-items:center;width:38px;height:38px;background:#fff;border-radius:50%;font-size:21px;font-family:Arial,sans-serif;color:#111}
.gpe-lightbox{position:fixed;inset:0;z-index:999999;background:rgba(5,5,5,.92);display:flex;align-items:center;justify-content:center;padding:5vh 5vw}
.gpe-lightbox[hidden]{display:none}
.gpe-lightbox img{object-fit:contain;max-width:100%;max-height:90vh;box-shadow:0 12px 45px rgba(0,0,0,.2)}
.gpe-lightbox-close{position:absolute;top:15px;right:20px;background:none!important;border:0!important;color:white!important;font-size:32px;line-height:1;padding:12px!important;cursor:pointer}
.gpe-variation-form{margin:0!important;padding:0!important;border:0!important;background:transparent}
.gpe-variation-form .variations{margin:0!important;padding:0!important;border:0!important;display:block!important}
.gpe-var-row{display:block;margin-bottom:20px}
.gpe-var-label,.gpe-qty-label{display:block;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:0;color:#141414;line-height:1.5}
.gpe-var-label{margin-bottom:14px}
.gpe-var-select{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;padding:0!important;margin:0!important;border:0!important;pointer-events:none!important}
.gpe-var-options{display:flex;flex-wrap:wrap;gap:12px}
.gpe-var-option{display:inline-flex!important;align-items:center;justify-content:center;min-width:88px;min-height:48px;padding:14px 24px;margin:0!important;border:1px solid #d4cdc1;border-radius:0;box-shadow:none!important;background:#f6f2ea;color:#141414;line-height:1.1;font-size:14px;font-weight:500;white-space:normal;text-align:center;transition:background .2s,color .2s,border-color .2s;cursor:pointer}
.gpe-var-option:hover:not(:disabled){border-color:#181818;background:#eae3d7}
.gpe-var-option.is-selected{background:#111;color:#fff;border-color:#111}
.gpe-var-option:disabled{opacity:.35;cursor:not-allowed}
.gpe-var-reset{display:inline-block;background:none!important;border:0!important;box-shadow:none!important;color:#756f65!important;text-decoration:underline;font-size:12px;padding:0!important;margin:0 0 8px!important;cursor:pointer}
.gpe-variation-form .single_variation_wrap{display:none!important}
.gpe-variation-summary{font-size:13px;color:#5d5950;line-height:1.6}
.gpe-variation-summary:empty{display:none}
.gpe-quantity{width:fit-content;max-width:100%}
.gpe-qty-label{margin-bottom:16px}
.gpe-qty-controls{width:118px;height:46px;display:flex;align-items:stretch;justify-content:space-between;border:1px solid #cdc9c3;background:#f7f4ed;box-sizing:border-box;max-width:100%}
.gpe-qty-controls button{flex:1 1 30%;min-width:28px;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;color:inherit!important;font-size:17px;line-height:1;cursor:pointer}
.gpe-qty-controls button:disabled{opacity:.3;cursor:not-allowed}
.gpe-qty-controls input.gpe-qty-input{flex:1 1 30%;width:34px;min-width:0;height:100%;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;text-align:center;background:transparent!important;color:inherit!important;font-size:14px;appearance:textfield;-moz-appearance:textfield}
.gpe-qty-controls input::-webkit-inner-spin-button,.gpe-qty-controls input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.gpe-action{display:flex;flex-direction:column;gap:12px;width:100%}
.gpe-action .gpe-btn{display:inline-flex;gap:13px;align-items:center;justify-content:center;width:100%;min-height:58px;box-sizing:border-box;padding:12px 18px;margin:0;border:0;border-radius:0;box-shadow:none;color:#fff;background:#111;text-decoration:none!important;font-size:13px;font-weight:500;line-height:1.3;letter-spacing:.07em;text-align:center;cursor:pointer;transition:background .2s}
.gpe-action .gpe-btn-whatsapp:hover,.gpe-action .gpe-btn-cart:hover{background:#292929}
.gpe-action .gpe-btn[disabled],.gpe-action .gpe-btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.gpe-whatsapp-icon{display:inline-block;flex:none;fill:none}
.gpe-action-message{margin:0;font-size:13px;line-height:1.5;color:#905e27}
.gpe-action-message:empty{display:none}
.gpe-action-message.is-success{color:#207a45}
.gpe-preorder{display:inline-flex;gap:12px;align-items:center;color:#c79534;font-size:14px;font-weight:500;letter-spacing:.02em;text-transform:uppercase}
.gpe-preorder-symbol{font-size:10px;color:#c79534;line-height:1}
.gpe-delivery{display:flex;align-items:center;gap:15px;width:100%;box-sizing:border-box;padding:15px 18px;background:#ebe5da;color:#1b1b1b;font-size:14px;line-height:1.6}
.gpe-delivery svg{flex:none;color:#c79638}
@media(max-width:767px){
 .gpe-gallery:not(.gpe-gallery--bottom){grid-template-columns:minmax(0,1fr)}
 .gpe-gallery:not(.gpe-gallery--bottom) .gpe-gallery-thumbs{grid-column:1;grid-row:2;flex-direction:row;overflow-x:auto;max-height:none}
 .gpe-gallery:not(.gpe-gallery--bottom) .gpe-gallery-main{grid-column:1;grid-row:1}
 .gpe-gallery:not(.gpe-gallery--bottom) .gpe-thumb{width:var(--gpe-thumb-width)}
 .gpe-gallery-zoom{width:33px;height:33px;right:12px;top:12px}
 .gpe-var-option{min-width:78px;min-height:44px;padding:12px 18px}
}
/* Empty conditional widgets should not reserve space on a live single-product template. */
.elementor-widget-gpe_preorder:has(> .elementor-widget-container:empty),.elementor-widget-gpe_delivery:has(> .elementor-widget-container:empty){display:none!important}

/* v1.1: separate WooCommerce variation price and dynamic notice state. */
.gpe-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;width:100%;min-width:0;color:#171717;font-size:18px;line-height:1.35;font-weight:600;box-sizing:border-box}
.gpe-price-value{font:inherit;color:inherit}
.gpe-price-value .woocommerce-Price-amount{font:inherit;color:inherit}
.gpe-price-value del{color:#8c877e;font-weight:400;opacity:.75;margin-right:7px}
.gpe-price-value ins{color:#171717;text-decoration:none}
.gpe-price-extra{font-weight:400;color:#77716a;font-size:13px}
.gpe-preorder{box-sizing:border-box;width:fit-content;max-width:100%;min-height:0;line-height:1.4}
.gpe-preorder-label{display:inline-block;font-size:14px;line-height:inherit}
.gpe-preorder-symbol{display:inline-block;flex:none;font-size:10px;line-height:1}
.gpe-action .gpe-btn[hidden],.gpe-preorder[hidden],.gpe-delivery[hidden],.gpe-price[hidden]{display:none!important}
/* Hide conditional Elementor wrappers when their independent widget has no active content. */
.elementor-widget-gpe_preorder:has(.gpe-preorder[hidden]),.elementor-widget-gpe_delivery:has(.gpe-delivery[hidden]),.elementor-widget-gpe_price:has(.gpe-price[hidden]){display:none!important}

/* v1.2: unavailable variation feedback */
.gpe-variation-error{font-size:13px;line-height:1.5;color:#905e27;padding:8px 0}
.gpe-variation-error[hidden]{display:none!important}

/* v1.3 — self-contained WooCommerce Loop Item media / WhatsApp enquiry card.
   Use [gpe_catalog_card] in the Elementor Loop Item Shortcode widget. */
.gpe-catalog-card-media{position:relative;display:block;width:100%;aspect-ratio:1/1;overflow:hidden;isolation:isolate;background:#fff;margin:0;padding:0;box-sizing:border-box}
.gpe-catalog-card-media .gpe-card-image-link{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;margin:0;padding:0;overflow:hidden;text-decoration:none!important}
.gpe-catalog-card-media .gpe-card-photo{position:absolute;inset:0;display:block;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover;object-position:center;margin:0!important;padding:0!important;border:0;transform:none!important;transition:opacity .5s ease}
.gpe-catalog-card-media .gpe-card-main-photo{opacity:1;z-index:1}
.gpe-catalog-card-media .gpe-card-hover-photo{opacity:0;z-index:2}
.gpe-catalog-card-media .gpe-card-enquiry{box-sizing:border-box;position:absolute;z-index:3;bottom:0;left:0;right:0;display:flex!important;align-items:center;justify-content:center;width:100%;height:66px!important;min-height:66px!important;margin:0!important;padding:10px 12px!important;border:0!important;border-radius:0!important;box-shadow:none!important;text-align:center;text-decoration:none!important;text-transform:uppercase;color:#fff!important;background:#111!important;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;line-height:1.3;letter-spacing:-.01em;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(16px);transition:opacity .4s ease,transform .4s ease,visibility .4s ease}
.gpe-catalog-card-media .gpe-card-enquiry:hover,.gpe-catalog-card-media .gpe-card-enquiry:focus{background:#292929!important;color:#fff!important}
.gpe-catalog-card-media .gpe-card-image-link:focus-visible,.gpe-catalog-card-media .gpe-card-enquiry:focus-visible{outline:2px solid #c79534;outline-offset:-2px}
@media(hover:hover) and (pointer:fine){
 .gpe-catalog-card-media:hover .gpe-card-hover-photo{opacity:1}
 .gpe-catalog-card-media.gpe-has-hover:hover .gpe-card-main-photo{opacity:0}
 .gpe-catalog-card-media:hover .gpe-card-enquiry{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}
}
.gpe-catalog-card-media:focus-within .gpe-card-enquiry{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}
@media(min-width:768px) and (max-width:1024px){
 .gpe-catalog-card-media .gpe-card-enquiry{height:56px!important;min-height:56px!important;font-size:14px}
}
@media(hover:none), (pointer:coarse){
 .gpe-catalog-card-media{display:flex;flex-direction:column;aspect-ratio:auto;overflow:visible}
 .gpe-catalog-card-media .gpe-card-image-link{position:relative;inset:auto;flex:0 0 auto;width:100%;height:auto;aspect-ratio:1/1;overflow:hidden}
 .gpe-catalog-card-media .gpe-card-enquiry{position:relative;inset:auto;flex:0 0 auto;visibility:visible;opacity:1;pointer-events:auto;transform:none!important;height:56px!important;min-height:56px!important;font-size:13px;line-height:1.25}
}
@media(max-width:767px){
 .gpe-catalog-card-media .gpe-card-enquiry{height:52px!important;min-height:52px!important;font-size:12px;padding:8px!important}
}
@media(prefers-reduced-motion:reduce){
 .gpe-catalog-card-media .gpe-card-photo,.gpe-catalog-card-media .gpe-card-enquiry{transition:none!important}
}
