{"title":"New products Special One","description":"","products":[{"product_id":"chunker-yulia-14-dents-special-one","title":"Chunker Yulia 14 Teeth Special One","description":"\u003cp\u003e 14 teeth \u003c\/p\u003e \u003cbr\u003e \u003cp\u003e Comfortable model with wide teeth, suitable for all types of coats It is perfect for finishing the curly coats of Bichon and Poodles; roughing of English cocker spaniel fringes and coarse woolly hair only for expert groomers ergonomic handle `` offset '' length 7 inches 12 teeth (80% cut) Japanese steel Hitachi C440 \u003c\/p\u003e","brand":"PetDesign shop","offers":[{"title":"Default Title","offer_id":37819997618355,"sku":"SO-YULIA","price":330.98,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/chunker-yulia-14-dents-special-one.jpg?v=1793140006"},{"product_id":"27-dents-lizard-ciseaux-thinners-special-one","title":"27 Teeth Lizard - Special One Thinners Scissors","description":"\u003cp\u003e 7 \"\u0026 27 Teeth \u003c\/p\u003e","brand":"PetDesign shop","offers":[{"title":"Default Title","offer_id":37819998077107,"sku":"SO-LIZARD","price":223.62,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/27-dents-lizard-ciseaux-thinners-special-one.png?v=1793140006"},{"product_id":"gaucher-satin-85-ciseaux-droits-special-one","title":"Left Handed Satin 8.5 \"- Straight Scissors Special One","description":"\u003cp\u003e 21.5CM \u003c\/p\u003e","brand":"PetDesign shop","offers":[{"title":"Default Title","offer_id":37819998372019,"sku":"SO-SATIN-LEFT","price":223.62,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/gaucher-satin-8-5-ciseaux-droits-special-one.png?v=1793140033"},{"product_id":"ciseaux-courbes-toiletteur-microdenture-specifique-par-special-one-1","title":"Left Handed Sculptors 38 Teeth Satin - Sculptor Scissors Special One","description":"\u003cp\u003e 7 \"\u0026 38 Teeth \u003c\/p\u003e","brand":"PetDesign shop","offers":[{"title":"Default Title","offer_id":37819998765235,"sku":"SO-T38-LEFT","price":298.04,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/gaucher-sculpteurs-38-dents-satin-ciseaux-sculpteur-special-one.png?v=1793140033"},{"product_id":"ciseaux-coarse-special-one-chunker","title":"12 Teeth - Coarse 7 \"- Chunker Special One Scissors","description":"Comfortable model with wide teeth, suitable for all types of fur \u003cbr data-mce-fragment=\"1\"\u003e \u003cbr data-mce-fragment=\"1\"\u003e Perfect for finishing curly coats of Bichons and Poodles; to trim the fringes of English Cockers and semi-hard, woolly coats \u003cbr data-mce-fragment=\"1\"\u003e \u003cbr data-mce-fragment=\"1\"\u003e Ideal for experienced groomers \u003cbr data-mce-fragment=\"1\"\u003e \u003cbr data-mce-fragment=\"1\"\u003e Ergonomic handle Offset \u003cbr data-mce-fragment=\"1\"\u003e \u003cbr data-mce-fragment=\"1\"\u003e Length 7 inches \u003cbr data-mce-fragment=\"1\"\u003e \u003cbr data-mce-fragment=\"1\"\u003e 12 teeth (80% cut) \u003cbr data-mce-fragment=\"1\"\u003e \u003cbr data-mce-fragment=\"1\"\u003e Hitachi C440 Japanese steel","brand":"PetDesign shop","offers":[{"title":"Default Title","offer_id":39479855415475,"sku":"SO-COARSE","price":223.62,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/12-dents-coarse-7-ciseaux-chunker-special-one.png?v=1793144576"},{"product_id":"4poodle-shampoing-caniche-special-one","title":"4Poodle - Special Edition - Straightens and Volumizes","description":"\u003c!-- ============================================== DESIGN SYSTEM — Visual Refinement ============================================= --\u003e  \u003cstyle id=\"aqr-design-system\"\u003e\n  \/* On garde la police du theme Shopify - juste antialiasing pour le rendu *\/\n  body, body * {\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n  \n  \/* === Variables du système de design === *\/\n  :root {\n    --ds-black: #1d1d1f;        \/* Noir doux — légèrement plus chaud que le noir pur *\/\n    --ds-text: #1d1d1f;\n    --ds-text-secondary: #86868b; \/* Gris secondaire *\/\n    --ds-text-tertiary: #a1a1a6;\n    --ds-bg: #ffffff;\n    --ds-bg-elevated: #fbfbfd;   \/* Gris très clair *\/\n    --ds-bg-soft: #f5f5f7;       \/* Gris très clair *\/\n    --ds-border: #d2d2d7;\n    --ds-border-soft: #e8e8ed;\n    --ds-gold: #c2a85c;          \/* Or subtil et mat *\/\n    --ds-gold-pale: #f0e6cf;\n    --ds-radius-sm: 8px;\n    --ds-radius-md: 12px;\n    --ds-radius-lg: 18px;\n    --ds-radius-xl: 22px;\n    --ds-ease: cubic-bezier(0.16, 1, 0.3, 1);\n    --ds-duration: 0.35s;\n  }\n\n  \/* === Couleurs noir \/ doré === *\/\n  \/* Cards expertise (Proposition D) *\/\n  .aqr-benefit-card {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    border-radius: var(--ds-radius-md) !important;\n    padding: 18px 20px !important;\n    transition: transform var(--ds-duration) var(--ds-ease),\n                box-shadow var(--ds-duration) var(--ds-ease),\n                border-color var(--ds-duration) var(--ds-ease) !important;\n    \/* Force l'alignement haut de chaque card dans la grille *\/\n    align-self: stretch !important;\n    margin: 0 !important;\n    vertical-align: top !important;\n  }\n  .aqr-benefits-grid {\n    align-items: start !important;\n    align-content: start !important;\n  }\n  \/* MEME chose pour les audience cards et autres grilles *\/\n  .aqr-audience-grid {\n    align-items: start !important;\n    align-content: start !important;\n  }\n  .aqr-audience-card {\n    align-self: stretch !important;\n    margin: 0 !important;\n  }\n  .aqr-benefit-card::before {\n    background: var(--ds-text) !important;\n    width: 3px !important;\n  }\n  .aqr-benefit-card:hover {\n    background: var(--ds-bg) !important;\n    transform: translateY(-2px);\n    box-shadow: 0 8px 24px rgba(0,0,0,0.06);\n    border-color: var(--ds-border) !important;\n  }\n  .aqr-benefit-card:hover::before {\n    width: 3px !important;\n    background: var(--ds-gold) !important;\n  }\n  .aqr-benefit-corner {\n    width: 14px !important;\n    height: 14px !important;\n    background: linear-gradient(225deg, var(--ds-gold-pale) 50%, transparent 50%) !important;\n    border-top-right-radius: var(--ds-radius-md) !important;\n  }\n  .aqr-benefit-icon {\n    background: var(--ds-text) !important;\n    color: var(--ds-gold) !important;\n    border-radius: var(--ds-radius-sm) !important;\n  }\n  .aqr-benefit-title {\n    color: var(--ds-text) !important;\n    font-weight: 600 !important;\n    letter-spacing: -0.01em !important;\n    font-size: 14px !important;\n  }\n  .aqr-benefit-desc {\n    color: var(--ds-text-secondary) !important;\n    font-size: 12px !important;\n    line-height: 1.55 !important;\n  }\n\n  \/* === Cards Audience === *\/\n  .aqr-audience-card {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    border-radius: var(--ds-radius-md) !important;\n    padding: 18px 12px !important;\n    transition: transform var(--ds-duration) var(--ds-ease),\n                box-shadow var(--ds-duration) var(--ds-ease),\n                border-color var(--ds-duration) var(--ds-ease) !important;\n  }\n  .aqr-audience-card:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 8px 24px rgba(0,0,0,0.06);\n    border-color: var(--ds-border) !important;\n  }\n  .aqr-audience-icon {\n    background: var(--ds-bg-soft) !important;\n    border-radius: 50% !important;\n    width: 44px !important;\n    height: 44px !important;\n  }\n  .aqr-audience-icon svg { stroke: var(--ds-text) !important; }\n  .aqr-audience-name {\n    color: var(--ds-text) !important;\n    font-weight: 500 !important;\n    font-size: 13px !important;\n    letter-spacing: -0.01em !important;\n  }\n\n  \/* === Eyebrows === *\/\n  span[style*=\"text-transform: uppercase\"][style*=\"color: #999\"] {\n    color: var(--ds-text-secondary) !important;\n    font-weight: 500 !important;\n    letter-spacing: 0.08em !important;\n    font-size: 11px !important;\n    margin-bottom: 18px !important;\n  }\n\n  \/* === Blocs principaux : fond uniforme === *\/\n  \/* Les blocs sur fond crème deviennent gris pâle *\/\n  div[style*=\"background-color: #FBF9F5\"] {\n    background-color: var(--ds-bg-soft) !important;\n  }\n\n  \/* === Bloc Dilution === *\/\n  .aqr-dilution {\n    border: none !important;\n    padding: 0 !important;\n    background: transparent !important;\n  }\n  \/* Forcer l'alignement haut + hauteur egale des 3 cartes dilution *\/\n  .aqr-dilution-grid {\n    align-items: stretch !important;\n  }\n  .aqr-dilution-cell {\n    align-self: stretch !important;\n    margin: 0 !important;\n  }\n  .aqr-dilution-eyebrow {\n    color: var(--ds-text-secondary) !important;\n    letter-spacing: 0.08em !important;\n    font-weight: 500 !important;\n    margin-bottom: 20px !important;\n  }\n  .aqr-dilution-eq-target {\n    background: var(--ds-text) !important;\n    color: var(--ds-bg) !important;\n    border-radius: 6px !important;\n    padding: 4px 12px !important;\n  }\n  .aqr-dilution-eq-item {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    border-radius: var(--ds-radius-sm) !important;\n    padding: 14px 8px !important;\n  }\n  .aqr-dilution-eq-val {\n    font-weight: 700 !important;\n    color: var(--ds-text) !important;\n  }\n  .aqr-dilution-eq-name {\n    color: var(--ds-text-secondary) !important;\n  }\n  .aqr-dilution-eq-sep {\n    color: var(--ds-text-tertiary) !important;\n  }\n  .aqr-dilution-eq-or span {\n    color: var(--ds-text-tertiary) !important;\n  }\n\n  \/* === Chips rendement (le trio horizontal) === *\/\n  .aqr-dilution-chips-label {\n    color: var(--ds-text-secondary) !important;\n    font-weight: 500 !important;\n    letter-spacing: 0.08em !important;\n  }\n  .aqr-dilution-chip-from,\n  .aqr-dilution-chip-to {\n    color: var(--ds-text) !important;\n  }\n  .aqr-dilution-chip-arr { color: var(--ds-gold) !important; }\n  .aqr-dilution-chips-foot { color: var(--ds-text-secondary) !important; }\n  \n  \/* === Accordeons Protocoles === *\/\n  .aqr-proto-acc {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border) !important;\n    border-radius: var(--ds-radius-md) !important;\n    overflow: hidden;\n    transition: box-shadow var(--ds-duration) var(--ds-ease) !important;\n  }\n  .aqr-proto-acc[open] {\n    box-shadow: 0 12px 32px rgba(0,0,0,0.08);\n  }\n  \/* Suppression des perforations beige du ticket *\/\n  .aqr-proto-acc::before,\n  .aqr-proto-acc::after {\n    display: none !important;\n  }\n  .aqr-proto-summary {\n    padding: 18px 56px 18px 22px !important; \/* right plus large pour le +, left aere *\/\n  }\n  .aqr-proto-title {\n    word-wrap: break-word;\n    overflow-wrap: break-word;\n    hyphens: auto;\n  }\n  @media (max-width: 600px) {\n    .aqr-proto-summary {\n      padding: 16px 50px 16px 18px !important;\n    }\n    .aqr-proto-plus {\n      right: 16px !important;\n    }\n    .aqr-proto-content {\n      padding: 4px 18px 18px !important;\n    }\n  }\n  @media (max-width: 380px) {\n    .aqr-proto-summary {\n      padding: 14px 44px 14px 14px !important;\n    }\n    .aqr-proto-plus {\n      right: 12px !important;\n    }\n    .aqr-proto-content {\n      padding: 4px 14px 16px !important;\n    }\n  }\n  .aqr-proto-title {\n    color: var(--ds-text) !important;\n    font-weight: 500 !important;\n    letter-spacing: -0.01em !important;\n    font-size: 15px !important;\n  }\n  .aqr-proto-plus {\n    border-color: var(--ds-border) !important;\n    color: var(--ds-text-secondary) !important;\n    background: transparent !important;\n    transition: transform var(--ds-duration) var(--ds-ease),\n                background var(--ds-duration) var(--ds-ease),\n                color var(--ds-duration) var(--ds-ease) !important;\n  }\n  .aqr-proto-acc[open] .aqr-proto-plus {\n    background: var(--ds-text) !important;\n    color: var(--ds-bg) !important;\n    border-color: var(--ds-text) !important;\n  }\n  .aqr-proto-content { padding: 4px 24px 22px !important; }\n  .aqr-proto-subtitle {\n    color: var(--ds-text-secondary) !important;\n    border-bottom: 1px solid var(--ds-border-soft) !important;\n  }\n  .aqr-proto-step-marker {\n    background: var(--ds-bg-soft) !important;\n    border-color: transparent !important;\n    color: var(--ds-text) !important;\n  }\n  .aqr-proto-step-title {\n    color: var(--ds-text) !important;\n    letter-spacing: 0.06em !important;\n    font-weight: 600 !important;\n  }\n  .aqr-proto-step-desc {\n    color: var(--ds-text-secondary) !important;\n  }\n\n  \/* === Associations Si → Alors === *\/\n  .aqr-assoc-intro {\n    color: var(--ds-text-secondary) !important;\n    font-size: 14px !important;\n    line-height: 1.6 !important;\n  }\n  .aqr-assoc-rule {\n    border-bottom: 1px solid var(--ds-border-soft) !important;\n    padding: 18px 4px !important;\n  }\n  .aqr-assoc-if-tag {\n    background: var(--ds-text) !important;\n    color: var(--ds-bg) !important;\n    border-radius: 4px !important;\n    font-weight: 600 !important;\n    letter-spacing: 0.04em !important;\n  }\n  .aqr-assoc-if span { color: var(--ds-text-secondary) !important; }\n  .aqr-assoc-then-arrow { color: var(--ds-gold) !important; }\n  .aqr-assoc-then strong { color: var(--ds-text) !important; }\n\n  \/* === Races (pilules) === *\/\n  .aqr-race-tag {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    color: var(--ds-text) !important;\n    font-weight: 500 !important;\n    transition: transform 0.2s var(--ds-ease), border-color 0.2s var(--ds-ease) !important;\n  }\n  .aqr-race-tag:hover {\n    transform: translateY(-1px);\n    border-color: var(--ds-border) !important;\n  }\n  .aqr-race-tag span { color: var(--ds-text-secondary) !important; }\n\n  \/* === Radar : points forts en pilules === *\/\n  .so-foot-centered-chip {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border) !important;\n    color: var(--ds-text) !important;\n    border-radius: 100px !important;\n    padding: 6px 14px !important;\n    font-weight: 500 !important;\n  }\n  .so-foot-centered-chip em {\n    color: var(--ds-gold) !important;\n  }\n  .so-foot-centered-title {\n    color: var(--ds-text-secondary) !important;\n    font-weight: 500 !important;\n    letter-spacing: 0.18em !important;\n  }\n  .so-foot-centered-line {\n    background: var(--ds-border-soft) !important;\n  }\n\n  \/* === Cartographie : ajouter de l'air === *\/\n  #aqr-carto .aqr-list-item {\n    border-radius: var(--ds-radius-sm) !important;\n    transition: background 0.2s var(--ds-ease) !important;\n  }\n  \/* Assurer la visibilite de l'image schema dans tous les contextes *\/\n  #aqr-carto .aqr-schema-wrap {\n    display: block !important;\n    visibility: visible !important;\n    opacity: 1 !important;\n    overflow: visible !important;\n  }\n  #aqr-carto .aqr-schema-img {\n    display: block !important;\n    visibility: visible !important;\n    opacity: 1 !important;\n    width: 100% !important;\n    height: auto !important;\n  }\n\n  \/* === Le grand 1\/20 — typographie plus light === *\/\n  .aqr-dilution-ratio-num {\n    color: var(--ds-text) !important;\n    font-weight: 700 !important;\n  }\n  .aqr-dilution-ratio-sub {\n    color: var(--ds-text-secondary) !important;\n  }\n\n  \/* Animations apaisees - cible seulement les elements avec transition (pas les animations) *\/\n  .aqr-audience-card,\n  .aqr-race-tag,\n  .aqr-proto-acc,\n  .aqr-proto-plus,\n  .aqr-dilution,\n  .so-foot-centered-chip {\n    transition-timing-function: var(--ds-ease) !important;\n  }\n\n  \/* === Le footer mentions === *\/\n  div[style*=\"text-transform: uppercase\"][style*=\"color: #888\"] {\n    color: var(--ds-text-tertiary) !important;\n    font-size: 10px !important;\n    letter-spacing: 0.05em !important;\n    font-weight: 500 !important;\n  }\n\u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e        \u003c!-- BLOCK 1: INTRO --\u003e      \u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e          \u003cdiv style=\"font-size: 1.1em; margin-bottom: 16px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e              \u003cstrong\u003e4POODLE PRO\u003c\/strong\u003e (pronounced \u0026quot;For Poudeul Pro\u0026quot;) is the shampoo that will revolutionize all your hair blow-drying. \u003cstrong\u003eto add volume and to straighten\u003c\/strong\u003e.  A technical innovation never before seen in animal cosmetics, which gives volume, elasticity and \u003cstrong\u003eintense keratin effect\u003c\/strong\u003e on all curly and voluminous furs.     \u003c\/div\u003e          \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eWho is this product for?\u003c\/h2\u003e          \u003cp style=\"margin-bottom: 20px; font-size: 14px;\"\u003eEveryone will find it truly useful — both for competition days and for weekly grooming baths. Its benefits aren't limited to Poodles: it extends to \u003cstrong\u003eall hair types to be straightened, volumized, or made explosive\u003c\/strong\u003e.\u003c\/p\u003e            \u003cdiv class=\"aqr-audience\"\u003e              \u003cdiv class=\"aqr-audience-grid\"\u003e                  \u003cdiv class=\"aqr-audience-card\"\u003e                      \u003cdiv class=\"aqr-audience-icon\"\u003e                          \u003csvg viewbox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"#1a1a1a\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"6\" cy=\"18\" r=\"2.5\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"18\" cy=\"18\" r=\"2.5\"\u003e\u003c\/circle\u003e\u003cpath d=\"M8 16 L20 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M16 16 L4 4\"\u003e\u003c\/path\u003e\u003ccircle cx=\"12\" cy=\"11.5\" r=\"1\" fill=\"#1a1a1a\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e                      \u003c\/div\u003e                      \u003cdiv class=\"aqr-audience-name\"\u003eGroomers\u003c\/div\u003e                  \u003c\/div\u003e                  \u003cdiv class=\"aqr-audience-card\"\u003e                      \u003cdiv class=\"aqr-audience-icon\"\u003e                          \u003csvg viewbox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"#1a1a1a\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M3 21 L3 12 L12 5 L21 12 L21 21 Z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 21 L9 15 L15 15 L15 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e                      \u003c\/div\u003e                      \u003cdiv class=\"aqr-audience-name\"\u003eLivestock farmers\u003c\/div\u003e                  \u003c\/div\u003e                  \u003cdiv class=\"aqr-audience-card\"\u003e                      \u003cdiv class=\"aqr-audience-icon\"\u003e                          \u003csvg viewbox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"#1a1a1a\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"12\" cy=\"8\" r=\"4\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 21 Q4 14 12 14 Q20 14 20 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e                      \u003c\/div\u003e                      \u003cdiv class=\"aqr-audience-name\"\u003eIndividuals\u003c\/div\u003e                  \u003c\/div\u003e                  \u003cdiv class=\"aqr-audience-card\"\u003e                      \u003cdiv class=\"aqr-audience-icon\"\u003e                          \u003csvg viewbox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"#1a1a1a\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M7 4 L17 4 L17 10 Q17 15 12 15 Q7 15 7 10 Z\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 5 L7 5 L7 9 L5 9 Q3 9 3 7 Q3 5 5 5 Z\"\u003e\u003c\/path\u003e\u003cpath d=\"M19 5 L17 5 L17 9 L19 9 Q21 9 21 7 Q21 5 19 5 Z\"\u003e\u003c\/path\u003e\u003cpath d=\"M10 15 L10 19 L14 19 L14 15\"\u003e\u003c\/path\u003e\u003cpath d=\"M8 21 L16 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e                      \u003c\/div\u003e                      \u003cdiv class=\"aqr-audience-name\"\u003eCompetitors\u003c\/div\u003e                  \u003c\/div\u003e                  \u003cdiv class=\"aqr-audience-card\"\u003e                      \u003cdiv class=\"aqr-audience-icon\"\u003e                          \u003csvg viewbox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"#1a1a1a\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"8\" cy=\"7\" r=\"3\"\u003e\u003c\/circle\u003e\u003cpath d=\"M2 21 Q2 15 8 15 Q14 15 14 21\"\u003e\u003c\/path\u003e\u003ccircle cx=\"17\" cy=\"11\" r=\"2\"\u003e\u003c\/circle\u003e\u003cpath d=\"M14 21 L14 18 Q14 15 17 15 L20 15 L20 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e                      \u003c\/div\u003e                      \u003cdiv class=\"aqr-audience-name\"\u003eHandlers\u003c\/div\u003e                  \u003c\/div\u003e              \u003c\/div\u003e          \u003c\/div\u003e            \u003cstyle\u003e\n      .aqr-audience, .aqr-audience * { box-sizing: border-box; font-family: inherit; }\n      .aqr-audience-grid {\n        display: grid;\n        grid-template-columns: repeat(5, 1fr);\n        gap: 8px;\n      }\n      .aqr-audience-card {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        gap: 8px;\n        padding: 16px 10px;\n        background: #fff;\n        border: 1px solid #e5e5e5;\n        border-radius: 8px;\n        text-align: center;\n        transition: border-color 0.2s, transform 0.2s;\n      }\n      .aqr-audience-card:hover {\n        border-color: #1a1a1a;\n        transform: translateY(-1px);\n      }\n      .aqr-audience-icon {\n        width: 40px;\n        height: 40px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: #f6f6f6;\n        border-radius: 50%;\n      }\n      .aqr-audience-name {\n        font-size: 12px;\n        font-weight: 600;\n        color: #1a1a1a;\n        line-height: 1.2;\n      }\n      @media (max-width: 700px) {\n        .aqr-audience-grid { grid-template-columns: repeat(3, 1fr); }\n      }\n      @media (max-width: 420px) {\n        .aqr-audience-grid { grid-template-columns: repeat(2, 1fr); }\n      }\n    \u003c\/style\u003e      \u003c\/div\u003e        \u003c!-- BLOCK 2: EXPERTISE \u0026  RESULTS --\u003e      \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e          \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eExpertise \u0026amp; Results\u003c\/h2\u003e          \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eThanks to \u003cstrong\u003eCeramides 2 and Cashmere proteins\u003c\/strong\u003e,  4Poodle Pro rebuilds the hair from the inside out, giving it density and \u003cstrong\u003eexceptional elasticity\u003c\/strong\u003e immediately after getting out of the bath, then a \u003cstrong\u003eIntense and lasting keratin effect\u003c\/strong\u003e.  The hair dries very quickly, brushes easily and arrives ready for scissor cutting or presentation in competitions.\u003c\/p\u003e          \u003cdiv style=\"background: #fff8e1; border-left: 3px solid #f0a500; border-radius: 8px; padding: 12px 16px; font-size: 13px; line-height: 1.55; margin: 4px 0 4px;\"\u003e⚠️  \u003cstrong\u003eBeware of knots returning:\u003c\/strong\u003e When used alone to achieve maximum volume, 4Poodle Pro can accelerate the return of tangles. For maintenance, always finish with an intensive conditioner. \u003cstrong\u003eHydrating Cream and\/or Bombastic\u003c\/strong\u003e.\u003c\/div\u003e          \u003cdiv class=\"aqr-benefits\" style=\"margin-top: 20px;\"\u003e              \u003cdiv class=\"aqr-benefits-grid\"\u003e                  \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 0;\"\u003e                      \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e                      \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M8 3H5a2 2 0 0 0-2 2v3\"\u003e\u003c\/path\u003e\u003cpath d=\"M16 3h3a2 2 0 0 1 2 2v3\"\u003e\u003c\/path\u003e\u003cpath d=\"M8 21H5a2 2 0 0 1-2-2v-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M16 21h3a2 2 0 0 0 2-2v-3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e                      \u003cdiv class=\"aqr-benefit-content\"\u003e                          \u003cdiv class=\"aqr-benefit-title\"\u003eMaximum volume\u003c\/div\u003e                          \u003cdiv class=\"aqr-benefit-desc\"\u003eThe best possible volume with the best texture — even on the finest hairs.\u003c\/div\u003e                      \u003c\/div\u003e                  \u003c\/div\u003e                  \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 1;\"\u003e                      \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e                      \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M5 3v4M3 5h4M6 17v4M4 19h4\"\u003e\u003c\/path\u003e\u003cpath d=\"M13 3l3 8 8 3-8 3-3 8-3-8-8-3 8-3z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e                      \u003cdiv class=\"aqr-benefit-content\"\u003e                          \u003cdiv class=\"aqr-benefit-title\"\u003eNew outfit\u003c\/div\u003e                          \u003cdiv class=\"aqr-benefit-desc\"\u003eRedefines and structures the fur permanently after each bath.\u003c\/div\u003e                      \u003c\/div\u003e                  \u003c\/div\u003e                  \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 2;\"\u003e                      \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e                      \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M4 7h16M6 7v11M10 7v11M14 7v11M18 7v11\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e                      \u003cdiv class=\"aqr-benefit-content\"\u003e                          \u003cdiv class=\"aqr-benefit-title\"\u003eUnparalleled blow-dry\u003c\/div\u003e                          \u003cdiv class=\"aqr-benefit-desc\"\u003eImmediate elasticity: blow-drying becomes smoother and real time savings.\u003c\/div\u003e                      \u003c\/div\u003e                  \u003c\/div\u003e                  \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 3;\"\u003e                      \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e                      \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M3 8h9a2 2 0 1 0-2-2\"\u003e\u003c\/path\u003e\u003cpath d=\"M3 12h13a2 2 0 1 1-2 2\"\u003e\u003c\/path\u003e\u003cpath d=\"M3 16h7a2 2 0 1 1-2 2\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e                      \u003cdiv class=\"aqr-benefit-content\"\u003e                          \u003cdiv class=\"aqr-benefit-title\"\u003eQuick drying\u003c\/div\u003e                          \u003cdiv class=\"aqr-benefit-desc\"\u003eThe hair dries significantly faster after washing.\u003c\/div\u003e                      \u003c\/div\u003e                  \u003c\/div\u003e                  \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 4;\"\u003e                      \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e                      \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 3l7 3v5c0 4.5-3 7.7-7 9-4-1.3-7-4.5-7-9V6z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e                      \u003cdiv class=\"aqr-benefit-content\"\u003e                          \u003cdiv class=\"aqr-benefit-title\"\u003eLong-lasting keratin effect\u003c\/div\u003e                          \u003cdiv class=\"aqr-benefit-desc\"\u003eThe keratin action continues well beyond the bath.\u003c\/div\u003e                      \u003c\/div\u003e                  \u003c\/div\u003e                  \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 5;\"\u003e                      \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e                      \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"3.6\"\u003e\u003c\/circle\u003e\u003cpath d=\"M12 2v2.5M12 19.5V22M4.2 4.2l1.8 1.8M18 18l1.8 1.8M2 12h2.5M19.5 12H22M4.2 19.8l1.8-1.8M18 6l1.8-1.8\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e                      \u003cdiv class=\"aqr-benefit-content\"\u003e                          \u003cdiv class=\"aqr-benefit-title\"\u003eUV protection\u003c\/div\u003e                          \u003cdiv class=\"aqr-benefit-desc\"\u003eIntegrated UV-A filter to protect skin and hair from the harmful effects of the sun.\u003c\/div\u003e                      \u003c\/div\u003e                  \u003c\/div\u003e              \u003c\/div\u003e          \u003c\/div\u003e          \u003cstyle\u003e\n      .aqr-benefits, .aqr-benefits * { box-sizing: border-box; font-family: inherit; }\n      .aqr-benefits-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        grid-auto-rows: 1fr;\n        align-items: stretch;\n        gap: 10px;\n      }\n      .aqr-benefit-card {\n        position: relative;\n        display: flex;\n        gap: 14px;\n        background: #fff;\n        border: 1px solid #1a1a1a;\n        border-radius: 8px;\n        padding: 16px 18px;\n        align-items: center;\n        overflow: hidden;\n        opacity: 0;\n        animation: aqrBenefitFadeIn 0.5s ease-out forwards;\n        animation-delay: calc(var(--i) * 80ms);\n        transition: background 0.3s;\n      }\n      .aqr-benefit-card::before {\n        content: \"\";\n        position: absolute;\n        top: 0; left: 0; bottom: 0;\n        width: 4px;\n        background: #1a1a1a;\n        transition: width 0.3s, background 0.3s;\n      }\n      .aqr-benefit-card:hover { background: #fafafa; }\n      .aqr-benefit-card:hover::before {\n        width: 6px;\n        background: #D4AF37;\n      }\n      .aqr-benefit-corner {\n        position: absolute;\n        top: 0; right: 0;\n        width: 18px; height: 18px;\n        background: linear-gradient(225deg, #F5E6B8 50%, transparent 50%);\n        border-top-right-radius: 8px;\n        overflow: hidden;\n      }\n      .aqr-benefit-icon {\n        flex-shrink: 0;\n        width: 44px; height: 44px;\n        display: flex; align-items: center; justify-content: center;\n        background: #1a1a1a;\n        color: #F5E6B8;\n        border-radius: 0;\n      }\n      .aqr-benefit-icon svg { width: 22px; height: 22px; }\n      .aqr-benefit-content { flex: 1; min-width: 0; }\n      .aqr-benefit-title {\n        font-size: 14px;\n        font-weight: 700;\n        color: #1a1a1a;\n        margin-bottom: 3px;\n      }\n      .aqr-benefit-desc {\n        font-size: 11px;\n        line-height: 1.5;\n        color: #555;\n      }\n      @keyframes aqrBenefitFadeIn {\n        to { opacity: 1; }\n      }\n      @media (max-width: 600px) {\n        .aqr-benefits-grid { grid-template-columns: 1fr; gap: 8px; }\n      }\n    \u003c\/style\u003e      \u003c\/div\u003e        \u003c!-- RADAR UNIT (moved under Expertise) --\u003e      \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e          \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eBetter understand the actions of 4Poodle Pro\u003c\/h2\u003e          \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eA detailed breakdown of its cosmetic performance, note by note.\u003c\/p\u003e          \u003cdiv id=\"so-radar-widget\" style=\"width:100%;max-width:480px;margin:0 auto;background:#fff;border:1px solid #e5e5e5;font-family:inherit;color:#1a1a1a;line-height:1.4;\"\u003e              \u003cdiv style=\"padding:16px 28px;overflow:visible;\"\u003e                                    \u003cdiv id=\"so-radar-area\" style=\"position:relative;width:100%;max-width:340px;aspect-ratio:1;margin:0 auto;overflow:visible;\"\u003e                      \u003csvg id=\"so-radar-svg\" style=\"width:100%;height:100%;overflow:visible;\" viewbox=\"0 0 360 360\"\u003e\u003c\/svg\u003e                  \u003c\/div\u003e                  \u003cdiv id=\"so-radar-footer\"\u003e\u003c\/div\u003e              \u003c\/div\u003e          \u003c\/div\u003e      \u003c\/div\u003e        \u003cstyle\u003e\n    #so-radar-widget * { box-sizing: border-box; }\n    .so-label { position: absolute; transform: translate(-50%, -50%); text-align: center; pointer-events: none; white-space: nowrap; opacity: 0; animation: so-fadeUp 0.5s ease forwards; }\n    .so-label .so-lname { font-size: 9px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: #999; display: block; margin-bottom: 1px; font-family: inherit; }\n    .so-label .so-lval { font-size: 24px; font-weight: 700; color: #1a1a1a; line-height: 1; font-family: inherit; }\n    .so-label .so-lmax { font-size: 12px; font-weight: 400; color: #bbb; font-family: inherit; }\n    .so-foot-centered { margin-top: 18px; padding-top: 16px; border-top: 1px solid #eee; opacity: 0; animation: so-footerIn 0.5s ease forwards 0.8s; }\n    .so-foot-centered-head { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 14px; }\n    .so-foot-centered-line { flex: 1; height: 1px; background: #1a1a1a; max-width: 50px; }\n    .so-foot-centered-title { font-size: 9px; letter-spacing: 0.3em; font-weight: 700; color: #1a1a1a; font-family: inherit; }\n    .so-foot-centered-chips { display: grid; grid-template-columns: auto auto; justify-content: center; justify-items: center; gap: 6px; }\n    .so-foot-centered-chip { display: inline-flex; align-items: baseline; gap: 6px; background: #fff; border: 1px solid #1a1a1a; color: #1a1a1a; padding: 6px 14px; border-radius: 100px; font-size: 11px; font-weight: 600; font-family: inherit; }\n    .so-foot-centered-chip em { font-family: Georgia, \"Times New Roman\", serif; font-style: italic; font-weight: 700; color: #D4AF37; font-size: 11px; }\n    .so-shape-fill   { opacity: 0; animation: so-shapeIn 0.9s ease forwards 0.2s; }\n    .so-shape-stroke { opacity: 0; animation: so-shapeIn 0.7s ease forwards 0.35s; }\n    .so-dot          { opacity: 0; animation: so-dotIn 0.35s ease forwards; }\n    @keyframes so-shapeIn  { to { opacity: 1; } }\n    @keyframes so-dotIn    { to { opacity: 1; } }\n    @keyframes so-footerIn { to { opacity: 1; } }\n    @keyframes so-fadeUp { from { opacity: 0; transform: translate(-50%, calc(-50% + 6px)); } to { opacity: 1; transform: translate(-50%, -50%); } }\n    .so-trace-stroke { opacity: 0; animation: so-traceIn 0.5s ease forwards 0.8s, so-traceMove 3.5s linear infinite 1.3s; }\n    @keyframes so-traceIn { to { opacity: 1; } }\n    @keyframes so-traceMove { from { stroke-dashoffset: 0; } to { stroke-dashoffset: calc(-1 * var(--so-perim, 600)); } }\n    @media (max-width: 480px) {\n      #so-radar-widget \u003e div { padding: 18px 16px 14px !important; }\n      #so-radar-area { max-width: 300px !important; }\n      .so-label .so-lname { font-size: 8px !important; letter-spacing: 0.05em !important; }\n      .so-label .so-lval  { font-size: 19px !important; }\n      .so-label .so-lmax  { font-size: 9px !important; }\n      .so-foot-centered-title { font-size: 8px !important; letter-spacing: 0.25em !important; }\n      .so-foot-centered-chip { font-size: 10px !important; padding: 5px 12px !important; }\n      .so-foot-centered-chip em { font-size: 10px !important; }\n      .so-foot-centered-line { max-width: 30px !important; }\n    }\n    @media (max-width: 360px) {\n      #so-radar-area { max-width: 260px !important; }\n      .so-label .so-lval { font-size: 16px !important; }\n      .so-label .so-lname { font-size: 7px !important; }\n    }\n  \u003c\/style\u003e        \u003cscript\u003e\n  (function() {\n    var PRODUCT = { criteria: [ { label: \"Hydratation\", value: 3 }, { label: \"Démêlant\", value: 1 }, { label: \"Texture\", value: 3 }, { label: \"Volume\", value: 4 }, { label: \"Brillance\", value: 4 } ] };\n    var svg = document.getElementById(\"so-radar-svg\"); var area = document.getElementById(\"so-radar-area\");\n    var data = PRODUCT.criteria; var n = data.length; var cx = 180, cy = 180, maxR = 95;\n    function ang(i) { return (Math.PI * 2 * i \/ n) - Math.PI \/ 2; }\n    function pt(i, v, mx) { var a = ang(i), r = (v \/ mx) * maxR; return { x: cx + r * Math.cos(a), y: cy + r * Math.sin(a) }; }\n    function svgEl(tag) { return document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", tag); }\n    for (var l = 1; l \u003c= 5; l++) { var pts = []; for (var i = 0; i \u003c n; i++) { var p = pt(i, l, 5); pts.push(p.x + \",\" + p.y); } var poly = svgEl(\"polygon\"); poly.setAttribute(\"points\", pts.join(\" \")); poly.setAttribute(\"fill\", \"none\"); poly.setAttribute(\"stroke\", l === 5 ? \"rgba(0,0,0,0.09)\" : \"rgba(0,0,0,0.04)\"); poly.setAttribute(\"stroke-width\", l === 5 ? \"1\" : \"0.6\"); if (l === 5) poly.setAttribute(\"stroke-dasharray\", \"3,3\"); svg.appendChild(poly); }\n    for (var i = 0; i \u003c n; i++) { var p = pt(i, 5, 5); var line = svgEl(\"line\"); line.setAttribute(\"x1\", cx); line.setAttribute(\"y1\", cy); line.setAttribute(\"x2\", p.x); line.setAttribute(\"y2\", p.y); line.setAttribute(\"stroke\", \"rgba(0,0,0,0.04)\"); line.setAttribute(\"stroke-width\", \"0.6\"); svg.appendChild(line); }\n    var shapePts = []; for (var i = 0; i \u003c n; i++) { var p = pt(i, data[i].value, 5); shapePts.push(p.x + \",\" + p.y); } var ptsStr = shapePts.join(\" \");\n    var fillPoly = svgEl(\"polygon\"); fillPoly.setAttribute(\"points\", ptsStr); fillPoly.setAttribute(\"fill\", \"rgba(0,0,0,0.04)\"); fillPoly.classList.add(\"so-shape-fill\"); svg.appendChild(fillPoly);\n    var strokePoly = svgEl(\"polygon\"); strokePoly.setAttribute(\"points\", ptsStr); strokePoly.setAttribute(\"fill\", \"none\"); strokePoly.setAttribute(\"stroke\", \"#1a1a1a\"); strokePoly.setAttribute(\"stroke-width\", \"1.8\"); strokePoly.setAttribute(\"stroke-linejoin\", \"round\"); strokePoly.classList.add(\"so-shape-stroke\"); svg.appendChild(strokePoly);\n    \/* Trace doree qui parcourt le contour en boucle *\/\n    var perim = 0; for (var i = 0; i \u003c n; i++) { var p1 = pt(i, data[i].value, 5); var p2 = pt((i+1)%n, data[(i+1)%n].value, 5); perim += Math.sqrt((p2.x-p1.x)*(p2.x-p1.x) + (p2.y-p1.y)*(p2.y-p1.y)); }\n    var tracePoly = svgEl(\"polygon\"); tracePoly.setAttribute(\"points\", ptsStr); tracePoly.setAttribute(\"fill\", \"none\"); tracePoly.setAttribute(\"stroke\", \"#D4AF37\"); tracePoly.setAttribute(\"stroke-width\", \"2.2\"); tracePoly.setAttribute(\"stroke-linejoin\", \"round\"); tracePoly.setAttribute(\"stroke-linecap\", \"round\"); tracePoly.setAttribute(\"stroke-dasharray\", \"60 \" + perim); tracePoly.setAttribute(\"stroke-dashoffset\", \"0\"); tracePoly.style.setProperty(\"--so-perim\", perim); tracePoly.classList.add(\"so-trace-stroke\"); svg.appendChild(tracePoly);\n    for (var i = 0; i \u003c n; i++) { (function(i) { var d = data[i]; var p = pt(i, d.value, 5); var delay = 0.5 + i * 0.1; var halo = svgEl(\"circle\"); halo.setAttribute(\"cx\", p.x); halo.setAttribute(\"cy\", p.y); halo.setAttribute(\"r\", \"7\"); halo.setAttribute(\"fill\", \"none\"); halo.setAttribute(\"stroke\", \"#1a1a1a\"); halo.setAttribute(\"stroke-width\", \"1\"); halo.setAttribute(\"stroke-opacity\", \"0.12\"); halo.classList.add(\"so-dot\"); halo.style.animationDelay = delay + \"s\"; svg.appendChild(halo); var dot = svgEl(\"circle\"); dot.setAttribute(\"cx\", p.x); dot.setAttribute(\"cy\", p.y); dot.setAttribute(\"r\", \"3\"); dot.setAttribute(\"fill\", \"#1a1a1a\"); dot.classList.add(\"so-dot\"); dot.style.animationDelay = delay + \"s\"; svg.appendChild(dot); var lp = pt(i, 6.5, 5);\n lp.y += Math.sin(ang(i)) * 16; var pctX = (lp.x \/ 360) * 100; var pctY = (lp.y \/ 360) * 100; var lbl = document.createElement(\"div\"); lbl.className = \"so-label\"; lbl.style.left = pctX + \"%\"; lbl.style.top = pctY + \"%\"; lbl.style.animationDelay = (0.4 + i * 0.1) + \"s\"; lbl.innerHTML = '\u003cspan class=\"so-lname\"\u003e' + d.label + '\u003c\/span\u003e\u003cspan class=\"so-lval\"\u003e' + d.value + '\u003cspan class=\"so-lmax\"\u003e\/5\u003c\/span\u003e\u003c\/span\u003e'; area.appendChild(lbl); })(i); }\n    var maxVal = 0; for (var i = 0; i \u003c n; i++) { if (data[i].value \u003e maxVal) maxVal = data[i].value; } var bests = []; for (var i = 0; i \u003c n; i++) { if (data[i].value === maxVal) bests.push(data[i]); }\n    var chipsHtml = ''; for (var i = 0; i \u003c bests.length; i++) { chipsHtml += '\u003cspan class=\"so-foot-centered-chip\"\u003e' + bests[i].label + '\u003cem\u003e' + bests[i].value + '\/5\u003c\/em\u003e\u003c\/span\u003e'; }\n    var labelTxt = (bests.length \u003e 1 ? 'POINTS FORTS' : 'POINT FORT');\n    document.getElementById(\"so-radar-footer\").innerHTML = '\u003cdiv class=\"so-foot-centered\"\u003e\u003cdiv class=\"so-foot-centered-head\"\u003e\u003cspan class=\"so-foot-centered-line\"\u003e\u003c\/span\u003e\u003cspan class=\"so-foot-centered-title\"\u003e★ ' + labelTxt + ' ★\u003c\/span\u003e\u003cspan class=\"so-foot-centered-line\"\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"so-foot-centered-chips\"\u003e' + chipsHtml + '\u003c\/div\u003e\u003c\/div\u003e';\n  })();\n  \u003c\/script\u003e        \u003c!-- BLOCK 3: COMPOSITION (Active 4Poodle Pro JS MAPPING - verified) --\u003e      \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e          \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eComposition of 4Poodle Pro: natural active ingredients \u0026amp; targeted action\u003c\/h2\u003e          \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eA highly precise technical formulation — \u003cstrong\u003einternal reconstruction, hydration and protection\u003c\/strong\u003e,  SLES-free, paraben-free. Here, zone by zone, is how each active ingredient acts on the skin and hair.\u003c\/p\u003e            \u003c!-- MAPPING --\u003e          \u003cdiv id=\"aqr-carto\" style=\"background:#fff;border:1px solid #e5e5e5;padding:18px;\"\u003e              \u003cdiv class=\"aqr-grid\"\u003e                    \u003cdiv class=\"aqr-col-list\"\u003e                      \u003cul class=\"aqr-list\" id=\"aqrList\"\u003e\u003c\/ul\u003e                  \u003c\/div\u003e                    \u003cdiv class=\"aqr-col-schema\"\u003e                      \u003cdiv class=\"aqr-schema-wrap\" id=\"aqrSchemaWrap\"\u003e                          \u003cimg class=\"aqr-schema-img\" id=\"aqrSchemaImg\" style=\"display:block;width:100%;height:auto;\" alt=\"Schéma de l'anatomie de la peau et du poil illustrant l'action ciblée de 4Poodle Pro\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/schema-peau-poil.webp?v=1779972667\"\u003e                          \u003csvg class=\"aqr-overlay\" id=\"aqrOverlay\" preserveaspectratio=\"none\" viewbox=\"0 0 100 225\"\u003e\u003c\/svg\u003e                          \u003cdiv class=\"aqr-connectors\" id=\"aqrConnectors\"\u003e\u003c\/div\u003e                      \u003c\/div\u003e                  \u003c\/div\u003e                    \u003cdiv class=\"aqr-col-info\"\u003e                      \u003cdiv class=\"aqr-info\" id=\"aqrInfo\"\u003e\u003c\/div\u003e                  \u003c\/div\u003e                \u003c\/div\u003e            \u003c\/div\u003e            \u003cstyle\u003e\n      #aqr-carto, #aqr-carto * { box-sizing: border-box; }\n      #aqr-carto {\n        font-family: inherit;\n        color: #1a1a1a;\n        line-height: 1.5;\n        position: relative;\n      }\n      #aqr-carto .aqr-grid {\n        display: grid;\n        grid-template-columns: 170px 1fr 280px;\n        gap: 16px;\n        align-items: start;\n      }\n\n      \/* LISTE — cadres encadres *\/\n      #aqr-carto .aqr-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }\n      #aqr-carto .aqr-list-item {\n        display: block;\n        width: 100%;\n        text-align: left;\n        background: #fff;\n        border: 1px solid #e5e5e5;\n        padding: 8px 10px;\n        cursor: pointer;\n        font-family: inherit;\n        color: #888;\n        transition: all 0.3s;\n        position: relative;\n        min-height: 0;\n      }\n      #aqr-carto .aqr-list-item:hover {\n        color: #1a1a1a;\n        border-color: #bbb;\n        background: #fafafa;\n      }\n      #aqr-carto .aqr-list-item.aqr-active {\n        color: #1a1a1a;\n        background: #fff;\n        border-color: var(--c, #1a1a1a);\n        border-left-width: 3px;\n        padding-left: 8px;\n        box-shadow: 0 2px 6px rgba(0,0,0,0.04);\n      }\n\n      #aqr-carto .aqr-li-name {\n        font-size: 13px;\n        line-height: 1.25;\n        font-weight: 500;\n      }\n\n      \/* SCHEMA *\/\n      #aqr-carto .aqr-col-schema {\n        display: flex;\n        justify-content: center;\n        align-items: flex-start;\n      }\n      #aqr-carto .aqr-schema-wrap {\n        position: relative;\n        width: 100%;\n        max-width: 200px;\n        margin: 0 auto;\n        z-index: 1;\n      }\n      #aqr-carto .aqr-schema-img {\n        display: block;\n        width: 100%;\n        height: auto;\n      }\n\n      #aqr-carto .aqr-overlay {\n        position: absolute;\n        inset: 0;\n        width: 100%;\n        height: 100%;\n        pointer-events: none;\n        overflow: visible;\n        z-index: 3;\n      }\n      #aqr-carto .aqr-connectors {\n        position: absolute;\n        inset: 0;\n        pointer-events: none;\n        z-index: 2;\n      }\n      #aqr-carto \u003e svg.aqr-connector-svg {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        overflow: visible;\n        pointer-events: none;\n        z-index: 5;\n      }\n\n      \/* Ligne connector (depuis la liste vers le point) *\/\n      #aqr-carto .aqr-conn-line {\n        fill: none;\n        stroke: var(--c);\n        stroke-width: 1;\n        opacity: 0;\n        stroke-dasharray: 600;\n        stroke-dashoffset: 600;\n        animation: aqrConnDraw 0.9s cubic-bezier(.5,.05,.2,1) forwards;\n      }\n      @keyframes aqrConnDraw {\n        0% { opacity: 0; stroke-dashoffset: 600; }\n        25% { opacity: 0.6; }\n        100% { opacity: 0.6; stroke-dashoffset: 0; }\n      }\n\n      \/* IRRADIATION CIRCULAIRE DOREE — toujours identique *\/\n      \/* Le groupe entier qui contient halo + cercle + branches étoilées *\/\n      #aqr-carto .aqr-star-group {\n        transform-origin: center;\n        transform-box: fill-box;\n      }\n\n      \/* Halo doré central qui pulse doucement *\/\n      #aqr-carto .aqr-star-halo {\n        fill: #D4AF37;\n        opacity: 0;\n        transform-origin: center;\n        transform-box: fill-box;\n        filter: blur(1.4px);\n        animation: aqrHaloIn 0.7s ease-out forwards, aqrHaloPulse 3s ease-in-out infinite 0.7s;\n      }\n      @keyframes aqrHaloIn { to { opacity: 0.5; } }\n      @keyframes aqrHaloPulse {\n        0%, 100% { opacity: 0.4; transform: scale(1); }\n        50% { opacity: 0.75; transform: scale(1.2); }\n      }\n\n      \/* Cercle d'irradiation qui se diffuse (anneau lent) *\/\n      #aqr-carto .aqr-star-ring {\n        fill: none;\n        stroke: #D4AF37;\n        stroke-width: 0.5;\n        opacity: 0;\n        transform-origin: center;\n        transform-box: fill-box;\n        animation: aqrStarRing 3.2s ease-out infinite;\n      }\n      @keyframes aqrStarRing {\n        0%   { opacity: 0; r: 3; stroke-width: 0.6; }\n        15%  { opacity: 0.5; }\n        100% { opacity: 0; r: 12; stroke-width: 0.15; }\n      }\n\n      \/* Point coloré A\/B\/C (par-dessus le doré) *\/\n      #aqr-carto .aqr-marker-dot {\n        fill: var(--c);\n        opacity: 0;\n        transform-origin: center;\n        transform-box: fill-box;\n        animation: aqrDotIn 0.5s ease-out forwards;\n      }\n      @keyframes aqrDotIn {\n        0% { opacity: 0; transform: scale(0); }\n        70% { transform: scale(1.4); }\n        100% { opacity: 1; transform: scale(1); }\n      }\n      #aqr-carto .aqr-marker-text {\n        fill: white;\n        font-family: 'Courier New', monospace;\n        font-size: 2.8px;\n        font-weight: 700;\n        text-anchor: middle;\n        dominant-baseline: central;\n        opacity: 0;\n        animation: aqrDotIn 0.5s ease-out forwards;\n        pointer-events: none;\n      }\n\n      #aqr-carto .aqr-leaving {\n        animation: aqrFadeOut 0.4s ease-out forwards !important;\n      }\n      @keyframes aqrFadeOut { to { opacity: 0; } }\n\n      \/* INFO *\/\n      #aqr-carto .aqr-info {\n        background: #fafafa;\n        border: 1px solid #e5e5e5;\n        padding: 16px 16px;\n        transition: opacity 0.4s;\n      }\n      #aqr-carto .aqr-info.aqr-fading { opacity: 0.2; }\n      #aqr-carto .aqr-info-family {\n        font-size: 9px;\n        letter-spacing: 0.25em;\n        text-transform: uppercase;\n        color: var(--c, #888);\n        font-weight: 600;\n        margin-bottom: 6px;\n        transition: color 0.5s;\n      }\n      #aqr-carto .aqr-info-name {\n        font-size: 16px;\n        font-weight: 700;\n        line-height: 1.2;\n        margin: 0 0 4px;\n        color: #1a1a1a;\n      }\n      #aqr-carto .aqr-info-latin {\n        font-size: 11px;\n        color: #999;\n        font-style: italic;\n        margin-bottom: 12px;\n      }\n      #aqr-carto .aqr-info-desc {\n        font-size: 12px;\n        line-height: 1.55;\n        color: #333;\n        margin-bottom: 14px;\n        padding-bottom: 14px;\n        border-bottom: 1px solid #ececec;\n      }\n      #aqr-carto .aqr-info-section {\n        font-size: 9px;\n        letter-spacing: 0.22em;\n        text-transform: uppercase;\n        color: #888;\n        font-weight: 600;\n        margin-bottom: 10px;\n      }\n      #aqr-carto .aqr-action-row {\n        display: flex;\n        align-items: baseline;\n        gap: 10px;\n        margin-bottom: 10px;\n        padding-bottom: 10px;\n        border-bottom: 1px dotted #ececec;\n      }\n      #aqr-carto .aqr-action-row:last-child {\n        border-bottom: none;\n        padding-bottom: 0;\n        margin-bottom: 0;\n      }\n      #aqr-carto .aqr-action-marker {\n        flex-shrink: 0;\n        width: 18px;\n        height: 18px;\n        background: var(--c);\n        color: white;\n        text-align: center;\n        line-height: 18px;\n        font-family: 'Courier New', monospace;\n        font-size: 10px;\n        font-weight: 700;\n        transition: background 0.5s;\n      }\n      #aqr-carto .aqr-action-content { flex: 1; min-width: 0; }\n      #aqr-carto .aqr-action-zone {\n        font-size: 9px;\n        letter-spacing: 0.15em;\n        text-transform: uppercase;\n        color: var(--c, #888);\n        font-weight: 600;\n        margin-bottom: 2px;\n        transition: color 0.5s;\n      }\n      #aqr-carto .aqr-action-name {\n        font-size: 13px;\n        color: #1a1a1a;\n        font-weight: 600;\n        line-height: 1.25;\n        margin-bottom: 3px;\n      }\n      #aqr-carto .aqr-action-benefit {\n        font-size: 11px;\n        color: #666;\n        line-height: 1.5;\n      }\n\n      \/* TABLET : liste + schema cote a cote, info en dessous *\/\n      @media (max-width: 900px) {\n        #aqr-carto .aqr-grid {\n          grid-template-columns: 1fr 130px;\n          grid-template-rows: auto auto;\n          gap: 14px;\n        }\n        #aqr-carto .aqr-col-list { grid-column: 1; grid-row: 1; }\n        #aqr-carto .aqr-col-schema { grid-column: 2; grid-row: 1; }\n        #aqr-carto .aqr-col-info { grid-column: 1 \/ -1; grid-row: 2; }\n        #aqr-carto .aqr-schema-wrap { max-width: 130px; }\n        #aqr-carto .aqr-li-name { font-size: 12px; }\n        #aqr-carto .aqr-list-item { padding: 7px 8px; }\n        #aqr-carto .aqr-list { gap: 5px; }\n      }\n      \/* MOBILE : meme structure mais photo encore plus petite *\/\n      @media (max-width: 640px) {\n        #aqr-carto { padding: 12px !important; }\n        #aqr-carto .aqr-grid {\n          grid-template-columns: 1fr 100px;\n          gap: 10px;\n        }\n        #aqr-carto .aqr-schema-wrap { max-width: 100px; }\n        #aqr-carto .aqr-li-name { font-size: 11px; line-height: 1.2; }\n        #aqr-carto .aqr-li-num { font-size: 8px; margin-bottom: 1px; }\n        #aqr-carto .aqr-list-item { padding: 6px 8px; }\n        #aqr-carto .aqr-list-item.aqr-active { padding-left: 6px; }\n        #aqr-carto .aqr-info-name { font-size: 15px; }\n        #aqr-carto .aqr-info { padding: 14px; }\n        #aqr-carto .aqr-list { gap: 4px; }\n      }\n      \/* TRES PETIT : photo minimale *\/\n      @media (max-width: 420px) {\n        #aqr-carto .aqr-grid {\n          grid-template-columns: 1fr 80px;\n          gap: 8px;\n        }\n        #aqr-carto .aqr-schema-wrap { max-width: 80px; }\n        #aqr-carto .aqr-li-name { font-size: 10px; }\n      }\n    \u003c\/style\u003e            \u003cscript\u003e\n    (function(){\n      var familyColors = {\n        botanic: '#7BA05B',\n        aqua: '#4A90B8',\n        bio: '#C84876',\n        cond: '#B07BA0'\n      };\n      var families = {\n        botanic: 'Botanique',\n        aqua: 'Aquatique',\n        bio: 'Biochimique',\n        cond: 'Conditionneur'\n      };\n\n      \/\/ Anchors PRECIS sur l'image 500x1125 (viewBox 100 x 225)\n      var anchors = {\n        tige_poil:  { x: 60,  y: 25 },     \/\/ mi-tige\n        cuticule:   { x: 56,  y: 65 },     \/\/ ecailles visibles\n        epiderme:   { x: 25,  y: 115 },    \/\/ surface peau gauche\n        film_hydro: { x: 32,  y: 100 },    \/\/ surface peau clairement, ecarte du poil\n        glande_seb: { x: 62,  y: 142 },    \/\/ grappe jaune\n        glande_sud: { x: 25,  y: 168 },    \/\/ enchevetrement gauche\n        muscle:     { x: 78,  y: 170 },    \/\/ faisceau diagonal\n        follicule:  { x: 43,  y: 185 },    \/\/ cloche autour du poil\n        bulbe:      { x: 43,  y: 193 },    \/\/ boule au fond, remonte encore\n        derme:      { x: 12,  y: 190 }     \/\/ bloc peau gauche bas\n      };\n      var anchorLabels = {\n        tige_poil: 'Tige du poil', cuticule: 'Cuticule', film_hydro: 'Film hydrolipidique',\n        epiderme: 'Épiderme', derme: 'Derme', bulbe: 'Bulbe pilaire',\n        glande_seb: 'Glande sébacée', glande_sud: 'Glande sudoripare',\n        follicule: 'Follicule pileux', muscle: 'Muscle arrecteur'\n      };\n\n      var ingredients = [\n        {\n          id:'ceramide', label:'Céramide 2', latin:'Céramides végétaux', family:'cond',\n          desc:\"Lipide structurant de la fibre : tel le ciment entre les briques, il restaure la cohésion intercellulaire du poil et forme une couche protectrice contre la déshydratation et les agressions.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Reconstruction interne\", benefit:\"Comble le ciment intercellulaire — la fibre retrouve cohésion, densité et résistance.\" },\n            { anchor:'cuticule', action:\"Scellage anti-déshydratation\", benefit:\"Lisse les écailles et verrouille l'hydratation à l'intérieur du poil.\" }\n          ]\n        },\n        {\n          id:'cachemire', label:'Protéines de Cachemire', latin:'Protéines de kératine', family:'cond',\n          desc:\"Protéines nobles à forte affinité kératinique : elles densifient la fibre et lui apportent une élasticité exceptionnelle, immédiatement perceptible au brushing.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Densité \u0026 élasticité\", benefit:\"Donnent corps et ressort au poil : un volume travaillable et un brushing plus fluide.\" },\n            { anchor:'cuticule', action:\"Séchage accéléré\", benefit:\"Gainent la fibre pour un toucher lisse, facile à brosser et qui sèche plus vite.\" }\n          ]\n        },\n        {\n          id:'provitb5', label:'Provitamine B5', latin:'Panthénol', family:'bio',\n          desc:\"Le panthénol agit sur les deux substrats : fortifiant et embellissant sur le poil, réparateur et apaisant sur la peau.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Fortifiant \u0026 brillance\", benefit:\"Renforce la fibre de l'intérieur et ravive sa brillance.\" },\n            { anchor:'epiderme', action:\"Réparation \u0026 apaisement\", benefit:\"Apaise la peau et soutient sa réparation.\" }\n          ]\n        },\n        {\n          id:'glycerine', label:'Glycérine végétale', latin:'Glycérol végétal', family:'aqua',\n          desc:\"Humectant de référence, à la fois occlusif et émollient : indispensable pour une hydratation durable de la peau et du poil.\",\n          targets: [\n            { anchor:'film_hydro', action:\"Hydratation occlusive\", benefit:\"Retient l'eau et protège la surface des agressions extérieures.\" },\n            { anchor:'epiderme', action:\"Émollience\", benefit:\"Lisse et assouplit la peau comme le poil.\" }\n          ]\n        },\n        {\n          id:'uree', label:'Urée (Carbamide)', latin:'Carbamide', family:'aqua',\n          desc:\"Actif professionnel de référence : hydrate les couches supérieures de l'épiderme, élimine les squames et stimule le renouvellement cellulaire, avec une action purifiante.\",\n          targets: [\n            { anchor:'epiderme', action:\"Hydratation \u0026 kératolyse douce\", benefit:\"Hydrate l'épiderme, élimine les squames et active le renouvellement cellulaire.\" },\n            { anchor:'glande_sud', action:\"Action purifiante\", benefit:\"Limite le développement bactérien à la surface de la peau.\" }\n          ]\n        },\n        {\n          id:'leucidal', label:'Leucidal', latin:'Ferment de radis', family:'botanic',\n          desc:\"Conservateur 100 % naturel issu de la fermentation du radis : peptides aux propriétés antibactériennes, antipelliculaires et antimicrobiennes.\",\n          targets: [\n            { anchor:'glande_seb', action:\"Assainissant naturel\", benefit:\"Action antibactérienne et antipelliculaire au niveau du film cutané.\" },\n            { anchor:'epiderme', action:\"Équilibre microbien\", benefit:\"Préserve l'équilibre de la flore de surface — sans conservateur de synthèse.\" }\n          ]\n        },\n        {\n          id:'coco', label:'Tensioactifs de noix de coco', latin:'Dérivés de Cocos nucifera', family:'botanic',\n          desc:\"Base lavante douce d'origine végétale : nettoie en respectant la peau et conditionne le poil sans jamais l'agresser.\",\n          targets: [\n            { anchor:'cuticule', action:\"Lavage doux \u0026 conditionnant\", benefit:\"Nettoie sans décaper et dépose un conditionnement léger sur la fibre.\" },\n            { anchor:'epiderme', action:\"Douceur cutanée\", benefit:\"Respecte la peau et préserve son confort.\" }\n          ]\n        },\n        {\n          id:'citronuv', label:'Citron \u0026 Filtre UV-A', latin:'Citrus limon \u0026 filtre UV', family:'bio',\n          desc:\"Le citron resserre les écailles et stabilise le pH de la formule ; le filtre UV-A protège la peau et les poils des effets nocifs du soleil.\",\n          targets: [\n            { anchor:'cuticule', action:\"Équilibre du pH\", benefit:\"Resserre les écailles et stabilise le pH pour une fibre lisse et brillante.\" },\n            { anchor:'tige_poil', action:\"Bouclier UV-A\", benefit:\"Le filtre UV-A protège la fibre des effets nocifs du soleil.\" }\n          ]\n        }\n      ];\n\n      var listEl = document.getElementById('aqrList');\n      var schemaWrap = document.getElementById('aqrSchemaWrap');\n      var schemaImg = document.getElementById('aqrSchemaImg');\n      var overlay = document.getElementById('aqrOverlay');\n      var connectorsEl = document.getElementById('aqrConnectors');\n      var infoEl = document.getElementById('aqrInfo');\n            try { ingredients.forEach(function(ing, i) {\n        var li = document.createElement('li');\n        var btn = document.createElement('button');\n        btn.className = 'aqr-list-item' + (i === 0 ? ' aqr-active' : '');\n        btn.setAttribute('type', 'button');\n        btn.dataset.idx = i;\n        btn.style.setProperty('--c', familyColors[ing.family]);\n        btn.innerHTML = '\u003cspan class=\"aqr-li-name\"\u003e' + ing.label + '\u003c\/span\u003e';\n        btn.addEventListener('click', function() { focusIngredient(i); });\n        li.appendChild(btn);\n        listEl.appendChild(li);\n      }); } catch (e) {}\n\n      function clearAll() {\n        var inside = overlay.querySelectorAll('*');\n        for (var i = 0; i \u003c inside.length; i++) inside[i].classList.add('aqr-leaving');\n        var connSvg = document.querySelector('#aqr-carto \u003e svg.aqr-connector-svg');\n        if (connSvg) {\n          var conns = connSvg.querySelectorAll('*');\n          for (var i = 0; i \u003c conns.length; i++) conns[i].classList.add('aqr-leaving');\n        }\n        setTimeout(function() {\n          overlay.innerHTML = '';\n          if (connSvg) connSvg.innerHTML = '';\n        }, 420);\n      }\n\n      var currentIdx = 0;\n      var playing = true;\n      var autoTimer = null;\n\n      function focusIngredient(idx) {\n        currentIdx = ((idx % ingredients.length) + ingredients.length) % ingredients.length;\n        var ing = ingredients[currentIdx];\n        var color = familyColors[ing.family];\n\n        var items = document.querySelectorAll('#aqr-carto .aqr-list-item');\n        for (var i = 0; i \u003c items.length; i++) {\n          if (i === currentIdx) items[i].classList.add('aqr-active');\n          else items[i].classList.remove('aqr-active');\n        }\n        infoEl.classList.add('aqr-fading');\n        setTimeout(function() {\n          infoEl.style.setProperty('--c', color);\n          var actionsHtml = ing.targets.map(function(t, i) {\n            return '\u003cdiv class=\"aqr-action-row\"\u003e' +\n                     '\u003cdiv class=\"aqr-action-marker\"\u003e' + String.fromCharCode(65 + i) + '\u003c\/div\u003e' +\n                     '\u003cdiv class=\"aqr-action-content\"\u003e' +\n                       '\u003cdiv class=\"aqr-action-zone\"\u003e' + anchorLabels[t.anchor] + '\u003c\/div\u003e' +\n                       '\u003cdiv class=\"aqr-action-name\"\u003e' + t.action + '\u003c\/div\u003e' +\n                       '\u003cdiv class=\"aqr-action-benefit\"\u003e' + t.benefit + '\u003c\/div\u003e' +\n                     '\u003c\/div\u003e' +\n                   '\u003c\/div\u003e';\n          }).join('');\n          infoEl.innerHTML =\n            '\u003cdiv class=\"aqr-info-family\"\u003e' + families[ing.family] + '\u003c\/div\u003e' +\n            '\u003ch3 class=\"aqr-info-name\"\u003e' + ing.label + '\u003c\/h3\u003e' +\n            '\u003cdiv class=\"aqr-info-latin\"\u003e' + ing.latin + '\u003c\/div\u003e' +\n            '\u003cp class=\"aqr-info-desc\"\u003e' + ing.desc + '\u003c\/p\u003e' +\n            '\u003cdiv class=\"aqr-info-section\"\u003eActions ciblées\u003c\/div\u003e' +\n            actionsHtml;\n          infoEl.classList.remove('aqr-fading');\n        }, 300);\n\n        clearAll();\n        setTimeout(function() { drawTargets(ing); }, 450);\n        scheduleNext();\n      }\n\n      function ensureConnectorSvg() {\n        var carto = document.getElementById('aqr-carto');\n        \/\/ Recherche sans :scope pour compatibilite navigateurs anciens\n        var svg = null;\n        var children = carto.children;\n        for (var i = 0; i \u003c children.length; i++) {\n          if (children[i].tagName \u0026\u0026 children[i].tagName.toLowerCase() === 'svg' \u0026\u0026\n              children[i].classList \u0026\u0026 children[i].classList.contains('aqr-connector-svg')) {\n            svg = children[i];\n            break;\n          }\n        }\n        if (!svg) {\n          svg = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'svg');\n          svg.setAttribute('class', 'aqr-connector-svg');\n          carto.appendChild(svg);\n        }\n        return svg;\n      }\n\n      function getListItemAnchor(idx) {\n        var item = document.querySelectorAll('#aqr-carto .aqr-list-item')[idx];\n        var r = item.getBoundingClientRect();\n        var cRect = document.getElementById('aqr-carto').getBoundingClientRect();\n        return {\n          x: r.right - cRect.left,\n          y: r.top + r.height \/ 2 - cRect.top\n        };\n      }\n      function pctToCartoPx(px, py) {\n        var wRect = schemaWrap.getBoundingClientRect();\n        var cRect = document.getElementById('aqr-carto').getBoundingClientRect();\n        return {\n          x: (wRect.left - cRect.left) + (px \/ 100) * wRect.width,\n          y: (wRect.top - cRect.top) + (py \/ 225) * wRect.height\n        };\n      }\n\n      function pctToOverlayPx(px, py) {\n        var wRect = schemaWrap.getBoundingClientRect();\n        return { x: (px \/ 100) * wRect.width, y: (py \/ 225) * wRect.height };\n      }\n\n      function drawTargets(ing) {\n        var color = familyColors[ing.family];\n        var startPt = getListItemAnchor(currentIdx);\n        var connSvg = ensureConnectorSvg();\n\n        ing.targets.forEach(function(target, i) {\n          var anchor = anchors[target.anchor];\n          var endPtCarto = pctToCartoPx(anchor.x, anchor.y);\n          var delay = i * 280;\n\n          \/\/ Ligne courbe : coords en pixels du aqr-carto\n          var dx = endPtCarto.x - startPt.x;\n          var cp1x = startPt.x + dx * 0.4;\n          var cp1y = startPt.y;\n          var cp2x = startPt.x + dx * 0.6;\n          var cp2y = endPtCarto.y;\n          var d = 'M ' + startPt.x + ' ' + startPt.y +\n                  ' C ' + cp1x + ' ' + cp1y + ', ' + cp2x + ' ' + cp2y +\n                  ', ' + endPtCarto.x + ' ' + endPtCarto.y;\n          var connPath = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'path');\n          connPath.setAttribute('d', d);\n          connPath.setAttribute('class', 'aqr-conn-line');\n          connPath.style.setProperty('--c', color);\n          connPath.style.animationDelay = delay + 'ms';\n          connSvg.appendChild(connPath);\n\n          \/\/ IRRADIATION DORÉE — toujours identique sur chaque point\n          var cx = anchor.x;\n          var cy = anchor.y;\n\n          \/\/ 1. Halo doré flou central\n          var halo = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'circle');\n          halo.setAttribute('cx', cx);\n          halo.setAttribute('cy', cy);\n          halo.setAttribute('r', '5');\n          halo.setAttribute('class', 'aqr-star-halo');\n          halo.style.animationDelay = (delay + 500) + 'ms, ' + (delay + 1200) + 'ms';\n          overlay.appendChild(halo);\n\n          \/\/ 2. Anneaux d'irradiation qui se diffusent en boucle continue (4 décalés)\n          for (var r = 0; r \u003c 4; r++) {\n            var ring = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'circle');\n            ring.setAttribute('cx', cx);\n            ring.setAttribute('cy', cy);\n            ring.setAttribute('r', '3');\n            ring.setAttribute('class', 'aqr-star-ring');\n            ring.style.animationDelay = (delay + 600 + r * 800) + 'ms';\n            overlay.appendChild(ring);\n          }\n\n          \/\/ 3. Point coloré A\/B\/C avec sa lettre (par-dessus le doré)\n          var dot = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'circle');\n          dot.setAttribute('cx', cx);\n          dot.setAttribute('cy', cy);\n          dot.setAttribute('r', '2.6');\n          dot.setAttribute('class', 'aqr-marker-dot');\n          dot.style.setProperty('--c', color);\n          dot.style.animationDelay = (delay + 850) + 'ms';\n          overlay.appendChild(dot);\n\n          var txt = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'text');\n          txt.setAttribute('x', cx);\n          txt.setAttribute('y', cy);\n          txt.setAttribute('class', 'aqr-marker-text');\n          txt.textContent = String.fromCharCode(65 + i);\n          txt.style.animationDelay = (delay + 950) + 'ms';\n          overlay.appendChild(txt);\n        });\n      }\n\n      function scheduleNext() {\n        if (autoTimer) clearTimeout(autoTimer);\n        if (playing) autoTimer = setTimeout(function() { focusIngredient(currentIdx + 1); }, 6500);\n      }\n\n      var __started = false;\n      function start() {\n        if (__started) return; __started = true;\n        setTimeout(function() { try { focusIngredient(0); } catch (e) {} }, 200);\n      }\n      \/\/ Filets de securite multiples : l'image et la liste s'affichent toujours,\n      \/\/ et l'animation demarre des que possible quel que soit l'environnement.\n      try {\n        if (schemaImg \u0026\u0026 schemaImg.complete) start();\n        if (schemaImg) {\n          schemaImg.addEventListener('load', start);\n          schemaImg.addEventListener('error', start);\n        }\n      } catch (e) {}\n      if (document.readyState === 'complete') start();\n      else window.addEventListener('load', start);\n      setTimeout(start, 1500);\n\n      var resizeTimer = null;\n      function fullRedraw() {\n        overlay.innerHTML = '';\n        var connSvg = document.querySelector('#aqr-carto \u003e svg.aqr-connector-svg');\n        if (connSvg) connSvg.innerHTML = '';\n        \/\/ double rAF to wait for layout to stabilize\n        requestAnimationFrame(function() {\n          requestAnimationFrame(function() {\n            drawTargets(ingredients[currentIdx]);\n          });\n        });\n      }\n      window.addEventListener('resize', function() {\n        if (resizeTimer) clearTimeout(resizeTimer);\n        resizeTimer = setTimeout(fullRedraw, 200);\n      });\n      \/\/ ResizeObserver pour reagir aussi aux changements de taille du conteneur\n      if (typeof ResizeObserver !== 'undefined') {\n        var ro = new ResizeObserver(function() {\n          if (resizeTimer) clearTimeout(resizeTimer);\n          resizeTimer = setTimeout(fullRedraw, 200);\n        });\n        ro.observe(document.getElementById('aqr-carto'));\n      }\n    })();\n    \u003c\/script\u003e        \u003c\/div\u003e        \u003c!-- BLOCK 4: PROTOCOLS --\u003e      \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e          \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eProtocols \u0026amp; Suggestions for use\u003c\/h2\u003e          \u003c!-- DILUTION P4: 3 simple cards (Ratio · Yield · Animated Equivalencies) --\u003e          \u003cdiv class=\"aqr-dilution\" style=\"margin-bottom: 12px;\"\u003e              \u003cdiv class=\"aqr-dilution-eyebrow\"\u003eReference dilution\u003c\/div\u003e                \u003cdiv class=\"aqr-dilution-grid\"\u003e                    \u003c!-- CARD 1: Ratio --\u003e                  \u003cdiv class=\"aqr-dilution-cell\"\u003e                      \u003cdiv class=\"aqr-dilution-cell-label\"\u003eRatio\u003c\/div\u003e                      \u003cdiv class=\"aqr-dilution-cell-value\"\u003e1\u003cspan class=\"aqr-dilution-slash\"\u003e\/\u003c\/span\u003e10\u003c\/div\u003e                      \u003cdiv class=\"aqr-dilution-cell-note\"\u003eOne part to 10 parts water\u003cbr\u003e— or pure\u003c\/div\u003e                  \u003c\/div\u003e                    \u003c!-- MAP 2: Yield --\u003e                  \u003cdiv class=\"aqr-dilution-cell\"\u003e                      \u003cdiv class=\"aqr-dilution-cell-label\"\u003eYield\u003c\/div\u003e                      \u003cdiv class=\"aqr-dilution-cell-rows\"\u003e                          \u003cdiv class=\"aqr-dilution-rend-row\"\u003e  \u003cstrong\u003e250 mL\u003c\/strong\u003e  \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 2.5 L\u003c\/div\u003e                          \u003cdiv class=\"aqr-dilution-rend-row\"\u003e  \u003cstrong\u003e1 L\u003c\/strong\u003e  \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 10 L\u003c\/div\u003e                          \u003cdiv class=\"aqr-dilution-rend-row\"\u003e  \u003cstrong\u003e5 L\u003c\/strong\u003e  \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 50 L\u003c\/div\u003e                      \u003c\/div\u003e                      \u003cdiv class=\"aqr-dilution-cell-note\"\u003eready to use\u003c\/div\u003e                  \u003c\/div\u003e                    \u003c!-- CARD 3: Animated Equivalencies --\u003e                  \u003cdiv class=\"aqr-dilution-cell\"\u003e                      \u003cdiv class=\"aqr-dilution-cell-label\"\u003eFor \u003cspan id=\"aqrCycleTarget\" class=\"aqr-dilution-cycle-target\"\u003e500 mL\u003c\/span\u003e finished product\u003c\/div\u003e                      \u003cdiv class=\"aqr-dilution-cell-rows\"\u003e                          \u003cdiv class=\"aqr-dilution-eq-row\"\u003e  \u003cstrong id=\"aqrCycleMl\"\u003e50\u003c\/strong\u003e mL \u003cspan\u003ein volume\u003c\/span\u003e  \u003c\/div\u003e                          \u003cdiv class=\"aqr-dilution-eq-row\"\u003e  \u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e  \u003cstrong id=\"aqrCycleG\"\u003e50\u003c\/strong\u003e g \u003cspan\u003ein weight\u003c\/span\u003e  \u003c\/div\u003e                          \u003cdiv class=\"aqr-dilution-eq-row\"\u003e  \u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e  \u003cstrong id=\"aqrCycleSpoon\"\u003e3\u003c\/strong\u003e  \u003cspan id=\"aqrCycleSpoonLabel\"\u003etablespoons\u003c\/span\u003e  \u003c\/div\u003e                          \u003cdiv class=\"aqr-dilution-eq-row\"\u003e  \u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e  \u003cstrong id=\"aqrCyclePump\"\u003e2\u003c\/strong\u003e  \u003cspan id=\"aqrCyclePumpLabel\"\u003epump pressures\u003c\/span\u003e  \u003c\/div\u003e                      \u003c\/div\u003e                  \u003c\/div\u003e                \u003c\/div\u003e          \u003c\/div\u003e            \u003cstyle\u003e\n      .aqr-dilution, .aqr-dilution * { box-sizing: border-box; font-family: inherit; }\n      .aqr-dilution-eyebrow {\n        font-size: 11px;\n        letter-spacing: 0.15em;\n        text-transform: uppercase;\n        color: #86868b;\n        font-weight: 500;\n        margin-bottom: 14px;\n      }\n      .aqr-dilution-grid {\n        display: grid;\n        grid-template-columns: repeat(3, 1fr);\n        gap: 10px;\n      }\n      .aqr-dilution-cell {\n        background: #fff;\n        border: 1px solid #e8e8ed;\n        border-radius: 12px;\n        padding: 18px 16px;\n        display: flex;\n        flex-direction: column;\n      }\n      .aqr-dilution-cell-label {\n        font-size: 10px;\n        letter-spacing: 0.15em;\n        text-transform: uppercase;\n        color: #86868b;\n        font-weight: 500;\n        margin-bottom: 12px;\n        line-height: 1.4;\n      }\n      .aqr-dilution-cell-value {\n        font-size: 38px;\n        font-weight: 600;\n        color: #1d1d1f;\n        letter-spacing: -0.02em;\n        line-height: 1;\n        margin-bottom: 10px;\n      }\n      .aqr-dilution-slash {\n        color: #d2d2d7;\n        font-weight: 300;\n        margin: 0 2px;\n      }\n      .aqr-dilution-cell-rows {\n        display: flex;\n        flex-direction: column;\n        gap: 5px;\n        font-size: 13px;\n        color: #1d1d1f;\n        flex: 1;\n      }\n      .aqr-dilution-cell-rows strong {\n        font-weight: 600;\n        color: #1d1d1f;\n        transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1);\n      }\n      .aqr-dilution-rend-row strong {\n        min-width: 48px;\n        display: inline-block;\n      }\n      .aqr-dilution-rend-arrow {\n        color: #c2a85c;\n        font-weight: 600;\n        margin: 0 2px;\n      }\n      .aqr-dilution-eq-eq {\n        color: #c2a85c;\n        font-weight: 600;\n        margin-right: 2px;\n      }\n      .aqr-dilution-cell-rows span {\n        color: #86868b;\n      }\n      .aqr-dilution-cell-note {\n        font-size: 11px;\n        color: #86868b;\n        margin-top: 10px;\n        line-height: 1.4;\n      }\n      .aqr-dilution-cycle-target {\n        display: inline-block;\n        background: #1d1d1f;\n        color: #fff;\n        padding: 2px 8px;\n        border-radius: 4px;\n        font-weight: 600;\n        letter-spacing: 0.04em;\n        transition: background 0.35s cubic-bezier(0.16, 1, 0.3, 1);\n      }\n      .aqr-dilution-cycle-fade {\n        opacity: 0.2;\n      }\n      @media (max-width: 700px) {\n        .aqr-dilution-grid { grid-template-columns: 1fr; }\n        .aqr-dilution-cell-value { font-size: 32px; }\n      }\n    \u003c\/style\u003e            \u003cscript\u003e\n    (function(){\n      \/\/ Animation: cycle entre 500 mL \/ 1 L \/ 2 L (dilution 1\/10)\n      var cycles = [\n        { target: '500 mL', ml: '50',  g: '50',  spoon: '3',  pump: '2' },\n        { target: '1 L',    ml: '100', g: '100', spoon: '6',  pump: '4' },\n        { target: '2 L',    ml: '200', g: '200', spoon: '12', pump: '8' }\n      ];\n      var idx = 0;\n      var targetEl = document.getElementById('aqrCycleTarget');\n      var mlEl = document.getElementById('aqrCycleMl');\n      var gEl = document.getElementById('aqrCycleG');\n      var spoonEl = document.getElementById('aqrCycleSpoon');\n      var pumpEl = document.getElementById('aqrCyclePump');\n      var spoonLabelEl = document.getElementById('aqrCycleSpoonLabel');\n      var pumpLabelEl = document.getElementById('aqrCyclePumpLabel');\n      \/\/ Regle FR : pluriel uniquement a partir de 2 (0, 1, 1,5 -\u003e singulier)\n      function frPlural(valStr, sing, plur) {\n        var n = parseFloat(String(valStr).replace(',', '.'));\n        return (n \u003e= 2) ? plur : sing;\n      }\n      \n      function tick() {\n        idx = (idx + 1) % cycles.length;\n        var c = cycles[idx];\n        \/\/ Fade out, swap, fade in\n        [targetEl, mlEl, gEl, spoonEl, pumpEl, spoonLabelEl, pumpLabelEl].forEach(function(el){\n          if (el) el.classList.add('aqr-dilution-cycle-fade');\n        });\n        setTimeout(function(){\n          if (targetEl) targetEl.textContent = c.target;\n          if (mlEl) mlEl.textContent = c.ml;\n          if (gEl) gEl.textContent = c.g;\n          if (spoonEl) spoonEl.textContent = c.spoon;\n          if (pumpEl) pumpEl.textContent = c.pump;\n          if (spoonLabelEl) spoonLabelEl.textContent = frPlural(c.spoon, 'cuillère à soupe', 'cuillères à soupe');\n          if (pumpLabelEl) pumpLabelEl.textContent = frPlural(c.pump, 'pression de pompe', 'pressions de pompe');\n          [targetEl, mlEl, gEl, spoonEl, pumpEl, spoonLabelEl, pumpLabelEl].forEach(function(el){\n            if (el) el.classList.remove('aqr-dilution-cycle-fade');\n          });\n        }, 350);\n      }\n      \n      setInterval(tick, 3500);\n    })();\n    \u003c\/script\u003e                          \u003cdetails class=\"aqr-proto-acc\" open\u003e                  \u003csummary class=\"aqr-proto-summary\"\u003e                      \u003cspan class=\"aqr-proto-title\"\u003eVolume bath — exhibition \u0026amp; scissors cut\u003c\/span\u003e                      \u003cspan class=\"aqr-proto-plus\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M12 5 L12 19 M5 12 L19 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e                  \u003c\/summary\u003e                  \u003cdiv class=\"aqr-proto-content\"\u003e                      \u003cp class=\"aqr-proto-subtitle\"\u003eFor competition days or quality scissor cutting\u003c\/p\u003e                      \u003col class=\"aqr-proto-steps\"\u003e                          \u003cli class=\"aqr-proto-step\"\u003e                              \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e                              \u003cdiv class=\"aqr-proto-step-body\"\u003e                                  \u003cdiv class=\"aqr-proto-step-title\"\u003ePre-bath mask\u003c\/div\u003e                                  \u003cdiv class=\"aqr-proto-step-desc\"\u003ePrepare the coat with the pre-bath mask. \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e,  associated with \u003cstrong\u003eHygro Fluid\u003c\/strong\u003e Or \u003cstrong\u003eBombastic\u003c\/strong\u003e.\u003c\/div\u003e                              \u003c\/div\u003e                          \u003c\/li\u003e                          \u003cli class=\"aqr-proto-step\"\u003e                              \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e                              \u003cdiv class=\"aqr-proto-step-body\"\u003e                                  \u003cdiv class=\"aqr-proto-step-title\"\u003eApplication on the mask\u003c\/div\u003e                                  \u003cdiv class=\"aqr-proto-step-desc\"\u003eApply 4Poodle Pro \u003cstrong\u003epure or diluted to 1\/10\u003c\/strong\u003e Apply directly to the mask, without rinsing. Massage, rinse, then repeat.\u003c\/div\u003e                              \u003c\/div\u003e                          \u003c\/li\u003e                          \u003cli class=\"aqr-proto-step\"\u003e                              \u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e                              \u003cdiv class=\"aqr-proto-step-body\"\u003e                                  \u003cdiv class=\"aqr-proto-step-title\"\u003eMaximum volume option\u003c\/div\u003e                                  \u003cdiv class=\"aqr-proto-step-desc\"\u003eFor a show or competition bath, conditioner can be omitted if you are looking for the \u003cstrong\u003emaximum volume\u003c\/strong\u003e.\u003c\/div\u003e                              \u003c\/div\u003e                          \u003c\/li\u003e                          \u003cli class=\"aqr-proto-step\"\u003e                              \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e                              \u003cdiv class=\"aqr-proto-step-body\"\u003e                                  \u003cdiv class=\"aqr-proto-step-title\"\u003eShow finish\u003c\/div\u003e                                  \u003cdiv class=\"aqr-proto-step-desc\"\u003eDry and finish with \u003cstrong\u003eAbsolute 4Poodle\u003c\/strong\u003e :  The 4Poodle Pro + Absolute 4Poodle duo is the absolute reference for curly hair in presentation.\u003c\/div\u003e                              \u003c\/div\u003e                          \u003c\/li\u003e                      \u003c\/ol\u003e                  \u003c\/div\u003e              \u003c\/details\u003e                \u003cdetails class=\"aqr-proto-acc\"\u003e                  \u003csummary class=\"aqr-proto-summary\"\u003e                      \u003cspan class=\"aqr-proto-title\"\u003eWeekly maintenance bath — volume \u0026amp; knot protection\u003c\/span\u003e                      \u003cspan class=\"aqr-proto-plus\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M12 5 L12 19 M5 12 L19 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e                  \u003c\/summary\u003e                  \u003cdiv class=\"aqr-proto-content\"\u003e                      \u003cp class=\"aqr-proto-subtitle\"\u003eFor regular baths, without sacrificing volume\u003c\/p\u003e                      \u003col class=\"aqr-proto-steps\"\u003e                          \u003cli class=\"aqr-proto-step\"\u003e                              \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e                              \u003cdiv class=\"aqr-proto-step-body\"\u003e                                  \u003cdiv class=\"aqr-proto-step-title\"\u003ePre-bath mask\u003c\/div\u003e                                  \u003cdiv class=\"aqr-proto-step-desc\"\u003ePrepare the hair with \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e as a pre-bath mask (20 min).\u003c\/div\u003e                              \u003c\/div\u003e                          \u003c\/li\u003e                          \u003cli class=\"aqr-proto-step\"\u003e                              \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e                              \u003cdiv class=\"aqr-proto-step-body\"\u003e                                  \u003cdiv class=\"aqr-proto-step-title\"\u003eWashing\u003c\/div\u003e                                  \u003cdiv class=\"aqr-proto-step-desc\"\u003eApply 4Poodle Pro, rinse, then repeat.\u003c\/div\u003e                              \u003c\/div\u003e                          \u003c\/li\u003e                          \u003cli class=\"aqr-proto-step\"\u003e                              \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e                              \u003cdiv class=\"aqr-proto-step-body\"\u003e                                  \u003cdiv class=\"aqr-proto-step-title\"\u003eEssential: knot protection\u003c\/div\u003e                                  \u003cdiv class=\"aqr-proto-step-desc\"\u003eFinalize with \u003cstrong\u003eHydrating Cream diluted 1\/50\u003c\/strong\u003e + a spoonful of \u003cstrong\u003eBombastic\u003c\/strong\u003e.  This action protects the hair and \u003cstrong\u003esignificantly delays the return of the nodes\u003c\/strong\u003e between baths.\u003c\/div\u003e                              \u003c\/div\u003e                          \u003c\/li\u003e                      \u003c\/ol\u003e                  \u003c\/div\u003e              \u003c\/details\u003e                \u003cdetails class=\"aqr-proto-acc\"\u003e                  \u003csummary class=\"aqr-proto-summary\"\u003e                      \u003cspan class=\"aqr-proto-title\"\u003eReinforced mineral reconstruction with Bombastic\u003c\/span\u003e                      \u003cspan class=\"aqr-proto-plus\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M12 5 L12 19 M5 12 L19 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e                  \u003c\/summary\u003e                  \u003cdiv class=\"aqr-proto-content\"\u003e                      \u003cp class=\"aqr-proto-subtitle\"\u003eFor furs that are very damaged, dehydrated, or lacking density\u003c\/p\u003e                      \u003col class=\"aqr-proto-steps\"\u003e                          \u003cli class=\"aqr-proto-step\"\u003e                              \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e                              \u003cdiv class=\"aqr-proto-step-body\"\u003e                                  \u003cdiv class=\"aqr-proto-step-title\"\u003eAssociation of protocols\u003c\/div\u003e                                  \u003cdiv class=\"aqr-proto-step-desc\"\u003eCombine 4Poodle Pro with the mineral reconstruction protocol \u003cstrong\u003eBombastic\u003c\/strong\u003e :  Incorporate Bombastic into your pre-bath mask or final conditioner.\u003c\/div\u003e                              \u003c\/div\u003e                          \u003c\/li\u003e                          \u003cli class=\"aqr-proto-step\"\u003e                              \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e                              \u003cdiv class=\"aqr-proto-step-body\"\u003e                                  \u003cdiv class=\"aqr-proto-step-title\"\u003eCombined effect\u003c\/div\u003e                                  \u003cdiv class=\"aqr-proto-step-desc\"\u003eThe effect \u003cstrong\u003eCeramides + Cashmere + Bombastic\u003c\/strong\u003e It restructures the fiber in depth and restores lasting density and shine.\u003c\/div\u003e                              \u003c\/div\u003e                          \u003c\/li\u003e                          \u003cli class=\"aqr-proto-step\"\u003e                              \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e                              \u003cdiv class=\"aqr-proto-step-body\"\u003e                                  \u003cdiv class=\"aqr-proto-step-title\"\u003eRepeat if necessary\u003c\/div\u003e                                  \u003cdiv class=\"aqr-proto-step-desc\"\u003eRepeat the protocol \u003cstrong\u003e2 to 3 times\u003c\/strong\u003e if the fur is very degraded.\u003c\/div\u003e                              \u003c\/div\u003e                          \u003c\/li\u003e                      \u003c\/ol\u003e                  \u003c\/div\u003e              \u003c\/details\u003e          \u003cstyle\u003e\n      .aqr-proto-acc, .aqr-proto-acc * { box-sizing: border-box; font-family: inherit; }\n      .aqr-proto-acc {\n        background: #fff;\n        border: 1px solid #1a1a1a;\n        border-radius: 0;\n        margin-bottom: 8px;\n        overflow: hidden;\n        position: relative;\n      }\n      \/* Perforations verticales SUBTILES en beige, n'interferent jamais avec le texte *\/\n      .aqr-proto-acc::before, .aqr-proto-acc::after {\n        content: \"\";\n        position: absolute;\n        top: 12px; bottom: 12px;\n        width: 1px;\n        background-image: linear-gradient(to bottom, #c8b896 50%, transparent 50%);\n        background-size: 1px 5px;\n        background-repeat: repeat-y;\n        pointer-events: none;\n      }\n      .aqr-proto-acc::before { left: 10px; }\n      .aqr-proto-acc::after { right: 10px; }\n      .aqr-proto-summary {\n        cursor: pointer;\n        list-style: none;\n        padding: 16px 56px 16px 28px;\n        display: flex;\n        align-items: center;\n        gap: 14px;\n        position: relative;\n      }\n      .aqr-proto-summary::-webkit-details-marker { display: none; }\n      .aqr-proto-title {\n        flex: 1;\n        font-size: 14px;\n        font-weight: 600;\n        color: #1a1a1a;\n        line-height: 1.3;\n        min-width: 0;\n      }\n      .aqr-proto-plus {\n        position: absolute;\n        right: 22px; top: 50%; transform: translateY(-50%);\n        width: 22px; height: 22px;\n        display: flex; align-items: center; justify-content: center;\n        border: 1px solid #1a1a1a; border-radius: 50%;\n        color: #1a1a1a; background: transparent;\n        transition: transform 0.3s, background 0.3s, color 0.3s;\n        flex-shrink: 0;\n      }\n      .aqr-proto-acc[open] .aqr-proto-plus {\n        transform: translateY(-50%) rotate(45deg);\n        background: #1a1a1a; color: #F5E6B8;\n      }\n      .aqr-proto-content {\n        padding: 4px 28px 22px;\n        animation: aqrProtoFade 0.4s ease-out;\n      }\n      @keyframes aqrProtoFade { from { opacity: 0; } to { opacity: 1; } }\n      .aqr-proto-subtitle {\n        font-family: Georgia, \"Times New Roman\", serif;\n        font-style: italic;\n        font-size: 13px;\n        color: #555;\n        margin: 0 0 18px;\n        padding-bottom: 12px;\n        border-bottom: 1px dashed #c8b896;\n      }\n      .aqr-proto-steps {\n        list-style: none;\n        padding: 0;\n        margin: 0;\n        display: flex;\n        flex-direction: column;\n        gap: 12px;\n      }\n      .aqr-proto-step {\n        display: flex;\n        gap: 12px;\n        align-items: flex-start;\n      }\n      .aqr-proto-step-marker {\n        flex-shrink: 0;\n        width: 26px; height: 26px;\n        display: flex; align-items: center; justify-content: center;\n        background: transparent;\n        border: 1px solid #1a1a1a;\n        color: #1a1a1a;\n        font-family: Georgia, \"Times New Roman\", serif;\n        font-style: italic;\n        font-weight: 700;\n        font-size: 12px;\n        border-radius: 50%;\n      }\n      .aqr-proto-step-body { flex: 1; padding-top: 2px; }\n      .aqr-proto-step-title {\n        font-size: 11px;\n        letter-spacing: 0.12em;\n        text-transform: uppercase;\n        color: #1a1a1a;\n        font-weight: 700;\n        margin-bottom: 3px;\n      }\n      .aqr-proto-step-desc {\n        font-size: 12px;\n        line-height: 1.6;\n        color: #444;\n      }\n      @media (max-width: 600px) {\n        .aqr-proto-summary { padding: 14px 48px 14px 22px; gap: 10px; }\n        .aqr-proto-title { font-size: 13px; }\n        .aqr-proto-plus { right: 16px; }\n        .aqr-proto-acc::before { left: 8px; }\n        .aqr-proto-acc::after { right: 8px; }\n        .aqr-proto-content { padding: 4px 22px 18px; }\n      }\n      @media (max-width: 380px) {\n        .aqr-proto-summary { padding: 12px 42px 12px 18px; }\n        .aqr-proto-acc::before { left: 6px; }\n        .aqr-proto-acc::after { right: 6px; }\n        .aqr-proto-content { padding: 4px 18px 16px; }\n      }\n    \u003c\/style\u003e                \u003c\/div\u003e        \u003c!-- BLOCK 5: ASSOCIATIONS \u0026  RACES --\u003e      \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e          \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eRecommended Associations \u0026amp; Races\u003c\/h2\u003e          \u003c!-- 4Poodle Pro at its core + modular add-ons If... → Then --\u003e          \u003cdiv class=\"aqr-assoc\"\u003e              \u003cp class=\"aqr-assoc-intro\"\u003e\u003cstrong\u003eThe entire Special One range\u003c\/strong\u003e is compatible with 4Poodle Pro.Our favorite alliances:\u003c\/p\u003e                \u003cdiv class=\"aqr-assoc-rules\"\u003e                  \u003cdiv class=\"aqr-assoc-rule\"\u003e                      \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003eA pre-bath mask is recommended…\u003c\/span\u003e  \u003c\/div\u003e                      \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003eBio Energy Plus + Hygro Fluid or Bombastic\u003c\/strong\u003e  \u003c\/div\u003e                  \u003c\/div\u003e                  \u003cdiv class=\"aqr-assoc-rule\"\u003e                      \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003eA maintenance conditioner is necessary…\u003c\/span\u003e  \u003c\/div\u003e                      \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003eHydrating Cream + Bombastic\u003c\/strong\u003e  \u003c\/div\u003e                  \u003c\/div\u003e                  \u003cdiv class=\"aqr-assoc-rule\"\u003e                      \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003eA showroom finish is desired…\u003c\/span\u003e  \u003c\/div\u003e                      \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003eAbsolute 4Poodle (spray)\u003c\/strong\u003e  \u003c\/div\u003e                  \u003c\/div\u003e              \u003c\/div\u003e          \u003c\/div\u003e            \u003cstyle\u003e\n      .aqr-assoc, .aqr-assoc * { box-sizing: border-box; font-family: inherit; }\n      .aqr-assoc { margin-bottom: 24px; }\n      .aqr-assoc-intro {\n        font-size: 13px; color: #444; line-height: 1.5;\n        margin: 0 0 16px;\n      }\n      .aqr-assoc-rules {\n        display: flex; flex-direction: column;\n      }\n      .aqr-assoc-rule {\n        display: grid; grid-template-columns: 1fr 1.3fr;\n        gap: 18px; align-items: center;\n        padding: 16px 8px;\n        border-bottom: 1px dashed #d8d8d8;\n      }\n      .aqr-assoc-rule:last-child { border-bottom: none; }\n      .aqr-assoc-if {\n        display: flex; align-items: center; gap: 10px;\n        color: #888; font-size: 13px; font-style: italic;\n      }\n      .aqr-assoc-if-tag {\n        background: #1a1a1a; color: #F5E6B8;\n        padding: 3px 10px;\n        font-family: Georgia, \"Times New Roman\", serif; font-weight: 700;\n        font-size: 11px; letter-spacing: 0.05em;\n        font-style: normal;\n        flex-shrink: 0;\n      }\n      .aqr-assoc-then {\n        display: flex; align-items: center; gap: 10px;\n        font-size: 13px;\n      }\n      .aqr-assoc-then-arrow {\n        color: #D4AF37; font-size: 18px; font-weight: 700;\n        flex-shrink: 0;\n      }\n      .aqr-assoc-then strong { color: #1a1a1a; }\n      @media (max-width: 600px) {\n        .aqr-assoc-rule { grid-template-columns: 1fr; gap: 4px; }\n      }\n    \u003c\/style\u003e            \u003c!-- Races in rounded pills --\u003e          \u003ch3 style=\"font-size: 13px; font-weight: 600; color: #1a1a1a; margin: 0 0 12px;\"\u003eWhere 4Poodle Pro makes the difference:\u003c\/h3\u003e          \u003cdiv class=\"aqr-races-mosaic\"\u003e              \u003cspan class=\"aqr-race-tag\"\u003e🐱 All cats\u003c\/span\u003e              \u003cspan class=\"aqr-race-tag\"\u003e✂️ Scissors cut \u0026amp; comb \u003cspan\u003e(all dogs in the living room)\u003c\/span\u003e\u003c\/span\u003e              \u003cspan class=\"aqr-race-tag\"\u003e🐩 Curly furs \u003cspan\u003e(Poodles, Bichons, Kerry Blue, Soft Coated, Bedlington, Havanese, Coton de Tuléar)\u003c\/span\u003e\u003c\/span\u003e              \u003cspan class=\"aqr-race-tag\"\u003e🧸 Double hair \u0026amp; water dogs \u003cspan\u003e(Australian Shepherd, Samoyed, Newfoundland, Spitz)\u003c\/span\u003e\u003c\/span\u003e              \u003cspan class=\"aqr-race-tag\"\u003e💥 To straighten or add volume \u003cspan\u003e(Schnauzer, Fox Terrier, American Cocker Spaniel)\u003c\/span\u003e\u003c\/span\u003e              \u003cspan class=\"aqr-race-tag\"\u003e🐕 Terriers \u003cspan\u003e(volumizing legs)\u003c\/span\u003e\u003c\/span\u003e          \u003c\/div\u003e          \u003cp style=\"margin-top: 14px; font-size: 11px; color: #888; font-style: italic;\"\u003eLong and non-exhaustive list — ideal for all furs to be volumized or straightened.\u003c\/p\u003e            \u003cstyle\u003e\n      .aqr-races-mosaic {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 8px;\n      }\n      .aqr-race-tag {\n        display: inline-flex;\n        align-items: center;\n        gap: 6px;\n        background: #fff;\n        color: #1a1a1a;\n        padding: 9px 16px;\n        border-radius: 100px;\n        font-size: 12px;\n        font-weight: 600;\n        border: 1px solid #e5e5e5;\n        line-height: 1.3;\n      }\n      .aqr-race-tag span {\n        opacity: 0.6;\n        font-weight: 400;\n        font-size: 11px;\n      }\n      @media (max-width: 560px) {\n        .aqr-race-tag { font-size: 11px; padding: 8px 13px; }\n        .aqr-race-tag span { font-size: 10px; }\n      }\n    \u003c\/style\u003e            \u003cdiv style=\"margin-top: 30px; text-align: center; border-top: 1px solid #eee; padding-top: 20px;\"\u003e              \u003cp style=\"font-size: 11px; color: #888; text-transform: uppercase;\"\u003eBiodegradable +90% | SLES and Paraben Free | Not Tested on Animals | HDPE Recyclable\u003c\/p\u003e          \u003c\/div\u003e      \u003c\/div\u003e    \u003c\/div\u003e","brand":"Endemik Sas","offers":[{"title":"5 Litres","offer_id":40019132842163,"sku":"WEX-4POO5000 (57)","price":153.9,"currency_code":"EUR","in_stock":false},{"title":"1 Litre","offer_id":40019132809395,"sku":"WEX-4POO1000 (46)","price":52.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/4poodle-edition-speciale-defrise-et-volumise.png?v=1793144669"},{"product_id":"absolute-4poodle-toilettage-caniche","title":"Absolute 4Poodle - The Best Antistatic Volumizing Spray","description":"\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e        \u003c!-- BLOCK 1: INTRO --\u003e      \u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e          \u003cdiv style=\"font-size: 1.1em; margin-bottom: 25px; border-left: 3px solid #1a1a1a; padding-left: 15px;\"\u003e              \u003cstrong\u003eABSOLUTE 4POODLE\u003c\/strong\u003e is the Special One anti-static conditioning finishing spray, dedicated to all hair types with volume or those needing to be straightened. Its precious formula — enriched with \u003cstrong\u003ecashmere proteins and Alba white truffle extract\u003c\/strong\u003e — gives texture and volume to the coat without weighing it down. \u003cstrong\u003eUnique on the market\u003c\/strong\u003e for the shine and straightening effect it provides.     \u003c\/div\u003e            \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eWho is this product for?\u003c\/span\u003e          \u003cp style=\"margin-bottom: 15px; font-size: 14px;\"\u003eEssential for breeds whose coat puffs up, curls, or needs to be tamed before cutting or showing.\u003c\/p\u003e            \u003ctable style=\"width: 100%; border-collapse: separate; border-spacing: 5px; margin-left: -5px; table-layout: fixed;\"\u003e              \u003ctbody\u003e                  \u003ctr\u003e                      \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003e✅ Groomers\u0026amp;                      \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003e✅ Livestock farmers\u003c\/td\u003e                      \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003e✅ Individuals\u003c\/td\u003e                  \u003c\/tr\u003e                  \u003ctr\u003e                      \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003e✅ Competitors\u003c\/td\u003e                      \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003e✅ Handlers\u003c\/td\u003e                      \u003ctd style=\"border: none; background: transparent;\"\u003e\u003c\/td\u003e                  \u003c\/tr\u003e              \u003c\/tbody\u003e          \u003c\/table\u003e      \u003c\/div\u003e        \u003c!-- RADAR BLOCK: COSMETOLOGICAL DIAGRAM --\u003e      \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e          \u003cdiv id=\"so-radar-widget\" style=\"width:100%;max-width:480px;margin:0 auto;background:#fff;border:1px solid #e5e5e5;font-family:inherit;color:#1a1a1a;line-height:1.4;\"\u003e              \u003cdiv style=\"padding:24px 28px 20px;overflow:visible;\"\u003e                  \u003cspan style=\"font-size:11px;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:#999;margin-bottom:22px;display:block;\"\u003eCosmetological diagram of Absolute 4Poodle\u003c\/span\u003e                  \u003cdiv id=\"so-radar-area\" style=\"position:relative;width:100%;max-width:340px;aspect-ratio:1;margin:0 auto;overflow:visible;\"\u003e                      \u003csvg id=\"so-radar-svg\" style=\"width:100%;height:100%;overflow:visible;\" viewbox=\"0 0 360 360\"\u003e\u003c\/svg\u003e                  \u003c\/div\u003e                  \u003cdiv id=\"so-radar-footer\"\u003e\u003c\/div\u003e              \u003c\/div\u003e          \u003c\/div\u003e      \u003c\/div\u003e        \u003cstyle\u003e\n    #so-radar-widget * { box-sizing: border-box; }\n    .so-label {\n      position: absolute;\n      transform: translate(-50%, -50%);\n      text-align: center;\n      pointer-events: none;\n      white-space: nowrap;\n      opacity: 0;\n      animation: so-fadeUp 0.5s ease forwards;\n    }\n    .so-label .so-lname {\n      font-size: 9px;\n      font-weight: 600;\n      text-transform: uppercase;\n      letter-spacing: 0.08em;\n      color: #999;\n      display: block;\n      margin-bottom: 1px;\n      font-family: inherit;\n    }\n    .so-label .so-lval {\n      font-size: 24px;\n      font-weight: 700;\n      color: #1a1a1a;\n      line-height: 1;\n      font-family: inherit;\n    }\n    .so-label .so-lmax {\n      font-size: 12px;\n      font-weight: 400;\n      color: #bbb;\n      font-family: inherit;\n    }\n    .so-footer-bar {\n      margin-top: 18px;\n      border-top: 1px solid #eee;\n      padding-top: 14px;\n      display: flex;\n      align-items: center;\n      flex-wrap: wrap;\n      gap: 6px;\n      opacity: 0;\n      animation: so-footerIn 0.5s ease forwards 0.8s;\n    }\n    .so-footer-label {\n      font-size: 9px;\n      font-weight: 700;\n      text-transform: uppercase;\n      letter-spacing: 0.1em;\n      color: #999;\n      font-family: inherit;\n      margin-right: 2px;\n    }\n    .so-footer-chip {\n      display: inline-flex;\n      align-items: center;\n      gap: 4px;\n      background: #1a1a1a;\n      padding: 4px 10px;\n      font-size: 11px;\n      font-weight: 600;\n      color: #fff;\n      font-family: inherit;\n    }\n    .so-footer-chip-score {\n      font-weight: 400;\n      color: rgba(255,255,255,0.4);\n      font-size: 10px;\n    }\n    .so-shape-fill   { opacity: 0; animation: so-shapeIn 0.9s ease forwards 0.2s; }\n    .so-shape-stroke { opacity: 0; animation: so-shapeIn 0.7s ease forwards 0.35s; }\n    .so-dot          { opacity: 0; animation: so-dotIn 0.35s ease forwards; }\n    @keyframes so-shapeIn  { to { opacity: 1; } }\n    @keyframes so-dotIn    { to { opacity: 1; } }\n    @keyframes so-footerIn { to { opacity: 1; } }\n    @keyframes so-fadeUp {\n      from { opacity: 0; transform: translate(-50%, calc(-50% + 6px)); }\n      to   { opacity: 1; transform: translate(-50%, -50%); }\n    }\n    @media (max-width: 480px) {\n      #so-radar-widget \u003e div { padding: 18px 16px 14px !important; }\n      #so-radar-area { max-width: 300px !important; }\n      .so-label .so-lname { font-size: 8px !important; letter-spacing: 0.05em !important; }\n      .so-label .so-lval  { font-size: 19px !important; }\n      .so-label .so-lmax  { font-size: 9px !important; }\n      .so-footer-chip { font-size: 10px !important; padding: 3px 8px !important; }\n      .so-footer-label { font-size: 8px !important; }\n    }\n    @media (max-width: 360px) {\n      #so-radar-area { max-width: 260px !important; }\n      .so-label .so-lval { font-size: 16px !important; }\n      .so-label .so-lname { font-size: 7px !important; }\n    }\n  \u003c\/style\u003e        \u003cscript\u003e\n  (function() {\n    var PRODUCT = {\n      criteria: [\n        { label: \"Brillance\",    value: 5 },\n        { label: \"Défrisage\",    value: 5 },\n        { label: \"Démêlant\",     value: 3 },\n        { label: \"Hydratation\",  value: 4 },\n        { label: \"Volume\",       value: 4 }\n      ]\n    };\n\n    var svg  = document.getElementById(\"so-radar-svg\");\n    var area = document.getElementById(\"so-radar-area\");\n    var data = PRODUCT.criteria;\n    var n    = data.length;\n    var cx = 180, cy = 180, maxR = 95;\n\n    function ang(i) { return (Math.PI * 2 * i \/ n) - Math.PI \/ 2; }\n    function pt(i, v, mx) {\n      var a = ang(i), r = (v \/ mx) * maxR;\n      return { x: cx + r * Math.cos(a), y: cy + r * Math.sin(a) };\n    }\n    function svgEl(tag) { return document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", tag); }\n\n    for (var l = 1; l \u003c= 5; l++) {\n      var pts = [];\n      for (var i = 0; i \u003c n; i++) { var p = pt(i, l, 5); pts.push(p.x + \",\" + p.y); }\n      var poly = svgEl(\"polygon\");\n      poly.setAttribute(\"points\", pts.join(\" \"));\n      poly.setAttribute(\"fill\", \"none\");\n      poly.setAttribute(\"stroke\", l === 5 ? \"rgba(0,0,0,0.09)\" : \"rgba(0,0,0,0.04)\");\n      poly.setAttribute(\"stroke-width\", l === 5 ? \"1\" : \"0.6\");\n      if (l === 5) poly.setAttribute(\"stroke-dasharray\", \"3,3\");\n      svg.appendChild(poly);\n    }\n\n    for (var i = 0; i \u003c n; i++) {\n      var p = pt(i, 5, 5);\n      var line = svgEl(\"line\");\n      line.setAttribute(\"x1\", cx); line.setAttribute(\"y1\", cy);\n      line.setAttribute(\"x2\", p.x); line.setAttribute(\"y2\", p.y);\n      line.setAttribute(\"stroke\", \"rgba(0,0,0,0.04)\");\n      line.setAttribute(\"stroke-width\", \"0.6\");\n      svg.appendChild(line);\n    }\n\n    var shapePts = [];\n    for (var i = 0; i \u003c n; i++) {\n      var p = pt(i, data[i].value, 5);\n      shapePts.push(p.x + \",\" + p.y);\n    }\n    var ptsStr = shapePts.join(\" \");\n\n    var fillPoly = svgEl(\"polygon\");\n    fillPoly.setAttribute(\"points\", ptsStr);\n    fillPoly.setAttribute(\"fill\", \"rgba(0,0,0,0.04)\");\n    fillPoly.classList.add(\"so-shape-fill\");\n    svg.appendChild(fillPoly);\n\n    var strokePoly = svgEl(\"polygon\");\n    strokePoly.setAttribute(\"points\", ptsStr);\n    strokePoly.setAttribute(\"fill\", \"none\");\n    strokePoly.setAttribute(\"stroke\", \"#1a1a1a\");\n    strokePoly.setAttribute(\"stroke-width\", \"1.8\");\n    strokePoly.setAttribute(\"stroke-linejoin\", \"round\");\n    strokePoly.classList.add(\"so-shape-stroke\");\n    svg.appendChild(strokePoly);\n\n    for (var i = 0; i \u003c n; i++) {\n      (function(i) {\n        var d = data[i];\n        var p = pt(i, d.value, 5);\n        var delay = 0.5 + i * 0.1;\n\n        var halo = svgEl(\"circle\");\n        halo.setAttribute(\"cx\", p.x); halo.setAttribute(\"cy\", p.y);\n        halo.setAttribute(\"r\", \"7\");\n        halo.setAttribute(\"fill\", \"none\");\n        halo.setAttribute(\"stroke\", \"#1a1a1a\");\n        halo.setAttribute(\"stroke-width\", \"1\");\n        halo.setAttribute(\"stroke-opacity\", \"0.12\");\n        halo.classList.add(\"so-dot\");\n        halo.style.animationDelay = delay + \"s\";\n        svg.appendChild(halo);\n\n        var dot = svgEl(\"circle\");\n        dot.setAttribute(\"cx\", p.x); dot.setAttribute(\"cy\", p.y);\n        dot.setAttribute(\"r\", \"3\");\n        dot.setAttribute(\"fill\", \"#1a1a1a\");\n        dot.classList.add(\"so-dot\");\n        dot.style.animationDelay = delay + \"s\";\n        svg.appendChild(dot);\n\n        var lp = pt(i, 6.5, 5);\n        var pctX = (lp.x \/ 360) * 100;\n        var pctY = (lp.y \/ 360) * 100;\n\n        var lbl = document.createElement(\"div\");\n        lbl.className = \"so-label\";\n        lbl.style.left = pctX + \"%\";\n        lbl.style.top  = pctY + \"%\";\n        lbl.style.animationDelay = (0.4 + i * 0.1) + \"s\";\n        lbl.innerHTML =\n          '\u003cspan class=\"so-lname\"\u003e' + d.label + '\u003c\/span\u003e' +\n          '\u003cspan class=\"so-lval\"\u003e' + d.value + '\u003cspan class=\"so-lmax\"\u003e\/5\u003c\/span\u003e\u003c\/span\u003e';\n        area.appendChild(lbl);\n      })(i);\n    }\n\n    var maxVal = 0;\n    for (var i = 0; i \u003c n; i++) { if (data[i].value \u003e maxVal) maxVal = data[i].value; }\n    var bests = [];\n    for (var i = 0; i \u003c n; i++) { if (data[i].value === maxVal) bests.push(data[i]); }\n\n    var chipsHtml = '';\n    for (var i = 0; i \u003c bests.length; i++) {\n      chipsHtml +=\n        '\u003cspan class=\"so-footer-chip\"\u003e' +\n          bests[i].label +\n          '\u003cspan class=\"so-footer-chip-score\"\u003e' + bests[i].value + '\/5\u003c\/span\u003e' +\n        '\u003c\/span\u003e';\n    }\n\n    document.getElementById(\"so-radar-footer\").innerHTML =\n      '\u003cdiv class=\"so-footer-bar\"\u003e' +\n        '\u003cspan class=\"so-footer-label\"\u003e★ ' + (bests.length \u003e 1 ? 'Points forts' : 'Point fort') + '\u003c\/span\u003e' +\n        chipsHtml +\n      '\u003c\/div\u003e';\n  })();\n  \u003c\/script\u003e        \u003c!-- BLOCK 2: EXPERTISE \u0026  RESULTS --\u003e      \u003cdiv style=\"padding: 30px 20px; background-color: #ffffff;\"\u003e          \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eExpertise \u0026amp; Results\u003c\/span\u003e            \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eReady to use, Absolute 4Poodle moisturizes the curly structure of fur and helps to \u003cstrong\u003etame the curls, even the most difficult ones\u003c\/strong\u003e.  From the first use, the coat is light, rehydrated, and naturally manageable—ready for trimming, styling, or showing. It's also ideal as a last-minute conditioner when the coat frizzes or loses volume.\u003c\/p\u003e            \u003cdiv style=\"background: #f6f6f6; padding: 20px; border: 1px solid #e5e5e5; margin-top: 20px;\"\u003e              \u003cul style=\"padding-left: 20px; margin: 0; font-size: 14px; list-style-type: none;\"\u003e                  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003eHair straightening \u0026amp; volume :\u003c\/strong\u003e Tames curls and adds texture without weighing down the coat.\u003c\/li\u003e                  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003eExceptional brilliance:\u003c\/strong\u003e A luminous and satiny result from the first application.\u003c\/li\u003e                  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003eAntistatic:\u003c\/strong\u003e Eliminates electrostatic charge for a disciplined and tidy coat.\u003c\/li\u003e                  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003eFilling effect:\u003c\/strong\u003e The Alba truffle provides lasting visual density and elasticity.\u003c\/li\u003e                  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003eHydration \u0026amp; compactness:\u003c\/strong\u003e Cashmere proteins make the coat compact, shiny and nourished.\u003c\/li\u003e                  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003eRegeneration during brushing:\u003c\/strong\u003e Revitalizes the coat with every brush stroke.\u003c\/li\u003e                  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003eReady for the cut:\u003c\/strong\u003e Ideal before cutting with scissors — the hair is perfectly relaxed and even.\u003c\/li\u003e                  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003eInvisible under all dresses:\u003c\/strong\u003e No visible residue, regardless of coat color.\u003c\/li\u003e                  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003eMulti-application:\u003c\/strong\u003e Can be used several times a day without risk of accumulation.\u003c\/li\u003e                  \u003cli\u003e✅  \u003cstrong\u003eSignature fragrance:\u003c\/strong\u003e An elegant and persistent olfactory note, signed Special One.\u003c\/li\u003e              \u003c\/ul\u003e          \u003c\/div\u003e      \u003c\/div\u003e        \u003c!-- BLOCK 3: ASSETS --\u003e      \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e          \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eSynergy of Natural Active Ingredients\u003c\/span\u003e          \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eA precious and refined formula, built around two exceptional ingredients rarely used in animal cosmetics.\u003c\/p\u003e            \u003ctable style=\"width: 100%; border-collapse: separate; border-spacing: 8px; margin-left: -8px;\"\u003e              \u003ctbody\u003e                  \u003ctr\u003e                      \u003ctd style=\"width: 50%; border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e                          \u003cstrong\u003e🍀 Cashmere Proteins\u003c\/strong\u003e\u003cbr\u003e                          \u003cspan style=\"font-size: 11px; color: #666;\"\u003eThey make the coat compact, shiny and hydrated. They form a light protective coating that structures curly hair without weighing it down.\u003c\/span\u003e                      \u003c\/td\u003e                      \u003ctd style=\"width: 50%; border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e                          \u003cstrong\u003e🍀 Organic Alba White Truffle Extract\u003c\/strong\u003e\u003cbr\u003e                          \u003cspan style=\"font-size: 11px; color: #666;\"\u003eItalian excellence with extraordinary anti-aging and revitalizing properties. Provides an unprecedented plumping effect and lasting elasticity to the coat.\u003c\/span\u003e                      \u003c\/td\u003e                  \u003c\/tr\u003e              \u003c\/tbody\u003e          \u003c\/table\u003e      \u003c\/div\u003e        \u003c!-- BLOCK 4: PROTOCOLS --\u003e      \u003cdiv style=\"padding: 30px 20px; background-color: #ffffff;\"\u003e          \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eProtocols \u0026amp; Suggestions for use\u003c\/span\u003e            \u003cdiv style=\"margin-bottom: 15px; padding: 12px 15px; background: #f6f6f6; border: 1px solid #e5e5e5; font-size: 13px; font-weight: 600;\"\u003e              💡 Product \u003cstrong\u003eready to use\u003c\/strong\u003e,  undiluted. Spray 20–30 cm from dry or damp fur, then brush.     \u003c\/div\u003e            \u003cdetails style=\"border: 1px solid #e5e5e5; background: #fff; margin-bottom: 10px;\"\u003e              \u003csummary style=\"padding: 15px; cursor: pointer; font-weight: 600; display: flex; justify-content: space-between; background-color: #fafafa; font-size: 14px;\"\u003e                  \u003cspan\u003eExample 1 🔥 Finishing after bath — straightening \u0026amp; scissor cut\u003c\/span\u003e                  \u003cspan style=\"font-size: 10px; color: #888;\"\u003eSCROLL DOWN ▼\u003c\/span\u003e              \u003c\/summary\u003e              \u003cdiv style=\"padding: 15px; border-top: 1px solid #eee; font-size: 13px; line-height: 1.8;\"\u003e         The ideal final step after bathing and drying:\u003cbr\u003e         1. Spray Absolute 4Poodle over the entire dry or wet coat, from 20–30 cm away.\u003cbr\u003e         2. Brush \u003cstrong\u003elayer by layer, dividing the hair into sections\u003c\/strong\u003e — the hair relaxes, the curls open up and the volume is revealed evenly.\u003cbr\u003e         3. The fur is now \u003cstrong\u003eperfectly disciplined and ready for the scissor cut\u003c\/strong\u003e :  Homogeneous, lightweight, with no resistance. Can be reapplied as many times as necessary during cutting.\u003cbr\u003e         If you want to fix the result: finalize with \u003cstrong\u003eFinal Fix Ecologic or Strong Gas\u003c\/strong\u003e.\u003cbr\u003e\u003cbr\u003e                  \u003cdiv style=\"background: #fff8e1; border-left: 3px solid #f0a500; padding: 10px 12px; font-size: 12px;\"\u003e                      ⚠️  \u003cstrong\u003eTop-Knot exception:\u003c\/strong\u003e Do not apply Absolute 4Poodle to the Top-Knot before the hairspray — the product would prevent the fixative from adhering properly.         \u003c\/div\u003e              \u003c\/div\u003e          \u003c\/details\u003e            \u003cdetails style=\"border: 1px solid #e5e5e5; background: #fff; margin-bottom: 10px;\"\u003e              \u003csummary style=\"padding: 15px; cursor: pointer; font-weight: 600; display: flex; justify-content: space-between; background-color: #fafafa; font-size: 14px;\"\u003e                  \u003cspan\u003eExample 2 🔥 Express pre-ring touch-up — straightening \u0026amp; volume loss\u003c\/span\u003e                  \u003cspan style=\"font-size: 10px; color: #888;\"\u003eSCROLL DOWN ▼\u003c\/span\u003e              \u003c\/summary\u003e              \u003cdiv style=\"padding: 15px; border-top: 1px solid #eee; font-size: 13px; line-height: 1.8;\"\u003e         When the hair frizzes or loses volume between bathing and presentation:\u003cbr\u003e         1. Spray Absolute 4Poodle directly onto the affected areas.\u003cbr\u003e         2. Brush to \u003cstrong\u003eregenerate the volume, eliminate electrostatics\u003c\/strong\u003e and restore its shape.\u003cbr\u003e         Immediate result: restructured, shiny and impeccable coat for the ring — without a complete re-bath.       \u003c\/div\u003e          \u003c\/details\u003e            \u003cdetails style=\"border: 1px solid #e5e5e5; background: #fff; margin-bottom: 10px;\"\u003e              \u003csummary style=\"padding: 15px; cursor: pointer; font-weight: 600; display: flex; justify-content: space-between; background-color: #fafafa; font-size: 14px;\"\u003e                  \u003cspan\u003eExample 3 🔥 Daily maintenance brushing\u003c\/span\u003e                  \u003cspan style=\"font-size: 10px; color: #888;\"\u003eSCROLL DOWN ▼\u003c\/span\u003e              \u003c\/summary\u003e              \u003cdiv style=\"padding: 15px; border-top: 1px solid #eee; font-size: 13px; line-height: 1.8;\"\u003e         Absolute 4Poodle can be integrated into the grooming routine between baths:\u003cbr\u003e         1. Spray onto the dry coat from 20–30 cm away.\u003cbr\u003e         2. Gently brush the product \u003cstrong\u003eregenerates the coat with each pass\u003c\/strong\u003e,  It maintains hydration and limits daily re-curling.\u003cbr\u003e         The signature Special One fragrance is deposited on the coat with each use.       \u003c\/div\u003e          \u003c\/details\u003e      \u003c\/div\u003e        \u003c!-- BLOCK 5: ASSOCIATIONS \u0026  RACES --\u003e      \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e          \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eRecommended Associations \u0026amp; Races\u003c\/span\u003e            \u003cp style=\"font-size: 13px; margin-bottom: 10px;\"\u003eAbsolute 4Poodle is the finishing touch to a complete bath. Two typical protocols:\u003c\/p\u003e          \u003cdiv style=\"background: #fff; border: 1px solid #eee; padding: 12px 16px; font-size: 13px; margin-bottom: 15px; line-height: 2;\"\u003e              🔹  \u003cstrong\u003eBio Energy\u003c\/strong\u003e → \u003cstrong\u003e4Poodle Pro Shampoo\u003c\/strong\u003e → \u003cstrong\u003eHydrating Cream\u003c\/strong\u003e → \u003cstrong\u003eAbsolute 4Poodle\u003c\/strong\u003e\u003cbr\u003e              🔹  \u003cstrong\u003eBio Energy\u003c\/strong\u003e → \u003cstrong\u003ePlatynum Pro\u003c\/strong\u003e → \u003cstrong\u003eHydrating Cream\u003c\/strong\u003e → \u003cstrong\u003eAbsolute 4Poodle\u003c\/strong\u003e\u003cbr\u003e              🔹 If fixing is necessary: \u003cstrong\u003eFinal Fix Ecologic\u003c\/strong\u003e Or \u003cstrong\u003eStrong Gas\u003c\/strong\u003e in finish     \u003c\/div\u003e            \u003ctable style=\"width: 100%; border-collapse: collapse; font-size: 13px; margin-top: 10px;\"\u003e              \u003ctbody\u003e                  \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️  \u003cstrong\u003ePoodles (Toy, Miniature, Standard, Royal)\u003c\/strong\u003e — product historically designed for this breed, incomparable result on the curl.\u003c\/td\u003e\u003c\/tr\u003e                  \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Bichon Frisés, Bolonais — controlled volume and straightening.\u003c\/td\u003e\u003c\/tr\u003e                  \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Kerry Blue Terrier, Soft Coated Wheaten, Bedlington — curly or wavy hair to be tamed before cutting.\u003c\/td\u003e\u003c\/tr\u003e                  \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ All breeds whose hair puffs up, waves, or requires straightening before showing or cutting.\u003c\/td\u003e\u003c\/tr\u003e                  \u003ctr\u003e\u003ctd style=\"padding: 10px 0;\"\u003e✔️ Show dogs — last-minute conditioning, shine and pre-ring presentation guaranteed.\u003c\/td\u003e\u003c\/tr\u003e              \u003c\/tbody\u003e          \u003c\/table\u003e            \u003cdiv style=\"margin-top: 30px; text-align: center; border-top: 1px solid #eee; padding-top: 20px;\"\u003e              \u003cp style=\"font-size: 11px; color: #888; text-transform: uppercase;\"\u003eBiodegradable +90% | SLES and Paraben Free | Not Tested on Animals | HDPE Recyclable\u003c\/p\u003e          \u003c\/div\u003e      \u003c\/div\u003e    \u003c\/div\u003e","brand":"Endemik Sas","offers":[{"title":"250 mL","offer_id":40021095678131,"sku":"WEX-A4POO250 (44)","price":39.0,"currency_code":"EUR","in_stock":true},{"title":"1 Litre","offer_id":57210623099225,"sku":"(75)","price":93.6,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/absolute-4poodle-le-meilleur-spray-volume-antistatique.png?v=1793144669"},{"product_id":"bombastic-special-one","title":"BOMBASTIC - the must-have serum ✨","description":"\u003c!-- ============================================== DESIGN SYSTEM — Visual Refinement ============================================= --\u003e  \u003cstyle id=\"aqr-design-system\"\u003e\n  \/* On garde la police du theme Shopify - juste antialiasing pour le rendu *\/\n  body, body * {\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n  \n  \/* === Variables du système de design === *\/\n  :root {\n    --ds-black: #1d1d1f;        \/* Noir doux — légèrement plus chaud que le noir pur *\/\n    --ds-text: #1d1d1f;\n    --ds-text-secondary: #86868b; \/* Gris secondaire *\/\n    --ds-text-tertiary: #a1a1a6;\n    --ds-bg: #ffffff;\n    --ds-bg-elevated: #fbfbfd;   \/* Gris très clair *\/\n    --ds-bg-soft: #f5f5f7;       \/* Gris très clair *\/\n    --ds-border: #d2d2d7;\n    --ds-border-soft: #e8e8ed;\n    --ds-gold: #c2a85c;          \/* Or subtil et mat *\/\n    --ds-gold-pale: #f0e6cf;\n    --ds-radius-sm: 8px;\n    --ds-radius-md: 12px;\n    --ds-radius-lg: 18px;\n    --ds-radius-xl: 22px;\n    --ds-ease: cubic-bezier(0.16, 1, 0.3, 1);\n    --ds-duration: 0.35s;\n  }\n\n  \/* === Couleurs noir \/ doré === *\/\n  \/* Cards expertise (Proposition D) *\/\n  .aqr-benefit-card {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    border-radius: var(--ds-radius-md) !important;\n    padding: 18px 20px !important;\n    transition: transform var(--ds-duration) var(--ds-ease),\n                box-shadow var(--ds-duration) var(--ds-ease),\n                border-color var(--ds-duration) var(--ds-ease) !important;\n    \/* Force l'alignement haut de chaque card dans la grille *\/\n    align-self: stretch !important;\n    margin: 0 !important;\n    vertical-align: top !important;\n  }\n  .aqr-benefits-grid {\n    align-items: start !important;\n    align-content: start !important;\n  }\n  \/* MEME chose pour les audience cards et autres grilles *\/\n  .aqr-audience-grid {\n    align-items: start !important;\n    align-content: start !important;\n  }\n  .aqr-audience-card {\n    align-self: stretch !important;\n    margin: 0 !important;\n  }\n  .aqr-benefit-card::before {\n    background: var(--ds-text) !important;\n    width: 3px !important;\n  }\n  .aqr-benefit-card:hover {\n    background: var(--ds-bg) !important;\n    transform: translateY(-2px);\n    box-shadow: 0 8px 24px rgba(0,0,0,0.06);\n    border-color: var(--ds-border) !important;\n  }\n  .aqr-benefit-card:hover::before {\n    width: 3px !important;\n    background: var(--ds-gold) !important;\n  }\n  .aqr-benefit-corner {\n    width: 14px !important;\n    height: 14px !important;\n    background: linear-gradient(225deg, var(--ds-gold-pale) 50%, transparent 50%) !important;\n    border-top-right-radius: var(--ds-radius-md) !important;\n  }\n  .aqr-benefit-icon {\n    background: var(--ds-text) !important;\n    color: var(--ds-gold) !important;\n    border-radius: var(--ds-radius-sm) !important;\n  }\n  .aqr-benefit-title {\n    color: var(--ds-text) !important;\n    font-weight: 600 !important;\n    letter-spacing: -0.01em !important;\n    font-size: 14px !important;\n  }\n  .aqr-benefit-desc {\n    color: var(--ds-text-secondary) !important;\n    font-size: 12px !important;\n    line-height: 1.55 !important;\n  }\n\n  \/* === Cards Audience === *\/\n  .aqr-audience-card {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    border-radius: var(--ds-radius-md) !important;\n    padding: 18px 12px !important;\n    transition: transform var(--ds-duration) var(--ds-ease),\n                box-shadow var(--ds-duration) var(--ds-ease),\n                border-color var(--ds-duration) var(--ds-ease) !important;\n  }\n  .aqr-audience-card:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 8px 24px rgba(0,0,0,0.06);\n    border-color: var(--ds-border) !important;\n  }\n  .aqr-audience-icon {\n    background: var(--ds-bg-soft) !important;\n    border-radius: 50% !important;\n    width: 44px !important;\n    height: 44px !important;\n  }\n  .aqr-audience-icon svg { stroke: var(--ds-text) !important; }\n  .aqr-audience-name {\n    color: var(--ds-text) !important;\n    font-weight: 500 !important;\n    font-size: 13px !important;\n    letter-spacing: -0.01em !important;\n  }\n\n  \/* === Eyebrows === *\/\n  span[style*=\"text-transform: uppercase\"][style*=\"color: #999\"] {\n    color: var(--ds-text-secondary) !important;\n    font-weight: 500 !important;\n    letter-spacing: 0.08em !important;\n    font-size: 11px !important;\n    margin-bottom: 18px !important;\n  }\n\n  \/* === Blocs principaux : fond uniforme === *\/\n  \/* Les blocs sur fond crème deviennent gris pâle *\/\n  div[style*=\"background-color: #FBF9F5\"] {\n    background-color: var(--ds-bg-soft) !important;\n  }\n\n  \/* === Bloc Dilution === *\/\n  .aqr-dilution {\n    border: none !important;\n    padding: 0 !important;\n    background: transparent !important;\n  }\n  \/* Forcer l'alignement haut + hauteur egale des 3 cartes dilution *\/\n  .aqr-dilution-grid {\n    align-items: stretch !important;\n  }\n  .aqr-dilution-cell {\n    align-self: stretch !important;\n    margin: 0 !important;\n  }\n  .aqr-dilution-eyebrow {\n    color: var(--ds-text-secondary) !important;\n    letter-spacing: 0.08em !important;\n    font-weight: 500 !important;\n    margin-bottom: 20px !important;\n  }\n  .aqr-dilution-eq-target {\n    background: var(--ds-text) !important;\n    color: var(--ds-bg) !important;\n    border-radius: 6px !important;\n    padding: 4px 12px !important;\n  }\n  .aqr-dilution-eq-item {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    border-radius: var(--ds-radius-sm) !important;\n    padding: 14px 8px !important;\n  }\n  .aqr-dilution-eq-val {\n    font-weight: 700 !important;\n    color: var(--ds-text) !important;\n  }\n  .aqr-dilution-eq-name {\n    color: var(--ds-text-secondary) !important;\n  }\n  .aqr-dilution-eq-sep {\n    color: var(--ds-text-tertiary) !important;\n  }\n  .aqr-dilution-eq-or span {\n    color: var(--ds-text-tertiary) !important;\n  }\n\n  \/* === Chips rendement (le trio horizontal) === *\/\n  .aqr-dilution-chips-label {\n    color: var(--ds-text-secondary) !important;\n    font-weight: 500 !important;\n    letter-spacing: 0.08em !important;\n  }\n  .aqr-dilution-chip-from,\n  .aqr-dilution-chip-to {\n    color: var(--ds-text) !important;\n  }\n  .aqr-dilution-chip-arr { color: var(--ds-gold) !important; }\n  .aqr-dilution-chips-foot { color: var(--ds-text-secondary) !important; }\n  \n  \/* === Accordeons Protocoles === *\/\n  .aqr-proto-acc {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border) !important;\n    border-radius: var(--ds-radius-md) !important;\n    overflow: hidden;\n    transition: box-shadow var(--ds-duration) var(--ds-ease) !important;\n  }\n  .aqr-proto-acc[open] {\n    box-shadow: 0 12px 32px rgba(0,0,0,0.08);\n  }\n  \/* Suppression des perforations beige du ticket *\/\n  .aqr-proto-acc::before,\n  .aqr-proto-acc::after {\n    display: none !important;\n  }\n  .aqr-proto-summary {\n    padding: 18px 56px 18px 22px !important; \/* right plus large pour le +, left aere *\/\n  }\n  .aqr-proto-title {\n    word-wrap: break-word;\n    overflow-wrap: break-word;\n    hyphens: auto;\n  }\n  @media (max-width: 600px) {\n    .aqr-proto-summary {\n      padding: 16px 50px 16px 18px !important;\n    }\n    .aqr-proto-plus {\n      right: 16px !important;\n    }\n    .aqr-proto-content {\n      padding: 4px 18px 18px !important;\n    }\n  }\n  @media (max-width: 380px) {\n    .aqr-proto-summary {\n      padding: 14px 44px 14px 14px !important;\n    }\n    .aqr-proto-plus {\n      right: 12px !important;\n    }\n    .aqr-proto-content {\n      padding: 4px 14px 16px !important;\n    }\n  }\n  .aqr-proto-title {\n    color: var(--ds-text) !important;\n    font-weight: 500 !important;\n    letter-spacing: -0.01em !important;\n    font-size: 15px !important;\n  }\n  .aqr-proto-plus {\n    border-color: var(--ds-border) !important;\n    color: var(--ds-text-secondary) !important;\n    background: transparent !important;\n    transition: transform var(--ds-duration) var(--ds-ease),\n                background var(--ds-duration) var(--ds-ease),\n                color var(--ds-duration) var(--ds-ease) !important;\n  }\n  .aqr-proto-acc[open] .aqr-proto-plus {\n    background: var(--ds-text) !important;\n    color: var(--ds-bg) !important;\n    border-color: var(--ds-text) !important;\n  }\n  .aqr-proto-content { padding: 4px 24px 22px !important; }\n  .aqr-proto-subtitle {\n    color: var(--ds-text-secondary) !important;\n    border-bottom: 1px solid var(--ds-border-soft) !important;\n  }\n  .aqr-proto-step-marker {\n    background: var(--ds-bg-soft) !important;\n    border-color: transparent !important;\n    color: var(--ds-text) !important;\n  }\n  .aqr-proto-step-title {\n    color: var(--ds-text) !important;\n    letter-spacing: 0.06em !important;\n    font-weight: 600 !important;\n  }\n  .aqr-proto-step-desc {\n    color: var(--ds-text-secondary) !important;\n  }\n\n  \/* === Associations Si → Alors === *\/\n  .aqr-assoc-intro {\n    color: var(--ds-text-secondary) !important;\n    font-size: 14px !important;\n    line-height: 1.6 !important;\n  }\n  .aqr-assoc-rule {\n    border-bottom: 1px solid var(--ds-border-soft) !important;\n    padding: 18px 4px !important;\n  }\n  .aqr-assoc-if-tag {\n    background: var(--ds-text) !important;\n    color: var(--ds-bg) !important;\n    border-radius: 4px !important;\n    font-weight: 600 !important;\n    letter-spacing: 0.04em !important;\n  }\n  .aqr-assoc-if span { color: var(--ds-text-secondary) !important; }\n  .aqr-assoc-then-arrow { color: var(--ds-gold) !important; }\n  .aqr-assoc-then strong { color: var(--ds-text) !important; }\n\n  \/* === Races (pilules) === *\/\n  .aqr-race-tag {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    color: var(--ds-text) !important;\n    font-weight: 500 !important;\n    transition: transform 0.2s var(--ds-ease), border-color 0.2s var(--ds-ease) !important;\n  }\n  .aqr-race-tag:hover {\n    transform: translateY(-1px);\n    border-color: var(--ds-border) !important;\n  }\n  .aqr-race-tag span { color: var(--ds-text-secondary) !important; }\n\n  \/* === Radar : points forts en pilules === *\/\n  .so-foot-centered-chip {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border) !important;\n    color: var(--ds-text) !important;\n    border-radius: 100px !important;\n    padding: 6px 14px !important;\n    font-weight: 500 !important;\n  }\n  .so-foot-centered-chip em {\n    color: var(--ds-gold) !important;\n  }\n  .so-foot-centered-title {\n    color: var(--ds-text-secondary) !important;\n    font-weight: 500 !important;\n    letter-spacing: 0.18em !important;\n  }\n  .so-foot-centered-line {\n    background: var(--ds-border-soft) !important;\n  }\n\n  \/* === Cartographie : ajouter de l'air === *\/\n  #aqr-carto .aqr-list-item {\n    border-radius: var(--ds-radius-sm) !important;\n    transition: background 0.2s var(--ds-ease) !important;\n  }\n  \/* Assurer la visibilite de l'image schema dans tous les contextes *\/\n  #aqr-carto .aqr-schema-wrap {\n    display: block !important;\n    visibility: visible !important;\n    opacity: 1 !important;\n    overflow: visible !important;\n  }\n  #aqr-carto .aqr-schema-img {\n    display: block !important;\n    visibility: visible !important;\n    opacity: 1 !important;\n    width: 100% !important;\n    height: auto !important;\n  }\n\n  \/* === Le grand 1\/20 — typographie plus light === *\/\n  .aqr-dilution-ratio-num {\n    color: var(--ds-text) !important;\n    font-weight: 700 !important;\n  }\n  .aqr-dilution-ratio-sub {\n    color: var(--ds-text-secondary) !important;\n  }\n\n  \/* Animations apaisees - cible seulement les elements avec transition (pas les animations) *\/\n  .aqr-audience-card,\n  .aqr-race-tag,\n  .aqr-proto-acc,\n  .aqr-proto-plus,\n  .aqr-dilution,\n  .so-foot-centered-chip {\n    transition-timing-function: var(--ds-ease) !important;\n  }\n\n  \/* === Le footer mentions === *\/\n  div[style*=\"text-transform: uppercase\"][style*=\"color: #888\"] {\n    color: var(--ds-text-tertiary) !important;\n    font-size: 10px !important;\n    letter-spacing: 0.05em !important;\n    font-weight: 500 !important;\n  }\n\u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003c!-- BLOCK 1: INTRO --\u003e  \u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e  \u003cdiv style=\"font-size: 1.1em; margin-bottom: 16px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e  \u003cstrong\u003eBOMBASTIC\u003c\/strong\u003e is the \u003cstrong\u003eReconstructive Liquid Fiber\u003c\/strong\u003e Special One — no shampoo, no conditioner, no oily serum. A true innovation in zoo-cosmetology: \u003cstrong\u003eRemineralizing + Antioxidant + Ultra-Hydrating Active Ingredients + Trace Elements\u003c\/strong\u003e,  associated with \u003cstrong\u003ebiotechnological catalyst\u003c\/strong\u003e allowing for unique cellular absorption. \u003cem\u003eOnce you've tried it, you won't be able to live without it.\u003c\/em\u003e  \u003c\/div\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eWho is this product for?\u003c\/h2\u003e  \u003cp style=\"margin-bottom: 20px; font-size: 14px;\"\u003eEveryone will find something of real interest in it — Bombastic can be integrated into \u003cstrong\u003eany step\u003c\/strong\u003e grooming: pre-bath mask, in the shampoo, conditioner, or additional step between shampoo and conditioner.\u003c\/p\u003e  \u003cdiv class=\"aqr-audience\"\u003e  \u003cdiv class=\"aqr-audience-grid\"\u003e  \u003cdiv class=\"aqr-audience-card\"\u003e  \u003cdiv class=\"aqr-audience-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"#1a1a1a\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"6\" cy=\"18\" r=\"2.5\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"18\" cy=\"18\" r=\"2.5\"\u003e\u003c\/circle\u003e\u003cpath d=\"M8 16 L20 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M16 16 L4 4\"\u003e\u003c\/path\u003e\u003ccircle cx=\"12\" cy=\"11.5\" r=\"1\" fill=\"#1a1a1a\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-audience-name\"\u003eGroomers\u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-audience-card\"\u003e  \u003cdiv class=\"aqr-audience-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"#1a1a1a\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M3 21 L3 12 L12 5 L21 12 L21 21 Z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 21 L9 15 L15 15 L15 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-audience-name\"\u003eLivestock farmers\u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-audience-card\"\u003e  \u003cdiv class=\"aqr-audience-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"#1a1a1a\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"12\" cy=\"8\" r=\"4\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 21 Q4 14 12 14 Q20 14 20 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-audience-name\"\u003eIndividuals\u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-audience-card\"\u003e  \u003cdiv class=\"aqr-audience-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"#1a1a1a\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M7 4 L17 4 L17 10 Q17 15 12 15 Q7 15 7 10 Z\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 5 L7 5 L7 9 L5 9 Q3 9 3 7 Q3 5 5 5 Z\"\u003e\u003c\/path\u003e\u003cpath d=\"M19 5 L17 5 L17 9 L19 9 Q21 9 21 7 Q21 5 19 5 Z\"\u003e\u003c\/path\u003e\u003cpath d=\"M10 15 L10 19 L14 19 L14 15\"\u003e\u003c\/path\u003e\u003cpath d=\"M8 21 L16 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-audience-name\"\u003eCompetitors\u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-audience-card\"\u003e  \u003cdiv class=\"aqr-audience-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"#1a1a1a\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"8\" cy=\"7\" r=\"3\"\u003e\u003c\/circle\u003e\u003cpath d=\"M2 21 Q2 15 8 15 Q14 15 14 21\"\u003e\u003c\/path\u003e\u003ccircle cx=\"17\" cy=\"11\" r=\"2\"\u003e\u003c\/circle\u003e\u003cpath d=\"M14 21 L14 18 Q14 15 17 15 L20 15 L20 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-audience-name\"\u003eHandlers\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-audience, .aqr-audience * { box-sizing: border-box; font-family: inherit; }\n      .aqr-audience-grid {\n        display: grid;\n        grid-template-columns: repeat(5, 1fr);\n        gap: 8px;\n      }\n      .aqr-audience-card {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        gap: 8px;\n        padding: 16px 10px;\n        background: #fff;\n        border: 1px solid #e5e5e5;\n        border-radius: 8px;\n        text-align: center;\n        transition: border-color 0.2s, transform 0.2s;\n      }\n      .aqr-audience-card:hover {\n        border-color: #1a1a1a;\n        transform: translateY(-1px);\n      }\n      .aqr-audience-icon {\n        width: 40px;\n        height: 40px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: #f6f6f6;\n        border-radius: 50%;\n      }\n      .aqr-audience-name {\n        font-size: 12px;\n        font-weight: 600;\n        color: #1a1a1a;\n        line-height: 1.2;\n      }\n      @media (max-width: 700px) {\n        .aqr-audience-grid { grid-template-columns: repeat(3, 1fr); }\n      }\n      @media (max-width: 420px) {\n        .aqr-audience-grid { grid-template-columns: repeat(2, 1fr); }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003c!-- BLOCK 2: EXPERTISE \u0026  RESULTS --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eExpertise \u0026amp; Results\u003c\/h2\u003e  \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eThanks to yeast \u003cstrong\u003eSaccharomyces cerevisiae\u003c\/strong\u003e,  Bombastic's mineral complex works with \u003cstrong\u003elow molecular weight glycopeptides\u003c\/strong\u003e For \u003cstrong\u003eovercoming cellular barriers\u003c\/strong\u003e and penetrate deep into the coat. An absorption level that conventional formulations cannot achieve. The result? \u003cem\u003eA fur like you've never seen before.\u003c\/em\u003e\u003c\/p\u003e  \u003cdiv style=\"background: #fff8e1; border-left: 3px solid #f0a500; border-radius: 8px; padding: 12px 16px; font-size: 13px; line-height: 1.55; margin-bottom: 18px;\"\u003e⚠️  \u003cstrong\u003eAreas to avoid:\u003c\/strong\u003e Do not apply Bombastic to areas where volume must absolutely be avoided — the back of a Bernese Mountain Dog or Golden Retriever with unruly hair, a puffy neck, thighs with cowlicks, or the hair of a Yorkshire Terrier\/Maltese that needs to fall in a curtain for the ring.\u003c\/div\u003e  \u003cdiv class=\"aqr-benefits\" style=\"margin-top: 20px;\"\u003e  \u003cdiv class=\"aqr-benefits-grid\"\u003e  \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 0;\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M3 21h18M5 21V11h4v10M15 21V7h4v14M9 16h6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eDeep reconstruction\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003eRebuilds the hair fiber \u003cstrong\u003efrom the inside\u003c\/strong\u003e thanks to the biotechnological complex of ferments and minerals.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 1;\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 21v-8M12 13c0-3 2-5 5-5M12 13c0-3-2-5-5-5M12 21H8m4 0h4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eImproved growth\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003eImproved hair growth, \u003cstrong\u003equalitatively and quantitatively\u003c\/strong\u003e.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 2;\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M5 5h4M5 5v4M5 5l5 5M19 5h-4M19 5v4M19 5l-5 5M5 19h4M5 19v-4M5 19l5-5M19 19h-4M19 19v-4M19 19l-5-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eVolume preserved\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003eDespite its ultra-nutritious nature, Bombastic \u003cstrong\u003emaintains or even amplifies the volume\u003c\/strong\u003e and natural attire — regardless of race.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 3;\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M10 14a4 4 0 0 0 5.66 0l3-3a4 4 0 0 0-5.66-5.66l-1 1\"\u003e\u003c\/path\u003e\u003cpath d=\"M14 10a4 4 0 0 0-5.66 0l-3 3a4 4 0 1 0 5.66 5.66l1-1\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eAnti-knot\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003e  \u003cstrong\u003eSignificantly delayed\u003c\/strong\u003e the return of the knots after the bath.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 4;\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 4l1.6 4.4L18 10l-4.4 1.6L12 16l-1.6-4.4L6 10l4.4-1.6z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eBrilliance \u0026amp; outfit\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003eA \u003cstrong\u003eshine and grooming results\u003c\/strong\u003e significantly improved.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 5;\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M5 19l14-14M16 5l3 3M9 5h.01M19 11h.01M5 11h.01M11 19h.01\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eThat certain something\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003eThis visual and tactile effect that is difficult to describe with words — but which\u003cstrong\u003eone feels immediately\u003c\/strong\u003e.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-benefits, .aqr-benefits * { box-sizing: border-box; font-family: inherit; }\n      .aqr-benefits-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        grid-auto-rows: 1fr;\n        align-items: stretch;\n        gap: 10px;\n      }\n      .aqr-benefit-card {\n        position: relative;\n        display: flex;\n        gap: 14px;\n        background: #fff;\n        border: 1px solid #1a1a1a;\n        border-radius: 8px;\n        padding: 16px 18px;\n        align-items: center;\n        overflow: hidden;\n        opacity: 0;\n        animation: aqrBenefitFadeIn 0.5s ease-out forwards;\n        animation-delay: calc(var(--i) * 80ms);\n        transition: background 0.3s;\n      }\n      .aqr-benefit-card::before {\n        content: \"\";\n        position: absolute;\n        top: 0; left: 0; bottom: 0;\n        width: 4px;\n        background: #1a1a1a;\n        transition: width 0.3s, background 0.3s;\n      }\n      .aqr-benefit-card:hover { background: #fafafa; }\n      .aqr-benefit-card:hover::before {\n        width: 6px;\n        background: #D4AF37;\n      }\n      .aqr-benefit-corner {\n        position: absolute;\n        top: 0; right: 0;\n        width: 18px; height: 18px;\n        background: linear-gradient(225deg, #F5E6B8 50%, transparent 50%);\n        border-top-right-radius: 8px;\n        overflow: hidden;\n      }\n      .aqr-benefit-icon {\n        flex-shrink: 0;\n        width: 44px; height: 44px;\n        display: flex; align-items: center; justify-content: center;\n        background: #1a1a1a;\n        color: #F5E6B8;\n        border-radius: 0;\n      }\n      .aqr-benefit-icon svg { width: 22px; height: 22px; }\n      .aqr-benefit-content { flex: 1; min-width: 0; }\n      .aqr-benefit-title {\n        font-size: 14px;\n        font-weight: 700;\n        color: #1a1a1a;\n        margin-bottom: 3px;\n      }\n      .aqr-benefit-desc {\n        font-size: 11px;\n        line-height: 1.5;\n        color: #555;\n      }\n      @keyframes aqrBenefitFadeIn {\n        to { opacity: 1; }\n      }\n      @media (max-width: 600px) {\n        .aqr-benefits-grid { grid-template-columns: 1fr; gap: 8px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003c!-- RADAR UNIT (moved under Expertise) --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eBetter understanding the actions of Bombastic\u003c\/h2\u003e  \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eA detailed breakdown of its cosmetic performance, note by note.\u003c\/p\u003e  \u003cdiv id=\"so-radar-widget\" style=\"width: 100%; max-width: 480px; margin: 0 auto; background: #fff; border: 1px solid #e5e5e5; font-family: inherit; color: #1a1a1a; line-height: 1.4;\"\u003e  \u003cdiv style=\"padding: 16px 28px; overflow: visible;\"\u003e  \u003cdiv id=\"so-radar-area\" style=\"position: relative; width: 100%; max-width: 340px; aspect-ratio: 1; margin: 0 auto; overflow: visible;\"\u003e\u003csvg id=\"so-radar-svg\" style=\"width: 100%; height: 100%; overflow: visible;\" viewbox=\"0 0 360 360\"\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv id=\"so-radar-footer\"\u003e\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n    #so-radar-widget * { box-sizing: border-box; }\n    .so-label { position: absolute; transform: translate(-50%, -50%); text-align: center; pointer-events: none; white-space: nowrap; opacity: 0; animation: so-fadeUp 0.5s ease forwards; }\n    .so-label .so-lname { font-size: 9px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: #999; display: block; margin-bottom: 1px; font-family: inherit; }\n    .so-label .so-lval { font-size: 24px; font-weight: 700; color: #1a1a1a; line-height: 1; font-family: inherit; }\n    .so-label .so-lmax { font-size: 12px; font-weight: 400; color: #bbb; font-family: inherit; }\n    .so-foot-centered { margin-top: 18px; padding-top: 16px; border-top: 1px solid #eee; opacity: 0; animation: so-footerIn 0.5s ease forwards 0.8s; }\n    .so-foot-centered-head { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 14px; }\n    .so-foot-centered-line { flex: 1; height: 1px; background: #1a1a1a; max-width: 50px; }\n    .so-foot-centered-title { font-size: 9px; letter-spacing: 0.3em; font-weight: 700; color: #1a1a1a; font-family: inherit; }\n    .so-foot-centered-chips { display: grid; grid-template-columns: auto auto; justify-content: center; justify-items: center; gap: 6px; }\n    .so-foot-centered-chip { display: inline-flex; align-items: baseline; gap: 6px; background: #fff; border: 1px solid #1a1a1a; color: #1a1a1a; padding: 6px 14px; border-radius: 100px; font-size: 11px; font-weight: 600; font-family: inherit; }\n    .so-foot-centered-chip em { font-family: Georgia, \"Times New Roman\", serif; font-style: italic; font-weight: 700; color: #D4AF37; font-size: 11px; }\n    .so-shape-fill   { opacity: 0; animation: so-shapeIn 0.9s ease forwards 0.2s; }\n    .so-shape-stroke { opacity: 0; animation: so-shapeIn 0.7s ease forwards 0.35s; }\n    .so-dot          { opacity: 0; animation: so-dotIn 0.35s ease forwards; }\n    @keyframes so-shapeIn  { to { opacity: 1; } }\n    @keyframes so-dotIn    { to { opacity: 1; } }\n    @keyframes so-footerIn { to { opacity: 1; } }\n    @keyframes so-fadeUp { from { opacity: 0; transform: translate(-50%, calc(-50% + 6px)); } to { opacity: 1; transform: translate(-50%, -50%); } }\n    .so-trace-stroke { opacity: 0; animation: so-traceIn 0.5s ease forwards 0.8s, so-traceMove 3.5s linear infinite 1.3s; }\n    @keyframes so-traceIn { to { opacity: 1; } }\n    @keyframes so-traceMove { from { stroke-dashoffset: 0; } to { stroke-dashoffset: calc(-1 * var(--so-perim, 600)); } }\n    @media (max-width: 480px) {\n      #so-radar-widget \u003e div { padding: 18px 16px 14px !important; }\n      #so-radar-area { max-width: 300px !important; }\n      .so-label .so-lname { font-size: 8px !important; letter-spacing: 0.05em !important; }\n      .so-label .so-lval  { font-size: 19px !important; }\n      .so-label .so-lmax  { font-size: 9px !important; }\n      .so-foot-centered-title { font-size: 8px !important; letter-spacing: 0.25em !important; }\n      .so-foot-centered-chip { font-size: 10px !important; padding: 5px 12px !important; }\n      .so-foot-centered-chip em { font-size: 10px !important; }\n      .so-foot-centered-line { max-width: 30px !important; }\n    }\n    @media (max-width: 360px) {\n      #so-radar-area { max-width: 260px !important; }\n      .so-label .so-lval { font-size: 16px !important; }\n      .so-label .so-lname { font-size: 7px !important; }\n    }\n  \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cscript\u003e\n  (function() {\n    var PRODUCT = { criteria: [ { label: \"Hydratation\", value: 5 }, { label: \"Brillance\", value: 4 }, { label: \"Soin peau\", value: 4 }, { label: \"Démêlant\", value: 4 }, { label: \"Volume\", value: 4 } ] };\n    var svg = document.getElementById(\"so-radar-svg\"); var area = document.getElementById(\"so-radar-area\");\n    var data = PRODUCT.criteria; var n = data.length; var cx = 180, cy = 180, maxR = 95;\n    function ang(i) { return (Math.PI * 2 * i \/ n) - Math.PI \/ 2; }\n    function pt(i, v, mx) { var a = ang(i), r = (v \/ mx) * maxR; return { x: cx + r * Math.cos(a), y: cy + r * Math.sin(a) }; }\n    function svgEl(tag) { return document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", tag); }\n    for (var l = 1; l \u003c= 5; l++) { var pts = []; for (var i = 0; i \u003c n; i++) { var p = pt(i, l, 5); pts.push(p.x + \",\" + p.y); } var poly = svgEl(\"polygon\"); poly.setAttribute(\"points\", pts.join(\" \")); poly.setAttribute(\"fill\", \"none\"); poly.setAttribute(\"stroke\", l === 5 ? \"rgba(0,0,0,0.09)\" : \"rgba(0,0,0,0.04)\"); poly.setAttribute(\"stroke-width\", l === 5 ? \"1\" : \"0.6\"); if (l === 5) poly.setAttribute(\"stroke-dasharray\", \"3,3\"); svg.appendChild(poly); }\n    for (var i = 0; i \u003c n; i++) { var p = pt(i, 5, 5); var line = svgEl(\"line\"); line.setAttribute(\"x1\", cx); line.setAttribute(\"y1\", cy); line.setAttribute(\"x2\", p.x); line.setAttribute(\"y2\", p.y); line.setAttribute(\"stroke\", \"rgba(0,0,0,0.04)\"); line.setAttribute(\"stroke-width\", \"0.6\"); svg.appendChild(line); }\n    var shapePts = []; for (var i = 0; i \u003c n; i++) { var p = pt(i, data[i].value, 5); shapePts.push(p.x + \",\" + p.y); } var ptsStr = shapePts.join(\" \");\n    var fillPoly = svgEl(\"polygon\"); fillPoly.setAttribute(\"points\", ptsStr); fillPoly.setAttribute(\"fill\", \"rgba(0,0,0,0.04)\"); fillPoly.classList.add(\"so-shape-fill\"); svg.appendChild(fillPoly);\n    var strokePoly = svgEl(\"polygon\"); strokePoly.setAttribute(\"points\", ptsStr); strokePoly.setAttribute(\"fill\", \"none\"); strokePoly.setAttribute(\"stroke\", \"#1a1a1a\"); strokePoly.setAttribute(\"stroke-width\", \"1.8\"); strokePoly.setAttribute(\"stroke-linejoin\", \"round\"); strokePoly.classList.add(\"so-shape-stroke\"); svg.appendChild(strokePoly);\n    \/* Trace doree qui parcourt le contour en boucle *\/\n    var perim = 0; for (var i = 0; i \u003c n; i++) { var p1 = pt(i, data[i].value, 5); var p2 = pt((i+1)%n, data[(i+1)%n].value, 5); perim += Math.sqrt((p2.x-p1.x)*(p2.x-p1.x) + (p2.y-p1.y)*(p2.y-p1.y)); }\n    var tracePoly = svgEl(\"polygon\"); tracePoly.setAttribute(\"points\", ptsStr); tracePoly.setAttribute(\"fill\", \"none\"); tracePoly.setAttribute(\"stroke\", \"#D4AF37\"); tracePoly.setAttribute(\"stroke-width\", \"2.2\"); tracePoly.setAttribute(\"stroke-linejoin\", \"round\"); tracePoly.setAttribute(\"stroke-linecap\", \"round\"); tracePoly.setAttribute(\"stroke-dasharray\", \"60 \" + perim); tracePoly.setAttribute(\"stroke-dashoffset\", \"0\"); tracePoly.style.setProperty(\"--so-perim\", perim); tracePoly.classList.add(\"so-trace-stroke\"); svg.appendChild(tracePoly);\n    for (var i = 0; i \u003c n; i++) { (function(i) { var d = data[i]; var p = pt(i, d.value, 5); var delay = 0.5 + i * 0.1; var halo = svgEl(\"circle\"); halo.setAttribute(\"cx\", p.x); halo.setAttribute(\"cy\", p.y); halo.setAttribute(\"r\", \"7\"); halo.setAttribute(\"fill\", \"none\"); halo.setAttribute(\"stroke\", \"#1a1a1a\"); halo.setAttribute(\"stroke-width\", \"1\"); halo.setAttribute(\"stroke-opacity\", \"0.12\"); halo.classList.add(\"so-dot\"); halo.style.animationDelay = delay + \"s\"; svg.appendChild(halo); var dot = svgEl(\"circle\"); dot.setAttribute(\"cx\", p.x); dot.setAttribute(\"cy\", p.y); dot.setAttribute(\"r\", \"3\"); dot.setAttribute(\"fill\", \"#1a1a1a\"); dot.classList.add(\"so-dot\"); dot.style.animationDelay = delay + \"s\"; svg.appendChild(dot); var lp = pt(i, 6.5, 5);\n lp.y += Math.sin(ang(i)) * 16; var pctX = (lp.x \/ 360) * 100; var pctY = (lp.y \/ 360) * 100; var lbl = document.createElement(\"div\"); lbl.className = \"so-label\"; lbl.style.left = pctX + \"%\"; lbl.style.top = pctY + \"%\"; lbl.style.animationDelay = (0.4 + i * 0.1) + \"s\"; lbl.innerHTML = '\u003cspan class=\"so-lname\"\u003e' + d.label + '\u003c\/span\u003e\u003cspan class=\"so-lval\"\u003e' + d.value + '\u003cspan class=\"so-lmax\"\u003e\/5\u003c\/span\u003e\u003c\/span\u003e'; area.appendChild(lbl); })(i); }\n    var maxVal = 0; for (var i = 0; i \u003c n; i++) { if (data[i].value \u003e maxVal) maxVal = data[i].value; } var bests = []; for (var i = 0; i \u003c n; i++) { if (data[i].value === maxVal) bests.push(data[i]); }\n    var chipsHtml = ''; for (var i = 0; i \u003c bests.length; i++) { chipsHtml += '\u003cspan class=\"so-foot-centered-chip\"\u003e' + bests[i].label + '\u003cem\u003e' + bests[i].value + '\/5\u003c\/em\u003e\u003c\/span\u003e'; }\n    var labelTxt = (bests.length \u003e 1 ? 'POINTS FORTS' : 'POINT FORT');\n    document.getElementById(\"so-radar-footer\").innerHTML = '\u003cdiv class=\"so-foot-centered\"\u003e\u003cdiv class=\"so-foot-centered-head\"\u003e\u003cspan class=\"so-foot-centered-line\"\u003e\u003c\/span\u003e\u003cspan class=\"so-foot-centered-title\"\u003e★ ' + labelTxt + ' ★\u003c\/span\u003e\u003cspan class=\"so-foot-centered-line\"\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"so-foot-centered-chips\"\u003e' + chipsHtml + '\u003c\/div\u003e\u003c\/div\u003e';\n  })();\n  \u003c\/script\u003e  \u003c!-- BLOCK 3: COMPOSITION (Bombastic active JS MAPPING - verified) --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eComposition of Bombastic: biotechnology at the service of hair\u003c\/h2\u003e  \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eA unique formula where the \u003cstrong\u003ebiotechnology is being put to use in zoo-cosmetology\u003c\/strong\u003e — without SLES, without parabens, without silicone.\u003c\/p\u003e  \u003c!-- MAPPING --\u003e  \u003cdiv id=\"aqr-carto\" style=\"background: #fff; border: 1px solid #e5e5e5; padding: 18px;\"\u003e  \u003cdiv class=\"aqr-grid\"\u003e  \u003cdiv class=\"aqr-col-list\"\u003e  \u003cul class=\"aqr-list\" id=\"aqrList\"\u003e\u003c\/ul\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-col-schema\"\u003e  \u003cdiv class=\"aqr-schema-wrap\" id=\"aqrSchemaWrap\"\u003e  \u003cimg class=\"aqr-schema-img\" id=\"aqrSchemaImg\" style=\"display: block; width: 100%; height: auto;\" alt=\"Schéma de l'anatomie de la peau et du poil illustrant l'action ciblée du Bombastic\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/schema-peau-poil.webp?v=1779972667\"\u003e  \u003csvg class=\"aqr-overlay\" id=\"aqrOverlay\" preserveaspectratio=\"none\" viewbox=\"0 0 100 225\"\u003e\u003c\/svg\u003e  \u003cdiv class=\"aqr-connectors\" id=\"aqrConnectors\"\u003e\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-col-info\"\u003e  \u003cdiv class=\"aqr-info\" id=\"aqrInfo\"\u003e\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      #aqr-carto, #aqr-carto * { box-sizing: border-box; }\n      #aqr-carto {\n        font-family: inherit;\n        color: #1a1a1a;\n        line-height: 1.5;\n        position: relative;\n      }\n      #aqr-carto .aqr-grid {\n        display: grid;\n        grid-template-columns: 170px 1fr 280px;\n        gap: 16px;\n        align-items: start;\n      }\n\n      \/* LISTE — cadres encadres *\/\n      #aqr-carto .aqr-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }\n      #aqr-carto .aqr-list-item {\n        display: block;\n        width: 100%;\n        text-align: left;\n        background: #fff;\n        border: 1px solid #e5e5e5;\n        padding: 8px 10px;\n        cursor: pointer;\n        font-family: inherit;\n        color: #888;\n        transition: all 0.3s;\n        position: relative;\n        min-height: 0;\n      }\n      #aqr-carto .aqr-list-item:hover {\n        color: #1a1a1a;\n        border-color: #bbb;\n        background: #fafafa;\n      }\n      #aqr-carto .aqr-list-item.aqr-active {\n        color: #1a1a1a;\n        background: #fff;\n        border-color: var(--c, #1a1a1a);\n        border-left-width: 3px;\n        padding-left: 8px;\n        box-shadow: 0 2px 6px rgba(0,0,0,0.04);\n      }\n\n      #aqr-carto .aqr-li-name {\n        font-size: 13px;\n        line-height: 1.25;\n        font-weight: 500;\n      }\n\n      \/* SCHEMA *\/\n      #aqr-carto .aqr-col-schema {\n        display: flex;\n        justify-content: center;\n        align-items: flex-start;\n      }\n      #aqr-carto .aqr-schema-wrap {\n        position: relative;\n        width: 100%;\n        max-width: 200px;\n        margin: 0 auto;\n        z-index: 1;\n      }\n      #aqr-carto .aqr-schema-img {\n        display: block;\n        width: 100%;\n        height: auto;\n      }\n\n      #aqr-carto .aqr-overlay {\n        position: absolute;\n        inset: 0;\n        width: 100%;\n        height: 100%;\n        pointer-events: none;\n        overflow: visible;\n        z-index: 3;\n      }\n      #aqr-carto .aqr-connectors {\n        position: absolute;\n        inset: 0;\n        pointer-events: none;\n        z-index: 2;\n      }\n      #aqr-carto \u003e svg.aqr-connector-svg {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        overflow: visible;\n        pointer-events: none;\n        z-index: 5;\n      }\n\n      \/* Ligne connector (depuis la liste vers le point) *\/\n      #aqr-carto .aqr-conn-line {\n        fill: none;\n        stroke: var(--c);\n        stroke-width: 1;\n        opacity: 0;\n        stroke-dasharray: 600;\n        stroke-dashoffset: 600;\n        animation: aqrConnDraw 0.9s cubic-bezier(.5,.05,.2,1) forwards;\n      }\n      @keyframes aqrConnDraw {\n        0% { opacity: 0; stroke-dashoffset: 600; }\n        25% { opacity: 0.6; }\n        100% { opacity: 0.6; stroke-dashoffset: 0; }\n      }\n\n      \/* IRRADIATION CIRCULAIRE DOREE — toujours identique *\/\n      \/* Le groupe entier qui contient halo + cercle + branches étoilées *\/\n      #aqr-carto .aqr-star-group {\n        transform-origin: center;\n        transform-box: fill-box;\n      }\n\n      \/* Halo doré central qui pulse doucement *\/\n      #aqr-carto .aqr-star-halo {\n        fill: #D4AF37;\n        opacity: 0;\n        transform-origin: center;\n        transform-box: fill-box;\n        filter: blur(1.4px);\n        animation: aqrHaloIn 0.7s ease-out forwards, aqrHaloPulse 3s ease-in-out infinite 0.7s;\n      }\n      @keyframes aqrHaloIn { to { opacity: 0.5; } }\n      @keyframes aqrHaloPulse {\n        0%, 100% { opacity: 0.4; transform: scale(1); }\n        50% { opacity: 0.75; transform: scale(1.2); }\n      }\n\n      \/* Cercle d'irradiation qui se diffuse (anneau lent) *\/\n      #aqr-carto .aqr-star-ring {\n        fill: none;\n        stroke: #D4AF37;\n        stroke-width: 0.5;\n        opacity: 0;\n        transform-origin: center;\n        transform-box: fill-box;\n        animation: aqrStarRing 3.2s ease-out infinite;\n      }\n      @keyframes aqrStarRing {\n        0%   { opacity: 0; r: 3; stroke-width: 0.6; }\n        15%  { opacity: 0.5; }\n        100% { opacity: 0; r: 12; stroke-width: 0.15; }\n      }\n\n      \/* Point coloré A\/B\/C (par-dessus le doré) *\/\n      #aqr-carto .aqr-marker-dot {\n        fill: var(--c);\n        opacity: 0;\n        transform-origin: center;\n        transform-box: fill-box;\n        animation: aqrDotIn 0.5s ease-out forwards;\n      }\n      @keyframes aqrDotIn {\n        0% { opacity: 0; transform: scale(0); }\n        70% { transform: scale(1.4); }\n        100% { opacity: 1; transform: scale(1); }\n      }\n      #aqr-carto .aqr-marker-text {\n        fill: white;\n        font-family: 'Courier New', monospace;\n        font-size: 2.8px;\n        font-weight: 700;\n        text-anchor: middle;\n        dominant-baseline: central;\n        opacity: 0;\n        animation: aqrDotIn 0.5s ease-out forwards;\n        pointer-events: none;\n      }\n\n      #aqr-carto .aqr-leaving {\n        animation: aqrFadeOut 0.4s ease-out forwards !important;\n      }\n      @keyframes aqrFadeOut { to { opacity: 0; } }\n\n      \/* INFO *\/\n      #aqr-carto .aqr-info {\n        background: #fafafa;\n        border: 1px solid #e5e5e5;\n        padding: 16px 16px;\n        transition: opacity 0.4s;\n      }\n      #aqr-carto .aqr-info.aqr-fading { opacity: 0.2; }\n      #aqr-carto .aqr-info-family {\n        font-size: 9px;\n        letter-spacing: 0.25em;\n        text-transform: uppercase;\n        color: var(--c, #888);\n        font-weight: 600;\n        margin-bottom: 6px;\n        transition: color 0.5s;\n      }\n      #aqr-carto .aqr-info-name {\n        font-size: 16px;\n        font-weight: 700;\n        line-height: 1.2;\n        margin: 0 0 4px;\n        color: #1a1a1a;\n      }\n      #aqr-carto .aqr-info-latin {\n        font-size: 11px;\n        color: #999;\n        font-style: italic;\n        margin-bottom: 12px;\n      }\n      #aqr-carto .aqr-info-desc {\n        font-size: 12px;\n        line-height: 1.55;\n        color: #333;\n        margin-bottom: 14px;\n        padding-bottom: 14px;\n        border-bottom: 1px solid #ececec;\n      }\n      #aqr-carto .aqr-info-section {\n        font-size: 9px;\n        letter-spacing: 0.22em;\n        text-transform: uppercase;\n        color: #888;\n        font-weight: 600;\n        margin-bottom: 10px;\n      }\n      #aqr-carto .aqr-action-row {\n        display: flex;\n        align-items: baseline;\n        gap: 10px;\n        margin-bottom: 10px;\n        padding-bottom: 10px;\n        border-bottom: 1px dotted #ececec;\n      }\n      #aqr-carto .aqr-action-row:last-child {\n        border-bottom: none;\n        padding-bottom: 0;\n        margin-bottom: 0;\n      }\n      #aqr-carto .aqr-action-marker {\n        flex-shrink: 0;\n        width: 18px;\n        height: 18px;\n        background: var(--c);\n        color: white;\n        text-align: center;\n        line-height: 18px;\n        font-family: 'Courier New', monospace;\n        font-size: 10px;\n        font-weight: 700;\n        transition: background 0.5s;\n      }\n      #aqr-carto .aqr-action-content { flex: 1; min-width: 0; }\n      #aqr-carto .aqr-action-zone {\n        font-size: 9px;\n        letter-spacing: 0.15em;\n        text-transform: uppercase;\n        color: var(--c, #888);\n        font-weight: 600;\n        margin-bottom: 2px;\n        transition: color 0.5s;\n      }\n      #aqr-carto .aqr-action-name {\n        font-size: 13px;\n        color: #1a1a1a;\n        font-weight: 600;\n        line-height: 1.25;\n        margin-bottom: 3px;\n      }\n      #aqr-carto .aqr-action-benefit {\n        font-size: 11px;\n        color: #666;\n        line-height: 1.5;\n      }\n\n      \/* TABLET : liste + schema cote a cote, info en dessous *\/\n      @media (max-width: 900px) {\n        #aqr-carto .aqr-grid {\n          grid-template-columns: 1fr 130px;\n          grid-template-rows: auto auto;\n          gap: 14px;\n        }\n        #aqr-carto .aqr-col-list { grid-column: 1; grid-row: 1; }\n        #aqr-carto .aqr-col-schema { grid-column: 2; grid-row: 1; }\n        #aqr-carto .aqr-col-info { grid-column: 1 \/ -1; grid-row: 2; }\n        #aqr-carto .aqr-schema-wrap { max-width: 130px; }\n        #aqr-carto .aqr-li-name { font-size: 12px; }\n        #aqr-carto .aqr-list-item { padding: 7px 8px; }\n        #aqr-carto .aqr-list { gap: 5px; }\n      }\n      \/* MOBILE : meme structure mais photo encore plus petite *\/\n      @media (max-width: 640px) {\n        #aqr-carto { padding: 12px !important; }\n        #aqr-carto .aqr-grid {\n          grid-template-columns: 1fr 100px;\n          gap: 10px;\n        }\n        #aqr-carto .aqr-schema-wrap { max-width: 100px; }\n        #aqr-carto .aqr-li-name { font-size: 11px; line-height: 1.2; }\n        #aqr-carto .aqr-li-num { font-size: 8px; margin-bottom: 1px; }\n        #aqr-carto .aqr-list-item { padding: 6px 8px; }\n        #aqr-carto .aqr-list-item.aqr-active { padding-left: 6px; }\n        #aqr-carto .aqr-info-name { font-size: 15px; }\n        #aqr-carto .aqr-info { padding: 14px; }\n        #aqr-carto .aqr-list { gap: 4px; }\n      }\n      \/* TRES PETIT : photo minimale *\/\n      @media (max-width: 420px) {\n        #aqr-carto .aqr-grid {\n          grid-template-columns: 1fr 80px;\n          gap: 8px;\n        }\n        #aqr-carto .aqr-schema-wrap { max-width: 80px; }\n        #aqr-carto .aqr-li-name { font-size: 10px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e  \u003cscript\u003e\n    (function(){\n      var familyColors = {\n        botanic: '#7BA05B',\n        aqua: '#4A90B8',\n        bio: '#C84876',\n        cond: '#B07BA0'\n      };\n      var families = {\n        botanic: 'Botanique',\n        aqua: 'Aquatique',\n        bio: 'Biochimique',\n        cond: 'Conditionneur'\n      };\n\n      \/\/ Anchors PRECIS sur l'image 500x1125 (viewBox 100 x 225)\n      var anchors = {\n        tige_poil:  { x: 60,  y: 25 },     \/\/ mi-tige\n        cuticule:   { x: 56,  y: 65 },     \/\/ ecailles visibles\n        epiderme:   { x: 25,  y: 115 },    \/\/ surface peau gauche\n        film_hydro: { x: 32,  y: 100 },    \/\/ surface peau clairement, ecarte du poil\n        glande_seb: { x: 62,  y: 142 },    \/\/ grappe jaune\n        glande_sud: { x: 25,  y: 168 },    \/\/ enchevetrement gauche\n        muscle:     { x: 78,  y: 170 },    \/\/ faisceau diagonal\n        follicule:  { x: 43,  y: 185 },    \/\/ cloche autour du poil\n        bulbe:      { x: 43,  y: 193 },    \/\/ boule au fond, remonte encore\n        derme:      { x: 12,  y: 190 }     \/\/ bloc peau gauche bas\n      };\n      var anchorLabels = {\n        tige_poil: 'Tige du poil', cuticule: 'Cuticule', film_hydro: 'Film hydrolipidique',\n        epiderme: 'Épiderme', derme: 'Derme', bulbe: 'Bulbe pilaire',\n        glande_seb: 'Glande sébacée', glande_sud: 'Glande sudoripare',\n        follicule: 'Follicule pileux', muscle: 'Muscle arrecteur'\n      };\n\n      var ingredients = [\n        {\n          id:'q10', label:'Coenzyme Q10', latin:'Ubiquinone', family:'cond',\n          desc:\"Précieux antioxydant cellulaire : il protège les cellules du poil et de la peau contre le vieillissement et les agressions oxydatives — indispensable à la jeunesse du manteau.\",\n          targets: [\n            { anchor:'epiderme', action:\"Action antioxydante\", benefit:\"Protège les cellules de la peau contre le stress oxydatif et le vieillissement.\" },\n            { anchor:'derme', action:\"Énergie cellulaire\", benefit:\"Soutient le métabolisme énergétique des cellules cutanées.\" }\n          ]\n        },\n        {\n          id:'macadamia', label:'Huile de Macadamia', latin:'Macadamia ternifolia', family:'botanic',\n          desc:\"Hydratante et restructurante : elle nourrit la fibre en profondeur et maintient le poil souple, brillant et dense.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Nutrition restructurante\", benefit:\"Nourrit la fibre et maintient densité, souplesse et brillance.\" },\n            { anchor:'cuticule', action:\"Souplesse retrouvée\", benefit:\"Adoucit la cuticule et apporte un toucher gainé sans alourdir.\" }\n          ]\n        },\n        {\n          id:'biotech', label:'Complexe Biotechnologique', latin:'Saccharomyces cerevisiae + Minéraux', family:'aqua',\n          desc:\"\u003cstrong\u003eZinc, fer, magnésium, silicium, cuivre fermenté\u003c\/strong\u003e — activés par la levure pour \u003cstrong\u003esurmonter les barrières cellulaires\u003c\/strong\u003e et agir en profondeur avec une efficacité impossible par les voies classiques. C’est le cœur de l’innovation Bombastic.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Reminéralisation profonde\", benefit:\"Apporte oligo-éléments fermentés directement au cœur de la fibre.\" },\n            { anchor:'follicule', action:\"Soutien à la pousse\", benefit:\"Stimule la croissance qualitative et quantitative du poil.\" }\n          ]\n        },\n        {\n          id:'fleurs', label:'Distillats de Fleurs \u0026amp; Plantes', latin:'Hydrolats végétaux', family:'bio',\n          desc:\"Agents actifs végétaux qui complètent le complexe minéral pour apporter \u003cstrong\u003edouceur, éclat et vitalité\u003c\/strong\u003e au manteau.\",\n          targets: [\n            { anchor:'epiderme', action:\"Apaisement \u0026amp; éclat\", benefit:\"Apaise le terrain cutané et apporte un éclat lumineux au poil.\" },\n            { anchor:'cuticule', action:\"Toucher doux\", benefit:\"Confère un toucher fondant et un fini soyeux à la fibre.\" }\n          ]\n        }\n      ];\n\n      var listEl = document.getElementById('aqrList');\n      var schemaWrap = document.getElementById('aqrSchemaWrap');\n      var schemaImg = document.getElementById('aqrSchemaImg');\n      var overlay = document.getElementById('aqrOverlay');\n      var connectorsEl = document.getElementById('aqrConnectors');\n      var infoEl = document.getElementById('aqrInfo');\n            try { ingredients.forEach(function(ing, i) {\n        var li = document.createElement('li');\n        var btn = document.createElement('button');\n        btn.className = 'aqr-list-item' + (i === 0 ? ' aqr-active' : '');\n        btn.setAttribute('type', 'button');\n        btn.dataset.idx = i;\n        btn.style.setProperty('--c', familyColors[ing.family]);\n        btn.innerHTML = '\u003cspan class=\"aqr-li-name\"\u003e' + ing.label + '\u003c\/span\u003e';\n        btn.addEventListener('click', function() { focusIngredient(i); });\n        li.appendChild(btn);\n        listEl.appendChild(li);\n      }); } catch (e) {}\n\n      function clearAll() {\n        var inside = overlay.querySelectorAll('*');\n        for (var i = 0; i \u003c inside.length; i++) inside[i].classList.add('aqr-leaving');\n        var connSvg = document.querySelector('#aqr-carto \u003e svg.aqr-connector-svg');\n        if (connSvg) {\n          var conns = connSvg.querySelectorAll('*');\n          for (var i = 0; i \u003c conns.length; i++) conns[i].classList.add('aqr-leaving');\n        }\n        setTimeout(function() {\n          overlay.innerHTML = '';\n          if (connSvg) connSvg.innerHTML = '';\n        }, 420);\n      }\n\n      var currentIdx = 0;\n      var playing = true;\n      var autoTimer = null;\n\n      function focusIngredient(idx) {\n        currentIdx = ((idx % ingredients.length) + ingredients.length) % ingredients.length;\n        var ing = ingredients[currentIdx];\n        var color = familyColors[ing.family];\n\n        var items = document.querySelectorAll('#aqr-carto .aqr-list-item');\n        for (var i = 0; i \u003c items.length; i++) {\n          if (i === currentIdx) items[i].classList.add('aqr-active');\n          else items[i].classList.remove('aqr-active');\n        }\n        infoEl.classList.add('aqr-fading');\n        setTimeout(function() {\n          infoEl.style.setProperty('--c', color);\n          var actionsHtml = ing.targets.map(function(t, i) {\n            return '\u003cdiv class=\"aqr-action-row\"\u003e' +\n                     '\u003cdiv class=\"aqr-action-marker\"\u003e' + String.fromCharCode(65 + i) + '\u003c\/div\u003e' +\n                     '\u003cdiv class=\"aqr-action-content\"\u003e' +\n                       '\u003cdiv class=\"aqr-action-zone\"\u003e' + anchorLabels[t.anchor] + '\u003c\/div\u003e' +\n                       '\u003cdiv class=\"aqr-action-name\"\u003e' + t.action + '\u003c\/div\u003e' +\n                       '\u003cdiv class=\"aqr-action-benefit\"\u003e' + t.benefit + '\u003c\/div\u003e' +\n                     '\u003c\/div\u003e' +\n                   '\u003c\/div\u003e';\n          }).join('');\n          infoEl.innerHTML =\n            '\u003cdiv class=\"aqr-info-family\"\u003e' + families[ing.family] + '\u003c\/div\u003e' +\n            '\u003ch3 class=\"aqr-info-name\"\u003e' + ing.label + '\u003c\/h3\u003e' +\n            '\u003cdiv class=\"aqr-info-latin\"\u003e' + ing.latin + '\u003c\/div\u003e' +\n            '\u003cp class=\"aqr-info-desc\"\u003e' + ing.desc + '\u003c\/p\u003e' +\n            '\u003cdiv class=\"aqr-info-section\"\u003eActions ciblées\u003c\/div\u003e' +\n            actionsHtml;\n          infoEl.classList.remove('aqr-fading');\n        }, 300);\n\n        clearAll();\n        setTimeout(function() { drawTargets(ing); }, 450);\n        scheduleNext();\n      }\n\n      function ensureConnectorSvg() {\n        var carto = document.getElementById('aqr-carto');\n        \/\/ Recherche sans :scope pour compatibilite navigateurs anciens\n        var svg = null;\n        var children = carto.children;\n        for (var i = 0; i \u003c children.length; i++) {\n          if (children[i].tagName \u0026\u0026 children[i].tagName.toLowerCase() === 'svg' \u0026\u0026\n              children[i].classList \u0026\u0026 children[i].classList.contains('aqr-connector-svg')) {\n            svg = children[i];\n            break;\n          }\n        }\n        if (!svg) {\n          svg = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'svg');\n          svg.setAttribute('class', 'aqr-connector-svg');\n          carto.appendChild(svg);\n        }\n        return svg;\n      }\n\n      function getListItemAnchor(idx) {\n        var item = document.querySelectorAll('#aqr-carto .aqr-list-item')[idx];\n        var r = item.getBoundingClientRect();\n        var cRect = document.getElementById('aqr-carto').getBoundingClientRect();\n        return {\n          x: r.right - cRect.left,\n          y: r.top + r.height \/ 2 - cRect.top\n        };\n      }\n      function pctToCartoPx(px, py) {\n        var wRect = schemaWrap.getBoundingClientRect();\n        var cRect = document.getElementById('aqr-carto').getBoundingClientRect();\n        return {\n          x: (wRect.left - cRect.left) + (px \/ 100) * wRect.width,\n          y: (wRect.top - cRect.top) + (py \/ 225) * wRect.height\n        };\n      }\n\n      function pctToOverlayPx(px, py) {\n        var wRect = schemaWrap.getBoundingClientRect();\n        return { x: (px \/ 100) * wRect.width, y: (py \/ 225) * wRect.height };\n      }\n\n      function drawTargets(ing) {\n        var color = familyColors[ing.family];\n        var startPt = getListItemAnchor(currentIdx);\n        var connSvg = ensureConnectorSvg();\n\n        ing.targets.forEach(function(target, i) {\n          var anchor = anchors[target.anchor];\n          var endPtCarto = pctToCartoPx(anchor.x, anchor.y);\n          var delay = i * 280;\n\n          \/\/ Ligne courbe : coords en pixels du aqr-carto\n          var dx = endPtCarto.x - startPt.x;\n          var cp1x = startPt.x + dx * 0.4;\n          var cp1y = startPt.y;\n          var cp2x = startPt.x + dx * 0.6;\n          var cp2y = endPtCarto.y;\n          var d = 'M ' + startPt.x + ' ' + startPt.y +\n                  ' C ' + cp1x + ' ' + cp1y + ', ' + cp2x + ' ' + cp2y +\n                  ', ' + endPtCarto.x + ' ' + endPtCarto.y;\n          var connPath = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'path');\n          connPath.setAttribute('d', d);\n          connPath.setAttribute('class', 'aqr-conn-line');\n          connPath.style.setProperty('--c', color);\n          connPath.style.animationDelay = delay + 'ms';\n          connSvg.appendChild(connPath);\n\n          \/\/ IRRADIATION DORÉE — toujours identique sur chaque point\n          var cx = anchor.x;\n          var cy = anchor.y;\n\n          \/\/ 1. Halo doré flou central\n          var halo = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'circle');\n          halo.setAttribute('cx', cx);\n          halo.setAttribute('cy', cy);\n          halo.setAttribute('r', '5');\n          halo.setAttribute('class', 'aqr-star-halo');\n          halo.style.animationDelay = (delay + 500) + 'ms, ' + (delay + 1200) + 'ms';\n          overlay.appendChild(halo);\n\n          \/\/ 2. Anneaux d'irradiation qui se diffusent en boucle continue (4 décalés)\n          for (var r = 0; r \u003c 4; r++) {\n            var ring = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'circle');\n            ring.setAttribute('cx', cx);\n            ring.setAttribute('cy', cy);\n            ring.setAttribute('r', '3');\n            ring.setAttribute('class', 'aqr-star-ring');\n            ring.style.animationDelay = (delay + 600 + r * 800) + 'ms';\n            overlay.appendChild(ring);\n          }\n\n          \/\/ 3. Point coloré A\/B\/C avec sa lettre (par-dessus le doré)\n          var dot = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'circle');\n          dot.setAttribute('cx', cx);\n          dot.setAttribute('cy', cy);\n          dot.setAttribute('r', '2.6');\n          dot.setAttribute('class', 'aqr-marker-dot');\n          dot.style.setProperty('--c', color);\n          dot.style.animationDelay = (delay + 850) + 'ms';\n          overlay.appendChild(dot);\n\n          var txt = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'text');\n          txt.setAttribute('x', cx);\n          txt.setAttribute('y', cy);\n          txt.setAttribute('class', 'aqr-marker-text');\n          txt.textContent = String.fromCharCode(65 + i);\n          txt.style.animationDelay = (delay + 950) + 'ms';\n          overlay.appendChild(txt);\n        });\n      }\n\n      function scheduleNext() {\n        if (autoTimer) clearTimeout(autoTimer);\n        if (playing) autoTimer = setTimeout(function() { focusIngredient(currentIdx + 1); }, 6500);\n      }\n\n      var __started = false;\n      function start() {\n        if (__started) return; __started = true;\n        setTimeout(function() { try { focusIngredient(0); } catch (e) {} }, 200);\n      }\n      \/\/ Filets de securite multiples : l'image et la liste s'affichent toujours,\n      \/\/ et l'animation demarre des que possible quel que soit l'environnement.\n      try {\n        if (schemaImg \u0026\u0026 schemaImg.complete) start();\n        if (schemaImg) {\n          schemaImg.addEventListener('load', start);\n          schemaImg.addEventListener('error', start);\n        }\n      } catch (e) {}\n      if (document.readyState === 'complete') start();\n      else window.addEventListener('load', start);\n      setTimeout(start, 1500);\n\n      var resizeTimer = null;\n      function fullRedraw() {\n        overlay.innerHTML = '';\n        var connSvg = document.querySelector('#aqr-carto \u003e svg.aqr-connector-svg');\n        if (connSvg) connSvg.innerHTML = '';\n        \/\/ double rAF to wait for layout to stabilize\n        requestAnimationFrame(function() {\n          requestAnimationFrame(function() {\n            drawTargets(ingredients[currentIdx]);\n          });\n        });\n      }\n      window.addEventListener('resize', function() {\n        if (resizeTimer) clearTimeout(resizeTimer);\n        resizeTimer = setTimeout(fullRedraw, 200);\n      });\n      \/\/ ResizeObserver pour reagir aussi aux changements de taille du conteneur\n      if (typeof ResizeObserver !== 'undefined') {\n        var ro = new ResizeObserver(function() {\n          if (resizeTimer) clearTimeout(resizeTimer);\n          resizeTimer = setTimeout(fullRedraw, 200);\n        });\n        ro.observe(document.getElementById('aqr-carto'));\n      }\n    })();\n    \u003c\/script\u003e  \u003c!-- STORYTELLING INSERT: biotechnological innovation --\u003e  \u003cdiv style=\"margin-top: 25px; padding: 22px 24px; background: #fff; border-left: 3px solid #1d1d1f;\"\u003e  \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin-bottom: 12px; display: block;\"\u003e🧬 The Bombastic signature\u003c\/span\u003e  \u003cp style=\"font-size: 14px; margin: 0 0 10px; font-weight: 600;\"\u003eWhen biotechnology overcomes cellular barriers\u003c\/p\u003e  \u003cp style=\"font-size: 13px; margin: 0; color: #444; line-height: 1.65;\"\u003eMost cosmetic active ingredients remain in \u003cem\u003esurface\u003c\/em\u003e of the hair, held in place by the natural barrier of the cuticle. The \u003cstrong\u003eBiotechnology Complex\u003c\/strong\u003e Bombastic uses a \u003cstrong\u003especific yeast — \u003cem\u003eSaccharomyces cerevisiae\u003c\/em\u003e\u003c\/strong\u003e — which produces \u003cstrong\u003elow molecular weight glycopeptides\u003c\/strong\u003e capable of \u003cstrong\u003ecross this cellular barrier\u003c\/strong\u003e.  The minerals (zinc, iron, magnesium, silicon, copper) are thus delivered \u003cem\u003eat the heart\u003c\/em\u003e of the fiber, and not simply deposited on its surface. This is an effectiveness that conventional formulations cannot achieve.\u003c\/p\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c!-- BLOCK 4: PROTOCOLS --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eProtocols \u0026amp; Suggestions for use\u003c\/h2\u003e  \u003c!-- DILUTION P4: 3 simple cards (Ratio · Yield · Animated Equivalences) --\u003e  \u003cdiv class=\"aqr-dilution\" style=\"margin-bottom: 12px;\"\u003e  \u003cdiv class=\"aqr-dilution-eyebrow\"\u003eReference dilution\u003c\/div\u003e  \u003cdiv class=\"aqr-dilution-grid\"\u003e  \u003c!-- CARD 1: Ratio --\u003e  \u003cdiv class=\"aqr-dilution-cell\"\u003e  \u003cdiv class=\"aqr-dilution-cell-label\"\u003eRatio\u003c\/div\u003e  \u003cdiv class=\"aqr-dilution-cell-value\"\u003e1\u003cspan class=\"aqr-dilution-slash\"\u003e\/\u003c\/span\u003e60\u003c\/div\u003e  \u003cdiv class=\"aqr-dilution-cell-note\"\u003e1 tbsp\/L\u003cbr\u003eor as an addition to a product\u003c\/div\u003e  \u003c\/div\u003e  \u003c!-- MAP 2: Yield --\u003e  \u003cdiv class=\"aqr-dilution-cell\"\u003e  \u003cdiv class=\"aqr-dilution-cell-label\"\u003eYield\u003c\/div\u003e  \u003cdiv class=\"aqr-dilution-cell-rows\"\u003e  \u003cdiv class=\"aqr-dilution-rend-row\"\u003e  \u003cstrong\u003e150 mL\u003c\/strong\u003e  \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 9 L\u003c\/div\u003e  \u003cdiv class=\"aqr-dilution-rend-row\"\u003e  \u003cstrong\u003e500 mL\u003c\/strong\u003e  \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 30 L\u003c\/div\u003e  \u003cdiv class=\"aqr-dilution-rend-row\"\u003e  \u003cstrong\u003e3 L\u003c\/strong\u003e  \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 180 L\u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-dilution-cell-note\"\u003eready to use\u003c\/div\u003e  \u003c\/div\u003e  \u003c!-- CARD 3: Animated Equivalencies --\u003e  \u003cdiv class=\"aqr-dilution-cell\"\u003e  \u003cdiv class=\"aqr-dilution-cell-label\"\u003eFor \u003cspan id=\"aqrCycleTarget\" class=\"aqr-dilution-cycle-target\"\u003e1 L\u003c\/span\u003e finished product\u003c\/div\u003e  \u003cdiv class=\"aqr-dilution-cell-rows\"\u003e  \u003cdiv class=\"aqr-dilution-eq-row\"\u003e  \u003cstrong id=\"aqrCycleMl\"\u003e17\u003c\/strong\u003e mL \u003cspan\u003ein volume\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-dilution-eq-row\"\u003e  \u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e  \u003cstrong id=\"aqrCycleG\"\u003e17\u003c\/strong\u003e g \u003cspan\u003ein weight\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-dilution-eq-row\"\u003e  \u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e  \u003cstrong id=\"aqrCycleSpoon\"\u003e1\u003c\/strong\u003e  \u003cspan id=\"aqrCycleSpoonLabel\"\u003etablespoon\u003c\/span\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-dilution, .aqr-dilution * { box-sizing: border-box; font-family: inherit; }\n      .aqr-dilution-eyebrow {\n        font-size: 11px;\n        letter-spacing: 0.15em;\n        text-transform: uppercase;\n        color: #86868b;\n        font-weight: 500;\n        margin-bottom: 14px;\n      }\n      .aqr-dilution-grid {\n        display: grid;\n        grid-template-columns: repeat(3, 1fr);\n        gap: 10px;\n      }\n      .aqr-dilution-cell {\n        background: #fff;\n        border: 1px solid #e8e8ed;\n        border-radius: 12px;\n        padding: 18px 16px;\n        display: flex;\n        flex-direction: column;\n      }\n      .aqr-dilution-cell-label {\n        font-size: 10px;\n        letter-spacing: 0.15em;\n        text-transform: uppercase;\n        color: #86868b;\n        font-weight: 500;\n        margin-bottom: 12px;\n        line-height: 1.4;\n      }\n      .aqr-dilution-cell-value {\n        font-size: 38px;\n        font-weight: 600;\n        color: #1d1d1f;\n        letter-spacing: -0.02em;\n        line-height: 1;\n        margin-bottom: 10px;\n      }\n      .aqr-dilution-slash {\n        color: #d2d2d7;\n        font-weight: 300;\n        margin: 0 2px;\n      }\n      .aqr-dilution-cell-rows {\n        display: flex;\n        flex-direction: column;\n        gap: 5px;\n        font-size: 13px;\n        color: #1d1d1f;\n        flex: 1;\n      }\n      .aqr-dilution-cell-rows strong {\n        font-weight: 600;\n        color: #1d1d1f;\n        transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1);\n      }\n      .aqr-dilution-rend-row strong {\n        min-width: 48px;\n        display: inline-block;\n      }\n      .aqr-dilution-rend-arrow {\n        color: #c2a85c;\n        font-weight: 600;\n        margin: 0 2px;\n      }\n      .aqr-dilution-eq-eq {\n        color: #c2a85c;\n        font-weight: 600;\n        margin-right: 2px;\n      }\n      .aqr-dilution-cell-rows span {\n        color: #86868b;\n      }\n      .aqr-dilution-cell-note {\n        font-size: 11px;\n        color: #86868b;\n        margin-top: 10px;\n        line-height: 1.4;\n      }\n      .aqr-dilution-cycle-target {\n        display: inline-block;\n        background: #1d1d1f;\n        color: #fff;\n        padding: 2px 8px;\n        border-radius: 4px;\n        font-weight: 600;\n        letter-spacing: 0.04em;\n        transition: background 0.35s cubic-bezier(0.16, 1, 0.3, 1);\n      }\n      .aqr-dilution-cycle-fade {\n        opacity: 0.2;\n      }\n      @media (max-width: 700px) {\n        .aqr-dilution-grid { grid-template-columns: 1fr; }\n        .aqr-dilution-cell-value { font-size: 32px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e  \u003cscript\u003e\n    (function(){\n      \/\/ Animation: cycle entre 1 L \/ 2 L \/ 4 L (dilution 1\/20)\n      var cycles = [\n        { target: '1 L', ml: '17', g: '17', spoon: '1' },\n        { target: '2 L', ml: '33', g: '33', spoon: '2' },\n        { target: '4 L', ml: '67', g: '67', spoon: '4' }\n      ];\n      var idx = 0;\n      var targetEl = document.getElementById('aqrCycleTarget');\n      var mlEl = document.getElementById('aqrCycleMl');\n      var gEl = document.getElementById('aqrCycleG');\n      var spoonEl = document.getElementById('aqrCycleSpoon');\n      var spoonLabelEl = document.getElementById('aqrCycleSpoonLabel');\n      \/\/ Regle FR : pluriel uniquement a partir de 2 (0, 1, 1,5 -\u003e singulier)\n      function frPlural(valStr, sing, plur) {\n        var n = parseFloat(String(valStr).replace(',', '.'));\n        return (n \u003e= 2) ? plur : sing;\n      }\n      \n      function tick() {\n        idx = (idx + 1) % cycles.length;\n        var c = cycles[idx];\n        \/\/ Fade out, swap, fade in\n        [targetEl, mlEl, gEl, spoonEl, spoonLabelEl].forEach(function(el){\n          if (el) el.classList.add('aqr-dilution-cycle-fade');\n        });\n        setTimeout(function(){\n          if (targetEl) targetEl.textContent = c.target;\n          if (mlEl) mlEl.textContent = c.ml;\n          if (gEl) gEl.textContent = c.g;\n          if (spoonEl) spoonEl.textContent = c.spoon;\n          if (spoonLabelEl) spoonLabelEl.textContent = frPlural(c.spoon, 'cuillère à soupe', 'cuillères à soupe');\n          [targetEl, mlEl, gEl, spoonEl, spoonLabelEl].forEach(function(el){\n            if (el) el.classList.remove('aqr-dilution-cycle-fade');\n          });\n        }, 350);\n      }\n      \n      setInterval(tick, 3500);\n    })();\n    \u003c\/script\u003e  \u003cdetails class=\"aqr-proto-acc\"\u003e  \u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eQuick grooming \u0026amp; economic\u003c\/span\u003eThe method favored by professionals\u003csvg class=\"aqr-proto-plus\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M12 5v14M5 12h14\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/summary\u003e  \u003cdiv class=\"aqr-proto-body\"\u003e  \u003col class=\"aqr-proto-steps\"\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e  \u003cdiv\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eIn the shampoo\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eAdd \u003cstrong\u003e1 to 2 tablespoons of Bombastic\u003c\/strong\u003e in your shampoo. Wash your hair twice with this mixture. Rinse.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003eHAS\u003c\/span\u003e  \u003cdiv\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eSpray option (most economical)\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eDilute \u003cstrong\u003e1 c.tablespoon of Bombastic per liter of water\u003c\/strong\u003e,  Spray onto damp fur. Leave on \u003cstrong\u003e3-5 minutes\u003c\/strong\u003e,  Rinse and begin drying\/brushing.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003eB\u003c\/span\u003e  \u003cdiv\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eNo-rinse option\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eMix \u003cstrong\u003e1 tsp Bombastic + 1 tsp Hydrating Cream + water\u003c\/strong\u003e.  Apply all over and proceed directly to blow-drying. \u003cstrong\u003eno rinsing\u003c\/strong\u003e.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003c\/ol\u003e  \u003c\/div\u003e  \u003c\/details\u003e  \u003cdetails class=\"aqr-proto-acc\"\u003e  \u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eIntense fur restructuring\u003c\/span\u003eDouble dose pre-bath + conditioner\u003csvg class=\"aqr-proto-plus\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M12 5v14M5 12h14\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/summary\u003e  \u003cdiv class=\"aqr-proto-body\"\u003e  \u003col class=\"aqr-proto-steps\"\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e  \u003cdiv\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003ePre-bath mask\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eAdd \u003cstrong\u003e1 tablespoon of Bombastic per liter of water\u003c\/strong\u003e in your usual pre-bath mask (Bio Energy Plus, Hygro Fluid, etc.).\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e  \u003cdiv\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eConditioner\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eAdd \u003cstrong\u003e1 to 2 tablespoons of Bombastic\u003c\/strong\u003e in your conditioner mask. Leave on \u003cstrong\u003e5 minutes\u003c\/strong\u003e.  Rinse.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e  \u003cdiv\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eMaximum synergy\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eThis dual benefit — before and after shampooing — \u003cstrong\u003emaximizes the penetration of mineral active ingredients\u003c\/strong\u003e.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003c\/ol\u003e  \u003c\/div\u003e  \u003c\/details\u003e  \u003cdetails class=\"aqr-proto-acc\"\u003e  \u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eHomemade thick face mask\u003c\/span\u003eDamaged tips \u0026amp; targeted nutrition\u003csvg class=\"aqr-proto-plus\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M12 5v14M5 12h14\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/summary\u003e  \u003cdiv class=\"aqr-proto-body\"\u003e  \u003cdiv style=\"background: #f0f7ff; border-left: 3px solid #4a90d9; border-radius: 8px; padding: 10px 14px; font-size: 12.5px; line-height: 1.55; margin-bottom: 12px;\"\u003e💡  \u003cstrong\u003eConservation :\u003c\/strong\u003e The prepared mousse remains stable but must be used \u003cstrong\u003ewithin 48 hours\u003c\/strong\u003e depending on its preparation. Store it in a cool, dry place, away from heat and direct light.\u003c\/div\u003e  \u003col class=\"aqr-proto-steps\"\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e  \u003cdiv\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003e50\/50 mix\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eMix \u003cstrong\u003e50 mL of Bombastic + 50 mL of cold water\u003c\/strong\u003e in a container. Let it sit for a few minutes — the texture \u003cstrong\u003ethickens surprisingly\u003c\/strong\u003e.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e  \u003cdiv\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eTargeted application\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eApply this thick mask to the \u003cstrong\u003edry fur, damaged tips, areas lacking shine or density\u003c\/strong\u003e.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e  \u003cdiv\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003e3-in-1 result\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eVolume, nutrition and radiance in one step — \u003cstrong\u003ewithout ever adding weight\u003c\/strong\u003e.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003c\/ol\u003e  \u003c\/div\u003e  \u003c\/details\u003e  \u003cdetails class=\"aqr-proto-acc\"\u003e  \u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003e🎀 Wrapping papillotes — signature Yulia Marenkova\u003c\/span\u003eUsed alone, the show poodlers' favorite\u003csvg class=\"aqr-proto-plus\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M12 5v14M5 12h14\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/summary\u003e  \u003cdiv class=\"aqr-proto-body\"\u003e  \u003col class=\"aqr-proto-steps\"\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003eHAS\u003c\/span\u003e  \u003cdiv\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003ePure application\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eUsed \u003cstrong\u003ealone\u003c\/strong\u003e (undiluted), Bombastic is the preferred product of the international handler \u003cstrong\u003eYulia Marenkova\u003c\/strong\u003e to carry out the \u003cstrong\u003ehis show poodles' sidelocks\u003c\/strong\u003e.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003eB\u003c\/span\u003e  \u003cdiv\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eDesired effect\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eEffect \u003cstrong\u003edry nourishing\u003c\/strong\u003e which does not grease the fiber — the hair remains dry to the touch in the foil wrapper, which avoids the “suffocated hair” effect.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e  \u003cdiv\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003ePromotes growth\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eIn long-term papillote treatment, this method of application \u003cstrong\u003eactively promotes growth\u003c\/strong\u003e and the quality of the new hair thanks to the biotechnological mineral complex.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003c\/ol\u003e  \u003c\/div\u003e  \u003c\/details\u003e  \u003cdiv style=\"margin-top: 18px; padding: 14px 18px; background: #f5f5f7; border: 1px solid #e5e5e7; border-radius: 8px; font-size: 13px; line-height: 1.55;\"\u003e📌  \u003cstrong\u003eImportant :\u003c\/strong\u003e Bombastic \u003cstrong\u003eis not a smoothing product\u003c\/strong\u003e.  It strengthens the coat structure and improves the hair's resistance to brushing and drying — but is not designed for mechanical straightening.For a smoothing effect, combine it with \u003cstrong\u003eHygro Fluid\u003c\/strong\u003e Or \u003cstrong\u003eHydrating Cream\u003c\/strong\u003e.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-proto-acc, .aqr-proto-acc * { box-sizing: border-box; font-family: inherit; }\n      .aqr-proto-acc {\n        background: #fff;\n        border: 1px solid #1a1a1a;\n        border-radius: 0;\n        margin-bottom: 8px;\n        overflow: hidden;\n        position: relative;\n      }\n      \/* Perforations verticales SUBTILES en beige, n'interferent jamais avec le texte *\/\n      .aqr-proto-acc::before, .aqr-proto-acc::after {\n        content: \"\";\n        position: absolute;\n        top: 12px; bottom: 12px;\n        width: 1px;\n        background-image: linear-gradient(to bottom, #c8b896 50%, transparent 50%);\n        background-size: 1px 5px;\n        background-repeat: repeat-y;\n        pointer-events: none;\n      }\n      .aqr-proto-acc::before { left: 10px; }\n      .aqr-proto-acc::after { right: 10px; }\n      .aqr-proto-summary {\n        cursor: pointer;\n        list-style: none;\n        padding: 16px 56px 16px 28px;\n        display: flex;\n        align-items: center;\n        gap: 14px;\n        position: relative;\n      }\n      .aqr-proto-summary::-webkit-details-marker { display: none; }\n      .aqr-proto-title {\n        flex: 1;\n        font-size: 14px;\n        font-weight: 600;\n        color: #1a1a1a;\n        line-height: 1.3;\n        min-width: 0;\n      }\n      .aqr-proto-plus {\n        position: absolute;\n        right: 22px; top: 50%; transform: translateY(-50%);\n        width: 22px; height: 22px;\n        display: flex; align-items: center; justify-content: center;\n        border: 1px solid #1a1a1a; border-radius: 50%;\n        color: #1a1a1a; background: transparent;\n        transition: transform 0.3s, background 0.3s, color 0.3s;\n        flex-shrink: 0;\n      }\n      .aqr-proto-acc[open] .aqr-proto-plus {\n        transform: translateY(-50%) rotate(45deg);\n        background: #1a1a1a; color: #F5E6B8;\n      }\n      .aqr-proto-content {\n        padding: 4px 28px 22px;\n        animation: aqrProtoFade 0.4s ease-out;\n      }\n      @keyframes aqrProtoFade { from { opacity: 0; } to { opacity: 1; } }\n      .aqr-proto-subtitle {\n        font-family: Georgia, \"Times New Roman\", serif;\n        font-style: italic;\n        font-size: 13px;\n        color: #555;\n        margin: 0 0 18px;\n        padding-bottom: 12px;\n        border-bottom: 1px dashed #c8b896;\n      }\n      .aqr-proto-steps {\n        list-style: none;\n        padding: 0;\n        margin: 0;\n        display: flex;\n        flex-direction: column;\n        gap: 12px;\n      }\n      .aqr-proto-step {\n        display: flex;\n        gap: 12px;\n        align-items: flex-start;\n      }\n      .aqr-proto-step-marker {\n        flex-shrink: 0;\n        width: 26px; height: 26px;\n        display: flex; align-items: center; justify-content: center;\n        background: transparent;\n        border: 1px solid #1a1a1a;\n        color: #1a1a1a;\n        font-family: Georgia, \"Times New Roman\", serif;\n        font-style: italic;\n        font-weight: 700;\n        font-size: 12px;\n        border-radius: 50%;\n      }\n      .aqr-proto-step-body { flex: 1; padding-top: 2px; }\n      .aqr-proto-step-title {\n        font-size: 11px;\n        letter-spacing: 0.12em;\n        text-transform: uppercase;\n        color: #1a1a1a;\n        font-weight: 700;\n        margin-bottom: 3px;\n      }\n      .aqr-proto-step-desc {\n        font-size: 12px;\n        line-height: 1.6;\n        color: #444;\n      }\n      @media (max-width: 600px) {\n        .aqr-proto-summary { padding: 14px 48px 14px 22px; gap: 10px; }\n        .aqr-proto-title { font-size: 13px; }\n        .aqr-proto-plus { right: 16px; }\n        .aqr-proto-acc::before { left: 8px; }\n        .aqr-proto-acc::after { right: 8px; }\n        .aqr-proto-content { padding: 4px 22px 18px; }\n      }\n      @media (max-width: 380px) {\n        .aqr-proto-summary { padding: 12px 42px 12px 18px; }\n        .aqr-proto-acc::before { left: 6px; }\n        .aqr-proto-acc::after { right: 6px; }\n        .aqr-proto-content { padding: 4px 18px 16px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003c!-- BLOCK 5: ASSOCIATIONS \u0026  RACES --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eRecommended Associations \u0026amp; Races\u003c\/h2\u003e  \u003c!-- Villanelle at the heart + modular supplements If... → Then --\u003e  \u003cdiv class=\"aqr-assoc\"\u003e  \u003cp class=\"aqr-assoc-intro\"\u003eThe entire Special One range is compatible with Bombastic. Our favorite combinations: 🤝  \u003cstrong\u003eBain Pro\/Aquarosa Pro\/Aquapure Pro\/4Poodle Pro\u003c\/strong\u003e (shampoos) \u003cstrong\u003eBio Energy\u003c\/strong\u003e (pre-bath) \u003cstrong\u003eHydrating Cream\/Aqua Dolce\u003c\/strong\u003e (final mask) \u003cstrong\u003eAbsolute 4Poodle\/Mix Pink\/Style 360\u003c\/strong\u003e (finishing).\u003c\/p\u003e  \u003cdiv class=\"aqr-assoc-rules\"\u003e  \u003cdiv class=\"aqr-assoc-rule\"\u003e  \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003eA profound reconstruction is needed…\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003eDouble dose: 1 tbsp pre-bath + 1-2 tbsp post-bath\u003c\/strong\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-rule\"\u003e  \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003eQuick grooming in the salon…\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003e1-2 tablespoons in shampoo + diluted spray after rinsing\u003c\/strong\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-rule\"\u003e  \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003ehair wrappers for large and medium-sized show poodles…\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003eBombastic \u003cstrong\u003epure if your dog has sufficiently thick fur\u003c\/strong\u003e (signature Yulia Marenkova, who loves doing this on her large and medium-sized poodles, black and white)\u003c\/strong\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-rule\"\u003e  \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003edesired smoothing effect…\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003eAssociate Bombastic with \u003cstrong\u003eHygro Fluid\u003c\/strong\u003e Or \u003cstrong\u003eHydrating Cream\u003c\/strong\u003e\u003c\/strong\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-rule\"\u003e  \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003econtrolled volume zone (Bouvier back, Yorkshire curtain)...\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003e❌ Do not apply to these specific areas\u003c\/strong\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-rule\"\u003e  \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003every damaged tips…\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003eHomemade mask 50\/50 (Bombastic + cold water)\u003c\/strong\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-assoc, .aqr-assoc * { box-sizing: border-box; font-family: inherit; }\n      .aqr-assoc { margin-bottom: 24px; }\n      .aqr-assoc-intro {\n        font-size: 13px; color: #444; line-height: 1.5;\n        margin: 0 0 16px;\n      }\n      .aqr-assoc-rules {\n        display: flex; flex-direction: column;\n      }\n      .aqr-assoc-rule {\n        display: grid; grid-template-columns: 1fr 1.3fr;\n        gap: 18px; align-items: center;\n        padding: 16px 8px;\n        border-bottom: 1px dashed #d8d8d8;\n      }\n      .aqr-assoc-rule:last-child { border-bottom: none; }\n      .aqr-assoc-if {\n        display: flex; align-items: center; gap: 10px;\n        color: #888; font-size: 13px; font-style: italic;\n      }\n      .aqr-assoc-if-tag {\n        background: #1a1a1a; color: #F5E6B8;\n        padding: 3px 10px;\n        font-family: Georgia, \"Times New Roman\", serif; font-weight: 700;\n        font-size: 11px; letter-spacing: 0.05em;\n        font-style: normal;\n        flex-shrink: 0;\n      }\n      .aqr-assoc-then {\n        display: flex; align-items: center; gap: 10px;\n        font-size: 13px;\n      }\n      .aqr-assoc-then-arrow {\n        color: #D4AF37; font-size: 18px; font-weight: 700;\n        flex-shrink: 0;\n      }\n      .aqr-assoc-then strong { color: #1a1a1a; }\n      @media (max-width: 600px) {\n        .aqr-assoc-rule { grid-template-columns: 1fr; gap: 4px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e  \u003c!-- Races in rounded pills --\u003e  \u003ch3 style=\"font-size: 13px; font-weight: 600; color: #1a1a1a; margin: 0 0 12px;\"\u003eWhere Bombastic makes the difference:\u003c\/h3\u003e  \u003cdiv class=\"aqr-races-mosaic\"\u003e  \u003cspan class=\"aqr-race-tag\"\u003e🐱 All cats\u003c\/span\u003e  \u003cspan class=\"aqr-race-tag\"\u003e🐩 Curly furs \u003cspan\u003e(Poodles, Bichons, Kerry Blue, Soft Coated, Bedlington…)\u003c\/span\u003e\u003c\/span\u003e  \u003cspan class=\"aqr-race-tag\"\u003e🐕🦺 All the Shepherds \u003cspan\u003e(Australians, Belgians, Germans…)\u003c\/span\u003e\u003c\/span\u003e  \u003cspan class=\"aqr-race-tag\"\u003e🐶 All Cocker Spaniels \u003cspan\u003e(American, English)\u003c\/span\u003e\u003c\/span\u003e  \u003cspan class=\"aqr-race-tag\"\u003e🏔️ Tibetan races \u003cspan\u003e(Shih Tzu, Lhasa Apso, Tibetan Terrier…)\u003c\/span\u003e\u003c\/span\u003e  \u003cspan class=\"aqr-race-tag\"\u003e👑 English Toy Spaniels \u003cspan\u003e(Rider \u0026amp; King Charles)\u003c\/span\u003e\u003c\/span\u003e  \u003cspan class=\"aqr-race-tag\"\u003e💎 Long furs \u0026amp; silky \u003cspan\u003e(Afghans…)\u003c\/span\u003e\u003c\/span\u003e  \u003cspan class=\"aqr-race-tag\"\u003e🌊 Water dogs, Retrievers \u0026amp; Cattle herders \u003cspan\u003e(Newfoundland, Bernese Mountain Dog, Golden Retriever…)\u003c\/span\u003e\u003c\/span\u003e  \u003cspan class=\"aqr-race-tag\"\u003e🐺 Primitives\/Double-coat \u003cspan\u003e(Spitz, Eurasiers, Samoyeds…)\u003c\/span\u003e\u003c\/span\u003e  \u003cspan class=\"aqr-race-tag\"\u003e🦴 Terriers \u003cspan\u003e(Scottish, Westie, Welsh…)\u003c\/span\u003e\u003c\/span\u003e  \u003c\/div\u003e  \u003cp style=\"margin-top: 14px; font-size: 11px; color: #888; font-style: italic;\"\u003eLong and non-exhaustive list — Bombastic adapts to all fibers, from the softest to the most unruly.\u003c\/p\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-races-mosaic {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 8px;\n      }\n      .aqr-race-tag {\n        display: inline-flex;\n        align-items: center;\n        gap: 6px;\n        background: #fff;\n        color: #1a1a1a;\n        padding: 9px 16px;\n        border-radius: 100px;\n        font-size: 12px;\n        font-weight: 600;\n        border: 1px solid #e5e5e5;\n        line-height: 1.3;\n      }\n      .aqr-race-tag span {\n        opacity: 0.6;\n        font-weight: 400;\n        font-size: 11px;\n      }\n      @media (max-width: 560px) {\n        .aqr-race-tag { font-size: 11px; padding: 8px 13px; }\n        .aqr-race-tag span { font-size: 10px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e  \u003cdiv style=\"margin-top: 30px; text-align: center; border-top: 1px solid #eee; padding-top: 20px;\"\u003e  \u003cp style=\"font-size: 11px; color: #888; text-transform: uppercase;\"\u003eBiodegradable +90% | SLES, Paraben, and Silicone Free | Not Tested on Animals | HDPE Recyclable\u003c\/p\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e","brand":"Petdesign.fr","offers":[{"title":"1 Litre","offer_id":40087665017011,"sku":"WEX-BOM1000 (51)","price":86.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/bombastic-le-serum-incontournable.png?v=1793144669"},{"product_id":"aqua-baby-paw","title":"Aqua Baby Paw - Foaming puppy shampoo","description":"\u003c!-- ============================================== DESIGN SYSTEM — Visual Refinement ============================================= --\u003e  \u003cstyle id=\"aqr-design-system\"\u003e\n  \/* On garde la police du theme Shopify - juste antialiasing pour le rendu *\/\n  body, body * {\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n  \n  \/* === Variables du système de design === *\/\n  :root {\n    --ds-black: #1d1d1f;        \/* Noir doux — légèrement plus chaud que le noir pur *\/\n    --ds-text: #1d1d1f;\n    --ds-text-secondary: #86868b; \/* Gris secondaire *\/\n    --ds-text-tertiary: #a1a1a6;\n    --ds-bg: #ffffff;\n    --ds-bg-elevated: #fbfbfd;   \/* Gris très clair *\/\n    --ds-bg-soft: #f5f5f7;       \/* Gris très clair *\/\n    --ds-border: #d2d2d7;\n    --ds-border-soft: #e8e8ed;\n    --ds-gold: #c2a85c;          \/* Or subtil et mat *\/\n    --ds-gold-pale: #f0e6cf;\n    --ds-radius-sm: 8px;\n    --ds-radius-md: 12px;\n    --ds-radius-lg: 18px;\n    --ds-radius-xl: 22px;\n    --ds-ease: cubic-bezier(0.16, 1, 0.3, 1);\n    --ds-duration: 0.35s;\n  }\n\n  \/* === Couleurs noir \/ doré === *\/\n  \/* Cards expertise (Proposition D) *\/\n  .aqr-benefit-card {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    border-radius: var(--ds-radius-md) !important;\n    padding: 18px 20px !important;\n    transition: transform var(--ds-duration) var(--ds-ease),\n                box-shadow var(--ds-duration) var(--ds-ease),\n                border-color var(--ds-duration) var(--ds-ease) !important;\n    \/* Force l'alignement haut de chaque card dans la grille *\/\n    align-self: stretch !important;\n    margin: 0 !important;\n    vertical-align: top !important;\n  }\n  .aqr-benefits-grid {\n    align-items: start !important;\n    align-content: start !important;\n  }\n  \/* MEME chose pour les audience cards et autres grilles *\/\n  .aqr-audience-grid {\n    align-items: start !important;\n    align-content: start !important;\n  }\n  .aqr-audience-card {\n    align-self: stretch !important;\n    margin: 0 !important;\n  }\n  .aqr-benefit-card::before {\n    background: var(--ds-text) !important;\n    width: 3px !important;\n  }\n  .aqr-benefit-card:hover {\n    background: var(--ds-bg) !important;\n    transform: translateY(-2px);\n    box-shadow: 0 8px 24px rgba(0,0,0,0.06);\n    border-color: var(--ds-border) !important;\n  }\n  .aqr-benefit-card:hover::before {\n    width: 3px !important;\n    background: var(--ds-gold) !important;\n  }\n  .aqr-benefit-corner {\n    width: 14px !important;\n    height: 14px !important;\n    background: linear-gradient(225deg, var(--ds-gold-pale) 50%, transparent 50%) !important;\n    border-top-right-radius: var(--ds-radius-md) !important;\n  }\n  .aqr-benefit-icon {\n    background: var(--ds-text) !important;\n    color: var(--ds-gold) !important;\n    border-radius: var(--ds-radius-sm) !important;\n  }\n  .aqr-benefit-title {\n    color: var(--ds-text) !important;\n    font-weight: 600 !important;\n    letter-spacing: -0.01em !important;\n    font-size: 14px !important;\n  }\n  .aqr-benefit-desc {\n    color: var(--ds-text-secondary) !important;\n    font-size: 12px !important;\n    line-height: 1.55 !important;\n  }\n\n  \/* === Cards Audience === *\/\n  .aqr-audience-card {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    border-radius: var(--ds-radius-md) !important;\n    padding: 18px 12px !important;\n    transition: transform var(--ds-duration) var(--ds-ease),\n                box-shadow var(--ds-duration) var(--ds-ease),\n                border-color var(--ds-duration) var(--ds-ease) !important;\n  }\n  .aqr-audience-card:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 8px 24px rgba(0,0,0,0.06);\n    border-color: var(--ds-border) !important;\n  }\n  .aqr-audience-icon {\n    background: var(--ds-bg-soft) !important;\n    border-radius: 50% !important;\n    width: 44px !important;\n    height: 44px !important;\n  }\n  .aqr-audience-icon svg { stroke: var(--ds-text) !important; }\n  .aqr-audience-name {\n    color: var(--ds-text) !important;\n    font-weight: 500 !important;\n    font-size: 13px !important;\n    letter-spacing: -0.01em !important;\n  }\n\n  \/* === Eyebrows === *\/\n  span[style*=\"text-transform: uppercase\"][style*=\"color: #999\"] {\n    color: var(--ds-text-secondary) !important;\n    font-weight: 500 !important;\n    letter-spacing: 0.08em !important;\n    font-size: 11px !important;\n    margin-bottom: 18px !important;\n  }\n\n  \/* === Blocs principaux : fond uniforme === *\/\n  \/* Les blocs sur fond crème deviennent gris pâle *\/\n  div[style*=\"background-color: #FBF9F5\"] {\n    background-color: var(--ds-bg-soft) !important;\n  }\n\n  \/* === Bloc Dilution === *\/\n  .aqr-dilution {\n    border: none !important;\n    padding: 0 !important;\n    background: transparent !important;\n  }\n  \/* Forcer l'alignement haut + hauteur egale des 3 cartes dilution *\/\n  .aqr-dilution-grid {\n    align-items: stretch !important;\n  }\n  .aqr-dilution-cell {\n    align-self: stretch !important;\n    margin: 0 !important;\n  }\n  .aqr-dilution-eyebrow {\n    color: var(--ds-text-secondary) !important;\n    letter-spacing: 0.08em !important;\n    font-weight: 500 !important;\n    margin-bottom: 20px !important;\n  }\n  .aqr-dilution-eq-target {\n    background: var(--ds-text) !important;\n    color: var(--ds-bg) !important;\n    border-radius: 6px !important;\n    padding: 4px 12px !important;\n  }\n  .aqr-dilution-eq-item {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    border-radius: var(--ds-radius-sm) !important;\n    padding: 14px 8px !important;\n  }\n  .aqr-dilution-eq-val {\n    font-weight: 700 !important;\n    color: var(--ds-text) !important;\n  }\n  .aqr-dilution-eq-name {\n    color: var(--ds-text-secondary) !important;\n  }\n  .aqr-dilution-eq-sep {\n    color: var(--ds-text-tertiary) !important;\n  }\n  .aqr-dilution-eq-or span {\n    color: var(--ds-text-tertiary) !important;\n  }\n\n  \/* === Chips rendement (le trio horizontal) === *\/\n  .aqr-dilution-chips-label {\n    color: var(--ds-text-secondary) !important;\n    font-weight: 500 !important;\n    letter-spacing: 0.08em !important;\n  }\n  .aqr-dilution-chip-from,\n  .aqr-dilution-chip-to {\n    color: var(--ds-text) !important;\n  }\n  .aqr-dilution-chip-arr { color: var(--ds-gold) !important; }\n  .aqr-dilution-chips-foot { color: var(--ds-text-secondary) !important; }\n  \n  \/* === Accordeons Protocoles === *\/\n  .aqr-proto-acc {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border) !important;\n    border-radius: var(--ds-radius-md) !important;\n    overflow: hidden;\n    transition: box-shadow var(--ds-duration) var(--ds-ease) !important;\n  }\n  .aqr-proto-acc[open] {\n    box-shadow: 0 12px 32px rgba(0,0,0,0.08);\n  }\n  \/* Suppression des perforations beige du ticket *\/\n  .aqr-proto-acc::before,\n  .aqr-proto-acc::after {\n    display: none !important;\n  }\n  .aqr-proto-summary {\n    padding: 18px 56px 18px 22px !important; \/* right plus large pour le +, left aere *\/\n  }\n  .aqr-proto-title {\n    word-wrap: break-word;\n    overflow-wrap: break-word;\n    hyphens: auto;\n  }\n  @media (max-width: 600px) {\n    .aqr-proto-summary {\n      padding: 16px 50px 16px 18px !important;\n    }\n    .aqr-proto-plus {\n      right: 16px !important;\n    }\n    .aqr-proto-content {\n      padding: 4px 18px 18px !important;\n    }\n  }\n  @media (max-width: 380px) {\n    .aqr-proto-summary {\n      padding: 14px 44px 14px 14px !important;\n    }\n    .aqr-proto-plus {\n      right: 12px !important;\n    }\n    .aqr-proto-content {\n      padding: 4px 14px 16px !important;\n    }\n  }\n  .aqr-proto-title {\n    color: var(--ds-text) !important;\n    font-weight: 500 !important;\n    letter-spacing: -0.01em !important;\n    font-size: 15px !important;\n  }\n  .aqr-proto-plus {\n    border-color: var(--ds-border) !important;\n    color: var(--ds-text-secondary) !important;\n    background: transparent !important;\n    transition: transform var(--ds-duration) var(--ds-ease),\n                background var(--ds-duration) var(--ds-ease),\n                color var(--ds-duration) var(--ds-ease) !important;\n  }\n  .aqr-proto-acc[open] .aqr-proto-plus {\n    background: var(--ds-text) !important;\n    color: var(--ds-bg) !important;\n    border-color: var(--ds-text) !important;\n  }\n  .aqr-proto-content { padding: 4px 24px 22px !important; }\n  .aqr-proto-subtitle {\n    color: var(--ds-text-secondary) !important;\n    border-bottom: 1px solid var(--ds-border-soft) !important;\n  }\n  .aqr-proto-step-marker {\n    background: var(--ds-bg-soft) !important;\n    border-color: transparent !important;\n    color: var(--ds-text) !important;\n  }\n  .aqr-proto-step-title {\n    color: var(--ds-text) !important;\n    letter-spacing: 0.06em !important;\n    font-weight: 600 !important;\n  }\n  .aqr-proto-step-desc {\n    color: var(--ds-text-secondary) !important;\n  }\n\n  \/* === Associations Si → Alors === *\/\n  .aqr-assoc-intro {\n    color: var(--ds-text-secondary) !important;\n    font-size: 14px !important;\n    line-height: 1.6 !important;\n  }\n  .aqr-assoc-rule {\n    border-bottom: 1px solid var(--ds-border-soft) !important;\n    padding: 18px 4px !important;\n  }\n  .aqr-assoc-if-tag {\n    background: var(--ds-text) !important;\n    color: var(--ds-bg) !important;\n    border-radius: 4px !important;\n    font-weight: 600 !important;\n    letter-spacing: 0.04em !important;\n  }\n  .aqr-assoc-if span { color: var(--ds-text-secondary) !important; }\n  .aqr-assoc-then-arrow { color: var(--ds-gold) !important; }\n  .aqr-assoc-then strong { color: var(--ds-text) !important; }\n\n  \/* === Races (pilules) === *\/\n  .aqr-race-tag {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    color: var(--ds-text) !important;\n    font-weight: 500 !important;\n    transition: transform 0.2s var(--ds-ease), border-color 0.2s var(--ds-ease) !important;\n  }\n  .aqr-race-tag:hover {\n    transform: translateY(-1px);\n    border-color: var(--ds-border) !important;\n  }\n  .aqr-race-tag span { color: var(--ds-text-secondary) !important; }\n\n  \/* === Radar : points forts en pilules === *\/\n  .so-foot-centered-chip {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border) !important;\n    color: var(--ds-text) !important;\n    border-radius: 100px !important;\n    padding: 6px 14px !important;\n    font-weight: 500 !important;\n  }\n  .so-foot-centered-chip em {\n    color: var(--ds-gold) !important;\n  }\n  .so-foot-centered-title {\n    color: var(--ds-text-secondary) !important;\n    font-weight: 500 !important;\n    letter-spacing: 0.18em !important;\n  }\n  .so-foot-centered-line {\n    background: var(--ds-border-soft) !important;\n  }\n\n  \/* === Cartographie : ajouter de l'air === *\/\n  #aqr-carto .aqr-list-item {\n    border-radius: var(--ds-radius-sm) !important;\n    transition: background 0.2s var(--ds-ease) !important;\n  }\n  \/* Assurer la visibilite de l'image schema dans tous les contextes *\/\n  #aqr-carto .aqr-schema-wrap {\n    display: block !important;\n    visibility: visible !important;\n    opacity: 1 !important;\n    overflow: visible !important;\n  }\n  #aqr-carto .aqr-schema-img {\n    display: block !important;\n    visibility: visible !important;\n    opacity: 1 !important;\n    width: 100% !important;\n    height: auto !important;\n  }\n\n  \/* === Le grand 1\/20 — typographie plus light === *\/\n  .aqr-dilution-ratio-num {\n    color: var(--ds-text) !important;\n    font-weight: 700 !important;\n  }\n  .aqr-dilution-ratio-sub {\n    color: var(--ds-text-secondary) !important;\n  }\n\n  \/* Animations apaisees - cible seulement les elements avec transition (pas les animations) *\/\n  .aqr-audience-card,\n  .aqr-race-tag,\n  .aqr-proto-acc,\n  .aqr-proto-plus,\n  .aqr-dilution,\n  .so-foot-centered-chip {\n    transition-timing-function: var(--ds-ease) !important;\n  }\n\n  \/* === Le footer mentions === *\/\n  div[style*=\"text-transform: uppercase\"][style*=\"color: #888\"] {\n    color: var(--ds-text-tertiary) !important;\n    font-size: 10px !important;\n    letter-spacing: 0.05em !important;\n    font-weight: 500 !important;\n  }\n\u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003c!-- BLOCK 1: INTRO --\u003e  \u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e  \u003cdiv style=\"font-size: 1.1em; margin-bottom: 16px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e  \u003cstrong\u003eAQUA BABY PAW\u003c\/strong\u003e is the foaming shampoo \u003cstrong\u003eultra-soft\u003c\/strong\u003e Special One formulated with love \u003cstrong\u003eyour puppy's first bath\u003c\/strong\u003e.  Made with ingredients of controlled organic origin, with a delicious cotton candy scent, it maintains the physiological balance of the delicate skin of toddlers — soft, shiny and delicately scented fur.\u003c\/div\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eWho is this product for?\u003c\/h2\u003e  \u003cp style=\"margin-bottom: 20px; font-size: 14px;\"\u003eSpecifically designed for \u003cstrong\u003epuppies up to 6 months old\u003c\/strong\u003e and adult dogs with sensitive skin. Compatible with all products in the Special One range.\u003c\/p\u003e  \u003cdiv class=\"aqr-audience\"\u003e  \u003cdiv class=\"aqr-audience-grid\"\u003e  \u003cdiv class=\"aqr-audience-card\"\u003e  \u003cdiv class=\"aqr-audience-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"#1a1a1a\" fill=\"none\" height=\"20\" width=\"20\" viewbox=\"0 0 24 24\"\u003e\u003ccircle r=\"2.5\" cy=\"18\" cx=\"6\"\u003e\u003c\/circle\u003e\u003ccircle r=\"2.5\" cy=\"18\" cx=\"18\"\u003e\u003c\/circle\u003e\u003cpath d=\"M8 16 L20 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M16 16 L4 4\"\u003e\u003c\/path\u003e\u003ccircle fill=\"#1a1a1a\" r=\"1\" cy=\"11.5\" cx=\"12\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-audience-name\"\u003eGroomers\u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-audience-card\"\u003e  \u003cdiv class=\"aqr-audience-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"#1a1a1a\" fill=\"none\" height=\"20\" width=\"20\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M3 21 L3 12 L12 5 L21 12 L21 21 Z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 21 L9 15 L15 15 L15 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-audience-name\"\u003eLivestock farmers\u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-audience-card\"\u003e  \u003cdiv class=\"aqr-audience-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"#1a1a1a\" fill=\"none\" height=\"20\" width=\"20\" viewbox=\"0 0 24 24\"\u003e\u003ccircle r=\"4\" cy=\"8\" cx=\"12\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 21 Q4 14 12 14 Q20 14 20 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-audience-name\"\u003eIndividuals\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-audience, .aqr-audience * { box-sizing: border-box; font-family: inherit; }\n      .aqr-audience-grid {\n        display: grid;\n        grid-template-columns: repeat(5, 1fr);\n        gap: 8px;\n      }\n      .aqr-audience-card {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        gap: 8px;\n        padding: 16px 10px;\n        background: #fff;\n        border: 1px solid #e5e5e5;\n        border-radius: 8px;\n        text-align: center;\n        transition: border-color 0.2s, transform 0.2s;\n      }\n      .aqr-audience-card:hover {\n        border-color: #1a1a1a;\n        transform: translateY(-1px);\n      }\n      .aqr-audience-icon {\n        width: 40px;\n        height: 40px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: #f6f6f6;\n        border-radius: 50%;\n      }\n      .aqr-audience-name {\n        font-size: 12px;\n        font-weight: 600;\n        color: #1a1a1a;\n        line-height: 1.2;\n      }\n      @media (max-width: 700px) {\n        .aqr-audience-grid { grid-template-columns: repeat(3, 1fr); }\n      }\n      @media (max-width: 420px) {\n        .aqr-audience-grid { grid-template-columns: repeat(2, 1fr); }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003c!-- BLOCK 2: EXPERTISE \u0026  RESULTS --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eExpertise \u0026amp; Results\u003c\/h2\u003e  \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eA puppy's skin is much more delicate than that of an adult dog and requires ultra-gentle cleansing. \u003cstrong\u003eSoft and nourishing mousse\u003c\/strong\u003e Deeply removes impurities without irritation, damaging the hydrolipidic film, or disrupting the pH balance — leaving the coat light, silky, and pleasantly scented. Ideal for frequent baths from the first weeks of life.\u003c\/p\u003e  \u003cdiv style=\"margin-top: 20px;\" class=\"aqr-benefits\"\u003e  \u003cdiv class=\"aqr-benefits-grid\"\u003e  \u003cdiv style=\"--i: 0;\" class=\"aqr-benefit-card\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"currentColor\" fill=\"none\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M19 4c0 6-5 11-11 11l-3 5h2l1-2c6 0 11-5 11-14z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eUltra-soft \u0026amp; secure\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003eControlled organic formula, free of parabens, SLES and DEA — perfect for even the most sensitive skin.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv style=\"--i: 1;\" class=\"aqr-benefit-card\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"currentColor\" fill=\"none\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M12 4v16M7 8h10M6 8l-2.5 5a3 3 0 0 0 5 0zM18 8l-2.5 5a3 3 0 0 0 5 0z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003ePhysiological balance\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003eMaintains the skin's natural pH and preserves the hydrolipidic film intact.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv style=\"--i: 2;\" class=\"aqr-benefit-card\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"currentColor\" fill=\"none\" viewbox=\"0 0 24 24\"\u003e\u003ccircle r=\"4\" cy=\"15\" cx=\"9\"\u003e\u003c\/circle\u003e\u003ccircle r=\"3\" cy=\"9\" cx=\"15\"\u003e\u003c\/circle\u003e\u003ccircle r=\"2\" cy=\"16\" cx=\"17\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eNourishing mousse\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003eCleans thoroughly without damaging — the coat is left soft, shiny and lightly scented.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv style=\"--i: 3;\" class=\"aqr-benefit-card\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"currentColor\" fill=\"none\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M12 21C12 21 4 13.8 4 8.6A4 4 0 0 1 12 6 A4 4 0 0 1 20 8.6C20 13.8 12 21 12 21z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eSoothing\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003eReduces potential irritations and provides immediate comfort to the puppy's delicate skin.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv style=\"--i: 4;\" class=\"aqr-benefit-card\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"currentColor\" fill=\"none\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M21 12a9 9 0 1 1-3-6.7\"\u003e\u003c\/path\u003e\u003cpath d=\"M21 4v4h-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eFrequent baths\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003ePerfectly suited for regular use, with no risk to the skin and fur of toddlers.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-benefits, .aqr-benefits * { box-sizing: border-box; font-family: inherit; }\n      .aqr-benefits-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        grid-auto-rows: 1fr;\n        align-items: stretch;\n        gap: 10px;\n      }\n      .aqr-benefit-card {\n        position: relative;\n        display: flex;\n        gap: 14px;\n        background: #fff;\n        border: 1px solid #1a1a1a;\n        border-radius: 8px;\n        padding: 16px 18px;\n        align-items: center;\n        overflow: hidden;\n        opacity: 0;\n        animation: aqrBenefitFadeIn 0.5s ease-out forwards;\n        animation-delay: calc(var(--i) * 80ms);\n        transition: background 0.3s;\n      }\n      .aqr-benefit-card::before {\n        content: \"\";\n        position: absolute;\n        top: 0; left: 0; bottom: 0;\n        width: 4px;\n        background: #1a1a1a;\n        transition: width 0.3s, background 0.3s;\n      }\n      .aqr-benefit-card:hover { background: #fafafa; }\n      .aqr-benefit-card:hover::before {\n        width: 6px;\n        background: #D4AF37;\n      }\n      .aqr-benefit-corner {\n        position: absolute;\n        top: 0; right: 0;\n        width: 18px; height: 18px;\n        background: linear-gradient(225deg, #F5E6B8 50%, transparent 50%);\n        border-top-right-radius: 8px;\n        overflow: hidden;\n      }\n      .aqr-benefit-icon {\n        flex-shrink: 0;\n        width: 44px; height: 44px;\n        display: flex; align-items: center; justify-content: center;\n        background: #1a1a1a;\n        color: #F5E6B8;\n        border-radius: 0;\n      }\n      .aqr-benefit-icon svg { width: 22px; height: 22px; }\n      .aqr-benefit-content { flex: 1; min-width: 0; }\n      .aqr-benefit-title {\n        font-size: 14px;\n        font-weight: 700;\n        color: #1a1a1a;\n        margin-bottom: 3px;\n      }\n      .aqr-benefit-desc {\n        font-size: 11px;\n        line-height: 1.5;\n        color: #555;\n      }\n      @keyframes aqrBenefitFadeIn {\n        to { opacity: 1; }\n      }\n      @media (max-width: 600px) {\n        .aqr-benefits-grid { grid-template-columns: 1fr; gap: 8px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003c!-- RADAR UNIT (moved under Expertise) --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eBetter understand the actions of the Aqua Baby Paw\u003c\/h2\u003e  \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eA detailed breakdown of its cosmetic performance, note by note.\u003c\/p\u003e  \u003cdiv style=\"width: 100%; max-width: 480px; margin: 0 auto; background: #fff; border: 1px solid #e5e5e5; font-family: inherit; color: #1a1a1a; line-height: 1.4;\" id=\"so-radar-widget\"\u003e  \u003cdiv style=\"padding: 16px 28px; overflow: visible;\"\u003e  \u003cdiv style=\"position: relative; width: 100%; max-width: 340px; aspect-ratio: 1; margin: 0 auto; overflow: visible;\" id=\"so-radar-area\"\u003e\u003csvg viewbox=\"0 0 360 360\" style=\"width: 100%; height: 100%; overflow: visible;\" id=\"so-radar-svg\"\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv id=\"so-radar-footer\"\u003e\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n    #so-radar-widget * { box-sizing: border-box; }\n    .so-label { position: absolute; transform: translate(-50%, -50%); text-align: center; pointer-events: none; white-space: nowrap; opacity: 0; animation: so-fadeUp 0.5s ease forwards; }\n    .so-label .so-lname { font-size: 9px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: #999; display: block; margin-bottom: 1px; font-family: inherit; }\n    .so-label .so-lval { font-size: 24px; font-weight: 700; color: #1a1a1a; line-height: 1; font-family: inherit; }\n    .so-label .so-lmax { font-size: 12px; font-weight: 400; color: #bbb; font-family: inherit; }\n    .so-foot-centered { margin-top: 18px; padding-top: 16px; border-top: 1px solid #eee; opacity: 0; animation: so-footerIn 0.5s ease forwards 0.8s; }\n    .so-foot-centered-head { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 14px; }\n    .so-foot-centered-line { flex: 1; height: 1px; background: #1a1a1a; max-width: 50px; }\n    .so-foot-centered-title { font-size: 9px; letter-spacing: 0.3em; font-weight: 700; color: #1a1a1a; font-family: inherit; }\n    .so-foot-centered-chips { display: grid; grid-template-columns: auto auto; justify-content: center; justify-items: center; gap: 6px; }\n    .so-foot-centered-chip { display: inline-flex; align-items: baseline; gap: 6px; background: #fff; border: 1px solid #1a1a1a; color: #1a1a1a; padding: 6px 14px; border-radius: 100px; font-size: 11px; font-weight: 600; font-family: inherit; }\n    .so-foot-centered-chip em { font-family: Georgia, \"Times New Roman\", serif; font-style: italic; font-weight: 700; color: #D4AF37; font-size: 11px; }\n    .so-shape-fill   { opacity: 0; animation: so-shapeIn 0.9s ease forwards 0.2s; }\n    .so-shape-stroke { opacity: 0; animation: so-shapeIn 0.7s ease forwards 0.35s; }\n    .so-dot          { opacity: 0; animation: so-dotIn 0.35s ease forwards; }\n    @keyframes so-shapeIn  { to { opacity: 1; } }\n    @keyframes so-dotIn    { to { opacity: 1; } }\n    @keyframes so-footerIn { to { opacity: 1; } }\n    @keyframes so-fadeUp { from { opacity: 0; transform: translate(-50%, calc(-50% + 6px)); } to { opacity: 1; transform: translate(-50%, -50%); } }\n    .so-trace-stroke { opacity: 0; animation: so-traceIn 0.5s ease forwards 0.8s, so-traceMove 3.5s linear infinite 1.3s; }\n    @keyframes so-traceIn { to { opacity: 1; } }\n    @keyframes so-traceMove { from { stroke-dashoffset: 0; } to { stroke-dashoffset: calc(-1 * var(--so-perim, 600)); } }\n    @media (max-width: 480px) {\n      #so-radar-widget \u003e div { padding: 18px 16px 14px !important; }\n      #so-radar-area { max-width: 300px !important; }\n      .so-label .so-lname { font-size: 8px !important; letter-spacing: 0.05em !important; }\n      .so-label .so-lval  { font-size: 19px !important; }\n      .so-label .so-lmax  { font-size: 9px !important; }\n      .so-foot-centered-title { font-size: 8px !important; letter-spacing: 0.25em !important; }\n      .so-foot-centered-chip { font-size: 10px !important; padding: 5px 12px !important; }\n      .so-foot-centered-chip em { font-size: 10px !important; }\n      .so-foot-centered-line { max-width: 30px !important; }\n    }\n    @media (max-width: 360px) {\n      #so-radar-area { max-width: 260px !important; }\n      .so-label .so-lval { font-size: 16px !important; }\n      .so-label .so-lname { font-size: 7px !important; }\n    }\n  \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cscript\u003e\n  (function() {\n    var PRODUCT = { criteria: [ { label: \"Peau sensible\", value: 5 }, { label: \"Volume\", value: 4 }, { label: \"Hydratation\", value: 3 }, { label: \"Démêlant\", value: 3 } ] };\n    var svg = document.getElementById(\"so-radar-svg\"); var area = document.getElementById(\"so-radar-area\");\n    var data = PRODUCT.criteria; var n = data.length; var cx = 180, cy = 180, maxR = 95;\n    function ang(i) { return (Math.PI * 2 * i \/ n) - Math.PI \/ 2; }\n    function pt(i, v, mx) { var a = ang(i), r = (v \/ mx) * maxR; return { x: cx + r * Math.cos(a), y: cy + r * Math.sin(a) }; }\n    function svgEl(tag) { return document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", tag); }\n    for (var l = 1; l \u003c= 5; l++) { var pts = []; for (var i = 0; i \u003c n; i++) { var p = pt(i, l, 5); pts.push(p.x + \",\" + p.y); } var poly = svgEl(\"polygon\"); poly.setAttribute(\"points\", pts.join(\" \")); poly.setAttribute(\"fill\", \"none\"); poly.setAttribute(\"stroke\", l === 5 ? \"rgba(0,0,0,0.09)\" : \"rgba(0,0,0,0.04)\"); poly.setAttribute(\"stroke-width\", l === 5 ? \"1\" : \"0.6\"); if (l === 5) poly.setAttribute(\"stroke-dasharray\", \"3,3\"); svg.appendChild(poly); }\n    for (var i = 0; i \u003c n; i++) { var p = pt(i, 5, 5); var line = svgEl(\"line\"); line.setAttribute(\"x1\", cx); line.setAttribute(\"y1\", cy); line.setAttribute(\"x2\", p.x); line.setAttribute(\"y2\", p.y); line.setAttribute(\"stroke\", \"rgba(0,0,0,0.04)\"); line.setAttribute(\"stroke-width\", \"0.6\"); svg.appendChild(line); }\n    var shapePts = []; for (var i = 0; i \u003c n; i++) { var p = pt(i, data[i].value, 5); shapePts.push(p.x + \",\" + p.y); } var ptsStr = shapePts.join(\" \");\n    var fillPoly = svgEl(\"polygon\"); fillPoly.setAttribute(\"points\", ptsStr); fillPoly.setAttribute(\"fill\", \"rgba(0,0,0,0.04)\"); fillPoly.classList.add(\"so-shape-fill\"); svg.appendChild(fillPoly);\n    var strokePoly = svgEl(\"polygon\"); strokePoly.setAttribute(\"points\", ptsStr); strokePoly.setAttribute(\"fill\", \"none\"); strokePoly.setAttribute(\"stroke\", \"#1a1a1a\"); strokePoly.setAttribute(\"stroke-width\", \"1.8\"); strokePoly.setAttribute(\"stroke-linejoin\", \"round\"); strokePoly.classList.add(\"so-shape-stroke\"); svg.appendChild(strokePoly);\n    \/* Trace doree qui parcourt le contour en boucle *\/\n    var perim = 0; for (var i = 0; i \u003c n; i++) { var p1 = pt(i, data[i].value, 5); var p2 = pt((i+1)%n, data[(i+1)%n].value, 5); perim += Math.sqrt((p2.x-p1.x)*(p2.x-p1.x) + (p2.y-p1.y)*(p2.y-p1.y)); }\n    var tracePoly = svgEl(\"polygon\"); tracePoly.setAttribute(\"points\", ptsStr); tracePoly.setAttribute(\"fill\", \"none\"); tracePoly.setAttribute(\"stroke\", \"#D4AF37\"); tracePoly.setAttribute(\"stroke-width\", \"2.2\"); tracePoly.setAttribute(\"stroke-linejoin\", \"round\"); tracePoly.setAttribute(\"stroke-linecap\", \"round\"); tracePoly.setAttribute(\"stroke-dasharray\", \"60 \" + perim); tracePoly.setAttribute(\"stroke-dashoffset\", \"0\"); tracePoly.style.setProperty(\"--so-perim\", perim); tracePoly.classList.add(\"so-trace-stroke\"); svg.appendChild(tracePoly);\n    for (var i = 0; i \u003c n; i++) { (function(i) { var d = data[i]; var p = pt(i, d.value, 5); var delay = 0.5 + i * 0.1; var halo = svgEl(\"circle\"); halo.setAttribute(\"cx\", p.x); halo.setAttribute(\"cy\", p.y); halo.setAttribute(\"r\", \"7\"); halo.setAttribute(\"fill\", \"none\"); halo.setAttribute(\"stroke\", \"#1a1a1a\"); halo.setAttribute(\"stroke-width\", \"1\"); halo.setAttribute(\"stroke-opacity\", \"0.12\"); halo.classList.add(\"so-dot\"); halo.style.animationDelay = delay + \"s\"; svg.appendChild(halo); var dot = svgEl(\"circle\"); dot.setAttribute(\"cx\", p.x); dot.setAttribute(\"cy\", p.y); dot.setAttribute(\"r\", \"3\"); dot.setAttribute(\"fill\", \"#1a1a1a\"); dot.classList.add(\"so-dot\"); dot.style.animationDelay = delay + \"s\"; svg.appendChild(dot); var lp = pt(i, 6.5, 5);\n lp.y += Math.sin(ang(i)) * 16; var pctX = (lp.x \/ 360) * 100; var pctY = (lp.y \/ 360) * 100; var lbl = document.createElement(\"div\"); lbl.className = \"so-label\"; lbl.style.left = pctX + \"%\"; lbl.style.top = pctY + \"%\"; lbl.style.animationDelay = (0.4 + i * 0.1) + \"s\"; lbl.innerHTML = '\u003cspan class=\"so-lname\"\u003e' + d.label + '\u003c\/span\u003e\u003cspan class=\"so-lval\"\u003e' + d.value + '\u003cspan class=\"so-lmax\"\u003e\/5\u003c\/span\u003e\u003c\/span\u003e'; area.appendChild(lbl); })(i); }\n    var maxVal = 0; for (var i = 0; i \u003c n; i++) { if (data[i].value \u003e maxVal) maxVal = data[i].value; } var bests = []; for (var i = 0; i \u003c n; i++) { if (data[i].value === maxVal) bests.push(data[i]); }\n    var chipsHtml = ''; for (var i = 0; i \u003c bests.length; i++) { chipsHtml += '\u003cspan class=\"so-foot-centered-chip\"\u003e' + bests[i].label + '\u003cem\u003e' + bests[i].value + '\/5\u003c\/em\u003e\u003c\/span\u003e'; }\n    var labelTxt = (bests.length \u003e 1 ? 'POINTS FORTS' : 'POINT FORT');\n    document.getElementById(\"so-radar-footer\").innerHTML = '\u003cdiv class=\"so-foot-centered\"\u003e\u003cdiv class=\"so-foot-centered-head\"\u003e\u003cspan class=\"so-foot-centered-line\"\u003e\u003c\/span\u003e\u003cspan class=\"so-foot-centered-title\"\u003e★ ' + labelTxt + ' ★\u003c\/span\u003e\u003cspan class=\"so-foot-centered-line\"\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"so-foot-centered-chips\"\u003e' + chipsHtml + '\u003c\/div\u003e\u003c\/div\u003e';\n  })();\n  \u003c\/script\u003e  \u003c!-- BLOCK 3: COMPOSITION (MAPPING JS active Aqua Baby Paw - verified) --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eComposition of Aqua Baby Paw: natural active ingredients \u0026amp; targeted action\u003c\/h2\u003e  \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eFive organic extracts with complementary properties, carefully selected for the gentleness and protection of young skin — \u003cstrong\u003eSLES-free, DEA-free, paraben-free\u003c\/strong\u003e.  Here, zone by zone, is how each active ingredient acts on the skin and hair.\u003c\/p\u003e  \u003c!-- MAPPING --\u003e  \u003cdiv style=\"background: #fff; border: 1px solid #e5e5e5; padding: 18px;\" id=\"aqr-carto\"\u003e  \u003cdiv class=\"aqr-grid\"\u003e  \u003cdiv class=\"aqr-col-list\"\u003e  \u003cul id=\"aqrList\" class=\"aqr-list\"\u003e\u003c\/ul\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-col-schema\"\u003e  \u003cdiv id=\"aqrSchemaWrap\" class=\"aqr-schema-wrap\"\u003e  \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/schema-peau-poil.webp?v=1779972667\" alt=\"Schéma de l'anatomie de la peau et du poil illustrant l'action ciblée de l'Aqua Baby Paw\" style=\"display: block; width: 100%; height: auto;\" id=\"aqrSchemaImg\" class=\"aqr-schema-img\"\u003e  \u003csvg viewbox=\"0 0 100 225\" preserveaspectratio=\"none\" id=\"aqrOverlay\" class=\"aqr-overlay\"\u003e\u003c\/svg\u003e  \u003cdiv id=\"aqrConnectors\" class=\"aqr-connectors\"\u003e\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-col-info\"\u003e  \u003cdiv id=\"aqrInfo\" class=\"aqr-info\"\u003e\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      #aqr-carto, #aqr-carto * { box-sizing: border-box; }\n      #aqr-carto {\n        font-family: inherit;\n        color: #1a1a1a;\n        line-height: 1.5;\n        position: relative;\n      }\n      #aqr-carto .aqr-grid {\n        display: grid;\n        grid-template-columns: 170px 1fr 280px;\n        gap: 16px;\n        align-items: start;\n      }\n\n      \/* LISTE — cadres encadres *\/\n      #aqr-carto .aqr-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }\n      #aqr-carto .aqr-list-item {\n        display: block;\n        width: 100%;\n        text-align: left;\n        background: #fff;\n        border: 1px solid #e5e5e5;\n        padding: 8px 10px;\n        cursor: pointer;\n        font-family: inherit;\n        color: #888;\n        transition: all 0.3s;\n        position: relative;\n        min-height: 0;\n      }\n      #aqr-carto .aqr-list-item:hover {\n        color: #1a1a1a;\n        border-color: #bbb;\n        background: #fafafa;\n      }\n      #aqr-carto .aqr-list-item.aqr-active {\n        color: #1a1a1a;\n        background: #fff;\n        border-color: var(--c, #1a1a1a);\n        border-left-width: 3px;\n        padding-left: 8px;\n        box-shadow: 0 2px 6px rgba(0,0,0,0.04);\n      }\n\n      #aqr-carto .aqr-li-name {\n        font-size: 13px;\n        line-height: 1.25;\n        font-weight: 500;\n      }\n\n      \/* SCHEMA *\/\n      #aqr-carto .aqr-col-schema {\n        display: flex;\n        justify-content: center;\n        align-items: flex-start;\n      }\n      #aqr-carto .aqr-schema-wrap {\n        position: relative;\n        width: 100%;\n        max-width: 200px;\n        margin: 0 auto;\n        z-index: 1;\n      }\n      #aqr-carto .aqr-schema-img {\n        display: block;\n        width: 100%;\n        height: auto;\n      }\n\n      #aqr-carto .aqr-overlay {\n        position: absolute;\n        inset: 0;\n        width: 100%;\n        height: 100%;\n        pointer-events: none;\n        overflow: visible;\n        z-index: 3;\n      }\n      #aqr-carto .aqr-connectors {\n        position: absolute;\n        inset: 0;\n        pointer-events: none;\n        z-index: 2;\n      }\n      #aqr-carto \u003e svg.aqr-connector-svg {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        overflow: visible;\n        pointer-events: none;\n        z-index: 5;\n      }\n\n      \/* Ligne connector (depuis la liste vers le point) *\/\n      #aqr-carto .aqr-conn-line {\n        fill: none;\n        stroke: var(--c);\n        stroke-width: 1;\n        opacity: 0;\n        stroke-dasharray: 600;\n        stroke-dashoffset: 600;\n        animation: aqrConnDraw 0.9s cubic-bezier(.5,.05,.2,1) forwards;\n      }\n      @keyframes aqrConnDraw {\n        0% { opacity: 0; stroke-dashoffset: 600; }\n        25% { opacity: 0.6; }\n        100% { opacity: 0.6; stroke-dashoffset: 0; }\n      }\n\n      \/* IRRADIATION CIRCULAIRE DOREE — toujours identique *\/\n      \/* Le groupe entier qui contient halo + cercle + branches étoilées *\/\n      #aqr-carto .aqr-star-group {\n        transform-origin: center;\n        transform-box: fill-box;\n      }\n\n      \/* Halo doré central qui pulse doucement *\/\n      #aqr-carto .aqr-star-halo {\n        fill: #D4AF37;\n        opacity: 0;\n        transform-origin: center;\n        transform-box: fill-box;\n        filter: blur(1.4px);\n        animation: aqrHaloIn 0.7s ease-out forwards, aqrHaloPulse 3s ease-in-out infinite 0.7s;\n      }\n      @keyframes aqrHaloIn { to { opacity: 0.5; } }\n      @keyframes aqrHaloPulse {\n        0%, 100% { opacity: 0.4; transform: scale(1); }\n        50% { opacity: 0.75; transform: scale(1.2); }\n      }\n\n      \/* Cercle d'irradiation qui se diffuse (anneau lent) *\/\n      #aqr-carto .aqr-star-ring {\n        fill: none;\n        stroke: #D4AF37;\n        stroke-width: 0.5;\n        opacity: 0;\n        transform-origin: center;\n        transform-box: fill-box;\n        animation: aqrStarRing 3.2s ease-out infinite;\n      }\n      @keyframes aqrStarRing {\n        0%   { opacity: 0; r: 3; stroke-width: 0.6; }\n        15%  { opacity: 0.5; }\n        100% { opacity: 0; r: 12; stroke-width: 0.15; }\n      }\n\n      \/* Point coloré A\/B\/C (par-dessus le doré) *\/\n      #aqr-carto .aqr-marker-dot {\n        fill: var(--c);\n        opacity: 0;\n        transform-origin: center;\n        transform-box: fill-box;\n        animation: aqrDotIn 0.5s ease-out forwards;\n      }\n      @keyframes aqrDotIn {\n        0% { opacity: 0; transform: scale(0); }\n        70% { transform: scale(1.4); }\n        100% { opacity: 1; transform: scale(1); }\n      }\n      #aqr-carto .aqr-marker-text {\n        fill: white;\n        font-family: 'Courier New', monospace;\n        font-size: 2.8px;\n        font-weight: 700;\n        text-anchor: middle;\n        dominant-baseline: central;\n        opacity: 0;\n        animation: aqrDotIn 0.5s ease-out forwards;\n        pointer-events: none;\n      }\n\n      #aqr-carto .aqr-leaving {\n        animation: aqrFadeOut 0.4s ease-out forwards !important;\n      }\n      @keyframes aqrFadeOut { to { opacity: 0; } }\n\n      \/* INFO *\/\n      #aqr-carto .aqr-info {\n        background: #fafafa;\n        border: 1px solid #e5e5e5;\n        padding: 16px 16px;\n        transition: opacity 0.4s;\n      }\n      #aqr-carto .aqr-info.aqr-fading { opacity: 0.2; }\n      #aqr-carto .aqr-info-family {\n        font-size: 9px;\n        letter-spacing: 0.25em;\n        text-transform: uppercase;\n        color: var(--c, #888);\n        font-weight: 600;\n        margin-bottom: 6px;\n        transition: color 0.5s;\n      }\n      #aqr-carto .aqr-info-name {\n        font-size: 16px;\n        font-weight: 700;\n        line-height: 1.2;\n        margin: 0 0 4px;\n        color: #1a1a1a;\n      }\n      #aqr-carto .aqr-info-latin {\n        font-size: 11px;\n        color: #999;\n        font-style: italic;\n        margin-bottom: 12px;\n      }\n      #aqr-carto .aqr-info-desc {\n        font-size: 12px;\n        line-height: 1.55;\n        color: #333;\n        margin-bottom: 14px;\n        padding-bottom: 14px;\n        border-bottom: 1px solid #ececec;\n      }\n      #aqr-carto .aqr-info-section {\n        font-size: 9px;\n        letter-spacing: 0.22em;\n        text-transform: uppercase;\n        color: #888;\n        font-weight: 600;\n        margin-bottom: 10px;\n      }\n      #aqr-carto .aqr-action-row {\n        display: flex;\n        align-items: baseline;\n        gap: 10px;\n        margin-bottom: 10px;\n        padding-bottom: 10px;\n        border-bottom: 1px dotted #ececec;\n      }\n      #aqr-carto .aqr-action-row:last-child {\n        border-bottom: none;\n        padding-bottom: 0;\n        margin-bottom: 0;\n      }\n      #aqr-carto .aqr-action-marker {\n        flex-shrink: 0;\n        width: 18px;\n        height: 18px;\n        background: var(--c);\n        color: white;\n        text-align: center;\n        line-height: 18px;\n        font-family: 'Courier New', monospace;\n        font-size: 10px;\n        font-weight: 700;\n        transition: background 0.5s;\n      }\n      #aqr-carto .aqr-action-content { flex: 1; min-width: 0; }\n      #aqr-carto .aqr-action-zone {\n        font-size: 9px;\n        letter-spacing: 0.15em;\n        text-transform: uppercase;\n        color: var(--c, #888);\n        font-weight: 600;\n        margin-bottom: 2px;\n        transition: color 0.5s;\n      }\n      #aqr-carto .aqr-action-name {\n        font-size: 13px;\n        color: #1a1a1a;\n        font-weight: 600;\n        line-height: 1.25;\n        margin-bottom: 3px;\n      }\n      #aqr-carto .aqr-action-benefit {\n        font-size: 11px;\n        color: #666;\n        line-height: 1.5;\n      }\n\n      \/* TABLET : liste + schema cote a cote, info en dessous *\/\n      @media (max-width: 900px) {\n        #aqr-carto .aqr-grid {\n          grid-template-columns: 1fr 130px;\n          grid-template-rows: auto auto;\n          gap: 14px;\n        }\n        #aqr-carto .aqr-col-list { grid-column: 1; grid-row: 1; }\n        #aqr-carto .aqr-col-schema { grid-column: 2; grid-row: 1; }\n        #aqr-carto .aqr-col-info { grid-column: 1 \/ -1; grid-row: 2; }\n        #aqr-carto .aqr-schema-wrap { max-width: 130px; }\n        #aqr-carto .aqr-li-name { font-size: 12px; }\n        #aqr-carto .aqr-list-item { padding: 7px 8px; }\n        #aqr-carto .aqr-list { gap: 5px; }\n      }\n      \/* MOBILE : meme structure mais photo encore plus petite *\/\n      @media (max-width: 640px) {\n        #aqr-carto { padding: 12px !important; }\n        #aqr-carto .aqr-grid {\n          grid-template-columns: 1fr 100px;\n          gap: 10px;\n        }\n        #aqr-carto .aqr-schema-wrap { max-width: 100px; }\n        #aqr-carto .aqr-li-name { font-size: 11px; line-height: 1.2; }\n        #aqr-carto .aqr-li-num { font-size: 8px; margin-bottom: 1px; }\n        #aqr-carto .aqr-list-item { padding: 6px 8px; }\n        #aqr-carto .aqr-list-item.aqr-active { padding-left: 6px; }\n        #aqr-carto .aqr-info-name { font-size: 15px; }\n        #aqr-carto .aqr-info { padding: 14px; }\n        #aqr-carto .aqr-list { gap: 4px; }\n      }\n      \/* TRES PETIT : photo minimale *\/\n      @media (max-width: 420px) {\n        #aqr-carto .aqr-grid {\n          grid-template-columns: 1fr 80px;\n          gap: 8px;\n        }\n        #aqr-carto .aqr-schema-wrap { max-width: 80px; }\n        #aqr-carto .aqr-li-name { font-size: 10px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e  \u003cscript\u003e\n    (function(){\n      var familyColors = {\n        botanic: '#7BA05B',\n        aqua: '#4A90B8',\n        bio: '#C84876',\n        cond: '#B07BA0'\n      };\n      var families = {\n        botanic: 'Botanique',\n        aqua: 'Aquatique',\n        bio: 'Biochimique',\n        cond: 'Conditionneur'\n      };\n\n      \/\/ Anchors PRECIS sur l'image 500x1125 (viewBox 100 x 225)\n      var anchors = {\n        tige_poil:  { x: 60,  y: 25 },     \/\/ mi-tige\n        cuticule:   { x: 56,  y: 65 },     \/\/ ecailles visibles\n        epiderme:   { x: 25,  y: 115 },    \/\/ surface peau gauche\n        film_hydro: { x: 32,  y: 100 },    \/\/ surface peau clairement, ecarte du poil\n        glande_seb: { x: 62,  y: 142 },    \/\/ grappe jaune\n        glande_sud: { x: 25,  y: 168 },    \/\/ enchevetrement gauche\n        muscle:     { x: 78,  y: 170 },    \/\/ faisceau diagonal\n        follicule:  { x: 43,  y: 185 },    \/\/ cloche autour du poil\n        bulbe:      { x: 43,  y: 193 },    \/\/ boule au fond, remonte encore\n        derme:      { x: 12,  y: 190 }     \/\/ bloc peau gauche bas\n      };\n      var anchorLabels = {\n        tige_poil: 'Tige du poil', cuticule: 'Cuticule', film_hydro: 'Film hydrolipidique',\n        epiderme: 'Épiderme', derme: 'Derme', bulbe: 'Bulbe pilaire',\n        glande_seb: 'Glande sébacée', glande_sud: 'Glande sudoripare',\n        follicule: 'Follicule pileux', muscle: 'Muscle arrecteur'\n      };\n\n      var ingredients = [\n        {\n          id:'avoine', label:'Lait d’Avoine', latin:'Avena sativa', family:'botanic',\n          desc:\"Actif emblématique des soins pour peaux sensibles : il hydrate, apaise, restaure le film hydrolipidique, maintient le pH et prévient sécheresse et rougeurs.\",\n          targets: [\n            { anchor:'epiderme', action:\"Apaisement \u0026 hydratation\", benefit:\"Apaise la peau délicate et prévient sécheresse et rougeurs.\" },\n            { anchor:'film_hydro', action:\"Restauration du film\", benefit:\"Restaure le film hydrolipidique et maintient le pH naturel.\" }\n          ]\n        },\n        {\n          id:'coton', label:'Fleurs de Coton', latin:'Gossypium', family:'botanic',\n          desc:\"Extrait émollient et frais : il maintient le manteau doux et moelleux tout en protégeant la peau des agressions extérieures.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Douceur \u0026 moelleux\", benefit:\"Laisse le pelage doux et moelleux au toucher.\" },\n            { anchor:'epiderme', action:\"Protection cutanée\", benefit:\"Protège la peau délicate des agressions extérieures.\" }\n          ]\n        },\n        {\n          id:'amande', label:'Huile d’Amande Douce', latin:'Prunus dulcis', family:'cond',\n          desc:\"Riche en vitamines et acides gras essentiels : émolliente, hydratante et assouplissante, elle nourrit en profondeur et confère brillance et douceur au pelage.\",\n          targets: [\n            { anchor:'film_hydro', action:\"Nutrition lipidique\", benefit:\"Nourrit le film hydrolipidique en profondeur avec ses acides gras essentiels.\" },\n            { anchor:'cuticule', action:\"Brillance \u0026 souplesse\", benefit:\"Assouplit la cuticule et confère brillance et douceur au pelage.\" }\n          ]\n        },\n        {\n          id:'abricot', label:'Extrait d’Abricot', latin:'Prunus armeniaca', family:'bio',\n          desc:\"Illuminant, régénérant et protecteur contre la déshydratation : il revigore le manteau et le laisse léger et soyeux au toucher.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Éclat \u0026 régénération\", benefit:\"Revigore et illumine le manteau pour un toucher léger et soyeux.\" },\n            { anchor:'film_hydro', action:\"Anti-déshydratation\", benefit:\"Protège la peau et le poil contre la déshydratation.\" }\n          ]\n        },\n        {\n          id:'camomille', label:'Camomille', latin:'Matricaria chamomilla', family:'botanic',\n          desc:\"Apaisante et anti-inflammatoire : elle rééquilibre la peau, réduit les irritations et apporte une sensation de bien-être immédiate lors du bain.\",\n          targets: [\n            { anchor:'epiderme', action:\"Anti-inflammatoire\", benefit:\"Réduit les irritations et rééquilibre la peau délicate.\" },\n            { anchor:'derme', action:\"Bien-être immédiat\", benefit:\"Apporte une sensation de bien-être et de confort en profondeur.\" }\n          ]\n        }\n      ];\n\n      var listEl = document.getElementById('aqrList');\n      var schemaWrap = document.getElementById('aqrSchemaWrap');\n      var schemaImg = document.getElementById('aqrSchemaImg');\n      var overlay = document.getElementById('aqrOverlay');\n      var connectorsEl = document.getElementById('aqrConnectors');\n      var infoEl = document.getElementById('aqrInfo');\n            try { ingredients.forEach(function(ing, i) {\n        var li = document.createElement('li');\n        var btn = document.createElement('button');\n        btn.className = 'aqr-list-item' + (i === 0 ? ' aqr-active' : '');\n        btn.setAttribute('type', 'button');\n        btn.dataset.idx = i;\n        btn.style.setProperty('--c', familyColors[ing.family]);\n        btn.innerHTML = '\u003cspan class=\"aqr-li-name\"\u003e' + ing.label + '\u003c\/span\u003e';\n        btn.addEventListener('click', function() { focusIngredient(i); });\n        li.appendChild(btn);\n        listEl.appendChild(li);\n      }); } catch (e) {}\n\n      function clearAll() {\n        var inside = overlay.querySelectorAll('*');\n        for (var i = 0; i \u003c inside.length; i++) inside[i].classList.add('aqr-leaving');\n        var connSvg = document.querySelector('#aqr-carto \u003e svg.aqr-connector-svg');\n        if (connSvg) {\n          var conns = connSvg.querySelectorAll('*');\n          for (var i = 0; i \u003c conns.length; i++) conns[i].classList.add('aqr-leaving');\n        }\n        setTimeout(function() {\n          overlay.innerHTML = '';\n          if (connSvg) connSvg.innerHTML = '';\n        }, 420);\n      }\n\n      var currentIdx = 0;\n      var playing = true;\n      var autoTimer = null;\n\n      function focusIngredient(idx) {\n        currentIdx = ((idx % ingredients.length) + ingredients.length) % ingredients.length;\n        var ing = ingredients[currentIdx];\n        var color = familyColors[ing.family];\n\n        var items = document.querySelectorAll('#aqr-carto .aqr-list-item');\n        for (var i = 0; i \u003c items.length; i++) {\n          if (i === currentIdx) items[i].classList.add('aqr-active');\n          else items[i].classList.remove('aqr-active');\n        }\n        infoEl.classList.add('aqr-fading');\n        setTimeout(function() {\n          infoEl.style.setProperty('--c', color);\n          var actionsHtml = ing.targets.map(function(t, i) {\n            return '\u003cdiv class=\"aqr-action-row\"\u003e' +\n                     '\u003cdiv class=\"aqr-action-marker\"\u003e' + String.fromCharCode(65 + i) + '\u003c\/div\u003e' +\n                     '\u003cdiv class=\"aqr-action-content\"\u003e' +\n                       '\u003cdiv class=\"aqr-action-zone\"\u003e' + anchorLabels[t.anchor] + '\u003c\/div\u003e' +\n                       '\u003cdiv class=\"aqr-action-name\"\u003e' + t.action + '\u003c\/div\u003e' +\n                       '\u003cdiv class=\"aqr-action-benefit\"\u003e' + t.benefit + '\u003c\/div\u003e' +\n                     '\u003c\/div\u003e' +\n                   '\u003c\/div\u003e';\n          }).join('');\n          infoEl.innerHTML =\n            '\u003cdiv class=\"aqr-info-family\"\u003e' + families[ing.family] + '\u003c\/div\u003e' +\n            '\u003ch3 class=\"aqr-info-name\"\u003e' + ing.label + '\u003c\/h3\u003e' +\n            '\u003cdiv class=\"aqr-info-latin\"\u003e' + ing.latin + '\u003c\/div\u003e' +\n            '\u003cp class=\"aqr-info-desc\"\u003e' + ing.desc + '\u003c\/p\u003e' +\n            '\u003cdiv class=\"aqr-info-section\"\u003eActions ciblées\u003c\/div\u003e' +\n            actionsHtml;\n          infoEl.classList.remove('aqr-fading');\n        }, 300);\n\n        clearAll();\n        setTimeout(function() { drawTargets(ing); }, 450);\n        scheduleNext();\n      }\n\n      function ensureConnectorSvg() {\n        var carto = document.getElementById('aqr-carto');\n        \/\/ Recherche sans :scope pour compatibilite navigateurs anciens\n        var svg = null;\n        var children = carto.children;\n        for (var i = 0; i \u003c children.length; i++) {\n          if (children[i].tagName \u0026\u0026 children[i].tagName.toLowerCase() === 'svg' \u0026\u0026\n              children[i].classList \u0026\u0026 children[i].classList.contains('aqr-connector-svg')) {\n            svg = children[i];\n            break;\n          }\n        }\n        if (!svg) {\n          svg = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'svg');\n          svg.setAttribute('class', 'aqr-connector-svg');\n          carto.appendChild(svg);\n        }\n        return svg;\n      }\n\n      function getListItemAnchor(idx) {\n        var item = document.querySelectorAll('#aqr-carto .aqr-list-item')[idx];\n        var r = item.getBoundingClientRect();\n        var cRect = document.getElementById('aqr-carto').getBoundingClientRect();\n        return {\n          x: r.right - cRect.left,\n          y: r.top + r.height \/ 2 - cRect.top\n        };\n      }\n      function pctToCartoPx(px, py) {\n        var wRect = schemaWrap.getBoundingClientRect();\n        var cRect = document.getElementById('aqr-carto').getBoundingClientRect();\n        return {\n          x: (wRect.left - cRect.left) + (px \/ 100) * wRect.width,\n          y: (wRect.top - cRect.top) + (py \/ 225) * wRect.height\n        };\n      }\n\n      function pctToOverlayPx(px, py) {\n        var wRect = schemaWrap.getBoundingClientRect();\n        return { x: (px \/ 100) * wRect.width, y: (py \/ 225) * wRect.height };\n      }\n\n      function drawTargets(ing) {\n        var color = familyColors[ing.family];\n        var startPt = getListItemAnchor(currentIdx);\n        var connSvg = ensureConnectorSvg();\n\n        ing.targets.forEach(function(target, i) {\n          var anchor = anchors[target.anchor];\n          var endPtCarto = pctToCartoPx(anchor.x, anchor.y);\n          var delay = i * 280;\n\n          \/\/ Ligne courbe : coords en pixels du aqr-carto\n          var dx = endPtCarto.x - startPt.x;\n          var cp1x = startPt.x + dx * 0.4;\n          var cp1y = startPt.y;\n          var cp2x = startPt.x + dx * 0.6;\n          var cp2y = endPtCarto.y;\n          var d = 'M ' + startPt.x + ' ' + startPt.y +\n                  ' C ' + cp1x + ' ' + cp1y + ', ' + cp2x + ' ' + cp2y +\n                  ', ' + endPtCarto.x + ' ' + endPtCarto.y;\n          var connPath = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'path');\n          connPath.setAttribute('d', d);\n          connPath.setAttribute('class', 'aqr-conn-line');\n          connPath.style.setProperty('--c', color);\n          connPath.style.animationDelay = delay + 'ms';\n          connSvg.appendChild(connPath);\n\n          \/\/ IRRADIATION DORÉE — toujours identique sur chaque point\n          var cx = anchor.x;\n          var cy = anchor.y;\n\n          \/\/ 1. Halo doré flou central\n          var halo = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'circle');\n          halo.setAttribute('cx', cx);\n          halo.setAttribute('cy', cy);\n          halo.setAttribute('r', '5');\n          halo.setAttribute('class', 'aqr-star-halo');\n          halo.style.animationDelay = (delay + 500) + 'ms, ' + (delay + 1200) + 'ms';\n          overlay.appendChild(halo);\n\n          \/\/ 2. Anneaux d'irradiation qui se diffusent en boucle continue (4 décalés)\n          for (var r = 0; r \u003c 4; r++) {\n            var ring = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'circle');\n            ring.setAttribute('cx', cx);\n            ring.setAttribute('cy', cy);\n            ring.setAttribute('r', '3');\n            ring.setAttribute('class', 'aqr-star-ring');\n            ring.style.animationDelay = (delay + 600 + r * 800) + 'ms';\n            overlay.appendChild(ring);\n          }\n\n          \/\/ 3. Point coloré A\/B\/C avec sa lettre (par-dessus le doré)\n          var dot = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'circle');\n          dot.setAttribute('cx', cx);\n          dot.setAttribute('cy', cy);\n          dot.setAttribute('r', '2.6');\n          dot.setAttribute('class', 'aqr-marker-dot');\n          dot.style.setProperty('--c', color);\n          dot.style.animationDelay = (delay + 850) + 'ms';\n          overlay.appendChild(dot);\n\n          var txt = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'text');\n          txt.setAttribute('x', cx);\n          txt.setAttribute('y', cy);\n          txt.setAttribute('class', 'aqr-marker-text');\n          txt.textContent = String.fromCharCode(65 + i);\n          txt.style.animationDelay = (delay + 950) + 'ms';\n          overlay.appendChild(txt);\n        });\n      }\n\n      function scheduleNext() {\n        if (autoTimer) clearTimeout(autoTimer);\n        if (playing) autoTimer = setTimeout(function() { focusIngredient(currentIdx + 1); }, 6500);\n      }\n\n      var __started = false;\n      function start() {\n        if (__started) return; __started = true;\n        setTimeout(function() { try { focusIngredient(0); } catch (e) {} }, 200);\n      }\n      \/\/ Filets de securite multiples : l'image et la liste s'affichent toujours,\n      \/\/ et l'animation demarre des que possible quel que soit l'environnement.\n      try {\n        if (schemaImg \u0026\u0026 schemaImg.complete) start();\n        if (schemaImg) {\n          schemaImg.addEventListener('load', start);\n          schemaImg.addEventListener('error', start);\n        }\n      } catch (e) {}\n      if (document.readyState === 'complete') start();\n      else window.addEventListener('load', start);\n      setTimeout(start, 1500);\n\n      var resizeTimer = null;\n      function fullRedraw() {\n        overlay.innerHTML = '';\n        var connSvg = document.querySelector('#aqr-carto \u003e svg.aqr-connector-svg');\n        if (connSvg) connSvg.innerHTML = '';\n        \/\/ double rAF to wait for layout to stabilize\n        requestAnimationFrame(function() {\n          requestAnimationFrame(function() {\n            drawTargets(ingredients[currentIdx]);\n          });\n        });\n      }\n      window.addEventListener('resize', function() {\n        if (resizeTimer) clearTimeout(resizeTimer);\n        resizeTimer = setTimeout(fullRedraw, 200);\n      });\n      \/\/ ResizeObserver pour reagir aussi aux changements de taille du conteneur\n      if (typeof ResizeObserver !== 'undefined') {\n        var ro = new ResizeObserver(function() {\n          if (resizeTimer) clearTimeout(resizeTimer);\n          resizeTimer = setTimeout(fullRedraw, 200);\n        });\n        ro.observe(document.getElementById('aqr-carto'));\n      }\n    })();\n    \u003c\/script\u003e\u003cbr\u003e  \u003c\/div\u003e  \u003c!-- BLOCK 4: PROTOCOLS --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eProtocols \u0026amp; Suggestions for use\u003c\/h2\u003e  \u003c!-- Ready-to-use insert --\u003e  \u003cdiv style=\"margin: 0 0 12px; padding: 14px 18px; background: #f0f7ff; border-left: 3px solid #4a90d9; border-radius: 8px; font-size: 13px; line-height: 1.55;\"\u003e💡  \u003cstrong\u003eShake before use.\u003c\/strong\u003e Product \u003cstrong\u003eready to use\u003c\/strong\u003e — Apply undiluted to damp hair, without dilution necessary.\u003c\/div\u003e  \u003cdiv style=\"margin-top: 4px;\" class=\"aqr-proto-list\"\u003e  \u003cdetails open=\"\" class=\"aqr-proto-acc\"\u003e  \u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eThe puppy's first bath\u003c\/span\u003e  \u003cspan class=\"aqr-proto-plus\"\u003e\u003csvg stroke-linecap=\"round\" stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" height=\"14\" width=\"14\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M12 5 L12 19 M5 12 L19 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003c\/summary\u003e  \u003cdiv class=\"aqr-proto-content\"\u003e  \u003cp class=\"aqr-proto-subtitle\"\u003eA sweet moment for toddlers\u003c\/p\u003e  \u003col class=\"aqr-proto-steps\"\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e  \u003cdiv class=\"aqr-proto-step-body\"\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eShake the bottle\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eShake the bottle well before use to homogenize the foam.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e  \u003cdiv class=\"aqr-proto-step-body\"\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eSmooth application\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eApply \u003cstrong\u003ea few drops of mousse on the damp fur\u003c\/strong\u003e,  then massage gently to distribute over the entire coat.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e  \u003cdiv class=\"aqr-proto-step-body\"\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eRinsing\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eRinse thoroughly with lukewarm water. Repeat if necessary.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e  \u003cdiv class=\"aqr-proto-step-body\"\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eConditioner (later)\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eInitially, no conditioner is necessary. When the need arises over time with repeated baths, switch to...\u003cstrong\u003eHydrating Cream\u003c\/strong\u003e to enhance the treatment.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003c\/ol\u003e  \u003c\/div\u003e  \u003c\/details\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c!-- BLOCK 5: ASSOCIATIONS \u0026  RACES --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eRecommended Associations \u0026amp; Races\u003c\/h2\u003e  \u003c!-- Aqua Baby Paw at the heart + modular supplements If... → Then --\u003e  \u003cdiv class=\"aqr-assoc\"\u003e  \u003cp class=\"aqr-assoc-intro\"\u003eCompatible with \u003cstrong\u003eall products in the Special One range\u003c\/strong\u003e,  without exception. The only recommendation for progression:\u003c\/p\u003e  \u003cdiv class=\"aqr-assoc-rules\"\u003e  \u003cdiv class=\"aqr-assoc-rule\"\u003e  \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003eThe coat is starting to need some care…\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003eHydrating Cream as a final conditioner\u003c\/strong\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-rule\"\u003e  \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003eThe puppy grows (beyond 6 months)...\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003eUpgrade to Aquarosa Pro or Bain Pro\u003c\/strong\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-assoc, .aqr-assoc * { box-sizing: border-box; font-family: inherit; }\n      .aqr-assoc { margin-bottom: 24px; }\n      .aqr-assoc-intro {\n        font-size: 13px; color: #444; line-height: 1.5;\n        margin: 0 0 16px;\n      }\n      .aqr-assoc-rules {\n        display: flex; flex-direction: column;\n      }\n      .aqr-assoc-rule {\n        display: grid; grid-template-columns: 1fr 1.3fr;\n        gap: 18px; align-items: center;\n        padding: 16px 8px;\n        border-bottom: 1px dashed #d8d8d8;\n      }\n      .aqr-assoc-rule:last-child { border-bottom: none; }\n      .aqr-assoc-if {\n        display: flex; align-items: center; gap: 10px;\n        color: #888; font-size: 13px; font-style: italic;\n      }\n      .aqr-assoc-if-tag {\n        background: #1a1a1a; color: #F5E6B8;\n        padding: 3px 10px;\n        font-family: Georgia, \"Times New Roman\", serif; font-weight: 700;\n        font-size: 11px; letter-spacing: 0.05em;\n        font-style: normal;\n        flex-shrink: 0;\n      }\n      .aqr-assoc-then {\n        display: flex; align-items: center; gap: 10px;\n        font-size: 13px;\n      }\n      .aqr-assoc-then-arrow {\n        color: #D4AF37; font-size: 18px; font-weight: 700;\n        flex-shrink: 0;\n      }\n      .aqr-assoc-then strong { color: #1a1a1a; }\n      @media (max-width: 600px) {\n        .aqr-assoc-rule { grid-template-columns: 1fr; gap: 4px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e  \u003c!-- Races in rounded pills --\u003e  \u003ch3 style=\"font-size: 13px; font-weight: 600; color: #1a1a1a; margin: 0 0 12px;\"\u003eWhere the Aqua Baby Paw makes the difference:\u003c\/h3\u003e  \u003cdiv class=\"aqr-races-mosaic\"\u003e  \u003cspan class=\"aqr-race-tag\"\u003e🐶 All puppies up to 6 months old \u003cspan\u003e(all races combined)\u003c\/span\u003e\u003c\/span\u003e  \u003cspan class=\"aqr-race-tag\"\u003e🌿 Adult dogs with sensitive or reactive skin \u003cspan\u003e(Environmentally friendly detergent for all ages)\u003c\/span\u003e\u003c\/span\u003e  \u003c\/div\u003e  \u003cp style=\"margin-top: 14px; font-size: 11px; color: #888; font-style: italic;\"\u003eLong and non-exhaustive list — a foaming shampoo formulated for the most delicate skin.\u003c\/p\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-races-mosaic {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 8px;\n      }\n      .aqr-race-tag {\n        display: inline-flex;\n        align-items: center;\n        gap: 6px;\n        background: #fff;\n        color: #1a1a1a;\n        padding: 9px 16px;\n        border-radius: 100px;\n        font-size: 12px;\n        font-weight: 600;\n        border: 1px solid #e5e5e5;\n        line-height: 1.3;\n      }\n      .aqr-race-tag span {\n        opacity: 0.6;\n        font-weight: 400;\n        font-size: 11px;\n      }\n      @media (max-width: 560px) {\n        .aqr-race-tag { font-size: 11px; padding: 8px 13px; }\n        .aqr-race-tag span { font-size: 10px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e  \u003cdiv style=\"margin-top: 30px; text-align: center; border-top: 1px solid #eee; padding-top: 20px;\"\u003e  \u003cp style=\"font-size: 11px; color: #888; text-transform: uppercase;\"\u003eBiodegradable +90% | SLES, DEA, Paraben, and Silicone Free | Not Tested on Animals | HDPE Recyclable\u003c\/p\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e","brand":"Endemik Sas","offers":[{"title":"Default Title","offer_id":42162381881564,"sku":"WAQ-AQBP150 (123)","price":25.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/aqua-baby-paw-shampoing-mousse-chiots.png?v=1793144923"},{"product_id":"bee-mousse-specialone","title":"Bee Mousse 150mL - special paw mousse for dogs and cats","description":"\u003c!-- ============================================== DESIGN SYSTEM — Visual Refinement ============================================= --\u003e  \u003cstyle id=\"aqr-design-system\"\u003e\n  \/* On garde la police du theme Shopify - juste antialiasing pour le rendu *\/\n  body, body * {\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n  \n  \/* === Variables du système de design === *\/\n  :root {\n    --ds-black: #1d1d1f;        \/* Noir doux — légèrement plus chaud que le noir pur *\/\n    --ds-text: #1d1d1f;\n    --ds-text-secondary: #86868b; \/* Gris secondaire *\/\n    --ds-text-tertiary: #a1a1a6;\n    --ds-bg: #ffffff;\n    --ds-bg-elevated: #fbfbfd;   \/* Gris très clair *\/\n    --ds-bg-soft: #f5f5f7;       \/* Gris très clair *\/\n    --ds-border: #d2d2d7;\n    --ds-border-soft: #e8e8ed;\n    --ds-gold: #c2a85c;          \/* Or subtil et mat *\/\n    --ds-gold-pale: #f0e6cf;\n    --ds-radius-sm: 8px;\n    --ds-radius-md: 12px;\n    --ds-radius-lg: 18px;\n    --ds-radius-xl: 22px;\n    --ds-ease: cubic-bezier(0.16, 1, 0.3, 1);\n    --ds-duration: 0.35s;\n  }\n\n  \/* === Couleurs noir \/ doré === *\/\n  \/* Cards expertise (Proposition D) *\/\n  .aqr-benefit-card {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    border-radius: var(--ds-radius-md) !important;\n    padding: 18px 20px !important;\n    transition: transform var(--ds-duration) var(--ds-ease),\n                box-shadow var(--ds-duration) var(--ds-ease),\n                border-color var(--ds-duration) var(--ds-ease) !important;\n    \/* Force l'alignement haut de chaque card dans la grille *\/\n    align-self: stretch !important;\n    margin: 0 !important;\n    vertical-align: top !important;\n  }\n  .aqr-benefits-grid {\n    align-items: start !important;\n    align-content: start !important;\n  }\n  \/* MEME chose pour les audience cards et autres grilles *\/\n  .aqr-audience-grid {\n    align-items: start !important;\n    align-content: start !important;\n  }\n  .aqr-audience-card {\n    align-self: stretch !important;\n    margin: 0 !important;\n  }\n  .aqr-benefit-card::before {\n    background: var(--ds-text) !important;\n    width: 3px !important;\n  }\n  .aqr-benefit-card:hover {\n    background: var(--ds-bg) !important;\n    transform: translateY(-2px);\n    box-shadow: 0 8px 24px rgba(0,0,0,0.06);\n    border-color: var(--ds-border) !important;\n  }\n  .aqr-benefit-card:hover::before {\n    width: 3px !important;\n    background: var(--ds-gold) !important;\n  }\n  .aqr-benefit-corner {\n    width: 14px !important;\n    height: 14px !important;\n    background: linear-gradient(225deg, var(--ds-gold-pale) 50%, transparent 50%) !important;\n    border-top-right-radius: var(--ds-radius-md) !important;\n  }\n  .aqr-benefit-icon {\n    background: var(--ds-text) !important;\n    color: var(--ds-gold) !important;\n    border-radius: var(--ds-radius-sm) !important;\n  }\n  .aqr-benefit-title {\n    color: var(--ds-text) !important;\n    font-weight: 600 !important;\n    letter-spacing: -0.01em !important;\n    font-size: 14px !important;\n  }\n  .aqr-benefit-desc {\n    color: var(--ds-text-secondary) !important;\n    font-size: 12px !important;\n    line-height: 1.55 !important;\n  }\n\n  \/* === Cards Audience === *\/\n  .aqr-audience-card {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    border-radius: var(--ds-radius-md) !important;\n    padding: 18px 12px !important;\n    transition: transform var(--ds-duration) var(--ds-ease),\n                box-shadow var(--ds-duration) var(--ds-ease),\n                border-color var(--ds-duration) var(--ds-ease) !important;\n  }\n  .aqr-audience-card:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 8px 24px rgba(0,0,0,0.06);\n    border-color: var(--ds-border) !important;\n  }\n  .aqr-audience-icon {\n    background: var(--ds-bg-soft) !important;\n    border-radius: 50% !important;\n    width: 44px !important;\n    height: 44px !important;\n  }\n  .aqr-audience-icon svg { stroke: var(--ds-text) !important; }\n  .aqr-audience-name {\n    color: var(--ds-text) !important;\n    font-weight: 500 !important;\n    font-size: 13px !important;\n    letter-spacing: -0.01em !important;\n  }\n\n  \/* === Eyebrows === *\/\n  span[style*=\"text-transform: uppercase\"][style*=\"color: #999\"] {\n    color: var(--ds-text-secondary) !important;\n    font-weight: 500 !important;\n    letter-spacing: 0.08em !important;\n    font-size: 11px !important;\n    margin-bottom: 18px !important;\n  }\n\n  \/* === Blocs principaux : fond uniforme === *\/\n  \/* Les blocs sur fond crème deviennent gris pâle *\/\n  div[style*=\"background-color: #FBF9F5\"] {\n    background-color: var(--ds-bg-soft) !important;\n  }\n\n  \/* === Bloc Dilution === *\/\n  .aqr-dilution {\n    border: none !important;\n    padding: 0 !important;\n    background: transparent !important;\n  }\n  \/* Forcer l'alignement haut + hauteur egale des 3 cartes dilution *\/\n  .aqr-dilution-grid {\n    align-items: stretch !important;\n  }\n  .aqr-dilution-cell {\n    align-self: stretch !important;\n    margin: 0 !important;\n  }\n  .aqr-dilution-eyebrow {\n    color: var(--ds-text-secondary) !important;\n    letter-spacing: 0.08em !important;\n    font-weight: 500 !important;\n    margin-bottom: 20px !important;\n  }\n  .aqr-dilution-eq-target {\n    background: var(--ds-text) !important;\n    color: var(--ds-bg) !important;\n    border-radius: 6px !important;\n    padding: 4px 12px !important;\n  }\n  .aqr-dilution-eq-item {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    border-radius: var(--ds-radius-sm) !important;\n    padding: 14px 8px !important;\n  }\n  .aqr-dilution-eq-val {\n    font-weight: 700 !important;\n    color: var(--ds-text) !important;\n  }\n  .aqr-dilution-eq-name {\n    color: var(--ds-text-secondary) !important;\n  }\n  .aqr-dilution-eq-sep {\n    color: var(--ds-text-tertiary) !important;\n  }\n  .aqr-dilution-eq-or span {\n    color: var(--ds-text-tertiary) !important;\n  }\n\n  \/* === Chips rendement (le trio horizontal) === *\/\n  .aqr-dilution-chips-label {\n    color: var(--ds-text-secondary) !important;\n    font-weight: 500 !important;\n    letter-spacing: 0.08em !important;\n  }\n  .aqr-dilution-chip-from,\n  .aqr-dilution-chip-to {\n    color: var(--ds-text) !important;\n  }\n  .aqr-dilution-chip-arr { color: var(--ds-gold) !important; }\n  .aqr-dilution-chips-foot { color: var(--ds-text-secondary) !important; }\n  \n  \/* === Accordeons Protocoles === *\/\n  .aqr-proto-acc {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border) !important;\n    border-radius: var(--ds-radius-md) !important;\n    overflow: hidden;\n    transition: box-shadow var(--ds-duration) var(--ds-ease) !important;\n  }\n  .aqr-proto-acc[open] {\n    box-shadow: 0 12px 32px rgba(0,0,0,0.08);\n  }\n  \/* Suppression des perforations beige du ticket *\/\n  .aqr-proto-acc::before,\n  .aqr-proto-acc::after {\n    display: none !important;\n  }\n  .aqr-proto-summary {\n    padding: 18px 56px 18px 22px !important; \/* right plus large pour le +, left aere *\/\n  }\n  .aqr-proto-title {\n    word-wrap: break-word;\n    overflow-wrap: break-word;\n    hyphens: auto;\n  }\n  @media (max-width: 600px) {\n    .aqr-proto-summary {\n      padding: 16px 50px 16px 18px !important;\n    }\n    .aqr-proto-plus {\n      right: 16px !important;\n    }\n    .aqr-proto-content {\n      padding: 4px 18px 18px !important;\n    }\n  }\n  @media (max-width: 380px) {\n    .aqr-proto-summary {\n      padding: 14px 44px 14px 14px !important;\n    }\n    .aqr-proto-plus {\n      right: 12px !important;\n    }\n    .aqr-proto-content {\n      padding: 4px 14px 16px !important;\n    }\n  }\n  .aqr-proto-title {\n    color: var(--ds-text) !important;\n    font-weight: 500 !important;\n    letter-spacing: -0.01em !important;\n    font-size: 15px !important;\n  }\n  .aqr-proto-plus {\n    border-color: var(--ds-border) !important;\n    color: var(--ds-text-secondary) !important;\n    background: transparent !important;\n    transition: transform var(--ds-duration) var(--ds-ease),\n                background var(--ds-duration) var(--ds-ease),\n                color var(--ds-duration) var(--ds-ease) !important;\n  }\n  .aqr-proto-acc[open] .aqr-proto-plus {\n    background: var(--ds-text) !important;\n    color: var(--ds-bg) !important;\n    border-color: var(--ds-text) !important;\n  }\n  .aqr-proto-content { padding: 4px 24px 22px !important; }\n  .aqr-proto-subtitle {\n    color: var(--ds-text-secondary) !important;\n    border-bottom: 1px solid var(--ds-border-soft) !important;\n  }\n  .aqr-proto-step-marker {\n    background: var(--ds-bg-soft) !important;\n    border-color: transparent !important;\n    color: var(--ds-text) !important;\n  }\n  .aqr-proto-step-title {\n    color: var(--ds-text) !important;\n    letter-spacing: 0.06em !important;\n    font-weight: 600 !important;\n  }\n  .aqr-proto-step-desc {\n    color: var(--ds-text-secondary) !important;\n  }\n\n  \/* === Associations Si → Alors === *\/\n  .aqr-assoc-intro {\n    color: var(--ds-text-secondary) !important;\n    font-size: 14px !important;\n    line-height: 1.6 !important;\n  }\n  .aqr-assoc-rule {\n    border-bottom: 1px solid var(--ds-border-soft) !important;\n    padding: 18px 4px !important;\n  }\n  .aqr-assoc-if-tag {\n    background: var(--ds-text) !important;\n    color: var(--ds-bg) !important;\n    border-radius: 4px !important;\n    font-weight: 600 !important;\n    letter-spacing: 0.04em !important;\n  }\n  .aqr-assoc-if span { color: var(--ds-text-secondary) !important; }\n  .aqr-assoc-then-arrow { color: var(--ds-gold) !important; }\n  .aqr-assoc-then strong { color: var(--ds-text) !important; }\n\n  \/* === Races (pilules) === *\/\n  .aqr-race-tag {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border-soft) !important;\n    color: var(--ds-text) !important;\n    font-weight: 500 !important;\n    transition: transform 0.2s var(--ds-ease), border-color 0.2s var(--ds-ease) !important;\n  }\n  .aqr-race-tag:hover {\n    transform: translateY(-1px);\n    border-color: var(--ds-border) !important;\n  }\n  .aqr-race-tag span { color: var(--ds-text-secondary) !important; }\n\n  \/* === Radar : points forts en pilules === *\/\n  .so-foot-centered-chip {\n    background: var(--ds-bg) !important;\n    border: 1px solid var(--ds-border) !important;\n    color: var(--ds-text) !important;\n    border-radius: 100px !important;\n    padding: 6px 14px !important;\n    font-weight: 500 !important;\n  }\n  .so-foot-centered-chip em {\n    color: var(--ds-gold) !important;\n  }\n  .so-foot-centered-title {\n    color: var(--ds-text-secondary) !important;\n    font-weight: 500 !important;\n    letter-spacing: 0.18em !important;\n  }\n  .so-foot-centered-line {\n    background: var(--ds-border-soft) !important;\n  }\n\n  \/* === Cartographie : ajouter de l'air === *\/\n  #aqr-carto .aqr-list-item {\n    border-radius: var(--ds-radius-sm) !important;\n    transition: background 0.2s var(--ds-ease) !important;\n  }\n  \/* Assurer la visibilite de l'image schema dans tous les contextes *\/\n  #aqr-carto .aqr-schema-wrap {\n    display: block !important;\n    visibility: visible !important;\n    opacity: 1 !important;\n    overflow: visible !important;\n  }\n  #aqr-carto .aqr-schema-img {\n    display: block !important;\n    visibility: visible !important;\n    opacity: 1 !important;\n    width: 100% !important;\n    height: auto !important;\n  }\n\n  \/* === Le grand 1\/20 — typographie plus light === *\/\n  .aqr-dilution-ratio-num {\n    color: var(--ds-text) !important;\n    font-weight: 700 !important;\n  }\n  .aqr-dilution-ratio-sub {\n    color: var(--ds-text-secondary) !important;\n  }\n\n  \/* Animations apaisees - cible seulement les elements avec transition (pas les animations) *\/\n  .aqr-audience-card,\n  .aqr-race-tag,\n  .aqr-proto-acc,\n  .aqr-proto-plus,\n  .aqr-dilution,\n  .so-foot-centered-chip {\n    transition-timing-function: var(--ds-ease) !important;\n  }\n\n  \/* === Le footer mentions === *\/\n  div[style*=\"text-transform: uppercase\"][style*=\"color: #888\"] {\n    color: var(--ds-text-tertiary) !important;\n    font-size: 10px !important;\n    letter-spacing: 0.05em !important;\n    font-weight: 500 !important;\n  }\n\u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003c!-- BLOCK 1: INTRO --\u003e  \u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e  \u003cdiv style=\"font-size: 1.1em; margin-bottom: 16px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e  \u003cstrong\u003eBEE MOSSE\u003c\/strong\u003e is the \u003cstrong\u003esanitizing foam without rinsing\u003c\/strong\u003e Special One designed for \u003cstrong\u003epaws and pads\u003c\/strong\u003e of your dog. Thanks to the \u003cstrong\u003eChlorhexidine\u003c\/strong\u003e and to the \u003cstrong\u003ePropolis\u003c\/strong\u003e,  It disinfects, protects and moisturizes — ideal after walks, or when the dog arrives at the grooming salon to limit the spread of viruses.\u003c\/div\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eWho is this product for?\u003c\/h2\u003e  \u003cp style=\"margin-bottom: 20px; font-size: 14px;\"\u003eDesigned for both \u003cstrong\u003egrooming salons\u003c\/strong\u003e (disinfection of paws upon arrival) and the \u003cstrong\u003eindividuals\u003c\/strong\u003e (after each ride). Compatible with all Special One products.\u003c\/p\u003e  \u003cdiv class=\"aqr-audience\"\u003e  \u003cdiv class=\"aqr-audience-grid\"\u003e  \u003cdiv class=\"aqr-audience-card\"\u003e  \u003cdiv class=\"aqr-audience-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"#1a1a1a\" fill=\"none\" height=\"20\" width=\"20\" viewbox=\"0 0 24 24\"\u003e\u003ccircle r=\"2.5\" cy=\"18\" cx=\"6\"\u003e\u003c\/circle\u003e\u003ccircle r=\"2.5\" cy=\"18\" cx=\"18\"\u003e\u003c\/circle\u003e\u003cpath d=\"M8 16 L20 4\"\u003e\u003c\/path\u003e\u003cpath d=\"M16 16 L4 4\"\u003e\u003c\/path\u003e\u003ccircle fill=\"#1a1a1a\" r=\"1\" cy=\"11.5\" cx=\"12\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-audience-name\"\u003eGroomers\u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-audience-card\"\u003e  \u003cdiv class=\"aqr-audience-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"#1a1a1a\" fill=\"none\" height=\"20\" width=\"20\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M3 21 L3 12 L12 5 L21 12 L21 21 Z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 21 L9 15 L15 15 L15 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-audience-name\"\u003eLivestock farmers\u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-audience-card\"\u003e  \u003cdiv class=\"aqr-audience-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"#1a1a1a\" fill=\"none\" height=\"20\" width=\"20\" viewbox=\"0 0 24 24\"\u003e\u003ccircle r=\"4\" cy=\"8\" cx=\"12\"\u003e\u003c\/circle\u003e\u003cpath d=\"M4 21 Q4 14 12 14 Q20 14 20 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-audience-name\"\u003eIndividuals\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-audience, .aqr-audience * { box-sizing: border-box; font-family: inherit; }\n      .aqr-audience-grid {\n        display: grid;\n        grid-template-columns: repeat(5, 1fr);\n        gap: 8px;\n      }\n      .aqr-audience-card {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        gap: 8px;\n        padding: 16px 10px;\n        background: #fff;\n        border: 1px solid #e5e5e5;\n        border-radius: 8px;\n        text-align: center;\n        transition: border-color 0.2s, transform 0.2s;\n      }\n      .aqr-audience-card:hover {\n        border-color: #1a1a1a;\n        transform: translateY(-1px);\n      }\n      .aqr-audience-icon {\n        width: 40px;\n        height: 40px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: #f6f6f6;\n        border-radius: 50%;\n      }\n      .aqr-audience-name {\n        font-size: 12px;\n        font-weight: 600;\n        color: #1a1a1a;\n        line-height: 1.2;\n      }\n      @media (max-width: 700px) {\n        .aqr-audience-grid { grid-template-columns: repeat(3, 1fr); }\n      }\n      @media (max-width: 420px) {\n        .aqr-audience-grid { grid-template-columns: repeat(2, 1fr); }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003c!-- BLOCK 2: EXPERTISE \u0026  RESULTS --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eExpertise \u0026amp; Results\u003c\/h2\u003e  \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eYour dog's paws are in constant contact with roads, grass, mud, and sometimes harmful substances. Bee Mousse is a \u003cstrong\u003eno-rinse cleansing foam\u003c\/strong\u003e It sanitizes and protects — without drying, without greasing, and without leaving any marks on the floor. Convenient, it applies in two seconds.\u003c\/p\u003e  \u003cdiv style=\"margin-top: 20px;\" class=\"aqr-benefits\"\u003e  \u003cdiv class=\"aqr-benefits-grid\"\u003e  \u003cdiv style=\"--i: 0;\" class=\"aqr-benefit-card\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"currentColor\" fill=\"none\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M12 3l7 3v5c0 4.5-3 7.7-7 9-4-1.3-7-4.5-7-9V6z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eDeep cleansing action\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003eChlorhexidine + Propolis: eliminates bacteria and impurities on the pads, prevents infections and irritations.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv style=\"--i: 1;\" class=\"aqr-benefit-card\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"currentColor\" fill=\"none\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M12 21C12 21 4 13.8 4 8.6A4 4 0 0 1 12 6 A4 4 0 0 1 20 8.6C20 13.8 12 21 12 21z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003ePurifie \u0026amp; softens\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003ePropolis (“the natural antibiotic”) purifies the skin of the paw pads and soothes small cuts, scratches or redness.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv style=\"--i: 2;\" class=\"aqr-benefit-card\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"currentColor\" fill=\"none\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M12 3s6 6 6 11a6 6 0 0 1-12 0c0-5 6-11 6-11z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eDelicate \u0026amp; moisturizing\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003eGentle formula that does not dry out — paws remain supple, without cracking or dryness.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv style=\"--i: 3;\" class=\"aqr-benefit-card\"\u003e  \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1.5\" stroke=\"currentColor\" fill=\"none\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M13 2L4 14h7l-1 8 9-12h-7z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-content\"\u003e  \u003cdiv class=\"aqr-benefit-title\"\u003eFast \u0026amp; without water\u003c\/div\u003e  \u003cdiv class=\"aqr-benefit-desc\"\u003eNo need for water or rinsing: application in two seconds after each walk or upon arrival at the salon.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-benefits, .aqr-benefits * { box-sizing: border-box; font-family: inherit; }\n      .aqr-benefits-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        grid-auto-rows: 1fr;\n        align-items: stretch;\n        gap: 10px;\n      }\n      .aqr-benefit-card {\n        position: relative;\n        display: flex;\n        gap: 14px;\n        background: #fff;\n        border: 1px solid #1a1a1a;\n        border-radius: 8px;\n        padding: 16px 18px;\n        align-items: center;\n        overflow: hidden;\n        opacity: 0;\n        animation: aqrBenefitFadeIn 0.5s ease-out forwards;\n        animation-delay: calc(var(--i) * 80ms);\n        transition: background 0.3s;\n      }\n      .aqr-benefit-card::before {\n        content: \"\";\n        position: absolute;\n        top: 0; left: 0; bottom: 0;\n        width: 4px;\n        background: #1a1a1a;\n        transition: width 0.3s, background 0.3s;\n      }\n      .aqr-benefit-card:hover { background: #fafafa; }\n      .aqr-benefit-card:hover::before {\n        width: 6px;\n        background: #D4AF37;\n      }\n      .aqr-benefit-corner {\n        position: absolute;\n        top: 0; right: 0;\n        width: 18px; height: 18px;\n        background: linear-gradient(225deg, #F5E6B8 50%, transparent 50%);\n        border-top-right-radius: 8px;\n        overflow: hidden;\n      }\n      .aqr-benefit-icon {\n        flex-shrink: 0;\n        width: 44px; height: 44px;\n        display: flex; align-items: center; justify-content: center;\n        background: #1a1a1a;\n        color: #F5E6B8;\n        border-radius: 0;\n      }\n      .aqr-benefit-icon svg { width: 22px; height: 22px; }\n      .aqr-benefit-content { flex: 1; min-width: 0; }\n      .aqr-benefit-title {\n        font-size: 14px;\n        font-weight: 700;\n        color: #1a1a1a;\n        margin-bottom: 3px;\n      }\n      .aqr-benefit-desc {\n        font-size: 11px;\n        line-height: 1.5;\n        color: #555;\n      }\n      @keyframes aqrBenefitFadeIn {\n        to { opacity: 1; }\n      }\n      @media (max-width: 600px) {\n        .aqr-benefits-grid { grid-template-columns: 1fr; gap: 8px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\u003cbr\u003e\u003c\/div\u003e  \u003c!-- RADAR UNIT (moved under Expertise) --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eBetter understand the actions of Bee Mousse\u003c\/h2\u003e  \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eA detailed breakdown of its cosmetic performance, note by note.\u003c\/p\u003e  \u003cdiv style=\"width: 100%; max-width: 480px; margin: 0 auto; background: #fff; border: 1px solid #e5e5e5; font-family: inherit; color: #1a1a1a; line-height: 1.4;\" id=\"so-radar-widget\"\u003e  \u003cdiv style=\"padding: 16px 28px; overflow: visible;\"\u003e  \u003cdiv style=\"position: relative; width: 100%; max-width: 340px; aspect-ratio: 1; margin: 0 auto; overflow: visible;\" id=\"so-radar-area\"\u003e\u003csvg viewbox=\"0 0 360 360\" style=\"width: 100%; height: 100%; overflow: visible;\" id=\"so-radar-svg\"\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv id=\"so-radar-footer\"\u003e\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n    #so-radar-widget * { box-sizing: border-box; }\n    .so-label { position: absolute; transform: translate(-50%, -50%); text-align: center; pointer-events: none; white-space: nowrap; opacity: 0; animation: so-fadeUp 0.5s ease forwards; }\n    .so-label .so-lname { font-size: 9px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: #999; display: block; margin-bottom: 1px; font-family: inherit; }\n    .so-label .so-lval { font-size: 24px; font-weight: 700; color: #1a1a1a; line-height: 1; font-family: inherit; }\n    .so-label .so-lmax { font-size: 12px; font-weight: 400; color: #bbb; font-family: inherit; }\n    .so-foot-centered { margin-top: 18px; padding-top: 16px; border-top: 1px solid #eee; opacity: 0; animation: so-footerIn 0.5s ease forwards 0.8s; }\n    .so-foot-centered-head { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 14px; }\n    .so-foot-centered-line { flex: 1; height: 1px; background: #1a1a1a; max-width: 50px; }\n    .so-foot-centered-title { font-size: 9px; letter-spacing: 0.3em; font-weight: 700; color: #1a1a1a; font-family: inherit; }\n    .so-foot-centered-chips { display: grid; grid-template-columns: auto auto; justify-content: center; justify-items: center; gap: 6px; }\n    .so-foot-centered-chip { display: inline-flex; align-items: baseline; gap: 6px; background: #fff; border: 1px solid #1a1a1a; color: #1a1a1a; padding: 6px 14px; border-radius: 100px; font-size: 11px; font-weight: 600; font-family: inherit; }\n    .so-foot-centered-chip em { font-family: Georgia, \"Times New Roman\", serif; font-style: italic; font-weight: 700; color: #D4AF37; font-size: 11px; }\n    .so-shape-fill   { opacity: 0; animation: so-shapeIn 0.9s ease forwards 0.2s; }\n    .so-shape-stroke { opacity: 0; animation: so-shapeIn 0.7s ease forwards 0.35s; }\n    .so-dot          { opacity: 0; animation: so-dotIn 0.35s ease forwards; }\n    @keyframes so-shapeIn  { to { opacity: 1; } }\n    @keyframes so-dotIn    { to { opacity: 1; } }\n    @keyframes so-footerIn { to { opacity: 1; } }\n    @keyframes so-fadeUp { from { opacity: 0; transform: translate(-50%, calc(-50% + 6px)); } to { opacity: 1; transform: translate(-50%, -50%); } }\n    .so-trace-stroke { opacity: 0; animation: so-traceIn 0.5s ease forwards 0.8s, so-traceMove 3.5s linear infinite 1.3s; }\n    @keyframes so-traceIn { to { opacity: 1; } }\n    @keyframes so-traceMove { from { stroke-dashoffset: 0; } to { stroke-dashoffset: calc(-1 * var(--so-perim, 600)); } }\n    @media (max-width: 480px) {\n      #so-radar-widget \u003e div { padding: 18px 16px 14px !important; }\n      #so-radar-area { max-width: 300px !important; }\n      .so-label .so-lname { font-size: 8px !important; letter-spacing: 0.05em !important; }\n      .so-label .so-lval  { font-size: 19px !important; }\n      .so-label .so-lmax  { font-size: 9px !important; }\n      .so-foot-centered-title { font-size: 8px !important; letter-spacing: 0.25em !important; }\n      .so-foot-centered-chip { font-size: 10px !important; padding: 5px 12px !important; }\n      .so-foot-centered-chip em { font-size: 10px !important; }\n      .so-foot-centered-line { max-width: 30px !important; }\n    }\n    @media (max-width: 360px) {\n      #so-radar-area { max-width: 260px !important; }\n      .so-label .so-lval { font-size: 16px !important; }\n      .so-label .so-lname { font-size: 7px !important; }\n    }\n  \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cscript\u003e\n  (function() {\n    var PRODUCT = { criteria: [ { label: \"Peau sensible\", value: 5 }, { label: \"Action assainissante\", value: 5 }, { label: \"Hydratation\", value: 3 } ] };\n    var svg = document.getElementById(\"so-radar-svg\"); var area = document.getElementById(\"so-radar-area\");\n    var data = PRODUCT.criteria; var n = data.length; var cx = 180, cy = 180, maxR = 95;\n    function ang(i) { return (Math.PI * 2 * i \/ n) - Math.PI \/ 2; }\n    function pt(i, v, mx) { var a = ang(i), r = (v \/ mx) * maxR; return { x: cx + r * Math.cos(a), y: cy + r * Math.sin(a) }; }\n    function svgEl(tag) { return document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", tag); }\n    for (var l = 1; l \u003c= 5; l++) { var pts = []; for (var i = 0; i \u003c n; i++) { var p = pt(i, l, 5); pts.push(p.x + \",\" + p.y); } var poly = svgEl(\"polygon\"); poly.setAttribute(\"points\", pts.join(\" \")); poly.setAttribute(\"fill\", \"none\"); poly.setAttribute(\"stroke\", l === 5 ? \"rgba(0,0,0,0.09)\" : \"rgba(0,0,0,0.04)\"); poly.setAttribute(\"stroke-width\", l === 5 ? \"1\" : \"0.6\"); if (l === 5) poly.setAttribute(\"stroke-dasharray\", \"3,3\"); svg.appendChild(poly); }\n    for (var i = 0; i \u003c n; i++) { var p = pt(i, 5, 5); var line = svgEl(\"line\"); line.setAttribute(\"x1\", cx); line.setAttribute(\"y1\", cy); line.setAttribute(\"x2\", p.x); line.setAttribute(\"y2\", p.y); line.setAttribute(\"stroke\", \"rgba(0,0,0,0.04)\"); line.setAttribute(\"stroke-width\", \"0.6\"); svg.appendChild(line); }\n    var shapePts = []; for (var i = 0; i \u003c n; i++) { var p = pt(i, data[i].value, 5); shapePts.push(p.x + \",\" + p.y); } var ptsStr = shapePts.join(\" \");\n    var fillPoly = svgEl(\"polygon\"); fillPoly.setAttribute(\"points\", ptsStr); fillPoly.setAttribute(\"fill\", \"rgba(0,0,0,0.04)\"); fillPoly.classList.add(\"so-shape-fill\"); svg.appendChild(fillPoly);\n    var strokePoly = svgEl(\"polygon\"); strokePoly.setAttribute(\"points\", ptsStr); strokePoly.setAttribute(\"fill\", \"none\"); strokePoly.setAttribute(\"stroke\", \"#1a1a1a\"); strokePoly.setAttribute(\"stroke-width\", \"1.8\"); strokePoly.setAttribute(\"stroke-linejoin\", \"round\"); strokePoly.classList.add(\"so-shape-stroke\"); svg.appendChild(strokePoly);\n    \/* Trace doree qui parcourt le contour en boucle *\/\n    var perim = 0; for (var i = 0; i \u003c n; i++) { var p1 = pt(i, data[i].value, 5); var p2 = pt((i+1)%n, data[(i+1)%n].value, 5); perim += Math.sqrt((p2.x-p1.x)*(p2.x-p1.x) + (p2.y-p1.y)*(p2.y-p1.y)); }\n    var tracePoly = svgEl(\"polygon\"); tracePoly.setAttribute(\"points\", ptsStr); tracePoly.setAttribute(\"fill\", \"none\"); tracePoly.setAttribute(\"stroke\", \"#D4AF37\"); tracePoly.setAttribute(\"stroke-width\", \"2.2\"); tracePoly.setAttribute(\"stroke-linejoin\", \"round\"); tracePoly.setAttribute(\"stroke-linecap\", \"round\"); tracePoly.setAttribute(\"stroke-dasharray\", \"60 \" + perim); tracePoly.setAttribute(\"stroke-dashoffset\", \"0\"); tracePoly.style.setProperty(\"--so-perim\", perim); tracePoly.classList.add(\"so-trace-stroke\"); svg.appendChild(tracePoly);\n    for (var i = 0; i \u003c n; i++) { (function(i) { var d = data[i]; var p = pt(i, d.value, 5); var delay = 0.5 + i * 0.1; var halo = svgEl(\"circle\"); halo.setAttribute(\"cx\", p.x); halo.setAttribute(\"cy\", p.y); halo.setAttribute(\"r\", \"7\"); halo.setAttribute(\"fill\", \"none\"); halo.setAttribute(\"stroke\", \"#1a1a1a\"); halo.setAttribute(\"stroke-width\", \"1\"); halo.setAttribute(\"stroke-opacity\", \"0.12\"); halo.classList.add(\"so-dot\"); halo.style.animationDelay = delay + \"s\"; svg.appendChild(halo); var dot = svgEl(\"circle\"); dot.setAttribute(\"cx\", p.x); dot.setAttribute(\"cy\", p.y); dot.setAttribute(\"r\", \"3\"); dot.setAttribute(\"fill\", \"#1a1a1a\"); dot.classList.add(\"so-dot\"); dot.style.animationDelay = delay + \"s\"; svg.appendChild(dot); var lp = pt(i, 6.5, 5);\n lp.y += Math.sin(ang(i)) * 16; var pctX = (lp.x \/ 360) * 100; var pctY = (lp.y \/ 360) * 100; var lbl = document.createElement(\"div\"); lbl.className = \"so-label\"; lbl.style.left = pctX + \"%\"; lbl.style.top = pctY + \"%\"; lbl.style.animationDelay = (0.4 + i * 0.1) + \"s\"; lbl.innerHTML = '\u003cspan class=\"so-lname\"\u003e' + d.label + '\u003c\/span\u003e\u003cspan class=\"so-lval\"\u003e' + d.value + '\u003cspan class=\"so-lmax\"\u003e\/5\u003c\/span\u003e\u003c\/span\u003e'; area.appendChild(lbl); })(i); }\n    var maxVal = 0; for (var i = 0; i \u003c n; i++) { if (data[i].value \u003e maxVal) maxVal = data[i].value; } var bests = []; for (var i = 0; i \u003c n; i++) { if (data[i].value === maxVal) bests.push(data[i]); }\n    var chipsHtml = ''; for (var i = 0; i \u003c bests.length; i++) { chipsHtml += '\u003cspan class=\"so-foot-centered-chip\"\u003e' + bests[i].label + '\u003cem\u003e' + bests[i].value + '\/5\u003c\/em\u003e\u003c\/span\u003e'; }\n    var labelTxt = (bests.length \u003e 1 ? 'POINTS FORTS' : 'POINT FORT');\n    document.getElementById(\"so-radar-footer\").innerHTML = '\u003cdiv class=\"so-foot-centered\"\u003e\u003cdiv class=\"so-foot-centered-head\"\u003e\u003cspan class=\"so-foot-centered-line\"\u003e\u003c\/span\u003e\u003cspan class=\"so-foot-centered-title\"\u003e★ ' + labelTxt + ' ★\u003c\/span\u003e\u003cspan class=\"so-foot-centered-line\"\u003e\u003c\/span\u003e\u003c\/div\u003e\u003cdiv class=\"so-foot-centered-chips\"\u003e' + chipsHtml + '\u003c\/div\u003e\u003c\/div\u003e';\n  })();\n  \u003c\/script\u003e  \u003c!-- BLOCK 3: COMPOSITION (MAPPING JS active Bee Mousse - verified) --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eComposition of Bee Mousse: targeted active ingredients \u0026amp; action on the pads\u003c\/h2\u003e  \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eTwo assets targeted at the cleansing and protection of the pads — \u003cstrong\u003eSLES-free, DEA-free, paraben-free\u003c\/strong\u003e.  Here, zone by zone, is how each active ingredient acts on the skin of the paws.\u003c\/p\u003e  \u003c!-- MAPPING --\u003e  \u003cdiv style=\"background: #fff; border: 1px solid #e5e5e5; padding: 18px;\" id=\"aqr-carto\"\u003e  \u003cdiv class=\"aqr-grid\"\u003e  \u003cdiv class=\"aqr-col-list\"\u003e  \u003cul id=\"aqrList\" class=\"aqr-list\"\u003e\u003c\/ul\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-col-schema\"\u003e  \u003cdiv id=\"aqrSchemaWrap\" class=\"aqr-schema-wrap\"\u003e  \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/schema-peau-poil.webp?v=1779972667\" alt=\"Schéma de l'anatomie de la peau et du poil illustrant l'action ciblée du Bee Mousse\" style=\"display: block; width: 100%; height: auto;\" id=\"aqrSchemaImg\" class=\"aqr-schema-img\"\u003e  \u003csvg viewbox=\"0 0 100 225\" preserveaspectratio=\"none\" id=\"aqrOverlay\" class=\"aqr-overlay\"\u003e\u003c\/svg\u003e  \u003cdiv id=\"aqrConnectors\" class=\"aqr-connectors\"\u003e\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-col-info\"\u003e  \u003cdiv id=\"aqrInfo\" class=\"aqr-info\"\u003e\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      #aqr-carto, #aqr-carto * { box-sizing: border-box; }\n      #aqr-carto {\n        font-family: inherit;\n        color: #1a1a1a;\n        line-height: 1.5;\n        position: relative;\n      }\n      #aqr-carto .aqr-grid {\n        display: grid;\n        grid-template-columns: 170px 1fr 280px;\n        gap: 16px;\n        align-items: start;\n      }\n\n      \/* LISTE — cadres encadres *\/\n      #aqr-carto .aqr-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }\n      #aqr-carto .aqr-list-item {\n        display: block;\n        width: 100%;\n        text-align: left;\n        background: #fff;\n        border: 1px solid #e5e5e5;\n        padding: 8px 10px;\n        cursor: pointer;\n        font-family: inherit;\n        color: #888;\n        transition: all 0.3s;\n        position: relative;\n        min-height: 0;\n      }\n      #aqr-carto .aqr-list-item:hover {\n        color: #1a1a1a;\n        border-color: #bbb;\n        background: #fafafa;\n      }\n      #aqr-carto .aqr-list-item.aqr-active {\n        color: #1a1a1a;\n        background: #fff;\n        border-color: var(--c, #1a1a1a);\n        border-left-width: 3px;\n        padding-left: 8px;\n        box-shadow: 0 2px 6px rgba(0,0,0,0.04);\n      }\n\n      #aqr-carto .aqr-li-name {\n        font-size: 13px;\n        line-height: 1.25;\n        font-weight: 500;\n      }\n\n      \/* SCHEMA *\/\n      #aqr-carto .aqr-col-schema {\n        display: flex;\n        justify-content: center;\n        align-items: flex-start;\n      }\n      #aqr-carto .aqr-schema-wrap {\n        position: relative;\n        width: 100%;\n        max-width: 200px;\n        margin: 0 auto;\n        z-index: 1;\n      }\n      #aqr-carto .aqr-schema-img {\n        display: block;\n        width: 100%;\n        height: auto;\n      }\n\n      #aqr-carto .aqr-overlay {\n        position: absolute;\n        inset: 0;\n        width: 100%;\n        height: 100%;\n        pointer-events: none;\n        overflow: visible;\n        z-index: 3;\n      }\n      #aqr-carto .aqr-connectors {\n        position: absolute;\n        inset: 0;\n        pointer-events: none;\n        z-index: 2;\n      }\n      #aqr-carto \u003e svg.aqr-connector-svg {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        overflow: visible;\n        pointer-events: none;\n        z-index: 5;\n      }\n\n      \/* Ligne connector (depuis la liste vers le point) *\/\n      #aqr-carto .aqr-conn-line {\n        fill: none;\n        stroke: var(--c);\n        stroke-width: 1;\n        opacity: 0;\n        stroke-dasharray: 600;\n        stroke-dashoffset: 600;\n        animation: aqrConnDraw 0.9s cubic-bezier(.5,.05,.2,1) forwards;\n      }\n      @keyframes aqrConnDraw {\n        0% { opacity: 0; stroke-dashoffset: 600; }\n        25% { opacity: 0.6; }\n        100% { opacity: 0.6; stroke-dashoffset: 0; }\n      }\n\n      \/* IRRADIATION CIRCULAIRE DOREE — toujours identique *\/\n      \/* Le groupe entier qui contient halo + cercle + branches étoilées *\/\n      #aqr-carto .aqr-star-group {\n        transform-origin: center;\n        transform-box: fill-box;\n      }\n\n      \/* Halo doré central qui pulse doucement *\/\n      #aqr-carto .aqr-star-halo {\n        fill: #D4AF37;\n        opacity: 0;\n        transform-origin: center;\n        transform-box: fill-box;\n        filter: blur(1.4px);\n        animation: aqrHaloIn 0.7s ease-out forwards, aqrHaloPulse 3s ease-in-out infinite 0.7s;\n      }\n      @keyframes aqrHaloIn { to { opacity: 0.5; } }\n      @keyframes aqrHaloPulse {\n        0%, 100% { opacity: 0.4; transform: scale(1); }\n        50% { opacity: 0.75; transform: scale(1.2); }\n      }\n\n      \/* Cercle d'irradiation qui se diffuse (anneau lent) *\/\n      #aqr-carto .aqr-star-ring {\n        fill: none;\n        stroke: #D4AF37;\n        stroke-width: 0.5;\n        opacity: 0;\n        transform-origin: center;\n        transform-box: fill-box;\n        animation: aqrStarRing 3.2s ease-out infinite;\n      }\n      @keyframes aqrStarRing {\n        0%   { opacity: 0; r: 3; stroke-width: 0.6; }\n        15%  { opacity: 0.5; }\n        100% { opacity: 0; r: 12; stroke-width: 0.15; }\n      }\n\n      \/* Point coloré A\/B\/C (par-dessus le doré) *\/\n      #aqr-carto .aqr-marker-dot {\n        fill: var(--c);\n        opacity: 0;\n        transform-origin: center;\n        transform-box: fill-box;\n        animation: aqrDotIn 0.5s ease-out forwards;\n      }\n      @keyframes aqrDotIn {\n        0% { opacity: 0; transform: scale(0); }\n        70% { transform: scale(1.4); }\n        100% { opacity: 1; transform: scale(1); }\n      }\n      #aqr-carto .aqr-marker-text {\n        fill: white;\n        font-family: 'Courier New', monospace;\n        font-size: 2.8px;\n        font-weight: 700;\n        text-anchor: middle;\n        dominant-baseline: central;\n        opacity: 0;\n        animation: aqrDotIn 0.5s ease-out forwards;\n        pointer-events: none;\n      }\n\n      #aqr-carto .aqr-leaving {\n        animation: aqrFadeOut 0.4s ease-out forwards !important;\n      }\n      @keyframes aqrFadeOut { to { opacity: 0; } }\n\n      \/* INFO *\/\n      #aqr-carto .aqr-info {\n        background: #fafafa;\n        border: 1px solid #e5e5e5;\n        padding: 16px 16px;\n        transition: opacity 0.4s;\n      }\n      #aqr-carto .aqr-info.aqr-fading { opacity: 0.2; }\n      #aqr-carto .aqr-info-family {\n        font-size: 9px;\n        letter-spacing: 0.25em;\n        text-transform: uppercase;\n        color: var(--c, #888);\n        font-weight: 600;\n        margin-bottom: 6px;\n        transition: color 0.5s;\n      }\n      #aqr-carto .aqr-info-name {\n        font-size: 16px;\n        font-weight: 700;\n        line-height: 1.2;\n        margin: 0 0 4px;\n        color: #1a1a1a;\n      }\n      #aqr-carto .aqr-info-latin {\n        font-size: 11px;\n        color: #999;\n        font-style: italic;\n        margin-bottom: 12px;\n      }\n      #aqr-carto .aqr-info-desc {\n        font-size: 12px;\n        line-height: 1.55;\n        color: #333;\n        margin-bottom: 14px;\n        padding-bottom: 14px;\n        border-bottom: 1px solid #ececec;\n      }\n      #aqr-carto .aqr-info-section {\n        font-size: 9px;\n        letter-spacing: 0.22em;\n        text-transform: uppercase;\n        color: #888;\n        font-weight: 600;\n        margin-bottom: 10px;\n      }\n      #aqr-carto .aqr-action-row {\n        display: flex;\n        align-items: baseline;\n        gap: 10px;\n        margin-bottom: 10px;\n        padding-bottom: 10px;\n        border-bottom: 1px dotted #ececec;\n      }\n      #aqr-carto .aqr-action-row:last-child {\n        border-bottom: none;\n        padding-bottom: 0;\n        margin-bottom: 0;\n      }\n      #aqr-carto .aqr-action-marker {\n        flex-shrink: 0;\n        width: 18px;\n        height: 18px;\n        background: var(--c);\n        color: white;\n        text-align: center;\n        line-height: 18px;\n        font-family: 'Courier New', monospace;\n        font-size: 10px;\n        font-weight: 700;\n        transition: background 0.5s;\n      }\n      #aqr-carto .aqr-action-content { flex: 1; min-width: 0; }\n      #aqr-carto .aqr-action-zone {\n        font-size: 9px;\n        letter-spacing: 0.15em;\n        text-transform: uppercase;\n        color: var(--c, #888);\n        font-weight: 600;\n        margin-bottom: 2px;\n        transition: color 0.5s;\n      }\n      #aqr-carto .aqr-action-name {\n        font-size: 13px;\n        color: #1a1a1a;\n        font-weight: 600;\n        line-height: 1.25;\n        margin-bottom: 3px;\n      }\n      #aqr-carto .aqr-action-benefit {\n        font-size: 11px;\n        color: #666;\n        line-height: 1.5;\n      }\n\n      \/* TABLET : liste + schema cote a cote, info en dessous *\/\n      @media (max-width: 900px) {\n        #aqr-carto .aqr-grid {\n          grid-template-columns: 1fr 130px;\n          grid-template-rows: auto auto;\n          gap: 14px;\n        }\n        #aqr-carto .aqr-col-list { grid-column: 1; grid-row: 1; }\n        #aqr-carto .aqr-col-schema { grid-column: 2; grid-row: 1; }\n        #aqr-carto .aqr-col-info { grid-column: 1 \/ -1; grid-row: 2; }\n        #aqr-carto .aqr-schema-wrap { max-width: 130px; }\n        #aqr-carto .aqr-li-name { font-size: 12px; }\n        #aqr-carto .aqr-list-item { padding: 7px 8px; }\n        #aqr-carto .aqr-list { gap: 5px; }\n      }\n      \/* MOBILE : meme structure mais photo encore plus petite *\/\n      @media (max-width: 640px) {\n        #aqr-carto { padding: 12px !important; }\n        #aqr-carto .aqr-grid {\n          grid-template-columns: 1fr 100px;\n          gap: 10px;\n        }\n        #aqr-carto .aqr-schema-wrap { max-width: 100px; }\n        #aqr-carto .aqr-li-name { font-size: 11px; line-height: 1.2; }\n        #aqr-carto .aqr-li-num { font-size: 8px; margin-bottom: 1px; }\n        #aqr-carto .aqr-list-item { padding: 6px 8px; }\n        #aqr-carto .aqr-list-item.aqr-active { padding-left: 6px; }\n        #aqr-carto .aqr-info-name { font-size: 15px; }\n        #aqr-carto .aqr-info { padding: 14px; }\n        #aqr-carto .aqr-list { gap: 4px; }\n      }\n      \/* TRES PETIT : photo minimale *\/\n      @media (max-width: 420px) {\n        #aqr-carto .aqr-grid {\n          grid-template-columns: 1fr 80px;\n          gap: 8px;\n        }\n        #aqr-carto .aqr-schema-wrap { max-width: 80px; }\n        #aqr-carto .aqr-li-name { font-size: 10px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e  \u003cscript\u003e\n    (function(){\n      var familyColors = {\n        botanic: '#7BA05B',\n        aqua: '#4A90B8',\n        bio: '#C84876',\n        cond: '#B07BA0'\n      };\n      var families = {\n        botanic: 'Botanique',\n        aqua: 'Aquatique',\n        bio: 'Biochimique',\n        cond: 'Conditionneur'\n      };\n\n      \/\/ Anchors PRECIS sur l'image 500x1125 (viewBox 100 x 225)\n      var anchors = {\n        tige_poil:  { x: 60,  y: 25 },     \/\/ mi-tige\n        cuticule:   { x: 56,  y: 65 },     \/\/ ecailles visibles\n        epiderme:   { x: 25,  y: 115 },    \/\/ surface peau gauche\n        film_hydro: { x: 32,  y: 100 },    \/\/ surface peau clairement, ecarte du poil\n        glande_seb: { x: 62,  y: 142 },    \/\/ grappe jaune\n        glande_sud: { x: 25,  y: 168 },    \/\/ enchevetrement gauche\n        muscle:     { x: 78,  y: 170 },    \/\/ faisceau diagonal\n        follicule:  { x: 43,  y: 185 },    \/\/ cloche autour du poil\n        bulbe:      { x: 43,  y: 193 },    \/\/ boule au fond, remonte encore\n        derme:      { x: 12,  y: 190 }     \/\/ bloc peau gauche bas\n      };\n      var anchorLabels = {\n        tige_poil: 'Tige du poil', cuticule: 'Cuticule', film_hydro: 'Film hydrolipidique',\n        epiderme: 'Épiderme', derme: 'Derme', bulbe: 'Bulbe pilaire',\n        glande_seb: 'Glande sébacée', glande_sud: 'Glande sudoripare',\n        follicule: 'Follicule pileux', muscle: 'Muscle arrecteur'\n      };\n\n      var ingredients = [\n        {\n          id:'chlorhexidine', label:'Chlorhexidine', latin:'Antibactérien \u0026 antifongique', family:'bio',\n          desc:\"Puissant antibactérien et antifongique de référence : elle élimine les micro-organismes accumulés sur les coussinets après chaque sortie et prévient infections et irritations.\",\n          targets: [\n            { anchor:'epiderme', action:\"Désinfection ciblée\", benefit:\"Élimine bactéries et germes accumulés sur la peau des coussinets.\" },\n            { anchor:'glande_sud', action:\"Prévention des infections\", benefit:\"Réduit les déséquilibres bactériens et prévient les infections cutanées.\" }\n          ]\n        },\n        {\n          id:'propolis', label:'Propolis', latin:'« L’antibiotique naturel »', family:'botanic',\n          desc:\"Résine d’abeille aux propriétés antiseptiques, lénifiantes et protectrices : elle apaise les petites coupures et griffures, et favorise la régénération de la peau des coussinets.\",\n          targets: [\n            { anchor:'epiderme', action:\"Cicatrisation douce\", benefit:\"Apaise les petites coupures, griffures ou rougeurs et soutient la régénération.\" },\n            { anchor:'film_hydro', action:\"Protection durable\", benefit:\"Protège la peau des coussinets des agents extérieurs et la maintient souple.\" }\n          ]\n        }\n      ];\n\n      var listEl = document.getElementById('aqrList');\n      var schemaWrap = document.getElementById('aqrSchemaWrap');\n      var schemaImg = document.getElementById('aqrSchemaImg');\n      var overlay = document.getElementById('aqrOverlay');\n      var connectorsEl = document.getElementById('aqrConnectors');\n      var infoEl = document.getElementById('aqrInfo');\n            try { ingredients.forEach(function(ing, i) {\n        var li = document.createElement('li');\n        var btn = document.createElement('button');\n        btn.className = 'aqr-list-item' + (i === 0 ? ' aqr-active' : '');\n        btn.setAttribute('type', 'button');\n        btn.dataset.idx = i;\n        btn.style.setProperty('--c', familyColors[ing.family]);\n        btn.innerHTML = '\u003cspan class=\"aqr-li-name\"\u003e' + ing.label + '\u003c\/span\u003e';\n        btn.addEventListener('click', function() { focusIngredient(i); });\n        li.appendChild(btn);\n        listEl.appendChild(li);\n      }); } catch (e) {}\n\n      function clearAll() {\n        var inside = overlay.querySelectorAll('*');\n        for (var i = 0; i \u003c inside.length; i++) inside[i].classList.add('aqr-leaving');\n        var connSvg = document.querySelector('#aqr-carto \u003e svg.aqr-connector-svg');\n        if (connSvg) {\n          var conns = connSvg.querySelectorAll('*');\n          for (var i = 0; i \u003c conns.length; i++) conns[i].classList.add('aqr-leaving');\n        }\n        setTimeout(function() {\n          overlay.innerHTML = '';\n          if (connSvg) connSvg.innerHTML = '';\n        }, 420);\n      }\n\n      var currentIdx = 0;\n      var playing = true;\n      var autoTimer = null;\n\n      function focusIngredient(idx) {\n        currentIdx = ((idx % ingredients.length) + ingredients.length) % ingredients.length;\n        var ing = ingredients[currentIdx];\n        var color = familyColors[ing.family];\n\n        var items = document.querySelectorAll('#aqr-carto .aqr-list-item');\n        for (var i = 0; i \u003c items.length; i++) {\n          if (i === currentIdx) items[i].classList.add('aqr-active');\n          else items[i].classList.remove('aqr-active');\n        }\n        infoEl.classList.add('aqr-fading');\n        setTimeout(function() {\n          infoEl.style.setProperty('--c', color);\n          var actionsHtml = ing.targets.map(function(t, i) {\n            return '\u003cdiv class=\"aqr-action-row\"\u003e' +\n                     '\u003cdiv class=\"aqr-action-marker\"\u003e' + String.fromCharCode(65 + i) + '\u003c\/div\u003e' +\n                     '\u003cdiv class=\"aqr-action-content\"\u003e' +\n                       '\u003cdiv class=\"aqr-action-zone\"\u003e' + anchorLabels[t.anchor] + '\u003c\/div\u003e' +\n                       '\u003cdiv class=\"aqr-action-name\"\u003e' + t.action + '\u003c\/div\u003e' +\n                       '\u003cdiv class=\"aqr-action-benefit\"\u003e' + t.benefit + '\u003c\/div\u003e' +\n                     '\u003c\/div\u003e' +\n                   '\u003c\/div\u003e';\n          }).join('');\n          infoEl.innerHTML =\n            '\u003cdiv class=\"aqr-info-family\"\u003e' + families[ing.family] + '\u003c\/div\u003e' +\n            '\u003ch3 class=\"aqr-info-name\"\u003e' + ing.label + '\u003c\/h3\u003e' +\n            '\u003cdiv class=\"aqr-info-latin\"\u003e' + ing.latin + '\u003c\/div\u003e' +\n            '\u003cp class=\"aqr-info-desc\"\u003e' + ing.desc + '\u003c\/p\u003e' +\n            '\u003cdiv class=\"aqr-info-section\"\u003eActions ciblées\u003c\/div\u003e' +\n            actionsHtml;\n          infoEl.classList.remove('aqr-fading');\n        }, 300);\n\n        clearAll();\n        setTimeout(function() { drawTargets(ing); }, 450);\n        scheduleNext();\n      }\n\n      function ensureConnectorSvg() {\n        var carto = document.getElementById('aqr-carto');\n        \/\/ Recherche sans :scope pour compatibilite navigateurs anciens\n        var svg = null;\n        var children = carto.children;\n        for (var i = 0; i \u003c children.length; i++) {\n          if (children[i].tagName \u0026\u0026 children[i].tagName.toLowerCase() === 'svg' \u0026\u0026\n              children[i].classList \u0026\u0026 children[i].classList.contains('aqr-connector-svg')) {\n            svg = children[i];\n            break;\n          }\n        }\n        if (!svg) {\n          svg = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'svg');\n          svg.setAttribute('class', 'aqr-connector-svg');\n          carto.appendChild(svg);\n        }\n        return svg;\n      }\n\n      function getListItemAnchor(idx) {\n        var item = document.querySelectorAll('#aqr-carto .aqr-list-item')[idx];\n        var r = item.getBoundingClientRect();\n        var cRect = document.getElementById('aqr-carto').getBoundingClientRect();\n        return {\n          x: r.right - cRect.left,\n          y: r.top + r.height \/ 2 - cRect.top\n        };\n      }\n      function pctToCartoPx(px, py) {\n        var wRect = schemaWrap.getBoundingClientRect();\n        var cRect = document.getElementById('aqr-carto').getBoundingClientRect();\n        return {\n          x: (wRect.left - cRect.left) + (px \/ 100) * wRect.width,\n          y: (wRect.top - cRect.top) + (py \/ 225) * wRect.height\n        };\n      }\n\n      function pctToOverlayPx(px, py) {\n        var wRect = schemaWrap.getBoundingClientRect();\n        return { x: (px \/ 100) * wRect.width, y: (py \/ 225) * wRect.height };\n      }\n\n      function drawTargets(ing) {\n        var color = familyColors[ing.family];\n        var startPt = getListItemAnchor(currentIdx);\n        var connSvg = ensureConnectorSvg();\n\n        ing.targets.forEach(function(target, i) {\n          var anchor = anchors[target.anchor];\n          var endPtCarto = pctToCartoPx(anchor.x, anchor.y);\n          var delay = i * 280;\n\n          \/\/ Ligne courbe : coords en pixels du aqr-carto\n          var dx = endPtCarto.x - startPt.x;\n          var cp1x = startPt.x + dx * 0.4;\n          var cp1y = startPt.y;\n          var cp2x = startPt.x + dx * 0.6;\n          var cp2y = endPtCarto.y;\n          var d = 'M ' + startPt.x + ' ' + startPt.y +\n                  ' C ' + cp1x + ' ' + cp1y + ', ' + cp2x + ' ' + cp2y +\n                  ', ' + endPtCarto.x + ' ' + endPtCarto.y;\n          var connPath = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'path');\n          connPath.setAttribute('d', d);\n          connPath.setAttribute('class', 'aqr-conn-line');\n          connPath.style.setProperty('--c', color);\n          connPath.style.animationDelay = delay + 'ms';\n          connSvg.appendChild(connPath);\n\n          \/\/ IRRADIATION DORÉE — toujours identique sur chaque point\n          var cx = anchor.x;\n          var cy = anchor.y;\n\n          \/\/ 1. Halo doré flou central\n          var halo = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'circle');\n          halo.setAttribute('cx', cx);\n          halo.setAttribute('cy', cy);\n          halo.setAttribute('r', '5');\n          halo.setAttribute('class', 'aqr-star-halo');\n          halo.style.animationDelay = (delay + 500) + 'ms, ' + (delay + 1200) + 'ms';\n          overlay.appendChild(halo);\n\n          \/\/ 2. Anneaux d'irradiation qui se diffusent en boucle continue (4 décalés)\n          for (var r = 0; r \u003c 4; r++) {\n            var ring = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'circle');\n            ring.setAttribute('cx', cx);\n            ring.setAttribute('cy', cy);\n            ring.setAttribute('r', '3');\n            ring.setAttribute('class', 'aqr-star-ring');\n            ring.style.animationDelay = (delay + 600 + r * 800) + 'ms';\n            overlay.appendChild(ring);\n          }\n\n          \/\/ 3. Point coloré A\/B\/C avec sa lettre (par-dessus le doré)\n          var dot = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'circle');\n          dot.setAttribute('cx', cx);\n          dot.setAttribute('cy', cy);\n          dot.setAttribute('r', '2.6');\n          dot.setAttribute('class', 'aqr-marker-dot');\n          dot.style.setProperty('--c', color);\n          dot.style.animationDelay = (delay + 850) + 'ms';\n          overlay.appendChild(dot);\n\n          var txt = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'text');\n          txt.setAttribute('x', cx);\n          txt.setAttribute('y', cy);\n          txt.setAttribute('class', 'aqr-marker-text');\n          txt.textContent = String.fromCharCode(65 + i);\n          txt.style.animationDelay = (delay + 950) + 'ms';\n          overlay.appendChild(txt);\n        });\n      }\n\n      function scheduleNext() {\n        if (autoTimer) clearTimeout(autoTimer);\n        if (playing) autoTimer = setTimeout(function() { focusIngredient(currentIdx + 1); }, 6500);\n      }\n\n      var __started = false;\n      function start() {\n        if (__started) return; __started = true;\n        setTimeout(function() { try { focusIngredient(0); } catch (e) {} }, 200);\n      }\n      \/\/ Filets de securite multiples : l'image et la liste s'affichent toujours,\n      \/\/ et l'animation demarre des que possible quel que soit l'environnement.\n      try {\n        if (schemaImg \u0026\u0026 schemaImg.complete) start();\n        if (schemaImg) {\n          schemaImg.addEventListener('load', start);\n          schemaImg.addEventListener('error', start);\n        }\n      } catch (e) {}\n      if (document.readyState === 'complete') start();\n      else window.addEventListener('load', start);\n      setTimeout(start, 1500);\n\n      var resizeTimer = null;\n      function fullRedraw() {\n        overlay.innerHTML = '';\n        var connSvg = document.querySelector('#aqr-carto \u003e svg.aqr-connector-svg');\n        if (connSvg) connSvg.innerHTML = '';\n        \/\/ double rAF to wait for layout to stabilize\n        requestAnimationFrame(function() {\n          requestAnimationFrame(function() {\n            drawTargets(ingredients[currentIdx]);\n          });\n        });\n      }\n      window.addEventListener('resize', function() {\n        if (resizeTimer) clearTimeout(resizeTimer);\n        resizeTimer = setTimeout(fullRedraw, 200);\n      });\n      \/\/ ResizeObserver pour reagir aussi aux changements de taille du conteneur\n      if (typeof ResizeObserver !== 'undefined') {\n        var ro = new ResizeObserver(function() {\n          if (resizeTimer) clearTimeout(resizeTimer);\n          resizeTimer = setTimeout(fullRedraw, 200);\n        });\n        ro.observe(document.getElementById('aqr-carto'));\n      }\n    })();\n    \u003c\/script\u003e\u003cbr\u003e  \u003c\/div\u003e  \u003c!-- BLOCK 4: PROTOCOLS --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eProtocols \u0026amp; Suggestions for use\u003c\/h2\u003e  \u003c!-- Ready-to-use insert --\u003e  \u003cdiv style=\"margin: 0 0 12px; padding: 14px 18px; background: #f0f7ff; border-left: 3px solid #4a90d9; border-radius: 8px; font-size: 13px; line-height: 1.55;\"\u003e💡  \u003cstrong\u003eShake before use.\u003c\/strong\u003e Mousse \u003cstrong\u003eready to use\u003c\/strong\u003e, \u003cstrong\u003eno rinse\u003c\/strong\u003e — direct application to the pads, without water or dilution.\u003c\/div\u003e  \u003cdiv style=\"margin-top: 4px;\" class=\"aqr-proto-list\"\u003e  \u003cdetails open=\"\" class=\"aqr-proto-acc\"\u003e  \u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eApplication on the pads\u003c\/span\u003e  \u003cspan class=\"aqr-proto-plus\"\u003e\u003csvg stroke-linecap=\"round\" stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" height=\"14\" width=\"14\" viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M12 5 L12 19 M5 12 L19 12\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003c\/summary\u003e  \u003cdiv class=\"aqr-proto-content\"\u003e  \u003cp class=\"aqr-proto-subtitle\"\u003eA quick gesture after each walk or upon arrival at the salon\u003c\/p\u003e  \u003col class=\"aqr-proto-steps\"\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e  \u003cdiv class=\"aqr-proto-step-body\"\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eShake the bottle\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eShake the bottle well before each use to homogenize the foam.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e  \u003cdiv class=\"aqr-proto-step-body\"\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eGenerous application\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eApply \u003cstrong\u003egenerously applied the foam to the ends of the dirty pads\u003c\/strong\u003e,  without needing water.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e  \u003cdiv class=\"aqr-proto-step-body\"\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eWiping\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003eWipe with a \u003cstrong\u003eclean towel\u003c\/strong\u003e.  Leaves no trace on the ground — ready to go again immediately.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003cli class=\"aqr-proto-step\"\u003e  \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e  \u003cdiv class=\"aqr-proto-step-body\"\u003e  \u003cdiv class=\"aqr-proto-step-title\"\u003eKey Uses\u003c\/div\u003e  \u003cdiv class=\"aqr-proto-step-desc\"\u003e  \u003cstrong\u003eIn the living room\u003c\/strong\u003e,  upon the dog's arrival, to disinfect its paws and prevent the spread of external viruses. \u003cstrong\u003eAt the private residence\u003c\/strong\u003e,  upon returning from each daily walk.\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/li\u003e  \u003c\/ol\u003e  \u003c\/div\u003e  \u003c\/details\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c!-- BLOCK 5: ASSOCIATIONS \u0026  RACES --\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e  \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin: 0 0 10px; line-height: 1.4; display: block;\"\u003eRecommended Associations \u0026amp; Races\u003c\/h2\u003e  \u003c!-- Bee Mousse at the heart + modular supplements If... → Then --\u003e  \u003cdiv class=\"aqr-assoc\"\u003e  \u003cp class=\"aqr-assoc-intro\"\u003eCompatible with \u003cstrong\u003eall products in the Special One range\u003c\/strong\u003e,  without exception — it is a daily supplement independent of bathing.\u003c\/p\u003e  \u003cdiv class=\"aqr-assoc-rules\"\u003e  \u003cdiv class=\"aqr-assoc-rule\"\u003e  \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003eThe dog arrives at the grooming salon…\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003eDisinfect the paws with Bee Mousse before any other treatment\u003c\/strong\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-rule\"\u003e  \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003eback from a walk at the private residence…\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003eExpress application — no water, in 2 seconds\u003c\/strong\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-rule\"\u003e  \u003cdiv class=\"aqr-assoc-if\"\u003e  \u003cspan class=\"aqr-assoc-if-tag\"\u003eIF\u003c\/span\u003e  \u003cspan\u003eA full bath is then desired…\u003c\/span\u003e  \u003c\/div\u003e  \u003cdiv class=\"aqr-assoc-then\"\u003e  \u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e  \u003cstrong\u003eCompatible with all Special One shampoos\u003c\/strong\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-assoc, .aqr-assoc * { box-sizing: border-box; font-family: inherit; }\n      .aqr-assoc { margin-bottom: 24px; }\n      .aqr-assoc-intro {\n        font-size: 13px; color: #444; line-height: 1.5;\n        margin: 0 0 16px;\n      }\n      .aqr-assoc-rules {\n        display: flex; flex-direction: column;\n      }\n      .aqr-assoc-rule {\n        display: grid; grid-template-columns: 1fr 1.3fr;\n        gap: 18px; align-items: center;\n        padding: 16px 8px;\n        border-bottom: 1px dashed #d8d8d8;\n      }\n      .aqr-assoc-rule:last-child { border-bottom: none; }\n      .aqr-assoc-if {\n        display: flex; align-items: center; gap: 10px;\n        color: #888; font-size: 13px; font-style: italic;\n      }\n      .aqr-assoc-if-tag {\n        background: #1a1a1a; color: #F5E6B8;\n        padding: 3px 10px;\n        font-family: Georgia, \"Times New Roman\", serif; font-weight: 700;\n        font-size: 11px; letter-spacing: 0.05em;\n        font-style: normal;\n        flex-shrink: 0;\n      }\n      .aqr-assoc-then {\n        display: flex; align-items: center; gap: 10px;\n        font-size: 13px;\n      }\n      .aqr-assoc-then-arrow {\n        color: #D4AF37; font-size: 18px; font-weight: 700;\n        flex-shrink: 0;\n      }\n      .aqr-assoc-then strong { color: #1a1a1a; }\n      @media (max-width: 600px) {\n        .aqr-assoc-rule { grid-template-columns: 1fr; gap: 4px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e  \u003c!-- Races in rounded pills --\u003e  \u003ch3 style=\"font-size: 13px; font-weight: 600; color: #1a1a1a; margin: 0 0 12px;\"\u003eWhere Bee Mousse makes the difference:\u003c\/h3\u003e  \u003cdiv class=\"aqr-races-mosaic\"\u003e  \u003cspan class=\"aqr-race-tag\"\u003e🐶 All dogs \u003cspan\u003e(all races, all ages)\u003c\/span\u003e\u003c\/span\u003e  \u003cspan class=\"aqr-race-tag\"\u003e🏠 Trade shows \u0026amp; individuals \u003cspan\u003e(daily use independent of bathing)\u003c\/span\u003e\u003c\/span\u003e  \u003c\/div\u003e  \u003cp style=\"margin-top: 14px; font-size: 11px; color: #888; font-style: italic;\"\u003eA simple hygiene step to integrate into the daily routine — returning from a walk, arriving at the salon.\u003c\/p\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n      .aqr-races-mosaic {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 8px;\n      }\n      .aqr-race-tag {\n        display: inline-flex;\n        align-items: center;\n        gap: 6px;\n        background: #fff;\n        color: #1a1a1a;\n        padding: 9px 16px;\n        border-radius: 100px;\n        font-size: 12px;\n        font-weight: 600;\n        border: 1px solid #e5e5e5;\n        line-height: 1.3;\n      }\n      .aqr-race-tag span {\n        opacity: 0.6;\n        font-weight: 400;\n        font-size: 11px;\n      }\n      @media (max-width: 560px) {\n        .aqr-race-tag { font-size: 11px; padding: 8px 13px; }\n        .aqr-race-tag span { font-size: 10px; }\n      }\n    \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e  \u003cdiv style=\"margin-top: 30px; text-align: center; border-top: 1px solid #eee; padding-top: 20px;\"\u003e  \u003cp style=\"font-size: 11px; color: #888; text-transform: uppercase;\"\u003eBiodegradable +90% | SLES, DEA, Paraben, and Silicone Free | Not Tested on Animals | HDPE Recyclable\u003c\/p\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e","brand":"Petdesign.fr","offers":[{"title":"Default Title","offer_id":42162385223900,"sku":"WAQ-AQBEMO150 (139)","price":20.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/bee-mousse-150ml-special-coussinet-chien-chat.png?v=1793144956"},{"product_id":"baby-paw-parfum","title":"Baby Paw Fragrance","description":"\u003cp\u003e\u003cstrong\u003eBaby Paw\u003c\/strong\u003e est un parfum pour chien doux et gourmand qui rappelle l'enfance : il s'ouvre sur le citron, l'orange, la fraise et la framboise, puis laisse place aux fleurs blanches et à la vanille.\u003c\/p\u003e\n\u003ch2\u003eLes notes du parfum Baby Paw\u003c\/h2\u003e\n\u003cp\u003eSon sillage tendre évoque des biscuits tout juste sortis du four.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eNotes de tête : citron, orange, fraise, framboise\u003c\/li\u003e\n\u003cli\u003eNotes de fond : fleurs blanches, vanille\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eBien utiliser le parfum Baby Paw\u003c\/h2\u003e\n\u003cp\u003eVaporisez uniquement sur les poils de la queue et du dos, à 20 cm de distance. Deux pulvérisations suffisent. Ne pas vaporiser dans les yeux du chien et tenir hors de portée des enfants.\u003c\/p\u003e\n\u003ch2\u003eContenance et précautions\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFlacon de 100 ml\u003c\/li\u003e\n\u003cli\u003eContient de l'alcool (produit inflammable)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eVos questions sur Baby Paw\u003c\/h2\u003e\n\u003ch3\u003eOù appliquer le parfum ?\u003c\/h3\u003e\n\u003cp\u003eSur les poils de la queue et du dos, à 20 cm, jamais près des yeux.\u003c\/p\u003e\n\u003ch3\u003eCombien de pulvérisations faut-il ?\u003c\/h3\u003e\n\u003cp\u003eDeux suffisent.\u003c\/p\u003e","brand":"Petdesign.fr","offers":[{"title":"Default Title","offer_id":42890970464476,"sku":"(103)","price":46.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/baby-paw-parfum.png?v=1793145148"},{"product_id":"catalogue-special-one-download","title":"Petdesign Catalogue (paper or free downloadable version)","description":"\u003cp\u003e\u003ca href=\"https:\/\/bit.ly\/CataloguePetdesignFR\"\u003e✅​ Cliquez ici pour télécharger le fichier au format pdf\u003cspan style=\"font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif; font-size: 1.4em;\"\u003e \u003c\/span\u003e\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003eEn version papier : un seul catalogue par commande. \u003c\/p\u003e","brand":"Petdesign.fr","offers":[{"title":"Paper","offer_id":42928752885980,"sku":null,"price":0.0,"currency_code":"EUR","in_stock":false},{"title":"Computer Science","offer_id":42928752918748,"sku":"CAT-SO-2023","price":0.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/catalogue-petdesign-papier-ou-telechargeable-gratuitement.png?v=1793145148"},{"product_id":"towel-special-one","title":"Special One Towel","description":"Super Absorbent Iba \u003cbr\u003e The super absorbent Ibarñez wipe absorbs 50% more water than other towels, and much faster, thanks to its unique micropore technology. \u003cbr\u003e \u003cbr\u003e It also absorbs dirt. \u003cBr \u003e \u003cbr\u003e He is extra strong and ready to avoid tears. This can last for years with proper care. \u003cbr\u003e \u003cbr\u003e Very useful for the home, hairdressers, hunters, etc. \u003cbr\u003e \u003cbr\u003e It is especially useful for drying your pet's legs on cold days. rain before entering the house or the car. \u003cbr\u003e \u003cbr\u003e It rinses easily, is soft and fine. \u003cbr\u003e \u003cbr\u003e Indispensable in the case of the exhibitor. \u003cbr\u003e \u003cbr\u003e Size : 66 x 43 cm.","brand":"autre","offers":[{"title":"Gray","offer_id":46878927061337,"sku":"(442- Gris)","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"Black \u0026 White","offer_id":46878927094105,"sku":"(442- Noir)","price":15.0,"currency_code":"EUR","in_stock":true},{"title":"Pale pink","offer_id":54738656035161,"sku":"(442- Rose)","price":15.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/serviette-special-one.png?v=1793146318"},{"product_id":"aqua-beauty","title":"AQUA BEAUTY: two-phase anti-static, weighting, conditioning and detangling spray","description":"\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\n  \u003c!-- BLOC 1 : INTRO --\u003e\n  \u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e\n    \u003cdiv style=\"font-size: 1.1em; margin-bottom: 25px; border-left: 3px solid #1a1a1a; padding-left: 15px;\"\u003e\n      \u003cstrong\u003eAQUA BEAUTY\u003c\/strong\u003e est le spray conditionneur professionnel Special One qui se distingue par deux actions majeures : un \u003cstrong\u003edémêlage optimisé, aussi rapide qu'efficace\u003c\/strong\u003e, et un \u003cstrong\u003elissage \/ défrisage immédiat\u003c\/strong\u003e du pelage. On le retrouve dans la plupart des mallettes de toilettage.\n    \u003c\/div\u003e\n\n    \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin: 0 0 15px 0; display: block;\"\u003ePour qui est fait ce produit ?\u003c\/h2\u003e\n    \u003cp style=\"margin-bottom: 15px; font-size: 14px;\"\u003eDe la mallette du toiletteur professionnel à la brosse du particulier, il a sa place partout.\u003c\/p\u003e\n\n    \u003ctable style=\"width: 100%; border-collapse: separate; border-spacing: 5px; margin-left: -5px; table-layout: fixed;\"\u003e\n      \u003ctbody\u003e\n        \u003ctr\u003e\n          \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003eToiletteurs\u003c\/td\u003e\n          \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003eÉleveurs\u003c\/td\u003e\n          \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003eParticuliers\u003c\/td\u003e\n        \u003c\/tr\u003e\n        \u003ctr\u003e\n          \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003eCompétiteurs\u003c\/td\u003e\n          \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003eHandlers\u003c\/td\u003e\n          \u003ctd style=\"border: none; background: transparent;\"\u003e\u003c\/td\u003e\n        \u003c\/tr\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC RADAR : DIAGRAMME COSMÉTOLOGIQUE --\u003e\n  \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e\n    \u003cdiv id=\"so-radar-widget\" style=\"width:100%;max-width:480px;margin:0 auto;background:#fff;border:1px solid #e5e5e5;font-family:inherit;color:#1a1a1a;line-height:1.4;\"\u003e\n      \u003cdiv style=\"padding:24px 28px 20px;overflow:visible;\"\u003e\n        \u003cspan style=\"font-size:11px;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:#999;margin-bottom:22px;display:block;\"\u003eDiagramme cosmétologique de l'Aqua Beauty\u003c\/span\u003e\n        \u003cdiv id=\"so-radar-area\" style=\"position:relative;width:100%;max-width:340px;aspect-ratio:1;margin:0 auto;overflow:visible;\"\u003e\n          \u003csvg id=\"so-radar-svg\" style=\"width:100%;height:100%;overflow:visible;\" viewbox=\"0 0 360 360\"\u003e\u003c\/svg\u003e\n        \u003c\/div\u003e\n        \u003cdiv id=\"so-radar-footer\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cstyle\u003e\n    #so-radar-widget * { box-sizing: border-box; }\n    .so-label {\n      position: absolute;\n      transform: translate(-50%, -50%);\n      text-align: center;\n      pointer-events: none;\n      white-space: nowrap;\n      opacity: 0;\n      animation: so-fadeUp 0.5s ease forwards;\n    }\n    .so-label .so-lname {\n      font-size: 9px;\n      font-weight: 600;\n      text-transform: uppercase;\n      letter-spacing: 0.08em;\n      color: #999;\n      display: block;\n      margin-bottom: 1px;\n      font-family: inherit;\n    }\n    .so-label .so-lval {\n      font-size: 24px;\n      font-weight: 700;\n      color: #1a1a1a;\n      line-height: 1;\n      font-family: inherit;\n    }\n    .so-label .so-lmax {\n      font-size: 12px;\n      font-weight: 400;\n      color: #bbb;\n      font-family: inherit;\n    }\n    .so-footer-bar {\n      margin-top: 18px;\n      border-top: 1px solid #eee;\n      padding-top: 14px;\n      display: flex;\n      align-items: center;\n      flex-wrap: wrap;\n      gap: 6px;\n      opacity: 0;\n      animation: so-footerIn 0.5s ease forwards 0.8s;\n    }\n    .so-footer-label {\n      font-size: 9px;\n      font-weight: 700;\n      text-transform: uppercase;\n      letter-spacing: 0.1em;\n      color: #999;\n      font-family: inherit;\n      margin-right: 2px;\n    }\n    .so-footer-chip {\n      display: inline-flex;\n      align-items: center;\n      gap: 4px;\n      background: #1a1a1a;\n      padding: 4px 10px;\n      font-size: 11px;\n      font-weight: 600;\n      color: #fff;\n      font-family: inherit;\n    }\n    .so-footer-chip-score {\n      font-weight: 400;\n      color: rgba(255,255,255,0.4);\n      font-size: 10px;\n    }\n    .so-shape-fill   { opacity: 0; animation: so-shapeIn 0.9s ease forwards 0.2s; }\n    .so-shape-stroke { opacity: 0; animation: so-shapeIn 0.7s ease forwards 0.35s; }\n    .so-dot          { opacity: 0; animation: so-dotIn 0.35s ease forwards; }\n    @keyframes so-shapeIn  { to { opacity: 1; } }\n    @keyframes so-dotIn    { to { opacity: 1; } }\n    @keyframes so-footerIn { to { opacity: 1; } }\n    @keyframes so-fadeUp {\n      from { opacity: 0; transform: translate(-50%, calc(-50% + 6px)); }\n      to   { opacity: 1; transform: translate(-50%, -50%); }\n    }\n    @media (max-width: 480px) {\n      #so-radar-widget \u003e div { padding: 18px 16px 14px !important; }\n      #so-radar-area { max-width: 300px !important; }\n      .so-label .so-lname { font-size: 8px !important; letter-spacing: 0.05em !important; }\n      .so-label .so-lval  { font-size: 19px !important; }\n      .so-label .so-lmax  { font-size: 9px !important; }\n      .so-footer-chip { font-size: 10px !important; padding: 3px 8px !important; }\n      .so-footer-label { font-size: 8px !important; }\n    }\n    @media (max-width: 360px) {\n      #so-radar-area { max-width: 260px !important; }\n      .so-label .so-lval { font-size: 16px !important; }\n      .so-label .so-lname { font-size: 7px !important; }\n    }\n  \u003c\/style\u003e\n\n  \u003cscript\u003e\n  (function() {\n    var PRODUCT = {\n      criteria: [\n        { label: \"Brillance\",    value: 5 },\n        { label: \"Gainage\",      value: 5 },\n        { label: \"Volume\",       value: 1 },\n        { label: \"Hydratation\",  value: 4 },\n        { label: \"Démêlant\",     value: 5 }\n      ]\n    };\n\n    var svg  = document.getElementById(\"so-radar-svg\");\n    var area = document.getElementById(\"so-radar-area\");\n    var data = PRODUCT.criteria;\n    var n    = data.length;\n    var cx = 180, cy = 180, maxR = 95;\n\n    function ang(i) { return (Math.PI * 2 * i \/ n) - Math.PI \/ 2; }\n    function pt(i, v, mx) {\n      var a = ang(i), r = (v \/ mx) * maxR;\n      return { x: cx + r * Math.cos(a), y: cy + r * Math.sin(a) };\n    }\n    function svgEl(tag) { return document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", tag); }\n\n    for (var l = 1; l \u003c= 5; l++) {\n      var pts = [];\n      for (var i = 0; i \u003c n; i++) { var p = pt(i, l, 5); pts.push(p.x + \",\" + p.y); }\n      var poly = svgEl(\"polygon\");\n      poly.setAttribute(\"points\", pts.join(\" \"));\n      poly.setAttribute(\"fill\", \"none\");\n      poly.setAttribute(\"stroke\", l === 5 ? \"rgba(0,0,0,0.09)\" : \"rgba(0,0,0,0.04)\");\n      poly.setAttribute(\"stroke-width\", l === 5 ? \"1\" : \"0.6\");\n      if (l === 5) poly.setAttribute(\"stroke-dasharray\", \"3,3\");\n      svg.appendChild(poly);\n    }\n\n    for (var i = 0; i \u003c n; i++) {\n      var p = pt(i, 5, 5);\n      var line = svgEl(\"line\");\n      line.setAttribute(\"x1\", cx); line.setAttribute(\"y1\", cy);\n      line.setAttribute(\"x2\", p.x); line.setAttribute(\"y2\", p.y);\n      line.setAttribute(\"stroke\", \"rgba(0,0,0,0.04)\");\n      line.setAttribute(\"stroke-width\", \"0.6\");\n      svg.appendChild(line);\n    }\n\n    var shapePts = [];\n    for (var i = 0; i \u003c n; i++) {\n      var p = pt(i, data[i].value, 5);\n      shapePts.push(p.x + \",\" + p.y);\n    }\n    var ptsStr = shapePts.join(\" \");\n\n    var fillPoly = svgEl(\"polygon\");\n    fillPoly.setAttribute(\"points\", ptsStr);\n    fillPoly.setAttribute(\"fill\", \"rgba(0,0,0,0.04)\");\n    fillPoly.classList.add(\"so-shape-fill\");\n    svg.appendChild(fillPoly);\n\n    var strokePoly = svgEl(\"polygon\");\n    strokePoly.setAttribute(\"points\", ptsStr);\n    strokePoly.setAttribute(\"fill\", \"none\");\n    strokePoly.setAttribute(\"stroke\", \"#1a1a1a\");\n    strokePoly.setAttribute(\"stroke-width\", \"1.8\");\n    strokePoly.setAttribute(\"stroke-linejoin\", \"round\");\n    strokePoly.classList.add(\"so-shape-stroke\");\n    svg.appendChild(strokePoly);\n\n    for (var i = 0; i \u003c n; i++) {\n      (function(i) {\n        var d = data[i];\n        var p = pt(i, d.value, 5);\n        var delay = 0.5 + i * 0.1;\n\n        var halo = svgEl(\"circle\");\n        halo.setAttribute(\"cx\", p.x); halo.setAttribute(\"cy\", p.y);\n        halo.setAttribute(\"r\", \"7\");\n        halo.setAttribute(\"fill\", \"none\");\n        halo.setAttribute(\"stroke\", \"#1a1a1a\");\n        halo.setAttribute(\"stroke-width\", \"1\");\n        halo.setAttribute(\"stroke-opacity\", \"0.12\");\n        halo.classList.add(\"so-dot\");\n        halo.style.animationDelay = delay + \"s\";\n        svg.appendChild(halo);\n\n        var dot = svgEl(\"circle\");\n        dot.setAttribute(\"cx\", p.x); dot.setAttribute(\"cy\", p.y);\n        dot.setAttribute(\"r\", \"3\");\n        dot.setAttribute(\"fill\", \"#1a1a1a\");\n        dot.classList.add(\"so-dot\");\n        dot.style.animationDelay = delay + \"s\";\n        svg.appendChild(dot);\n\n        var lp = pt(i, 6.5, 5);\n        var pctX = (lp.x \/ 360) * 100;\n        var pctY = (lp.y \/ 360) * 100;\n\n        var lbl = document.createElement(\"div\");\n        lbl.className = \"so-label\";\n        lbl.style.left = pctX + \"%\";\n        lbl.style.top  = pctY + \"%\";\n        lbl.style.animationDelay = (0.4 + i * 0.1) + \"s\";\n        lbl.innerHTML =\n          '\u003cspan class=\"so-lname\"\u003e' + d.label + '\u003c\/span\u003e' +\n          '\u003cspan class=\"so-lval\"\u003e' + d.value + '\u003cspan class=\"so-lmax\"\u003e\/5\u003c\/span\u003e\u003c\/span\u003e';\n        area.appendChild(lbl);\n      })(i);\n    }\n\n    var maxVal = 0;\n    for (var i = 0; i \u003c n; i++) { if (data[i].value \u003e maxVal) maxVal = data[i].value; }\n    var bests = [];\n    for (var i = 0; i \u003c n; i++) { if (data[i].value === maxVal) bests.push(data[i]); }\n\n    var chipsHtml = '';\n    for (var i = 0; i \u003c bests.length; i++) {\n      chipsHtml +=\n        '\u003cspan class=\"so-footer-chip\"\u003e' +\n          bests[i].label +\n          '\u003cspan class=\"so-footer-chip-score\"\u003e' + bests[i].value + '\/5\u003c\/span\u003e' +\n        '\u003c\/span\u003e';\n    }\n\n    document.getElementById(\"so-radar-footer\").innerHTML =\n      '\u003cdiv class=\"so-footer-bar\"\u003e' +\n        '\u003cspan class=\"so-footer-label\"\u003e★ ' + (bests.length \u003e 1 ? 'Points forts' : 'Point fort') + '\u003c\/span\u003e' +\n        chipsHtml +\n      '\u003c\/div\u003e';\n  })();\n  \u003c\/script\u003e\n\n  \u003c!-- BLOC 2 : EXPERTISE \u0026 RÉSULTATS --\u003e\n  \u003cdiv style=\"padding: 30px 20px; background-color: #ffffff;\"\u003e\n    \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin: 0 0 15px 0; display: block;\"\u003eExpertise \u0026amp; Résultats\u003c\/h2\u003e\n\n    \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eAqua Beauty agit sur le pelage comme un \u003cstrong\u003epuissant agent restructurant et hydratant\u003c\/strong\u003e. Il protège aussi bien la fourrure négligée qui arrive au salon que le manteau très sollicité d'un chien d'exposition. Quelques pulvérisations et le poil redevient glissant, détendu, lisse.\u003c\/p\u003e\n\n    \u003cdiv style=\"background: #f6f6f6; padding: 20px; border: 1px solid #e5e5e5; margin-top: 20px;\"\u003e\n      \u003cul style=\"padding-left: 20px; margin: 0; font-size: 14px; list-style-type: disc;\"\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e\n\u003cstrong\u003eLissage \u0026amp; défrisage :\u003c\/strong\u003e les ondulations et les frisottis disparaissent tout de suite.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e\n\u003cstrong\u003eConditioning intense :\u003c\/strong\u003e il gaine, protège et conditionne fortement le poil.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e\n\u003cstrong\u003eDémêlage rapide :\u003c\/strong\u003e il défait les nœuds, même à sec.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e\n\u003cstrong\u003eAnti-électricité statique :\u003c\/strong\u003e plus d'électricité statique, le brossage devient fluide.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e\n\u003cstrong\u003eHydratation :\u003c\/strong\u003e il apporte eau et souplesse à la fibre, en profondeur.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e\n\u003cstrong\u003eAnti-casse :\u003c\/strong\u003e le poil résiste mieux et casse moins.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e\n\u003cstrong\u003eAnti-nœuds durables :\u003c\/strong\u003e les nœuds reviennent nettement moins vite entre deux bains.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e\n\u003cstrong\u003eBrushing facilité :\u003c\/strong\u003e le poil glisse et se détend, même quand il accroche en début de séchage.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e\n\u003cstrong\u003eRéparateur :\u003c\/strong\u003e il répare les dégâts du vent, de la pollution et du séchage intensif.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eNon gras :\u003c\/strong\u003e contrairement aux huiles, il démêle sans graisser. Vous pouvez l'utiliser avant le bain sans risque de mauvais rinçage ni de tache sur les robes blanches.\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 3 : ACTIFS --\u003e\n  \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e\n    \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin: 0 0 15px 0; display: block;\"\u003eSynergie d'Actifs Naturels\u003c\/h2\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eUne formule naturelle qui restructure, hydrate et fait briller, sans parabens.\u003c\/p\u003e\n\n    \u003ctable style=\"width: 100%; border-collapse: separate; border-spacing: 8px; margin-left: -8px;\"\u003e\n      \u003ctbody\u003e\n        \u003ctr\u003e\n          \u003ctd style=\"width: 50%; border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e\n            \u003cstrong\u003eExtrait d'Orchidée\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eRiche en minéraux et polysaccharides : hydratant, adoucissant, régénérant. Il donne au poil un toucher velouté et élastique.\u003c\/span\u003e\n          \u003c\/td\u003e\n          \u003ctd style=\"width: 50%; border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e\n            \u003cstrong\u003eTulipe Africaine (Spathodea campanulata)\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eRiche en flavonoïdes, anthocyanes et triterpénoïdes aux propriétés antioxydantes, astringentes et apaisantes. Illumine le manteau, répare les dommages causés par le vent, la pollution et le séchage au sèche-cheveux.\u003c\/span\u003e\n          \u003c\/td\u003e\n        \u003c\/tr\u003e\n        \u003ctr\u003e\n          \u003ctd style=\"border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e\n            \u003cstrong\u003eProtéines Hydrolysées de Blé\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eTrès bon effet antistatique et filmant, sans graisser le poil. Ordonne les manteaux légers et fins, évite l'effet \"volant\" sans alourdir ni tacher.\u003c\/span\u003e\n          \u003c\/td\u003e\n          \u003ctd style=\"border: none; background: transparent;\"\u003e\u003c\/td\u003e\n        \u003c\/tr\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 4 : PROTOCOLES --\u003e\n  \u003cdiv style=\"padding: 30px 20px; background-color: #ffffff;\"\u003e\n    \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin: 0 0 15px 0; display: block;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/h2\u003e\n\n    \u003cdiv style=\"margin-bottom: 15px; padding: 12px 15px; background: #f6f6f6; border: 1px solid #e5e5e5; font-size: 13px; font-weight: 600;\"\u003e\n      💡 Mode d'emploi de base : vaporiser à \u003cstrong\u003e20 ou 30 cm\u003c\/strong\u003e du poil, puis brosser ou peigner.\n    \u003c\/div\u003e\n\n    \u003cdetails style=\"border: 1px solid #e5e5e5; background: #fff; margin-bottom: 10px;\"\u003e\n      \u003csummary style=\"padding: 15px; cursor: pointer; font-weight: 600; display: flex; justify-content: space-between; background-color: #fafafa; font-size: 14px;\"\u003e\n        \u003cspan\u003eExemple 1 🔥 Brossage quotidien entre les bains\u003c\/span\u003e\n        \u003cspan style=\"font-size: 10px; color: #888;\"\u003eDÉROULER ▼\u003c\/span\u003e\n      \u003c\/summary\u003e\n      \u003cdiv style=\"padding: 15px; border-top: 1px solid #eee; font-size: 13px; line-height: 1.8;\"\u003e\n        Entre deux bains, Aqua Beauty \u003cstrong\u003efacilite chaque brossage\u003c\/strong\u003e. Vaporisez sur le manteau sec ou légèrement humidifié, à 20 ou 30 cm.\u003cbr\u003e\n        Brossez section par section. Le poil se lisse, se détend et retrouve son éclat naturel sans aucun rinçage. Résultat immédiat, manipulation rapide.\u003cbr\u003e\u003cbr\u003e\n        \u003cstrong\u003e💡 Finition franges Spaniel :\u003c\/strong\u003e vaporisez directement sur les franges et peignez pour les modeler : c'est la dernière touche avant une exposition.\n      \u003c\/div\u003e\n    \u003c\/details\u003e\n\n    \u003cdetails style=\"border: 1px solid #e5e5e5; background: #fff; margin-bottom: 10px;\"\u003e\n      \u003csummary style=\"padding: 15px; cursor: pointer; font-weight: 600; display: flex; justify-content: space-between; background-color: #fafafa; font-size: 14px;\"\u003e\n        \u003cspan\u003eExemple 2 🔥 Démêlage à sec : nœuds \u0026amp; fourrures accrochantes\u003c\/span\u003e\n        \u003cspan style=\"font-size: 10px; color: #888;\"\u003eDÉROULER ▼\u003c\/span\u003e\n      \u003c\/summary\u003e\n      \u003cdiv style=\"padding: 15px; border-top: 1px solid #eee; font-size: 13px; line-height: 1.8;\"\u003e\n        Sur les zones à nœuds ou lorsque le poil accroche en début de séchage :\u003cbr\u003e\n        1. Vaporisez Aqua Beauty directement sur la zone concernée, à 20 ou 30 cm.\u003cbr\u003e\n        2. Laissez pénétrer quelques secondes.\u003cbr\u003e\n        3. Démêlez à la main ou au peigne, puis finissez à la brosse. Le poil devient \u003cstrong\u003eglissant et détendu\u003c\/strong\u003e, le démêlage s'effectue sans douleur ni casse.\n      \u003c\/div\u003e\n    \u003c\/details\u003e\n\n    \u003cdetails style=\"border: 1px solid #e5e5e5; background: #fff; margin-bottom: 10px;\"\u003e\n      \u003csummary style=\"padding: 15px; cursor: pointer; font-weight: 600; display: flex; justify-content: space-between; background-color: #fafafa; font-size: 14px;\"\u003e\n        \u003cspan\u003eExemple 3 🔥 Finition après bain : séchage \u0026amp; brushing\u003c\/span\u003e\n        \u003cspan style=\"font-size: 10px; color: #888;\"\u003eDÉROULER ▼\u003c\/span\u003e\n      \u003c\/summary\u003e\n      \u003cdiv style=\"padding: 15px; border-top: 1px solid #eee; font-size: 13px; line-height: 1.8;\"\u003e\n        Aqua Beauty trouve sa place en \u003cstrong\u003efinition après le bain\u003c\/strong\u003e, en complément de l'Hydrating Cream ou du Bio Energy :\u003cbr\u003e\n        1. Une fois le poil partiellement séché, vaporisez Aqua Beauty sur l'ensemble du manteau.\u003cbr\u003e\n        2. Brossez section par section en continuant le séchage au sèche-cheveux.\u003cbr\u003e\n        Le poil se lisse, l'électricité statique disparaît et le brushing final devient bien plus simple.\n      \u003c\/div\u003e\n    \u003c\/details\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 5 : ASSOCIATIONS \u0026 RACES --\u003e\n  \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e\n    \u003ch2 style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin: 0 0 15px 0; display: block;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/h2\u003e\n\n    \u003cp style=\"font-size: 13px; margin-bottom: 15px;\"\u003eToute la gamme Special One est compatible avec Aqua Beauty. Nos associations préférées :\u003c\/p\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003e\n      \u003cstrong\u003eHydrating Cream \u0026amp; Bio Energy Plus\u003c\/strong\u003e en après-shampoing : l'un conditionne, Aqua Beauty lisse.\n    \u003c\/p\u003e\n\n    \u003ctable style=\"width: 100%; border-collapse: collapse; font-size: 13px; margin-top: 5px;\"\u003e\n      \u003ctbody\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ \u003cstrong\u003eToutes les races, sans exception\u003c\/strong\u003e : il convient à tous les types de manteaux.\u003c\/td\u003e\u003c\/tr\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ \u003cstrong\u003eMaltais\u003c\/strong\u003e : poil fin, électrostatique, sujet aux nœuds et aux taches d'huile sur robe blanche. Aqua Beauty répond précisément à ces contraintes. Le \"conditionneur des Maltais\".\u003c\/td\u003e\u003c\/tr\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Fourrures soyeuses et longues (Yorkshire, Afghans, Cockers, Setters) : lissage et brillance remarquables.\u003c\/td\u003e\u003c\/tr\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Caniches : il allège et ordonne le manteau sans le friser (à la différence d'Absolute 4Poodle, qui lui est dédié au volume).\u003c\/td\u003e\u003c\/tr\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Fourrures doubles (Bergers, Golden, Spitz) : démêlage facilité entre les bains.\u003c\/td\u003e\u003c\/tr\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0;\"\u003e✔️ Chiens d'exposition : protection renforcée des manteaux très sollicités, finition impeccable.\u003c\/td\u003e\u003c\/tr\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n\n    \u003cdiv style=\"margin-top: 30px; text-align: center; border-top: 1px solid #eee; padding-top: 20px;\"\u003e\n      \u003cp style=\"font-size: 11px; color: #888; text-transform: uppercase;\"\u003eBiodégradable à plus de 90 % | Sans Paraben | Non testé sur les animaux | PEHD02 Recyclable\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Endemik Sas","offers":[{"title":"250 mL","offer_id":48523070013785,"sku":"WAQ-AQBE250 (30)","price":44.0,"currency_code":"EUR","in_stock":true},{"title":"1 Litre","offer_id":57210605470041,"sku":"(17)","price":103.5,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/aqua-beauty-spray-bi-phase-anti-statique-plombant-gainant-demelant.png?v=1793146575"},{"product_id":"villanelle-special-one-masque-apres-shampoing","title":"VILLANELLE, Ultra-Detangling \u0026 Quick-Drying Cream","description":"\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e  \u003cdiv style=\"font-size: 1.1em; margin-bottom: 25px; border-left: 3px solid #1a1a1a; padding-left: 15px;\"\u003e  \u003cstrong\u003eVILLANELLE\u003c\/strong\u003e is Special One's new \u0026quot;Ultra-Detangling\u0026quot; treatment. Designed to dissolve even the most critical matting, it reduces up to \u003cstrong\u003e40% drying time\u003c\/strong\u003e while protecting the hair from heat stress.\u003c\/div\u003e  \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eWho is this product for?\u003c\/span\u003e  \u003cp style=\"margin-bottom: 15px; font-size: 14px;\"\u003eEssential for efficiency and saving time! It's the go-to product for complex dematting and massive removal of dead hair.\u003c\/p\u003e  \u003ctable style=\"width: 100%; border-collapse: separate; border-spacing: 5px; margin-left: -5px; table-layout: fixed;\"\u003e  \u003ctbody\u003e  \u003ctr\u003e  \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003e✅ Groomers\u003c\/td\u003e  \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003e✅ Livestock farmers\u003c\/td\u003e  \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003e✅ Individuals\u003c\/td\u003e  \u003c\/tr\u003e  \u003ctr\u003e  \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003e✅ Competitors\u003c\/td\u003e  \u003ctd style=\"border: 1px solid #e5e5e5; padding: 10px 5px; text-align: center; background: #fff; font-size: 11px; white-space: nowrap;\"\u003e✅ Handlers\u003c\/td\u003e  \u003ctd style=\"border: none; background: transparent;\"\u003e\u003c\/td\u003e  \u003c\/tr\u003e  \u003c\/tbody\u003e  \u003c\/table\u003e  \u003c\/div\u003e  \u003c!-- RADAR BLOCK: COSMETOLOGICAL DIAGRAM --\u003e  \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e  \u003cdiv style=\"width: 100%; max-width: 480px; margin: 0 auto; background: #fff; border: 1px solid #e5e5e5; font-family: inherit; color: #1a1a1a; line-height: 1.4;\" id=\"so-radar-widget\"\u003e  \u003cdiv style=\"padding: 24px 28px 20px; overflow: visible;\"\u003e  \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 22px; display: block;\"\u003eVillanelle cosmetic diagram\u003c\/span\u003e  \u003cdiv style=\"position: relative; width: 100%; max-width: 340px; aspect-ratio: 1; margin: 0 auto; overflow: visible;\" id=\"so-radar-area\"\u003e\u003csvg viewbox=\"0 0 360 360\" style=\"width: 100%; height: 100%; overflow: visible;\" id=\"so-radar-svg\"\u003e\u003c\/svg\u003e\u003c\/div\u003e  \u003cdiv id=\"so-radar-footer\"\u003e\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cstyle\u003e\n    #so-radar-widget * { box-sizing: border-box; }\n    .so-label {\n      position: absolute;\n      transform: translate(-50%, -50%);\n      text-align: center;\n      pointer-events: none;\n      white-space: nowrap;\n      opacity: 0;\n      animation: so-fadeUp 0.5s ease forwards;\n    }\n    .so-label .so-lname {\n      font-size: 9px;\n      font-weight: 600;\n      text-transform: uppercase;\n      letter-spacing: 0.08em;\n      color: #999;\n      display: block;\n      margin-bottom: 1px;\n      font-family: inherit;\n    }\n    .so-label .so-lval {\n      font-size: 24px;\n      font-weight: 700;\n      color: #1a1a1a;\n      line-height: 1;\n      font-family: inherit;\n    }\n    .so-label .so-lmax {\n      font-size: 12px;\n      font-weight: 400;\n      color: #bbb;\n      font-family: inherit;\n    }\n    .so-footer-bar {\n      margin-top: 18px;\n      border-top: 1px solid #eee;\n      padding-top: 14px;\n      display: flex;\n      align-items: center;\n      flex-wrap: wrap;\n      gap: 6px;\n      opacity: 0;\n      animation: so-footerIn 0.5s ease forwards 0.8s;\n    }\n    .so-footer-label {\n      font-size: 9px;\n      font-weight: 700;\n      text-transform: uppercase;\n      letter-spacing: 0.1em;\n      color: #999;\n      font-family: inherit;\n      margin-right: 2px;\n    }\n    .so-footer-chip {\n      display: inline-flex;\n      align-items: center;\n      gap: 4px;\n      background: #1a1a1a;\n      padding: 4px 10px;\n      font-size: 11px;\n      font-weight: 600;\n      color: #fff;\n      font-family: inherit;\n    }\n    .so-footer-chip-score {\n      font-weight: 400;\n      color: rgba(255,255,255,0.4);\n      font-size: 10px;\n    }\n    .so-shape-fill   { opacity: 0; animation: so-shapeIn 0.9s ease forwards 0.2s; }\n    .so-shape-stroke { opacity: 0; animation: so-shapeIn 0.7s ease forwards 0.35s; }\n    .so-dot          { opacity: 0; animation: so-dotIn 0.35s ease forwards; }\n    @keyframes so-shapeIn  { to { opacity: 1; } }\n    @keyframes so-dotIn    { to { opacity: 1; } }\n    @keyframes so-footerIn { to { opacity: 1; } }\n    @keyframes so-fadeUp {\n      from { opacity: 0; transform: translate(-50%, calc(-50% + 6px)); }\n      to   { opacity: 1; transform: translate(-50%, -50%); }\n    }\n    @media (max-width: 480px) {\n      #so-radar-widget \u003e div { padding: 18px 16px 14px !important; }\n      #so-radar-area { max-width: 300px !important; }\n      .so-label .so-lname { font-size: 8px !important; letter-spacing: 0.05em !important; }\n      .so-label .so-lval  { font-size: 19px !important; }\n      .so-label .so-lmax  { font-size: 9px !important; }\n      .so-footer-chip { font-size: 10px !important; padding: 3px 8px !important; }\n      .so-footer-label { font-size: 8px !important; }\n    }\n    @media (max-width: 360px) {\n      #so-radar-area { max-width: 260px !important; }\n      .so-label .so-lval { font-size: 16px !important; }\n      .so-label .so-lname { font-size: 7px !important; }\n    }\n  \u003c\/style\u003e  \u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e  \u003cscript\u003e\n  (function() {\n    var PRODUCT = {\n      criteria: [\n        { label: \"Hydratation\",  value: 5 },\n        { label: \"Brillance\",    value: 4 },\n        { label: \"Soin peau\",    value: 3 },\n        { label: \"Volume\",       value: 4 },\n        { label: \"Démêlant\",     value: 5 }\n      ]\n    };\n\n    var svg  = document.getElementById(\"so-radar-svg\");\n    var area = document.getElementById(\"so-radar-area\");\n    var data = PRODUCT.criteria;\n    var n    = data.length;\n    var cx = 180, cy = 180, maxR = 95;\n\n    function ang(i) { return (Math.PI * 2 * i \/ n) - Math.PI \/ 2; }\n    function pt(i, v, mx) {\n      var a = ang(i), r = (v \/ mx) * maxR;\n      return { x: cx + r * Math.cos(a), y: cy + r * Math.sin(a) };\n    }\n    function svgEl(tag) { return document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", tag); }\n\n    for (var l = 1; l \u003c= 5; l++) {\n      var pts = [];\n      for (var i = 0; i \u003c n; i++) { var p = pt(i, l, 5); pts.push(p.x + \",\" + p.y); }\n      var poly = svgEl(\"polygon\");\n      poly.setAttribute(\"points\", pts.join(\" \"));\n      poly.setAttribute(\"fill\", \"none\");\n      poly.setAttribute(\"stroke\", l === 5 ? \"rgba(0,0,0,0.09)\" : \"rgba(0,0,0,0.04)\");\n      poly.setAttribute(\"stroke-width\", l === 5 ? \"1\" : \"0.6\");\n      if (l === 5) poly.setAttribute(\"stroke-dasharray\", \"3,3\");\n      svg.appendChild(poly);\n    }\n\n    for (var i = 0; i \u003c n; i++) {\n      var p = pt(i, 5, 5);\n      var line = svgEl(\"line\");\n      line.setAttribute(\"x1\", cx); line.setAttribute(\"y1\", cy);\n      line.setAttribute(\"x2\", p.x); line.setAttribute(\"y2\", p.y);\n      line.setAttribute(\"stroke\", \"rgba(0,0,0,0.04)\");\n      line.setAttribute(\"stroke-width\", \"0.6\");\n      svg.appendChild(line);\n    }\n\n    var shapePts = [];\n    for (var i = 0; i \u003c n; i++) {\n      var p = pt(i, data[i].value, 5);\n      shapePts.push(p.x + \",\" + p.y);\n    }\n    var ptsStr = shapePts.join(\" \");\n\n    var fillPoly = svgEl(\"polygon\");\n    fillPoly.setAttribute(\"points\", ptsStr);\n    fillPoly.setAttribute(\"fill\", \"rgba(0,0,0,0.04)\");\n    fillPoly.classList.add(\"so-shape-fill\");\n    svg.appendChild(fillPoly);\n\n    var strokePoly = svgEl(\"polygon\");\n    strokePoly.setAttribute(\"points\", ptsStr);\n    strokePoly.setAttribute(\"fill\", \"none\");\n    strokePoly.setAttribute(\"stroke\", \"#1a1a1a\");\n    strokePoly.setAttribute(\"stroke-width\", \"1.8\");\n    strokePoly.setAttribute(\"stroke-linejoin\", \"round\");\n    strokePoly.classList.add(\"so-shape-stroke\");\n    svg.appendChild(strokePoly);\n\n    for (var i = 0; i \u003c n; i++) {\n      (function(i) {\n        var d = data[i];\n        var p = pt(i, d.value, 5);\n        var delay = 0.5 + i * 0.1;\n\n        var halo = svgEl(\"circle\");\n        halo.setAttribute(\"cx\", p.x); halo.setAttribute(\"cy\", p.y);\n        halo.setAttribute(\"r\", \"7\");\n        halo.setAttribute(\"fill\", \"none\");\n        halo.setAttribute(\"stroke\", \"#1a1a1a\");\n        halo.setAttribute(\"stroke-width\", \"1\");\n        halo.setAttribute(\"stroke-opacity\", \"0.12\");\n        halo.classList.add(\"so-dot\");\n        halo.style.animationDelay = delay + \"s\";\n        svg.appendChild(halo);\n\n        var dot = svgEl(\"circle\");\n        dot.setAttribute(\"cx\", p.x); dot.setAttribute(\"cy\", p.y);\n        dot.setAttribute(\"r\", \"3\");\n        dot.setAttribute(\"fill\", \"#1a1a1a\");\n        dot.classList.add(\"so-dot\");\n        dot.style.animationDelay = delay + \"s\";\n        svg.appendChild(dot);\n\n        var lp = pt(i, 6.5, 5);\n        var pctX = (lp.x \/ 360) * 100;\n        var pctY = (lp.y \/ 360) * 100;\n\n        var lbl = document.createElement(\"div\");\n        lbl.className = \"so-label\";\n        lbl.style.left = pctX + \"%\";\n        lbl.style.top  = pctY + \"%\";\n        lbl.style.animationDelay = (0.4 + i * 0.1) + \"s\";\n        lbl.innerHTML =\n          '\u003cspan class=\"so-lname\"\u003e' + d.label + '\u003c\/span\u003e' +\n          '\u003cspan class=\"so-lval\"\u003e' + d.value + '\u003cspan class=\"so-lmax\"\u003e\/5\u003c\/span\u003e\u003c\/span\u003e';\n        area.appendChild(lbl);\n      })(i);\n    }\n\n    var maxVal = 0;\n    for (var i = 0; i \u003c n; i++) { if (data[i].value \u003e maxVal) maxVal = data[i].value; }\n    var bests = [];\n    for (var i = 0; i \u003c n; i++) { if (data[i].value === maxVal) bests.push(data[i]); }\n\n    var chipsHtml = '';\n    for (var i = 0; i \u003c bests.length; i++) {\n      chipsHtml +=\n        '\u003cspan class=\"so-footer-chip\"\u003e' +\n          bests[i].label +\n          '\u003cspan class=\"so-footer-chip-score\"\u003e' + bests[i].value + '\/5\u003c\/span\u003e' +\n        '\u003c\/span\u003e';\n    }\n\n    document.getElementById(\"so-radar-footer\").innerHTML =\n      '\u003cdiv class=\"so-footer-bar\"\u003e' +\n        '\u003cspan class=\"so-footer-label\"\u003e★ ' + (bests.length \u003e 1 ? 'Points forts' : 'Point fort') + '\u003c\/span\u003e' +\n        chipsHtml +\n      '\u003c\/div\u003e';\n  })();\n  \u003c\/script\u003e  \u003cdiv style=\"padding: 30px 20px; background-color: #ffffff;\"\u003e  \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eExpertise \u0026amp; Results\u003c\/span\u003e  \u003cp style=\"font-size: 14px;\"\u003eThanks to \u003cstrong\u003einnovative volatile assets\u003c\/strong\u003e,  Villanelle binds to excess moisture to promote its rapid evaporation, thus limiting the hair's exposure to the heat of the dryer.\u003c\/p\u003e  \u003cdiv style=\"background: #f6f6f6; padding: 20px; border: 1px solid #e5e5e5; margin-top: 20px;\"\u003e  \u003cul style=\"padding-left: 20px; margin: 0; font-size: 14px; list-style-type: none;\"\u003e  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003eExpress Detangler:\u003c\/strong\u003e Penetrates and dissolves knots and felt painlessly.\u003c\/li\u003e  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003eQuick Drying:\u003c\/strong\u003e Unique drying acceleration technology.\u003c\/li\u003e  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003eAnti-molt:\u003c\/strong\u003e Ideal for dead hair removal protocols.\u003c\/li\u003e  \u003cli style=\"margin-bottom: 8px;\"\u003e✅  \u003cstrong\u003ePerfect texture:\u003c\/strong\u003e A rich consistency that leaves the hair silky and light.\u003c\/li\u003e  \u003cli\u003e✅  \u003cstrong\u003eVitality:\u003c\/strong\u003e Strengthens the fiber and protects against external aggressions.\u003c\/li\u003e  \u003c\/ul\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e  \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eSynergy of Natural Active Ingredients\u003c\/span\u003e  \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eA high-quality formulation combining intense nutrition and absolute lightness.\u003c\/p\u003e  \u003ctable style=\"width: 100%; border-collapse: separate; border-spacing: 8px; margin-left: -8px;\"\u003e  \u003ctbody\u003e  \u003ctr\u003e  \u003ctd style=\"width: 50%; border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e  \u003cstrong\u003e🍀 Shea Butter\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 11px; color: #666;\"\u003eIntensely nourishes, provides softness and a penetrating texture.\u003c\/span\u003e  \u003c\/td\u003e  \u003ctd style=\"width: 50%; border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e  \u003cstrong\u003e🍀 Organic Cotton Oil\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 11px; color: #666;\"\u003eVolume, suppleness and antioxidant protection (Vitamin E).\u003c\/span\u003e  \u003c\/td\u003e  \u003c\/tr\u003e  \u003ctr\u003e  \u003ctd style=\"border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e  \u003cstrong\u003e🍀 Provitamin B5\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 11px; color: #666;\"\u003eDeeply hydrates and revitalizes elastic fibers.\u003c\/span\u003e  \u003c\/td\u003e  \u003ctd style=\"border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e  \u003cstrong\u003e🍀 Asian Zedoary\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 11px; color: #666;\"\u003eAn ancient cousin of turmeric \u003cem\u003e(Curcuma Zedoaria)\u003c\/em\u003e.  Its essential oil purifies and tones the hair.\u003c\/span\u003e  \u003c\/td\u003e  \u003c\/tr\u003e  \u003c\/tbody\u003e  \u003c\/table\u003e  \u003c!-- ZEDOARY STORYTELLING INSERT --\u003e  \u003cdiv style=\"margin-top: 25px; padding: 22px 24px; background: #fff; border-left: 3px solid #1a1a1a;\"\u003e  \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 12px; display: block;\"\u003e🌺 Villanelle's secret\u003c\/span\u003e  \u003cp style=\"font-size: 14px; margin: 0 0 10px 0;\"\u003e\u003cstrong\u003eZedoary, a botanical treasure of Ayurvedic traditions\u003c\/strong\u003e\u003c\/p\u003e  \u003cp style=\"font-size: 13px; margin: 0; color: #444; line-height: 1.65;\"\u003eA golden root native to the forests of India and Indonesia, the \u003cstrong\u003eZedoary\u003c\/strong\u003e  \u003cem\u003e(Curcuma Zedoaria)\u003c\/em\u003e It has been used for over 2,000 years in Ayurvedic medicine for its purifying and regenerative properties. Rarer and more precious than its famous cousin turmeric, it is nicknamed the \u003cem\u003e\u0026quot;White turmeric of the rajahs\u0026quot;\u003c\/em\u003e.\u003cbr\u003e\u003c\/p\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv style=\"padding: 30px 20px; background-color: #ffffff;\"\u003e  \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eProtocols \u0026amp; Suggestions for use\u003c\/span\u003e  \u003cdetails style=\"border: 1px solid #e5e5e5; background: #fff; margin-bottom: 10px;\"\u003e  \u003csummary style=\"padding: 15px; cursor: pointer; font-weight: 600; display: flex; justify-content: space-between; background-color: #fafafa; font-size: 14px;\"\u003e\u003cspan\u003eExample 1 🔥 Shock detangling \u0026amp; Record drying\u003c\/span\u003e  \u003cspan style=\"font-size: 10px; color: #888;\"\u003eSCROLL DOWN ▼\u003c\/span\u003e\u003c\/summary\u003e  \u003cdiv style=\"padding: 15px; border-top: 1px solid #eee; font-size: 13px; line-height: 1.5;\"\u003eAfter shampooing, on towel-dried hair:\u003cbr\u003e1. Dilute \u003cstrong\u003e1 tbsp\u003c\/strong\u003e in 1L of lukewarm water.\u003cbr\u003e2. Pour the emulsion onto the coat and let it work. \u003cstrong\u003e5 minutes\u003c\/strong\u003e.\u003cbr\u003e3. Rinse gently. The drying accelerator effect is immediately activated.\u003c\/div\u003e  \u003c\/details\u003e  \u003cdetails style=\"border: 1px solid #e5e5e5; background: #fff; margin-bottom: 10px;\"\u003e  \u003csummary style=\"padding: 15px; cursor: pointer; font-weight: 600; display: flex; justify-content: space-between; background-color: #fafafa; font-size: 14px;\"\u003e\u003cspan\u003eExample 2 🔥 Emergency treatment (Knots) \u0026amp; Molt)\u003c\/span\u003e  \u003cspan style=\"font-size: 10px; color: #888;\"\u003eSCROLL DOWN ▼\u003c\/span\u003e\u003c\/summary\u003e  \u003cdiv style=\"padding: 15px; border-top: 1px solid #eee; font-size: 13px; line-height: 1.5;\"\u003eFor soft-touch areas or \u003cstrong\u003ethe removal of dead hair\u003c\/strong\u003e :\u003cbr\u003eApply a small amount of pure cream directly to the knots or molting clumps. Massage to allow the buttery texture to penetrate. Leave on for 5 minutes, brush if necessary, then rinse thoroughly.\u003c\/div\u003e  \u003c\/details\u003e  \u003cdetails style=\"border: 1px solid #e5e5e5; background: #fff; margin-bottom: 10px;\"\u003e  \u003csummary style=\"padding: 15px; cursor: pointer; font-weight: 600; display: flex; justify-content: space-between; background-color: #fafafa; font-size: 14px;\"\u003e\u003cspan\u003eExample 3 🔥 Booster Integration (Shampoo\/Mask)\u003c\/span\u003e  \u003cspan style=\"font-size: 10px; color: #888;\"\u003eSCROLL DOWN ▼\u003c\/span\u003e\u003c\/summary\u003e  \u003cdiv style=\"padding: 15px; border-top: 1px solid #eee; font-size: 13px; line-height: 1.5;\"\u003eTo enrich your hair care routine: add a spoonful of Villanelle directly to your favorite shampoo mixture or to your \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e to achieve an ultra-detangling effect and extreme softness from the very first step.\u003c\/div\u003e  \u003c\/details\u003e  \u003cdiv style=\"margin-top: 20px; padding: 20px; background: #f6f6f6; border: 1px dashed #1a1a1a;\"\u003e  \u003cspan style=\"font-size: 11px; font-weight: bold; text-transform: uppercase; display: block; margin-bottom: 10px;\"\u003e🛠️ PREPARING YOUR CREAM PROPERLY:\u003c\/span\u003e  \u003cdiv style=\"font-size: 13px; line-height: 1.8;\"\u003e1️⃣ Take a spoonful of cream.\u003cbr\u003e2️⃣ Add 1 press of\u003cstrong\u003e4 Elements Oils\u003c\/strong\u003e (if residual nodes).\u003cbr\u003e3️⃣ Add water \u003cstrong\u003ehot\u003c\/strong\u003e (approximately 5cm) to avoid lumps.\u003cbr\u003e4️⃣ Mix vigorously (Whisk, Mixer or intense shaking).\u003cbr\u003e5️⃣ Add 2 presses of \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e (Optional).\u003cbr\u003e6️⃣ Add warm water and mix well. Apply, do not rinse (or rinse very little).\u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e  \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eRecommended Associations \u0026amp; Races\u003c\/span\u003e  \u003cp style=\"font-size: 13px; margin-bottom: 10px;\"\u003e🤝 Perfect synergy with: \u003cstrong\u003eAquarosa Pro\/4Poodle\u003c\/strong\u003e (Shampoos) and \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e (Packaging).\u003c\/p\u003e  \u003ctable style=\"width: 100%; border-collapse: collapse; font-size: 13px;\"\u003e  \u003ctbody\u003e  \u003ctr\u003e  \u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Double furs (Shepherds, Golden, Spitz, Samoyeds) - Saves drying time.\u003c\/td\u003e  \u003c\/tr\u003e  \u003ctr\u003e  \u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Curly fur (Poodles, Bichons, Kerry Blue) - Suppleness and volume.\u003c\/td\u003e  \u003c\/tr\u003e  \u003ctr\u003e  \u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Long-haired cats (Maine Coon, Persians) - A valuable aid in detangling.\u003c\/td\u003e  \u003c\/tr\u003e  \u003ctr\u003e  \u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Silky furs (Yorkshire, Shih-Tzu, Afghans) - Detangling essential.\u003c\/td\u003e  \u003c\/tr\u003e  \u003c\/tbody\u003e  \u003c\/table\u003e  \u003cdiv style=\"margin-top: 30px; text-align: center; border-top: 1px solid #eee; padding-top: 20px;\"\u003e  \u003cp style=\"font-size: 11px; color: #888; text-transform: uppercase;\"\u003eBiodegradable +90% | SLES-free, Paraben-free | Recyclable HDPE02 bottle\u003c\/p\u003e  \u003c\/div\u003e  \u003c\/div\u003e  \u003c\/div\u003e","brand":"Endemik Sas","offers":[{"title":"500 mL","offer_id":55736566677849,"sku":"(49)","price":69.0,"currency_code":"EUR","in_stock":true},{"title":"3 L","offer_id":57730517336409,"sku":"(158)","price":269.1,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/villanelle-creme-ultra-demelante-sechage-rapide.jpg?v=1793147018"},{"product_id":"starter-groom-ciseaux-special-one","title":"Starter Groom - Ciseaux Special One","description":"\u003cp\u003eLes ciseaux \u003cstrong\u003eStarter Groom\u003c\/strong\u003e de Special One sont pensés pour les élèves et les toiletteurs qui débutent et veulent travailler dès le départ avec de vrais outils professionnels. Trois modèles sont proposés : droits 7,5\", courbes 7,5\" et dentés 7\".\u003c\/p\u003e\u003ch2\u003ePourquoi choisir les ciseaux Starter Groom ?\u003c\/h2\u003e\u003cp\u003eFabriqués en acier japonais AUS-8 (Aichi Steel) d'une dureté de 57 à 59 HRC, les ciseaux Starter Groom offrent un bon équilibre entre tranchant, durée de vie et facilité d'utilisation. Légers et bien équilibrés, ils se prennent en main facilement, même lors des premières séances. Leur finition satinée limite les reflets de la lumière, ce qui aide à rester concentré pendant le travail.\u003c\/p\u003e\u003ch2\u003eCaractéristiques des ciseaux Starter Groom\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003eAcier japonais AUS-8 (Aichi Steel), dureté 57 à 59 HRC\u003c\/li\u003e\n\u003cli\u003eFinition satinée anti-reflet\u003c\/li\u003e\n\u003cli\u003eLame concave affûtée à la japonaise pour une coupe fluide\u003c\/li\u003e\n\u003cli\u003eÉquilibrage précis et pointe légère pour un contrôle total\u003c\/li\u003e\n\u003cli\u003ePivot réglable pour ajuster la tension de coupe\u003c\/li\u003e\n\u003cli\u003eRepose-doigt fixe pour une prise stable\u003c\/li\u003e\n\u003cli\u003eModèle droit 7,5\" : poignée ergonomique offset qui réduit la fatigue de la main\u003c\/li\u003e\n\u003cli\u003eModèle courbe 7,5\" : poignée reverse pour suivre facilement les lignes du corps\u003c\/li\u003e\n\u003cli\u003eModèle denté 7\" : lame dentée simple et poignée ergonomique offset\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003eUtilisation des ciseaux Starter Groom\u003c\/h2\u003e\u003cp\u003eLe modèle droit aide à gagner en assurance et en technique sur les chiens de petite et moyenne taille. Le modèle courbe permet de travailler les arrondis : tête, pattes et lignes de profil. Le modèle denté sert à alléger et à finir en douceur. Ensemble, ces trois ciseaux couvrent les besoins de base du toilettage des chiens de petite et moyenne taille, sur des pelages de textures variées.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Droite 7,5\"","offer_id":60288226361689,"sku":"SO-STARTER-RETTA75","price":198.0,"currency_code":"EUR","in_stock":true},{"title":"Courbe 7,5\"","offer_id":60288226394457,"sku":"SO-STARTER-CURVA75","price":210.2,"currency_code":"EUR","in_stock":true},{"title":"Dentée 7\"","offer_id":60288226427225,"sku":"SO-STARTER-DENTATA7","price":210.2,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/starter-groom-ciseaux-special-one.jpg?v=1793372843"},{"product_id":"yoshi-6-ciseaux-sculpteurs-courbes-special-one","title":"Yoshi 6\" - Ciseaux Sculpteurs Courbes Special One","description":"\u003cp\u003eLes \u003cstrong\u003eciseaux Yoshi\u003c\/strong\u003e de Special One sont des ciseaux sculpteurs courbes de 6 pouces, pensés pour les finitions de précision sur les pelages lisses ou semi-bouclés des chiens de petite et très petite taille (toy et teacup). Compacts, avec des dents fines et serrées, ils permettent de peaufiner le museau, la tête et les pieds, notamment pour les coupes de style Asian Fusion.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir les ciseaux Yoshi ?\u003c\/h2\u003e\n\u003cp\u003eLes dents de la lame dentée sont placées à 90 degrés et très rapprochées : la mèche est séparée nettement et l'effilage reste délicat, autour de 50 %, sans laisser de marque visible sur le pelage. Les Yoshi sont l'outil idéal après un premier dégrossissage aux ciseaux à lame lisse ou avec un chunker comme les Hikari ou les Megaluna.\u003c\/p\u003e\n\u003cp\u003eLa poignée classique réversible assure une bonne ergonomie et du confort, même sur les longues séances. Le silencieux intégré rend la coupe fluide et discrète, et le pivot réglable permet d'ajuster la tension des lames selon vos préférences.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques des ciseaux Yoshi\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLongueur\u003c\/strong\u003e : 6 pouces\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eType\u003c\/strong\u003e : ciseaux sculpteurs courbes, une lame dentée\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDents\u003c\/strong\u003e : 45 dents en V, à surface coupante lisse et large\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEffilage\u003c\/strong\u003e : environ 50 %\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAcier\u003c\/strong\u003e : AUS-10 (59 à 61 HRC), proche du 440C, très bonne résistance à la corrosion\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePoignée\u003c\/strong\u003e : classique réversible\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRepose-doigts\u003c\/strong\u003e : amovibles, un sur chaque anneau, pour détendre la main\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePivot\u003c\/strong\u003e : réglable, pour ajuster la tension entre les deux lames\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilencieux\u003c\/strong\u003e : intégré\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003ePour quels pelages utiliser les ciseaux Yoshi ?\u003c\/h2\u003e\n\u003cp\u003eLes Yoshi sont conçus pour les pelages lisses ou semi-bouclés des chiens toy et teacup. Ils sont aussi très appréciés pour les détails finaux de la tête sur des races comme le Cocker Spaniel ou le Poméranien : précision, contrôle et délicatesse.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Default Title","offer_id":60288227639641,"sku":"SO-YOSHI","price":295.6,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/yoshi-6-ciseaux-sculpteurs-courbes-special-one.jpg?v=1793372887"},{"product_id":"lefty-ciseaux-gauchers-special-one","title":"Lefty - Ciseaux Gauchers Special One","description":"\u003cp\u003eLes ciseaux \u003cstrong\u003eLefty\u003c\/strong\u003e de Special One sont conçus pour les toiletteurs gauchers qui débutent et veulent apprendre avec des ciseaux réellement pensés pour la main gauche. Trois modèles sont proposés : droits 7,5\", courbes 7,5\" et dentés 7\".\u003c\/p\u003e\u003ch2\u003ePourquoi choisir les ciseaux Lefty ?\u003c\/h2\u003e\u003cp\u003eFabriqués en acier japonais AUS-8 (Aichi Steel) d'une dureté de 57 à 59 HRC, les ciseaux Lefty allient résistance, tranchant durable et facilité d'entretien. Leur poignée Lefty suit la position naturelle de la main gauche, réduit l'effort et favorise une bonne posture. La finition polie miroir apporte de l'élégance, améliore la glisse et facilite le nettoyage.\u003c\/p\u003e\u003ch2\u003eCaractéristiques des ciseaux Lefty\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003eAcier japonais AUS-8 (Aichi Steel), dureté 57 à 59 HRC\u003c\/li\u003e\n\u003cli\u003eFinition polie miroir, facile à nettoyer\u003c\/li\u003e\n\u003cli\u003eÉquilibrage précis et pointe légère pour des gestes fluides\u003c\/li\u003e\n\u003cli\u003ePivot réglable pour personnaliser la tension\u003c\/li\u003e\n\u003cli\u003eRepose-doigt fixe pour une prise stable\u003c\/li\u003e\n\u003cli\u003eModèle droit 7,5\" : poignée ergonomique Lefty offset, lame concave affûtée à la japonaise\u003c\/li\u003e\n\u003cli\u003eModèle courbe 7,5\" : poignée reverse Lefty, lame concave affûtée à la japonaise\u003c\/li\u003e\n\u003cli\u003eModèle denté 7\" : lame dentée simple, poignée Lefty offset\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003eUtilisation des ciseaux Lefty\u003c\/h2\u003e\u003cp\u003eLe modèle droit donne des lignes nettes sur les chiens de petite et moyenne taille. Le modèle courbe permet de dessiner formes et contours avec fluidité, sur la tête, les pattes ou les lignes de finition. Le modèle denté aide à gérer le volume du poil, à créer des dégradés et à finir de façon naturelle, avec une coupe douce et progressive.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Droite 7,5\"","offer_id":60288230424921,"sku":"SO-LEFTY-RETTA75","price":225.45,"currency_code":"EUR","in_stock":true},{"title":"Courbe 7,5\"","offer_id":60288230457689,"sku":"SO-LEFTY-CURVA75","price":243.14,"currency_code":"EUR","in_stock":true},{"title":"Dentée 7\"","offer_id":60288230490457,"sku":"SO-LEFTY-DENTATA7","price":243.14,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/lefty-ciseaux-gauchers-special-one.jpg?v=1793372843"},{"product_id":"hikari-7-chunker-courbe-special-one","title":"Hikari 7\" - Chunker Courbe Special One","description":"\u003cp\u003eLes \u003cstrong\u003eciseaux Hikari\u003c\/strong\u003e de Special One sont un chunker courbe de 7 pouces, conçu pour travailler avec précision et efficacité les pelages bouclés ou semi-bouclés délicats des chiens de petite et très petite taille (toy et teacup). Ils sont parfaits pour les coupes de style Asian Fusion.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir les ciseaux Hikari ?\u003c\/h2\u003e\n\u003cp\u003eLes dents larges et courbes de la lame dentée sont séparées par de grands espaces ovales : le poil ne s'accumule pas entre les dents, la coupe reste nette et le travail avance sans interruptions. Avec un effilage d'environ 80 %, les Hikari dégrossissent rapidement les zones délicates (tête, pattes, museau), même quand le chien ne coopère pas, pour poser la forme vite et harmonieusement.\u003c\/p\u003e\n\u003cp\u003eLa poignée classique réversible, équilibrée et confortable, est équipée d'un repose-doigt et d'un silencieux intégré pour un travail fluide sur les longues séances. Le pivot réglable adapte la tension des lames à vos préférences.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques des ciseaux Hikari\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLongueur\u003c\/strong\u003e : 7 pouces\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eType\u003c\/strong\u003e : chunker courbe\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDents\u003c\/strong\u003e : 18 dents en T, à surface coupante lisse et large, espaces ovales\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEffilage\u003c\/strong\u003e : environ 80 %\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAcier\u003c\/strong\u003e : acier japonais\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePoignée\u003c\/strong\u003e : classique réversible\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRepose-doigt\u003c\/strong\u003e : oui, pour détendre la main\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePivot\u003c\/strong\u003e : réglable, pour ajuster la tension entre les deux lames\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilencieux\u003c\/strong\u003e : intégré\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eUtilisation des ciseaux Hikari\u003c\/h2\u003e\n\u003cp\u003eLes Hikari servent à dégrossir les pelages bouclés ou semi-bouclés des chiens toy et teacup. Pour une finition parfaite du museau, de la tête et des pieds après le passage des Hikari, Special One conseille de les associer aux ciseaux Yoshi, sculpteurs courbes à dents fines.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Default Title","offer_id":60288231309657,"sku":"SO-HIKARI","price":295.6,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/hikari-7-chunker-courbe-special-one.jpg?v=1793372887"},{"product_id":"kit-lefty-groom-ciseaux-gauchers-special-one","title":"Kit Lefty Groom - Ciseaux Gauchers Special One","description":"\u003cp\u003eLe \u003cstrong\u003eKit Lefty Groom\u003c\/strong\u003e de Special One a été créé spécialement pour les toiletteurs gauchers qui démarrent leur carrière. Il réunit trois ciseaux essentiels, ergonomiques et bien équilibrés : des droits 7,5\", des courbes 7,5\" et des dentés simples 7\".\u003c\/p\u003e\u003ch2\u003ePourquoi choisir le Kit Lefty Groom ?\u003c\/h2\u003e\u003cp\u003eC'est le bon investissement pour débuter avec des outils de qualité professionnelle réellement pensés pour la main gauche. Les ciseaux sont en acier japonais AUS-8, produit par Aichi Steel Corporation (Japon), d'une dureté de 57 à 59 HRC : un excellent compromis entre tranchant, durée de vie et résistance à la corrosion. La finition polie miroir met en valeur l'outil, améliore la glisse dans le poil et facilite le nettoyage.\u003c\/p\u003e\u003ch2\u003eCaractéristiques du Kit Lefty Groom\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e3 paires de ciseaux pour gauchers : droits 7,5\", courbes 7,5\", dentés simples 7\"\u003c\/li\u003e\n\u003cli\u003eAcier japonais AUS-8 (Aichi Steel Corporation), dureté 57 à 59 HRC\u003c\/li\u003e\n\u003cli\u003ePoignée ergonomique Lefty offset pour les droits et les dentés, pour une position naturelle de la main\u003c\/li\u003e\n\u003cli\u003ePoignée reverse Lefty pour les courbes, pour suivre avec fluidité les lignes du corps du chien\u003c\/li\u003e\n\u003cli\u003eLame concave affûtée à la japonaise pour une coupe précise et fluide\u003c\/li\u003e\n\u003cli\u003eÉquilibrage précis et pointe légère\u003c\/li\u003e\n\u003cli\u003eFinition polie miroir qui réduit les frottements avec le poil\u003c\/li\u003e\n\u003cli\u003ePivot réglable pour adapter la tension de coupe\u003c\/li\u003e\n\u003cli\u003eRepose-doigt fixe pour garder la main détendue et stable, même lors de longues séances\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003ePour quels pelages ?\u003c\/h2\u003e\u003cp\u003eLes tailles 7,5\" et 7\" conviennent parfaitement aux chiens de petite et moyenne taille et à des pelages de textures variées. Un kit polyvalent et durable pour développer une technique sûre et précise dès les premières expériences.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Default Title","offer_id":60288241336665,"sku":"SO-KIT-LEFTY","price":582.79,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/kit-lefty-groom-ciseaux-gauchers-special-one.jpg?v=1793372843"},{"product_id":"scalebane-7-ciseaux-sculpteurs-special-one","title":"Scalebane 7\" - Ciseaux Sculpteurs Special One","description":"\u003cp\u003eLes \u003cstrong\u003eciseaux Scalebane\u003c\/strong\u003e de Special One sont des ciseaux sculpteurs à une lame dentée de 7 pouces, conçus pour travailler les pelages lisses ou soyeux de races comme les Spaniels, les Setters et les Retrievers. Leur denture particulière donne un effilage naturel et précis, sans marque visible.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir les ciseaux Scalebane ?\u003c\/h2\u003e\n\u003cp\u003eLes dents courbes et espacées de la lame dentée effilent en douceur, environ 10 %, sans les traces que laissent souvent d'autres ciseaux dentés. Un atout indispensable sur les robes fauves ou blondes, où la moindre imperfection se voit. Les Scalebane permettent des finitions invisibles et naturelles, qui respectent la texture du poil.\u003c\/p\u003e\n\u003cp\u003eFabriqués en acier japonais 440C, ils offrent dureté, durabilité et performances constantes dans le temps. La poignée ergonomique offset avec repose-doigt fixe limite la fatigue de la main, même en usage prolongé. Le silencieux intégré rend la coupe plus fluide et plus discrète, et le pivot réglable permet de personnaliser la tension.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques des ciseaux Scalebane\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLongueur\u003c\/strong\u003e : 7 pouces\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eType\u003c\/strong\u003e : ciseaux sculpteurs, une lame dentée\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDents\u003c\/strong\u003e : 32 dents arrondies, à surface coupante irrégulière\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEffilage\u003c\/strong\u003e : environ 10 %\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAcier\u003c\/strong\u003e : japonais Hitachi 440C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePoignée\u003c\/strong\u003e : offset ergonomique\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRepose-doigt\u003c\/strong\u003e : fixe\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePivot\u003c\/strong\u003e : réglable, pour ajuster la tension entre les deux lames\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilencieux\u003c\/strong\u003e : intégré\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003ePour quels pelages utiliser les ciseaux Scalebane ?\u003c\/h2\u003e\n\u003cp\u003eLes Scalebane sont faits pour les races à poil lisse ou soyeux (Spaniels, Setters, Retrievers) et pour les toilettages qui doivent rester invisibles. Ils conviennent aussi aux races primitives comme le Spitz et le Poméranien, où le toilettage doit respecter la structure naturelle du pelage. Ils sont particulièrement adaptés aux robes claires et fines.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Default Title","offer_id":60288249069913,"sku":"SO-SCALEBANE","price":295.6,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/scalebane-7-ciseaux-sculpteurs-special-one.jpg?v=1793372887"},{"product_id":"kit-starter-groom-ciseaux-special-one","title":"Kit Starter Groom - Ciseaux Special One","description":"\u003cp\u003eVous débutez dans le toilettage ? Le \u003cstrong\u003eKit Starter Groom\u003c\/strong\u003e de Special One est le bon investissement pour faire vos premiers pas avec des outils fiables et professionnels. Il réunit trois ciseaux essentiels, légers, équilibrés et faciles à utiliser : des droits 7,5\", des courbes 7,5\" et des dentés simples 7\".\u003c\/p\u003e\u003ch2\u003ePourquoi choisir le Kit Starter Groom ?\u003c\/h2\u003e\u003cp\u003eLes ciseaux sont en acier japonais AUS-8, produit par Aichi Steel Corporation (Japon), d'une dureté de 57 à 59 HRC. Ils offrent un excellent équilibre entre tranchant, durée de vie et résistance à la corrosion : un acier de gamme professionnelle avec un très bon rapport qualité\/prix, idéal pour commencer avec des outils de bon niveau.\u003c\/p\u003e\u003ch2\u003eCaractéristiques du Kit Starter Groom\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e3 paires de ciseaux : droits 7,5\", courbes 7,5\", dentés simples 7\"\u003c\/li\u003e\n\u003cli\u003eAcier japonais AUS-8 (Aichi Steel Corporation), dureté 57 à 59 HRC\u003c\/li\u003e\n\u003cli\u003ePoignée ergonomique offset pour les droits et les dentés, qui réduit la fatigue de la main\u003c\/li\u003e\n\u003cli\u003ePoignée reverse pour les courbes, pour suivre facilement les lignes du corps du chien\u003c\/li\u003e\n\u003cli\u003eLame concave affûtée à la japonaise pour une coupe plus précise et fluide\u003c\/li\u003e\n\u003cli\u003eÉquilibrage soigné et pointe légère pour des gestes fluides et précis\u003c\/li\u003e\n\u003cli\u003eFinition satinée qui limite les reflets de la lumière pendant le travail\u003c\/li\u003e\n\u003cli\u003ePivot réglable pour adapter la tension de coupe\u003c\/li\u003e\n\u003cli\u003eRepose-doigt fixe pour détendre les muscles lors des longues séances\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003ePour quels pelages ?\u003c\/h2\u003e\u003cp\u003eLes tailles 7,5\" et 7\" sont idéales pour les chiens de petite et moyenne taille et des pelages de textures variées. Le kit couvre tous les besoins de base du toilettage de ces chiens, avec des outils polyvalents, durables et faciles à manier pour apprendre les bonnes techniques de coupe.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Default Title","offer_id":60288267780441,"sku":"SO-KIT-STARTER","price":502.39,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/kit-starter-groom-ciseaux-special-one.jpg?v=1793372843"},{"product_id":"megaluna-7-5-chunker-courbe-special-one","title":"Megaluna 7,5\" - Chunker Courbe Special One","description":"\u003cp\u003eLes \u003cstrong\u003eciseaux Megaluna\u003c\/strong\u003e de Special One sont un chunker courbe de 7,5 pouces, conçu pour effiler vite et précisément les pelages moyens et fins, bouclés ou ondulés. Avec 33 dents en T et un effilage de 90 %, ils donnent des résultats impeccables sur les robes volumineuses.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir les ciseaux Megaluna ?\u003c\/h2\u003e\n\u003cp\u003eLa forme des dents et l'espace interdentaire optimisé gèrent efficacement le poil en le poussant vers l'intérieur à la fermeture des lames. Résultat : beaucoup moins de laine coupée qui s'accumule sur les lames, un travail plus fluide et moins de nettoyages en cours de coupe.\u003c\/p\u003e\n\u003cp\u003eLa courbure des lames suit les lignes naturelles du corps de l'animal, pour plus de confort et de précision dans les zones difficiles d'accès. La poignée réversible ergonomique se retourne facilement pour couper des deux côtés sans perdre l'équilibre ni la précision. Bien équilibré, le modèle limite la fatigue en usage prolongé.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques des ciseaux Megaluna\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLongueur\u003c\/strong\u003e : 7,5 pouces\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eType\u003c\/strong\u003e : chunker courbe\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDents\u003c\/strong\u003e : 33 dents en T\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEffilage\u003c\/strong\u003e : environ 90 %\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAcier\u003c\/strong\u003e : japonais Hitachi 440C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePoignée\u003c\/strong\u003e : réversible ergonomique\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRepose-doigt\u003c\/strong\u003e : amovible\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePivot\u003c\/strong\u003e : réglable, pour ajuster la tension entre les deux lames\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003ePour quels pelages utiliser les ciseaux Megaluna ?\u003c\/h2\u003e\n\u003cp\u003eLes Megaluna sont idéaux pour les races à pelage volumineux, bouclé ou ondulé, moyen ou fin : Caniche moyen, nain et toy, Lagotto Romagnolo, Bichon Frisé. Ils aident à obtenir un aspect naturel et bien défini.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Default Title","offer_id":60288269582681,"sku":"SO-MEGALUNA","price":307.8,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/megaluna-7-5-chunker-courbe-special-one.jpg?v=1793372887"},{"product_id":"kronomax-7-25-ciseaux-chunker-courbes-special-one","title":"Kronomax 7,25\" - Ciseaux Chunker Courbes Special One","description":"\u003cp\u003eLe \u003cstrong\u003eKronomax\u003c\/strong\u003e de Special One est un chunker courbe à simple lame dentée de 7,25\", en acier japonais VG10. Léger et raffiné, il est conçu pour la finition et le travail de précision sur les pelages fins et extra-fins, au point de pouvoir remplacer presque entièrement les ciseaux à lame lisse.\u003c\/p\u003e\u003ch2\u003ePourquoi choisir les ciseaux Kronomax ?\u003c\/h2\u003e\u003cp\u003eSa lame effileuse compte 40 dents, avec un fil inspiré du style bevel associé à une concavité, pour un effilage puissant mais maîtrisé. Les dents fines et rapprochées séparent la mèche de façon régulière : on retire beaucoup de poil en laissant très peu à reprendre, sans marques visibles. Allégé en pointe pour un contrôle encore plus précis, le Kronomax associe légèreté, précision et performance, un outil très apprécié des professionnels qui soignent chaque détail.\u003c\/p\u003e\u003ch2\u003eCaractéristiques des ciseaux Kronomax\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003eLongueur : 7,25\"\u003c\/li\u003e\n\u003cli\u003eChunker courbe à simple lame dentée\u003c\/li\u003e\n\u003cli\u003e40 dents de précision pour un effilage régulier\u003c\/li\u003e\n\u003cli\u003eAcier japonais VG10 : dureté et longévité même en usage intensif\u003c\/li\u003e\n\u003cli\u003ePoignée classique reverse avec double repose-doigt pour moins de tension dans la main\u003c\/li\u003e\n\u003cli\u003eSilencieux intégré pour une coupe plus silencieuse et fluide\u003c\/li\u003e\n\u003cli\u003ePivot réglable pour ajuster la tension des lames\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003ePour quels pelages ?\u003c\/h2\u003e\u003cp\u003eLe Kronomax est idéal pour la finition des pelages fins et moyennement fins comme ceux du Bedlington Terrier et du Caniche (toy, nain et moyen), ainsi que sur des pelages plus laineux et complexes comme ceux du Shih Tzu et du Maltipoo. Évitez de l'utiliser sur des textures trop dures ou kératinisées, afin de préserver la finesse des lames.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Default Title","offer_id":60288277905753,"sku":"SO-KRONOMAX","price":330.98,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/kronomax-7-25-ciseaux-chunker-courbes-special-one.jpg?v=1793372843"},{"product_id":"saurmoon-7-ciseaux-sculpteurs-courbes-special-one","title":"SaurMoon 7\" - Ciseaux Sculpteurs Courbes Special One","description":"\u003cp\u003eLes \u003cstrong\u003eciseaux SaurMoon\u003c\/strong\u003e de Special One sont des ciseaux sculpteurs courbes de 7 pouces à 46 dents, très appréciés des amateurs de ciseaux courbes. Précis et polyvalents, ils effilent et modèlent les pelages fins et très fins, bouclés ou lisses, avec une coupe uniforme et naturelle, sans marques nettes.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir les ciseaux SaurMoon ?\u003c\/h2\u003e\n\u003cp\u003eLeur denture moyenne effile à 90 % : les dents serrées, avec de petits espaces entre elles, coupent vite et efficacement, sans laisser de marque visible sur les pelages délicats.\u003c\/p\u003e\n\u003cp\u003eLa courbure des lames suit les lignes naturelles du corps de l'animal, ce qui en fait l'outil idéal pour les zones difficiles d'accès : tête, pattes et contours. La poignée réversible ergonomique se retourne facilement pour couper des deux côtés sans perdre l'équilibre ni la précision. Bien équilibré, le modèle limite la fatigue en usage prolongé.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques des ciseaux SaurMoon\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLongueur\u003c\/strong\u003e : 7 pouces\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eType\u003c\/strong\u003e : ciseaux sculpteurs courbes\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDents\u003c\/strong\u003e : 46 dents en M, serrées\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEffilage\u003c\/strong\u003e : environ 90 %\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAcier\u003c\/strong\u003e : japonais Hitachi 440C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePoignée\u003c\/strong\u003e : réversible ergonomique\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRepose-doigt\u003c\/strong\u003e : amovible\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePivot\u003c\/strong\u003e : réglable, pour ajuster la tension entre les deux lames\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003ePour quels pelages utiliser les ciseaux SaurMoon ?\u003c\/h2\u003e\n\u003cp\u003eLes SaurMoon sont conçus pour les pelages fins et très fins, qu'ils soient bouclés ou lisses. Ils donnent un rendu naturel et sans marque, notamment sur la tête, les pattes et les contours.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Default Title","offer_id":60288281018713,"sku":"SO-SAURMOON","price":307.8,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/saurmoon-7-ciseaux-sculpteurs-courbes-special-one.jpg?v=1793372887"},{"product_id":"elfo-8-ciseaux-droits-microdentes-special-one","title":"Elfo 8\" - Ciseaux Droits Microdentés Special One","description":"\u003cp\u003eOn dit que les ciseaux sont un peu comme une baguette magique : ce sont eux qui choisissent leur toiletteur. Les ciseaux \u003cstrong\u003eElfo\u003c\/strong\u003e de Special One sont bien plus qu'un outil, ils incarnent l'élégance et la puissance entre les mains de celui qui les utilise. Chaque pièce est fabriquée artisanalement, avec un soin porté au moindre détail : les petites différences d'un exemplaire à l'autre témoignent de ce travail manuel.\u003c\/p\u003e\u003ch2\u003ePourquoi choisir les ciseaux Elfo ?\u003c\/h2\u003e\u003cp\u003eLeur design s'inspire de l'épée des guerriers Hauts-Elfes de la trilogie du Seigneur des Anneaux et évoque la noblesse et l'élégance des Elfes. Les Elfo sont des ciseaux droits de 8\" conçus pour une précision et un contrôle exceptionnels. Leur lame microdentée retient le poil pendant la coupe, évite l'effet « glissement » et assure une finition impeccable. Ils s'adressent aux toiletteurs exigeants qui cherchent un outil capable de gagner des concours et de créer des formes parfaites avec style.\u003c\/p\u003e\u003ch2\u003eCaractéristiques des ciseaux Elfo\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003eLongueur : 8\"\u003c\/li\u003e\n\u003cli\u003eLame droite microdentée (microgrid cutting), rectifiée au grain 10000\u003c\/li\u003e\n\u003cli\u003eAffûtage intérieur convexe\/concave, faible contact, fil rasoir\u003c\/li\u003e\n\u003cli\u003eAcier japonais Takefu VG10 au cobalt, forgé, réputé pour sa dureté et son élasticité\u003c\/li\u003e\n\u003cli\u003eTraitement thermique total à double revenu sélectif : tranchant très dur et grande souplesse des ciseaux\u003c\/li\u003e\n\u003cli\u003ePoignée ergonomique offset qui réduit la fatigue de la main lors des longues séances\u003c\/li\u003e\n\u003cli\u003eRepose-doigt fixe\u003c\/li\u003e\n\u003cli\u003ePivot à vis réglable\u003c\/li\u003e\n\u003cli\u003eSilencieux\u003c\/li\u003e\n\u003cli\u003eFabrication artisanale\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch2\u003ePour quels pelages ?\u003c\/h2\u003e\u003cp\u003eLes ciseaux Elfo sont parfaits pour les coupes de précision et la finition des pelages frisés et fins, notamment chez le Bichon Frisé, le Caniche, le Bedlington Terrier et le Kerry Blue Terrier. Ils ne sont pas recommandés pour les textures trop kératinisées ni pour les pelages sales et emmêlés. Ce modèle demande une main sûre et stable : il est déconseillé aux débutants.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Default Title","offer_id":60288287375705,"sku":"SO-ELFO","price":466.4,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/elfo-8-ciseaux-droits-microdentes-special-one.png?v=1793372843"},{"product_id":"pollock-ciseaux-droits-et-courbes-special-one","title":"Pollock - Ciseaux Droits et Courbes Special One","description":"\u003cp\u003eLes \u003cstrong\u003eciseaux Pollock\u003c\/strong\u003e de la Fashion Line Special One allient style et performances, pour les toiletteurs qui aiment se démarquer jusque dans leur travail quotidien. Leur décor s'inspire du célèbre peintre américain Jackson Pollock, sur un film antistatique et résistant qui améliore la coupe tout en apportant une touche de couleur.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir les ciseaux Pollock ?\u003c\/h2\u003e\n\u003cp\u003eEn acier japonais 440C, les Pollock offrent une excellente durabilité et un affûtage à la japonaise, pour des coupes de haute précision. Le film protecteur coloré empêche l'accumulation d'électricité statique : la coupe est plus efficace et plus fluide.\u003c\/p\u003e\n\u003cp\u003eLes lames sont concaves, et l'une des deux porte une microdenture fine qui empêche le poil de glisser, pour une coupe nette et maîtrisée. La poignée ergonomique offset, avec repose-doigt fixe et pivot réglable, limite la fatigue de la main sur les longues séances. Leur bon équilibre et le silencieux intégré assurent un travail fluide et discret, en salon comme en concours.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques des ciseaux Pollock\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLongueur\u003c\/strong\u003e : 7,5 ou 8 pouces (selon variante)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLame\u003c\/strong\u003e : droite ou courbe (selon variante), concave\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMicrodenture\u003c\/strong\u003e : fine, sur une des deux lames\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAcier\u003c\/strong\u003e : japonais 440C, affûtage japonais\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFinition\u003c\/strong\u003e : film antistatique coloré et résistant, décor inspiré de Jackson Pollock\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePoignée\u003c\/strong\u003e : offset ergonomique\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRepose-doigt\u003c\/strong\u003e : fixe\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePivot\u003c\/strong\u003e : réglable, pour ajuster la tension des lames\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilencieux\u003c\/strong\u003e : intégré\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eUtilisation des ciseaux Pollock\u003c\/h2\u003e\n\u003cp\u003eLes Pollock conviennent aux coupes exigeantes comme le Continental Trim, mais aussi au Puppy Trim, au toilettage courant et au style Asian Fusion. Ils sont idéaux sur des races comme le Caniche, le Bichon Frisé et le Bedlington Terrier.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eEntretien\u003c\/strong\u003e : évitez de passer les ciseaux de la Fashion Line dans un stérilisateur à haute température, qui pourrait abîmer le film coloré.\u003c\/p\u003e","brand":"autre","offers":[{"title":"7,5\" \/ Droite","offer_id":60288289636697,"sku":"SO-POLLOCK-DROITE75","price":272.42,"currency_code":"EUR","in_stock":true},{"title":"8\" \/ Droite","offer_id":60288289669465,"sku":"SO-POLLOCK-DROITE8","price":279.74,"currency_code":"EUR","in_stock":true},{"title":"7,5\" \/ Courbe","offer_id":60288289702233,"sku":"SO-POLLOCK-COURBE75","price":279.74,"currency_code":"EUR","in_stock":true},{"title":"8\" \/ Courbe","offer_id":60288289735001,"sku":"SO-POLLOCK-COURBE8","price":287.06,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/pollock-ciseaux-droits-et-courbes-special-one.jpg?v=1793372887"},{"product_id":"fashion-ciseaux-droits-et-courbes-special-one","title":"Fashion - Ciseaux Droits et Courbes Special One","description":"\u003cp\u003eLes \u003cstrong\u003eciseaux Fashion\u003c\/strong\u003e de Special One allient style et performances, pour les toiletteurs qui aiment se démarquer jusque dans leur travail quotidien. Leur décor inspiré des fleurs, sur un film antistatique et résistant, apporte une touche de couleur et de gaieté sans rien céder sur la qualité de coupe.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir les ciseaux Fashion ?\u003c\/h2\u003e\n\u003cp\u003eEn acier japonais 440C, les Fashion offrent une excellente durabilité et un affûtage à la japonaise, pour des coupes de haute précision. Le film protecteur rend les ciseaux résistants et empêche l'accumulation d'électricité statique : la coupe est plus efficace et plus fluide.\u003c\/p\u003e\n\u003cp\u003eLes lames sont concaves, et l'une des deux porte une microdenture fine qui empêche le poil de glisser, pour une coupe nette, fluide et maîtrisée. La poignée ergonomique offset, avec repose-doigt fixe et pivot réglable, limite la fatigue de la main sur les longues séances. Leur bon équilibre et le silencieux intégré assurent un travail fluide et discret, en salon comme en concours.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques des ciseaux Fashion\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLongueur\u003c\/strong\u003e : 7,5 ou 8 pouces (selon variante)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLame\u003c\/strong\u003e : droite ou courbe (selon variante), concave\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMicrodenture\u003c\/strong\u003e : fine, sur une des deux lames\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAcier\u003c\/strong\u003e : japonais 440C, affûtage japonais\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFinition\u003c\/strong\u003e : film antistatique coloré et résistant, décor floral\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePoignée\u003c\/strong\u003e : offset ergonomique\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRepose-doigt\u003c\/strong\u003e : fixe\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePivot\u003c\/strong\u003e : réglable, pour ajuster la tension des lames\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilencieux\u003c\/strong\u003e : intégré\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eUtilisation des ciseaux Fashion\u003c\/h2\u003e\n\u003cp\u003eLes Fashion conviennent aux coupes exigeantes comme le Continental Trim, mais aussi au Puppy Trim, au toilettage courant et au style Asian Fusion. Ils sont idéaux sur des races comme le Caniche, le Bichon Frisé et le Bedlington Terrier.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eEntretien\u003c\/strong\u003e : évitez de passer les ciseaux de la Fashion Line dans un stérilisateur à haute température, qui pourrait abîmer le film coloré.\u003c\/p\u003e","brand":"autre","offers":[{"title":"7,5\" \/ Droite","offer_id":60288347832665,"sku":"SO-FASHION-DROITE75","price":272.42,"currency_code":"EUR","in_stock":true},{"title":"8\" \/ Droite","offer_id":60288347865433,"sku":"SO-FASHION-DROITE8","price":279.74,"currency_code":"EUR","in_stock":true},{"title":"7,5\" \/ Courbe","offer_id":60288347898201,"sku":"SO-FASHION-COURBE75","price":279.74,"currency_code":"EUR","in_stock":true},{"title":"8\" \/ Courbe","offer_id":60288347930969,"sku":"SO-FASHION-COURBE8","price":287.06,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/fashion-ciseaux-droits-et-courbes-special-one.jpg?v=1793372887"},{"product_id":"satin-elitte-ciseaux-droits-et-courbes-special-one","title":"Satin Elitte - Ciseaux Droits et Courbes Special One","description":"\u003cp\u003eLes \u003cstrong\u003eciseaux Satin Elitte\u003c\/strong\u003e de Special One s'adressent aux toiletteurs qui recherchent une précision maximale et un tranchant irréprochable. Par rapport aux ciseaux Satin classiques de la gamme Satin Line, ils se distinguent par une pointe plus fine, conçue pour les coupes de haute précision sur les chiens de taille moyenne et toy.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir les ciseaux Satin Elitte ?\u003c\/h2\u003e\n\u003cp\u003eFabriqués en acier japonais 440C, les Satin Elitte offrent une grande dureté et gardent leur tranchant même après un usage intensif. Leur équilibre et leur affûtage à la japonaise, réalisé à la main par le maître artisan de Special One, en font des ciseaux très appréciés des toiletteurs qui travaillent beaucoup aux ciseaux, notamment en concours de toilettage.\u003c\/p\u003e\n\u003cp\u003eLes lames concaves reçoivent une finition satinée spéciale qui supprime les reflets et évite de gêner l'œil pendant les finitions. L'une des deux lames est finement microdentée : le poil ne glisse pas et chaque fermeture donne une coupe nette et maîtrisée.\u003c\/p\u003e\n\u003cp\u003eLa poignée ergonomique offset avec repose-doigt fixe réduit la tension dans la main et permet de travailler longtemps sans fatigue. Le silencieux intégré rend la coupe plus douce et plus discrète, et le pivot réglable permet d'ajuster la tension des lames selon vos préférences.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques des ciseaux Satin Elitte\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eModèles\u003c\/strong\u003e : droit 7,5\", courbe 7,5\" ou courbe 8\"\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLames\u003c\/strong\u003e : concaves, finition satinée anti-reflet, pointe fine\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMicrodenture\u003c\/strong\u003e : fine, sur une des deux lames\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAcier\u003c\/strong\u003e : japonais 440C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAffûtage\u003c\/strong\u003e : à la japonaise, réalisé à la main\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePoignée\u003c\/strong\u003e : ergonomique offset\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRepose-doigt\u003c\/strong\u003e : fixe\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePivot\u003c\/strong\u003e : réglable\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilencieux\u003c\/strong\u003e : intégré\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eUtilisation des ciseaux Satin Elitte\u003c\/h2\u003e\n\u003cp\u003eLes Satin Elitte sont parfaits pour les coupes du Caniche comme le Continental Trim et le Puppy Trim, pour les coupes commerciales de précision dans le style Asian Fusion, et pour le toilettage de races comme le Bichon Frisé et le Bedlington Terrier.\u003c\/p\u003e","brand":"autre","offers":[{"title":"7,5\" \/ Droite","offer_id":60288385057113,"sku":"SO-SATINELITTE-RETTA75","price":234.6,"currency_code":"EUR","in_stock":true},{"title":"7,5\" \/ Courbe","offer_id":60288385089881,"sku":"SO-SATINELITTE-CURVA75","price":241.92,"currency_code":"EUR","in_stock":true},{"title":"8\" \/ Courbe","offer_id":60288385122649,"sku":"SO-SATINELITTE-CURVA8","price":254.12,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/satin-elitte-ciseaux-droits-et-courbes-special-one.jpg?v=1793373085"},{"product_id":"titan-9-ciseaux-special-one","title":"Titan 9\" - Ciseaux Special One","description":"\u003cp\u003eLes \u003cstrong\u003eciseaux Titan\u003c\/strong\u003e 9 pouces de la collection Titan Line de Special One sont des ciseaux robustes et de grande taille, conçus pour les travaux les plus exigeants. Ils s'adressent aux toiletteurs qui aiment les ciseaux longs et qui doivent dégrossir des pelages épais et très structurés.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir les ciseaux Titan ?\u003c\/h2\u003e\n\u003cp\u003eLeurs lames larges et concaves sont en acier 440C de haute qualité, traité aux ions de titane. Ce traitement améliore nettement la résistance à l'usure et à la corrosion et protège la surface de l'acier. Il donne aussi aux ciseaux un look moderne et original, en deux coloris : vert et bleu métallisé, ou rose et bleu irisé.\u003c\/p\u003e\n\u003cp\u003eLa lame supérieure est microdentée : elle assure une bonne prise du poil pendant le dégrossissage des pelages les plus épais et kératinisés, pour plus de contrôle et de précision. Cette microdenture est réalisée de façon artisanale.\u003c\/p\u003e\n\u003cp\u003eLa poignée ergonomique offset limite la fatigue lors des longues séances. Ses anneaux larges conviennent bien aux grandes mains et aux doigts plus forts, et le repose-doigt intégré aux branches réduit la tension dans les muscles de la main. Le pivot réglable permet d'ajuster la tension des lames selon le pelage travaillé, et le silencieux intégré réduit le bruit à l'usage.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques des ciseaux Titan\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLongueur\u003c\/strong\u003e : 9 pouces\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLames\u003c\/strong\u003e : larges et concaves\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMicrodenture\u003c\/strong\u003e : sur la lame supérieure\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAcier\u003c\/strong\u003e : 440C traité aux ions de titane (résistance à l'usure et à la corrosion)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eColoris\u003c\/strong\u003e : rose et bleu irisé, ou vert et bleu métallisé\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePoignée\u003c\/strong\u003e : ergonomique offset, anneaux larges\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRepose-doigt\u003c\/strong\u003e : intégré\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePivot\u003c\/strong\u003e : réglable\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSilencieux\u003c\/strong\u003e : intégré\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003ePour quels pelages ?\u003c\/h2\u003e\n\u003cp\u003eLes Titan sont faits pour dégrossir les pelages épais et kératinisés, comme ceux du Caniche Royal, du Lagotto Romagnolo, du Kerry Blue Terrier, du Goldendoodle et du Terrier Noir Russe.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Rose\/Bleu","offer_id":60288390627673,"sku":"SO-TITAN-ROSE","price":223.62,"currency_code":"EUR","in_stock":true},{"title":"Vert\/Bleu","offer_id":60288390660441,"sku":"SO-TITAN-VERT","price":223.62,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/titan-9-ciseaux-special-one.jpg?v=1793373085"},{"product_id":"toucan-ciseaux-droits-special-one","title":"Toucan - Ciseaux Droits Special One","description":"\u003cp\u003eLes \u003cstrong\u003eciseaux Toucan\u003c\/strong\u003e de Special One sont des ciseaux droits pensés pour les toiletteurs qui veulent allier précision et rapidité sur les pelages moyens à fins et fins. Robustes, avec des lames épaisses, ils existent en 7 et 8 pouces.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir les ciseaux Toucan ?\u003c\/h2\u003e\n\u003cp\u003eLes lames droites reçoivent une finition satinée qui évite les reflets gênants pendant le travail, un détail très apprécié des professionnels. Elles sont plus longues que la poignée, ce qui rend les Toucan particulièrement adaptés aux mains plutôt petites et aux doigts fins.\u003c\/p\u003e\n\u003cp\u003eLa poignée ergonomique offset asymétrique permet d'ouvrir largement les lames sans forcer sur la main, pour garder un rythme de coupe rapide. Le repose-doigt fixe réduit la tension musculaire lors des longues séances, et le pivot réglable, émaillé rose, permet d'ajuster la tension des lames selon vos besoins.\u003c\/p\u003e\n\u003cp\u003eFabriqués en acier Hitachi 440C, reconnu pour sa dureté et sa résistance à l'usure, les Toucan gardent longtemps leur tranchant.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques des ciseaux Toucan\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLongueur\u003c\/strong\u003e : 7 ou 8 pouces\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLame\u003c\/strong\u003e : droite, épaisse, finition satinée anti-reflet\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAcier\u003c\/strong\u003e : Hitachi 440C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePoignée\u003c\/strong\u003e : ergonomique offset asymétrique\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRepose-doigt\u003c\/strong\u003e : fixe\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePivot\u003c\/strong\u003e : réglable, émaillé rose\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eUtilisation des ciseaux Toucan\u003c\/h2\u003e\n\u003cp\u003eRapides, précis et confortables, les Toucan conviennent parfaitement aux finitions et aux coupes fluides de la technique de toilettage asiatique, qui procède par couches superficielles, à la différence de la technique européenne, plus profonde et plus structurée.\u003c\/p\u003e","brand":"autre","offers":[{"title":"7\"","offer_id":60288396788057,"sku":"SO-TOUCAN-7","price":216.3,"currency_code":"EUR","in_stock":true},{"title":"8\"","offer_id":60288396820825,"sku":"SO-TOUCAN-8","price":223.72,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/toucan-ciseaux-droits-special-one.jpg?v=1793373085"},{"product_id":"snail-couteaux-a-epiler-special-one","title":"Snail - Couteaux à Epiler Special One","description":"\u003cp\u003eLes \u003cstrong\u003ecouteaux à épiler Snail\u003c\/strong\u003e de Special One forment une série de trois têtes de petite taille : Extra Fin, Fin et Moyen. Leur manche ergonomique, inspiré de la forme de l'escargot, est réalisé dans trois bois différents. Ils sont fabriqués de façon entièrement artisanale.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir les couteaux à épiler Snail ?\u003c\/h2\u003e\n\u003cp\u003eLes têtes de la série Snail sont conçues pour les zones difficiles et pour soigner les détails pendant le stripping. Elles permettent de travailler avec précision et délicatesse, en retirant de petites quantités de poil à la fois. Leur prise confortable et sûre convient tout particulièrement aux toiletteurs qui ont de petites mains.\u003c\/p\u003e\n\u003cp\u003eSpecial One utilise un acier plus tendre, qui ne coupe pas le poil mais crée de petites aspérités à la surface des dents : la mèche à retirer est mieux tenue et ne glisse pas pendant l'épilation.\u003c\/p\u003e\n\u003cp\u003eLa forme du manche épouse naturellement la main : elle répartit la pression de façon homogène, réduit la fatigue lors des longues séances et aide à garder une bonne posture. Comme un escargot qui avance à petits pas, les Snail sont faits pour des gestes doux et précis.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques des couteaux à épiler Snail\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eTêtes\u003c\/strong\u003e : N°1 Extra Fin, N°2 Fin, N°3 Moyen, de petite taille\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eManche\u003c\/strong\u003e : bois, forme ergonomique inspirée de l'escargot (trois bois différents selon le modèle)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAcier\u003c\/strong\u003e : acier tendre qui ne coupe pas le poil, pour une meilleure prise de la mèche\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFabrication\u003c\/strong\u003e : entièrement artisanale\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eUtilisation des couteaux à épiler Snail\u003c\/h2\u003e\n\u003cp\u003eUtilisez-les pour le stripping des zones délicates et pour les finitions de détail. L'acier tendre peut avoir tendance à rouiller légèrement : nettoyez vos couteaux avec une huile classique pour tondeuse après chaque utilisation.\u003c\/p\u003e","brand":"autre","offers":[{"title":"N°1 - Extra Fin","offer_id":60288404423001,"sku":"SO-SNAIL-1","price":129.92,"currency_code":"EUR","in_stock":true},{"title":"N°2 - Fin","offer_id":60288404455769,"sku":"SO-SNAIL-2","price":129.92,"currency_code":"EUR","in_stock":true},{"title":"N°3 - Moyen","offer_id":60288404488537,"sku":"SO-SNAIL-3","price":129.92,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/snail-couteaux-a-epiler-special-one.png?v=1793373107"},{"product_id":"scissor-classic-case-etui-a-ciseaux-en-cuir-special-one","title":"Scissor Classic Case - Etui à Ciseaux en Cuir Special One","description":"\u003cp\u003eLa \u003cstrong\u003eScissor Classic Case\u003c\/strong\u003e de Special One est un étui à ciseaux haut de gamme en véritable cuir de veau, travaillé de façon artisanale. Elle réunit l'aspect pratique et le style traditionnel, pour les toiletteurs qui aiment les beaux accessoires en cuir.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir la Scissor Classic Case ?\u003c\/h2\u003e\n\u003cp\u003eElle reprend la tradition des rouleaux de cuir dans lesquels on rangeait autrefois les outils de coupe pour les protéger des chocs et de l'humidité. Son design classique se ferme avec deux lanières en cuir que l'on noue autour du centre de l'étui.\u003c\/p\u003e\n\u003cp\u003eA l'intérieur, une bande élastique avec coutures de séparation accueille jusqu'à 20 paires de ciseaux : chaque outil reste à sa place et s'attrape facilement. La doublure en daim, douce et élégante, protège les lames des rayures et des chocs pendant le transport et le rangement, et préserve leur affûtage.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques de la Scissor Classic Case\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eMatière\u003c\/strong\u003e : 100 % cuir de veau, fabrication artisanale\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormat\u003c\/strong\u003e : étui roulé\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFermeture\u003c\/strong\u003e : deux lanières en cuir à nouer\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCapacité\u003c\/strong\u003e : jusqu'à 20 paires de ciseaux, bande élastique avec coutures de séparation\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDoublure\u003c\/strong\u003e : daim\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCuir\u003c\/strong\u003e : issu des déchets de l'industrie alimentaire, aucun animal n'est élevé pour la fabrication de ces étuis\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eUtilisation de la Scissor Classic Case\u003c\/h2\u003e\n\u003cp\u003eSpecial One conseille de nettoyer chaque soir vos ciseaux avec une peau de chamois, de les huiler avec une huile spéciale, puis de les ranger dans la Scissor Classic Case : un petit rituel qui les garde en parfait état pour le lendemain.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Default Title","offer_id":60288411042137,"sku":"SO-SCISSOR-CLASSIC-CASE","price":124.8,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/scissor-classic-case-etui-a-ciseaux-en-cuir-special-one.png?v=1793373128"},{"product_id":"scissor-lux-case-etui-a-ciseaux-en-cuir-special-one","title":"Scissor Lux Case - Etui à Ciseaux en Cuir Special One","description":"\u003cp\u003eLa \u003cstrong\u003eScissor Lux Case\u003c\/strong\u003e de Special One est un étui à ciseaux haut de gamme en véritable cuir de veau, travaillé de façon artisanale. Pratique et élégante, elle est pensée pour les toiletteurs professionnels qui prennent soin de leurs outils.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir la Scissor Lux Case ?\u003c\/h2\u003e\n\u003cp\u003eElle reprend la tradition des rouleaux de cuir dans lesquels on rangeait autrefois les outils de coupe pour les protéger des chocs et de l'humidité. Sa fermeture est moderne et rapide : deux larges élastiques placés aux extrémités de l'étui roulé maintiennent les côtés bien serrés.\u003c\/p\u003e\n\u003cp\u003eA l'intérieur, 11 compartiments accueillent des ciseaux de types et de tailles variés. La doublure en daim apporte douceur et protection pendant le rangement, et préserve l'affûtage de vos lames.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques de la Scissor Lux Case\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eMatière\u003c\/strong\u003e : 100 % cuir de veau, fabrication artisanale\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormat\u003c\/strong\u003e : étui roulé\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFermeture\u003c\/strong\u003e : deux larges élastiques aux extrémités\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCapacité\u003c\/strong\u003e : 11 compartiments\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDoublure\u003c\/strong\u003e : daim\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCuir\u003c\/strong\u003e : issu des déchets de l'industrie alimentaire, aucun animal n'est élevé pour la fabrication de ces étuis\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eUtilisation de la Scissor Lux Case\u003c\/h2\u003e\n\u003cp\u003eSpecial One conseille de nettoyer chaque soir vos ciseaux avec une peau de chamois, de les huiler avec une huile spéciale, puis de les ranger dans la Scissor Lux Case : un petit rituel qui les garde en parfait état pour le lendemain.\u003c\/p\u003e","brand":"autre","offers":[{"title":"Default Title","offer_id":60288417300825,"sku":"SO-SCISSOR-LUX-CASE","price":124.8,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/scissor-lux-case-etui-a-ciseaux-en-cuir-special-one.png?v=1793373147"},{"product_id":"groommaster-magnetic-stand-support-magnetique-ciseaux-special-one","title":"GroomMaster Magnetic Stand - Support Magnétique Ciseaux Special One","description":"\u003cp\u003eLe \u003cstrong\u003eGroomMaster Magnetic Stand\u003c\/strong\u003e est le support magnétique pour ciseaux de Special One. Il permet de poser vos ciseaux en toute sécurité, sans chocs, tout en apportant une touche d'élégance à votre poste de travail.\u003c\/p\u003e\n\u003ch2\u003ePourquoi choisir le GroomMaster Magnetic Stand ?\u003c\/h2\u003e\n\u003cp\u003eFabriqué en plexiglas de qualité, il offre un look moderne et une excellente stabilité grâce à son poids bien équilibré. Sa surface est recouverte de liège, un matériau poreux et souple qui amortit les chocs lorsque vous posez vos ciseaux. Le liège est aussi antistatique et facile à nettoyer.\u003c\/p\u003e\n\u003cp\u003eLa force magnétique est calibrée pour tenir fermement les ciseaux tout en permettant de les reprendre facilement d'une seule main : un vrai gain de temps pendant les séances de toilettage intenses. Un espace vide sur la surface aide à saisir rapidement les ciseaux, qui restent protégés des chutes, ce qui limite les risques d'abîmer les lames et les affûtages trop fréquents.\u003c\/p\u003e\n\u003cp\u003eLes ciseaux se posent en parallèle, sans se croiser, ce qui préserve l'intégrité des lames.\u003c\/p\u003e\n\u003ch2\u003eCaractéristiques du GroomMaster Magnetic Stand\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eMatière\u003c\/strong\u003e : plexiglas, surface recouverte de liège antistatique\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCapacité\u003c\/strong\u003e : jusqu'à 5 paires de ciseaux de toilettage\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMaintien\u003c\/strong\u003e : magnétique, ciseaux posés en parallèle\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePrise en main\u003c\/strong\u003e : espace vide pour attraper les ciseaux rapidement, d'une seule main\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eStabilité\u003c\/strong\u003e : poids bien équilibré\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"autre","offers":[{"title":"Default Title","offer_id":60288424837465,"sku":"SO-GROOMMASTER-STAND","price":222.4,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/groommaster-magnetic-stand-support-magnetique-ciseaux-special-one.png?v=1793373085"}],"url":"https:\/\/petdesign.fr\/en\/collections\/nouveautes-special-one.oembed?page=2","provider":"Petdesign.fr","version":"1.0","type":"link"}