{"product_id":"gaggia-58mm-dual-spout-portafilter-ashwood-x3","title":"Gaggia 58mm Dual Spout Portafilter, Ashwood","description":"\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cstyle\u003e\n  @keyframes fadeInUp {\n    from { opacity: 0; transform: translateY(20px); }\n    to { opacity: 1; transform: translateY(0); }\n  }\n  @keyframes fadeInDown {\n    from { opacity: 0; transform: translateY(-20px); }\n    to { opacity: 1; transform: translateY(0); }\n  }\n  @keyframes slideInLeft {\n    from { opacity: 0; transform: translateX(-25px); }\n    to { opacity: 1; transform: translateX(0); }\n  }\n  @keyframes slideInRight {\n    from { opacity: 0; transform: translateX(25px); }\n    to { opacity: 1; transform: translateX(0); }\n  }\n  @keyframes scaleIn {\n    from { opacity: 0; transform: scale(0.85); }\n    to { opacity: 1; transform: scale(1); }\n  }\n  @keyframes bounceIn {\n    0% { opacity: 0; transform: scale(0.3); }\n    50% { opacity: 1; transform: scale(1.05); }\n    70% { transform: scale(0.9); }\n    100% { transform: scale(1); }\n  }\n  @keyframes pulse {\n    0%, 100% { transform: scale(1); }\n    50% { transform: scale(1.03); }\n  }\n  @keyframes float {\n    0%, 100% { transform: translateY(0); }\n    50% { transform: translateY(-6px); }\n  }\n  @keyframes bounce {\n    0%, 100% { transform: translateY(0); }\n    50% { transform: translateY(-4px); }\n  }\n  @keyframes wobble {\n    0%, 100% { transform: rotate(0deg); }\n    25% { transform: rotate(-3deg); }\n    75% { transform: rotate(3deg); }\n  }\n  @keyframes heartbeat {\n    0%, 100% { transform: scale(1); }\n    10%, 30% { transform: scale(1.08); }\n    20%, 40% { transform: scale(1); }\n  }\n  @keyframes steamRise {\n    0% { opacity: 0; transform: translateY(0) scale(1) rotate(0deg); }\n    25% { opacity: 0.5; }\n    50% { transform: translateY(-15px) scale(1.2) rotate(5deg); }\n    75% { opacity: 0.3; }\n    100% { opacity: 0; transform: translateY(-30px) scale(1.5) rotate(-5deg); }\n  }\n  @keyframes shimmer {\n    0% { background-position: -200% 0; }\n    100% { background-position: 200% 0; }\n  }\n  @keyframes shimmerWave {\n    from { transform: translateX(-100%); }\n    to { transform: translateX(100%); }\n  }\n  @keyframes gradientShift {\n    0%, 100% { background-position: 0% 50%; }\n    50% { background-position: 100% 50%; }\n  }\n  @keyframes glow {\n    0%, 100% { box-shadow: 0 0 8px rgba(74,31,63,0.15); }\n    50% { box-shadow: 0 0 18px rgba(74,31,63,0.25), 0 0 12px rgba(201,169,106,0.4); }\n  }\n  @keyframes glowPulse {\n    0%, 100% { text-shadow: 0 0 5px rgba(74,31,63,0.3); }\n    50% { text-shadow: 0 0 15px rgba(74,31,63,0.6), 0 0 5px rgba(201,169,106,0.4); }\n  }\n  @keyframes ripple {\n    0% { box-shadow: 0 0 0 0 rgba(201,169,106,0.35); }\n    70% { box-shadow: 0 0 0 12px rgba(201,169,106,0); }\n    100% { box-shadow: 0 0 0 0 rgba(201,169,106,0); }\n  }\n  @keyframes sparkle {\n    0%, 100% { opacity: 0; transform: scale(0) rotate(0deg); }\n    50% { opacity: 1; transform: scale(1) rotate(180deg); }\n  }\n  @keyframes slideUpReveal {\n    from { clip-path: inset(100% 0 0 0); }\n    to { clip-path: inset(0 0 0 0); }\n  }\n  @keyframes rotateGlow {\n    0% { transform: rotate(0deg); filter: brightness(1); }\n    50% { transform: rotate(180deg); filter: brightness(1.2); }\n    100% { transform: rotate(360deg); filter: brightness(1); }\n  }\n  @keyframes colorPop {\n    0%, 100% { background-color: #4a1f3f; }\n    50% { background-color: #6b3059; }\n  }\n  @keyframes moveUpgrade {\n    0% { left: 0; opacity: 0; transform: scale(0.8); }\n    10%, 45% { opacity: 1; transform: scale(1); }\n    50% { left: 0; opacity: 0; transform: scale(0.8); }\n    51% { left: 100%; opacity: 0; transform: translateX(-100%) scale(0.8); }\n    60%, 95% { left: 100%; opacity: 1; transform: translateX(-100%) scale(1); }\n    100% { left: 100%; opacity: 0; transform: translateX(-100%) scale(0.8); }\n  }\n  @keyframes moveArrow {\n    0% { left: 0; opacity: 0; transform: translateY(-10px); }\n    10%, 45% { left: 0; opacity: 1; transform: translateY(0); }\n    50% { left: 0; opacity: 0; transform: translateY(10px); }\n    51% { left: 100%; opacity: 0; transform: translateX(-100%) translateY(10px); }\n    60%, 95% { left: 100%; opacity: 1; transform: translateX(-100%) translateY(0); }\n    100% { left: 100%; opacity: 0; transform: translateX(-100%) translateY(-10px); }\n  }\n  @keyframes upgradeGlow {\n    0%, 100% { box-shadow: 0 2px 12px rgba(201,169,106,0.6); }\n    50% { box-shadow: 0 4px 20px rgba(201,169,106,0.9), 0 0 15px rgba(255,215,0,0.5); }\n  }\n  @keyframes arrowPulse {\n    0%, 100% { transform: scale(1); filter: brightness(1); }\n    50% { transform: scale(1.2); filter: brightness(1.3); }\n  }\n  @keyframes arFloat {\n    0%, 100% { transform: translateY(0) rotateX(0deg); }\n    50% { transform: translateY(-12px) rotateX(5deg); }\n  }\n  @keyframes arHover {\n    0%, 100% { transform: translateY(0) scale(1); }\n    50% { transform: translateY(-8px) scale(1.02); }\n  }\n  @keyframes scanline {\n    0% { top: 0; opacity: 0; }\n    10%, 90% { opacity: 1; }\n    100% { top: 100%; opacity: 0; }\n  }\n  @keyframes particleFloat {\n    0%, 100% { transform: translate(0,0); opacity: 0.6; }\n    50% { transform: translate(10px,-20px); opacity: 1; }\n  }\n  @keyframes arGlow {\n    0%, 100% { box-shadow: 0 0 20px rgba(74,31,63,0.3), 0 0 40px rgba(201,169,106,0.2); }\n    50% { box-shadow: 0 0 40px rgba(74,31,63,0.5), 0 0 80px rgba(201,169,106,0.4); }\n  }\n  @keyframes techRotate {\n    0% { transform: rotate(0deg); opacity: 0.3; }\n    50% { opacity: 0.8; }\n    100% { transform: rotate(360deg); opacity: 0.3; }\n  }\n  @keyframes dataPulse {\n    0%, 100% { opacity: 0.65; transform: scale(1); }\n    50% { opacity: 1; transform: scale(1.05); }\n  }\n  @keyframes holoFade {\n    0%, 100% { opacity: 0.3; }\n    50% { opacity: 0.8; }\n  }\n  @keyframes mapleFloat {\n    0%, 100% { transform: translateY(0); }\n    50% { transform: translateY(-6px); }\n  }\n  @keyframes mapleRotate {\n    0%, 100% { transform: rotate(0deg); }\n    25% { transform: rotate(-6deg); }\n    75% { transform: rotate(6deg); }\n  }\n  @keyframes pulseGlow {\n    0%, 100% { opacity: 0.5; transform: scale(1); }\n    50% { opacity: 0.9; transform: scale(1.08); }\n  }\n  @keyframes textShimmer {\n    0%, 100% { opacity: 1; }\n    50% { opacity: 0.75; }\n  }\n  @keyframes espressoFlow {\n    0%, 100% { opacity: 0.35; transform: scaleY(0.7); }\n    50% { opacity: 1; transform: scaleY(1); }\n  }\n\n  .anthony-gaggia {\n    max-width: 920px;\n    margin: 0 auto;\n    color: #2b2b2b;\n    line-height: 1.65;\n    font-size: 16px;\n    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;\n  }\n  .anthony-gaggia * { box-sizing: border-box; }\n  .anthony-gaggia p { margin: 0 0 12px; }\n  .anthony-gaggia .ag-heading {\n    display: inline-block;\n    position: relative;\n    color: #4a1f3f;\n    font-size: 20px;\n    line-height: 1.3;\n    margin: 0 0 20px;\n    animation: slideInLeft 0.6s ease-out both;\n  }\n  .anthony-gaggia .ag-heading::after {\n    content: \"\";\n    position: absolute;\n    bottom: -7px;\n    left: 0;\n    width: 40px;\n    height: 2px;\n    background: linear-gradient(90deg,#4a1f3f,#c9a96a);\n    animation: slideUpReveal 0.8s ease-out 0.5s both;\n  }\n  .anthony-gaggia .ag-row {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 14px;\n    margin-bottom: 28px;\n  }\n  .anthony-gaggia .ag-fact {\n    flex: 1 1 130px;\n    min-width: 0;\n    padding: 14px 10px;\n    border: 1px solid #ece3e8;\n    border-radius: 10px;\n    background: #faf8f9;\n    text-align: center;\n    position: relative;\n    overflow: hidden;\n    box-shadow: 0 2px 8px rgba(0,0,0,0.04);\n    animation: bounceIn 0.8s ease-out both;\n  }\n  .anthony-gaggia .ag-label {\n    font-size: 12px;\n    color: #76636e;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    margin-top: 4px;\n  }\n  .anthony-gaggia .ag-value {\n    font-size: 14px;\n    font-weight: 700;\n    color: #4a1f3f;\n  }\n  .anthony-gaggia .ag-card {\n    flex: 1 1 270px;\n    padding: 18px;\n    border: 1px solid #ece3e8;\n    border-radius: 10px;\n    background: white;\n    position: relative;\n    overflow: hidden;\n    box-shadow: 0 2px 8px rgba(0,0,0,0.04);\n    animation: fadeInUp 0.8s ease-out both;\n  }\n  .anthony-gaggia .ag-card h3 {\n    margin: 8px 0;\n    font-size: 16px;\n    color: #2b2b2b;\n  }\n  .anthony-gaggia .ag-card p {\n    margin: 0;\n    color: #555;\n    font-size: 14.5px;\n  }\n  .anthony-gaggia .ag-number {\n    display: inline-block;\n    font-size: 13px;\n    color: #896d7d;\n    font-weight: 700;\n    letter-spacing: 1px;\n    padding: 4px 10px;\n    border: 1px solid #ece3e8;\n    border-radius: 20px;\n    background: linear-gradient(135deg,#f7f3f6,#fff);\n  }\n  .anthony-gaggia .ag-sweep {\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(90deg,transparent,rgba(201,169,106,0.12),transparent);\n    animation: shimmerWave 3s ease-in-out infinite;\n    pointer-events: none;\n  }\n  .anthony-gaggia .ag-content { position: relative; z-index: 1; }\n  .anthony-gaggia .ag-button {\n    flex: 1 1 220px;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    padding: 12px 18px;\n    min-height: 46px;\n    border: 1px solid #4a1f3f;\n    border-radius: 24px;\n    background: #4a1f3f;\n    color: white;\n    font-size: 14px;\n    font-weight: 700;\n    text-decoration: none;\n    text-align: center;\n    transition: background 0.25s ease, box-shadow 0.25s ease;\n  }\n  .anthony-gaggia .ag-button:hover {\n    background: #6b3059;\n    box-shadow: 0 4px 14px rgba(74,31,63,0.25);\n  }\n  .anthony-gaggia .ag-button:active { background: #35152c; }\n  .anthony-gaggia a:focus-visible {\n    outline: 3px solid #b88b3f;\n    outline-offset: 4px;\n  }\n  .anthony-gaggia .ag-secondary { background: white; color: #4a1f3f; }\n  .anthony-gaggia .ag-secondary:hover { background: #f0e8ed; }\n  .anthony-gaggia table {\n    width: 100%;\n    border-collapse: collapse;\n    font-size: 14px;\n    margin-bottom: 28px;\n    animation: scaleIn 0.8s ease-out both;\n  }\n  .anthony-gaggia th,\n  .anthony-gaggia td {\n    padding: 10px 12px;\n    border: 1px solid #ece3e8;\n    text-align: left;\n    vertical-align: top;\n    overflow-wrap: anywhere;\n  }\n  .anthony-gaggia th[scope=\"row\"] {\n    width: 42%;\n    background: #faf8f9;\n    font-weight: 600;\n  }\n  .anthony-gaggia .ag-table-section {\n    background: #4a1f3f;\n    color: white;\n  }\n  @media (max-width: 520px) {\n    .anthony-gaggia .ag-banner { padding: 20px 12px !important; gap: 10px !important; }\n    .anthony-gaggia .ag-leaf { font-size: 28px !important; }\n    .anthony-gaggia .ag-banner-title { font-size: 24px !important; }\n    .anthony-gaggia .ag-tech { padding: 24px 16px !important; }\n  }\n  @media (prefers-reduced-motion: reduce) {\n    .anthony-gaggia,\n    .anthony-gaggia *,\n    .anthony-gaggia *::before,\n    .anthony-gaggia *::after {\n      animation: none !important;\n      transition: none !important;\n    }\n  }\n\u003c\/style\u003e\n\u003cdiv class=\"anthony-gaggia\"\u003e\n\u003c!-- ===== INTRO ===== --\u003e\n\u003csection style=\"position: relative; overflow: hidden; margin-bottom: 20px; padding-top: 8px; animation: fadeInUp 0.8s ease-out both;\"\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg,transparent,rgba(201,169,106,0.5),transparent); animation: shimmerWave 2s ease-in-out infinite;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cp style=\"font-size: 18px; animation: fadeInUp 0.8s ease-out 0.2s both;\"\u003eThe \u003cspan style=\"color: #4a1f3f; font-weight: 600;\"\u003eGaggia 58mm Dual Spout Portafilter, Ashwood\u003c\/span\u003e brings a natural wood finish and a comfortable, balanced feel to your Gaggia Classic espresso setup.\u003c\/p\u003e\n\u003cp style=\"font-size: 15px; color: #666; margin: 0; animation: fadeInUp 0.8s ease-out 0.3s both;\"\u003eDesigned by Gaggia for the Classic Pro, this portafilter pairs an ashwood handle with a chrome-plated brass filter head for heat retention. The Gaggia logo cut into the end of the handle adds a distinctive finishing detail.\u003c\/p\u003e\n\u003c\/section\u003e\n\u003c!-- ===== QUICK FACTS ===== --\u003e\n\u003cdiv class=\"ag-row\" style=\"gap: 10px;\"\u003e\n\u003cdiv class=\"ag-fact\" style=\"animation-delay: 0.2s;\"\u003e\n\u003cdiv aria-hidden=\"true\" style=\"font-size: 22px; animation: pulse 2s ease-in-out infinite;\"\u003e⭕\u003c\/div\u003e\n\u003cdiv class=\"ag-label\"\u003eSize\u003c\/div\u003e\n\u003cdiv class=\"ag-value\"\u003e58 mm\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ag-fact\" style=\"animation-delay: 0.3s;\"\u003e\n\u003cdiv aria-hidden=\"true\" style=\"font-size: 22px; animation: heartbeat 2s ease-in-out infinite;\"\u003e☕\u003c\/div\u003e\n\u003cdiv class=\"ag-label\"\u003eDesign\u003c\/div\u003e\n\u003cdiv class=\"ag-value\"\u003eDual Spout\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ag-fact\" style=\"animation-delay: 0.4s;\"\u003e\n\u003cdiv aria-hidden=\"true\" style=\"font-size: 22px; animation: wobble 3s ease-in-out infinite;\"\u003e🪵\u003c\/div\u003e\n\u003cdiv class=\"ag-label\"\u003eHandle\u003c\/div\u003e\n\u003cdiv class=\"ag-value\"\u003eAshwood\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ag-fact\" style=\"animation-delay: 0.5s;\"\u003e\n\u003cdiv aria-hidden=\"true\" style=\"font-size: 22px; animation: float 3s ease-in-out infinite;\"\u003e⚙️\u003c\/div\u003e\n\u003cdiv class=\"ag-label\"\u003eFilter Head\u003c\/div\u003e\n\u003cdiv class=\"ag-value\"\u003eChrome-Plated Brass\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ===== SLIDING UPGRADE BAR ===== --\u003e\n\u003csection style=\"background: #faf8f9; border: 1px solid #ece3e8; border-radius: 10px; padding: 16px 18px; margin-bottom: 28px; position: relative; overflow: hidden; animation: fadeInUp 0.8s ease-out 0.6s both;\"\u003e\n\u003cdiv class=\"ag-sweep\" aria-hidden=\"true\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"ag-content\"\u003e\n\u003cdiv style=\"display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px;\"\u003e\n\u003cspan style=\"font-size: 14px; font-weight: bold; color: #4a1f3f; animation: glowPulse 2s ease-in-out infinite;\"\u003eYOUR CLASSIC, REFINED\u003c\/span\u003e \u003cspan style=\"font-size: 13px; color: #666;\"\u003eNatural Wood + Brass Construction\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"position: relative; margin-top: 14px; padding-bottom: 36px;\"\u003e\n\u003cdiv aria-hidden=\"true\" style=\"display: flex; gap: 4px;\"\u003e\n\u003cdiv style=\"flex: 1; height: 10px; border-radius: 5px; background: linear-gradient(90deg,#4a1f3f,#6b3059,#4a1f3f); background-size: 200% 100%; animation: gradientShift 3s ease-in-out infinite;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv style=\"flex: 1; height: 10px; border-radius: 5px; background: linear-gradient(90deg,#4a1f3f,#6b3059,#4a1f3f); background-size: 200% 100%; animation: gradientShift 3s ease-in-out infinite 0.2s;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv style=\"flex: 1; height: 10px; border-radius: 5px; background: linear-gradient(90deg,#4a1f3f,#6b3059,#4a1f3f); background-size: 200% 100%; animation: gradientShift 3s ease-in-out infinite 0.4s;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv style=\"flex: 1; height: 10px; border-radius: 5px; background: linear-gradient(90deg,#4a1f3f,#6b3059,#4a1f3f); background-size: 200% 100%; animation: gradientShift 3s ease-in-out infinite 0.6s;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv style=\"flex: 1; height: 10px; border-radius: 5px; background: linear-gradient(90deg,#c9a96a,#e7d0a5,#c9a96a); background-size: 200% 100%; animation: gradientShift 3s ease-in-out infinite 0.8s;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; top: 18px; left: 0; right: 0; height: 28px;\"\u003e\n\u003cdiv style=\"position: absolute; padding: 3px 10px; border-radius: 12px; background: linear-gradient(135deg,#c9a96a,#f4d493,#c9a96a); color: #4a1f3f; font-size: 12px; font-weight: 800; letter-spacing: 1px; white-space: nowrap; animation: moveUpgrade 6s ease-in-out infinite, upgradeGlow 2s ease-in-out infinite;\"\u003eASHWOOD\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; top: 9px; left: 0; right: 0;\"\u003e\n\u003cdiv style=\"position: absolute; color: #a87d35; animation: moveArrow 6s ease-in-out infinite;\"\u003e\u003cspan style=\"display: inline-block; animation: arrowPulse 2s ease-in-out infinite;\"\u003e▼\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"display: flex; justify-content: space-between; gap: 12px; font-size: 12px; color: #76636e;\"\u003e\n\u003cspan\u003eEveryday Espresso\u003c\/span\u003e \u003cspan\u003eA More Personal Setup\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp style=\"font-size: 13px; color: #76636e; margin: 8px 0 0;\"\u003eA material and handling upgrade for a compatible Gaggia Classic machine, with the familiar dual-spout format.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ===== FEATURE CARDS ===== --\u003e\n\u003ch2 class=\"ag-heading\"\u003eWhy Choose the Gaggia Ashwood Portafilter\u003c\/h2\u003e\n\u003cdiv class=\"ag-row\"\u003e\n\u003carticle class=\"ag-card\" style=\"animation-delay: 0.4s;\"\u003e\n\u003cdiv class=\"ag-sweep\" aria-hidden=\"true\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"ag-content\"\u003e\n\u003cspan class=\"ag-number\" style=\"animation: rotateGlow 8s linear infinite;\"\u003e01\u003c\/span\u003e\n\u003ch3\u003eNatural Ashwood Handle\u003c\/h3\u003e\n\u003cp\u003eThe wooden handle adds warmth and character to your coffee station while providing a comfortable grip for everyday espresso preparation.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003carticle class=\"ag-card\" style=\"animation-delay: 0.5s;\"\u003e\n\u003cdiv class=\"ag-sweep\" aria-hidden=\"true\" style=\"animation-delay: 0.3s;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"ag-content\"\u003e\n\u003cspan class=\"ag-number\" style=\"animation: heartbeat 2s ease-in-out infinite;\"\u003e02\u003c\/span\u003e\n\u003ch3\u003eChrome-Plated Brass Head\u003c\/h3\u003e\n\u003cp\u003eThe filter head uses chrome-plated brass for heat retention, combining a substantial feel with a polished metal finish.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003carticle class=\"ag-card\" style=\"animation-delay: 0.6s;\"\u003e\n\u003cdiv class=\"ag-sweep\" aria-hidden=\"true\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"ag-content\"\u003e\n\u003cspan class=\"ag-number\" style=\"animation: bounce 2s ease-in-out infinite;\"\u003e03\u003c\/span\u003e\n\u003ch3\u003eClassic Dual-Spout Format\u003c\/h3\u003e\n\u003cp\u003eThe two-spout design retains the traditional portafilter layout for your compatible Gaggia espresso machine.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003carticle class=\"ag-card\" style=\"animation-delay: 0.7s;\"\u003e\n\u003cdiv class=\"ag-sweep\" aria-hidden=\"true\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"ag-content\"\u003e\n\u003cspan class=\"ag-number\" style=\"animation: rotateGlow 8s linear infinite reverse;\"\u003e04\u003c\/span\u003e\n\u003ch3\u003eBalanced Gaggia Design\u003c\/h3\u003e\n\u003cp\u003eDesigned by Gaggia, the handle is balanced with the filter head and finished with the Gaggia logo cut into the end.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c\/div\u003e\n\u003c!-- ===== FIT CHECK ===== --\u003e\n\u003cdiv class=\"ag-row\"\u003e\n\u003csection style=\"flex: 1 1 270px; background: #f3faf5; border: 1px solid #d7ecd0; border-radius: 10px; padding: 18px; position: relative; overflow: hidden; animation: slideInLeft 0.8s ease-out both;\"\u003e\u003cspan aria-hidden=\"true\" style=\"position: absolute; top: 12px; right: 14px; animation: sparkle 2s ease-in-out infinite;\"\u003e✨\u003c\/span\u003e\n\u003ch2 style=\"font-size: 16px; margin: 0 0 10px; color: #2b2b2b;\"\u003eA Good Fit for Your Setup If...\u003c\/h2\u003e\n\u003cul style=\"margin: 0; padding-left: 20px; font-size: 14.5px; color: #444;\"\u003e\n\u003cli\u003eYou own a compatible Gaggia New Classic or New Classic EVO Pro.\u003c\/li\u003e\n\u003cli\u003eYou prefer the traditional dual-spout portafilter design.\u003c\/li\u003e\n\u003cli\u003eYou want an ashwood handle to personalize your espresso station.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/section\u003e\n\u003csection style=\"flex: 1 1 270px; background: #f7f4fb; border: 1px solid #e2dcef; border-radius: 10px; padding: 18px; animation: slideInRight 0.8s ease-out both;\"\u003e\n\u003ch2 style=\"font-size: 16px; margin: 0 0 10px; color: #4a1f3f;\"\u003eCheck Your Model Before Ordering\u003c\/h2\u003e\n\u003cp style=\"margin: 0; font-size: 14.5px; color: #444;\"\u003eA 58 mm size alone does not confirm compatibility with every espresso machine. Contact Anthony’s Espresso with your exact Gaggia model if you need help confirming the fit.\u003c\/p\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e\n\u003c!-- ===== ANIMATED TECH PANEL ===== --\u003e\n\u003ch2 class=\"ag-heading\"\u003eNatural Wood Meets Classic Espresso\u003c\/h2\u003e\n\u003csection class=\"ag-tech\" style=\"background: linear-gradient(135deg,#1a0f1a,#2d1f2d,#1a0f1a); border: 2px solid #4a1f3f; border-radius: 16px; padding: 28px; margin-bottom: 28px; position: relative; overflow: hidden; box-shadow: 0 8px 32px rgba(74,31,63,0.3); animation: fadeInUp 0.8s ease-out both;\"\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; inset: 0; opacity: 0.1; background-image: linear-gradient(rgba(201,169,106,0.3) 1px,transparent 1px),linear-gradient(90deg,rgba(201,169,106,0.3) 1px,transparent 1px); background-size: 30px 30px;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; top: 20%; left: 15%; width: 6px; height: 6px; background: #c9a96a; border-radius: 50%; filter: blur(2px); animation: particleFloat 4s ease-in-out infinite;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; top: 60%; left: 80%; width: 8px; height: 8px; background: #c9a96a; border-radius: 50%; filter: blur(2px); animation: particleFloat 5s ease-in-out infinite 1s;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; top: 40%; left: 90%; width: 5px; height: 5px; background: #c9a96a; border-radius: 50%; filter: blur(2px); animation: particleFloat 4.5s ease-in-out infinite 0.5s;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; top: 80%; left: 25%; width: 7px; height: 7px; background: #c9a96a; border-radius: 50%; filter: blur(2px); animation: particleFloat 5.5s ease-in-out infinite 1.5s;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);\"\u003e\n\u003cdiv style=\"width: 280px; height: 280px; border: 2px solid rgba(201,169,106,0.15); border-radius: 50%; animation: techRotate 20s linear infinite;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);\"\u003e\n\u003cdiv style=\"width: 320px; height: 320px; border: 1px dashed rgba(201,169,106,0.2); border-radius: 50%; animation: techRotate 30s linear infinite reverse;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; left: 0; right: 0; height: 3px; background: linear-gradient(90deg,transparent,rgba(201,169,106,0.6),transparent); animation: scanline 3s ease-in-out infinite;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"ag-content\" style=\"text-align: center;\"\u003e\n\u003cdiv aria-hidden=\"true\" style=\"width: 110px; height: 110px; margin: 0 auto 20px; position: relative; animation: arFloat 4s ease-in-out infinite;\"\u003e\n\u003cdiv style=\"position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle,rgba(201,169,106,0.3),transparent 70%); animation: arGlow 3s ease-in-out infinite;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv style=\"position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 46px; animation: dataPulse 2s ease-in-out infinite;\"\u003e☕\u003c\/div\u003e\n\u003cdiv style=\"position: absolute; top: 10px; left: 33px; width: 5px; height: 18px; border-radius: 50%; background: rgba(244,212,147,0.6); filter: blur(2px); animation: steamRise 2.4s ease-in-out infinite;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv style=\"position: absolute; top: 10px; right: 33px; width: 5px; height: 18px; border-radius: 50%; background: rgba(244,212,147,0.6); filter: blur(2px); animation: steamRise 2.4s ease-in-out infinite 0.6s;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"background: rgba(74,31,63,0.3); border: 1px solid rgba(201,169,106,0.3); border-radius: 12px; padding: 20px; max-width: 520px; margin: 0 auto 24px; backdrop-filter: blur(10px);\"\u003e\n\u003cdiv style=\"display: flex; justify-content: space-around; flex-wrap: wrap; gap: 20px;\"\u003e\n\u003cdiv\u003e\n\u003cdiv style=\"font-size: 24px; font-weight: bold; color: #c9a96a; animation: dataPulse 2s ease-in-out infinite;\"\u003e58 mm\u003c\/div\u003e\n\u003cdiv style=\"font-size: 12px; color: #d6c2ce; text-transform: uppercase; letter-spacing: 1px;\"\u003ePortafilter Size\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv style=\"font-size: 24px; font-weight: bold; color: #c9a96a; animation: dataPulse 2s ease-in-out infinite 0.3s;\"\u003eAshwood\u003c\/div\u003e\n\u003cdiv style=\"font-size: 12px; color: #d6c2ce; text-transform: uppercase; letter-spacing: 1px;\"\u003eHandle Finish\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv style=\"font-size: 24px; font-weight: bold; color: #c9a96a; animation: dataPulse 2s ease-in-out infinite 0.6s;\"\u003eBrass\u003c\/div\u003e\n\u003cdiv style=\"font-size: 12px; color: #d6c2ce; text-transform: uppercase; letter-spacing: 1px;\"\u003eFilter Head\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"height: 2px; margin: 16px 0; background: linear-gradient(90deg,transparent,rgba(201,169,106,0.5),transparent);\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv style=\"font-size: 12px; color: #d6c2ce; letter-spacing: 2px; text-transform: uppercase;\"\u003eDesigned by Gaggia\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"display: inline-flex; flex-direction: column; align-items: center; gap: 10px; padding: 20px 28px; border-radius: 20px; background: linear-gradient(135deg,#4a1f3f,#6b3059,#4a1f3f); color: white; position: relative; overflow: hidden; animation: arHover 4s ease-in-out infinite;\"\u003e\n\u003cdiv class=\"ag-sweep\" aria-hidden=\"true\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; inset: 0; border-radius: 20px; box-shadow: inset 0 0 20px rgba(201,169,106,0.4); animation: holoFade 2s ease-in-out infinite;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cspan class=\"ag-content\" style=\"font-weight: bold; letter-spacing: 1px;\"\u003eA CLASSIC DETAIL, REIMAGINED\u003c\/span\u003e \u003cspan class=\"ag-content\" style=\"font-size: 12px; color: #f4d493;\"\u003eNatural Wood • Dual Spout • Gaggia Design\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp style=\"margin: 24px auto 0; max-width: 520px; font-size: 14px; color: #d6c2ce;\"\u003eBring a coordinated finish to your Gaggia coffee station with an ashwood grip and a chrome-plated brass head designed for comfortable handling and heat retention.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ===== CANADIAN BANNER ===== --\u003e\n\u003csection style=\"position: relative; margin: 32px 0;\"\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; pointer-events: none;\"\u003e\n\u003cdiv style=\"width: 320px; height: 220px; background: radial-gradient(circle,rgba(201,169,106,0.18),transparent 65%); animation: pulseGlow 3s ease-in-out infinite;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ag-banner\" style=\"display: flex; align-items: center; justify-content: center; gap: 22px; max-width: 660px; margin: auto; padding: 26px 32px; border-radius: 22px; border: 1px solid rgba(201,169,106,0.4); background: linear-gradient(135deg,#4a1f3f,#6b3059,#4a1f3f); background-size: 200% 100%; color: white; position: relative; overflow: hidden; animation: gradientShift 5s ease-in-out infinite, arFloat 5s ease-in-out infinite;\"\u003e\n\u003cdiv class=\"ag-sweep\" aria-hidden=\"true\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" class=\"ag-leaf\" style=\"font-size: 44px; animation: mapleFloat 3.5s ease-in-out infinite;\"\u003e\u003cspan style=\"display: inline-block; animation: mapleRotate 7s ease-in-out infinite;\"\u003e🍁\u003c\/span\u003e\u003c\/div\u003e\n\u003cdiv class=\"ag-content\" style=\"text-align: center;\"\u003e\n\u003cdiv style=\"font-size: 14px; letter-spacing: 4px; color: #f4d493; animation: textShimmer 2.5s ease-in-out infinite;\"\u003ePROUDLY\u003c\/div\u003e\n\u003cdiv class=\"ag-banner-title\" style=\"font-size: 30px; font-weight: 800;\"\u003eCANADIAN\u003c\/div\u003e\n\u003cdiv style=\"font-size: 12px; letter-spacing: 1.5px;\"\u003eANTHONY’S ESPRESSO\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv aria-hidden=\"true\" class=\"ag-leaf\" style=\"font-size: 44px; animation: mapleFloat 3.5s ease-in-out infinite 0.6s;\"\u003e\u003cspan style=\"display: inline-block; animation: mapleRotate 7s ease-in-out infinite reverse;\"\u003e🍁\u003c\/span\u003e\u003c\/div\u003e\n\u003cspan aria-hidden=\"true\" style=\"position: absolute; top: 14px; left: 20%; color: #f4d493; animation: sparkle 2.2s ease-in-out infinite;\"\u003e✦\u003c\/span\u003e \u003cspan aria-hidden=\"true\" style=\"position: absolute; bottom: 14px; right: 20%; color: #f4d493; animation: sparkle 2.2s ease-in-out infinite 0.8s;\"\u003e✦\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp style=\"text-align: center; font-size: 13px; color: #76636e; margin: 20px 0 0;\"\u003eVisit Anthony’s Espresso in Vaughan or Toronto for help choosing accessories for your coffee setup.\u003c\/p\u003e\n\u003c\/section\u003e\n\u003c!-- ===== SPECIFICATIONS ===== --\u003e\n\u003ch2 class=\"ag-heading\"\u003eProduct Specifications\u003c\/h2\u003e\n\u003ctable aria-label=\"Gaggia Ashwood Dual Spout Portafilter specifications\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\" class=\"ag-table-section\"\u003eProduct Information\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eProduct Name\u003c\/th\u003e\n\u003ctd\u003eGaggia 58mm Dual Spout Portafilter, Ashwood\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eBrand\u003c\/th\u003e\n\u003ctd\u003eGaggia\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eProduct Type\u003c\/th\u003e\n\u003ctd\u003eDual-spout espresso portafilter\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eSize\u003c\/th\u003e\n\u003ctd\u003e58 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\" class=\"ag-table-section\"\u003eMaterials and Finish\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eHandle Material\u003c\/th\u003e\n\u003ctd\u003eAshwood\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eFilter Head Material\u003c\/th\u003e\n\u003ctd\u003eChrome-plated brass\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eHandle Detail\u003c\/th\u003e\n\u003ctd\u003eGaggia logo cut into the end\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eHandling\u003c\/th\u003e\n\u003ctd\u003eComfortable wooden grip balanced with the filter head\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\" class=\"ag-table-section\"\u003eCompatibility\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eListed Compatible Models\u003c\/th\u003e\n\u003ctd\u003eGaggia New Classic and Gaggia New Classic EVO Pro\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eFit Confirmation\u003c\/th\u003e\n\u003ctd\u003eConfirm compatibility with your exact machine model before ordering. A 58 mm designation alone does not guarantee fit.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c!-- ===== ANTHONY'S VALUE STRIP ===== --\u003e\n\u003csection style=\"padding: 22px 24px; border-radius: 12px; margin-bottom: 20px; background: linear-gradient(135deg,#4a1f3f,#6b3059); color: white; position: relative; overflow: hidden; animation: fadeInUp 0.8s ease-out both;\"\u003e\n\u003cdiv class=\"ag-sweep\" aria-hidden=\"true\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"ag-content\"\u003e\n\u003ch2 style=\"display: inline-block; margin: 0 0 14px; padding: 4px 12px; border-radius: 20px; font-size: 17px; animation: colorPop 3s ease-in-out infinite;\"\u003eThe Anthony’s Difference\u003c\/h2\u003e\n\u003cdiv style=\"display: flex; flex-wrap: wrap; gap: 12px 24px; font-size: 14px;\"\u003e\n\u003cspan style=\"animation: float 3s ease-in-out infinite;\"\u003eCoffee and espresso accessories\u003c\/span\u003e \u003cspan style=\"animation: float 3s ease-in-out infinite 0.3s;\"\u003eVaughan and Toronto showrooms\u003c\/span\u003e \u003cspan style=\"animation: float 3s ease-in-out infinite 0.6s;\"\u003eHelp choosing the right fit\u003c\/span\u003e \u003cspan style=\"animation: float 3s ease-in-out infinite 0.9s;\"\u003eCoffee equipment for your routine\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- ===== ANTHONY'S-ONLY CTA ===== --\u003e\n\u003csection style=\"background: linear-gradient(135deg,#faf8f9,#f7f3f6); border: 1px solid #ece3e8; border-radius: 12px; padding: 20px; position: relative; overflow: hidden; animation: fadeInUp 0.8s ease-out both;\"\u003e\n\u003cdiv aria-hidden=\"true\" style=\"position: absolute; top: 0; right: 0; width: 160px; height: 160px; background: radial-gradient(circle,rgba(201,169,106,0.13),transparent 70%); animation: pulse 4s ease-in-out infinite;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"ag-content\"\u003e\n\u003ch2 style=\"font-size: 17px; color: #4a1f3f; margin: 0 0 10px;\"\u003eGive Your Gaggia a Natural Wood Finish\u003c\/h2\u003e\n\u003cp style=\"font-size: 14.5px; color: #555; margin-bottom: 18px;\"\u003eContact Anthony’s Espresso to confirm compatibility with your Gaggia machine. Visit our Vaughan or Toronto showroom for help choosing portafilters, baskets, tampers, coffee, and accessories for your espresso station.\u003c\/p\u003e\n\u003cdiv style=\"display: flex; flex-wrap: wrap; gap: 10px;\"\u003e\n\u003ca class=\"ag-button\" href=\"https:\/\/anthonysespresso.com\/pages\/contact\" rel=\"noopener noreferrer\" target=\"_blank\"\u003e Visit Our Showrooms \u003cspan aria-hidden=\"true\"\u003e➜\u003c\/span\u003e \u003c\/a\u003e \u003ca class=\"ag-button ag-secondary\" href=\"https:\/\/anthonysespresso.com\/collections\/accessories\" rel=\"noopener noreferrer\" target=\"_blank\"\u003e Shop Espresso Accessories \u003c\/a\u003e\n\u003c\/div\u003e\n\u003cp style=\"font-size: 13px; color: #76636e; margin: 16px 0 0; text-align: center;\"\u003eSpeak with Anthony’s Espresso at \u003ca href=\"tel:19052640433\" style=\"color: #4a1f3f; font-weight: bold; text-decoration: underline;\"\u003e905-264-0433\u003c\/a\u003e for product and compatibility questions.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e\n\u003cp\u003e```\u003c\/p\u003e","brand":"Gaggia","offers":[{"title":"Default Title","offer_id":68027235369212,"sku":null,"price":139.99,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0611\/8529\/4588\/files\/Gaggia-58mm-Dual-Spout-Portafilter-Ashwood-14074.webp?v=1793198817","url":"https:\/\/anthonysespresso.com\/products\/gaggia-58mm-dual-spout-portafilter-ashwood-x3","provider":"Anthony's Espresso","version":"1.0","type":"link"}