{"id":14911,"date":"2026-10-26T15:56:11","date_gmt":"2026-10-26T07:56:11","guid":{"rendered":"https:\/\/www.mimuplay.com\/?p=14911"},"modified":"2026-11-06T16:01:55","modified_gmt":"2026-11-06T08:01:55","slug":"mimuplay-cape-town-family-restaurant-outdoor-playground","status":"publish","type":"post","link":"https:\/\/www.mimuplay.com\/pt\/mimuplay-cape-town-family-restaurant-outdoor-playground\/","title":{"rendered":"Outdoor playground for a family restaurant in Cape Town, South Africa"},"content":{"rendered":"<p><!DOCTYPE html><\/p>\n<p><html lang=\"en\"><head><meta charset=\"utf-8\"\/><meta content=\"width=device-width,initial-scale=1\" name=\"viewport\"\/><\/p>\n<style>.wcs-case-page{box-sizing:border-box;display:block;min-width:0;isolation:isolate}.wcs-case-page .gallery-controls svg{width:16px;height:16px;fill:currentColor}.wcs-case-page [id]{scroll-margin-top:calc(var(--coreshangye-wp-header-offset,0px) + 96px)}<\/p>\n<p>.wcs-case-page{--ink:#132b36;--muted:#61717a;--paper:#f3f4ee;--white:#fff;--line:#d6ddd5;--lime:#d8eb9e;--navy:#102c39;--green:#497158}.wcs-case-page *{box-sizing:border-box}.wcs-case-page{scroll-behavior:smooth;scroll-padding-top:90px}.wcs-case-page{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,\"PingFang SC\",\"Microsoft YaHei\",sans-serif;font-size:14px;line-height:1.8}.wcs-case-page button,.wcs-case-page input,.wcs-case-page select{font:inherit}.wcs-case-page button,.wcs-case-page a{touch-action:manipulation}.wcs-case-page button{cursor:pointer}.wcs-case-page a{color:inherit;text-decoration:none}.wcs-case-page button:focus-visible,.wcs-case-page a:focus-visible,.wcs-case-page input:focus-visible{outline:3px solid #6b985d;outline-offset:3px}.wcs-case-page .notice{padding:9px 5%;background:var(--lime);font-size:11px;color:#304632;letter-spacing:.3px}.wcs-case-page .nav{display:flex;align-items:center;justify-content:space-between;padding:18px 5%;border-bottom:1px solid var(--line);gap:20px;background:var(--paper)}.wcs-case-page .brand{font-weight:850;letter-spacing:-1px;font-size:22px;line-height:1}.wcs-case-page .brand small{display:block;font-size:9px;letter-spacing:3px;margin-top:8px;font-weight:500}.wcs-case-page .nav-links{display:flex;gap:26px;font-size:12px}.wcs-case-page .nav-end{font-size:10px;letter-spacing:1px;color:var(--muted)}.wcs-case-page .wrap{max-width:1320px;margin:auto;padding:0 5%}.wcs-case-page .hero{display:grid;grid-template-columns:46% 54%;padding-top:62px;gap:0;align-items:stretch}.wcs-case-page .eyebrow{font-size:10px;letter-spacing:2.5px;text-transform:uppercase;font-weight:700;color:var(--green)}.wcs-case-page .hero-copy{padding:18px 45px 20px 0}.wcs-case-page h1{font-size:clamp(32px,4vw,56px);line-height:1.23;letter-spacing:-1.5px;margin:22px 0}.wcs-case-page .subline{font-size:14px;color:var(--muted);max-width:410px;line-height:1.95}.wcs-case-page .hero-visual{position:relative;min-height:410px;overflow:hidden;background:var(--navy)}.wcs-case-page .hero-visual img{width:100%;height:100%;object-fit:cover;position:absolute}.wcs-case-page .image-label{position:absolute;bottom:18px;left:20px;background:#112c39df;color:white;font-size:10px;padding:5px 10px;letter-spacing:1px}.wcs-case-page .hero-visual>button{position:absolute;right:16px;top:16px;background:#ffffffdd;border:0;padding:7px 12px;font-size:11px}.wcs-case-page .stats{display:flex;margin-top:30px;padding-top:22px;border-top:1px solid var(--line);gap:27px}.wcs-case-page .stat b{display:block;font-size:25px;font-weight:500;line-height:1.2}.wcs-case-page .stat span{font-size:10px;color:var(--muted)}.wcs-case-page .meta{margin-top:32px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.wcs-case-page .meta>div{padding:20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.wcs-case-page .meta .wide{grid-column:span 2}.wcs-case-page .meta dt{font-size:10px;color:var(--muted);margin-bottom:6px}.wcs-case-page .meta dd{margin:0;font-size:12px}.wcs-case-page .meta .url{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:monospace;font-size:10px}.wcs-case-page .section{padding-top:85px}.wcs-case-page .section-head{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:28px}.wcs-case-page .section-head h2{font-size:30px;font-weight:550;margin:5px 0 0;letter-spacing:-1px}.wcs-case-page .section-head p{color:var(--muted);font-size:12px;margin:0;max-width:390px}.wcs-case-page .number{font-size:10px;color:var(--green);letter-spacing:2px}.wcs-case-page .table-scroll{overflow-x:auto}.wcs-case-page table{border-collapse:collapse;width:100%}.wcs-case-page th{text-align:left;font-size:10px;letter-spacing:1px;padding:16px 18px;color:var(--muted);font-weight:500;border-bottom:1px solid var(--ink)}.wcs-case-page td{padding:20px 18px;border-bottom:1px solid var(--line);font-size:12px;vertical-align:top}.wcs-case-page td strong{font-size:13px}.wcs-case-page td small{display:block;color:var(--muted);margin-top:3px}.wcs-case-page .price{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.wcs-case-page .purchase{background:#fff;border:1px solid var(--line)}.wcs-case-page .purchase-foot{background:var(--navy);padding:22px 24px;display:flex;align-items:center;justify-content:space-between;color:#fff}.wcs-case-page .purchase-foot span{font-size:11px;color:#c5d0d2}.wcs-case-page .purchase-foot b{font-size:26px;font-weight:400}.wcs-case-page .scope{display:grid;grid-template-columns:1fr 1fr;gap:20px;font-size:11px;color:var(--muted);margin-top:16px}.wcs-case-page .scope strong{color:var(--ink)}.wcs-case-page .tools{position:sticky;top:0;z-index:8;padding:14px 0;background:#f3f4eef5;border-bottom:1px solid var(--line);backdrop-filter:blur(12px);display:flex;gap:10px;flex-wrap:wrap;align-items:center}.wcs-case-page .filters{display:flex;flex-wrap:wrap;gap:6px;flex:1}.wcs-case-page .chip{border:1px solid var(--line);padding:6px 12px;background:transparent;font-size:11px;color:var(--muted);border-radius:2px}.wcs-case-page .chip.active{background:var(--ink);color:white;border-color:var(--ink)}.wcs-case-page .search{background:white;border:1px solid var(--line);padding:7px 10px;width:185px;font-size:11px}.wcs-case-page .outline-btn{border:1px solid var(--line);background:transparent;font-size:11px;padding:7px 10px}.wcs-case-page .timeline-summary{display:flex;justify-content:space-between;padding:18px 0 25px;font-size:10px;color:var(--muted)}.wcs-case-page .timeline{position:relative;padding-bottom:20px}.wcs-case-page .timeline:before{content:\"\";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#c7d0c5}.wcs-case-page .event{display:grid;grid-template-columns:1fr 64px 1fr;position:relative;margin-bottom:35px;align-items:start}.wcs-case-page .event .content{grid-column:1;grid-row:1}.wcs-case-page .event .media-box{grid-column:3;grid-row:1}.wcs-case-page .event.right .content{grid-column:3}.wcs-case-page .event.right .media-box{grid-column:1}.wcs-case-page .spine{grid-column:2;grid-row:1;display:flex;justify-content:center;position:relative;top:25px}.wcs-case-page .dot{width:11px;height:11px;border:3px solid var(--paper);background:var(--green);box-shadow:0 0 0 1px var(--green);border-radius:50%;z-index:1}.wcs-case-page .content{background:white;border:1px solid var(--line);padding:25px;min-width:0}.wcs-case-page .content-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:10px}.wcs-case-page .date{font-family:monospace;color:var(--green);font-size:11px}.wcs-case-page .channel{background:#eef2ea;padding:2px 7px;font-size:9px;white-space:nowrap}.wcs-case-page .event h3{margin:12px 0 15px;font-size:17px;line-height:1.6;font-weight:600}.wcs-case-page .serial{font-size:10px;letter-spacing:1px;color:#8d999b}.wcs-case-page .transcript{font-size:12px;line-height:1.95;color:#4d5d63;max-height:235px;overflow:hidden;position:relative}.wcs-case-page .transcript p{margin:0 0 10px}.wcs-case-page .transcript strong{color:var(--ink);font-weight:600}.wcs-case-page .transcript blockquote{margin:10px 0;padding:8px 12px;border-left:2px solid #b7cf8f;background:#f6f8f1}.wcs-case-page .transcript td{font-size:11px;padding:9px;min-width:95px}.wcs-case-page .transcript .ref{font-family:monospace;color:var(--green);background:#edf3e5;padding:2px 5px;font-size:10px}.wcs-case-page .transcript:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:40px;background:linear-gradient(transparent,#fff)}.wcs-case-page .event.expanded .transcript{max-height:none}.wcs-case-page .event.expanded .transcript:after{display:none}.wcs-case-page .expand{border:0;border-top:1px solid #edf0e9;background:none;width:100%;text-align:left;padding:12px 0 0;margin-top:10px;font-size:11px;color:var(--green)}.wcs-case-page .media-box{border:1px dashed #c1cdb9;background:#eaeee4;padding:18px;margin-top:18px;min-width:0}.wcs-case-page .media-top{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.5px;margin-bottom:12px}.wcs-case-page .media-top button{border:0;background:transparent;font-size:10px;color:var(--green);text-decoration:underline}.wcs-case-page .media-art{aspect-ratio:16\/9;background:linear-gradient(145deg,#dde4d8,#c9d4c6);display:flex;align-items:center;justify-content:center;color:#698268;position:relative;overflow:hidden}.wcs-case-page .media-art svg{width:58px;height:58px;stroke:currentColor;fill:none;stroke-width:1}.wcs-case-page .media-art span{position:absolute;left:12px;bottom:10px;font-size:9px;letter-spacing:1px}.wcs-case-page .media-caption{font-size:11px;color:#62735f;margin:12px 0 0;line-height:1.8}.wcs-case-page .media-caption strong{color:#40533e}.wcs-case-page .assets{display:grid;grid-template-columns:1fr 1fr;gap:6px}.wcs-case-page .assets img,.wcs-case-page .assets video{width:100%;aspect-ratio:4\/3;object-fit:cover;background:var(--navy);display:block}.wcs-case-page .assets button{border:0;background:none;padding:0}.wcs-case-page .assets video{grid-column:1\/-1;aspect-ratio:16\/9;object-fit:contain}.wcs-case-page .empty{padding:60px;text-align:center;color:var(--muted)}.wcs-case-page .phase-heading{position:relative;text-align:center;margin:10px 0 35px}.wcs-case-page .phase-heading span{position:relative;background:var(--paper);padding:10px 22px;border:1px solid var(--line);font-size:10px;letter-spacing:1px}.wcs-case-page .closing{background:var(--navy);color:#fff;padding:45px;display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:30px}.wcs-case-page .closing blockquote{margin:0;font-size:23px;line-height:1.6;letter-spacing:-.5px}.wcs-case-page .closing p{font-size:12px;color:#bccbce}.wcs-case-page .closing small{color:var(--lime);font-size:10px}.wcs-case-page .footer{padding:35px 0;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted)}.wcs-case-page dialog{border:0;padding:0;width:min(570px,94vw);max-height:90vh;background:var(--paper);color:var(--ink);box-shadow:0 20px 100px #0005}.wcs-case-page dialog::backdrop{background:#0b202bc9;backdrop-filter:blur(5px)}.wcs-case-page .dialog-inner{padding:28px}.wcs-case-page dialog h3{font-size:22px;margin:0 0 15px}.wcs-case-page dialog p{font-size:12px;color:var(--muted)}.wcs-case-page dialog label{display:block;font-size:12px;margin-top:17px}.wcs-case-page dialog input[type=url]{width:100%;padding:10px;border:1px solid var(--line);margin-top:6px}.wcs-case-page dialog input[type=file]{max-width:100%;font-size:12px}.wcs-case-page dialog .actions{display:flex;gap:8px;justify-content:end;margin-top:24px}.wcs-case-page .primary{background:var(--ink);border:1px solid var(--ink);color:white;padding:8px 15px}.wcs-case-page .status{font-size:11px;color:var(--green);min-height:22px}.wcs-case-page .viewer{width:min(1100px,96vw);background:#0b202b}.wcs-case-page .viewer img{width:100%;max-height:78vh;object-fit:contain}.wcs-case-page .viewer button{position:absolute;right:10px;top:10px;background:white;border:0;padding:5px 12px}.wcs-case-page .viewer p{padding:0 20px;color:white}.wcs-case-page.no-scroll{overflow:hidden}@media(min-width:1400px){.wcs-case-page .wrap{padding:0 40px}}@media(max-width:900px){.wcs-case-page .hero{grid-template-columns:1fr 1fr;padding-top:35px}.wcs-case-page .hero-copy{padding-right:25px}.wcs-case-page .hero-visual{min-height:360px}.wcs-case-page h1{font-size:37px}.wcs-case-page .stats{gap:15px}.wcs-case-page .stat b{font-size:21px}.wcs-case-page .nav-end{display:none}.wcs-case-page .event{grid-template-columns:1fr 40px 1fr}.wcs-case-page .content{padding:18px}.wcs-case-page .media-box{padding:12px}.wcs-case-page .search{width:150px}.wcs-case-page .meta{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.wcs-case-page .notice{font-size:10px}.wcs-case-page .nav{padding:16px 5%}.wcs-case-page .nav-links{gap:15px;font-size:11px}.wcs-case-page .brand{font-size:19px}.wcs-case-page .hero{grid-template-columns:1fr}.wcs-case-page .hero-copy{padding:0 0 26px}.wcs-case-page h1{font-size:39px}.wcs-case-page .hero-visual{min-height:290px}.wcs-case-page .stats{gap:30px}.wcs-case-page .meta>div{padding:15px}.wcs-case-page .section{padding-top:55px}.wcs-case-page .section-head{display:block}.wcs-case-page .section-head p{margin-top:12px}.wcs-case-page .section-head h2{font-size:26px}.wcs-case-page .scope{grid-template-columns:1fr;gap:6px}.wcs-case-page .purchase-foot{padding:18px}.wcs-case-page .purchase-foot b{font-size:23px}.wcs-case-page .tools{gap:8px}.wcs-case-page .filters{flex-basis:100%;gap:5px}.wcs-case-page .chip{padding:5px 9px;font-size:10px}.wcs-case-page .search{flex:1;width:100px}.wcs-case-page .timeline:before{left:7px}.wcs-case-page .event,.wcs-case-page .event.right{grid-template-columns:25px minmax(0,1fr);gap:0;margin-bottom:24px}.wcs-case-page .event .content,.wcs-case-page .event.right .content{grid-column:2;grid-row:1}.wcs-case-page .event .media-box,.wcs-case-page .event.right .media-box{grid-column:2;grid-row:2;margin-top:8px}.wcs-case-page .event .spine{grid-column:1;justify-content:start;left:2px}.wcs-case-page .content{padding:20px}.wcs-case-page .phase-heading{text-align:left;margin-left:25px}.wcs-case-page .closing{grid-template-columns:1fr;padding:28px;gap:10px}.wcs-case-page .closing blockquote{font-size:20px}.wcs-case-page .footer{display:block}.wcs-case-page .footer button{margin-top:15px}.wcs-case-page .media-art{aspect-ratio:2.2}.wcs-case-page .section-head p{max-width:none}.wcs-case-page th,.wcs-case-page td{padding:14px 12px}.wcs-case-page .purchase table{min-width:630px}}@media print{.wcs-case-page .notice,.wcs-case-page .nav,.wcs-case-page .tools,.wcs-case-page .media-top button,.wcs-case-page .expand,.wcs-case-page .footer button,.wcs-case-page .hero-visual>button{display:none}.wcs-case-page .transcript{max-height:none}.wcs-case-page .transcript:after{display:none}.wcs-case-page .event{break-inside:avoid}.wcs-case-page .media-art{max-height:120px}.wcs-case-page .section{padding-top:25px}.wcs-case-page .hero-visual{min-height:250px}.wcs-case-page .content{padding:14px}.wcs-case-page .closing{background:#eee;color:#111}.wcs-case-page .closing p{color:#333}.wcs-case-page{background:white}.wcs-case-page .timeline-summary{padding:10px}.wcs-case-page .hero{padding-top:0}}<\/p>\n<p>\/* Visual theme aligned with cases.html: warm paper \/ charcoal \/ terracotta. *\/\n.wcs-case-page{--ink:#242b29;--muted:#68716c;--paper:#f8f7f3;--white:#fff;--line:#dedfd7;--lime:#f0e1d4;--navy:#242b29;--green:#a84b1e;--orange:#db6b30}\n.wcs-case-page{font-family:Arial,Helvetica,\"PingFang SC\",\"Microsoft YaHei\",sans-serif;line-height:1.75}\n.wcs-case-page button:focus-visible,.wcs-case-page a:focus-visible,.wcs-case-page input:focus-visible{outline-color:var(--orange)}\n.wcs-case-page .notice{background:#f0e7dd;color:#6f5b4d;border-bottom:1px solid #e3d9cc}\n.wcs-case-page .nav{padding-top:24px;padding-bottom:24px}.wcs-case-page .brand{font-weight:600}.wcs-case-page .nav-links a:hover{color:var(--orange)}\n.wcs-case-page .wrap{max-width:1420px;padding:0 56px}.wcs-case-page .hero{padding-top:78px;grid-template-columns:1fr 1fr;gap:60px}.wcs-case-page .hero-copy{padding:10px 0 24px}.wcs-case-page .eyebrow{color:#a84b1e;letter-spacing:1.2px;font-weight:400;font-size:11px}\n.wcs-case-page h1{font-weight:500;font-size:clamp(40px,4.7vw,68px);letter-spacing:-2.4px;line-height:1.15;margin:23px 0}.wcs-case-page .subline{font-size:14px;color:#59625d}.wcs-case-page .hero-visual{border-radius:3px;background:#e7e9e2}.wcs-case-page .hero-visual img{transition:transform .6s}.wcs-case-page .hero-visual:hover img{transform:scale(1.025)}.wcs-case-page .hero-visual>button{background:#f8f7f3ed;color:var(--ink);border-radius:2px;padding:9px 13px}.wcs-case-page .image-label{background:#f8f7f3ed;color:#59625d}\n.wcs-case-page .stats{padding-top:24px;margin-top:30px}.wcs-case-page .stat b{font-weight:400}.wcs-case-page .meta{margin-top:38px;border-left:0}.wcs-case-page .meta>div{border-right:0;padding:22px 20px 22px 0}.wcs-case-page .meta dt{letter-spacing:.6px}.wcs-case-page .meta dd{font-size:13px}\n.wcs-case-page .section{padding-top:82px}.wcs-case-page .section-head{padding-bottom:0}.wcs-case-page .section-head h2{font-weight:500;font-size:clamp(28px,3vw,42px);letter-spacing:-1.4px;line-height:1.2;margin-top:10px}.wcs-case-page .number{color:#a84b1e;letter-spacing:1.2px}.wcs-case-page .section-head p{color:#68716c;font-size:13px}\n.wcs-case-page .purchase{background:transparent;border:0;border-top:1px solid var(--line)}.wcs-case-page th{border-bottom-color:var(--line);font-size:11px}.wcs-case-page td{padding:23px 18px}.wcs-case-page td strong{font-weight:500}.wcs-case-page .purchase-foot{background:#eeede6;color:var(--ink);border-bottom:1px solid var(--line)}.wcs-case-page .purchase-foot span{color:var(--muted)}.wcs-case-page .purchase-foot b{color:#a84b1e;font-weight:500}.wcs-case-page .scope{line-height:1.9}\n.wcs-case-page .tools{background:#f8f7f3f5;padding:24px 0;gap:12px;border-top:1px solid var(--line)}.wcs-case-page .chip{border-radius:25px;padding:8px 15px;font-size:12px;color:var(--ink)}.wcs-case-page .chip:hover{border-color:var(--orange)}.wcs-case-page .chip.active{background:var(--ink);border-color:var(--ink)}.wcs-case-page .search{background:transparent;padding:10px 12px;border-radius:2px}.wcs-case-page .outline-btn{padding:10px 14px;border-color:var(--ink);font-weight:500}.wcs-case-page .outline-btn:hover{background:#e9ebe4}\n.wcs-case-page .timeline:before{background:#dedfd7}.wcs-case-page .event{grid-template-columns:1fr 62px 1fr;margin-bottom:40px}.wcs-case-page .content{background:#fcfbf8;border-color:var(--line);border-radius:3px;padding:27px}.wcs-case-page .event h3{font-weight:500;font-size:20px;letter-spacing:-.4px}.wcs-case-page .date{color:#a84b1e}.wcs-case-page .channel{background:#eee9df;color:#6c6257;border-radius:20px;padding:3px 10px}.wcs-case-page .dot{background:var(--orange);box-shadow:0 0 0 1px var(--orange)}.wcs-case-page .serial{color:#91978d}.wcs-case-page .transcript{color:#59625d;font-size:13px}.wcs-case-page .transcript strong{font-weight:500}.wcs-case-page .transcript:after{background:linear-gradient(transparent,#fcfbf8)}.wcs-case-page .transcript blockquote{border-left-color:var(--orange);background:#f4eee6}.wcs-case-page .transcript .ref{color:#a84b1e;background:#f2e7db}.wcs-case-page .expand{color:#a84b1e;border-color:var(--line);font-size:12px}.wcs-case-page .phase-heading span{border-color:var(--line);letter-spacing:1.2px;color:#68716c}\n.wcs-case-page .media-box{background:#efeee7;border:1px solid #dedfd7;border-radius:3px;padding:20px}.wcs-case-page .media-top{color:#68716c}.wcs-case-page .media-top button{color:#a84b1e}.wcs-case-page .media-art{background:linear-gradient(145deg,#e7e9e2,#daddd1);color:#7a8474}.wcs-case-page .media-caption{color:#68716c;font-size:12px}.wcs-case-page .media-caption strong{color:#59625d;font-weight:500}.wcs-case-page .media-box hr{border-color:var(--line)!important}\n.wcs-case-page .closing{background:transparent;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);padding:46px 0;gap:62px;margin-top:38px}.wcs-case-page .closing blockquote{font-weight:400;font-size:27px;letter-spacing:-.7px}.wcs-case-page .closing small{color:#a84b1e;letter-spacing:1.2px}.wcs-case-page .closing p{color:#59625d}.wcs-case-page .footer{padding:35px 0 45px}.wcs-case-page .footer #save-page{background:var(--orange);border-color:var(--orange);color:white}.wcs-case-page .footer #save-page:hover,.wcs-case-page .primary:hover{background:#be5520}.wcs-case-page .primary{background:var(--orange);border-color:var(--orange)}.wcs-case-page dialog{border-radius:3px}.wcs-case-page dialog::backdrop{background:#242b29b8}.wcs-case-page .status{color:#a84b1e}.wcs-case-page .viewer{background:#242b29}\n@media(max-width:1000px){.wcs-case-page .wrap{padding:0 32px}.wcs-case-page .hero{gap:32px}.wcs-case-page .event{grid-template-columns:1fr 40px 1fr}.wcs-case-page .content{padding:20px}.wcs-case-page .hero-copy{padding-right:0}.wcs-case-page .chip{padding:7px 11px}}\n@media(max-width:650px){.wcs-case-page .wrap{padding:0 22px}.wcs-case-page .hero{padding-top:45px;grid-template-columns:1fr;gap:8px}.wcs-case-page .hero-copy{padding-bottom:25px}.wcs-case-page h1{font-size:42px;letter-spacing:-1.8px}.wcs-case-page .hero-visual{min-height:290px}.wcs-case-page .meta>div{padding:17px 12px 17px 0}.wcs-case-page .meta dd{font-size:12px}.wcs-case-page .section{padding-top:52px}.wcs-case-page .section-head h2{font-size:30px}.wcs-case-page .tools{padding:16px 0}.wcs-case-page .chip{padding:7px 10px;font-size:10px}.wcs-case-page .event,.wcs-case-page .event.right{grid-template-columns:25px minmax(0,1fr);margin-bottom:27px}.wcs-case-page .content{padding:20px}.wcs-case-page .event h3{font-size:18px}.wcs-case-page .media-box{padding:17px}.wcs-case-page .closing{padding:32px 0;gap:15px}.wcs-case-page .closing blockquote{font-size:23px}.wcs-case-page .purchase-foot{padding:18px}.wcs-case-page .purchase-foot b{font-size:23px}.wcs-case-page .outline-btn{padding:8px 11px}}\n@media(prefers-reduced-motion:reduce){.wcs-case-page *{scroll-behavior:auto!important;transition:none!important}}\n@media print{.wcs-case-page .closing{background:white;color:#242b29}.wcs-case-page .closing p{color:#59625d}.wcs-case-page .transcript:after{display:none}.wcs-case-page .content{background:white}.wcs-case-page .tools{display:none}}<\/p>\n<p>\/* White page background *\/\n.wcs-case-page{--paper:#fff}\n.wcs-case-page,.wcs-case-page .nav,.wcs-case-page .phase-heading span{background:#fff}\n.wcs-case-page .tools{background:#fffffff5}<\/p>\n<p>\/* Subtle motion, progressively enhanced. *\/\n.wcs-case-page .read-progress{position:fixed;top:0;left:0;height:3px;width:100%;transform:scaleX(0);transform-origin:left;background:#db6b30;z-index:50;pointer-events:none}\n@media(prefers-reduced-motion:no-preference){\n.wcs-case-page.motion-ready .reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.25,1)}\n.wcs-case-page.motion-ready .reveal.is-visible{opacity:1;transform:translateY(0)}\n.wcs-case-page .content{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}\n.wcs-case-page .content:hover{transform:translateY(-3px);border-color:#d4b69e;box-shadow:0 10px 28px #242b290a}\n.wcs-case-page .event .dot{transition:transform .35s ease,box-shadow .35s ease}\n.wcs-case-page .event.is-visible .dot{transform:scale(1.12);box-shadow:0 0 0 1px #db6b30,0 0 0 6px #db6b3012}\n.wcs-case-page .chip,.wcs-case-page .outline-btn,.wcs-case-page .primary,.wcs-case-page .expand,.wcs-case-page .nav-links a{transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}\n.wcs-case-page .chip:hover,.wcs-case-page .outline-btn:hover,.wcs-case-page .primary:hover{transform:translateY(-1px)}\n.wcs-case-page .media-art svg{transition:transform .35s ease}.wcs-case-page .media-box:hover .media-art svg{transform:translateY(-3px)}\n.wcs-case-page dialog[open]{animation:dialog-in .22s ease-out}@keyframes dialog-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}\n}\n@media print{.wcs-case-page .read-progress{display:none}.wcs-case-page.motion-ready .reveal{opacity:1!important;transform:none!important}}<\/p>\n<p>\/* Full-width, equal rectangular stage navigation. *\/\n.wcs-case-page .tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}\n.wcs-case-page .filters{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;width:100%}\n.wcs-case-page .filters .chip{border-radius:0;padding:12px 4px;margin:0;font-size:12px;border-right-width:0;white-space:nowrap}\n.wcs-case-page .filters .chip:last-child{border-right-width:1px}\n.wcs-case-page .filters .chip:hover{transform:none;background:#f3ece5}\n.wcs-case-page .filters .chip.active:hover{background:var(--ink)}\n.wcs-case-page #expand-all{border-radius:0;padding:12px;align-self:stretch}\n@media(max-width:650px){.wcs-case-page .tools{grid-template-columns:1fr;gap:8px}.wcs-case-page .filters{grid-template-columns:repeat(7,minmax(0,1fr))}.wcs-case-page .filters .chip{font-size:10px;padding:11px 1px;white-space:normal;line-height:1.5}.wcs-case-page #expand-all{justify-self:end;padding:6px 12px}}<\/p>\n<p>\/* English typography and navigation sizing. *\/\n.wcs-case-page h1{font-size:clamp(36px,4.2vw,60px);letter-spacing:-2px}.wcs-case-page .filters .chip{white-space:normal;line-height:1.4;font-size:11px;display:flex;align-items:center;justify-content:center;min-height:48px}.wcs-case-page .content-top{align-items:flex-start}.wcs-case-page .date{line-height:1.6}.wcs-case-page .channel{white-space:normal;text-align:center}.wcs-case-page .hero-copy{min-width:0}.wcs-case-page .purchase table{min-width:680px}.wcs-case-page .meta dd{overflow-wrap:anywhere}\n@media(max-width:650px){.wcs-case-page h1{font-size:40px;letter-spacing:-1.5px}.wcs-case-page .filters .chip{font-size:9px;padding:9px 3px;overflow-wrap:anywhere;min-height:53px}.wcs-case-page .nav-links{font-size:10px;gap:11px}.wcs-case-page .stats{gap:22px}.wcs-case-page .stat span{font-size:9px}.wcs-case-page .hero-visual{min-height:260px}}<\/p>\n<p>\/* Navigation distributes any number of stages across one row. *\/\n.wcs-case-page .tools{display:block}\n.wcs-case-page .filters{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-template-columns:none;width:100%;gap:0}\n.wcs-case-page .filters .chip{min-width:0;white-space:normal;overflow-wrap:anywhere;height:100%}\n@media(max-width:650px){.wcs-case-page .tools{display:block}.wcs-case-page .filters{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}}<\/p>\n<p>\/* Section links keep the complete timeline visible. *\/\n.wcs-case-page .phase-heading{scroll-margin-top:105px}\n.wcs-case-page .filters a.chip{text-align:center;text-decoration:none;cursor:pointer}\n@media(max-width:650px){.wcs-case-page .phase-heading{scroll-margin-top:115px}}<\/p>\n<p>\/* Brighter timeline stage labels. *\/\n.wcs-case-page .phase-heading span{color:#db6b30;font-weight:600;border-color:#e9c8b5;background:#fffaf6}<\/p>\n<p>\/* One gallery card per communication node. *\/\n.wcs-case-page .gallery-card{overflow:hidden}.wcs-case-page .gallery-preview{background:#e7e9e2;aspect-ratio:16\/10;overflow:hidden}.wcs-case-page .gallery-preview .media-art{width:100%;height:100%;aspect-ratio:auto}.wcs-case-page .gallery-image{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}.wcs-case-page .gallery-image img{display:block;width:100%;height:100%;object-fit:contain}.wcs-case-page .gallery-video{width:100%;height:100%;object-fit:contain;background:#242b29}.wcs-case-page .gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;font-size:10px;color:#68716c}.wcs-case-page .gallery-controls button{border:1px solid #dedfd7;background:#fff;width:32px;height:28px;color:#a84b1e}.wcs-case-page .gallery-controls button:disabled{opacity:.35;cursor:default}.wcs-case-page .gallery-thumbnails{display:flex;gap:7px;overflow-x:auto;padding:3px 1px 8px}.wcs-case-page .gallery-thumb{flex:0 0 70px;width:70px;height:52px;padding:2px;border:1px solid #dedfd7;background:#fff;overflow:hidden}.wcs-case-page .gallery-thumb.selected{border:2px solid #db6b30;padding:1px}.wcs-case-page .gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}.wcs-case-page .brief-thumb,.wcs-case-page .video-thumb{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;background:#e7e9e2;color:#59625d;font-size:12px;line-height:1.5}.wcs-case-page .gallery-thumb small{font-size:7px;letter-spacing:.3px}.wcs-case-page .video-thumb{background:#343c36;color:white}.wcs-case-page .gallery-card .media-caption{min-height:65px}.wcs-case-page .gallery-thumb:hover{border-color:#db6b30}<\/p>\n<p>\/* Month-day-year date floats above each communication card. *\/\n.wcs-case-page .event{margin-top:32px}\n.wcs-case-page .event .content{position:relative}\n.wcs-case-page .event .event-date{position:absolute;right:0;top:-29px;display:block;white-space:nowrap;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:20px;font-weight:500;text-align:right;color:#a84b1e}\n.wcs-case-page .content-top{justify-content:flex-start}\n@media(max-width:650px){.wcs-case-page .event{margin-top:32px}.wcs-case-page .event .event-date{font-size:11px;top:-27px}}<\/p>\n<p>.wcs-case-page .event .event-date{top:-24px;color:#db6b30}\n@media(max-width:650px){.wcs-case-page .event .event-date{top:-23px}}<\/p>\n<p>\/* Paired cards stretch to the same height; media copy is limited to its heading. *\/\n.wcs-case-page .event{align-items:stretch}.wcs-case-page .event .spine{align-self:start}\n.wcs-case-page .event .gallery-card{margin-top:0;margin-bottom:0;align-self:stretch;display:flex;flex-direction:column;min-height:0;padding:16px}\n.wcs-case-page .gallery-card .media-top{flex:0 0 auto;gap:12px;margin-bottom:12px;align-items:start}.wcs-case-page .gallery-card .media-top>span{font-size:12px;line-height:1.5;color:#59625d;text-transform:capitalize;letter-spacing:0}\n.wcs-case-page .gallery-card .media-top button{font-size:19px;line-height:20px;text-decoration:none;padding:0 3px}\n.wcs-case-page .gallery-card .gallery-preview{flex:1 1 0;min-height:90px;aspect-ratio:auto;position:relative}\n.wcs-case-page .gallery-preview>.gallery-image,.wcs-case-page .gallery-preview>.gallery-video,.wcs-case-page .gallery-preview>.media-art{position:absolute;inset:0;width:100%;height:100%}\n.wcs-case-page .gallery-controls{flex:0 0 auto;justify-content:space-between;margin:10px 0 6px}.wcs-case-page .gallery-thumbnails{flex:0 0 auto;padding-bottom:0}.wcs-case-page .brief-thumb{font-size:22px}\n@media(max-width:650px){.wcs-case-page .event .gallery-card{margin-top:8px;height:320px;align-self:auto}.wcs-case-page .gallery-card .gallery-preview{min-height:0}}<\/p>\n<p>\/* Dates align toward the central timeline. *\/\n.wcs-case-page .event.right .event-date{left:0;right:auto;text-align:left}\n@media(max-width:650px){.wcs-case-page .event .event-date{left:0;right:auto;text-align:left}}<\/p>\n<p>.wcs-case-page .record-part h4{font-size:12px;line-height:1.6;color:#a84b1e;font-weight:600;margin:18px 0 10px}.wcs-case-page .record-part:first-child h4{margin-top:0}.wcs-case-page .record-part+.record-part{border-top:1px solid #dedfd7;margin-top:18px;padding-top:2px}<\/p>\n<p>\/* Generated photo assets and faithful communication captures. *\/\n.wcs-case-page .gallery-preview{background:#f5f5f2}\n.wcs-case-page .gallery-image.is-photo img{object-fit:cover}\n.wcs-case-page .gallery-image.is-screenshot{background:#fff}\n.wcs-case-page .gallery-image.is-screenshot img{object-fit:contain;background:#fff}\n.wcs-case-page .viewer img{object-fit:contain}\n<\/style>\n<p><title>Outdoor playground for a family restaurant in Cape Town, South Africa<\/title><meta content=\"Mimu Play supplied one MHO-1020 outdoor playground for a family restaurant in Cape Town, South Africa, from courtyard layout planning to delivery and handover.\" name=\"description\"\/><meta content=\"Outdoor playground for a family restaurant in Cape Town, South Africa\" property=\"og:title\"\/><meta content=\"Mimu Play supplied one MHO-1020 outdoor playground for a family restaurant in Cape Town, South Africa, from courtyard layout planning to delivery and handover.\" property=\"og:description\"\/><meta content=\"https:\/\/www.mimuplay.com\/mimuplay-cape-town-family-restaurant-outdoor-playground\/\" property=\"og:url\"\/><\/p>\n<style id=\"case-content-adjustments\">\nbody{margin:0;background:#fff}.wcs-case-page .transcript{max-height:none;overflow:visible;overflow-wrap:anywhere}.wcs-case-page .transcript:after{display:none}.wcs-case-page .transcript .people{color:var(--ink);font-weight:600;margin-bottom:15px}.wcs-case-page .our-note{font-style:italic;border-top:1px solid var(--line);padding-top:12px}.wcs-case-page .hero-placeholder{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}.wcs-case-page .purchase table{min-width:0;table-layout:fixed}.wcs-case-page .purchase th:nth-child(1){width:40%}.wcs-case-page .purchase th:nth-child(2){width:17%}.wcs-case-page .purchase td,.wcs-case-page .purchase th{overflow-wrap:anywhere}.wcs-case-page .scope{grid-template-columns:1fr}.wcs-case-page .phase-heading{scroll-margin-top:130px}.wcs-case-page .event,.wcs-case-page .event.right{min-width:0}.wcs-case-page .filters .chip{min-height:60px}.wcs-case-page .media-top{justify-content:flex-start}.wcs-case-page .hero-placeholder svg{width:66px;height:66px}\n@media(max-width:650px){.wcs-case-page .purchase td,.wcs-case-page .purchase th{padding:12px 8px}.wcs-case-page .filters .chip{font-size:9px}.wcs-case-page .hero-placeholder{position:relative;min-height:260px}}\n<\/style>\n<style>.wcs-case-page .hero-visual>.hero-image-button{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}.wcs-case-page .hero-image-button img{inset:0}.wcs-case-page .viewer{max-height:94vh}.wcs-case-page .viewer img{display:block;width:100%;height:auto;max-height:85vh;object-fit:contain}<\/style>\n<link href=\"https:\/\/www.mimuplay.com\/mimuplay-cape-town-family-restaurant-outdoor-playground\/\" rel=\"canonical\"\/><\/head><body>\n<div class=\"wcs-case-page\" id=\"wcs-case-page\">\n<main class=\"wrap\"><\/p>\n<section id=\"overview\">\n<div class=\"hero\">\n<div class=\"hero-copy\">\n<h1><span class=\"ez-toc-section\" id=\"Outdoor_playground_for_a_family_restaurant_in_Cape_Town_South_Africa\"><\/span>Outdoor playground for a family restaurant in Cape Town, South Africa<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p class=\"subline\">Cape Town, South Africa \u00b7 Harbour Table Kitchen<\/p>\n<p>An independent 85-seat restaurant replaced occasional hired children\u2019s activities with one permanent MHO-1020 outdoor play structure. The project retained a separate food-service route during phased courtyard works, closed a late colour-change request and rescheduled dispatch after the customer\u2019s drain work was delayed.<\/p>\n<\/div>\n<div class=\"hero-visual\"><button aria-label=\"View restaurant courtyard image\" class=\"hero-image-button\" id=\"hero-view\"><img decoding=\"async\" alt=\"Restaurant courtyard playground\" fetchpriority=\"high\" height=\"1024\" id=\"hero-img\" src=\"https:\/\/www.mimuplay.com\/wp-content\/uploads\/2026\/11\/cape-town-family-restaurant-outdoor-playground-01.webp\" width=\"1536\"\/><\/button><\/div>\n<\/div>\n<dl class=\"meta\">\n<div>\n<dt>COUNTRY \/ REGION<\/dt>\n<dd>South Africa \u00b7 Cape Town<\/dd>\n<\/div>\n<div>\n<dt>RELATED PRODUCTS<\/dt>\n<dd>MHO-1020 outdoor playground<\/dd>\n<\/div>\n<div>\n<dt>PROJECT PERIOD<\/dt>\n<dd>August 4, 2025 \u2013 January 12, 2026<\/dd>\n<\/div>\n<div>\n<dt>SHIPPING METHOD<\/dt>\n<dd>Ocean freight to Cape Town; local road delivery<\/dd>\n<\/div>\n<\/dl>\n<\/section>\n<section class=\"section\" id=\"purchase\">\n<div class=\"section-head\">\n<div>\n<h2><span class=\"ez-toc-section\" id=\"Procurement_list\"><\/span>Procurement list<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<\/div>\n<\/div>\n<div class=\"purchase\">\n<div class=\"table-scroll\">\n<table>\n<thead>\n<tr>\n<th>PRODUTO<\/th>\n<th>QUANTITY<\/th>\n<th>TIME<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=\"https:\/\/www.mimuplay.com\/pt\/mho-1020\/\">MHO-1020 outdoor playground<\/a><\/td>\n<td>1 set<\/td>\n<td>Shipped October 17, 2025<br \/>Delivered December 1, 2025<br \/>Installed December 8, 2025<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"scope\">\n<div><strong>Payment schedule<\/strong> The deposit was payable after signing and was received on August 26, 2025. Production required deposit receipt and approval of the final drawings, confirmed on August 28. The balance was payable after acceptance of the pre-shipment documents and before dispatch; it was received on October 13. Dispatch also required the customer\u2019s written release.<\/div>\n<\/div>\n<\/section>\n<section class=\"section\" id=\"journey\">\n<div class=\"section-head\">\n<div>\n<h2><span class=\"ez-toc-section\" id=\"Communication_records\"><\/span>Communication records<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<\/div>\n<\/div>\n<div class=\"tools\">\n<div class=\"filters\" id=\"filters\"><\/div>\n<\/div>\n<div class=\"timeline\" id=\"timeline\"><\/div>\n<\/section>\n<p><\/main><br \/>\n<dialog class=\"viewer\" id=\"viewer\"><button aria-label=\"Close Image Viewer\" id=\"viewer-close\" type=\"button\">Close <svg aria-hidden=\"true\" fill=\"none\" focusable=\"false\" height=\"12\" stroke=\"currentColor\" stroke-width=\"1.8\" style=\"display:inline-block;vertical-align:middle\" viewbox=\"0 0 24 24\" width=\"12\"><path d=\"m6 6 12 12M18 6 6 18\"><\/path><\/svg><\/button><img alt=\"Project image preview\" id=\"viewer-img\"\/><\/p>\n<p id=\"viewer-caption\">\n<p><\/dialog><br \/>\n<!-- Media is configured below in case-data.media.Mxx.assets.\nImage entry: {\"src\":\"assets\/example.jpg\",\"type\":\"image\",\"name\":\"Site photograph\"}\nVideo entry: {\"src\":\"assets\/example.mp4\",\"type\":\"video\",\"name\":\"Site video\"}\nUse an embedded data URL to keep media within this single HTML file.\nMaximum six timeline media resources; the hero is listed separately. One image OR video per timeline slot.\nEach event references its media IDs through the event.media array. --><br \/>\n<script id=\"case-data\" type=\"application\/json\">{\"events\": [{\"id\": 1, \"phase\": 0, \"date\": \"Aug 4\", \"year\": 2025, \"isoDate\": \"2025-08-04\", \"channel\": \"Website enquiry\", \"heading\": \"A permanent play area beside the dining terrace\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Thandi<\\\/p><\/p>\n<p>Hello, we run Harbour Table Kitchen, a family restaurant in Cape Town. We currently hire children&#x27;s activities on selected weekends and would like a permanent outdoor play area. I like the space-themed MHO-1020. Our courtyard is about 310 square metres, including outdoor dining and a service path. Could you quote for one set? We need to keep trading while the work is done.<\\\/p><\/p>\n<p class=\\\"our-note\\\">The request was to replace occasional hired activities with a permanent equipment area. I asked for the usable area to be marked separately from the full courtyard.<\\\/p>\", \"media\": []}, {\"id\": 2, \"phase\": 0, \"date\": \"Aug 6\", \"year\": 2025, \"isoDate\": \"2025-08-06\", \"channel\": \"Email\", \"heading\": \"Keep the food-service route separate\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Mia, Thandi<\\\/p><\/p>\n<p>Subject: Site plan and restaurant operating hours<\\\/p><\/p>\n<p>Hi Thandi,<\\\/p><\/p>\n<p>Before I quote the project configuration, please mark the dining tables, kitchen delivery route and proposed equipment area on a measured plan. Which days can your contractor work without closing the restaurant?<\\\/p><\/p>\n<p>Best,<br \/>Mia<\\\/p><\/p>\n<p>Thandi:<\\\/p><\/p>\n<p>We have 85 seats across the restaurant and terrace. The contractor can work in the courtyard on Mondays and Tuesdays. We&#x27;ll close that part of the courtyard to guests while he works, but the kitchen service route must remain available. I&#x27;ll ask Pieter to mark it on the plan.<\\\/p><\/p>\n<p class=\\\"our-note\\\">Pieter was the local fit-out contractor. We asked him to review the operating route and the work area together before locating the equipment.<\\\/p>\", \"media\": []}, {\"id\": 3, \"phase\": 0, \"date\": \"Aug 11\", \"year\": 2025, \"isoDate\": \"2025-08-11\", \"channel\": \"Email\", \"heading\": \"A smaller equipment zone, with no second set\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Pieter, Mia<\\\/p><\/p>\n<p>Subject: Marked courtyard plan<\\\/p><\/p>\n<p>Hi Mia,<\\\/p><\/p>\n<p>Attached is the measured plan. The 310 square metres includes everything outside, not just the play area. I&#x27;ve marked the proposed equipment zone, the restaurant door and the kitchen delivery path. Thandi wants one structure only. We also have an existing drain to renew before the new surface goes down. Please send the equipment layout for review rather than filling the whole courtyard.<\\\/p><\/p>\n<p>Regards,<br \/>Pieter<\\\/p><\/p>\n<p>Mia:<\\\/p><\/p>\n<p>Received. Victor will work from the marked area. Please review the resulting equipment arrangement and local works with us before approval; we won&#x27;t infer the required installation space from the website&#x27;s area category.<\\\/p><\/p>\n<p class=\\\"our-note\\\">I added the drain renewal to the coordination schedule because it had to be completed before surfacing.<\\\/p>\", \"media\": []}, {\"id\": 4, \"phase\": 1, \"date\": \"Aug 14\", \"year\": 2025, \"isoDate\": \"2025-08-14\", \"channel\": \"Email\", \"heading\": \"Move the entrance away from the serving route\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Mia, Pieter, Thandi<\\\/p><\/p>\n<p>Subject: First courtyard layout<\\\/p><\/p>\n<p>Hi Thandi and Pieter,<\\\/p><\/p>\n<p>Victor&#x27;s first layout is attached. Please review the entrance position against the serving route and the terrace seating. We have kept one MHO-1020 set in the proposed zone; no extra structure has been added.<\\\/p><\/p>\n<p>Best,<br \/>Mia<\\\/p><\/p>\n<p>Pieter:<\\\/p><\/p>\n<p>The entrance on that side would put waiting families close to the staff route. Can Victor turn the arrangement towards the terrace, within the same marked zone? I&#x27;ll check the revised access and ground works with Thandi before she signs it off.<\\\/p><\/p>\n<p class=\\\"our-note\\\">Victor took the terrace-facing entrance request into the drawing revision for customer review.<\\\/p>\", \"media\": []}, {\"id\": 5, \"phase\": 1, \"date\": \"Aug 18\", \"year\": 2025, \"isoDate\": \"2025-08-18\", \"channel\": \"WhatsApp\", \"heading\": \"Do not promise an opening date from the ship date\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Thandi, Mia<\\\/p><\/p>\n<p>Thandi: Could I announce the new area for our December bookings now?<\\\/p><\/p>\n<p>Mia: I wouldn&#x27;t put a fixed opening date on the booking page yet. We still need your approved drawings, the production slot and the transport plan. Pieter also has the drain, foundations and surface to finish.<\\\/p><\/p>\n<p>Thandi: Fair enough. We&#x27;ll say the courtyard upgrade is planned and confirm the play area&#x27;s opening separately.<\\\/p><\/p>\n<p>Mia: I&#x27;ll give you the production plan with the order documents. Please keep a separate allowance for local works and the checks before opening.<\\\/p><\/p>\n<p class=\\\"our-note\\\">Thandi kept the booking-page announcement open until the local work and opening checks were complete.<\\\/p>\", \"media\": []}, {\"id\": 6, \"phase\": 2, \"date\": \"Aug 20\", \"year\": 2025, \"isoDate\": \"2025-08-20\", \"channel\": \"Email\", \"heading\": \"Confirm the base colour scheme before ordering\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Mia, Thandi<\\\/p><\/p>\n<p>Subject: Quotation and colour schedule<\\\/p><\/p>\n<p>Hi Thandi,<\\\/p><\/p>\n<p>The revised quotation covers one MHO-1020 set against the layout discussed with Pieter. The colour schedule follows the blue and orange scheme you selected from the product reference. Please check this before signing. Any later colour request will need to be reviewed against the production stage; it won&#x27;t automatically be included in the same schedule.<\\\/p><\/p>\n<p>Best,<br \/>Mia<\\\/p><\/p>\n<p>Thandi:<\\\/p><\/p>\n<p>The blue and orange scheme is fine. We haven&#x27;t finalised our restaurant signage yet, but that is a separate job. Please keep this equipment schedule as shown.<\\\/p><\/p>\n<p class=\\\"our-note\\\">I included the selected blue and orange colour schedule with the quotation for approval.<\\\/p>\", \"media\": []}, {\"id\": 7, \"phase\": 2, \"date\": \"Aug 22\", \"year\": 2025, \"isoDate\": \"2025-08-22\", \"channel\": \"Email\", \"heading\": \"Signed order for one MHO-1020 set\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Thandi, Mia<\\\/p><\/p>\n<p>Subject: Signed order \u2014 Harbour Table courtyard<\\\/p><\/p>\n<p>Hi Mia,<\\\/p><\/p>\n<p>Attached is the signed order for one MHO-1020 set, with the blue and orange colour schedule. Pieter will coordinate the local works and installation. Please proceed with the final drawing package. We&#x27;ll arrange the deposit under the agreed terms. Please keep the shipment timing linked to our site-readiness update rather than sending it as soon as it is packed.<\\\/p><\/p>\n<p>Regards,<br \/>Thandi<\\\/p><\/p>\n<p>Mia:<\\\/p><\/p>\n<p>Thanks, Thandi. We&#x27;ll confirm the production slot after receipt of the deposit and drawing approval. Jia will ask for your written release before finalising dispatch. Any requested storage period will need a separate written arrangement.<\\\/p><\/p>\n<p class=\\\"our-note\\\">Jia recorded the requirement to obtain a written release before dispatch and to agree any storage period separately.<\\\/p>\", \"media\": [\"M01\"]}, {\"id\": 8, \"phase\": 2, \"date\": \"Aug 26\", \"year\": 2025, \"isoDate\": \"2025-08-26\", \"channel\": \"Email\", \"heading\": \"Deposit received; drawings approved on August 28\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Mia, Pieter, Thandi<\\\/p><\/p>\n<p>Subject: Deposit and final drawing approval<\\\/p><\/p>\n<p>Mia, August 26:<\\\/p><\/p>\n<p>Hi Thandi, finance has confirmed receipt of the deposit. Please review the final drawing package with Pieter before giving production approval.<\\\/p><\/p>\n<p>Pieter, August 28:<\\\/p><\/p>\n<p>We&#x27;ve reviewed the equipment layout and local works interface. The terrace-facing entrance and separate service route are confirmed from our side.<\\\/p><\/p>\n<p>Thandi, August 28:<\\\/p><\/p>\n<p>Approved against that package and the blue and orange colour schedule.<\\\/p><\/p>\n<p>Mia, August 28:<\\\/p><\/p>\n<p>Confirmed. Production is scheduled from September 1 to September 26. Dispatch still needs your written release and the payment due before shipment.<\\\/p><\/p>\n<p class=\\\"our-note\\\">The deposit and drawing approval allowed production to start. Dispatch remained subject to a separate release.<\\\/p>\", \"media\": []}, {\"id\": 9, \"phase\": 3, \"date\": \"Sep 15\", \"year\": 2025, \"isoDate\": \"2025-09-15\", \"channel\": \"Email\", \"heading\": \"A late request to match the restaurant branding\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Thandi, Mia<\\\/p><\/p>\n<p>Subject: Could we change the equipment colours?<\\\/p><\/p>\n<p>Hi Mia,<\\\/p><\/p>\n<p>Our designer has now chosen green and cream for the restaurant branding. Could the orange and blue equipment parts be changed to match? If it is just a colour choice, I was hoping it wouldn&#x27;t affect the delivery plan.<\\\/p><\/p>\n<p>Thanks,<br \/>Thandi<\\\/p><\/p>\n<p>Mia:<\\\/p><\/p>\n<p>Hi Thandi, production is already underway against the approved schedule, and the blue and orange moulded parts for this order have been prepared. I can&#x27;t confirm a change on the same price and dates. I&#x27;ll ask the production team what replacement would involve and reply tomorrow. Please don&#x27;t approve new colour artwork for the equipment until we have agreed the impact.<\\\/p><\/p>\n<p class=\\\"our-note\\\">I sent the current production photographs and asked the factory to review the request before making any changes.<\\\/p>\", \"media\": [\"M02\"]}, {\"id\": 10, \"phase\": 3, \"date\": \"Sep 16\", \"year\": 2025, \"isoDate\": \"2025-09-16\", \"channel\": \"WhatsApp\", \"heading\": \"Retain the approved colours\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Mia, Thandi<\\\/p><\/p>\n<p>Mia: I&#x27;ve checked with production. Replacing the prepared coloured parts would need a revised quotation and schedule. I can&#x27;t keep the existing completion date if you approve that change.<\\\/p><\/p>\n<p>Thandi: Then keep the blue and orange. We can use our brand colours on the restaurant&#x27;s own signs instead. Please don&#x27;t change the equipment.<\\\/p><\/p>\n<p>Mia: Confirmed. I&#x27;ll send a short written change log saying the request was reviewed and withdrawn. Production stays on the approved colour schedule.<\\\/p><\/p>\n<p>Thandi: Yes, please. I don&#x27;t want the new artwork sent to your team later by mistake.<\\\/p><\/p>\n<p class=\\\"our-note\\\">I recorded the withdrawal of the colour request so the approved schedule remained clear to the production team.<\\\/p>\", \"media\": []}, {\"id\": 11, \"phase\": 3, \"date\": \"Sep 26\", \"year\": 2025, \"isoDate\": \"2025-09-26\", \"channel\": \"Email\", \"heading\": \"Ready for review, not automatically released\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Jia, Thandi<\\\/p><\/p>\n<p>Subject: Pre-shipment review package<\\\/p><\/p>\n<p>Hi Thandi,<\\\/p><\/p>\n<p>Production is complete. Attached are the equipment photographs, inspection summary and packing list for the one-set order. Please review them against the approved drawing and colour schedule. The package labels identify the shipment groups.<\\\/p><\/p>\n<p>We have an initial dispatch plan for October 8, but this is not a confirmed release. Please update us on the drain and surface works before we finalise the shipment.<\\\/p><\/p>\n<p>Regards,<br \/>Jia<\\\/p><\/p>\n<p>Thandi:<\\\/p><\/p>\n<p>The equipment shown matches the approved blue and orange scheme. I&#x27;ll review the rest with Pieter and send our site update separately.<\\\/p><\/p>\n<p class=\\\"our-note\\\">Jia kept the packed order on hold pending the customer\u2019s site update and dispatch release.<\\\/p>\", \"media\": [\"M03\", \"M04\"]}, {\"id\": 12, \"phase\": 4, \"date\": \"Oct 1\", \"year\": 2025, \"isoDate\": \"2025-10-01\", \"channel\": \"WhatsApp\", \"heading\": \"Hold dispatch while the drain work is completed\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Thandi, Jia<\\\/p><\/p>\n<p>Thandi, October 1, 15:05: Pieter says the drain work is taking longer than planned. Please don&#x27;t send the equipment on the October 8 plan. We don&#x27;t have a dry storage area at the restaurant.<\\\/p><\/p>\n<p>Jia, October 1, 15:25: I&#x27;ll pause that plan. Please send a revised readiness date. I&#x27;ll confirm the storage period and next dispatch option in writing before we commit to another booking.<\\\/p><\/p>\n<p>Thandi, October 3, 16:10: Pieter now expects the receiving area to be ready by October 10. Can you hold the packed order until October 13 and then arrange the next agreed sailing?<\\\/p><\/p>\n<p>Jia, October 3, 16:30: We can hold this order until October 13 under the written storage arrangement I&#x27;ve emailed. I&#x27;ll seek an October 17 sailing, subject to booking confirmation. We still need your written release and the balance before dispatch.<\\\/p><\/p>\n<p class=\\\"our-note\\\">I replaced the October 8 plan with the agreed storage and release sequence and sent the revised dispatch arrangement in writing.<\\\/p>\", \"media\": [\"M06\"]}, {\"id\": 13, \"phase\": 4, \"date\": \"Oct 10\", \"year\": 2025, \"isoDate\": \"2025-10-10\", \"channel\": \"Email\", \"heading\": \"Written release and balance payment\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Thandi, Jia, Mia<\\\/p><\/p>\n<p>Subject: Release for dispatch<\\\/p><\/p>\n<p>Thandi, October 10:<\\\/p><\/p>\n<p>Hi Jia, Pieter has confirmed that the receiving area is ready and the contractor has scheduled the remaining surface work. We accept the review documents and the agreed storage arrangement. Please release the order for the confirmed October 17 shipment. I&#x27;ll arrange the balance before dispatch.<\\\/p><\/p>\n<p>Mia, October 13:<\\\/p><\/p>\n<p>Hi Thandi, finance has confirmed receipt of the balance today. Jia has your written release and will proceed with the confirmed booking. Please keep Pieter informed of the arrival updates so he can plan installation after receipt.<\\\/p><\/p>\n<p class=\\\"our-note\\\">Finance recorded the balance receipt on October 13. Jia now had both the customer\u2019s release and the payment confirmation for dispatch.<\\\/p>\", \"media\": []}, {\"id\": 14, \"phase\": 4, \"date\": \"Oct 17\", \"year\": 2025, \"isoDate\": \"2025-10-17\", \"channel\": \"Email\", \"heading\": \"The revised shipment is loaded\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Jia, Thandi<\\\/p><\/p>\n<p>Subject: Shipment loaded \u2014 Harbour Table order<\\\/p><\/p>\n<p>Hi Thandi,<\\\/p><\/p>\n<p>Your order has been loaded for the agreed ocean shipment today. The carrier&#x27;s current estimated arrival at Cape Town is November 24. I&#x27;ve sent the packing list and shipping documents to you and your nominated forwarder. Please arrange clearance and local delivery through them and keep the site team updated if the arrival estimate changes.<\\\/p><\/p>\n<p>Regards,<br \/>Jia<\\\/p><\/p>\n<p>Thandi:<\\\/p><\/p>\n<p>Received, thank you. Pieter has the revised arrival plan. We won&#x27;t book the installation team against the old October dispatch date.<\\\/p><\/p>\n<p class=\\\"our-note\\\">The shipping documents followed the actual October 17 dispatch. I marked the earlier October 8 plan as superseded.<\\\/p>\", \"media\": [\"M05\"]}, {\"id\": 15, \"phase\": 4, \"date\": \"Nov 24\", \"year\": 2025, \"isoDate\": \"2025-11-24\", \"channel\": \"WhatsApp\", \"heading\": \"Port arrival and courtyard delivery\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Jia, Pieter<\\\/p><\/p>\n<p>Jia, November 24: Your forwarder has confirmed port arrival today. Please let us know once the packages reach the restaurant.<\\\/p><\/p>\n<p>Pieter, December 1: Delivery is complete. We used the agreed service entrance, and the package count matches the list. The outer packaging looks intact. We&#x27;ll complete the unpacking check before installation.<\\\/p><\/p>\n<p>Jia, December 1: Thanks. Please retain the labels during unpacking and record the check against the packing list. Send any questions before installation starts.<\\\/p><\/p>\n<p class=\\\"our-note\\\">I recorded delivery on December 1 and left the unpacking and installation checks for the local team to complete.<\\\/p>\", \"media\": []}, {\"id\": 16, \"phase\": 5, \"date\": \"Dec 8\", \"year\": 2025, \"isoDate\": \"2025-12-08\", \"channel\": \"Email\", \"heading\": \"Installation finished during the courtyard closure\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Pieter, Mia<\\\/p><\/p>\n<p>Subject: Installation completed<\\\/p><\/p>\n<p>Hi Mia,<\\\/p><\/p>\n<p>The unpacking check was complete before we started. The equipment installation is finished today. The courtyard work area has remained closed to guests, and the restaurant has kept using the separate service route. We still have the final local installation and surface checks before handover. Please keep the area marked as not open in your project status.<\\\/p><\/p>\n<p>Regards,<br \/>Pieter<\\\/p><\/p>\n<p>Mia:<\\\/p><\/p>\n<p>Thanks, Pieter. I&#x27;ve recorded installation as complete and opening as pending. Please send the handover confirmation after those checks are finished.<\\\/p><\/p>\n<p class=\\\"our-note\\\">Pieter confirmed that the restaurant had kept the work area closed and continued using the separate service route.<\\\/p>\", \"media\": []}, {\"id\": 17, \"phase\": 5, \"date\": \"Dec 10\", \"year\": 2025, \"isoDate\": \"2025-12-10\", \"channel\": \"Email\", \"heading\": \"Handover completed; opening confirmed separately\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Thandi, Pieter, Mia<\\\/p><\/p>\n<p>Subject: Courtyard handover and opening<\\\/p><\/p>\n<p>Pieter, December 10:<\\\/p><\/p>\n<p>The local checks and site handover are complete. Thandi has the operating documents and our completed work record.<\\\/p><\/p>\n<p>Thandi, December 12:<\\\/p><\/p>\n<p>Hi Mia, we&#x27;ve opened the play area today. We waited for handover before updating the booking page with the confirmed date. Our team will use the operating documents for daily checks and will decide when to close the area if conditions aren&#x27;t suitable.<\\\/p><\/p>\n<p>Mia, December 12:<\\\/p><\/p>\n<p>Thanks for confirming. I&#x27;ll record December 12 as the opening date, separate from delivery and installation. Please send any document questions with the relevant reference so we can answer them clearly.<\\\/p><\/p>\n<p class=\\\"our-note\\\">I recorded the December 10 handover and December 12 opening as separate milestones.<\\\/p>\", \"media\": []}, {\"id\": 18, \"phase\": 5, \"date\": \"Jan 12\", \"year\": 2026, \"isoDate\": \"2026-01-12\", \"channel\": \"Email\", \"heading\": \"Feedback on the restaurant operating plan\", \"html\": \"<\/p>\n<p class=\\\"people\\\">Thandi, Mia<\\\/p><\/p>\n<p>Subject: Courtyard follow-up<\\\/p><\/p>\n<p>Hi Mia,<\\\/p><\/p>\n<p>The play area is now part of our regular restaurant setup, rather than an activity we hire for selected weekends. Keeping the service route separate has helped our team organise the terrace. We&#x27;re still adjusting the seating allocation and opening routine. We don&#x27;t have a sales comparison to share, and we&#x27;re not planning another equipment order at present.<\\\/p><\/p>\n<p>Regards,<br \/>Thandi<\\\/p><\/p>\n<p>Mia:<\\\/p><\/p>\n<p>Thank you for the update. I&#x27;ll close the delivery follow-up and keep the approved equipment documents on file. If an operating-document question comes up, send the reference and we&#x27;ll review it.<\\\/p><\/p>\n<p class=\\\"our-note\\\">I closed the delivery follow-up and retained the approved equipment documents for any later operating questions.<\\\/p>\", \"media\": []}], \"media\": {\"M01\": {\"record\": 7, \"title\": \"Order and dispatch conditions\", \"kind\": \"Image\", \"url\": \"\", \"localFile\": \"media\/Outdoor playground for a family restaurant in Cape Town, South Africa02.webp\", \"assets\": [{\"src\": \"https:\/\/www.mimuplay.com\/wp-content\/uploads\/2026\/11\/cape-town-family-restaurant-outdoor-playground-02.webp\", \"type\": \"image\", \"name\": \"Order and dispatch conditions\", \"caption\": \"Order and dispatch conditions\", \"presentation\": \"screenshot\", \"filename\": \"Outdoor playground for a family restaurant in Cape Town, South Africa02.webp\"}]}, \"M02\": {\"record\": 9, \"title\": \"Production before the colour decision\", \"kind\": \"Image\", \"url\": \"\", \"localFile\": \"media\/Outdoor playground for a family restaurant in Cape Town, South Africa03.webp\", \"assets\": [{\"src\": \"https:\/\/www.mimuplay.com\/wp-content\/uploads\/2026\/11\/cape-town-family-restaurant-outdoor-playground-03.webp\", \"type\": \"image\", \"name\": \"Production before the colour decision\", \"caption\": \"Production before the colour decision\", \"presentation\": \"photo\", \"filename\": \"Outdoor playground for a family restaurant in Cape Town, South Africa03.webp\"}]}, \"M03\": {\"record\": 11, \"title\": \"Pre-shipment inspection\", \"kind\": \"Image\", \"url\": \"\", \"localFile\": \"media\/Outdoor playground for a family restaurant in Cape Town, South Africa04.webp\", \"assets\": [{\"src\": \"https:\/\/www.mimuplay.com\/wp-content\/uploads\/2026\/11\/cape-town-family-restaurant-outdoor-playground-04.webp\", \"type\": \"image\", \"name\": \"Pre-shipment inspection\", \"caption\": \"Pre-shipment inspection\", \"presentation\": \"photo\", \"filename\": \"Outdoor playground for a family restaurant in Cape Town, South Africa04.webp\"}]}, \"M04\": {\"record\": 11, \"title\": \"Package labels\", \"kind\": \"Image\", \"url\": \"\", \"localFile\": \"media\/Outdoor playground for a family restaurant in Cape Town, South Africa05.webp\", \"assets\": [{\"src\": \"https:\/\/www.mimuplay.com\/wp-content\/uploads\/2026\/11\/cape-town-family-restaurant-outdoor-playground-05.webp\", \"type\": \"image\", \"name\": \"Package labels\", \"caption\": \"Package labels\", \"presentation\": \"photo\", \"filename\": \"Outdoor playground for a family restaurant in Cape Town, South Africa05.webp\"}]}, \"M05\": {\"record\": 14, \"title\": \"Revised shipment loading\", \"kind\": \"Image\", \"url\": \"\", \"localFile\": \"media\/Outdoor playground for a family restaurant in Cape Town, South Africa06.webp\", \"assets\": [{\"src\": \"https:\/\/www.mimuplay.com\/wp-content\/uploads\/2026\/11\/cape-town-family-restaurant-outdoor-playground-06.webp\", \"type\": \"image\", \"name\": \"Revised shipment loading\", \"caption\": \"Revised shipment loading\", \"presentation\": \"photo\", \"filename\": \"Outdoor playground for a family restaurant in Cape Town, South Africa06.webp\"}]}, \"M06\": {\"record\": 12, \"title\": \"Request to hold dispatch\", \"kind\": \"Image\", \"url\": \"\", \"localFile\": \"media\/Outdoor playground for a family restaurant in Cape Town, South Africa07.webp\", \"assets\": [{\"src\": \"https:\/\/www.mimuplay.com\/wp-content\/uploads\/2026\/11\/cape-town-family-restaurant-outdoor-playground-07.webp\", \"type\": \"image\", \"name\": \"Request to hold dispatch\", \"caption\": \"Request to hold dispatch\", \"presentation\": \"screenshot\", \"filename\": \"Outdoor playground for a family restaurant in Cape Town, South Africa07.webp\"}]}}, \"hero\": \"https:\/\/www.mimuplay.com\/wp-content\/uploads\/2026\/11\/cape-town-family-restaurant-outdoor-playground-01.webp\", \"heroUrl\": \"\", \"heroAssetName\": \"Outdoor playground for a family restaurant in Cape Town, South Africa01.webp\", \"maxRecords\": 30, \"maxMediaResources\": 6, \"imageMeta\": {}}<\/script><br \/>\n<script>(()=>{'use strict';const root=document.getElementById('wcs-case-page');if(!root||root.dataset.wcsReady)return;root.dataset.wcsReady='true';<\/p>\n<p>const data=JSON.parse(root.querySelector('#'+('case-data')).textContent),phases=[\"Enquiry\", \"Layout\", \"Order\", \"Production\", \"Dispatch\", \"Handover\"];\nlet allOpen=true;\nconst $=id=>root.querySelector('#'+(id)),esc=s=>String(s).replace(\/[&<>\"']\/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]));\nfunction sourceSafe(url){return \/^(https?:|data:image\\\/|data:video\\\/)\/i.test(url)}\nfunction hero(){ $('hero-img').src=data.heroUrl||data.hero; $('hero-view').onclick=()=>{ $('viewer-img').src=data.heroUrl||data.hero; $('viewer-caption').textContent='Restaurant courtyard playground'; $('viewer').showModal(); }; }\nfunction filters(){ $('filters').innerHTML=phases.map((x,i)=>`<a class=\"chip\" href=\"#phase-${i}\" data-phase=\"${i}\">${esc(x)}<\/a>`).join('');}\nconst icon='<svg viewBox=\"0 0 64 64\" aria-hidden=\"true\"><rect x=\"6\" y=\"12\" width=\"43\" height=\"35\" rx=\"2\"\/><path d=\"M7 40l13-13 10 10 7-7 12 12M16 20h1\"\/><circle cx=\"38\" cy=\"22\" r=\"4\"\/><path d=\"M16 52h41V22\"\/><\/svg>';\nconst galleryPositions={};\nfunction galleryItems(ids){return ids.flatMap(id=>{const m=data.media[id];if(m.url&&!m.assets.length){m.assets=[{src:m.url,type:m.kind==='Video'?'video':'image',name:m.title,caption:m.title}]}return m.assets.length?m.assets.slice(0,1).map((asset,index)=>({id,index,asset,m})): [{id,index:-1,asset:null,m}]})}\nfunction imageAttributes(src, thumbnail=false){const m=data.imageMeta?.[src];if(!m)return '';return `width=\"${m.width}\" height=\"${m.height}\" srcset=\"${esc(m.srcset)}\" sizes=\"${thumbnail?'90px':'(max-width:650px) calc(100vw - 86px), 560px'}\" decoding=\"async\"`;}\nfunction mediaHTML(ids,eventId){\n const items=galleryItems(ids);let pos=Math.min(galleryPositions[eventId]||0,items.length-1);galleryPositions[eventId]=pos;\n const current=items[pos],asset=current.asset;\n const preview=asset?(asset.type==='video'?`<video class=\"gallery-video\" controls preload=\"metadata\" src=\"${esc(asset.src)}\" aria-label=\"${esc(asset.name)}\"><\/video>`:`<button class=\"gallery-image ${asset.presentation==='screenshot'?'is-screenshot':'is-photo'}\" data-view=\"${current.id}\" data-index=\"${current.index}\" aria-label=\"View ${esc(asset.name)}\"><img decoding=\"async\" ${imageAttributes(asset.src)} loading=\"lazy\" src=\"${esc(asset.src)}\" alt=\"${esc(asset.name)}\"><\/button>`):`<\/p>\n<div class=\"media-art\">${icon}<\/div>\n<p>`;\n return `<\/p>\n<aside class=\"media-box gallery-card\" data-gallery=\"${eventId}\" aria-label=\"Communication media gallery\">\n<div class=\"media-top\"><span>${esc(asset?.caption||current.m.title||'Project images')}<\/span><\/div>\n<div class=\"gallery-preview\">${preview}<\/div>\n<div class=\"gallery-controls\"><button data-step=\"-1\" data-event=\"${eventId}\" aria-label=\"Previous media\" ${items.length<2?'disabled':''}><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"m15 5-8 7 8 7Z\"\/><\/svg><\/button><button data-step=\"1\" data-event=\"${eventId}\" aria-label=\"Next media\" ${items.length<2?'disabled':''}><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"m9 5 8 7-8 7Z\"\/><\/svg><\/button><\/div>\n<div class=\"gallery-thumbnails\" aria-label=\"Media thumbnails\">${items.map((item,i)=>`<button class=\"gallery-thumb ${i===pos?'selected':''}\" data-pick=\"${i}\" data-event=\"${eventId}\" aria-label=\"Select ${esc(item.m.title)}\" aria-pressed=\"${i===pos}\">${item.asset?(item.asset.type==='video'?'<span class=\"video-thumb\">\u25b6<\/span>':`<img decoding=\"async\" ${imageAttributes(item.asset.src,true)} loading=\"lazy\" src=\"${esc(item.asset.src)}\" alt=\"${esc(item.asset.name)}\">`):`<span class=\"brief-thumb\" aria-hidden=\"true\">\u25a7<\/span>`}<\/button>`).join('')}<\/div>\n<\/aside>\n<p>`;\n}\nfunction displayDate(e){const months={Jan:'January',Feb:'February',Mar:'March',Apr:'April',May:'May',Jun:'June',Jul:'July',Aug:'August',Sep:'September',Oct:'October',Nov:'November',Dec:'December'};const parts=e.date.match(\/^([A-Za-z]+)\\s+(\\d+)\/);return parts?`${months[parts[1]]||parts[1]} ${Number(parts[2])}, ${e.year}`:e.date;}\nfunction render(){filters();let filtered=data.events;let prev=-1;$('timeline').innerHTML=filtered.length?filtered.map(e=>{let head=e.phase!==prev?`<\/p>\n<div class=\"phase-heading\" id=\"phase-${e.phase}\"><span>${phases[e.phase]}<\/span><\/div>\n<p>`:'';prev=e.phase;return head+`<\/p>\n<article class=\"event ${e.id%2===0?'right':''} ${allOpen?'expanded':''}\" id=\"event-${e.id}\">\n<div class=\"spine\"><span class=\"dot\"><\/span><\/div>\n<div class=\"content\"><time datetime=\"${esc(e.isoDate)}\" class=\"date event-date\">${esc(displayDate(e))}<\/time><\/p>\n<div class=\"content-top\"><span class=\"channel\">${esc(e.channel)}<\/span><\/div>\n<h3><span class=\"ez-toc-section\" id=\"esceheading\"><\/span>${esc(e.heading)}<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"transcript\" id=\"text-${e.id}\">${e.html}<\/div>\n<\/div>\n<p>${e.media.length?mediaHTML(e.media,e.id):''}<\/article>\n<p>`}).join(''):'<\/p>\n<div class=\"empty\">No records in this stage. Please select another stage.<\/div>\n<p>';}\n$('filters').addEventListener('click',e=>{const a=e.target.closest('[data-phase]');if(a){root.querySelectorAll('#filters .chip').forEach(link=>{const active=link===a;link.classList.toggle('active',active);if(active)link.setAttribute('aria-current','location');else link.removeAttribute('aria-current')})}});<\/p>\n<p>$('timeline').addEventListener('click',e=>{let b=e.target.closest('button');if(!b)return;if(b.dataset.toggle){let a=$('event-'+b.dataset.toggle),open=a.classList.toggle('expanded');b.setAttribute('aria-expanded',open);b.textContent=open?'Collapse Record':'Read Full Record'}if(b.dataset.view){let m=data.media[b.dataset.view],a=m.assets[+b.dataset.index];$('viewer-img').src=a.src;$('viewer-caption').textContent=a.name;$('viewer').showModal()}});\n$('timeline').addEventListener('click',e=>{\n const b=e.target.closest('[data-pick],[data-step]');if(!b)return;\n const eventId=+b.dataset.event,record=data.events.find(x=>x.id===eventId),items=galleryItems(record.media);\n galleryPositions[eventId]=b.hasAttribute('data-pick')?+b.dataset.pick:((galleryPositions[eventId]||0)+(+b.dataset.step)+items.length)%items.length;\n const card=b.closest('.gallery-card');card.querySelectorAll('video').forEach(v=>v.pause());card.outerHTML=mediaHTML(record.media,eventId);\n});\n$('viewer-close').onclick=()=>$('viewer').close();<\/p>\n<p>hero();render();<\/p>\n<p>})();<\/script><br \/>\n<script>\n(()=>{const root=document.getElementById('wcs-case-page');if(!root)return;\n root.querySelectorAll('[data-motion-bound]').forEach(el=>{delete el.dataset.motionBound;el.classList.remove('reveal','is-visible')});root.querySelectorAll('.read-progress').forEach(el=>el.remove());root.classList.remove('motion-ready');\n const reduce=window.matchMedia('(prefers-reduced-motion: reduce)');\n const progress=document.createElement('div');progress.className='read-progress';progress.setAttribute('aria-hidden','true');root.appendChild(progress);\n let queued=false;\n function update(){const max=document.documentElement.scrollHeight-innerHeight;progress.style.transform='scaleX('+Math.min(1,Math.max(0,max>0?scrollY\/max:0))+')';queued=false}\n addEventListener('scroll',()=>{if(!queued){queued=true;requestAnimationFrame(update)}},{passive:true});addEventListener('resize',update);update();\n if(reduce.matches||!('IntersectionObserver' in window))return;\n root.classList.add('motion-ready');\n const observer=new IntersectionObserver(entries=>entries.forEach(entry=>{if(entry.isIntersecting){entry.target.classList.add('is-visible');observer.unobserve(entry.target)}}),{threshold:0,rootMargin:'0px 0px -35px 0px'});\n function observe(root){root.querySelectorAll('.hero-copy,.hero-visual,.meta,.section-head,.purchase,.event,.closing').forEach(el=>{if(el.dataset.motionBound)return;el.dataset.motionBound='true';el.classList.add('reveal');observer.observe(el)})}\n observe(root);\n new MutationObserver(()=>{observe(root.querySelector('#'+('timeline')));update()}).observe(root.querySelector('#'+('timeline')),{childList:true});\n reduce.addEventListener('change',e=>{if(e.matches){root.classList.remove('motion-ready');observer.disconnect()}});\n})();\n<\/script>\n<\/div>\n<p><\/body><\/html><\/p>","protected":false},"excerpt":{"rendered":"<p>Mimu Play supplied one MHO-1020 outdoor playground for a family restaurant in Cape Town, South Africa, from courtyard layout planning to delivery and handover.<\/p>","protected":false},"author":4,"featured_media":14912,"comment_status":"open","ping_status":"open","sticky":false,"template":"page-coreshangye.php","format":"standard","meta":{"_acf_changed":false,"themepark_post_bcolor":"#f5f5f5","themepark_post_width":"1022px","themepark_post_img":"","themepark_post_img_po":"left","themepark_post_img_re":false,"themepark_post_img_cover":false,"themepark_post_img_fixed":false,"themepark_post_hide_title":false,"themepark_post_main_b":"","themepark_post_main_p":100,"themepark_paddingblock":false,"footnotes":""},"categories":[64],"tags":[],"class_list":["post-14911","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-caces"],"metadata":{"_thumbnail_id":["14912"],"_wp_page_template":["page-coreshangye.php"],"rank_math_title":["Outdoor playground for a family restaurant in Cape Town, South Africa | Mimu Play"],"rank_math_description":["Mimu Play supplied one MHO-1020 outdoor playground for a family restaurant in Cape Town, South Africa, from courtyard layout planning to delivery and handover."],"rank_math_primary_category":["64"],"themepark_seo_title":["Outdoor playground for a family restaurant in Cape Town, South Africa"],"themepark_seo_description":["Mimu Play Supplied One Mho-1020 Outdoor Playground For A Family Restaurant In Cape Town, South Africa, From Courtyard Layout Planning To Delivery And Handover."],"views":["72"],"_wp_old_slug":["cape-town-family-restaurant-outdoor-playground"],"_edit_last":["4"],"_wp_old_date":["2026-11-06"],"themepark_seo_keyword":[""],"_edit_lock":["1793952121:4"]},"acf":[],"medium_url":"https:\/\/www.mimuplay.com\/wp-content\/uploads\/2026\/11\/cape-town-family-restaurant-outdoor-playground-01-300x200.webp","thumbnail_url":"https:\/\/www.mimuplay.com\/wp-content\/uploads\/2026\/11\/cape-town-family-restaurant-outdoor-playground-01-150x150.webp","full_url":"https:\/\/www.mimuplay.com\/wp-content\/uploads\/2026\/11\/cape-town-family-restaurant-outdoor-playground-01.webp","_links":{"self":[{"href":"https:\/\/www.mimuplay.com\/pt\/wp-json\/wp\/v2\/posts\/14911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mimuplay.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mimuplay.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mimuplay.com\/pt\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mimuplay.com\/pt\/wp-json\/wp\/v2\/comments?post=14911"}],"version-history":[{"count":2,"href":"https:\/\/www.mimuplay.com\/pt\/wp-json\/wp\/v2\/posts\/14911\/revisions"}],"predecessor-version":[{"id":14920,"href":"https:\/\/www.mimuplay.com\/pt\/wp-json\/wp\/v2\/posts\/14911\/revisions\/14920"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mimuplay.com\/pt\/wp-json\/wp\/v2\/media\/14912"}],"wp:attachment":[{"href":"https:\/\/www.mimuplay.com\/pt\/wp-json\/wp\/v2\/media?parent=14911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mimuplay.com\/pt\/wp-json\/wp\/v2\/categories?post=14911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mimuplay.com\/pt\/wp-json\/wp\/v2\/tags?post=14911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}