{"product_id":"spring-back-parking-sign-stands-112cm-2-pack","title":"Pieds pour panneau de stationnement à retour automatique de 112 cm, lot de 2","description":"\u003cp\u003eGuidez les conducteurs et les piétons autour des parkings, des entrées et des voies d’accès aux installations grâce à ce lot de 2 supports de panneau de stationnement à rappel par ressort. Chaque support mesure environ 112 cm de haut et utilise une articulation inférieure flexible avec une base à montage en surface et à profil bas.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques principales\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003eDeux supports de panneau par lot dans la version avec le message sélectionné.\u003c\/li\u003e\n\u003cli\u003eArticulation inférieure à rappel par ressort conçue pour revenir vers sa position verticale après un contact accidentel.\u003c\/li\u003e\n\u003cli\u003eLes options avec message imprimé utilisent une feuille rétroréfléchissante à haute intensité pour une meilleure visibilité lorsqu’elle est éclairée.\u003c\/li\u003e\n\u003cli\u003eCadre étroit et ensemble panneau amovible pour l’installation, le remplacement et le rangement.\u003c\/li\u003e\n\u003cli\u003eBase avec trous d’ancrage pour fixation sur une surface adaptée.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eChoisissez votre panneau\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003eSans panneau : deux supports sans feuille de signalisation imprimée.\u003c\/li\u003e\n\u003cli\u003eStationnement ADA : le visuel de stationnement ADA présenté sur les images du produit.\u003c\/li\u003e\n\u003cli\u003eStationnement avec voiturier.\u003c\/li\u003e\n\u003cli\u003ePassage pour piétons.\u003c\/li\u003e\n\u003cli\u003eInterdiction de stationner.\u003c\/li\u003e\n\u003cli\u003eStationnement.\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003eLe texte et les graphiques fournis correspondent à la variante sélectionnée. L’option « Stationnement ADA » décrit le visuel ; elle ne certifie pas la conformité aux exigences européennes en matière d’accessibilité ou de signalisation routière.\u003c\/p\u003e\u003ch2\u003eCaractéristiques\u003c\/h2\u003e\u003cdiv style=\"overflow-x:auto\"\u003e\u003ctable\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eQuantité par lot\u003c\/th\u003e\n\u003ctd\u003e2 supports de panneau de stationnement à rappel par ressort\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eHauteur totale\u003c\/th\u003e\n\u003ctd\u003eEnviron 112 cm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eLargeur maximale du cadre\u003c\/th\u003e\n\u003ctd\u003eEnviron 241 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eDimensions de la feuille du panneau\u003c\/th\u003e\n\u003ctd\u003eEnviron 838 × 216 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eLargeur de la base\u003c\/th\u003e\n\u003ctd\u003eEnviron 203 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eCouleur du cadre et de la base\u003c\/th\u003e\n\u003ctd\u003eNoir\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth scope=\"row\"\u003eInstallation\u003c\/th\u003e\n\u003ctd\u003eBase à montage en surface avec trous d’ancrage\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/div\u003e\u003ch2\u003eInstallation et utilisation\u003c\/h2\u003e\u003cp\u003eChoisissez des fixations adaptées à la surface d’installation et aux conditions du site. L’option « Sans panneau » ne comporte aucune feuille avec message imprimé. Les options imprimées sont fournies dans le design sélectionné. Ce produit est destiné au guidage dans les parkings et les installations et n’est pas présenté comme un dispositif de chantier homologué contre les chocs.\u003c\/p\u003e\n\u003c!-- ORANLITE_US_TIKTOK_IMPORT_20261001_START --\u003e\n\u003csection id=\"oranlite-vertical-panel-message-slider\" data-oranlite-tiktok-slider=\"vertical-panel-messages\" aria-labelledby=\"oranlite-vertical-panel-message-heading\"\u003e\n \u003cstyle\u003e\n    #oranlite-vertical-panel-message-slider {\n      --oranlite-ink: #222;\n      --oranlite-muted: #626262;\n      --oranlite-line: #d7d7d7;\n      margin: 32px 0;\n    }\n\n    #oranlite-vertical-panel-message-slider * {\n      box-sizing: border-box;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-slider-intro {\n      margin-bottom: 22px;\n    }\n\n    #oranlite-vertical-panel-message-slider h2 {\n      margin: 0 0 8px;\n      color: var(--oranlite-ink);\n      font-size: 24px;\n      line-height: 1.25;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-slider-intro p,\n    #oranlite-vertical-panel-message-slider .oranlite-slide-copy {\n      margin: 0;\n      color: var(--oranlite-muted);\n      line-height: 1.55;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-slider-layout {\n      display: grid;\n      grid-template-columns: minmax(260px, 400px) minmax(220px, 1fr);\n      gap: 28px;\n      align-items: center;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-player {\n      position: relative;\n      width: 100%;\n      max-width: 400px;\n      margin: 0 auto;\n      aspect-ratio: 9 \/ 16;\n      overflow: hidden;\n      border-radius: 6px;\n      background: #000;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-player iframe {\n      position: absolute;\n      inset: 0;\n      width: 100%;\n      height: 100%;\n      border: 0;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-slide-kicker {\n      margin: 0 0 6px;\n      color: var(--oranlite-muted);\n      font-size: 13px;\n      font-weight: 700;\n      letter-spacing: 0;\n      text-transform: uppercase;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-slide-title {\n      margin: 0 0 8px;\n      color: var(--oranlite-ink);\n      font-size: 22px;\n      line-height: 1.25;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-video-tabs {\n      display: grid;\n      gap: 8px;\n      margin: 22px 0;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-video-tab {\n      display: flex;\n      width: 100%;\n      min-height: 46px;\n      align-items: center;\n      gap: 10px;\n      padding: 10px 12px;\n      border: 1px solid var(--oranlite-line);\n      border-radius: 4px;\n      background: #fff;\n      color: var(--oranlite-ink);\n      font: inherit;\n      font-weight: 650;\n      line-height: 1.25;\n      text-align: left;\n      cursor: pointer;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-video-tab:hover {\n      border-color: #777;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-video-tab:focus-visible,\n    #oranlite-vertical-panel-message-slider .oranlite-slider-arrow:focus-visible,\n    #oranlite-vertical-panel-message-slider .oranlite-tiktok-link:focus-visible {\n      outline: 3px solid rgba(0, 104, 183, 0.35);\n      outline-offset: 2px;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-video-tab[aria-selected=\"true\"] {\n      border-color: var(--oranlite-ink);\n      background: #f5f5f5;\n      box-shadow: inset 4px 0 0 var(--tab-color);\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-color-swatch {\n      flex: 0 0 16px;\n      width: 16px;\n      height: 16px;\n      border: 1px solid rgba(0, 0, 0, 0.22);\n      border-radius: 50%;\n      background: var(--tab-color);\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-slider-controls {\n      display: grid;\n      grid-template-columns: 44px 1fr 44px;\n      gap: 10px;\n      align-items: center;\n      margin-top: 18px;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-slider-arrow {\n      display: inline-flex;\n      width: 44px;\n      height: 44px;\n      align-items: center;\n      justify-content: center;\n      padding: 0;\n      border: 1px solid var(--oranlite-ink);\n      border-radius: 4px;\n      background: #fff;\n      color: var(--oranlite-ink);\n      font: inherit;\n      font-size: 24px;\n      line-height: 1;\n      cursor: pointer;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-slider-arrow:hover {\n      background: var(--oranlite-ink);\n      color: #fff;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-slide-counter {\n      color: var(--oranlite-muted);\n      font-variant-numeric: tabular-nums;\n      text-align: center;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-tiktok-link-wrap {\n      margin: 16px 0 0;\n      text-align: center;\n    }\n\n    #oranlite-vertical-panel-message-slider .oranlite-tiktok-link {\n      color: var(--oranlite-ink);\n      font-weight: 700;\n      text-underline-offset: 3px;\n    }\n\n    @media (max-width: 699px) {\n      #oranlite-vertical-panel-message-slider {\n        margin: 28px 0;\n      }\n\n      #oranlite-vertical-panel-message-slider .oranlite-slider-layout {\n        grid-template-columns: minmax(0, 1fr);\n        gap: 22px;\n      }\n\n      #oranlite-vertical-panel-message-slider .oranlite-slider-details {\n        min-width: 0;\n      }\n\n      #oranlite-vertical-panel-message-slider .oranlite-video-tabs {\n        display: flex;\n        width: 100%;\n        gap: 8px;\n        overflow-x: auto;\n        overscroll-behavior-inline: contain;\n        padding: 2px 2px 8px;\n        scroll-snap-type: inline mandatory;\n        scrollbar-width: thin;\n        -webkit-overflow-scrolling: touch;\n      }\n\n      #oranlite-vertical-panel-message-slider .oranlite-video-tab {\n        flex: 0 0 auto;\n        width: auto;\n        min-width: max-content;\n        scroll-snap-align: start;\n      }\n\n      #oranlite-vertical-panel-message-slider .oranlite-video-tab[aria-selected=\"true\"] {\n        box-shadow: inset 0 -4px 0 var(--tab-color);\n      }\n    }\n  \u003c\/style\u003e\n \u003cdiv class=\"oranlite-slider-intro\"\u003e\n \u003ch2 id=\"oranlite-vertical-panel-message-heading\"\u003eDécouvrez les cinq messages de panneau en action\u003c\/h2\u003e\n \u003cp\u003eSélectionnez un message pour regarder la démonstration de son produit. Le style de base se sélectionne séparément.\u003c\/p\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"oranlite-slider-layout\"\u003e\n \u003cdiv class=\"oranlite-player\" id=\"oranlite-vertical-panel-message-player\"\u003e\n \u003ciframe data-role=\"player\" src=\"https:\/\/www.tiktok.com\/player\/v1\/7687327573180828958?controls=1\u0026amp;description=0\u0026amp;rel=0\u0026amp;autoplay=0\" title=\"OranLite Pedestrian Crosswalk vertical traffic panel sign demonstration\" loading=\"lazy\" allow=\"fullscreen; autoplay; encrypted-media; picture-in-picture\" allowfullscreen\u003e\u003c\/iframe\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"oranlite-slider-details\" aria-live=\"polite\"\u003e\n \u003cp class=\"oranlite-slide-kicker\"\u003eMessage actuel\u003c\/p\u003e\n \u003ch3 class=\"oranlite-slide-title\" data-role=\"title\"\u003ePanneau de passage pour piétons\u003c\/h3\u003e\n \u003cp class=\"oranlite-slide-copy\" data-role=\"copy\"\u003eAide à avertir les conducteurs de la présence de zones de traversée pour piétons dans les parkings et les zones de circulation réglementées.\u003c\/p\u003e\n \u003cdiv class=\"oranlite-video-tabs\" role=\"tablist\" aria-label=\"Choose a traffic panel sign video\"\u003e\n \u003cbutton class=\"oranlite-video-tab\" type=\"button\" role=\"tab\" aria-selected=\"true\" aria-controls=\"oranlite-vertical-panel-message-player\" data-slide-index=\"0\" style=\"--tab-color: #f2c300;\"\u003e\n \u003cspan class=\"oranlite-color-swatch\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n \u003cspan\u003ePassage pour piétons\u003c\/span\u003e\n \u003c\/button\u003e\n \u003cbutton class=\"oranlite-video-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"oranlite-vertical-panel-message-player\" data-slide-index=\"1\" tabindex=\"-1\" style=\"--tab-color: #222222;\"\u003e\n \u003cspan class=\"oranlite-color-swatch\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n \u003cspan\u003eStationnement avec voiturier\u003c\/span\u003e\n \u003c\/button\u003e\n \u003cbutton class=\"oranlite-video-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"oranlite-vertical-panel-message-player\" data-slide-index=\"2\" tabindex=\"-1\" style=\"--tab-color: #d92027;\"\u003e\n \u003cspan class=\"oranlite-color-swatch\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n \u003cspan\u003eInterdiction de stationner\u003c\/span\u003e\n \u003c\/button\u003e\n \u003cbutton class=\"oranlite-video-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"oranlite-vertical-panel-message-player\" data-slide-index=\"3\" tabindex=\"-1\" style=\"--tab-color: #1f8a4c;\"\u003e\n \u003cspan class=\"oranlite-color-swatch\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n \u003cspan\u003eStationnement\u003c\/span\u003e\n \u003c\/button\u003e\n \u003cbutton class=\"oranlite-video-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"oranlite-vertical-panel-message-player\" data-slide-index=\"4\" tabindex=\"-1\" style=\"--tab-color: #1f67c1;\"\u003e\n \u003cspan class=\"oranlite-color-swatch\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n \u003cspan\u003eStationnement ADA\u003c\/span\u003e\n \u003c\/button\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"oranlite-slider-controls\" aria-label=\"Video slideshow controls\"\u003e\n \u003cbutton class=\"oranlite-slider-arrow\" type=\"button\" data-action=\"previous\" aria-label=\"Previous video\" title=\"Previous video\"\u003e←\u003c\/button\u003e\n \u003cspan class=\"oranlite-slide-counter\" data-role=\"counter\" aria-live=\"polite\"\u003e1 \/ 5\u003c\/span\u003e\n \u003cbutton class=\"oranlite-slider-arrow\" type=\"button\" data-action=\"next\" aria-label=\"Next video\" title=\"Next video\"\u003e→\u003c\/button\u003e\n \u003c\/div\u003e\n \u003cp class=\"oranlite-tiktok-link-wrap\"\u003e\u003ca class=\"oranlite-tiktok-link\" data-role=\"link\" href=\"https:\/\/www.tiktok.com\/@oranlite\/video\/7687327573180828958\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRegarder sur TikTok\u003c\/a\u003e\u003c\/p\u003e\n \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cscript\u003e\n    (() =\u003e {\n      const root = document.getElementById(\"oranlite-vertical-panel-message-slider\");\n      if (!root || root.dataset.initialized === \"true\") return;\n      root.dataset.initialized = \"true\";\n\n      const slides = [\n        {\n          id: \"7687327573180828958\",\n          label: \"Pedestrian Crosswalk Sign\",\n          copy: \"Helps alert drivers to pedestrian crossing areas in parking lots and managed traffic zones.\",\n          frameTitle: \"OranLite Pedestrian Crosswalk vertical traffic panel sign demonstration\"\n        },\n        {\n          id: \"7687327825447128350\",\n          label: \"Valet Parking Sign\",\n          copy: \"Directs drivers to valet parking service areas at hotels, restaurants, venues, and parking facilities.\",\n          frameTitle: \"OranLite Valet Parking vertical traffic panel sign demonstration\"\n        },\n        {\n          id: \"7687330008334896414\",\n          label: \"No Parking Sign\",\n          copy: \"Marks restricted parking areas and helps keep access points, lanes, and reserved spaces clear.\",\n          frameTitle: \"OranLite No Parking vertical traffic panel sign demonstration\"\n        },\n        {\n          id: \"7687383385181932830\",\n          label: \"Park Sign\",\n          copy: \"Guides drivers toward designated parking areas at commercial, residential, and event locations.\",\n          frameTitle: \"OranLite Park vertical traffic panel sign demonstration\"\n        },\n        {\n          id: \"7687383838359588127\",\n          label: \"ADA Parking Sign\",\n          copy: \"Identifies accessible parking areas with a clear, highly visible parking message.\",\n          frameTitle: \"OranLite ADA Parking vertical traffic panel sign demonstration\"\n        }\n      ];\n\n      const frame = root.querySelector(\"[data-role='player']\");\n      const title = root.querySelector(\"[data-role='title']\");\n      const copy = root.querySelector(\"[data-role='copy']\");\n      const link = root.querySelector(\"[data-role='link']\");\n      const counter = root.querySelector(\"[data-role='counter']\");\n      const tabs = Array.from(root.querySelectorAll(\"[data-slide-index]\"));\n      let index = 0;\n\n      function render(nextIndex, bringTabIntoView) {\n        index = (nextIndex + slides.length) % slides.length;\n        const slide = slides[index];\n\n        title.textContent = slide.label;\n        copy.textContent = slide.copy;\n        frame.title = slide.frameTitle;\n        if (!frame.src.includes(slide.id)) {\n          frame.src = `https:\/\/www.tiktok.com\/player\/v1\/${slide.id}?controls=1\u0026description=0\u0026rel=0\u0026autoplay=0`;\n        }\n        link.href = `https:\/\/www.tiktok.com\/@oranlite\/video\/${slide.id}`;\n        counter.textContent = `${index + 1} \/ ${slides.length}`;\n\n        tabs.forEach((tab, tabIndex) =\u003e {\n          const isActive = tabIndex === index;\n          tab.setAttribute(\"aria-selected\", isActive ? \"true\" : \"false\");\n          tab.tabIndex = isActive ? 0 : -1;\n        });\n\n        if (bringTabIntoView) {\n          tabs[index].scrollIntoView({ behavior: \"smooth\", block: \"nearest\", inline: \"center\" });\n        }\n      }\n\n      tabs.forEach((tab) =\u003e {\n        tab.addEventListener(\"click\", () =\u003e render(Number(tab.dataset.slideIndex), true));\n      });\n\n      root.querySelector(\"[data-action='previous']\").addEventListener(\"click\", () =\u003e render(index - 1, true));\n      root.querySelector(\"[data-action='next']\").addEventListener(\"click\", () =\u003e render(index + 1, true));\n\n      root.addEventListener(\"keydown\", (event) =\u003e {\n        if (event.key === \"ArrowLeft\") {\n          event.preventDefault();\n          render(index - 1, true);\n        }\n        if (event.key === \"ArrowRight\") {\n          event.preventDefault();\n          render(index + 1, true);\n        }\n      });\n\n      render(0, false);\n    })();\n  \u003c\/script\u003e\n\u003c\/section\u003e\n\u003csection id=\"oranlite-vertical-panel-base-slider\" data-oranlite-tiktok-slider=\"vertical-panel-bases\" aria-labelledby=\"oranlite-vertical-panel-base-heading\"\u003e\n \u003cstyle\u003e\n    #oranlite-vertical-panel-base-slider {\n      --oranlite-ink: #222;\n      --oranlite-muted: #626262;\n      --oranlite-line: #d7d7d7;\n      margin: 32px 0;\n    }\n\n    #oranlite-vertical-panel-base-slider * {\n      box-sizing: border-box;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-slider-intro {\n      margin-bottom: 22px;\n    }\n\n    #oranlite-vertical-panel-base-slider h2 {\n      margin: 0 0 8px;\n      color: var(--oranlite-ink);\n      font-size: 24px;\n      line-height: 1.25;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-slider-intro p,\n    #oranlite-vertical-panel-base-slider .oranlite-base-slide-copy {\n      margin: 0;\n      color: var(--oranlite-muted);\n      line-height: 1.55;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-slider-layout {\n      display: grid;\n      grid-template-columns: minmax(260px, 400px) minmax(220px, 1fr);\n      gap: 28px;\n      align-items: center;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-player {\n      position: relative;\n      width: 100%;\n      max-width: 400px;\n      margin: 0 auto;\n      aspect-ratio: 9 \/ 16;\n      overflow: hidden;\n      border-radius: 6px;\n      background: #000;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-player iframe {\n      position: absolute;\n      inset: 0;\n      width: 100%;\n      height: 100%;\n      border: 0;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-slide-kicker {\n      margin: 0 0 6px;\n      color: var(--oranlite-muted);\n      font-size: 13px;\n      font-weight: 700;\n      letter-spacing: 0;\n      text-transform: uppercase;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-slide-title {\n      margin: 0 0 8px;\n      color: var(--oranlite-ink);\n      font-size: 22px;\n      line-height: 1.25;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-video-tabs {\n      display: grid;\n      gap: 8px;\n      margin: 22px 0;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-video-tab {\n      display: flex;\n      width: 100%;\n      min-height: 46px;\n      align-items: center;\n      gap: 10px;\n      padding: 10px 12px;\n      border: 1px solid var(--oranlite-line);\n      border-radius: 4px;\n      background: #fff;\n      color: var(--oranlite-ink);\n      font: inherit;\n      font-weight: 650;\n      line-height: 1.25;\n      text-align: left;\n      cursor: pointer;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-video-tab:hover {\n      border-color: #777;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-video-tab:focus-visible,\n    #oranlite-vertical-panel-base-slider .oranlite-base-slider-arrow:focus-visible,\n    #oranlite-vertical-panel-base-slider .oranlite-base-tiktok-link:focus-visible {\n      outline: 3px solid rgba(0, 104, 183, 0.35);\n      outline-offset: 2px;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-video-tab[aria-selected=\"true\"] {\n      border-color: var(--oranlite-ink);\n      background: #f5f5f5;\n      box-shadow: inset 4px 0 0 var(--tab-color);\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-swatch {\n      flex: 0 0 16px;\n      width: 16px;\n      height: 16px;\n      border: 1px solid rgba(0, 0, 0, 0.22);\n      border-radius: 50%;\n      background: var(--tab-color);\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-slider-controls {\n      display: grid;\n      grid-template-columns: 44px 1fr 44px;\n      gap: 10px;\n      align-items: center;\n      margin-top: 18px;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-slider-arrow {\n      display: inline-flex;\n      width: 44px;\n      height: 44px;\n      align-items: center;\n      justify-content: center;\n      padding: 0;\n      border: 1px solid var(--oranlite-ink);\n      border-radius: 4px;\n      background: #fff;\n      color: var(--oranlite-ink);\n      font: inherit;\n      font-size: 24px;\n      line-height: 1;\n      cursor: pointer;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-slider-arrow:hover {\n      background: var(--oranlite-ink);\n      color: #fff;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-slide-counter {\n      color: var(--oranlite-muted);\n      font-variant-numeric: tabular-nums;\n      text-align: center;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-tiktok-link-wrap {\n      margin: 16px 0 0;\n      text-align: center;\n    }\n\n    #oranlite-vertical-panel-base-slider .oranlite-base-tiktok-link {\n      color: var(--oranlite-ink);\n      font-weight: 700;\n      text-underline-offset: 3px;\n    }\n\n    @media (max-width: 699px) {\n      #oranlite-vertical-panel-base-slider {\n        margin: 28px 0;\n      }\n\n      #oranlite-vertical-panel-base-slider .oranlite-base-slider-layout {\n        grid-template-columns: minmax(0, 1fr);\n        gap: 22px;\n      }\n\n      #oranlite-vertical-panel-base-slider .oranlite-base-slider-details {\n        min-width: 0;\n      }\n\n      #oranlite-vertical-panel-base-slider .oranlite-base-video-tabs {\n        display: grid;\n        grid-template-columns: minmax(0, 1fr);\n        width: 100%;\n      }\n\n      #oranlite-vertical-panel-base-slider .oranlite-base-video-tab[aria-selected=\"true\"] {\n        box-shadow: inset 4px 0 0 var(--tab-color);\n      }\n    }\n  \u003c\/style\u003e\n \u003cdiv class=\"oranlite-base-slider-intro\"\u003e\n \u003ch2 id=\"oranlite-vertical-panel-base-heading\"\u003eComparez les options de base en action\u003c\/h2\u003e\n \u003cp\u003eBasculez entre les démonstrations des bases et celle du panneau « Interdiction de stationner ». Le message du panneau et la base sont sélectionnés séparément.\u003c\/p\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"oranlite-base-slider-layout\"\u003e\n \u003cdiv class=\"oranlite-base-player\" id=\"oranlite-vertical-panel-base-player\"\u003e\n \u003ciframe data-role=\"player\" src=\"https:\/\/www.tiktok.com\/player\/v1\/7686521804805967134?controls=1\u0026amp;description=0\u0026amp;rel=0\u0026amp;autoplay=0\" title=\"OranLite vertical traffic panel with surface mount fixed base\" loading=\"lazy\" allow=\"fullscreen; autoplay; encrypted-media; picture-in-picture\" allowfullscreen\u003e\u003c\/iframe\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"oranlite-base-slider-details\" aria-live=\"polite\"\u003e\n \u003cp class=\"oranlite-base-slide-kicker\"\u003eDémonstration actuelle\u003c\/p\u003e\n \u003ch3 class=\"oranlite-base-slide-title\" data-role=\"title\"\u003eBase fixe à montage en surface\u003c\/h3\u003e\n \u003cp class=\"oranlite-base-slide-copy\" data-role=\"copy\"\u003eUne configuration à base fixe et à profil bas pour une installation permanente.\u003c\/p\u003e\n \u003cdiv class=\"oranlite-base-video-tabs\" role=\"tablist\" aria-label=\"Choose a traffic panel demonstration video\"\u003e\n \u003cbutton class=\"oranlite-base-video-tab\" type=\"button\" role=\"tab\" aria-selected=\"true\" aria-controls=\"oranlite-vertical-panel-base-player\" data-slide-index=\"0\" style=\"--tab-color: #333333;\"\u003e\n \u003cspan class=\"oranlite-base-swatch\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n \u003cspan\u003eBase fixe à montage en surface\u003c\/span\u003e\n \u003c\/button\u003e\n \u003cbutton class=\"oranlite-base-video-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"oranlite-vertical-panel-base-player\" data-slide-index=\"1\" tabindex=\"-1\" style=\"--tab-color: #f36b21;\"\u003e\n \u003cspan class=\"oranlite-base-swatch\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n \u003cspan\u003eBase remplie d’eau\u003c\/span\u003e\n \u003c\/button\u003e\n \u003cbutton class=\"oranlite-base-video-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-controls=\"oranlite-vertical-panel-base-player\" data-slide-index=\"2\" tabindex=\"-1\" style=\"--tab-color: #d92828;\"\u003e\n \u003cspan class=\"oranlite-base-swatch\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n \u003cspan\u003eDémonstration du panneau « Interdiction de stationner »\u003c\/span\u003e\n \u003c\/button\u003e\n \u003c\/div\u003e\n \u003cdiv class=\"oranlite-base-slider-controls\" aria-label=\"Product video slideshow controls\"\u003e\n \u003cbutton class=\"oranlite-base-slider-arrow\" type=\"button\" data-action=\"previous\" aria-label=\"Previous product video\" title=\"Previous product video\"\u003e←\u003c\/button\u003e\n \u003cspan class=\"oranlite-base-slide-counter\" data-role=\"counter\" aria-live=\"polite\"\u003e1 \/ 3\u003c\/span\u003e\n \u003cbutton class=\"oranlite-base-slider-arrow\" type=\"button\" data-action=\"next\" aria-label=\"Next product video\" title=\"Next product video\"\u003e→\u003c\/button\u003e\n \u003c\/div\u003e\n \u003cp class=\"oranlite-base-tiktok-link-wrap\"\u003e\u003ca class=\"oranlite-base-tiktok-link\" data-role=\"link\" href=\"https:\/\/www.tiktok.com\/@oranlite\/video\/7686521804805967134\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRegarder sur TikTok\u003c\/a\u003e\u003c\/p\u003e\n \u003c\/div\u003e\n \u003c\/div\u003e\n \u003cscript\u003e\n    (() =\u003e {\n      const root = document.getElementById(\"oranlite-vertical-panel-base-slider\");\n      if (!root || root.dataset.initialized === \"true\") return;\n      root.dataset.initialized = \"true\";\n\n      const slides = [\n        {\n          id: \"7686521804805967134\",\n          account: \"oranlite\",\n          label: \"Surface Mount Fixed Base\",\n          copy: \"A low-profile fixed-base configuration for permanent placement.\",\n          frameTitle: \"OranLite vertical traffic panel with surface mount fixed base\"\n        },\n        {\n          id: \"7686525081756912927\",\n          account: \"eastseagroupltd\",\n          label: \"Water-Filled Base\",\n          copy: \"A portable base configuration that can be filled for added stability.\",\n          frameTitle: \"OranLite vertical traffic panel with water-filled base\"\n        },\n        {\n          id: \"7688907696296217886\",\n          account: \"oranlite\",\n          label: \"No Parking Sign Demo\",\n          copy: \"See the highly visible No Parking sign panel in a real product demonstration.\",\n          frameTitle: \"OranLite No Parking vertical traffic panel sign demonstration\"\n        }\n      ];\n\n      const frame = root.querySelector(\"[data-role='player']\");\n      const title = root.querySelector(\"[data-role='title']\");\n      const copy = root.querySelector(\"[data-role='copy']\");\n      const link = root.querySelector(\"[data-role='link']\");\n      const counter = root.querySelector(\"[data-role='counter']\");\n      const tabs = Array.from(root.querySelectorAll(\"[data-slide-index]\"));\n      let index = 0;\n\n      function render(nextIndex) {\n        index = (nextIndex + slides.length) % slides.length;\n        const slide = slides[index];\n\n        title.textContent = slide.label;\n        copy.textContent = slide.copy;\n        frame.title = slide.frameTitle;\n        if (!frame.src.includes(slide.id)) {\n          frame.src = `https:\/\/www.tiktok.com\/player\/v1\/${slide.id}?controls=1\u0026description=0\u0026rel=0\u0026autoplay=0`;\n        }\n        link.href = `https:\/\/www.tiktok.com\/@${slide.account}\/video\/${slide.id}`;\n        counter.textContent = `${index + 1} \/ ${slides.length}`;\n\n        tabs.forEach((tab, tabIndex) =\u003e {\n          const isActive = tabIndex === index;\n          tab.setAttribute(\"aria-selected\", isActive ? \"true\" : \"false\");\n          tab.tabIndex = isActive ? 0 : -1;\n        });\n      }\n\n      tabs.forEach((tab) =\u003e {\n        tab.addEventListener(\"click\", () =\u003e render(Number(tab.dataset.slideIndex)));\n      });\n\n      root.querySelector(\"[data-action='previous']\").addEventListener(\"click\", () =\u003e render(index - 1));\n      root.querySelector(\"[data-action='next']\").addEventListener(\"click\", () =\u003e render(index + 1));\n\n      root.addEventListener(\"keydown\", (event) =\u003e {\n        if (event.key === \"ArrowLeft\") {\n          event.preventDefault();\n          render(index - 1);\n        }\n        if (event.key === \"ArrowRight\") {\n          event.preventDefault();\n          render(index + 1);\n        }\n      });\n\n      render(0);\n    })();\n  \u003c\/script\u003e\n\u003c\/section\u003e\n\u003c!-- ORANLITE_US_TIKTOK_IMPORT_20261001_END --\u003e","brand":"Oranlite Europe","offers":[{"title":"Fiche sans signature","offer_id":67617493549250,"sku":"DH-VB-17X4","price":59.55,"currency_code":"EUR","in_stock":true},{"title":"Stationnement ADA","offer_id":67617493582018,"sku":"DH-VB-17X4-ADA","price":64.76,"currency_code":"EUR","in_stock":true},{"title":"Service de voiturier","offer_id":67617493614786,"sku":"DH-VB-17X4-VALETT","price":64.76,"currency_code":"EUR","in_stock":true},{"title":"Passage pour piétons","offer_id":67617493647554,"sku":"DH-VB-17X4-CROSS","price":69.73,"currency_code":"EUR","in_stock":true},{"title":"Stationnement interdit","offer_id":67617493680322,"sku":"DH-VB-17X4-NOPARK","price":64.76,"currency_code":"EUR","in_stock":true},{"title":"Stationnement","offer_id":67617493713090,"sku":"DH-VB-17X4-PARK","price":64.76,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0714\/4092\/4866\/files\/DH-VB-16X2-01.jpg?v=1790859897","url":"https:\/\/www.oranlite.eu\/fr-fr\/products\/spring-back-parking-sign-stands-112cm-2-pack","provider":"Oranlite Europe","version":"1.0","type":"link"}