{"product_id":"handmade-crochet-bag-wooden-base-hand-painted-leather-flap","title":"Handmade Crochet Bag – Wooden Base \u0026 Hand Painted Leather Flap","description":"\u003cstyle\u003e\n\/* =========================================================\n   HIS\u0026HERHAVEN™ — ARTISAN BAG\n   Lightweight \/ Responsive \/ Shopify Friendly\n   ========================================================= *\/\n\n.hh-artisan-bag,\n.hh-artisan-bag * {\n  box-sizing: border-box;\n}\n\n.hh-artisan-bag {\n\n  --hh-gold: #b88952;\n  --hh-gold-light: #e0bb82;\n  --hh-cream: #f7f1e7;\n  --hh-muted: #a99b8e;\n  --hh-dark: #100c09;\n  --hh-card: rgba(255,255,255,.035);\n\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n\n  padding: 70px 20px;\n\n  color: var(--hh-cream);\n\n  background:\n    radial-gradient(\n      circle at 15% 20%,\n      rgba(184,137,82,.10),\n      transparent 28%\n    ),\n    radial-gradient(\n      circle at 85% 80%,\n      rgba(130,85,50,.08),\n      transparent 28%\n    ),\n    linear-gradient(\n      135deg,\n      #100c09,\n      #1d1510,\n      #0c0907\n    );\n\n  font-family: Georgia, \"Times New Roman\", serif;\n}\n\n.hh-artisan-bag::after {\n  content: \"\";\n  position: absolute;\n  inset: 18px;\n\n  border: 1px solid rgba(255,255,255,.035);\n\n  pointer-events: none;\n}\n\n.hh-artisan-wrap {\n  width: min(1100px, 100%);\n  margin: 0 auto;\n  position: relative;\n  z-index: 1;\n}\n\n\n\/* =========================================================\n   HERO\n   ========================================================= *\/\n\n.hh-artisan-hero {\n  max-width: 850px;\n  margin: 0 auto;\n  text-align: center;\n}\n\n.hh-artisan-label {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n\n  padding: 8px 15px;\n\n  border: 1px solid rgba(224,187,130,.30);\n  border-radius: 999px;\n\n  color: var(--hh-gold-light);\n\n  font-family: Arial, sans-serif;\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: 2.2px;\n  text-transform: uppercase;\n}\n\n.hh-artisan-label-dot {\n  width: 6px;\n  height: 6px;\n\n  flex: 0 0 6px;\n\n  border-radius: 50%;\n  background: var(--hh-gold-light);\n}\n\n.hh-artisan-title {\n  margin: 24px 0 18px;\n\n  font-size: clamp(40px, 6vw, 70px);\n  line-height: 1;\n  letter-spacing: -2px;\n  font-weight: 500;\n}\n\n.hh-artisan-title span {\n  color: var(--hh-gold-light);\n}\n\n.hh-artisan-subtitle {\n  max-width: 650px;\n  margin: 0 auto;\n\n  color: var(--hh-muted);\n\n  font-family: Arial, sans-serif;\n  font-size: 15px;\n  line-height: 1.8;\n}\n\n\n\/* =========================================================\n   ORNAMENT\n   ========================================================= *\/\n\n.hh-artisan-ornament {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 14px;\n\n  margin: 28px 0 55px;\n\n  color: var(--hh-gold-light);\n}\n\n.hh-artisan-line {\n  width: 65px;\n  height: 1px;\n\n  background: linear-gradient(\n    90deg,\n    transparent,\n    var(--hh-gold)\n  );\n}\n\n.hh-artisan-line:last-child {\n  background: linear-gradient(\n    90deg,\n    var(--hh-gold),\n    transparent\n  );\n}\n\n.hh-artisan-diamond {\n  font-size: 13px;\n}\n\n\n\/* =========================================================\n   SHOWCASE\n   ========================================================= *\/\n\n.hh-artisan-showcase {\n  display: grid;\n\n  grid-template-columns:\n    minmax(0, 1fr)\n    minmax(0, 1fr);\n\n  gap: 65px;\n\n  align-items: center;\n}\n\n\n\/* =========================================================\n   PRODUCT VISUAL\n   ========================================================= *\/\n\n.hh-artisan-display {\n  min-height: 470px;\n\n  position: relative;\n\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.hh-artisan-glow {\n  position: absolute;\n\n  width: 260px;\n  height: 260px;\n\n  border-radius: 50%;\n\n  background: rgba(184,137,82,.10);\n\n  filter: blur(55px);\n\n  pointer-events: none;\n}\n\n\n\/* =========================================================\n   BAG MOCKUP\n   ========================================================= *\/\n\n.hh-artisan-mockup {\n\n  position: relative;\n\n  width: 250px;\n  height: 300px;\n\n  border-radius:\n    20px\n    20px\n    34px\n    34px;\n\n  background:\n    repeating-linear-gradient(\n      45deg,\n      #4a3021 0,\n      #4a3021 7px,\n      #593b29 7px,\n      #593b29 14px\n    );\n\n  border: 1px solid rgba(224,187,130,.40);\n\n  box-shadow:\n    0 30px 55px rgba(0,0,0,.45),\n    inset 0 2px rgba(255,255,255,.07);\n\n  transform: rotate(-1deg);\n\n  transition:\n    transform .35s ease,\n    box-shadow .35s ease;\n}\n\n.hh-artisan-mockup:hover {\n  transform:\n    translateY(-6px)\n    rotate(1deg);\n\n  box-shadow:\n    0 40px 70px rgba(0,0,0,.50),\n    0 0 30px rgba(184,137,82,.10);\n}\n\n\n\/* STRAPS *\/\n\n.hh-artisan-mockup::before,\n.hh-artisan-mockup::after {\n\n  content: \"\";\n\n  position: absolute;\n\n  width: 66px;\n  height: 90px;\n\n  border:\n    8px solid #251912;\n\n  border-bottom: 0;\n\n  border-radius:\n    50px\n    50px\n    0\n    0;\n\n  top: -62px;\n}\n\n.hh-artisan-mockup::before {\n  left: 34px;\n}\n\n.hh-artisan-mockup::after {\n  right: 34px;\n}\n\n\n\/* =========================================================\n   LEATHER FLAP\n   ========================================================= *\/\n\n.hh-artisan-flap {\n\n  position: absolute;\n\n  top: 58px;\n  left: 17px;\n  right: 17px;\n\n  height: 103px;\n\n  border-radius:\n    10px\n    10px\n    25px\n    25px;\n\n  background:\n    radial-gradient(\n      circle at 30% 30%,\n      #b57a45,\n      #704322 50%,\n      #3d2415\n    );\n\n  border: 1px solid rgba(224,187,130,.45);\n\n  box-shadow:\n    inset 0 2px rgba(255,255,255,.12),\n    0 8px 18px rgba(0,0,0,.28);\n\n  overflow: hidden;\n}\n\n.hh-artisan-flap::after {\n\n  content: \"✦\";\n\n  position: absolute;\n  inset: 0;\n\n  display: flex;\n  align-items: center;\n  justify-content: center;\n\n  color: rgba(255,221,164,.65);\n\n  font-size: 45px;\n\n  text-shadow:\n    0 0 18px rgba(255,210,140,.25);\n}\n\n\n\/* =========================================================\n   WOODEN BASE\n   ========================================================= *\/\n\n.hh-artisan-wood {\n\n  position: absolute;\n\n  left: -9px;\n  right: -9px;\n  bottom: -11px;\n\n  height: 34px;\n\n  border-radius: 8px;\n\n  background:\n    repeating-linear-gradient(\n      90deg,\n      #6e4428 0,\n      #6e4428 10px,\n      #815333 10px,\n      #815333 20px\n    );\n\n  border: 1px solid #9b7048;\n\n  box-shadow:\n    0 12px 18px rgba(0,0,0,.30);\n}\n\n\n\/* =========================================================\n   FLOATING BADGES\n   ========================================================= *\/\n\n.hh-artisan-badge {\n\n  position: absolute;\n\n  padding: 11px 14px;\n\n  border:\n    1px solid rgba(224,187,130,.18);\n\n  border-radius: 13px;\n\n  background: rgba(20,14,10,.82);\n\n  font-family: Arial, sans-serif;\n\n  font-size: 10px;\n\n  color: #d9cabc;\n\n  box-shadow:\n    0 10px 25px rgba(0,0,0,.25);\n}\n\n.hh-artisan-badge strong {\n\n  display: block;\n\n  margin-bottom: 3px;\n\n  color: var(--hh-gold-light);\n\n  font-size: 12px;\n}\n\n.hh-artisan-badge-left {\n  left: 0;\n  top: 90px;\n}\n\n.hh-artisan-badge-right {\n  right: 0;\n  bottom: 90px;\n}\n\n\n\/* =========================================================\n   CONTENT\n   ========================================================= *\/\n\n.hh-artisan-content {\n  font-family: Arial, sans-serif;\n}\n\n.hh-artisan-eyebrow {\n\n  margin-bottom: 13px;\n\n  color: var(--hh-gold-light);\n\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: 2.5px;\n  text-transform: uppercase;\n}\n\n.hh-artisan-heading {\n\n  margin: 0 0 18px;\n\n  font-family: Georgia, serif;\n\n  font-size: clamp(30px, 4vw, 46px);\n\n  line-height: 1.08;\n\n  font-weight: 500;\n}\n\n.hh-artisan-heading span {\n  color: var(--hh-gold-light);\n}\n\n.hh-artisan-description {\n\n  margin: 0 0 25px;\n\n  color: #a99b8e;\n\n  font-size: 14px;\n\n  line-height: 1.8;\n}\n\n\n\/* =========================================================\n   FEATURES\n   ========================================================= *\/\n\n.hh-artisan-features {\n\n  display: grid;\n\n  grid-template-columns:\n    repeat(2, minmax(0, 1fr));\n\n  gap: 10px;\n}\n\n.hh-artisan-feature {\n\n  padding: 16px;\n\n  border:\n    1px solid rgba(255,255,255,.07);\n\n  border-radius: 14px;\n\n  background: var(--hh-card);\n\n  transition:\n    transform .25s ease,\n    border-color .25s ease,\n    background .25s ease;\n}\n\n.hh-artisan-feature:hover {\n\n  transform: translateY(-3px);\n\n  border-color:\n    rgba(224,187,130,.30);\n\n  background:\n    rgba(184,137,82,.055);\n}\n\n.hh-artisan-icon {\n\n  margin-bottom: 7px;\n\n  font-size: 19px;\n}\n\n.hh-artisan-feature strong {\n\n  display: block;\n\n  margin-bottom: 4px;\n\n  color: #fff;\n\n  font-size: 12px;\n}\n\n.hh-artisan-feature small {\n\n  color: #83776c;\n\n  font-size: 10px;\n\n  line-height: 1.5;\n}\n\n\n\/* =========================================================\n   CTA\n   ========================================================= *\/\n\n.hh-artisan-cta {\n\n  margin-top: 65px;\n\n  padding: 45px 25px;\n\n  border:\n    1px solid rgba(224,187,130,.13);\n\n  border-radius: 22px;\n\n  background:\n    rgba(255,255,255,.025);\n\n  text-align: center;\n}\n\n.hh-artisan-cta h2 {\n\n  margin: 0 0 9px;\n\n  font-family: Georgia, serif;\n\n  font-size: clamp(27px, 4vw, 40px);\n\n  font-weight: 500;\n}\n\n.hh-artisan-cta p {\n\n  margin: 0 0 23px;\n\n  color: #8e8277;\n\n  font-family: Arial, sans-serif;\n\n  font-size: 13px;\n}\n\n.hh-artisan-button {\n\n  display: inline-flex;\n\n  align-items: center;\n  justify-content: center;\n\n  min-height: 50px;\n\n  padding: 14px 28px;\n\n  border-radius: 999px;\n\n  background:\n    linear-gradient(\n      110deg,\n      #e2bb82,\n      #a9703e\n    );\n\n  color: #17100b;\n\n  text-decoration: none;\n\n  font-family: Arial, sans-serif;\n\n  font-size: 12px;\n\n  font-weight: 800;\n\n  letter-spacing: .5px;\n\n  box-shadow:\n    0 10px 30px rgba(184,137,82,.22);\n\n  transition:\n    transform .25s ease,\n    box-shadow .25s ease;\n}\n\n.hh-artisan-button:hover {\n\n  transform: translateY(-3px);\n\n  box-shadow:\n    0 16px 38px rgba(184,137,82,.34);\n}\n\n.hh-artisan-button:focus-visible {\n\n  outline:\n    3px solid rgba(224,187,130,.45);\n\n  outline-offset: 4px;\n}\n\n\n\/* =========================================================\n   TABLET\n   ========================================================= *\/\n\n@media (max-width: 850px) {\n\n  .hh-artisan-showcase {\n\n    grid-template-columns: 1fr;\n\n    gap: 25px;\n  }\n\n  .hh-artisan-display {\n    min-height: 430px;\n  }\n\n}\n\n\n\/* =========================================================\n   MOBILE\n   ========================================================= *\/\n\n@media (max-width: 600px) {\n\n  .hh-artisan-bag {\n\n    padding:\n      50px\n      15px;\n  }\n\n  .hh-artisan-title {\n\n    font-size: 42px;\n\n    letter-spacing: -1.5px;\n  }\n\n  .hh-artisan-subtitle {\n\n    font-size: 13px;\n  }\n\n  .hh-artisan-display {\n\n    min-height: 390px;\n  }\n\n  .hh-artisan-mockup {\n\n    width: 205px;\n    height: 255px;\n  }\n\n  .hh-artisan-badge {\n\n    padding: 9px 10px;\n\n    font-size: 9px;\n  }\n\n  .hh-artisan-badge strong {\n    font-size: 11px;\n  }\n\n  .hh-artisan-badge-left {\n    left: -3px;\n    top: 65px;\n  }\n\n  .hh-artisan-badge-right {\n    right: -3px;\n    bottom: 65px;\n  }\n\n  .hh-artisan-features {\n    grid-template-columns: 1fr;\n  }\n\n  .hh-artisan-cta {\n\n    margin-top: 45px;\n\n    padding:\n      35px\n      18px;\n  }\n\n  .hh-artisan-button {\n\n    width: 100%;\n\n    max-width: 330px;\n  }\n\n}\n\n\n\/* =========================================================\n   REDUCED MOTION\n   ========================================================= *\/\n\n@media (prefers-reduced-motion: reduce) {\n\n  .hh-artisan-bag *,\n  .hh-artisan-bag *::before,\n  .hh-artisan-bag *::after {\n\n    animation: none !important;\n\n    transition: none !important;\n  }\n\n}\n\u003c\/style\u003e\n\u003csection class=\"hh-artisan-bag\"\u003e\n\u003cdiv class=\"hh-artisan-wrap\"\u003e\n\u003c!-- HERO --\u003e\u003cheader class=\"hh-artisan-hero\"\u003e\n\u003cdiv class=\"hh-artisan-label\"\u003e\n\u003cspan class=\"hh-artisan-label-dot\"\u003e\u003c\/span\u003e HANDCRAFTED • ONE OF A KIND\u003c\/div\u003e\n\u003ch1 id=\"hh-artisan-title\" class=\"hh-artisan-title\"\u003e\n\u003cspan\u003eA Wearable\u003c\/span\u003e\u003cbr\u003eWork Of Art.\u003c\/h1\u003e\n\u003cp class=\"hh-artisan-subtitle\"\u003eHandcrafted with T-shirt yarn, hand-painted leather, and a solid wooden base where artistry meets function.\u003c\/p\u003e\n\u003cdiv class=\"hh-artisan-ornament\"\u003e\n\u003cspan class=\"hh-artisan-line\"\u003e\u003c\/span\u003e \u003cspan class=\"hh-artisan-diamond\"\u003e✦\u003c\/span\u003e \u003cspan class=\"hh-artisan-line\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/header\u003e\u003c!-- PRODUCT SHOWCASE --\u003e\n\u003cdiv class=\"hh-artisan-showcase\"\u003e\n\u003c!-- PRODUCT VISUAL --\u003e\n\u003cdiv class=\"hh-artisan-display\"\u003e\n\u003cdiv class=\"hh-artisan-glow\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"hh-artisan-badge hh-artisan-badge-left\"\u003e\n\u003cstrong\u003e100% Handmade\u003c\/strong\u003e Crafted with care\u003c\/div\u003e\n\u003cdiv class=\"hh-artisan-badge hh-artisan-badge-right\"\u003e\n\u003cstrong\u003eOne Of a Kind\u003c\/strong\u003e No two are alike\u003c\/div\u003e\n\u003cdiv class=\"hh-artisan-mockup\" role=\"img\"\u003e\n\u003cdiv class=\"hh-artisan-flap\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"hh-artisan-wood\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- PRODUCT INFORMATION --\u003e\n\u003cdiv class=\"hh-artisan-content\"\u003e\n\u003cdiv class=\"hh-artisan-eyebrow\"\u003eCrafted With Intention\u003c\/div\u003e\n\u003ch2 class=\"hh-artisan-heading\"\u003eMade by hand.\u003cbr\u003e\u003cspan\u003eMade to stand out.\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"hh-artisan-description\"\u003eEvery bag is individually crafted, making each piece unique. Soft textured crochet meets hand-painted leather and a sturdy wooden base.\u003c\/p\u003e\n\u003cdiv class=\"hh-artisan-features\"\u003e\n\u003carticle class=\"hh-artisan-feature\"\u003e\n\u003cdiv class=\"hh-artisan-icon\"\u003e🧶\u003c\/div\u003e\n\u003cstrong\u003e T-Shirt Yarn \u003c\/strong\u003e \u003csmall\u003e Soft, chunky \u0026amp; durable texture. \u003c\/small\u003e\u003c\/article\u003e\n\u003carticle class=\"hh-artisan-feature\"\u003e\n\u003cdiv class=\"hh-artisan-icon\"\u003e🎨\u003c\/div\u003e\n\u003cstrong\u003e Hand-Painted Leather \u003c\/strong\u003e \u003csmall\u003e Unique artwork on every piece. \u003c\/small\u003e\u003c\/article\u003e\n\u003carticle class=\"hh-artisan-feature\"\u003e\n\u003cdiv class=\"hh-artisan-icon\"\u003e🪵\u003c\/div\u003e\n\u003cstrong\u003e Wooden Base \u003c\/strong\u003e \u003csmall\u003e Structure, stability \u0026amp; style. \u003c\/small\u003e\u003c\/article\u003e\n\u003carticle class=\"hh-artisan-feature\"\u003e\n\u003cdiv class=\"hh-artisan-icon\"\u003e♡\u003c\/div\u003e\n\u003cstrong\u003e Made With Love \u003c\/strong\u003e \u003csmall\u003e Carefully crafted by hand. \u003c\/small\u003e\u003c\/article\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CTA --\u003e\n\u003csection class=\"hh-artisan-cta\"\u003e\n\u003ch2 id=\"hh-artisan-cta-title\"\u003eCarry Something Truly Unique.\u003c\/h2\u003e\n\u003cp\u003eHandmade • Artistic • Functional • One Of A Kind\u003c\/p\u003e\n\u003c!-- Replace #PRODUCT-LINK with your actual Shopify product URL --\u003e \u003ca href=\"#PRODUCT-LINK\" class=\"hh-artisan-button\"\u003e DISCOVER YOUR BAG → \u003c\/a\u003e\u003c\/section\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e","brand":"HIS\u0026her haven","offers":[{"title":"Brown","offer_id":54615354966291,"sku":null,"price":349.99,"currency_code":"ZAR","in_stock":true},{"title":"Olive green","offer_id":54615354999059,"sku":null,"price":349.99,"currency_code":"ZAR","in_stock":true},{"title":"Red","offer_id":54615355031827,"sku":null,"price":349.99,"currency_code":"ZAR","in_stock":true},{"title":"Green","offer_id":54615355064595,"sku":null,"price":349.99,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1001\/4959\/2339\/files\/premium-olive-crochet-bag-product-focus.png?v=1786563442","url":"https:\/\/hisherhaven.co.za\/products\/handmade-crochet-bag-wooden-base-hand-painted-leather-flap","provider":"HIS\u0026her haven","version":"1.0","type":"link"}