/* EP Product Showcase – front end */
.epps,.epps *,.epps-modal,.epps-modal *,.epps-bag,.epps-bag *,.epps-detail,.epps-detail *{box-sizing:border-box}
.epps{--epps-card:#fff;--epps-ink:#0f1f14;--epps-mute:#5b6b60;--epps-line:#e4ece6;--epps-soft:#f3f8f4;--epps-shadow:0 10px 30px rgba(15,40,22,.08);--epps-shadow-h:0 24px 50px rgba(15,40,22,.16);color:var(--epps-ink);font-family:inherit;width:100%}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- grid ---------- */
.epps-grid{display:grid;grid-template-columns:repeat(var(--epps-cols,3),minmax(0,1fr));gap:var(--epps-gap,28px)}
.epps-empty{text-align:center;padding:50px 0;color:var(--epps-mute)}
.epps-results{transition:opacity .25s ease;min-height:120px}
.epps.is-loading .epps-results{opacity:.35;pointer-events:none}

/* ---------- card ---------- */
.epps-card{position:relative;background:var(--epps-card);border-radius:var(--epps-radius,20px);box-shadow:var(--epps-shadow);overflow:hidden;display:flex;flex-direction:column;transition:transform .5s cubic-bezier(.19,1,.22,1),box-shadow .5s ease;will-change:transform}
.epps-card:hover{transform:translateY(-8px);box-shadow:var(--epps-shadow-h)}
.epps-card__media{position:relative;aspect-ratio:var(--epps-ratio,4 / 3);overflow:hidden;background:linear-gradient(135deg,#eef5ef,#f8fbf8)}
.epps-card__media a{display:block;width:100%;height:100%}
.epps-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.19,1,.22,1)}
.epps-card:hover .epps-card__media img{transform:scale(1.08)}
.epps-card__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,30,14,.35));opacity:0;transition:opacity .4s;pointer-events:none}
.epps-card:hover .epps-card__media::after{opacity:1}
.epps-noimg{display:block;width:100%;height:100%;min-height:140px;background:repeating-linear-gradient(45deg,#eef5ef,#eef5ef 10px,#f6faf6 10px,#f6faf6 20px)}
.epps-badge{position:absolute;top:14px;left:14px;z-index:2;background:var(--epps-accent);color:var(--epps-on,#fff);font-family:inherit;font-weight:600;font-size:12px;line-height:1;letter-spacing:.03em;padding:8px 12px;border-radius:99px;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.epps-card__eye{position:absolute;right:14px;bottom:14px;z-index:2;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--epps-accent);display:grid;place-items:center;font-size:20px;transform:translateY(20px) scale(.6);opacity:0;transition:all .45s cubic-bezier(.19,1,.22,1);box-shadow:0 8px 20px rgba(0,0,0,.2)}
.epps-card:hover .epps-card__eye{transform:none;opacity:1}
.epps-card__body{padding:22px 22px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.epps-card__cat{display:inline-block;align-self:flex-start;font-family:inherit;font-weight:600;font-size:12px;line-height:1;text-transform:uppercase;letter-spacing:.08em;color:var(--epps-accent);background:rgba(var(--epps-accent-rgb),.1);padding:7px 11px;border-radius:99px}
.epps-card__title{margin:0;font-size:21px;line-height:1.25;font-weight:600}
.epps-card__title a{color:inherit;text-decoration:none;background:linear-gradient(var(--epps-accent),var(--epps-accent)) 0 100%/0 2px no-repeat;transition:background-size .45s}
.epps-card:hover .epps-card__title a{background-size:100% 2px}
.epps-card__ex{margin:0;color:var(--epps-mute);font-size:15px;line-height:1.6}
.epps-price{display:block;font-weight:700;font-size:19px;color:var(--epps-ink)}
.epps-price ins{text-decoration:none;color:var(--epps-accent)}
.epps-price del{color:#9aa79d;font-weight:400;font-size:.8em;margin-right:4px}
.epps-price small{font-weight:400;color:var(--epps-mute);font-size:.7em}
.epps-price.is-request{font-size:15px;font-weight:600;color:var(--epps-mute)}
.epps-card__btns{display:flex;gap:8px;margin-top:auto;padding-top:14px;flex-wrap:wrap}
.epps-ibtn{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px;border-radius:99px;border:1px solid var(--epps-line);background:#fff;color:var(--epps-ink);font-family:inherit;font-weight:600;font-size:13px;line-height:1;text-decoration:none;cursor:pointer;transition:all .3s;flex:1 1 auto;justify-content:center;white-space:nowrap}
.epps-ibtn svg{font-size:17px;flex:none}
.epps-ibtn:hover{transform:translateY(-2px);color:#fff}
.epps-ibtn.is-wa:hover{background:#25D366;border-color:#25D366}
.epps-ibtn.is-mail:hover{background:#1d6fd6;border-color:#1d6fd6}
.epps-ibtn.is-quote:hover,.epps-ibtn.is-quote.is-added{background:var(--epps-accent);border-color:var(--epps-accent);color:var(--epps-on,#fff)}
.epps-ibtn.is-wa svg{color:#25D366}.epps-ibtn.is-wa:hover svg{color:#fff}

/* overlay style */
.epps-style-overlay .epps-card{background:#0c2214;color:#fff;min-height:340px}
.epps-style-overlay .epps-card__media{aspect-ratio:var(--epps-ratio,4 / 5)}
.epps-style-overlay .epps-card__body{position:absolute;inset:auto 0 0 0;padding:22px;background:linear-gradient(180deg,transparent,rgba(5,20,9,.92) 45%);color:#fff;transition:transform .5s cubic-bezier(.19,1,.22,1)}
.epps-style-overlay .epps-card__title a,.epps-style-overlay .epps-price,.epps-style-overlay .epps-card__ex{color:#fff}
.epps-style-overlay .epps-card__ex{opacity:.85;max-height:0;overflow:hidden;transition:max-height .5s}
.epps-style-overlay .epps-card:hover .epps-card__ex{max-height:120px}
.epps-style-overlay .epps-card__cat{background:rgba(255,255,255,.16);color:#fff}
.epps-style-overlay .epps-card__btns{padding-top:6px}
.epps-style-overlay .epps-ibtn{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#fff}
.epps-style-overlay .epps-card__eye{top:14px;bottom:auto}
/* minimal style */
.epps-style-minimal .epps-card{background:transparent;box-shadow:none;border-radius:0;overflow:visible}
.epps-style-minimal .epps-card:hover{box-shadow:none}
.epps-style-minimal .epps-card__media{border-radius:var(--epps-radius,20px)}
.epps-style-minimal .epps-card__body{padding:16px 2px 0}
.epps-style-minimal .epps-card__cat{background:none;padding:0}

/* ---------- scroll animation ---------- */
.epps-anim-fade-up .epps-card,.epps-anim-zoom .epps-card,.epps-anim-fade .epps-card,.epps-anim-slide .epps-card{opacity:0;transition:opacity .9s ease,transform .9s cubic-bezier(.19,1,.22,1),box-shadow .5s ease;transition-delay:calc(var(--i,0) * 90ms)}
.epps-anim-fade-up .epps-card:not(.in){transform:translate3d(0,50px,0)}
.epps-anim-zoom .epps-card:not(.in){transform:scale(.88)}
.epps-anim-slide .epps-card:not(.in){transform:translate3d(-60px,0,0)}
.epps-anim-slide .epps-card:nth-child(even):not(.in){transform:translate3d(60px,0,0)}
.epps-card.in{opacity:1}
.epps-anim-fade-up .epps-card.in,.epps-anim-zoom .epps-card.in,.epps-anim-slide .epps-card.in{transform:none}
.epps-card.in:hover{transform:translateY(-8px);transition-delay:0s}
.elementor-editor-active .epps-card{opacity:1!important;transform:none!important}

/* ---------- filters ---------- */
.epps-filters{display:flex;flex-wrap:wrap;gap:16px 22px;align-items:center;margin-bottom:34px}
.epps-filters.is-left{justify-content:flex-start}.epps-filters.is-center{justify-content:center}.epps-filters.is-right{justify-content:flex-end}.epps-filters.is-between{justify-content:space-between}
.epps-filters.is-center .epps-tools{justify-content:center}
.epps-chips{display:flex;align-items:center;gap:8px;max-width:100%;min-width:0}
.epps-chips__track{display:flex;gap:10px;flex-wrap:wrap;padding:4px 2px}
.epps-chips.is-slider{position:relative;max-width:100%}
.epps-chips.is-slider .epps-chips__track{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
.epps-chips.is-slider .epps-chips__track::-webkit-scrollbar{display:none}
.epps-chips.is-slider .epps-chip{scroll-snap-align:start}
.epps-chips__arrow{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--epps-line);background:#fff;color:var(--epps-ink);display:grid;place-items:center;cursor:pointer;font-size:18px;box-shadow:var(--epps-shadow);transition:all .3s}
.epps-chips__arrow:hover{background:var(--epps-accent);color:var(--epps-on,#fff);border-color:var(--epps-accent)}
.epps-chips__arrow[disabled],.epps-chips:not(.has-overflow) .epps-chips__arrow{display:none}
.epps-chip{flex:none;border:1px solid var(--epps-line);background:#fff;color:var(--epps-ink);height:44px;padding:0 22px;border-radius:99px;font-family:inherit;font-weight:600;font-size:15px;line-height:1;cursor:pointer;transition:all .35s cubic-bezier(.19,1,.22,1);white-space:nowrap}
.epps-chip:hover{border-color:var(--epps-accent);color:var(--epps-accent);transform:translateY(-2px)}
.epps-chip.is-active{background:var(--epps-accent);border-color:var(--epps-accent);color:var(--epps-on,#fff);box-shadow:0 10px 22px rgba(var(--epps-accent-rgb),.35)}
.epps-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.epps-fld{position:relative;display:block}
.epps-sel,.epps-search input{height:46px;border-radius:99px;border:1px solid var(--epps-line);background:#fff;color:var(--epps-ink);padding:0 20px;font-family:inherit;font-weight:500;font-size:15px;line-height:1;min-width:190px;outline:0;transition:border-color .3s,box-shadow .3s;appearance:none;-webkit-appearance:none}
.epps-sel{padding-right:44px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") right 18px center no-repeat}
.epps-sel:focus,.epps-search input:focus{border-color:var(--epps-accent);box-shadow:0 0 0 4px rgba(var(--epps-accent-rgb),.15)}
.epps-search svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--epps-mute);font-size:18px;pointer-events:none}
.epps-search input{padding-left:44px;min-width:230px}
.epps-range{display:flex;align-items:center;gap:12px;min-width:240px}
.epps-range__l{font-family:inherit;font-weight:600;font-size:14px;line-height:1;white-space:nowrap}
.epps-range__l b{color:var(--epps-accent)}
.epps-range input{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:9px;background:linear-gradient(90deg,var(--epps-accent) var(--p,100%),var(--epps-line) var(--p,100%));outline:0}
.epps-range input::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--epps-accent);box-shadow:0 3px 10px rgba(0,0,0,.2);cursor:pointer}
.epps-range input::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--epps-accent);cursor:pointer}

/* ---------- pager ---------- */
.epps-pager{display:flex;justify-content:center;gap:8px;margin-top:38px}
.epps-pg{width:44px;height:44px;border-radius:50%;border:1px solid var(--epps-line);background:#fff;font-family:inherit;font-weight:600;font-size:15px;line-height:1;cursor:pointer;transition:all .3s}
.epps-pg:hover{border-color:var(--epps-accent)}
.epps-pg.is-active{background:var(--epps-accent);color:var(--epps-on,#fff);border-color:var(--epps-accent)}

/* ---------- buttons ---------- */
.epps-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:99px;border:1px solid transparent;font-family:inherit;font-weight:600;font-size:15px;line-height:1.2;text-decoration:none;cursor:pointer;transition:all .35s cubic-bezier(.19,1,.22,1);position:relative;overflow:hidden}
.epps-btn svg{font-size:20px;flex:none}
.epps-btn:hover{transform:translateY(-3px)}
.epps-btn.is-solid{background:var(--epps-accent);color:var(--epps-on,#fff);box-shadow:0 12px 26px rgba(var(--epps-accent-rgb),.32)}
.epps-btn.is-solid:hover{box-shadow:0 18px 34px rgba(var(--epps-accent-rgb),.42)}
.epps-btn.is-dark{background:#0f1f14;color:#fff}
.epps-btn.is-wa{background:#25D366;color:#fff;box-shadow:0 12px 26px rgba(37,211,102,.32)}
.epps-btn.is-wa::after,.epps-btn.is-solid::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);animation:eppsShine 3.6s ease-in-out infinite}
@keyframes eppsShine{0%,60%{left:-60%}100%{left:140%}}
.epps-btn.is-ghost{background:#fff;border-color:var(--epps-line,#e4ece6);color:#0f1f14}
.epps-btn.is-ghost:hover{border-color:var(--epps-accent);color:var(--epps-accent)}
.epps-btn.is-link{background:none;color:var(--epps-accent);padding:0 6px;min-height:40px}
.epps-btn.is-link:hover{transform:translateX(4px)}
.epps-btn.is-added{background:#0f1f14!important}

/* ---------- detail (popup + page) ---------- */
.epps-detail{--epps-ink:#0f1f14;--epps-mute:#5b6b60;--epps-line:#e4ece6;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:44px;align-items:start;color:var(--epps-ink);text-align:left}
.epps-detail.is-side-right .epps-detail__media{order:2}
.epps-detail__media{position:sticky;top:0;min-width:0}
.epps-gal{display:flex;flex-direction:column;gap:14px}
.epps-gal__main{position:relative;border-radius:calc(var(--epps-radius,20px) - 4px);overflow:hidden;background:#f3f8f4;aspect-ratio:5/4;display:grid;place-items:center;cursor:zoom-in}
.epps-gal__img{width:100%;height:100%;object-fit:contain;transition:opacity .35s ease,transform .5s ease;transform-origin:var(--zx,50%) var(--zy,50%)}
.epps-gal__main.is-zoom .epps-gal__img{transform:scale(1.9)}
.epps-gal__main.is-swap .epps-gal__img{opacity:0}
.epps-gal__thumbs{display:flex;gap:10px;overflow-x:auto;padding:2px;scrollbar-width:thin;order:2}
.epps-gal__t{flex:none;width:72px;height:72px;border-radius:14px;border:2px solid transparent;padding:0;background:#f3f8f4;overflow:hidden;cursor:pointer;opacity:.7;transition:all .3s}
.epps-gal__t img{width:100%;height:100%;object-fit:cover;display:block}
.epps-gal__t:hover{opacity:1}
.epps-gal__t.is-active{border-color:var(--epps-accent);opacity:1}
.epps-gal__nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#0f1f14;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.18);font-size:18px;opacity:0;transition:opacity .3s}
.epps-gal__main:hover .epps-gal__nav{opacity:1}
.epps-gal__nav.is-prev{left:12px}.epps-gal__nav.is-next{right:12px}
/* vertical thumbnails */
.is-thumbs-left .epps-gal,.is-thumbs-right .epps-gal{flex-direction:row;align-items:flex-start}
.is-thumbs-right .epps-gal{flex-direction:row-reverse}
.is-thumbs-left .epps-gal__thumbs,.is-thumbs-right .epps-gal__thumbs{order:0;flex-direction:column;overflow-y:auto;overflow-x:hidden;max-height:min(560px,70vh)}
.is-thumbs-left .epps-gal__main,.is-thumbs-right .epps-gal__main{flex:1;min-width:0}
.epps-detail__info{min-width:0;display:flex;flex-direction:column;gap:12px;padding-top:4px}
.epps-crumbs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;color:var(--epps-mute);line-height:1.4}
.epps-crumbs a{color:inherit;text-decoration:none}.epps-crumbs a:hover{color:var(--epps-accent)}
.epps-crumbs i{font-style:normal;opacity:.5}
.epps-crumbs .is-current{color:var(--epps-ink);font-weight:600}
.epps-detail__title{margin:0;font-size:clamp(26px,3vw,36px);line-height:1.15;font-weight:700;color:var(--epps-ink)}
.epps-detail .epps-price{font-size:26px}
.epps-sku{margin:0;color:var(--epps-mute);font-size:14px}
.epps-detail__desc{color:#34443a;font-size:16px;line-height:1.7}
.epps-detail__desc p{margin:0 0 12px}
.epps-more{max-height:none}
.epps-specs{width:100%;border-collapse:collapse;font-size:15px;border:1px solid var(--epps-line);border-radius:14px;overflow:hidden}
.epps-specs th,.epps-specs td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--epps-line);vertical-align:top}
.epps-specs tr:last-child th,.epps-specs tr:last-child td{border-bottom:0}
.epps-specs th{width:38%;background:#f3f8f4;font-weight:600}
.epps-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:6px}
.epps-actions.is-links{margin-top:0}
.epps-actions.is-links .epps-btn.is-wa{flex:1 1 100%}
.epps-qty{display:inline-flex;align-items:center;border:1px solid var(--epps-line);border-radius:99px;height:50px;overflow:hidden;background:#fff}
.epps-qty button{width:44px;height:100%;border:0;background:none;font-size:22px;cursor:pointer;color:#0f1f14}
.epps-qty button:hover{background:#f3f8f4}
.epps-qty input{width:52px;border:0;text-align:center;font-family:inherit;font-weight:600;font-size:16px;line-height:1;background:none;-moz-appearance:textfield;outline:0;color:#0f1f14}
.epps-qty input::-webkit-outer-spin-button,.epps-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* ---------- modal ---------- */
.epps-modal{position:fixed;inset:0;z-index:99990;display:flex;align-items:center;justify-content:center;padding:24px;visibility:hidden;opacity:0;transition:opacity .35s ease,visibility 0s .35s}
.epps-modal[hidden]{display:none}
.epps-modal.is-open{visibility:visible;opacity:1;transition:opacity .35s ease}
.epps-modal__ov{position:absolute;inset:0;background:rgba(5,20,9,.72);backdrop-filter:blur(6px)}
.epps-modal__dlg{position:relative;width:100%;max-height:calc(100vh - 48px);background:#fff;border-radius:28px;box-shadow:0 40px 90px rgba(0,0,0,.45);transform:translateY(40px) scale(.96);transition:transform .55s cubic-bezier(.19,1,.22,1);display:flex;flex-direction:column}
.epps-modal.is-open .epps-modal__dlg{transform:none}
.epps-modal__dlg:focus{outline:0}
.epps-size-md{max-width:860px}.epps-size-lg{max-width:1080px}.epps-size-xl{max-width:1240px}
.epps-modal__body{overflow-y:auto;padding:40px;overscroll-behavior:contain;border-radius:28px}
.epps-modal__body.is-loading{min-height:340px;display:grid;place-items:center}
.epps-modal__body.is-loading::after{content:"";width:44px;height:44px;border-radius:50%;border:4px solid #e4ece6;border-top-color:var(--epps-accent);animation:eppsSpin .8s linear infinite}
@keyframes eppsSpin{to{transform:rotate(360deg)}}
.epps-modal__x{position:absolute;top:14px;right:14px;z-index:5;width:44px;height:44px;border-radius:50%;border:0;background:#f3f8f4;color:#0f1f14;display:grid;place-items:center;cursor:pointer;font-size:22px;transition:all .3s}
.epps-modal__x:hover{background:var(--epps-accent);color:var(--epps-on,#fff);transform:rotate(90deg)}
.epps-modal__nav{position:absolute;top:50%;z-index:5;width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:#0f1f14;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 28px rgba(0,0,0,.3);font-size:20px;transition:all .3s;transform:translateY(-50%)}
.epps-modal__nav:hover{background:var(--epps-accent);color:var(--epps-on,#fff)}
.epps-modal__nav.is-prev{left:-23px}.epps-modal__nav.is-next{right:-23px}
.epps-modal__nav[hidden]{display:none}
html.epps-lock,html.epps-lock body{overflow:hidden}
.epps-modal .epps-detail__info>*{animation:eppsUp .6s cubic-bezier(.19,1,.22,1) both}
.epps-modal .epps-detail__info>*:nth-child(2){animation-delay:.05s}.epps-modal .epps-detail__info>*:nth-child(3){animation-delay:.1s}.epps-modal .epps-detail__info>*:nth-child(4){animation-delay:.15s}.epps-modal .epps-detail__info>*:nth-child(5){animation-delay:.2s}.epps-modal .epps-detail__info>*:nth-child(n+6){animation-delay:.25s}
@keyframes eppsUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

/* ---------- quote bag ---------- */
.epps-bagbtn{position:fixed;bottom:22px;z-index:99980;display:inline-flex;align-items:center;gap:10px;height:56px;padding:0 20px 0 18px;border-radius:99px;border:0;background:#0f1f14;color:#fff;font-family:inherit;font-weight:600;font-size:15px;line-height:1;cursor:pointer;box-shadow:0 16px 36px rgba(0,0,0,.3);transition:transform .35s cubic-bezier(.19,1,.22,1)}
.epps-bagbtn[hidden]{display:none}
.epps-bagbtn.is-left{left:22px}.epps-bagbtn.is-right{right:22px;bottom:96px}
.epps-bagbtn svg{font-size:22px}
.epps-bagbtn:hover{transform:translateY(-4px)}
.epps-bagbtn__n{min-width:24px;height:24px;border-radius:99px;background:var(--epps-accent);color:var(--epps-on,#fff);display:grid;place-items:center;font-size:13px;padding:0 6px}
.epps-bagbtn.is-bump{animation:eppsBump .5s}
@keyframes eppsBump{40%{transform:scale(1.15)}}
.epps-bag{position:fixed;inset:0;z-index:99991;visibility:hidden}
.epps-bag[hidden]{display:none}
.epps-bag.is-open{visibility:visible}
.epps-bag__ov{position:absolute;inset:0;background:rgba(5,20,9,.55);opacity:0;transition:opacity .35s}
.epps-bag.is-open .epps-bag__ov{opacity:1}
.epps-bag__panel{position:absolute;top:0;bottom:0;width:min(440px,100%);background:#fff;display:flex;flex-direction:column;transition:transform .5s cubic-bezier(.19,1,.22,1);box-shadow:0 0 60px rgba(0,0,0,.3)}
.epps-bag.is-left .epps-bag__panel{left:0;transform:translateX(-100%)}
.epps-bag.is-right .epps-bag__panel{right:0;transform:translateX(100%)}
.epps-bag.is-open .epps-bag__panel{transform:none}
.epps-bag__hd{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid #e4ece6}
.epps-bag__hd h3{margin:0;font-size:20px;color:#0f1f14}
.epps-bag__hd button{width:40px;height:40px;border:0;border-radius:50%;background:#f3f8f4;font-size:20px;cursor:pointer;display:grid;place-items:center}
.epps-bag__items{flex:1;overflow-y:auto;padding:12px 22px}
.epps-bag__empty{text-align:center;color:#5b6b60;padding:40px 0}
.epps-bi{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid #eef3ef;animation:eppsUp .4s both}
.epps-bi img,.epps-bi .epps-noimg{width:64px;height:64px;border-radius:12px;object-fit:cover;min-height:0}
.epps-bi b{display:block;font-size:15px;line-height:1.3;color:#0f1f14}
.epps-bi .epps-qty{height:36px;margin-top:6px}.epps-bi .epps-qty button{width:32px;font-size:18px}.epps-bi .epps-qty input{width:40px;font-size:14px}
.epps-bi__x{border:0;background:none;color:#b42318;font-size:22px;cursor:pointer;line-height:1}
.epps-bag__form{padding:16px 22px 22px;border-top:1px solid #e4ece6;display:flex;flex-direction:column;gap:10px;background:#fafcfa}
.epps-bag__form input,.epps-bag__form textarea{width:100%;border:1px solid #dbe6dd;border-radius:14px;padding:12px 14px;font-family:inherit;font-weight:500;font-size:15px;line-height:1.3;background:#fff;outline:0;color:#0f1f14}
.epps-bag__form input:focus,.epps-bag__form textarea:focus{border-color:var(--epps-accent);box-shadow:0 0 0 3px rgba(var(--epps-accent-rgb),.15)}
.epps-bag__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.epps-hp{position:absolute!important;left:-9999px!important;opacity:0}
.epps-bag__btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.epps-bag__btns .epps-btn{padding:0 12px;font-size:14px}
.epps-bag__clear{background:none;border:0;color:#5b6b60;font-size:13px;text-decoration:underline;cursor:pointer;align-self:center}
.epps-bag__msg{margin:0;font-size:14px;text-align:center;min-height:1em}
.epps-bag__msg.is-ok{color:#1a7f37}.epps-bag__msg.is-err{color:#b42318}
.epps-toast{position:fixed;left:50%;bottom:28px;z-index:99999;transform:translate(-50%,30px);background:#0f1f14;color:#fff;padding:14px 22px;border-radius:99px;font-family:inherit;font-weight:600;font-size:14px;line-height:1.3;box-shadow:0 16px 40px rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:all .45s cubic-bezier(.19,1,.22,1);max-width:90vw;text-align:center}
.epps-toast.is-on{opacity:1;transform:translate(-50%,0)}
.epps-toast a{color:#9be39a;margin-left:8px}

/* ---------- single page ---------- */
.epps-singlepage{padding:70px 0 90px}
.epps-wrap{max-width:1240px;margin:0 auto;padding:0 20px}
.epps-singlepage .epps-detail{gap:56px}
.epps-related{margin-top:90px}
.epps-related h2{font-size:30px;margin:0 0 26px}

/* ---------- responsive ---------- */
@media(max-width:1024px){
  .epps-detail{gap:30px}
  .epps-modal__nav.is-prev{left:8px}.epps-modal__nav.is-next{right:8px}
}
@media(max-width:820px){
  .epps-detail{grid-template-columns:1fr}
  .epps-detail.is-side-right .epps-detail__media{order:0}
  .epps-detail__media{position:static}
  .epps-modal{padding:0;align-items:flex-end}
  .epps-modal__dlg{max-width:none;max-height:94vh;border-radius:26px 26px 0 0;transform:translateY(100%)}
  .epps-modal__body{padding:22px 18px 28px;border-radius:26px 26px 0 0}
  .epps-modal__nav{display:none}
  .epps-modal__x{top:10px;right:10px;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.2)}
  .is-thumbs-left .epps-gal,.is-thumbs-right .epps-gal{flex-direction:column}
  .is-thumbs-left .epps-gal__thumbs,.is-thumbs-right .epps-gal__thumbs{order:2;flex-direction:row;max-height:none;overflow-x:auto;overflow-y:hidden}
  .epps-gal__main{aspect-ratio:4/3}
  .epps-gal__nav{opacity:1}
}
@media(max-width:640px){
  .epps-filters{gap:12px;margin-bottom:24px}
  .epps-filters.is-center,.epps-filters.is-right,.epps-filters.is-between{justify-content:flex-start}
  .epps-chips{width:100%}
  .epps-chips:not(.is-slider) .epps-chips__track{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .epps-chips__arrow{display:none!important}
  .epps-tools{width:100%}.epps-tools .epps-fld,.epps-sel,.epps-search input{width:100%;min-width:0}
  .epps-card__body{padding:18px 16px}
  .epps-card__title{font-size:19px}
  .epps-card__eye{display:none}
  .epps-actions{flex-direction:column;align-items:stretch}.epps-actions .epps-btn,.epps-actions .epps-qty{width:100%}.epps-qty{justify-content:space-between}.epps-qty input{flex:1}
  .epps-bagbtn.is-left{left:14px;bottom:14px}.epps-bagbtn.is-right{right:14px;bottom:84px}
  .epps-bagbtn__t{display:none}.epps-bagbtn{padding:0 16px}
  .epps-bag__row,.epps-bag__btns{grid-template-columns:1fr}
  .epps-singlepage{padding:40px 0 60px}
}
@media(hover:none){.epps-card:hover{transform:none}.epps-card__eye{display:none}.epps-style-overlay .epps-card__ex{max-height:none}}
@media(prefers-reduced-motion:reduce){
  .epps *,.epps-modal *,.epps-bag *{animation:none!important;transition-duration:.01ms!important}
  .epps-card{opacity:1!important;transform:none!important}
}

/* ---------- theme resets (links / buttons inside themes that style every <a>) ---------- */
body .epps a,body .epps a:hover,body .epps a:focus,body .epps-modal a,body .epps-modal a:hover,body .epps-bag a,body .epps-singlepage a{text-decoration:none!important;box-shadow:none}
body .epps .epps-card__title a,body .epps .epps-card__title a:hover{color:var(--epps-ink,#0f1f14)!important}
body .epps-style-overlay .epps-card__title a{color:#fff!important}
body .epps-btn.is-solid,body .epps-btn.is-solid:hover{color:var(--epps-on,#fff)!important}
body .epps-btn.is-wa,body .epps-btn.is-wa:hover{color:#fff!important}
body .epps-btn.is-ghost{color:#0f1f14!important}body .epps-btn.is-ghost:hover{color:var(--epps-accent)!important}
body .epps-btn.is-link,body .epps-btn.is-link:hover{color:var(--epps-accent)!important}
body .epps-btn.is-dark{color:#fff!important}
body .epps a.epps-ibtn,body .epps button.epps-ibtn{color:#0f1f14!important}body .epps a.epps-ibtn:hover,body .epps button.epps-ibtn:hover{color:#fff!important}
body .epps-style-overlay a.epps-ibtn,body .epps-style-overlay button.epps-ibtn{color:#fff!important}
body .epps .epps-ibtn.is-quote.is-added,body .epps .epps-ibtn.is-quote:hover{color:var(--epps-on,#fff)!important}
body .epps button{letter-spacing:normal;text-transform:none}
body .epps-crumbs a{color:inherit}
body .epps-detail h2,body .epps-detail h1{color:var(--epps-ink,#0f1f14)}
