{"product_id":"rocket-appartamento-2-0-1-group-commercial-espresso-machine-black-copper","title":"Rocket - Appartamento 2.0 1 Group Commercial Espresso Machine (Black\/Copper)","description":"\u003cstyle\u003e\n  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n  .pdp-wrap {\n    max-width: 700px; margin: 0 auto;\n    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #000;\n  }\n  .hook-label {\n    font-size: 12px; font-weight: 700; letter-spacing: 0.14em;\n    text-transform: uppercase; color: #000; margin-bottom: 16px; display: block;\n  }\n  .hook-headline {\n    font-size: clamp(32px, 5.5vw, 52px); font-weight: 900; letter-spacing: -0.03em;\n    line-height: 1.05; color: #000; margin-bottom: 24px; text-transform: uppercase;\n  }\n  .hook-sub {\n    font-size: 16px; font-weight: 400; line-height: 1.75; color: #000;\n    margin-bottom: 48px; border-left: 4px solid #CC0000; padding-left: 20px;\n  }\n  \/* Section rule — RED accent *\/\n  .section-rule { display: flex; align-items: center; gap: 0; margin-bottom: 28px; }\n  .section-rule span {\n    font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;\n    color: #fff; background: #CC0000; padding: 5px 12px; white-space: nowrap; line-height: 1;\n  }\n  .section-rule::after { content: ''; flex: 1; height: 2px; background: #000; }\n  \/* Bridge — GREY background, black text *\/\n  .bridge { background: #EDEDEC; padding: 32px; margin-bottom: 48px; }\n  .bridge-label {\n    font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;\n    color: #000; margin-bottom: 28px; padding-bottom: 16px;\n    border-bottom: 1px solid rgba(0,0,0,0.18); display: block;\n  }\n  .bridge-grid {\n    display: grid; grid-template-columns: 1fr 1fr; gap: 0;\n    border-top: 1px solid rgba(0,0,0,0.12); border-left: 1px solid rgba(0,0,0,0.12);\n  }\n  .bridge-item {\n    padding: 20px 22px; border-right: 1px solid rgba(0,0,0,0.12);\n    border-bottom: 1px solid rgba(0,0,0,0.12);\n  }\n  .bridge-problem {\n    font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;\n    color: rgba(0,0,0,0.45); margin-bottom: 8px; display: block;\n  }\n  .bridge-solution {\n    font-size: 17px; font-weight: 900; letter-spacing: -0.02em;\n    color: #000; line-height: 1.2; text-transform: uppercase; display: block;\n  }\n  .mechanism-copy {\n    font-size: 16px; font-weight: 400; line-height: 1.8; color: #000; margin-bottom: 48px;\n  }\n  \/* Feature table *\/\n  .feature-stack { display: flex; flex-direction: column; margin-bottom: 48px; border: 2px solid #000; }\n  .feature-row { display: grid; grid-template-columns: 180px 1fr; border-bottom: 2px solid #000; }\n  .feature-row:last-child { border-bottom: none; }\n  .feature-left { padding: 20px 22px; background: #EDEDEC; border-right: 2px solid #000; display: flex; align-items: flex-start; }\n  .feature-left-name { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #000; line-height: 1.5; }\n  .feature-right { padding: 20px 24px; background: #fff; }\n  .feature-right-copy { font-size: 15px; font-weight: 400; line-height: 1.75; color: #000; }\n  .feature-right-copy strong { font-weight: 900; color: #000; }\n  \/* Quote block — GREY background, black text *\/\n  .quote-block {\n    background: #EDEDEC; padding: 40px 36px; margin-bottom: 48px;\n    position: relative; overflow: hidden;\n  }\n  .quote-block::before {\n    content: '92'; font-size: 120px; font-weight: 900; color: rgba(0,0,0,0.05);\n    position: absolute; top: -10px; right: 24px; line-height: 1; pointer-events: none;\n  }\n  .quote-label {\n    font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;\n    color: #CC0000; margin-bottom: 16px; position: relative; display: block;\n  }\n  .quote-headline {\n    font-size: clamp(20px, 3vw, 28px); font-weight: 900; letter-spacing: -0.025em;\n    line-height: 1.2; color: #000; margin-bottom: 20px; position: relative; text-transform: uppercase;\n  }\n  .quote-sub {\n    font-size: 14px; font-weight: 400; line-height: 1.8; color: rgba(0,0,0,0.65); position: relative;\n  }\n  \/* Fit grid *\/\n  .fit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-bottom: 48px; border: 2px solid #000; }\n  .fit-card { padding: 24px 22px; }\n  .fit-card:first-child { border-right: 2px solid #000; }\n  .fit-card-label {\n    font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;\n    color: #000; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 2px solid #CC0000; display: block;\n  }\n  .fit-card-copy { font-size: 14px; font-weight: 400; line-height: 1.75; color: #000; }\n  \/* Specs table *\/\n  .specs-table { display: flex; flex-direction: column; margin-bottom: 48px; border: 2px solid #000; }\n  .spec-row { display: grid; grid-template-columns: 180px 1fr; border-bottom: 2px solid #000; }\n  .spec-row:last-child { border-bottom: none; }\n  .spec-left { padding: 16px 22px; background: #000; border-right: 2px solid #000; display: flex; align-items: flex-start; }\n  .spec-left-name { font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #fff; line-height: 1.5; }\n  .spec-right { padding: 16px 24px; background: #fff; }\n  .spec-right-copy { font-size: 15px; font-weight: 400; line-height: 1.75; color: #000; }\n  \/* CMD callout — keep black for authority *\/\n  .cmd-callout {\n    padding: 24px 28px; border: 2px solid #000; background: #EDEDEC;\n    font-size: 15px; font-weight: 400; color: rgba(0,0,0,0.75); line-height: 1.8;\n  }\n  .cmd-callout strong { color: #000; font-weight: 900; }\n  @media (max-width: 560px) {\n    .bridge-grid { grid-template-columns: 1fr; }\n    .feature-row { grid-template-columns: 1fr; }\n    .feature-left { border-right: none; border-bottom: 2px solid #000; }\n    .fit-grid { grid-template-columns: 1fr; }\n    .fit-card:first-child { border-right: none; border-bottom: 2px solid #000; }\n    .spec-row { grid-template-columns: 1fr; }\n    .spec-left { border-right: none; border-bottom: 2px solid #000; }\n  \n  .hook-headline { font-size: clamp(28px, 7vw, 42px); }\n  .hook-sub { font-size: 17px; line-height: 1.8; }\n  .mechanism-copy { font-size: 17px; line-height: 1.85; }\n  .feature-right-copy { font-size: 16px; line-height: 1.8; }\n  .bridge-solution { font-size: 16px; }\n  .quote-headline { font-size: clamp(22px, 5.5vw, 28px); }\n  .quote-sub { font-size: 15px; line-height: 1.85; }\n  .fit-card-copy { font-size: 15px; line-height: 1.8; }\n  .cmd-callout { font-size: 16px; line-height: 1.85; }\n  .spec-right-copy { font-size: 16px; }\n}\n\n  \/* Chart responsive toggle *\/\n  .chart-mobile { display: none; margin: 0 0 48px 0; }\n  .chart-desktop { display: block; }\n  @media (max-width: 560px) {\n    .chart-desktop { display: none; }\n    .chart-mobile { display: block; }\n  }\n\u003c\/style\u003e\n\u003cdiv class=\"pdp-wrap\"\u003e\n  \u003cspan class=\"hook-label\"\u003eRocket Appartamento 2.0 — Black\/Copper\u003c\/span\u003e\n  \u003ch2 class=\"hook-headline\"\u003eCommercial espresso performance. Compact enough for carts, counters, and home bars.\u003c\/h2\u003e\n  \u003cp class=\"hook-sub\"\u003eThe Appartamento 2.0 in Black\/Copper brings commercial-grade espresso performance into a footprint that works for coffee carts, smaller cafes, and serious home bars — with the warm Black\/Copper finish for setups where the machine is part of the visual identity.\u003c\/p\u003e\n\n  \u003cdiv class=\"bridge\"\u003e\n    \u003cspan class=\"bridge-label\"\u003eWhat Compact Commercial Espresso Demands\u003c\/span\u003e\n    \u003cdiv class=\"bridge-grid\"\u003e\n      \u003cdiv class=\"bridge-item\"\u003e\n        \u003cspan class=\"bridge-problem\"\u003eLimited counter space\u003c\/span\u003e\n        \u003cspan class=\"bridge-solution\"\u003eCompact commercial footprint\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"bridge-item\"\u003e\n        \u003cspan class=\"bridge-problem\"\u003eCup sizing limitations mid-service\u003c\/span\u003e\n        \u003cspan class=\"bridge-solution\"\u003eExtra-deep drip tray for larger cups\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"bridge-item\"\u003e\n        \u003cspan class=\"bridge-problem\"\u003eGuessing when the machine is ready\u003c\/span\u003e\n        \u003cspan class=\"bridge-solution\"\u003eLED status indicators at a glance\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"bridge-item\"\u003e\n        \u003cspan class=\"bridge-problem\"\u003eOversized machines for smaller ops\u003c\/span\u003e\n        \u003cspan class=\"bridge-solution\"\u003eRight-sized 1-group commercial build\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"section-rule\"\u003e\u003cspan\u003eHow It Works\u003c\/span\u003e\u003c\/div\u003e\n  \u003cp class=\"mechanism-copy\"\u003eThe Appartamento 2.0 is designed around the realities of compact commercial environments. Its footprint fits where larger machines can't — on a cart, a narrow cafe counter, or a home bar — without stepping down in build quality or output. The extra-deep drip tray means you're not constantly repositioning cups or emptying overflow during service. LED indicators take the guesswork out of machine readiness — you know it's ready before you pull, not after. The Black\/Copper colorway adds a warm finish for setups where the machine's appearance is part of the brand. Same performance, distinct aesthetic.\u003c\/p\u003e\n\n  \u003cdiv class=\"section-rule\"\u003e\u003cspan\u003eThe Details\u003c\/span\u003e\u003c\/div\u003e\n  \u003cdiv class=\"feature-stack\"\u003e\n    \u003cdiv class=\"feature-row\"\u003e\n      \u003cdiv class=\"feature-left\"\u003e\u003cp class=\"feature-left-name\"\u003eCompact Commercial Design\u003c\/p\u003e\u003c\/div\u003e\n      \u003cdiv class=\"feature-right\"\u003e\n        \u003cp class=\"feature-right-copy\"\u003eBuilt for environments where counter space is at a premium. \u003cstrong\u003eCommercial espresso performance in a footprint sized for carts, small cafes, and home bars\u003c\/strong\u003e — without sacrificing output quality for the sake of size.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"feature-row\"\u003e\n      \u003cdiv class=\"feature-left\"\u003e\u003cp class=\"feature-left-name\"\u003eExtra-Deep Drip Tray\u003c\/p\u003e\u003c\/div\u003e\n      \u003cdiv class=\"feature-right\"\u003e\n        \u003cp class=\"feature-right-copy\"\u003eThe oversized drip tray accommodates larger cups and reduces service interruptions. \u003cstrong\u003ePull directly into a 12 oz or 16 oz cup\u003c\/strong\u003e without repositioning — a real workflow improvement during busy periods on a cart or counter.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"feature-row\"\u003e\n      \u003cdiv class=\"feature-left\"\u003e\u003cp class=\"feature-left-name\"\u003eLED Status Indicators\u003c\/p\u003e\u003c\/div\u003e\n      \u003cdiv class=\"feature-right\"\u003e\n        \u003cp class=\"feature-right-copy\"\u003eIntuitive LED indicators let you monitor machine status at a glance. \u003cstrong\u003eKnow the machine is ready before you pull — no guessing, no wasted time\u003c\/strong\u003e waiting on a machine that isn't up to temperature.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"feature-row\"\u003e\n      \u003cdiv class=\"feature-left\"\u003e\u003cp class=\"feature-left-name\"\u003eBlack\/Copper Finish\u003c\/p\u003e\u003c\/div\u003e\n      \u003cdiv class=\"feature-right\"\u003e\n        \u003cp class=\"feature-right-copy\"\u003eA warm Black\/Copper colorway for setups where the machine is part of the visual identity. \u003cstrong\u003eSame commercial performance as the Appartamento 2.0 — in the finish that fits your space.\u003c\/strong\u003e\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \n\u003cdiv class=\"chart-section\" style=\"margin:0 0 8px 0;\"\u003e\n\u003cdiv class=\"chart-desktop\"\u003e\u003csvg viewbox=\"0 0 580 230\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:100%;display:block;margin:0 0 48px 0;\" role=\"img\" aria-label=\"Brew temperature stability chart showing PID-controlled consistency across 15 consecutive shots\"\u003e\n\n  \u003c!-- Background --\u003e\n  \u003crect width=\"580\" height=\"230\" fill=\"#EDEDEC\"\u003e\u003c\/rect\u003e\n\n  \u003c!-- Chart label --\u003e\n  \u003ctext x=\"20\" y=\"22\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"11\" font-weight=\"700\" fill=\"#000\" letter-spacing=\"1.8\"\u003eBREW TEMPERATURE ACROSS 15 CONSECUTIVE SHOTS\u003c\/text\u003e\n\n  \u003c!-- Y-axis temp labels --\u003e\n  \u003ctext x=\"52\" y=\"50\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"11\" fill=\"rgba(0,0,0,0.5)\" text-anchor=\"end\"\u003e95°C\u003c\/text\u003e\n  \u003ctext x=\"52\" y=\"90\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"11\" fill=\"rgba(0,0,0,0.5)\" text-anchor=\"end\"\u003e93°C\u003c\/text\u003e\n  \u003ctext x=\"52\" y=\"130\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"11\" fill=\"rgba(0,0,0,0.5)\" text-anchor=\"end\"\u003e91°C\u003c\/text\u003e\n  \u003ctext x=\"52\" y=\"170\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"11\" fill=\"rgba(0,0,0,0.5)\" text-anchor=\"end\"\u003e89°C\u003c\/text\u003e\n\n  \u003c!-- Horizontal grid lines --\u003e\n  \u003cline x1=\"58\" y1=\"46\" x2=\"565\" y2=\"46\" stroke=\"rgba(0,0,0,0.07)\" stroke-width=\"1\"\u003e\u003c\/line\u003e\n  \u003cline x1=\"58\" y1=\"86\" x2=\"565\" y2=\"86\" stroke=\"rgba(0,0,0,0.07)\" stroke-width=\"1\"\u003e\u003c\/line\u003e\n  \u003cline x1=\"58\" y1=\"126\" x2=\"565\" y2=\"126\" stroke=\"rgba(0,0,0,0.07)\" stroke-width=\"1\"\u003e\u003c\/line\u003e\n  \u003cline x1=\"58\" y1=\"166\" x2=\"565\" y2=\"166\" stroke=\"rgba(0,0,0,0.07)\" stroke-width=\"1\"\u003e\u003c\/line\u003e\n\n  \u003c!-- Target zone band: 93°C ± 0.5 = y=82 to y=94 --\u003e\n  \u003crect x=\"58\" y=\"82\" width=\"507\" height=\"12\" fill=\"rgba(204,0,0,0.10)\" rx=\"0\"\u003e\u003c\/rect\u003e\n  \n\n  \u003c!-- Standard machine line (wavy grey dashed) — 15 shots, x: 58 to 565, step ~36 --\u003e\n  \u003cpolyline points=\"58,86 94,62 130,114 166,58 202,118 238,68 274,110 310,72 346,108 382,54 418,116 454,70 490,112 526,66 565,96\" fill=\"none\" stroke=\"rgba(0,0,0,0.35)\" stroke-width=\"2\" stroke-dasharray=\"5,3\" stroke-linecap=\"round\"\u003e\u003c\/polyline\u003e\n\n  \u003c!-- PID-controlled line (stable red) --\u003e\n  \u003cpolyline points=\"58,87 94,86 130,88 166,86 202,87 238,86 274,88 310,86 346,87 382,86 418,87 454,86 490,87 526,86 565,87\" fill=\"none\" stroke=\"#CC0000\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/polyline\u003e\n\n  \u003c!-- PID line end dot --\u003e\n  \u003ccircle cx=\"565\" cy=\"87\" r=\"3.5\" fill=\"#CC0000\"\u003e\u003c\/circle\u003e\n\n  \u003c!-- Standard line end dot --\u003e\n  \u003ccircle cx=\"565\" cy=\"96\" r=\"3\" fill=\"rgba(0,0,0,0.3)\"\u003e\u003c\/circle\u003e\n  \u003c!-- TARGET label — rendered last so it sits above all lines --\u003e\n  \u003crect x=\"455\" y=\"116\" width=\"108\" height=\"17\" fill=\"white\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ctext x=\"558\" y=\"129\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"13\" fill=\"#CC0000\" text-anchor=\"end\" font-weight=\"700\"\u003eTARGET 93°C\u003c\/text\u003e\n\n  \u003c!-- X axis shot labels --\u003e\n  \u003ctext x=\"58\" y=\"185\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"10\" fill=\"rgba(0,0,0,0.4)\" text-anchor=\"middle\"\u003e1\u003c\/text\u003e\n  \u003ctext x=\"166\" y=\"185\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"10\" fill=\"rgba(0,0,0,0.4)\" text-anchor=\"middle\"\u003e4\u003c\/text\u003e\n  \u003ctext x=\"274\" y=\"185\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"10\" fill=\"rgba(0,0,0,0.4)\" text-anchor=\"middle\"\u003e7\u003c\/text\u003e\n  \u003ctext x=\"382\" y=\"185\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"10\" fill=\"rgba(0,0,0,0.4)\" text-anchor=\"middle\"\u003e10\u003c\/text\u003e\n  \u003ctext x=\"490\" y=\"185\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"10\" fill=\"rgba(0,0,0,0.4)\" text-anchor=\"middle\"\u003e13\u003c\/text\u003e\n  \u003ctext x=\"565\" y=\"185\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"10\" fill=\"rgba(0,0,0,0.4)\" text-anchor=\"middle\"\u003e15\u003c\/text\u003e\n  \u003ctext x=\"311\" y=\"198\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"10\" fill=\"rgba(0,0,0,0.4)\" text-anchor=\"middle\"\u003eSHOT NUMBER\u003c\/text\u003e\n\n  \u003c!-- Legend --\u003e\n  \u003cline x1=\"58\" y1=\"215\" x2=\"84\" y2=\"215\" stroke=\"#CC0000\" stroke-width=\"2.5\"\u003e\u003c\/line\u003e\n  \u003ccircle cx=\"84\" cy=\"215\" r=\"3\" fill=\"#CC0000\"\u003e\u003c\/circle\u003e\n  \u003ctext x=\"91\" y=\"219\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"11\" fill=\"#000\" font-weight=\"700\"\u003ePID-Controlled (this machine)\u003c\/text\u003e\n\n  \u003cline x1=\"260\" y1=\"215\" x2=\"286\" y2=\"215\" stroke=\"rgba(0,0,0,0.35)\" stroke-width=\"2\" stroke-dasharray=\"5,3\"\u003e\u003c\/line\u003e\n  \u003ctext x=\"293\" y=\"219\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"11\" fill=\"rgba(0,0,0,0.55)\"\u003eStandard machine\u003c\/text\u003e\n\n\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"chart-mobile\"\u003e\u003csvg viewbox=\"0 0 400 300\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:100%;display:block;\" role=\"img\" aria-label=\"Brew temperature stability chart across 15 shots\"\u003e\n  \u003crect width=\"400\" height=\"300\" fill=\"#EDEDEC\"\u003e\u003c\/rect\u003e\n  \u003c!-- Title --\u003e\n  \u003ctext x=\"14\" y=\"24\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"12\" font-weight=\"700\" fill=\"#000\" letter-spacing=\"1.5\"\u003eBREW TEMP — 15 CONSECUTIVE SHOTS\u003c\/text\u003e\n  \u003c!-- Y labels --\u003e\n  \u003ctext x=\"44\" y=\"65\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"14\" fill=\"rgba(0,0,0,0.55)\" text-anchor=\"end\"\u003e95°C\u003c\/text\u003e\n  \u003ctext x=\"44\" y=\"110\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"14\" fill=\"rgba(0,0,0,0.55)\" text-anchor=\"end\"\u003e93°C\u003c\/text\u003e\n  \u003ctext x=\"44\" y=\"155\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"14\" fill=\"rgba(0,0,0,0.55)\" text-anchor=\"end\"\u003e91°C\u003c\/text\u003e\n  \u003ctext x=\"44\" y=\"200\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"14\" fill=\"rgba(0,0,0,0.55)\" text-anchor=\"end\"\u003e89°C\u003c\/text\u003e\n  \u003c!-- Grid lines --\u003e\n  \u003cline x1=\"50\" y1=\"61\" x2=\"388\" y2=\"61\" stroke=\"rgba(0,0,0,0.07)\" stroke-width=\"1\"\u003e\u003c\/line\u003e\n  \u003cline x1=\"50\" y1=\"106\" x2=\"388\" y2=\"106\" stroke=\"rgba(0,0,0,0.07)\" stroke-width=\"1\"\u003e\u003c\/line\u003e\n  \u003cline x1=\"50\" y1=\"151\" x2=\"388\" y2=\"151\" stroke=\"rgba(0,0,0,0.07)\" stroke-width=\"1\"\u003e\u003c\/line\u003e\n  \u003cline x1=\"50\" y1=\"196\" x2=\"388\" y2=\"196\" stroke=\"rgba(0,0,0,0.07)\" stroke-width=\"1\"\u003e\u003c\/line\u003e\n  \u003c!-- Target band --\u003e\n  \u003crect x=\"50\" y=\"100\" width=\"338\" height=\"16\" fill=\"rgba(204,0,0,0.10)\"\u003e\u003c\/rect\u003e\n  \n  \u003c!-- Standard machine line (wavy dashed) — 15 points --\u003e\n  \u003cpolyline points=\"50,107 75,75 100,145 125,70 150,148 175,82 200,140 225,88 250,138 275,68 300,145 325,84 350,142 375,78 388,118\" fill=\"none\" stroke=\"rgba(0,0,0,0.35)\" stroke-width=\"2.5\" stroke-dasharray=\"5,3\" stroke-linecap=\"round\"\u003e\u003c\/polyline\u003e\n  \u003c!-- PID line (stable) --\u003e\n  \u003cpolyline points=\"50,107 75,106 100,108 125,106 150,107 175,106 200,108 225,106 250,107 275,106 300,107 325,106 350,107 375,106 388,107\" fill=\"none\" stroke=\"#CC0000\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003c\/polyline\u003e\n  \u003ccircle cx=\"388\" cy=\"107\" r=\"4.5\" fill=\"#CC0000\"\u003e\u003c\/circle\u003e\n  \u003ccircle cx=\"388\" cy=\"118\" r=\"3.5\" fill=\"rgba(0,0,0,0.3)\"\u003e\u003c\/circle\u003e\n  \u003c!-- TARGET label — rendered last --\u003e\n  \u003crect x=\"264\" y=\"152\" width=\"124\" height=\"22\" fill=\"white\" rx=\"2\"\u003e\u003c\/rect\u003e\u003ctext x=\"386\" y=\"169\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"16\" fill=\"#CC0000\" text-anchor=\"end\" font-weight=\"700\"\u003eTARGET 93°C\u003c\/text\u003e\n  \u003c!-- X axis labels --\u003e\n  \u003ctext x=\"50\" y=\"220\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"13\" fill=\"rgba(0,0,0,0.45)\" text-anchor=\"middle\"\u003e1\u003c\/text\u003e\n  \u003ctext x=\"150\" y=\"220\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"13\" fill=\"rgba(0,0,0,0.45)\" text-anchor=\"middle\"\u003e5\u003c\/text\u003e\n  \u003ctext x=\"250\" y=\"220\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"13\" fill=\"rgba(0,0,0,0.45)\" text-anchor=\"middle\"\u003e9\u003c\/text\u003e\n  \u003ctext x=\"350\" y=\"220\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"13\" fill=\"rgba(0,0,0,0.45)\" text-anchor=\"middle\"\u003e13\u003c\/text\u003e\n  \u003ctext x=\"388\" y=\"220\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"13\" fill=\"rgba(0,0,0,0.45)\" text-anchor=\"middle\"\u003e15\u003c\/text\u003e\n  \u003ctext x=\"220\" y=\"240\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"13\" fill=\"rgba(0,0,0,0.4)\" text-anchor=\"middle\"\u003eSHOT NUMBER\u003c\/text\u003e\n  \u003c!-- Legend --\u003e\n  \u003cline x1=\"14\" y1=\"265\" x2=\"44\" y2=\"265\" stroke=\"#CC0000\" stroke-width=\"3\"\u003e\u003c\/line\u003e\n  \u003ccircle cx=\"44\" cy=\"265\" r=\"4\" fill=\"#CC0000\"\u003e\u003c\/circle\u003e\n  \u003ctext x=\"52\" y=\"269\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"14\" fill=\"#000\" font-weight=\"700\"\u003ePID-Controlled (this machine)\u003c\/text\u003e\n  \u003cline x1=\"14\" y1=\"286\" x2=\"44\" y2=\"286\" stroke=\"rgba(0,0,0,0.35)\" stroke-width=\"2.5\" stroke-dasharray=\"5,3\"\u003e\u003c\/line\u003e\n  \u003ctext x=\"52\" y=\"290\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"14\" fill=\"rgba(0,0,0,0.55)\"\u003eStandard machine\u003c\/text\u003e\n\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"chart-desktop\"\u003e\u003csvg viewbox=\"0 0 580 160\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:100%;display:block;margin:0 0 48px 0;\" role=\"img\" aria-label=\"Heat-up time comparison chart showing rapid startup advantage of this machine\"\u003e\n\n  \u003crect width=\"580\" height=\"160\" fill=\"#EDEDEC\"\u003e\u003c\/rect\u003e\n\n  \u003ctext x=\"20\" y=\"22\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"10\" font-weight=\"700\" fill=\"#000\" letter-spacing=\"1.8\"\u003eTIME TO FIRST SHOT — STARTUP ADVANTAGE\u003c\/text\u003e\n\n  \u003c!-- Standard commercial bar (longer) --\u003e\n  \u003crect x=\"20\" y=\"38\" width=\"420\" height=\"36\" fill=\"rgba(0,0,0,0.15)\" rx=\"0\"\u003e\u003c\/rect\u003e\n  \u003ctext x=\"30\" y=\"62\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"11\" font-weight=\"700\" fill=\"rgba(0,0,0,0.6)\"\u003eStandard commercial machine\u003c\/text\u003e\n  \u003ctext x=\"448\" y=\"62\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"11\" font-weight=\"700\" fill=\"rgba(0,0,0,0.5)\"\u003eLonger wait\u003c\/text\u003e\n\n  \u003c!-- This machine bar (shorter) --\u003e\n  \u003crect x=\"20\" y=\"90\" width=\"220\" height=\"36\" fill=\"#CC0000\" rx=\"0\"\u003e\u003c\/rect\u003e\n  \u003ctext x=\"30\" y=\"114\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"11\" font-weight=\"700\" fill=\"#fff\"\u003eThis machine — Rapid Heat-Up\u003c\/text\u003e\n  \u003ctext x=\"248\" y=\"114\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"11\" font-weight=\"900\" fill=\"#CC0000\"\u003e Ready faster\u003c\/text\u003e\n\n  \u003c!-- Callout --\u003e\n  \u003ctext x=\"560\" y=\"108\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"10\" fill=\"rgba(0,0,0,0.4)\" text-anchor=\"end\"\u003eLess time\u003c\/text\u003e\n  \u003ctext x=\"560\" y=\"124\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"10\" fill=\"rgba(0,0,0,0.4)\" text-anchor=\"end\"\u003ewaiting.\u003c\/text\u003e\n  \u003ctext x=\"560\" y=\"140\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"10\" fill=\"#CC0000\" font-weight=\"700\" text-anchor=\"end\"\u003eMore time serving.\u003c\/text\u003e\n\n  \u003ctext x=\"20\" y=\"150\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"10\" fill=\"rgba(0,0,0,0.4)\"\u003eRapid heat-up system · PID-controlled from first shot · Commercial-grade output\u003c\/text\u003e\n\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"chart-mobile\"\u003e\u003csvg viewbox=\"0 0 400 220\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:100%;display:block;\" role=\"img\" aria-label=\"Startup time comparison chart\"\u003e\n  \u003crect width=\"400\" height=\"220\" fill=\"#EDEDEC\"\u003e\u003c\/rect\u003e\n  \u003c!-- Title --\u003e\n  \u003ctext x=\"14\" y=\"24\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"12\" font-weight=\"700\" fill=\"#000\" letter-spacing=\"1.5\"\u003eTIME TO FIRST SHOT — STARTUP ADVANTAGE\u003c\/text\u003e\n  \u003c!-- Standard commercial bar --\u003e\n  \u003crect x=\"14\" y=\"42\" width=\"330\" height=\"54\" fill=\"rgba(0,0,0,0.15)\"\u003e\u003c\/rect\u003e\n  \u003ctext x=\"24\" y=\"68\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"16\" font-weight=\"700\" fill=\"rgba(0,0,0,0.6)\"\u003eStandard commercial\u003c\/text\u003e\n  \u003ctext x=\"24\" y=\"88\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"15\" fill=\"rgba(0,0,0,0.5)\"\u003eLonger warm-up wait\u003c\/text\u003e\n  \u003c!-- This machine bar --\u003e\n  \u003crect x=\"14\" y=\"112\" width=\"180\" height=\"54\" fill=\"#CC0000\"\u003e\u003c\/rect\u003e\n  \u003ctext x=\"24\" y=\"138\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"16\" font-weight=\"700\" fill=\"#fff\"\u003eThis Machine\u003c\/text\u003e\n  \u003ctext x=\"24\" y=\"158\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"15\" font-weight=\"700\" fill=\"#fff\"\u003eRapid Heat-Up\u003c\/text\u003e\n  \u003c!-- Ready callout --\u003e\n  \u003ctext x=\"386\" y=\"140\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"14\" fill=\"#CC0000\" font-weight=\"900\" text-anchor=\"end\"\u003eReady faster.\u003c\/text\u003e\n  \u003ctext x=\"386\" y=\"158\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"14\" fill=\"rgba(0,0,0,0.5)\" text-anchor=\"end\"\u003eMore time serving.\u003c\/text\u003e\n  \u003c!-- Footer --\u003e\n  \u003ctext x=\"14\" y=\"205\" font-family=\"Helvetica Neue,Helvetica,Arial,sans-serif\" font-size=\"12\" fill=\"rgba(0,0,0,0.4)\"\u003ePID-controlled from first shot · Commercial-grade output\u003c\/text\u003e\n\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"quote-block\"\u003e\n    \u003cspan class=\"quote-label\"\u003eBuilt For\u003c\/span\u003e\n    \u003cp class=\"quote-headline\"\u003eThe cart operator, the small cafe, and the home bar that want commercial quality without commercial complexity.\u003c\/p\u003e\n    \u003cp class=\"quote-sub\"\u003eThe Appartamento 2.0 exists for operations that need the real thing — commercial-grade espresso — in a format that fits their space and workflow. Coffee carts, boutique cafes, office setups, and serious home espresso bars: this is the machine that doesn't ask you to compromise on either end.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"section-rule\"\u003e\u003cspan\u003eIs This the Right Machine\u003c\/span\u003e\u003c\/div\u003e\n  \u003cdiv class=\"fit-grid\"\u003e\n    \u003cdiv class=\"fit-card\"\u003e\n      \u003cspan class=\"fit-card-label\"\u003eMade for\u003c\/span\u003e\n      \u003cp class=\"fit-card-copy\"\u003eHome baristas who want commercial build quality, coffee cart operators who need a compact footprint and consistent output, and smaller cafe setups looking for a capable 1-group with a finish that stands out.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"fit-card\"\u003e\n      \u003cspan class=\"fit-card-label\"\u003eNot for\u003c\/span\u003e\n      \u003cp class=\"fit-card-copy\"\u003eHigh-volume cafes pulling 80+ shots per day who need a multi-group machine to maintain throughput. For that volume, a 2-group commercial setup would be a better fit.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cmd-callout\"\u003e\n    \u003cstrong\u003eFinancing available.\u003c\/strong\u003e The Appartamento 2.0 qualifies for Click Lease financing up to $25K — making it accessible for cart builds and home bar setups where budgeting the investment matters. Questions about whether this is the right machine for your setup? Call us at 323-592-3303. We've helped a lot of home baristas and cart operators make this call.\n  \u003c\/div\u003e\n\u003c\/div\u003e","brand":"25D STORE","offers":[{"title":"Default Title","offer_id":46136344608964,"sku":"7838","price":1100.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0745\/3170\/0932\/files\/coffee_machine_depot_rocket_appartamento_2.0_black_copper_front_cf02611d-7818-48b1-9bef-28371e7a402a.png?v=1778438934","url":"https:\/\/25d.store\/products\/rocket-appartamento-2-0-1-group-commercial-espresso-machine-black-copper","provider":"25D STORE","version":"1.0","type":"link"}