{"product_id":"custom-men-silhouette-portrait-solid-style","title":"Custom Men Vinyl Silhouette Portrait – Solid Style","description":"\u003cstyle\u003e\n    .sp-info {\n      --sp-text: #171717;\n      --sp-muted: #686868;\n      --sp-subtle: #929292;\n      --sp-line: #e5e3df;\n      --sp-surface: #123645;\n      --sp-photo-surface: transparent;\n      --sp-surface-text: var(--sp-text);\n      --sp-radius: 10px;\n      --sp-ease: cubic-bezier(.22, 1, .36, 1);\n\n      width: 100%;\n      color: var(--sp-text);\n      font-family: inherit;\n      line-height: 1.55;\n      container: sp-info \/ inline-size;\n    }\n\n    .sp-info *,\n    .sp-info *::before,\n    .sp-info *::after {\n      box-sizing: border-box;\n    }\n\n    .sp-info p,\n    .sp-info h2,\n    .sp-info h3,\n    .sp-info ul,\n    .sp-info ol,\n    .sp-info figure {\n      margin: 0;\n    }\n\n    .sp-info ul,\n    .sp-info ol {\n      padding: 0;\n      list-style: none;\n    }\n\n    \/* =========================================\n       ACCORDION\n    ========================================= *\/\n\n    .sp-accordion {\n      border-top: 1px solid var(--sp-line);\n    }\n\n    .sp-accordion:last-child {\n      border-bottom: 1px solid var(--sp-line);\n    }\n\n    .sp-accordion summary {\n      position: relative;\n\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n\n      gap: 18px;\n\n      min-height: 58px;\n      padding: 17px 2px;\n\n      cursor: pointer;\n      list-style: none;\n\n      color: var(--sp-text);\n\n      font-size: 13px;\n      line-height: 1.3;\n      font-weight: 500;\n      letter-spacing: .015em;\n\n      transition:\n        opacity .25s ease;\n    }\n\n    .sp-accordion summary::-webkit-details-marker {\n      display: none;\n    }\n\n    .sp-accordion summary::marker {\n      display: none;\n      content: \"\";\n    }\n\n    .sp-accordion summary:hover {\n      opacity: .62;\n    }\n\n    .sp-accordion summary:focus-visible {\n      outline: 2px solid currentColor;\n      outline-offset: -2px;\n      border-radius: 4px;\n    }\n\n    .sp-accordion[data-animating] {\n      overflow: hidden;\n      overflow: clip;\n    }\n\n    .sp-accordion__icon {\n      position: relative;\n\n      width: 18px;\n      height: 18px;\n\n      flex: 0 0 18px;\n    }\n\n    .sp-accordion__icon::before,\n    .sp-accordion__icon::after {\n      content: \"\";\n\n      position: absolute;\n      left: 50%;\n      top: 50%;\n\n      width: 11px;\n      height: 1px;\n\n      background: currentColor;\n\n      transform:\n        translate(-50%, -50%);\n\n      transition:\n        transform .35s var(--sp-ease),\n        opacity .25s ease;\n    }\n\n    .sp-accordion__icon::after {\n      transform:\n        translate(-50%, -50%)\n        rotate(90deg);\n    }\n\n    .sp-accordion[open]:not([data-expanded=\"false\"])\n    .sp-accordion__icon::after {\n      transform:\n        translate(-50%, -50%)\n        rotate(0);\n      opacity: 0;\n    }\n\n    .sp-accordion__content {\n      display: block;\n      overflow: hidden;\n\n      padding:\n        2px 0\n        28px;\n\n    }\n\n    .sp-intro {\n      max-width: 64ch;\n\n      margin-bottom: 20px !important;\n\n      color: var(--sp-muted);\n\n      font-size: 13.5px;\n      line-height: 1.7;\n    }\n\n    \/* =========================================\n       SUB HEADINGS\n    ========================================= *\/\n\n    .sp-subheading {\n      margin-bottom: 12px !important;\n\n      color: var(--sp-text);\n\n      font-size: 11px;\n      line-height: 1.3;\n      font-weight: 600;\n      letter-spacing: .08em;\n      text-transform: uppercase;\n    }\n\n    .sp-block + .sp-block {\n      margin-top: 26px;\n    }\n\n    \/* =========================================\n       PRODUCT IMAGE\n    ========================================= *\/\n\n    .sp-photo {\n      overflow: hidden;\n\n      width: 100%;\n      max-width: none;\n      aspect-ratio: 530 \/ 253;\n      height: auto;\n\n      margin:\n        20px 0\n        28px;\n\n      border-radius: var(--sp-radius);\n\n      background: var(--sp-photo-surface);\n      box-shadow: 0 4px 14px rgba(23, 23, 23, .12);\n    }\n\n    .sp-photo img {\n      display: block;\n\n      width: 100%;\n      height: 100%;\n\n      object-fit: cover;\n      object-position: center;\n    }\n\n    \/* =========================================\n       PHOTO GUIDE\n    ========================================= *\/\n\n    .sp-guide-grid {\n      display: grid;\n\n      grid-template-columns:\n        repeat(2, minmax(0, 1fr));\n\n      gap: 8px;\n    }\n\n    .sp-guide {\n      padding: 16px;\n\n      border: 1px solid var(--sp-line);\n      border-radius: var(--sp-radius);\n\n      background: #fff;\n    }\n\n    .sp-guide__title {\n      display: flex;\n      align-items: center;\n\n      gap: 7px;\n\n      margin-bottom: 11px !important;\n\n      color: var(--sp-text);\n\n      font-size: 11.5px;\n      font-weight: 600;\n    }\n\n    .sp-guide__symbol {\n      display: grid;\n      place-items: center;\n\n      width: 18px;\n      height: 18px;\n\n      flex: 0 0 18px;\n\n      border: 1px solid var(--sp-line);\n      border-radius: 50%;\n\n      font-size: 11px;\n      line-height: 1;\n    }\n\n    .sp-list {\n      display: grid;\n      gap: 8px;\n    }\n\n    .sp-list li {\n      position: relative;\n\n      padding-left: 12px;\n\n      color: var(--sp-muted);\n\n      font-size: 12px;\n      line-height: 1.5;\n    }\n\n    .sp-list li::before {\n      content: \"\";\n\n      position: absolute;\n      left: 0;\n      top: .66em;\n\n      width: 3px;\n      height: 3px;\n\n      border-radius: 50%;\n\n      background: currentColor;\n\n      opacity: .55;\n    }\n\n    .sp-list strong {\n      color: var(--sp-text);\n      font-weight: 550;\n    }\n\n    \/* =========================================\n       SIZE TABLE\n    ========================================= *\/\n\n    .sp-table-wrap {\n      overflow: hidden;\n\n      border:\n        1px solid\n        var(--sp-line);\n\n      border-radius:\n        var(--sp-radius);\n    }\n\n    .sp-table {\n      width: 100%;\n\n      border-collapse:\n        collapse;\n\n      table-layout:\n        fixed;\n\n      font-size:\n        12px;\n    }\n\n    .sp-table th,\n    .sp-table td {\n      padding:\n        10px 12px;\n\n      text-align:\n        left;\n\n      vertical-align:\n        middle;\n\n      border-bottom:\n        1px solid\n        var(--sp-line);\n    }\n\n    .sp-table tr:last-child td {\n      border-bottom: 0;\n    }\n\n    .sp-table th {\n      background:\n        var(--sp-surface);\n\n      color:\n        var(--sp-surface-text);\n\n      font-size:\n        9.5px;\n\n      font-weight:\n        600;\n\n      letter-spacing:\n        .08em;\n\n      text-transform:\n        uppercase;\n    }\n\n    .sp-table td {\n      color:\n        var(--sp-muted);\n    }\n\n    .sp-table td:first-child {\n      color:\n        var(--sp-text);\n\n      font-weight:\n        550;\n    }\n\n    \/* =========================================\n       HOW TO ORDER\n    ========================================= *\/\n\n    .sp-steps {\n      display: grid;\n\n      grid-template-columns:\n        repeat(4, minmax(0, 1fr));\n\n      border-top:\n        1px solid\n        var(--sp-line);\n\n      border-bottom:\n        1px solid\n        var(--sp-line);\n    }\n\n    .sp-step {\n      min-width: 0;\n\n      padding:\n        16px 14px\n        17px 0;\n    }\n\n    .sp-step + .sp-step {\n      padding-left:\n        14px;\n\n      border-left:\n        1px solid\n        var(--sp-line);\n    }\n\n    .sp-step__number {\n      display: block;\n\n      margin-bottom:\n        14px;\n\n      color:\n        var(--sp-subtle);\n\n      font-size:\n        9px;\n\n      letter-spacing:\n        .12em;\n    }\n\n    .sp-step__icon {\n      width: 21px;\n      height: 21px;\n\n      margin-bottom:\n        10px;\n\n      color:\n        var(--sp-text);\n    }\n\n    .sp-step__icon svg {\n      display: block;\n\n      width: 100%;\n      height: 100%;\n    }\n\n    .sp-step__title {\n      margin-bottom:\n        4px !important;\n\n      color:\n        var(--sp-text);\n\n      font-size:\n        12px;\n\n      line-height:\n        1.35;\n\n      font-weight:\n        600;\n    }\n\n    .sp-step__text {\n      color:\n        var(--sp-surface-text);\n\n      font-size:\n        11.5px;\n\n      line-height:\n        1.5;\n    }\n\n    \/* =========================================\n       DELIVERY + RETURNS\n    ========================================= *\/\n\n    .sp-two-column {\n      display: grid;\n\n      grid-template-columns:\n        repeat(2, minmax(0, 1fr));\n\n      gap: 8px;\n    }\n\n    .sp-info-card {\n      padding:\n        17px;\n\n      border:\n        1px solid\n        var(--sp-line);\n\n      border-radius:\n        var(--sp-radius);\n\n      background:\n        #fff;\n    }\n\n    .sp-info-card__top {\n      display: flex;\n      align-items: center;\n\n      gap: 9px;\n\n      margin-bottom:\n        10px;\n    }\n\n    .sp-info-card__icon {\n      display: grid;\n      place-items: center;\n\n      width: 26px;\n      height: 26px;\n\n      flex:\n        0 0 26px;\n\n      border:\n        1px solid\n        var(--sp-line);\n\n      border-radius:\n        50%;\n    }\n\n    .sp-info-card__icon svg {\n      width:\n        14px;\n\n      height:\n        14px;\n    }\n\n    .sp-info-card__title {\n      color:\n        var(--sp-text);\n\n      font-size:\n        12px;\n\n      font-weight:\n        600;\n    }\n\n    .sp-info-card p {\n      color:\n        var(--sp-muted);\n\n      font-size:\n        12px;\n\n      line-height:\n        1.6;\n    }\n\n    .sp-policy {\n      margin-top:\n        10px;\n\n      padding:\n        13px 15px;\n\n      border-left:\n        2px solid\n        var(--sp-text);\n\n      background:\n        var(--sp-surface);\n\n      color:\n        var(--sp-surface-text);\n\n      font-size:\n        11.5px;\n\n      line-height:\n        1.55;\n    }\n\n    .sp-policy strong {\n      color:\n        inherit;\n\n      font-weight:\n        600;\n    }\n\n    \/* =========================================\n       WHY CHOOSE US\n    ========================================= *\/\n\n    .sp-benefits {\n      display: grid;\n\n      grid-template-columns:\n        repeat(2, minmax(0, 1fr));\n\n      border-top:\n        1px solid\n        var(--sp-line);\n    }\n\n    .sp-benefit {\n      display: grid;\n\n      grid-template-columns:\n        19px 1fr;\n\n      gap:\n        10px;\n\n      align-items:\n        start;\n\n      padding:\n        13px 0;\n\n      border-bottom:\n        1px solid\n        var(--sp-line);\n\n      color:\n        var(--sp-muted);\n\n      font-size:\n        12px;\n\n      line-height:\n        1.5;\n    }\n\n    .sp-benefit:nth-child(odd) {\n      padding-right:\n        16px;\n    }\n\n    .sp-benefit:nth-child(even) {\n      padding-left:\n        16px;\n\n      border-left:\n        1px solid\n        var(--sp-line);\n    }\n\n    .sp-benefit svg {\n      width:\n        16px;\n\n      height:\n        16px;\n\n      margin-top:\n        1px;\n\n      color:\n        var(--sp-text);\n    }\n\n    .sp-benefit strong {\n      color:\n        var(--sp-text);\n\n      font-weight:\n        600;\n    }\n\n    \/* =========================================\n       TABLET \/ NARROW PRODUCT SIDEBAR\n    ========================================= *\/\n\n    @container sp-info (max-width: 680px) {\n\n      .sp-steps {\n        grid-template-columns:\n          repeat(2, minmax(0, 1fr));\n      }\n\n      .sp-step:nth-child(3) {\n        padding-left:\n          0;\n\n        border-left:\n          0;\n\n        border-top:\n          1px solid\n          var(--sp-line);\n      }\n\n      .sp-step:nth-child(4) {\n        border-top:\n          1px solid\n          var(--sp-line);\n      }\n    }\n\n    \/* =========================================\n       MOBILE\n    ========================================= *\/\n\n    @container sp-info (max-width: 420px) {\n\n      .sp-accordion summary {\n        min-height:\n          54px;\n\n        padding:\n          15px 0;\n\n        font-size:\n          12.5px;\n      }\n\n      .sp-accordion__content {\n        padding-bottom:\n          24px;\n      }\n\n      .sp-photo {\n        width:\n          100%;\n      }\n\n      .sp-guide-grid {\n        grid-template-columns:\n          1fr 1fr;\n\n        gap:\n          6px;\n      }\n\n      .sp-guide {\n        padding:\n          13px 11px;\n      }\n\n      .sp-guide__title {\n        font-size:\n          10.5px;\n      }\n\n      .sp-list li {\n        padding-left:\n          9px;\n\n        font-size:\n          10.5px;\n\n        line-height:\n          1.45;\n      }\n\n      .sp-two-column {\n        grid-template-columns:\n          1fr 1fr;\n\n        gap:\n          6px;\n      }\n\n      .sp-info-card {\n        padding:\n          14px 11px;\n      }\n\n      .sp-info-card p {\n        font-size:\n          10.75px;\n      }\n\n      .sp-benefits {\n        grid-template-columns:\n          1fr 1fr;\n      }\n\n      .sp-benefit {\n        font-size:\n          10.75px;\n      }\n\n      .sp-benefit:nth-child(odd) {\n        padding-right:\n          10px;\n      }\n\n      .sp-benefit:nth-child(even) {\n        padding-left:\n          10px;\n      }\n    }\n\n    \/* =========================================\n       VERY SMALL SCREEN\n    ========================================= *\/\n\n    @container sp-info (max-width: 330px) {\n\n      .sp-guide-grid,\n      .sp-two-column,\n      .sp-benefits {\n        grid-template-columns:\n          1fr;\n      }\n\n      .sp-benefit:nth-child(even) {\n        padding-left:\n          0;\n\n        border-left:\n          0;\n      }\n\n      .sp-benefit:nth-child(odd) {\n        padding-right:\n          0;\n      }\n\n      .sp-photo {\n        width:\n          100%;\n      }\n    }\n\n    \/* =========================================\n       REDUCED MOTION\n    ========================================= *\/\n\n    @media (prefers-reduced-motion: reduce) {\n\n      .sp-info *,\n      .sp-info *::before,\n      .sp-info *::after {\n        transition:\n          none !important;\n\n        animation:\n          none !important;\n      }\n    }\n  \u003c\/style\u003e\n\u003csection class=\"sp-info\"\u003e\u003c!-- =========================================\n       01 PRODUCT DETAILS\n  ========================================== --\u003e\n\u003cdetails class=\"sp-accordion\" open=\"\"\u003e\n\u003csummary\u003e\u003cspan\u003eProduct Details\u003c\/span\u003e \u003cspan class=\"sp-accordion__icon\"\u003e\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"sp-accordion__content\"\u003e\n\u003cp class=\"sp-intro\"\u003eCreate a personalized silhouette from your own photo, or choose one of our ready made portraits with no photo required. Each piece is framed and prepared ready to display.\u003c\/p\u003e\n\u003cdiv class=\"sp-block\"\u003e\n\u003cp class=\"sp-subheading\"\u003eAvailable Sizes\u003c\/p\u003e\n\u003cdiv class=\"sp-table-wrap\"\u003e\n\u003ctable class=\"sp-table\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth scope=\"col\"\u003eSize\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eDimensions\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eFrame\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eSmall\u003c\/td\u003e\n\u003ctd\u003e6” × 8”\u003c\/td\u003e\n\u003ctd\u003eBlack\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMedium\u003c\/td\u003e\n\u003ctd\u003e9” × 11”\u003c\/td\u003e\n\u003ctd\u003eBlack, White or Brown\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLarge\u003c\/td\u003e\n\u003ctd\u003e13” × 16”\u003c\/td\u003e\n\u003ctd\u003eBlack\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sp-block\"\u003e\n\u003cp class=\"sp-subheading\"\u003eReady Made Silhouettes\u003c\/p\u003e\n\u003cp class=\"sp-intro\"\u003ePrefer not to upload a photo? Choose one of the ready made silhouettes from the selector above. You may add an optional name beneath the portrait or leave the design beautifully simple.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- =========================================\n  02 CUSTOM PHOTO GUIDE\n  ========================================== --\u003e\n\u003cdetails class=\"sp-accordion\"\u003e\n\u003csummary\u003e\u003cspan\u003eCustom Photo Guide\u003c\/span\u003e \u003cspan class=\"sp-accordion__icon\"\u003e\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"sp-accordion__content\"\u003e\n\u003cfigure class=\"sp-photo\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/5341\/5228\/files\/man-1-4.webp?v=1786918260\" alt=\"Example of a clear side profile suitable for creating a custom silhouette portrait\" loading=\"lazy\" decoding=\"async\" width=\"530\" height=\"253\"\u003e\u003c\/figure\u003e\n\u003cdiv class=\"sp-guide-grid\"\u003e\n\u003cdiv class=\"sp-guide\"\u003e\n\u003cp class=\"sp-guide__title\"\u003e\u003cspan class=\"sp-guide__symbol\"\u003e ✓ \u003c\/span\u003e Best Results\u003c\/p\u003e\n\u003cul class=\"sp-list\"\u003e\n\u003cli\u003eSide profile at approximately 90°\u003c\/li\u003e\n\u003cli\u003eNatural lighting without strong shadows\u003c\/li\u003e\n\u003cli\u003eSimple background behind the subject\u003c\/li\u003e\n\u003cli\u003eCamera positioned at eye level\u003c\/li\u003e\n\u003cli\u003eHead and shoulders clearly visible\u003c\/li\u003e\n\u003cli\u003eKeep the facial outline unobstructed\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sp-guide\"\u003e\n\u003cp class=\"sp-guide__title\"\u003e\u003cspan class=\"sp-guide__symbol\"\u003e × \u003c\/span\u003e Try to Avoid\u003c\/p\u003e\n\u003cul class=\"sp-list\"\u003e\n\u003cli\u003eFront facing photos\u003c\/li\u003e\n\u003cli\u003eThree quarter angles\u003c\/li\u003e\n\u003cli\u003eDark or backlit images\u003c\/li\u003e\n\u003cli\u003eHair covering the profile\u003c\/li\u003e\n\u003cli\u003eBlurry or compressed images\u003c\/li\u003e\n\u003cli\u003eHats or sunglasses\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- =========================================\n  03 HOW TO ORDER\n  ========================================== --\u003e\n\u003cdetails class=\"sp-accordion\"\u003e\n\u003csummary\u003e\u003cspan\u003eHow to Order\u003c\/span\u003e \u003cspan class=\"sp-accordion__icon\"\u003e\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"sp-accordion__content\"\u003e\n\u003cp class=\"sp-intro\"\u003eFour simple steps take your portrait from selection to a finished framed piece.\u003c\/p\u003e\n\u003col class=\"sp-steps\"\u003e\n\u003cli class=\"sp-step\"\u003e\n\u003cspan class=\"sp-step__number\"\u003e 01 \u003c\/span\u003e\n\u003cdiv class=\"sp-step__icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\u003e\n              \u003crect x=\"4\" y=\"3\" width=\"16\" height=\"18\" rx=\"1.5\"\u003e\u003c\/rect\u003e\n              \u003cpath d=\"M8 7h8M8 17h8\"\u003e\u003c\/path\u003e\n            \u003c\/svg\u003e\u003c\/div\u003e\n\u003cp class=\"sp-step__title\"\u003eChoose Your Format\u003c\/p\u003e\n\u003cp class=\"sp-step__text\"\u003eSelect your preferred size and frame colour.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"sp-step\"\u003e\n\u003cspan class=\"sp-step__number\"\u003e 02 \u003c\/span\u003e\n\u003cdiv class=\"sp-step__icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\u003e\n              \u003ccircle cx=\"12\" cy=\"8\" r=\"4\"\u003e\u003c\/circle\u003e\n              \u003cpath d=\"M5 21c0-4 3-7 7-7s7 3 7 7\"\u003e\u003c\/path\u003e\n            \u003c\/svg\u003e\u003c\/div\u003e\n\u003cp class=\"sp-step__title\"\u003eSelect Your Silhouette\u003c\/p\u003e\n\u003cp class=\"sp-step__text\"\u003eChoose a ready made portrait or select Custom.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"sp-step\"\u003e\n\u003cspan class=\"sp-step__number\"\u003e 03 \u003c\/span\u003e\n\u003cdiv class=\"sp-step__icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\u003e\n              \u003crect x=\"3\" y=\"5\" width=\"18\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\n              \u003cpath d=\"M12 2v7\"\u003e\u003c\/path\u003e\n              \u003cpath d=\"m9 5 3-3 3 3\"\u003e\u003c\/path\u003e\n            \u003c\/svg\u003e\u003c\/div\u003e\n\u003cp class=\"sp-step__title\"\u003eUpload Your Photo\u003c\/p\u003e\n\u003cp class=\"sp-step__text\"\u003eRequired only when choosing the Custom option.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli class=\"sp-step\"\u003e\n\u003cspan class=\"sp-step__number\"\u003e 04 \u003c\/span\u003e\n\u003cdiv class=\"sp-step__icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\u003e\n              \u003cpath d=\"m4 7 8-4 8 4-8 4-8-4Z\"\u003e\u003c\/path\u003e\n              \u003cpath d=\"M4 7v10l8 4 8-4V7\"\u003e\u003c\/path\u003e\n              \u003cpath d=\"M12 11v10\"\u003e\u003c\/path\u003e\n            \u003c\/svg\u003e\u003c\/div\u003e\n\u003cp class=\"sp-step__title\"\u003eWe Create Your Piece\u003c\/p\u003e\n\u003cp class=\"sp-step__text\"\u003eYour portrait is crafted, framed and prepared for delivery.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- =========================================\n      04 DELIVERY \u0026 RETURNS\n  ========================================== --\u003e\n\u003cdetails class=\"sp-accordion\"\u003e\n\u003csummary\u003e\u003cspan\u003eDelivery \u0026amp; Returns\u003c\/span\u003e \u003cspan class=\"sp-accordion__icon\"\u003e\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"sp-accordion__content\"\u003e\n\u003cdiv class=\"sp-two-column\"\u003e\n\u003cdiv class=\"sp-info-card\"\u003e\n\u003cdiv class=\"sp-info-card__top\"\u003e\n\u003cdiv class=\"sp-info-card__icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\u003e\n                \u003cpath d=\"m4 7 8-4 8 4-8 4-8-4Z\"\u003e\u003c\/path\u003e\n                \u003cpath d=\"M4 7v10l8 4 8-4V7\"\u003e\u003c\/path\u003e\n              \u003c\/svg\u003e\u003c\/div\u003e\n\u003cp class=\"sp-info-card__title\"\u003eProduction \u0026amp; Delivery\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cp\u003eEach portrait is prepared to order. Please allow approximately \u003cstrong\u003e3 to 5 business days\u003c\/strong\u003e for crafting and dispatch.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sp-info-card\"\u003e\n\u003cdiv class=\"sp-info-card__top\"\u003e\n\u003cdiv class=\"sp-info-card__icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\u003e\n                \u003cpath d=\"M4 12a8 8 0 1 0 2.3-5.7\"\u003e\u003c\/path\u003e\n                \u003cpath d=\"M4 4v6h6\"\u003e\u003c\/path\u003e\n              \u003c\/svg\u003e\u003c\/div\u003e\n\u003cp class=\"sp-info-card__title\"\u003eReturns\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cp\u003eReady made silhouettes follow our standard return policy. Personalized pieces are created specifically for you.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sp-policy\"\u003e\n\u003cstrong\u003e Personalized orders: \u003c\/strong\u003e Made to order personalized items are final sale except where the product arrives damaged or defective.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- =========================================\n      05 WHY CHOOSE US\n  ========================================== --\u003e\n\u003cdetails class=\"sp-accordion\"\u003e\n\u003csummary\u003e\u003cspan\u003eWhy Choose Us\u003c\/span\u003e \u003cspan class=\"sp-accordion__icon\"\u003e\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"sp-accordion__content\"\u003e\n\u003cp class=\"sp-intro\"\u003eEvery piece is designed to feel personal, refined and ready to become part of your home or an unforgettable gift.\u003c\/p\u003e\n\u003cul class=\"sp-benefits\"\u003e\n\u003cli class=\"sp-benefit\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\u003e\n            \u003cpath d=\"M4 20 20 4\"\u003e\u003c\/path\u003e\n            \u003cpath d=\"M7 4h13v13\"\u003e\u003c\/path\u003e\n          \u003c\/svg\u003e \u003cspan\u003e \u003cstrong\u003e Refined silhouette detailing \u003c\/strong\u003e created with a clean, elegant profile. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"sp-benefit\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\u003e\n            \u003cpath d=\"M5 19 19 5\"\u003e\u003c\/path\u003e\n            \u003cpath d=\"M5 5h5\"\u003e\u003c\/path\u003e\n            \u003cpath d=\"M14 19h5\"\u003e\u003c\/path\u003e\n          \u003c\/svg\u003e \u003cspan\u003e \u003cstrong\u003e Precision cut premium vinyl \u003c\/strong\u003e creates crisp, intricate artwork. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"sp-benefit\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\u003e\n            \u003crect x=\"4\" y=\"3\" width=\"16\" height=\"18\" rx=\"1\"\u003e\u003c\/rect\u003e\n            \u003crect x=\"8\" y=\"7\" width=\"8\" height=\"10\"\u003e\u003c\/rect\u003e\n          \u003c\/svg\u003e \u003cspan\u003e \u003cstrong\u003e Framed and ready to hang \u003c\/strong\u003e with no assembly required. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"sp-benefit\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\u003e\n            \u003cpath d=\"M20.8 4.6a5.4 5.4 0 0 0-7.6 0L12 5.8l-1.2-1.2a5.4 5.4 0 0 0-7.6 7.6L12 21l8.8-8.8a5.4 5.4 0 0 0 0-7.6Z\"\u003e\u003c\/path\u003e\n          \u003c\/svg\u003e \u003cspan\u003e \u003cstrong\u003e Meaningful personalized gift \u003c\/strong\u003e for birthdays, anniversaries and milestones. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"sp-benefit\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\u003e\n            \u003ccircle cx=\"12\" cy=\"12\" r=\"8\"\u003e\u003c\/circle\u003e\n            \u003cpath d=\"M12 8v4l3 2\"\u003e\u003c\/path\u003e\n          \u003c\/svg\u003e \u003cspan\u003e \u003cstrong\u003e Made specifically for you \u003c\/strong\u003e when choosing a custom portrait. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"sp-benefit\"\u003e\n\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\u003e\n            \u003cpath d=\"m5 12 4 4L19 6\"\u003e\u003c\/path\u003e\n          \u003c\/svg\u003e \u003cspan\u003e \u003cstrong\u003e Simple ordering process \u003c\/strong\u003e with clear customization instructions. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/section\u003e\n\u003cscript\u003e\n  (() =\u003e {\n    const surfaces = document.querySelectorAll('.sp-table th, .sp-policy');\n    const accordions = document.querySelectorAll('.sp-accordion');\n    const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n\n    const getContrastText = (element) =\u003e {\n      const background = getComputedStyle(element).backgroundColor;\n      const channels = background.match(\/[\\d.]+\/g);\n\n      if (!channels || channels.length \u003c 3) {\n        return '#171717';\n      }\n\n      const [red, green, blue] = channels.map(Number);\n      const luminance = (0.2126 * red + 0.7152 * green + 0.0722 * blue) \/ 255;\n\n      return luminance \u003e 0.5 ? '#171717' : '#fff';\n    };\n\n    const updateContrast = () =\u003e {\n      surfaces.forEach((surface) =\u003e {\n        surface.style.setProperty('--sp-surface-text', getContrastText(surface));\n      });\n    };\n\n    updateContrast();\n    new MutationObserver(updateContrast).observe(document.querySelector('.sp-info'), {\n      attributes: true,\n      attributeFilter: ['class', 'style']\n    });\n\n    accordions.forEach((accordion) =\u003e {\n      const summary = accordion.querySelector('summary');\n      const content = accordion.querySelector('.sp-accordion__content');\n\n      if (!summary || !content) {\n        return;\n      }\n\n      \/\/ Keep the requested state separate from `open`: details must stay open\n      \/\/ until its closing animation has finished, so the browser keeps painting it.\n      let expanded = accordion.open;\n      let animation = null;\n\n      const updateState = () =\u003e {\n        accordion.dataset.expanded = String(expanded);\n        summary.setAttribute('aria-expanded', String(expanded));\n        content.inert = !expanded;\n      };\n\n      const finish = () =\u003e {\n        accordion.open = expanded;\n        if (animation) {\n          animation.cancel();\n          animation = null;\n        }\n        accordion.removeAttribute('data-animating');\n      };\n\n      const animate = () =\u003e {\n        \/\/ Read the visible height before cancelling so a quick second click\n        \/\/ reverses from the current position instead of jumping to an endpoint.\n        const startHeight = accordion.getBoundingClientRect().height;\n        if (animation) {\n          animation.cancel();\n          animation = null;\n        }\n        updateState();\n\n        if (typeof accordion.animate !== 'function') {\n          finish();\n          return;\n        }\n\n        accordion.open = true;\n        const style = getComputedStyle(accordion);\n        const borders = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n        const closedHeight = summary.getBoundingClientRect().height + borders;\n        const contentHeight = content.getBoundingClientRect().height;\n        const endHeight = closedHeight + (expanded ? contentHeight : 0);\n        const distance = Math.abs(endHeight - startHeight);\n\n        if (distance \u003c 1) {\n          finish();\n          return;\n        }\n\n        accordion.setAttribute('data-animating', '');\n        const currentAnimation = accordion.animate([\n          { height: `${startHeight}px` },\n          { height: `${endHeight}px` }\n        ], {\n          duration: Math.max(120, 400 * Math.min(1, distance \/ Math.max(contentHeight, 1))),\n          easing: 'cubic-bezier(.22, 1, .36, 1)',\n          fill: 'both'\n        });\n        animation = currentAnimation;\n        currentAnimation.onfinish = () =\u003e {\n          if (animation === currentAnimation) finish();\n        };\n      };\n\n      updateState();\n\n      summary.addEventListener('click', (event) =\u003e {\n        event.preventDefault();\n        expanded = !expanded;\n        animate();\n      });\n\n      reducedMotion.addEventListener('change', () =\u003e {\n        if (reducedMotion.matches) finish();\n      });\n\n      \/\/ Re-measure if text reflows or an image loads during a transition.\n      \/\/ At rest, height is automatic, so expanded content is never capped.\n      if (typeof ResizeObserver === 'function') {\n        const resizeObserver = new ResizeObserver(() =\u003e {\n          if (animation) animate();\n        });\n        resizeObserver.observe(content);\n        resizeObserver.observe(summary);\n      }\n    });\n  })();\n\u003c\/script\u003e\n","brand":"RKDREAMCRAFT","offers":[{"title":"Small \/ Black \/ Caspian","offer_id":46026449518652,"sku":"RKD-MEN-SOL-S-BLK-CASPIAN","price":59.0,"currency_code":"CAD","in_stock":true},{"title":"Small \/ Black \/ Loom","offer_id":46026449551420,"sku":"RKD-MEN-SOL-S-BLK-LOOM","price":59.0,"currency_code":"CAD","in_stock":true},{"title":"Small \/ Black \/ Onyx","offer_id":46026449584188,"sku":"RKD-MEN-SOL-S-BLK-ONYX","price":59.0,"currency_code":"CAD","in_stock":true},{"title":"Small \/ Black \/ Remy","offer_id":46026449616956,"sku":"RKD-MEN-SOL-S-BLK-REMY","price":59.0,"currency_code":"CAD","in_stock":true},{"title":"Small \/ Black \/ Silas","offer_id":46026449649724,"sku":"RKD-MEN-SOL-S-BLK-SILAS","price":59.0,"currency_code":"CAD","in_stock":true},{"title":"Small \/ Black \/ Custom From My Photo","offer_id":46012280995900,"sku":"RKD-MEN-SOL-S-BLK-CUSTOM","price":69.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ Black \/ Caspian","offer_id":46026449682492,"sku":"RKD-MEN-SOL-M-BLK-CASPIAN","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ Black \/ Loom","offer_id":46026449715260,"sku":"RKD-MEN-SOL-M-BLK-LOOM","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ Black \/ Onyx","offer_id":46026449748028,"sku":"RKD-MEN-SOL-M-BLK-ONYX","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ Black \/ Remy","offer_id":46026449780796,"sku":"RKD-MEN-SOL-M-BLK-REMY","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ Black \/ Silas","offer_id":46026449813564,"sku":"RKD-MEN-SOL-M-BLK-SILAS","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ Black \/ Custom From My Photo","offer_id":46012281585724,"sku":"RKD-MEN-SOL-M-BLK-CUSTOM","price":89.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ White \/ Caspian","offer_id":46026449846332,"sku":"RKD-MEN-SOL-M-WHT-CASPIAN","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ White \/ Loom","offer_id":46026449879100,"sku":"RKD-MEN-SOL-M-WHT-LOOM","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ White \/ Onyx","offer_id":46026449911868,"sku":"RKD-MEN-SOL-M-WHT-ONYX","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ White \/ Remy","offer_id":46026449944636,"sku":"RKD-MEN-SOL-M-WHT-REMY","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ White \/ Silas","offer_id":46026449977404,"sku":"RKD-MEN-SOL-M-WHT-SILAS","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ White \/ Custom From My Photo","offer_id":46012281782332,"sku":"RKD-MEN-SOL-M-WHT-CUSTOM","price":89.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ Brown \/ Caspian","offer_id":46026450010172,"sku":"RKD-MEN-SOL-M-BRN-CASPIAN","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ Brown \/ Loom","offer_id":46026450042940,"sku":"RKD-MEN-SOL-M-BRN-LOOM","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ Brown \/ Onyx","offer_id":46026450075708,"sku":"RKD-MEN-SOL-M-BRN-ONYX","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ Brown \/ Remy","offer_id":46026450108476,"sku":"RKD-MEN-SOL-M-BRN-REMY","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ Brown \/ Silas","offer_id":46026450141244,"sku":"RKD-MEN-SOL-M-BRN-SILAS","price":79.0,"currency_code":"CAD","in_stock":true},{"title":"Medium \/ Brown \/ Custom From My Photo","offer_id":46012281978940,"sku":"RKD-MEN-SOL-M-BRN-CUSTOM","price":89.0,"currency_code":"CAD","in_stock":true},{"title":"Large \/ Black \/ Caspian","offer_id":46026450174012,"sku":"RKD-MEN-SOL-L-BLK-CASPIAN","price":109.0,"currency_code":"CAD","in_stock":true},{"title":"Large \/ Black \/ Loom","offer_id":46026450206780,"sku":"RKD-MEN-SOL-L-BLK-LOOM","price":109.0,"currency_code":"CAD","in_stock":true},{"title":"Large \/ Black \/ Onyx","offer_id":46026450239548,"sku":"RKD-MEN-SOL-L-BLK-ONYX","price":109.0,"currency_code":"CAD","in_stock":true},{"title":"Large \/ Black \/ Remy","offer_id":46026450272316,"sku":"RKD-MEN-SOL-L-BLK-REMY","price":109.0,"currency_code":"CAD","in_stock":true},{"title":"Large \/ Black \/ Silas","offer_id":46026450305084,"sku":"RKD-MEN-SOL-L-BLK-SILAS","price":109.0,"currency_code":"CAD","in_stock":true},{"title":"Large \/ Black \/ Custom From My Photo","offer_id":46012282175548,"sku":"RKD-MEN-SOL-L-BLK-CUSTOM","price":129.0,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0723\/5341\/5228\/files\/custom-silhouette-portrait-caspian_solid-4.webp?v=1786850309","url":"https:\/\/rkdreamcraft.ca\/products\/custom-men-silhouette-portrait-solid-style","provider":"RKDREAMCRAFT","version":"1.0","type":"link"}