{"id":2430,"date":"2026-08-28T10:13:40","date_gmt":"2026-08-28T08:13:40","guid":{"rendered":"https:\/\/consoldemo.co.za\/rebelle\/?page_id=2430"},"modified":"2026-09-01T13:56:05","modified_gmt":"2026-09-01T11:56:05","slug":"a-signature-in-red","status":"publish","type":"page","link":"https:\/\/consoldemo.co.za\/rebelle\/our-work\/a-signature-in-red\/","title":{"rendered":"A Signature in Red"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2430\" class=\"elementor elementor-2430\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57d866c0 e-flex e-con-boxed e-con e-parent\" data-id=\"57d866c0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-75017525 elementor-widget elementor-widget-text-editor\" data-id=\"75017525\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong data-start=\"0\" data-end=\"25\">A Signature<\/strong><\/p><p><strong data-start=\"0\" data-end=\"25\">in Red.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5a86b309 elementor-widget elementor-widget-text-editor\" data-id=\"5a86b309\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Year-End Gifting<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4e2d49a7 e-con-full e-flex e-con e-parent\" data-id=\"4e2d49a7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2b19a39e elementor-widget elementor-widget-html\" data-id=\"2b19a39e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* Main scrolling strip *\/\n.rebelle-marquee {\n    width: 100%;\n    overflow: hidden;\n    background-color: transparent;\n    color: #eae1d4;\n    padding: 12px 0;\n}\n\n\/* Moving track *\/\n.rebelle-marquee-track {\n    display: flex;\n    width: max-content;\n    animation: rebelle-scroll 30s linear infinite;\n    will-change: transform;\n}\n\n\/* Each duplicated group must remain identical *\/\n.rebelle-marquee-group {\n    display: flex;\n    flex-shrink: 0;\n    align-items: center;\n}\n\n\/* Individual text items *\/\n.rebelle-marquee-text {\n    display: block;\n    flex-shrink: 0;\n    padding-right: 6px;\n    white-space: nowrap;\n\n    font-family: inherit;\n    font-size: clamp(20px, 1.2vw, 38px);\n    font-weight: 600;\n    line-height: 1.2;\n    letter-spacing: -0.02em;\n}\n\n\/* Continuous left movement *\/\n@keyframes rebelle-scroll {\n    from {\n        transform: translateX(0);\n    }\n\n    to {\n        transform: translateX(-50%);\n    }\n}\n\n\/* Pause when hovered *\/\n.rebelle-marquee:hover .rebelle-marquee-track {\n    animation-play-state: paused;\n}\n\n\/* Accessibility *\/\n@media (prefers-reduced-motion: reduce) {\n    .rebelle-marquee-track {\n        animation-play-state: paused;\n    }\n}\n\n\/* Mobile adjustments *\/\n@media screen and (max-width: 767px) {\n    .rebelle-marquee {\n        padding: 10px 0;\n    }\n\n    .rebelle-marquee-text {\n        font-size: 27px;\n        padding-right: 25px;\n    }\n}\n<\/style>\n\n<div\n    class=\"rebelle-marquee\"\n    aria-label=\"Gifting, Packaging Design, Creative Direction, Sourcing, Print, Production\"\n>\n    <div class=\"rebelle-marquee-track\">\n\n        <!-- First group -->\n        <div class=\"rebelle-marquee-group\">\n\n            <span class=\"rebelle-marquee-text\">\n                Gifting \u00b7 Packaging Design \u00b7 Creative Direction \u00b7 Sourcing \u00b7 Print \u00b7 Production \u00b7\n            <\/span>\n\n            <span class=\"rebelle-marquee-text\">\n                Gifting \u00b7 Packaging Design \u00b7 Creative Direction \u00b7 Sourcing \u00b7 Print \u00b7 Production \u00b7\n            <\/span>\n\n            <span class=\"rebelle-marquee-text\">\n                Gifting \u00b7 Packaging Design \u00b7 Creative Direction \u00b7 Sourcing \u00b7 Print \u00b7 Production \u00b7\n            <\/span>\n\n        <\/div>\n\n        <!-- Exact duplicate for seamless looping -->\n        <div\n            class=\"rebelle-marquee-group\"\n            aria-hidden=\"true\"\n        >\n\n            <span class=\"rebelle-marquee-text\">\n                Gifting \u00b7 Packaging Design \u00b7 Creative Direction \u00b7 Sourcing \u00b7 Print \u00b7 Production \u00b7\n            <\/span>\n\n            <span class=\"rebelle-marquee-text\">\n                Gifting \u00b7 Packaging Design \u00b7 Creative Direction \u00b7 Sourcing \u00b7 Print \u00b7 Production \u00b7\n            <\/span>\n\n            <span class=\"rebelle-marquee-text\">\n                Gifting \u00b7 Packaging Design \u00b7 Creative Direction \u00b7 Sourcing \u00b7 Print \u00b7 Production \u00b7\n            <\/span>\n\n        <\/div>\n\n    <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-32cb61c8 e-flex e-con-boxed e-con e-parent\" data-id=\"32cb61c8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-65e3a1f3 elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"65e3a1f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* =========================================\n   REBELLE - THE ASK\n========================================= *\/\n\n.rebelle-ask-shell {\n    width: max-content;\n    max-width: 100%;\n    overflow: hidden;\n}\n\n.rebelle-ask {\n    display: flex;\n    align-items: center;\n    flex-wrap: nowrap;\n\n    width: max-content;\n\n    font-family: \"Arboria Bold\", \"Arboria\", sans-serif !important;\n    font-size: 70px;\n    line-height: 65px;\n    font-weight: 700;\n    letter-spacing: -0.035em;\n\n    color: #b02960;\n}\n\n\n\/* STATIC \"THE\" *\/\n\n.rebelle-ask-label {\n    display: inline-block;\n    white-space: nowrap;\n}\n\n\n\/* PURPLE ASK BLOCK *\/\n\n.rebelle-ask-highlight {\n    display: inline-block;\n\n    margin-left: 10px;\n    padding: 5px 12px 8px;\n\n    background-color: #a08ea3;\n    color: #b02960;\n\n    white-space: nowrap;\n\n    will-change: transform, opacity;\n}\n\n\n\/* =========================================\n   START POSITION\n========================================= *\/\n\n.rebelle-ask-shell.animate-ready .rebelle-ask-highlight {\n    opacity: 0;\n    transform: translateX(-140px);\n}\n\n\n\/* =========================================\n   FLY IN FROM LEFT\n========================================= *\/\n\n.rebelle-ask-shell.animate-ready.is-visible .rebelle-ask-highlight {\n    animation:\n        rebelleAskFlyIn\n        1.5s\n        cubic-bezier(0.22, 1, 0.36, 1)\n        forwards;\n}\n\n\n@keyframes rebelleAskFlyIn {\n\n    0% {\n        opacity: 0;\n        transform: translateX(-140px);\n    }\n\n    100% {\n        opacity: 1;\n        transform: translateX(0);\n    }\n}\n\n\n\/* =========================================\n   TABLET\n========================================= *\/\n\n@media screen and (max-width: 1024px) {\n\n    .rebelle-ask {\n        font-size: 54px;\n        line-height: 52px;\n    }\n\n}\n\n\n\/* =========================================\n   MOBILE\n========================================= *\/\n\n@media screen and (max-width: 767px) {\n\n    .rebelle-ask {\n        font-size: 36px;\n        line-height: 36px;\n    }\n\n    .rebelle-ask-highlight {\n        margin-left: 6px;\n        padding: 3px 7px 5px;\n    }\n\n    .rebelle-ask-shell.animate-ready .rebelle-ask-highlight {\n        transform: translateX(-80px);\n    }\n\n}\n\n\n\/* =========================================\n   REDUCED MOTION\n========================================= *\/\n\n@media (prefers-reduced-motion: reduce) {\n\n    .rebelle-ask-shell.animate-ready .rebelle-ask-highlight {\n        opacity: 1;\n        transform: none;\n        animation: none;\n    }\n\n}\n<\/style>\n\n\n<div class=\"rebelle-ask-shell\">\n\n    <div class=\"rebelle-ask\">\n\n        <span class=\"rebelle-ask-label\">\n            The\n        <\/span>\n\n        <span class=\"rebelle-ask-highlight\">\n            Ask.\n        <\/span>\n\n    <\/div>\n\n<\/div>\n\n\n<script>\n(function () {\n\n    const sections =\n        document.querySelectorAll('.rebelle-ask-shell');\n\n    const reducedMotion =\n        window.matchMedia(\n            '(prefers-reduced-motion: reduce)'\n        ).matches;\n\n\n    sections.forEach(function (section) {\n\n        if (section.classList.contains('rebelle-animation-ready')) {\n            return;\n        }\n\n        section.classList.add(\n            'animate-ready',\n            'rebelle-animation-ready'\n        );\n\n\n        if (reducedMotion) {\n\n            section.classList.add('is-visible');\n\n            return;\n        }\n\n\n        const observer = new IntersectionObserver(\n            function (entries, observerInstance) {\n\n                entries.forEach(function (entry) {\n\n                    if (entry.isIntersecting) {\n\n                        entry.target.classList.add(\n                            'is-visible'\n                        );\n\n                        observerInstance.unobserve(\n                            entry.target\n                        );\n\n                    }\n\n                });\n\n            },\n            {\n                threshold: 0.35\n            }\n        );\n\n\n        observer.observe(section);\n\n    });\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-43d1f9b elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"43d1f9b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">The client needed a beautifully considered year-end gift that felt useful, generous and premium. Every element needed to come together as one cohesive experience, with a distinctive visual identity that felt unmistakably their own.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-507c9284 e-flex e-con-boxed e-con e-parent\" data-id=\"507c9284\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-35855f8a elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"35855f8a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* =========================================\n   REBELLE - THE SPARK\n========================================= *\/\n\n.rebelle-spark-shell {\n    width: max-content;\n    max-width: 100%;\n    overflow: hidden;\n}\n\n.rebelle-spark {\n    display: flex;\n    align-items: center;\n    flex-wrap: nowrap;\n\n    width: max-content;\n\n    font-family: \"Arboria Bold\", \"Arboria\", sans-serif !important;\n    font-size: 70px;\n    line-height: 65px;\n    font-weight: 700;\n    letter-spacing: -0.035em;\n\n    color: #b02960;\n}\n\n\n\/* STATIC \"THE\" *\/\n\n.rebelle-spark-label {\n    display: inline-block;\n    white-space: nowrap;\n}\n\n\n\/* PURPLE SPARK BLOCK *\/\n\n.rebelle-spark-highlight {\n    display: inline-block;\n\n    margin-left: 10px;\n    padding: 5px 12px 8px;\n\n    background-color: #a08ea3;\n    color: #b02960;\n\n    white-space: nowrap;\n\n    will-change: transform, opacity;\n}\n\n\n\/* =========================================\n   START POSITION\n========================================= *\/\n\n.rebelle-spark-shell.animate-ready .rebelle-spark-highlight {\n    opacity: 0;\n    transform: translateX(-140px);\n}\n\n\n\/* =========================================\n   FLY IN FROM LEFT\n========================================= *\/\n\n.rebelle-spark-shell.animate-ready.is-visible .rebelle-spark-highlight {\n    animation:\n        rebelleSparkFlyIn\n        1.5s\n        cubic-bezier(0.22, 1, 0.36, 1)\n        forwards;\n}\n\n\n@keyframes rebelleSparkFlyIn {\n\n    0% {\n        opacity: 0;\n        transform: translateX(-140px);\n    }\n\n    100% {\n        opacity: 1;\n        transform: translateX(0);\n    }\n}\n\n\n\/* =========================================\n   TABLET\n========================================= *\/\n\n@media screen and (max-width: 1024px) {\n\n    .rebelle-spark {\n        font-size: 54px;\n        line-height: 52px;\n    }\n\n}\n\n\n\/* =========================================\n   MOBILE\n========================================= *\/\n\n@media screen and (max-width: 767px) {\n\n    .rebelle-spark {\n        font-size: 36px;\n        line-height: 36px;\n    }\n\n    .rebelle-spark-highlight {\n        margin-left: 6px;\n        padding: 3px 7px 5px;\n    }\n\n    .rebelle-spark-shell.animate-ready .rebelle-spark-highlight {\n        transform: translateX(-80px);\n    }\n\n}\n\n\n\/* =========================================\n   REDUCED MOTION\n========================================= *\/\n\n@media (prefers-reduced-motion: reduce) {\n\n    .rebelle-spark-shell.animate-ready .rebelle-spark-highlight {\n        opacity: 1;\n        transform: none;\n        animation: none;\n    }\n\n}\n<\/style>\n\n\n<div class=\"rebelle-spark-shell\">\n\n    <div class=\"rebelle-spark\">\n\n        <span class=\"rebelle-spark-label\">\n            The\n        <\/span>\n\n        <span class=\"rebelle-spark-highlight\">\n            Spark.\n        <\/span>\n\n    <\/div>\n\n<\/div>\n\n\n<script>\n(function () {\n\n    const sections =\n        document.querySelectorAll('.rebelle-spark-shell');\n\n    const reducedMotion =\n        window.matchMedia(\n            '(prefers-reduced-motion: reduce)'\n        ).matches;\n\n\n    sections.forEach(function (section) {\n\n        if (section.classList.contains('rebelle-animation-ready')) {\n            return;\n        }\n\n        section.classList.add(\n            'animate-ready',\n            'rebelle-animation-ready'\n        );\n\n\n        if (reducedMotion) {\n\n            section.classList.add('is-visible');\n\n            return;\n        }\n\n\n        const observer = new IntersectionObserver(\n            function (entries, observerInstance) {\n\n                entries.forEach(function (entry) {\n\n                    if (entry.isIntersecting) {\n\n                        entry.target.classList.add(\n                            'is-visible'\n                        );\n\n                        observerInstance.unobserve(\n                            entry.target\n                        );\n\n                    }\n\n                });\n\n            },\n            {\n                threshold: 0.35\n            }\n        );\n\n\n        observer.observe(section);\n\n    });\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e4ca3ed elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"2e4ca3ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p data-start=\"364\" data-end=\"417\"><strong data-start=\"380\" data-end=\"417\">A Thoughtful Gift. One Signature.<\/strong><\/p><p data-start=\"419\" data-end=\"596\">We created a strong, ownable gifting language around the contents. Rich red, unexpected colour pairings and refined finishing brought the entire experience together beautifully.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5fbe1c6f e-flex e-con-boxed e-con e-parent\" data-id=\"5fbe1c6f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-54138cad elementor-widget elementor-widget-text-editor\" data-id=\"54138cad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">We dress products for the occasion\u2014with layers, texture, personality and a bow that absolutely understands the assignment.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-52688577 e-flex e-con-boxed e-con e-parent\" data-id=\"52688577\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-7fe7b333 e-con-full e-flex e-con e-child\" data-id=\"7fe7b333\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-651f3483 elementor-widget elementor-widget-html\" data-id=\"651f3483\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* =====================================================\n   REBELLE - MADE TANGIBLE\n===================================================== *\/\n\n.rebelle-tangible-shell,\n.rebelle-tangible-shell * {\n    box-sizing: border-box;\n}\n\n.rebelle-tangible-shell {\n    width: max-content;\n    max-width: 100%;\n    overflow: hidden;\n}\n\n\n\/* =====================================================\n   MAIN HEADING\n===================================================== *\/\n\n.rebelle-tangible-heading {\n    display: flex;\n    align-items: center;\n    flex-wrap: nowrap;\n\n    width: max-content;\n    max-width: 100%;\n\n    margin: 0;\n    padding: 0;\n\n    font-family: \"Arboria Bold\", \"Arboria\", sans-serif !important;\n\n    font-size: 70px;\n    line-height: 65px;\n    font-weight: 700;\n    letter-spacing: -0.035em;\n\n    color: #b02960;\n}\n\n\n\/* =====================================================\n   STATIC \"MADE\"\n===================================================== *\/\n\n.rebelle-tangible-label {\n    display: inline-block;\n    white-space: nowrap;\n}\n\n\n\/* =====================================================\n   PURPLE \"TANGIBLE.\" BLOCK\n===================================================== *\/\n\n.rebelle-tangible-highlight {\n    display: inline-block;\n\n    margin-left: 10px;\n    padding: 5px 12px 8px;\n\n    background-color: #a08ea3;\n    color: #b02960;\n\n    font-family: \"Arboria Bold\", \"Arboria\", sans-serif !important;\n\n    font-size: 70px;\n    line-height: 65px;\n    font-weight: 700;\n\n    white-space: nowrap;\n\n    will-change: transform, opacity;\n}\n\n\n\/* =====================================================\n   START POSITION\n===================================================== *\/\n\n.rebelle-tangible-shell.animate-ready .rebelle-tangible-highlight {\n    opacity: 0;\n    transform: translateX(-160px);\n}\n\n\n\/* =====================================================\n   FLY IN FROM LEFT\n===================================================== *\/\n\n.rebelle-tangible-shell.animate-ready.is-visible .rebelle-tangible-highlight {\n    animation:\n        rebelleTangibleFlyIn\n        1.5s\n        cubic-bezier(0.22, 1, 0.36, 1)\n        forwards;\n}\n\n\n@keyframes rebelleTangibleFlyIn {\n\n    0% {\n        opacity: 0;\n        transform: translateX(-160px);\n    }\n\n    100% {\n        opacity: 1;\n        transform: translateX(0);\n    }\n\n}\n\n\n\/* =====================================================\n   TABLET\n===================================================== *\/\n\n@media screen and (max-width: 1024px) {\n\n    .rebelle-tangible-heading,\n    .rebelle-tangible-highlight {\n        font-size: 54px;\n        line-height: 52px;\n    }\n\n}\n\n\n\/* =====================================================\n   MOBILE\n===================================================== *\/\n\n@media screen and (max-width: 767px) {\n\n    .rebelle-tangible-heading,\n    .rebelle-tangible-highlight {\n        font-size: 36px;\n        line-height: 36px;\n    }\n\n    .rebelle-tangible-highlight {\n        margin-left: 6px;\n        padding: 3px 7px 5px;\n    }\n\n    .rebelle-tangible-shell.animate-ready .rebelle-tangible-highlight {\n        transform: translateX(-90px);\n    }\n\n}\n\n\n\/* =====================================================\n   REDUCED MOTION\n===================================================== *\/\n\n@media (prefers-reduced-motion: reduce) {\n\n    .rebelle-tangible-shell.animate-ready .rebelle-tangible-highlight {\n        opacity: 1;\n        transform: none;\n        animation: none;\n    }\n\n}\n<\/style>\n\n\n<div class=\"rebelle-tangible-shell\">\n\n    <div class=\"rebelle-tangible-heading\">\n\n        <span class=\"rebelle-tangible-label\">\n            Made\n        <\/span>\n\n        <span class=\"rebelle-tangible-highlight\">\n            Tangible.\n        <\/span>\n\n    <\/div>\n\n<\/div>\n\n\n<script>\n(function () {\n\n    const sections =\n        document.querySelectorAll('.rebelle-tangible-shell');\n\n    const reducedMotion =\n        window.matchMedia(\n            '(prefers-reduced-motion: reduce)'\n        ).matches;\n\n\n    sections.forEach(function (section) {\n\n        if (\n            section.classList.contains(\n                'rebelle-tangible-animation-ready'\n            )\n        ) {\n            return;\n        }\n\n\n        section.classList.add(\n            'animate-ready',\n            'rebelle-tangible-animation-ready'\n        );\n\n\n        if (reducedMotion) {\n\n            section.classList.add('is-visible');\n\n            return;\n        }\n\n\n        const observer = new IntersectionObserver(\n\n            function (entries, observerInstance) {\n\n                entries.forEach(function (entry) {\n\n                    if (entry.isIntersecting) {\n\n                        entry.target.classList.add(\n                            'is-visible'\n                        );\n\n                        observerInstance.unobserve(\n                            entry.target\n                        );\n\n                    }\n\n                });\n\n            },\n\n            {\n                threshold: 0.35\n            }\n\n        );\n\n\n        observer.observe(section);\n\n    });\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-33435797 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"33435797\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* =====================================================\n   REBELLE - MADE TANGIBLE DROPDOWNS\n===================================================== *\/\n\n.tangible-dropdown-grid {\n    --card-text: #b02960;\n    --card-border: #b02960;\n\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 34px 36px;\n\n    width: 100%;\n    padding: 0;\n\n    background: transparent;\n}\n\n.tangible-dropdown-grid,\n.tangible-dropdown-grid * {\n    box-sizing: border-box;\n}\n\n\n\/* =====================================================\n   INDIVIDUAL BOX\n===================================================== *\/\n\n.tangible-dropdown-card {\n    width: 100%;\n    align-self: start;\n\n    margin: 0;\n\n    color: var(--card-text);\n    background: transparent;\n\n    border: 1px solid var(--card-border);\n\n    overflow: hidden;\n\n    transition: height 0.3s ease;\n}\n\n\n\/* =====================================================\n   SAME HEIGHT WHEN OPEN\n===================================================== *\/\n\n.tangible-dropdown-card[open] {\n    height: 210px;\n}\n\n\n\/* =====================================================\n   CLICKABLE HEADING\n===================================================== *\/\n\n.tangible-dropdown-card summary {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n\n    width: 100%;\n\n    padding: 28px 22px;\n\n    cursor: pointer;\n    list-style: none;\n\n    background: transparent !important;\n    background-color: transparent !important;\n\n    color: var(--card-text) !important;\n\n    border: none !important;\n    box-shadow: none !important;\n    outline: none;\n}\n\n\n\/* Remove browser default triangle *\/\n\n.tangible-dropdown-card summary::-webkit-details-marker {\n    display: none;\n}\n\n.tangible-dropdown-card summary::marker {\n    content: \"\";\n}\n\n\n\/* Prevent Astra \/ Elementor hover styling *\/\n\n.tangible-dropdown-card summary:hover,\n.tangible-dropdown-card summary:focus,\n.tangible-dropdown-card summary:active {\n    background: transparent !important;\n    background-color: transparent !important;\n\n    color: var(--card-text) !important;\n\n    border: none !important;\n    box-shadow: none !important;\n}\n\n\n\/* =====================================================\n   HEADING\n===================================================== *\/\n\n.tangible-dropdown-title {\n    margin: 0;\n\n    color: var(--card-text);\n\n    font-family: \"Arboria\", sans-serif;\n    font-size: 32px;\n    font-weight: 700;\n    line-height: 1.1;\n}\n\n\n\/* =====================================================\n   CUSTOM ARROW\n===================================================== *\/\n\n.tangible-dropdown-arrow {\n    flex: 0 0 auto;\n\n    width: 13px;\n    height: 13px;\n\n    margin-left: 20px;\n    margin-right: 4px;\n\n    border-right: 1.5px solid var(--card-text);\n    border-bottom: 1.5px solid var(--card-text);\n\n    transform: rotate(45deg);\n\n    transition: transform 0.3s ease;\n}\n\n\n\/* Arrow turns upward when opened *\/\n\n.tangible-dropdown-card[open] .tangible-dropdown-arrow {\n    transform: rotate(225deg);\n}\n\n\n\/* =====================================================\n   CONTENT\n===================================================== *\/\n\n.tangible-dropdown-content {\n    padding: 0 22px 28px;\n\n    color: var(--card-text);\n\n    font-family: \"Arboria\", sans-serif;\n    font-size: 17px;\n    font-weight: 400;\n    line-height: 1.55;\n\n    animation: tangibleDropdownReveal 0.3s ease;\n}\n\n\n\/* JUSTIFIED PARAGRAPHS *\/\n\n.tangible-dropdown-content p {\n    margin: 0;\n\n    text-align: justify;\n    text-justify: inter-word;\n}\n\n\n\/* =====================================================\n   OPENING ANIMATION\n===================================================== *\/\n\n@keyframes tangibleDropdownReveal {\n\n    from {\n        opacity: 0;\n        transform: translateY(-6px);\n    }\n\n    to {\n        opacity: 1;\n        transform: translateY(0);\n    }\n\n}\n\n\n\/* =====================================================\n   KEYBOARD ACCESSIBILITY\n===================================================== *\/\n\n.tangible-dropdown-card summary:focus-visible {\n    outline: 2px solid var(--card-text);\n    outline-offset: -5px;\n}\n\n\n\/* =====================================================\n   TABLET\n===================================================== *\/\n\n@media screen and (max-width: 1024px) {\n\n    .tangible-dropdown-grid {\n        gap: 24px;\n    }\n\n    \/* Same height for all open tablet cards *\/\n    .tangible-dropdown-card[open] {\n        height: 230px;\n    }\n\n    .tangible-dropdown-card summary {\n        padding: 22px 18px;\n    }\n\n    .tangible-dropdown-title {\n        font-size: 27px;\n    }\n\n    .tangible-dropdown-content {\n        padding: 0 18px 22px;\n\n        font-size: 16px;\n        line-height: 1.5;\n    }\n\n}\n\n\n\/* =====================================================\n   MOBILE\n===================================================== *\/\n\n@media screen and (max-width: 767px) {\n\n    .tangible-dropdown-grid {\n        grid-template-columns: 1fr;\n        gap: 16px;\n    }\n\n    \/*\n     * Allow natural height on mobile so longer\n     * paragraphs can never be clipped.\n     *\/\n    .tangible-dropdown-card[open] {\n        height: auto;\n        min-height: 0;\n    }\n\n    .tangible-dropdown-card summary {\n        padding: 19px 16px;\n    }\n\n    .tangible-dropdown-title {\n        font-size: 24px;\n    }\n\n    .tangible-dropdown-content {\n        padding: 0 16px 20px;\n\n        font-size: 15px;\n        line-height: 1.5;\n    }\n\n    \/* Justification is less attractive on narrow screens *\/\n    .tangible-dropdown-content p {\n        text-align: left;\n    }\n\n    .tangible-dropdown-arrow {\n        width: 11px;\n        height: 11px;\n\n        margin-left: 15px;\n        margin-right: 3px;\n    }\n\n}\n<\/style>\n\n\n<div class=\"tangible-dropdown-grid\">\n\n\n    <!-- THE LOOK -->\n\n    <details class=\"tangible-dropdown-card\">\n\n        <summary>\n\n            <span class=\"tangible-dropdown-title\">\n                The Look\n            <\/span>\n\n            <span\n                class=\"tangible-dropdown-arrow\"\n                aria-hidden=\"true\">\n            <\/span>\n\n        <\/summary>\n\n        <div class=\"tangible-dropdown-content\">\n\n            <p>\n                Bold, warm and beautifully tonal, combining signature red with sophisticated colour and texture.\n            <\/p>\n\n        <\/div>\n\n    <\/details>\n\n\n\n    <!-- THE PACKAGING -->\n\n    <details class=\"tangible-dropdown-card\">\n\n        <summary>\n\n            <span class=\"tangible-dropdown-title\">\n                The Packaging\n            <\/span>\n\n            <span\n                class=\"tangible-dropdown-arrow\"\n                aria-hidden=\"true\">\n            <\/span>\n\n        <\/summary>\n\n        <div class=\"tangible-dropdown-content\">\n\n            <p>\n                A custom rigid box, layered tissue, ribbon, tags and printed messaging transformed the gift into a polished, cohesive presentation.\n            <\/p>\n\n        <\/div>\n\n    <\/details>\n\n\n\n    <!-- THE MESSAGE -->\n\n    <details class=\"tangible-dropdown-card\">\n\n        <summary>\n\n            <span class=\"tangible-dropdown-title\">\n                The Message\n            <\/span>\n\n            <span\n                class=\"tangible-dropdown-arrow\"\n                aria-hidden=\"true\">\n            <\/span>\n\n        <\/summary>\n\n        <div class=\"tangible-dropdown-content\">\n\n            <p>\n                A thoughtful year-end thank-you designed to communicate genuine appreciation through considered details and beautiful gifting.\n            <\/p>\n\n        <\/div>\n\n    <\/details>\n\n\n\n    <!-- THE EXPERIENCE -->\n\n    <details class=\"tangible-dropdown-card\">\n\n        <summary>\n\n            <span class=\"tangible-dropdown-title\">\n                The Experience\n            <\/span>\n\n            <span\n                class=\"tangible-dropdown-arrow\"\n                aria-hidden=\"true\">\n            <\/span>\n\n        <\/summary>\n\n        <div class=\"tangible-dropdown-content\">\n\n            <p>\n                From the first glimpse of the bold red packaging to the final reveal, every layer was designed to make the recipient feel genuinely valued.\n            <\/p>\n\n        <\/div>\n\n    <\/details>\n\n\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5d2d7f63 e-con-full e-flex e-con e-child\" data-id=\"5d2d7f63\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3137a1b2 e-flex e-con-boxed e-con e-parent\" data-id=\"3137a1b2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-779bc456 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"779bc456\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* =========================================\n   REBELLE - VIEW THE FULL PROJECT\n========================================= *\/\n\n.rebelle-project-shell {\n    width: max-content;\n    max-width: 100%;\n    overflow: hidden;\n}\n\n.rebelle-project-heading {\n    display: flex;\n    align-items: center;\n    flex-wrap: nowrap;\n\n    width: max-content;\n\n    font-family: \"Arboria Bold\", \"Arboria\", sans-serif !important;\n    font-size: 70px;\n    line-height: 65px;\n    font-weight: 700;\n    letter-spacing: -0.035em;\n\n    color: #b02960;\n}\n\n\n\/* =========================================\n   STATIC \"VIEW THE\"\n========================================= *\/\n\n.rebelle-project-label {\n    display: inline-block;\n    white-space: nowrap;\n}\n\n\n\/* =========================================\n   PURPLE \"FULL PROJECT.\" BLOCK\n========================================= *\/\n\n.rebelle-project-highlight {\n    display: inline-block;\n\n    margin-left: 10px;\n    padding: 5px 12px 8px;\n\n    background-color: #a08ea3;\n    color: #b02960;\n\n    white-space: nowrap;\n\n    font-family: \"Arboria Bold\", \"Arboria\", sans-serif !important;\n    font-size: 70px;\n    line-height: 65px;\n    font-weight: 700;\n\n    will-change: transform, opacity;\n}\n\n\n\/* =========================================\n   START POSITION\n========================================= *\/\n\n.rebelle-project-shell.animate-ready .rebelle-project-highlight {\n    opacity: 0;\n    transform: translateX(-160px);\n}\n\n\n\/* =========================================\n   FLY IN FROM LEFT\n========================================= *\/\n\n.rebelle-project-shell.animate-ready.is-visible .rebelle-project-highlight {\n    animation:\n        rebelleProjectFlyIn\n        1.5s\n        cubic-bezier(0.22, 1, 0.36, 1)\n        forwards;\n}\n\n\n@keyframes rebelleProjectFlyIn {\n\n    0% {\n        opacity: 0;\n        transform: translateX(-160px);\n    }\n\n    100% {\n        opacity: 1;\n        transform: translateX(0);\n    }\n}\n\n\n\/* =========================================\n   TABLET\n========================================= *\/\n\n@media screen and (max-width: 1024px) {\n\n    .rebelle-project-heading,\n    .rebelle-project-highlight {\n        font-size: 54px;\n        line-height: 52px;\n    }\n\n}\n\n\n\/* =========================================\n   MOBILE\n========================================= *\/\n\n@media screen and (max-width: 767px) {\n\n    .rebelle-project-heading,\n    .rebelle-project-highlight {\n        font-size: 36px;\n        line-height: 36px;\n    }\n\n    .rebelle-project-highlight {\n        margin-left: 6px;\n        padding: 3px 7px 5px;\n    }\n\n    .rebelle-project-shell.animate-ready .rebelle-project-highlight {\n        transform: translateX(-90px);\n    }\n\n}\n\n\n\/* =========================================\n   REDUCED MOTION\n========================================= *\/\n\n@media (prefers-reduced-motion: reduce) {\n\n    .rebelle-project-shell.animate-ready .rebelle-project-highlight {\n        opacity: 1;\n        transform: none;\n        animation: none;\n    }\n\n}\n<\/style>\n\n\n<div class=\"rebelle-project-shell\">\n\n    <div class=\"rebelle-project-heading\">\n\n        <span class=\"rebelle-project-label\">\n            View the\n        <\/span>\n\n        <span class=\"rebelle-project-highlight\">\n            full project.\n        <\/span>\n\n    <\/div>\n\n<\/div>\n\n\n<script>\n(function () {\n\n    const sections =\n        document.querySelectorAll('.rebelle-project-shell');\n\n    const reducedMotion =\n        window.matchMedia(\n            '(prefers-reduced-motion: reduce)'\n        ).matches;\n\n\n    sections.forEach(function (section) {\n\n        if (\n            section.classList.contains(\n                'rebelle-project-animation-ready'\n            )\n        ) {\n            return;\n        }\n\n\n        section.classList.add(\n            'animate-ready',\n            'rebelle-project-animation-ready'\n        );\n\n\n        if (reducedMotion) {\n\n            section.classList.add('is-visible');\n\n            return;\n        }\n\n\n        const observer = new IntersectionObserver(\n\n            function (entries, observerInstance) {\n\n                entries.forEach(function (entry) {\n\n                    if (entry.isIntersecting) {\n\n                        entry.target.classList.add(\n                            'is-visible'\n                        );\n\n                        observerInstance.unobserve(\n                            entry.target\n                        );\n\n                    }\n\n                });\n\n            },\n\n            {\n                threshold: 0.35\n            }\n\n        );\n\n\n        observer.observe(section);\n\n    });\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1434af6e elementor-widget__width-inherit elementor-arrows-position-inside elementor-widget elementor-widget-image-carousel\" data-id=\"1434af6e\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;4&quot;,&quot;slides_to_scroll&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;arrows&quot;,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:30,&quot;sizes&quot;:[]},&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500,&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Image Carousel\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 of 12\"><a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"1434af6e\" data-elementor-lightbox-title=\"img 1734\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjQzMywidXJsIjoiaHR0cHM6XC9cL2NvbnNvbGRlbW8uY28uemFcL3JlYmVsbGVcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA4XC9JTUdfMTczNC5qcGciLCJzbGlkZXNob3ciOiIxNDM0YWY2ZSJ9\" href=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1734.jpg\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1734.jpg\" alt=\"img 1734\"  title=\"A Signature in Red\" \/><\/figure><\/a><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 of 12\"><a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"1434af6e\" data-elementor-lightbox-title=\"img 1735\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjQzNCwidXJsIjoiaHR0cHM6XC9cL2NvbnNvbGRlbW8uY28uemFcL3JlYmVsbGVcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA4XC9JTUdfMTczNS5qcGciLCJzbGlkZXNob3ciOiIxNDM0YWY2ZSJ9\" href=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1735.jpg\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1735.jpg\" alt=\"img 1735\"  title=\"A Signature in Red\" \/><\/figure><\/a><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 of 12\"><a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"1434af6e\" data-elementor-lightbox-title=\"img 1736\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjQzNSwidXJsIjoiaHR0cHM6XC9cL2NvbnNvbGRlbW8uY28uemFcL3JlYmVsbGVcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA4XC9JTUdfMTczNi5qcGciLCJzbGlkZXNob3ciOiIxNDM0YWY2ZSJ9\" href=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1736.jpg\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1736.jpg\" alt=\"img 1736\"  title=\"A Signature in Red\" \/><\/figure><\/a><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"4 of 12\"><a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"1434af6e\" data-elementor-lightbox-title=\"img 1739\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjQzNiwidXJsIjoiaHR0cHM6XC9cL2NvbnNvbGRlbW8uY28uemFcL3JlYmVsbGVcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA4XC9JTUdfMTczOS5qcGciLCJzbGlkZXNob3ciOiIxNDM0YWY2ZSJ9\" href=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1739.jpg\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1739.jpg\" alt=\"img 1739\"  title=\"A Signature in Red\" \/><\/figure><\/a><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"5 of 12\"><a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"1434af6e\" data-elementor-lightbox-title=\"img 1741\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjQzNywidXJsIjoiaHR0cHM6XC9cL2NvbnNvbGRlbW8uY28uemFcL3JlYmVsbGVcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA4XC9JTUdfMTc0MS5qcGciLCJzbGlkZXNob3ciOiIxNDM0YWY2ZSJ9\" href=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1741.jpg\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1741.jpg\" alt=\"img 1741\"  title=\"A Signature in Red\" \/><\/figure><\/a><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"6 of 12\"><a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"1434af6e\" data-elementor-lightbox-title=\"img 1743\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjQzOCwidXJsIjoiaHR0cHM6XC9cL2NvbnNvbGRlbW8uY28uemFcL3JlYmVsbGVcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA4XC9JTUdfMTc0My5qcGciLCJzbGlkZXNob3ciOiIxNDM0YWY2ZSJ9\" href=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1743.jpg\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1743.jpg\" alt=\"img 1743\"  title=\"A Signature in Red\" \/><\/figure><\/a><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"7 of 12\"><a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"1434af6e\" data-elementor-lightbox-title=\"img 1745\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjQzOSwidXJsIjoiaHR0cHM6XC9cL2NvbnNvbGRlbW8uY28uemFcL3JlYmVsbGVcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA4XC9JTUdfMTc0NS5qcGciLCJzbGlkZXNob3ciOiIxNDM0YWY2ZSJ9\" href=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1745.jpg\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1745.jpg\" alt=\"img 1745\"  title=\"A Signature in Red\" \/><\/figure><\/a><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"8 of 12\"><a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"1434af6e\" data-elementor-lightbox-title=\"img 1756\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjQ0MCwidXJsIjoiaHR0cHM6XC9cL2NvbnNvbGRlbW8uY28uemFcL3JlYmVsbGVcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA4XC9JTUdfMTc1Ni5qcGciLCJzbGlkZXNob3ciOiIxNDM0YWY2ZSJ9\" href=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1756.jpg\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1756.jpg\" alt=\"img 1756\"  title=\"A Signature in Red\" \/><\/figure><\/a><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"9 of 12\"><a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"1434af6e\" data-elementor-lightbox-title=\"img 1758\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjQ0MSwidXJsIjoiaHR0cHM6XC9cL2NvbnNvbGRlbW8uY28uemFcL3JlYmVsbGVcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA4XC9JTUdfMTc1OC5qcGciLCJzbGlkZXNob3ciOiIxNDM0YWY2ZSJ9\" href=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1758.jpg\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1758.jpg\" alt=\"img 1758\"  title=\"A Signature in Red\" \/><\/figure><\/a><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"10 of 12\"><a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"1434af6e\" data-elementor-lightbox-title=\"img 1759\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjQ0MiwidXJsIjoiaHR0cHM6XC9cL2NvbnNvbGRlbW8uY28uemFcL3JlYmVsbGVcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA4XC9JTUdfMTc1OS5qcGciLCJzbGlkZXNob3ciOiIxNDM0YWY2ZSJ9\" href=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1759.jpg\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1759.jpg\" alt=\"img 1759\"  title=\"A Signature in Red\" \/><\/figure><\/a><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"11 of 12\"><a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"1434af6e\" data-elementor-lightbox-title=\"img 1761\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjQ0MywidXJsIjoiaHR0cHM6XC9cL2NvbnNvbGRlbW8uY28uemFcL3JlYmVsbGVcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA4XC9JTUdfMTc2MS5qcGciLCJzbGlkZXNob3ciOiIxNDM0YWY2ZSJ9\" href=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1761.jpg\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1761.jpg\" alt=\"img 1761\"  title=\"A Signature in Red\" \/><\/figure><\/a><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"12 of 12\"><a data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"1434af6e\" data-elementor-lightbox-title=\"img 1763\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjQ0NCwidXJsIjoiaHR0cHM6XC9cL2NvbnNvbGRlbW8uY28uemFcL3JlYmVsbGVcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjZcLzA4XC9JTUdfMTc2My5qcGciLCJzbGlkZXNob3ciOiIxNDM0YWY2ZSJ9\" href=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1763.jpg\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/IMG_1763.jpg\" alt=\"img 1763\"  title=\"A Signature in Red\" \/><\/figure><\/a><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-chevron-left\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M646 125C629 125 613 133 604 142L308 442C296 454 292 471 292 487 292 504 296 521 308 533L604 854C617 867 629 875 646 875 663 875 679 871 692 858 704 846 713 829 713 812 713 796 708 779 692 767L438 487 692 225C700 217 708 204 708 187 708 171 704 154 692 142 675 129 663 125 646 125Z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-chevron-right\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M696 533C708 521 713 504 713 487 713 471 708 454 696 446L400 146C388 133 375 125 354 125 338 125 325 129 313 142 300 154 292 171 292 187 292 204 296 221 308 233L563 492 304 771C292 783 288 800 288 817 288 833 296 850 308 863 321 871 338 875 354 875 371 875 388 867 400 854L696 533Z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6adbe779 e-flex e-con-boxed e-con e-parent\" data-id=\"6adbe779\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-78a5fc5d e-con-full e-flex e-con e-child\" data-id=\"78a5fc5d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-341f03bf elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"341f03bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* =====================================================\n   REBELLE - THE REBELLE TOUCH\n===================================================== *\/\n\n.rebelle-touch-shell,\n.rebelle-touch-shell * {\n    box-sizing: border-box;\n}\n\n.rebelle-touch-shell {\n    width: 100%;\n    max-width: 100%;\n}\n\n\n\/* =====================================================\n   MAIN HEADING\n===================================================== *\/\n\n.rebelle-touch-heading {\n    display: flex;\n    align-items: center;\n    flex-wrap: nowrap;\n\n    width: max-content;\n    max-width: 100%;\n\n    font-family: \"Arboria Bold\", \"Arboria\", sans-serif !important;\n\n    font-size: 70px;\n    line-height: 65px;\n    font-weight: 700;\n    letter-spacing: -0.035em;\n\n    color: #b02960;\n}\n\n\n\/* =====================================================\n   STATIC \"THE\"\n===================================================== *\/\n\n.rebelle-touch-label {\n    display: inline-block;\n    flex: 0 0 auto;\n\n    white-space: nowrap;\n}\n\n\n\/* =====================================================\n   ANIMATED GROUP\n   PURPLE BLOCK + WORDING + BOW\n===================================================== *\/\n\n.rebelle-touch-animated {\n    position: relative;\n\n    display: inline-block;\n    flex: 0 0 auto;\n\n    margin-left: 10px;\n\n    will-change: transform, opacity;\n}\n\n\n\/* =====================================================\n   PURPLE BLOCK\n===================================================== *\/\n\n.rebelle-touch-highlight {\n    display: inline-block;\n\n    padding: 5px 18px 8px;\n\n    background-color: #a08ea3;\n    color: #b02960;\n\n    font-family: \"Arboria Bold\", \"Arboria\", sans-serif !important;\n\n    font-size: 70px;\n    line-height: 65px;\n    font-weight: 700;\n    letter-spacing: -0.035em;\n\n    white-space: nowrap;\n}\n\n\n\/* =====================================================\n   BOW\n===================================================== *\/\n\n.rebelle-touch-bow {\n    position: absolute;\n\n    width: 90px;\n    height: auto;\n\n    right: -53px;\n    top: -35px;\n\n    z-index: 3;\n\n    pointer-events: none;\n}\n\n\n\/* =====================================================\n   START POSITION\n===================================================== *\/\n\n.rebelle-touch-shell.animate-ready .rebelle-touch-animated {\n    opacity: 0;\n    transform: translateX(-170px);\n}\n\n\n\/* =====================================================\n   FLY IN FROM LEFT\n===================================================== *\/\n\n.rebelle-touch-shell.animate-ready.is-visible .rebelle-touch-animated {\n    animation:\n        rebelleTouchFlyIn\n        1.5s\n        cubic-bezier(0.22, 1, 0.36, 1)\n        forwards;\n}\n\n\n@keyframes rebelleTouchFlyIn {\n\n    0% {\n        opacity: 0;\n        transform: translateX(-170px);\n    }\n\n    100% {\n        opacity: 1;\n        transform: translateX(0);\n    }\n\n}\n\n\n\/* =====================================================\n   TABLET\n===================================================== *\/\n\n@media screen and (max-width: 1024px) {\n\n    .rebelle-touch-heading,\n    .rebelle-touch-highlight {\n        font-size: 54px;\n        line-height: 52px;\n    }\n\n    .rebelle-touch-bow {\n        width: 75px;\n\n        right: -53px;\n        top: -32px;\n    }\n\n}\n\n\n\/* =====================================================\n   MOBILE\n===================================================== *\/\n\n@media screen and (max-width: 767px) {\n\n    .rebelle-touch-heading {\n        font-size: 34px;\n        line-height: 34px;\n    }\n\n    .rebelle-touch-highlight {\n        font-size: 34px;\n        line-height: 34px;\n\n        padding: 3px 8px 5px;\n    }\n\n    .rebelle-touch-animated {\n        margin-left: 6px;\n    }\n\n    .rebelle-touch-bow {\n        width: 48px;\n\n        right: 110px;\n        top: -23px;\n    }\n\n    .rebelle-touch-shell.animate-ready .rebelle-touch-animated {\n        transform: translateX(-90px);\n    }\n\n}\n\n\n\/* =====================================================\n   REDUCED MOTION\n===================================================== *\/\n\n@media (prefers-reduced-motion: reduce) {\n\n    .rebelle-touch-shell.animate-ready .rebelle-touch-animated {\n        opacity: 1;\n        transform: none;\n        animation: none;\n    }\n\n}\n<\/style>\n\n\n<div class=\"rebelle-touch-shell\">\n\n    <div class=\"rebelle-touch-heading\">\n\n        <!-- STATIC WORD -->\n\n        <span class=\"rebelle-touch-label\">\n            The\n        <\/span>\n\n\n        <!-- EVERYTHING INSIDE THIS GROUP FLIES IN TOGETHER -->\n\n        <span class=\"rebelle-touch-animated\">\n\n            <span class=\"rebelle-touch-highlight\">\n                Rebelle Touch.\n            <\/span>\n\n            <img decoding=\"async\"\n                class=\"rebelle-touch-bow\"\n                src=\"https:\/\/consoldemo.co.za\/rebelle\/wp-content\/uploads\/2026\/08\/Rebelle-Bow.png\"\n                alt=\"Rebelle Bow\"\n                aria-hidden=\"true\"\n             title=\"A Signature in Red\">\n\n        <\/span>\n\n    <\/div>\n\n<\/div>\n\n\n<script>\n(function () {\n\n    const sections =\n        document.querySelectorAll('.rebelle-touch-shell');\n\n    const reducedMotion =\n        window.matchMedia(\n            '(prefers-reduced-motion: reduce)'\n        ).matches;\n\n\n    sections.forEach(function (section) {\n\n        if (\n            section.classList.contains(\n                'rebelle-touch-animation-ready'\n            )\n        ) {\n            return;\n        }\n\n\n        section.classList.add(\n            'animate-ready',\n            'rebelle-touch-animation-ready'\n        );\n\n\n        if (reducedMotion) {\n\n            section.classList.add('is-visible');\n\n            return;\n        }\n\n\n        const observer = new IntersectionObserver(\n\n            function (entries, observerInstance) {\n\n                entries.forEach(function (entry) {\n\n                    if (entry.isIntersecting) {\n\n                        entry.target.classList.add(\n                            'is-visible'\n                        );\n\n                        observerInstance.unobserve(\n                            entry.target\n                        );\n\n                    }\n\n                });\n\n            },\n\n            {\n                threshold: 0.35\n            }\n\n        );\n\n\n        observer.observe(section);\n\n    });\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-12e4b21e elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"12e4b21e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p data-start=\"1220\" data-end=\"1349\">We transformed a year-end gift into a distinctive brand experience \u2014 thoughtful, beautifully finished and instantly recognisable.<\/p><p data-start=\"1351\" data-end=\"1404\" data-is-last-node=\"\" data-is-only-node=\"\"><strong data-start=\"1351\" data-end=\"1404\" data-is-last-node=\"\">A generous gift, wrapped in a gorgeous signature.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-21ce5cfe e-con-full e-flex e-con e-child\" data-id=\"21ce5cfe\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5e4ad99a elementor-align-justify elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"5e4ad99a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-grow\" href=\"https:\/\/consoldemo.co.za\/rebelle\/start-a-project\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Start A Project<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2d3303fe elementor-align-justify elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"2d3303fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-grow\" href=\"https:\/\/consoldemo.co.za\/rebelle\/our-work\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Back To Our Work<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>A Signature in Red. Year-End Gifting Gifting \u00b7 Packaging Design \u00b7 Creative Direction \u00b7 Sourcing \u00b7 Print \u00b7 Production \u00b7 Gifting \u00b7 Packaging Design \u00b7 Creative Direction \u00b7 Sourcing \u00b7 Print \u00b7 Production \u00b7 Gifting \u00b7 Packaging Design \u00b7 Creative Direction \u00b7 Sourcing \u00b7 Print \u00b7 Production \u00b7 Gifting \u00b7 Packaging Design \u00b7 Creative Direction [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":764,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"disabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2430","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/consoldemo.co.za\/rebelle\/wp-json\/wp\/v2\/pages\/2430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/consoldemo.co.za\/rebelle\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/consoldemo.co.za\/rebelle\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/consoldemo.co.za\/rebelle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/consoldemo.co.za\/rebelle\/wp-json\/wp\/v2\/comments?post=2430"}],"version-history":[{"count":13,"href":"https:\/\/consoldemo.co.za\/rebelle\/wp-json\/wp\/v2\/pages\/2430\/revisions"}],"predecessor-version":[{"id":2973,"href":"https:\/\/consoldemo.co.za\/rebelle\/wp-json\/wp\/v2\/pages\/2430\/revisions\/2973"}],"up":[{"embeddable":true,"href":"https:\/\/consoldemo.co.za\/rebelle\/wp-json\/wp\/v2\/pages\/764"}],"wp:attachment":[{"href":"https:\/\/consoldemo.co.za\/rebelle\/wp-json\/wp\/v2\/media?parent=2430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}