✦ Verified product
The G.A.K Duffel
GBP 35.00
Grind Active Kinetics
Verified independent store
→
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&display=swap'); :root{ --pa-gap:12px; --pa-pad-x:16px; --pa-pad-y-head:18px; --pa-pad-y-panel-t:12px;
--pa-pad-y-panel-b:16px; } .product-accordion, .product-accordion *{ box-sizing:border-box; max-width:100%; word-break:break-word; overflow-wrap:anywhere; } .product-accordion{ font-family:'Poppins',sans-serif; width:100%; margin:0; padding:0; overflow-x:hidden; /* no horizontal scroll */ } /* Desktop cap to match ATC width */ @media (min-width:1024px){ .product-accordion{ max-width:567px; } } /* Each accordion item */ .pa-item{ margin:var(--pa-gap) 0; border:0; border-radius:10px; background:#fff; overflow:hidden; /* keeps corners rounded */ } /* Summary header — Final 1 look */ .pa-summary{ list-style:none; display:flex; align-items:center; justify-content:space-between; /* title left, icon right */ gap:12px; width:100%; padding:var(--pa-pad-y-head) var(--pa-pad-x); font-size:21px; font-weight:500; /* medium */ line-height:1.25; color:#111; cursor:pointer; border-radius:10px; user-select:none; -webkit-tap-highlight-color: transparent; } .pa-summary:hover, .pa-item[open] .pa-summary{ background:#f5f5f5; } /* Hide default marker (Safari/Chrome) */ .pa-summary::-webkit-details-marker{ display:none; } .pa-title{ flex:1 1 auto; min-width:0; } /* Robust icon: two chars, theme-safe */ .pa-icon{ display:inline-flex !important; align-items:center; justify-content:center; min-width:22px; font-weight:700; font-size:20px; line-height:1; color:#111 !important; } .pa-icon .icon-minus{ display:none; } .pa-item[open] .pa-icon .icon-plus{ display:none; } .pa-item[open] .pa-icon .icon-minus{ display:inline; } /* Panel (animated via max-height) — side padding only here */ .pa-panel{ overflow:hidden; max-height:0; opacity:0; padding:0 var(--pa-pad-x); transition: max-height 280ms cubic-bezier(.2,.7,.3,1), opacity 220ms linear; will-change:max-height; } /* Stable inner wrapper holds vertical padding ALWAYS (prevents close jitter) */ .pa-panel-inner{ padding-top:var(--pa-pad-y-panel-t); padding-bottom:var(--pa-pad-y-panel-b); } /* Text */ .pa-panel p, .pa-panel li, .pa-panel strong{ font-size:14px; line-height:1.6; color:#333; } .pa-panel p{ margin:0; } .pa-panel ul{ margin:8px 0 0 18px; padding:0; } .pa-panel li{ margin:4px 0; } /* Mobile tweaks */ @media (max-width:480px){ .pa-summary{ font-size:19px; padding:16px 14px; } .pa-icon{ font-size:19px; min-width:20px; } .pa-panel{ padding:0 14px; } } Description + – The G.A.K Duffel Bag is your ultimate go-anywhere, do-anything companion — engineered for active lifestyles, weekend escapes, and everyday hustle. Crafted from durable, waterproof Oxford polyester, it features a spacious main compartment, custom branding, and versatile carry options to suit your day — whether you're hitting the gym, heading to training, or catching a flight. Product Details + – Material: Premium waterproof Oxford Polyester Closure Type: Zipper Pattern Type: Letter (Custom GRIND or G.A.K branding) Gender: Unisex Functionality: Multi-compartment design with large interior + side pockets Carry Options: Dual top handles + adjustable shoulder strap /* FINAL 1 behavior — smooth open/close, single-open, no close jitter */ (function(){ const items = document.querySelectorAll('#pa-root .pa-item'); const BUF = 24; // height buffer to avoid last-line clipping const DUR = 300; // ms fallback if transitionend is missed function measure(panel){ return panel.scrollHeight; } function setMax(panel, h){ panel.style.maxHeight = h + 'px'; } function smoothClose(d){ const p = d.querySelector('.pa-panel'); const start = measure(p); setMax(p, start); p.offsetHeight; // reflow setMax(p, 0); p.style.opacity = 0; let done = false; const cleanup = ()=>{ if(done) return; done = true; d.open = false; // remove [open] AFTER animation ends setMax(p, 0); // lock at 0 to prevent bounce }; // primary: transitionend const onEnd = (e)=>{ if(e.propertyName !== 'max-height') return; p.removeEventListener('transitionend', onEnd); cleanup(); }; p.addEventListener('transitionend', onEnd); // fallback: just in case a browser drops the event setTimeout(cleanup, DUR + 40); } function smoothOpen(d){ const p = d.querySelector('.pa-panel'); d.open = true; // enable [open] styles (header hover etc.) p.style.opacity = 1; setMax(p, 0); p.offsetHeight; // reflow setMax(p, measure(p) + BUF); } // Close all others function closeOthers(keep){ items.forEach(x=>{ if(x!==keep && x.open) smoothClose(x); }); } // Init + listeners items.forEach(d=>{ const s = d.querySelector('.pa-summary'); const p = d.querySelector('.pa-panel'); if(!d.open){ setMax(p, 0); p.style.opacity = 0; } s.addEventListener('click', (e)=>{ e.preventDefault(); // stop native instant toggle if(d.open){ smoothClose(d); }else{ closeOthers(d); smoothOpen(d); } }, { passive:false }); }); // Keep open heights correct on resize/orientation let raf=null; window.addEventListener('resize', ()=>{ if(raf) return; raf = requestAnimationFrame(()=>{ items.forEach(d=>{ if(d.open){ const p = d.querySelector('.pa-panel'); setMax(p, measure(p) + BUF); } }); raf = null; }); }, { passive:true }); })();