{"title":"Les Cosmétiques Indispensables","description":null,"products":[{"product_id":"bain-pro-shampoing-doux-tous-pelages","title":"BAIN PRO, shampoing doux tous pelages","description":"\u003c!-- ============================================\n     SYSTÈME DE DESIGN — Affinage visuel\n     ============================================ --\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\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: 16px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e\n\u003cstrong\u003eBAIN PRO\u003c\/strong\u003e est le shampoing professionnel très concentré Special One qui sublime les fourrures en étant \u003cstrong\u003ele plus doux possible, sans jamais agresser\u003c\/strong\u003e. Il révèle la meilleure version du poil — sans amplifier ni le volume ni la texture — en laissant simplement s’exprimer sa vraie nature. C’est aussi un \u003cstrong\u003eantiparasitaire naturel d’appoint\u003c\/strong\u003e : sa mousse abondante et son pH acide neutralisent les puces mécaniquement, sans insecticide chimique. Un seul shampoing, des dizaines de bénéfices.\u003c\/div\u003e\n\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;\"\u003ePour qui est fait ce produit ?\u003c\/h2\u003e\n\u003cp style=\"margin-bottom: 20px; font-size: 14px;\"\u003eTout le monde y trouvera un réel intérêt — concurrent direct de l'Aquarosa Pro (le plus nourrissant), \u003cstrong\u003eBain Pro est le choix de la douceur absolue\u003c\/strong\u003e pour tous les pelages, du chiot au sénior.\u003c\/p\u003e\n\u003cdiv class=\"aqr-audience\"\u003e\n\u003cdiv class=\"aqr-audience-grid\"\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eToiletteurs\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eÉleveurs\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eParticuliers\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eCompétiteurs\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eHandlers\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- BLOC 2 : EXPERTISE \u0026 RÉSULTATS --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\n\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; Résultats\u003c\/h2\u003e\n\u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eEnrichi d’un mélange de \u003cstrong\u003etensioactifs d’origine naturelle\u003c\/strong\u003e et de substances hydratantes, Bain Pro redonne brillance et élasticité au poil dès les premiers soins. Son \u003cstrong\u003eaction antiparasitaire naturelle\u003c\/strong\u003e — par asphyxie mécanique via la mousse abondante et un pH acide qui fragilise les puces — en fait un lavant d’appoint parfaitement adapté aux chiots, chatons et animaux sensibles, \u003cstrong\u003esans insecticide chimique\u003c\/strong\u003e.\u003c\/p\u003e\n\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\u003eLimite de douceur :\u003c\/strong\u003e de par sa formule très douce, Bain Pro peut ne pas suffire si l’animal est très sale. Dans ce cas, commencez par un premier shampoing plus nettoyant — \u003cstrong\u003eAquapure Pro, Blue Sky Pro ou Aquarosa Pro\u003c\/strong\u003e.\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefits\" style=\"margin-top: 20px;\"\u003e\n\u003cdiv class=\"aqr-benefits-grid\"\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 0;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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 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\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eDouceur universelle : bébé, adulte, sénior\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eBain en douceur pour chiens et chats de tous âges, du bébé au sénior.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 1;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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 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\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eNettoyage en profondeur\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eNettoie, assainit et donne un coup d’éclat à tous les types de poils.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 2;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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=\"M7 7c3 3 7 7 10 10M17 7C14 10 10 14 7 17\"\u003e\u003c\/path\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"2.4\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eAnti-nœuds\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eN’amplifie jamais le volume naturel — évite le retour rapide des nœuds après le bain.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 3;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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 8a4 4 0 0 1 4 4v2a4 4 0 0 1-8 0v-2a4 4 0 0 1 4-4z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 4v4M9 6l-1.5-1.5M15 6l1.5-1.5M8 12H4M20 12h-4M8 16l-2 1.5M16 16l2 1.5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eAntiparasitaire naturel\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eNeutralise mécaniquement les puces par asphyxie via la mousse et le pH acide — sans insecticide chimique.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 4;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eProtection kératine\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eAugmente les défenses naturelles pour protéger la structure du poil.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 5;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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 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\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003ePeaux grasses\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eTraite le sébum en excès tout en préservant le film hydrolipidique.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 6;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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=\"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\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eBains fréquents\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eAucun risque pour la peau et le poil, même en utilisation intensive.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 7;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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=\"M7 9h10l1.5 10H5.5zM9 9V7a3 3 0 0 1 6 0v2\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003ePlombé\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eAide à plomber les fourrures soyeuses sans les alourdir excessivement.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 8;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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 21V9\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 13C9 13 6 11 6 7c4 0 6 2 6 6z\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 11c0-3 2-5 6-5 0 4-3 5-6 5z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eCroissance \u0026amp; concours\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eParfait pour faire pousser le poil des chiens de concours, toutes races confondues.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 9;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eDémêlage \u0026amp; brushing\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eFacilite le démêlage, rend le brushing plus fluide et réduit le temps de travail.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- BLOC RADAR (deplace sous Expertise) --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n\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;\"\u003eMieux comprendre les actions du Bain Pro\u003c\/h2\u003e\n\u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eLe détail de ses performances cosmétologiques, note par note.\u003c\/p\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: 16px 28px; overflow: visible;\"\u003e\n\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\n\u003cdiv id=\"so-radar-footer\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cscript\u003e\n  (function() {\n    var PRODUCT = { criteria: [ { label: \"Hydratation\", value: 4 }, { label: \"Démêlant\", value: 4 }, { label: \"Plombant\", value: 4 }, { label: \"Texture\", value: 1 }, { label: \"Soin peau\", value: 5 }, { label: \"Brillance\", value: 5 } ] };\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!-- BLOC 3 : COMPOSITION (CARTOGRAPHIE JS actifs Bain Pro - fiabilisee) --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n\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 du Bain Pro : actifs naturels \u0026amp; action ciblée\u003c\/h2\u003e\n\u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eTensioactifs d’origine naturelle, protéines nobles et actifs biosourcés — \u003cstrong\u003esans parabens, sans silicone\u003c\/strong\u003e. Voici, zone par zone, comment chaque actif agit sur la peau et le poil.\u003c\/p\u003e\n\u003c!-- CARTOGRAPHIE --\u003e\n\u003cdiv id=\"aqr-carto\" style=\"background: #fff; border: 1px solid #e5e5e5; padding: 18px;\"\u003e\n\u003cdiv class=\"aqr-grid\"\u003e\n\u003cdiv class=\"aqr-col-list\"\u003e\n\u003cul class=\"aqr-list\" id=\"aqrList\"\u003e\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-col-schema\"\u003e\n\u003cdiv class=\"aqr-schema-wrap\" id=\"aqrSchemaWrap\"\u003e\n\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 Bain 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\n\u003cdiv class=\"aqr-connectors\" id=\"aqrConnectors\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-col-info\"\u003e\n\u003cdiv class=\"aqr-info\" id=\"aqrInfo\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n\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:'soie', label:'Protéines de Soie', latin:'Sericin \u0026 fibroïne', family:'cond',\n          desc:\"Protéines gainantes à forte affinité kératinique : elles détendent le poil, lissent la cuticule et renforcent la fibre pour une brillance naturelle.\",\n          targets: [\n            { anchor:'cuticule', action:\"Lissage \u0026 gainage\", benefit:\"Lissent la cuticule et favorisent la brillance naturelle du poil.\" },\n            { anchor:'tige_poil', action:\"Renfort de la fibre\", benefit:\"Renforcent la fibre capillaire et détendent le poil au brossage.\" }\n          ]\n        },\n        {\n          id:'lait', label:'Protéines de Lait', latin:'Protéines lactées', family:'cond',\n          desc:\"Protéines nourrissantes qui revitalisent les poils ternes ou cassants et maintiennent la souplesse du manteau.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Nutrition \u0026 élasticité\", benefit:\"Nourrissent la fibre et redonnent élasticité aux poils ternes ou cassants.\" },\n            { anchor:'cuticule', action:\"Souplesse du manteau\", benefit:\"Maintiennent la souplesse et le confort de toucher du pelage.\" }\n          ]\n        },\n        {\n          id:'lichen', label:'Lichen d’Islande', latin:'Cetraria islandica', family:'botanic',\n          desc:\"Mousse montagnarde riche en polysaccharides et mucilages : propriétés antimicrobiennes, purifiantes et calmantes marquées, elle apaise les peaux déshydratées.\",\n          targets: [\n            { anchor:'epiderme', action:\"Apaisant \u0026 purifiant\", benefit:\"Apaise les peaux déshydratées, sensibles ou sujettes aux démangeaisons.\" },\n            { anchor:'glande_seb', action:\"Équilibre microbien\", benefit:\"Favorise l’équilibre microbien naturel de la peau.\" }\n          ]\n        },\n        {\n          id:'levures', label:'Levures Hydrolysées', latin:'Ferments biosourcés', family:'bio',\n          desc:\"Actifs biosourcés qui renforcent et illuminent le pelage tout en contribuant à restaurer une barrière cutanée saine.\",\n          targets: [\n            { anchor:'epiderme', action:\"Barrière cutanée\", benefit:\"Contribuent à restaurer une barrière cutanée saine et équilibrée.\" },\n            { anchor:'tige_poil', action:\"Éclat du pelage\", benefit:\"Renforcent et illuminent le poil de l’intérieur.\" }\n          ]\n        },\n        {\n          id:'fucus', label:'Extrait de Fucus', latin:'Chêne marin (algue)', family:'aqua',\n          desc:\"Algue riche en iode, polyphénols et vitamines : les polyphénols soutiennent la régénération cellulaire, l’iode active la circulation dans les racines du poil.\",\n          targets: [\n            { anchor:'follicule', action:\"Circulation \u0026 métabolisme\", benefit:\"L’iode active la circulation et le métabolisme à la racine du poil.\" },\n            { anchor:'derme', action:\"Régénération cellulaire\", benefit:\"Les polyphénols soutiennent la régénération et la tonicité de la peau.\" }\n          ]\n        },\n        {\n          id:'piroctone', label:'Piroctone Olamine', latin:'Actif antifongique \u0026 antiparasitaire doux', family:'bio',\n          desc:\"Actif anti-levures et antifongique naturel ; toxique pour les puces, il participe — avec le pH acide du bain — à l’action antiparasitaire naturelle du Bain Pro.\",\n          targets: [\n            { anchor:'epiderme', action:\"Antiparasitaire (pH acide)\", benefit:\"Avec le pH acide (~5), fragilise l’exosquelette des puces et facilite leur élimination, sans insecticide.\" },\n            { anchor:'glande_seb', action:\"Séborégulation antifongique\", benefit:\"Régule les peaux grasses, réduit les mauvaises odeurs et assainit la flore cutanée.\" }\n          ]\n        },\n        {\n          id:'glycerine', label:'Glycérine Végétale', latin:'Glycérol végétal', family:'aqua',\n          desc:\"Humectant doux qui hydrate poil et peau sans graisser, lisse la cuticule et favorise une brillance durable.\",\n          targets: [\n            { anchor:'film_hydro', action:\"Hydratation sans graisser\", benefit:\"Capte et retient l’eau pour une peau et un poil souples.\" },\n            { anchor:'cuticule', action:\"Brillance durable\", benefit:\"Lisse la cuticule et fixe une brillance qui dure.\" }\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\n\u003c\/div\u003e\n\u003c!-- BLOC 4 : PROTOCOLES --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\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;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/h2\u003e\n\u003c!-- DILUTION P4 : 3 cartes sobres (Ratio · Rendement · Équivalences animées) --\u003e\n\u003cdiv class=\"aqr-dilution\" style=\"margin-bottom: 12px;\"\u003e\n\u003cdiv class=\"aqr-dilution-eyebrow\"\u003eDilution de référence\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-grid\"\u003e\n\u003c!-- CARTE 1 : Ratio --\u003e\n\u003cdiv class=\"aqr-dilution-cell\"\u003e\n\u003cdiv class=\"aqr-dilution-cell-label\"\u003eRatio\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-value\"\u003e1\u003cspan class=\"aqr-dilution-slash\"\u003e\/\u003c\/span\u003e20\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-note\"\u003eUne part de shampoing\u003cbr\u003epour 20 parts d'eau\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARTE 2 : Rendement --\u003e\n\u003cdiv class=\"aqr-dilution-cell\"\u003e\n\u003cdiv class=\"aqr-dilution-cell-label\"\u003eRendement\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n\u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e250 mL\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 5 L\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e1 L\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 20 L\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e5 L\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 100 L\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-note\"\u003eprêts à l'emploi\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARTE 3 : Équivalences animées --\u003e\n\u003cdiv class=\"aqr-dilution-cell\"\u003e\n\u003cdiv class=\"aqr-dilution-cell-label\"\u003ePour \u003cspan id=\"aqrCycleTarget\" class=\"aqr-dilution-cycle-target\"\u003e1 L\u003c\/span\u003e de produit fini\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n\u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cstrong id=\"aqrCycleMl\"\u003e50\u003c\/strong\u003e mL \u003cspan\u003een volume\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleG\"\u003e50\u003c\/strong\u003e g \u003cspan\u003een poids\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleSpoon\"\u003e3\u003c\/strong\u003e \u003cspan id=\"aqrCycleSpoonLabel\"\u003ecuillères à soupe\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCyclePump\"\u003e2\u003c\/strong\u003e \u003cspan id=\"aqrCyclePumpLabel\"\u003epressions de pompe\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\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: '50',  g: '50',  spoon: '3',  pump: '2' },\n        { target: '2 L', ml: '100', g: '100', spoon: '6',  pump: '4' },\n        { target: '4 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\n\u003cdetails class=\"aqr-proto-acc\" open=\"\"\u003e\n\u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eLavage en douceur — tous pelages, tous âges\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\n\u003cdiv class=\"aqr-proto-content\"\u003e\n\u003cp class=\"aqr-proto-subtitle\"\u003eLe protocole de base, adapté à toutes les situations courantes\u003c\/p\u003e\n\u003col class=\"aqr-proto-steps\"\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n\u003cdiv class=\"aqr-proto-step-body\"\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003ePremier shampoing\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eMouillez le poil abondamment. Appliquez Bain Pro dilué à \u003cstrong\u003e1\/20\u003c\/strong\u003e, puis rincez.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n\u003cdiv class=\"aqr-proto-step-body\"\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eSecond shampoing\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eAppliquez un \u003cstrong\u003esecond shampoing\u003c\/strong\u003e, puis rincez de nouveau.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n\u003cdiv class=\"aqr-proto-step-body\"\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eSoin final\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eFinalisez avec l’après-shampoing adapté : \u003cstrong\u003eHydrating Cream, Bombastic ou Aqua Dolce\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e04\u003c\/span\u003e\n\u003cdiv class=\"aqr-proto-step-body\"\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eFinition\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eComplétez le toilettage avec \u003cstrong\u003eAbsolute 4Poodle, Mix Pink ou Style 360\u003c\/strong\u003e selon le besoin.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"aqr-proto-acc\"\u003e\n\u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eProtocole anti-nœuds \u0026amp; régulation du sébum\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\n\u003cdiv class=\"aqr-proto-content\"\u003e\n\u003cp class=\"aqr-proto-subtitle\"\u003ePour les chiens qui feutrent facilement ou présentent des déséquilibres cutanés (sébum, pellicules, odeurs)\u003c\/p\u003e\n\u003col class=\"aqr-proto-steps\"\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n\u003cdiv class=\"aqr-proto-step-body\"\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eMasque pré-bain\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eCommencez par le masque pré-bain \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e pour préparer et amplifier l’action du shampoing.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n\u003cdiv class=\"aqr-proto-step-body\"\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eApplication sans rincer\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eAppliquez Bain Pro dilué à 1\/20, \u003cstrong\u003esans rincer le masque\u003c\/strong\u003e au préalable.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n\u003cdiv class=\"aqr-proto-step-body\"\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003ePose \u0026amp; rinçage\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eLaissez poser quelques instants, rincez, puis renouvelez si nécessaire.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e\n\u003cdiv class=\"aqr-proto-step-body\"\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eFinition anti-nœuds\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eFinalisez avec \u003cstrong\u003eHydrating Cream + Aqua Dolce\u003c\/strong\u003e pour un manteau conditionné qui retarde le retour des nœuds.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"aqr-proto-acc\"\u003e\n\u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eChoisissez Bain Pro si vous avez besoin de…\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\n\u003cdiv class=\"aqr-proto-content\"\u003e\n\u003cp class=\"aqr-proto-subtitle\"\u003eLes situations où le Bain Pro fait toute la différence\u003c\/p\u003e\n\u003col class=\"aqr-proto-steps\"\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n\u003cdiv class=\"aqr-proto-step-body\"\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eLaver en douceur\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eN’importe quel chien ou chat, quel que soit l’âge ou le type de pelage.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n\u003cdiv class=\"aqr-proto-step-body\"\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eFaire pousser le poil\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eIdéal pour les chiens de concours, toutes races confondues (9e groupe, terriers, 8e groupe…).\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n\u003cdiv class=\"aqr-proto-step-body\"\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eMettre en place un protocole anti-nœuds\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eSur un chien qui feutre facilement.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e04\u003c\/span\u003e\n\u003cdiv class=\"aqr-proto-step-body\"\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eRéguler le sébum\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eEn excès ou en manque, avec pellicules ou mauvaises odeurs — sans agresser la peau.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- BLOC 5 : ASSOCIATIONS \u0026 RACES --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\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;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/h2\u003e\n\u003c!-- Bain Pro au cœur + compléments modulaires Si... → Alors --\u003e\n\u003cdiv class=\"aqr-assoc\"\u003e\n\u003cp class=\"aqr-assoc-intro\"\u003e\u003cstrong\u003eToute la gamme Special One\u003c\/strong\u003e est compatible avec le Bain Pro. Nos alliances préférées :\u003c\/p\u003e\n\u003cdiv class=\"aqr-assoc-rules\"\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eun nettoyage plus puissant est requis…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eBlue Sky Pro · Aquarosa Pro · Aquapure Pro\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eun masque pré-bain est souhaité…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eun soin final s’impose…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eHydrating Cream · Bombastic · Aqua Dolce (+ Hygro Fluid)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eune finition show est recherchée…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eAbsolute 4Poodle · Mix Pink · Style 360\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\u003c!-- Races en pilules arrondies --\u003e\n\u003ch3 style=\"font-size: 13px; font-weight: 600; color: #1a1a1a; margin: 0 0 12px;\"\u003eLà où le Bain Pro fait la différence :\u003c\/h3\u003e\n\u003cdiv class=\"aqr-races-mosaic\"\u003e\n\u003cspan class=\"aqr-race-tag\"\u003e🐱 Tous les chats\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e🐶 Tous les chiens en salon \u003cspan\u003e(limite le retour des nœuds)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e🏆 Chiens de show à manteau long \u0026amp; frangé \u003cspan\u003e(franges, toupet, barbe)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e🐩 Fourrures frisées \u003cspan\u003e(Caniches, Bichons, Kerry Blue, Soft Coated, Bedlington)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e🐕 Tous les Cockers \u003cspan\u003e(Américain, Anglais)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e🏔️ Races tibétaines \u003cspan\u003e(Shih-Tzu, Lhassa, Terrier du Tibet)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e👑 Épagneuls Nains Anglais \u003cspan\u003e(Cavalier \u0026amp; King Charles)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e✨ Fourrures longues \u0026amp; soyeuses \u003cspan\u003e(Yorkshire, Afghans)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e🐾 Terriers \u003cspan\u003e(Scottish, Westie, Welsh)\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp style=\"margin-top: 14px; font-size: 11px; color: #888; font-style: italic;\"\u003eListe longue et non exhaustive — la douceur absolue pour tous les pelages, du chiot au sénior.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\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 +90% | Sans Paraben, Silicone | Non testé sur les animaux | PEHD02 Recyclable\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"Endemik Sas","offers":[{"title":"250 mL","offer_id":42903274225884,"sku":"WEX-BA250 (118)","price":21.9,"currency_code":"EUR","in_stock":true},{"title":"1 L","offer_id":42903274258652,"sku":"WEX-BA1 016 (124)","price":42.2,"currency_code":"EUR","in_stock":true},{"title":"5 Litres","offer_id":42903274291420,"sku":"WEX-BA5 011 (135)","price":108.6,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/Design_sans_titre_-_2025-04-16T140126.314.png?v=1744811139"},{"product_id":"bio-energy-plus-masque-pre-bain","title":"BIO ENERGY PLUS, masque au caviar vert","description":"\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\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\u003eBIO ENERGY PLUS\u003c\/strong\u003e est le masque pré-bain ultra concentré de Special One, à double action \u003cstrong\u003e\"Beauté\" et \"Santé\"\u003c\/strong\u003e. Il agit instantanément sur le poil sec, sale et non démêlé — avant même le shampoing. Élément incontournable du programme d'hydratation Special One, il transforme le toilettage et fait franchir un cap visible dès la première utilisation.\n    \u003c\/div\u003e\n\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003ePour qui est fait ce produit ?\u003c\/span\u003e\n    \u003cp style=\"margin-bottom: 15px; font-size: 14px;\"\u003eTout le monde y trouvera un réel intérêt — y compris ceux qui n'ont jamais utilisé de masque pré-bain et qui découvrent une innovation qui va transformer leur toilettage.\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;\"\u003e✅ Toiletteurs\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;\"\u003e✅ Particuliers\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;\"\u003e✅ Compé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;\"\u003e✅ Handlers\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 du Bio Energy Plus\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: \"Hydratation\",  value: 5 },\n        { label: \"Soin peau\",    value: 5 },\n        { label: \"Démêlant\",     value: 3 },\n        { label: \"Brillance\",    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\n\n  \u003cdiv style=\"padding: 30px 20px; background-color: #ffffff;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eExpertise \u0026amp; Résultats\u003c\/span\u003e\n    \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eSa composition ultra technologique fait immédiatement un bien profond au poil et à la peau de l'animal. \u003cstrong\u003eIl s'applique sur poil sec, sale, non démêlé — sans rinçage avant le shampoing.\u003c\/strong\u003e Cette étape supplémentaire par rapport au cycle de bain classique est pourtant celle dont dépend fortement la qualité du résultat final.\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: none;\"\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eDouble action Beauté \u0026amp; Santé :\u003c\/strong\u003e Améliore la texture tout en traitant la peau et la fourrure en profondeur.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eHydratation intense :\u003c\/strong\u003e Hydrate, soigne, traite et restaure la fourrure et la peau dès la première application.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eRavive les couleurs :\u003c\/strong\u003e Stimule la production de mélanine — les couleurs naturelles du pelage gagnent en intensité et en profondeur.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eMicrocirculation cutanée :\u003c\/strong\u003e Active la circulation dans les racines du poil, favorisant la croissance et le renouvellement du manteau.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eRéparation :\u003c\/strong\u003e Aide à réparer les pelages endommagés, fragilisés ou surmenés.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003ePréparation à la coupe :\u003c\/strong\u003e Idéal pour préparer les fourrures avant une coupe aux ciseaux ou en salon.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eAnti-mue \u0026amp; démêlage :\u003c\/strong\u003e Facilite l'évacuation du poil mort et aide à prévenir ou accélérer la mue.\u003c\/li\u003e\n        \u003cli\u003e✅ \u003cstrong\u003eUniversel :\u003c\/strong\u003e Convient aux chiens et chats de tous âges, du bébé au sénior.\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eSynergie d'Actifs Naturels\u003c\/span\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eUne formulation ultra technologique alliant actifs marins, végétaux et structurants — sans parabens, sans silicone.\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\u003e🍀 Collagène Hydrolysé\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 11px; color: #666;\"\u003eAction anti-inflammatoire — renforce la structure interne du poil et améliore l'élasticité de la fibre.\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\u003e🍀 Caviar Vert (Caulerpa Lentillifera)\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 11px; color: #666;\"\u003eAlgue japonaise anti-âge : riche en minéraux (fer, calcium, zinc, potassium), vitamines A \u0026amp; C et acides aminés. Stimule la production de collagène et d'élastine.\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\u003e🍀 Spiruline\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 11px; color: #666;\"\u003ePuissant antioxydant qui redonne vigueur et brillance aux manteaux abîmés. Réduit le sébum, lutte contre les pellicules, prévient la chute et favorise la croissance du poil.\u003c\/span\u003e\n          \u003c\/td\u003e\n          \u003ctd style=\"border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e\n            \u003cstrong\u003e🍀 Fucus (Chêne Marin)\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 11px; color: #666;\"\u003eRiche en iode, polyphénols et vitamines. Les polyphénols soutiennent la régénération cellulaire ; l'iode active le métabolisme et améliore la circulation dans les racines du poil.\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\u003e🍀 Laminaria\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 11px; color: #666;\"\u003eDétox naturelle grâce à l'acide alginique — forme un gel au contact de l'eau qui capte et élimine les substances nocives pour la peau.\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  \u003cdiv style=\"padding: 30px 20px; background-color: #ffffff;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/span\u003e\n\n    \u003cdiv style=\"margin-bottom: 10px; padding: 12px 15px; background: #f6f6f6; border: 1px solid #e5e5e5; font-size: 13px; font-weight: 600;\"\u003e\n      💡 \u003cstrong\u003eEn pré bain pur : appliquer sur poil sec, sale, non démêlé.\u003c\/strong\u003e Ne pas rincer avant le shampoing — c'est le principe fondamental du masque pré-bain.\n    \u003c\/div\u003e\n    \u003cdiv style=\"margin-bottom: 15px; padding: 12px 15px; background: #fff8e1; border-left: 3px solid #f0a500; font-size: 13px;\"\u003e\n      ⚠️ Ne pas laisser poser plus de \u003cstrong\u003e30 minutes\u003c\/strong\u003e. Ne pas rincer le produit avant de réaliser le shampoing.\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 🔥 Objectif Beauté — éclat, texture \u0026amp; couleurs\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        1. Diluez Bio Energy Plus à \u003cstrong\u003e1\/20\u003c\/strong\u003e.\u003cbr\u003e\n        2. Appliquez sur le poil sec, sale, non démêlé — en couvrant bien l'ensemble du manteau.\u003cbr\u003e\n        3. Laissez poser \u003cstrong\u003e5 à 30 minutes\u003c\/strong\u003e selon l'intensité souhaitée.\u003cbr\u003e\n        4. Passez directement au shampoing \u003cstrong\u003esans rincer\u003c\/strong\u003e au préalable.\u003cbr\u003e\n        Résultat : texture améliorée, couleurs ravivées, brillance relancée dès la sortie du bain.\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 🔥 Objectif Santé — peau \u0026amp; fourrure endommagée\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        Pour les peaux sensibles, irritées ou les fourrures très abîmées :\u003cbr\u003e\n        1. Appliquez le produit \u003cstrong\u003epur sur les zones les plus critiques\u003c\/strong\u003e (zones sèches, irritées, poils cassants).\u003cbr\u003e\n        2. Diluez à \u003cstrong\u003e1\/15\u003c\/strong\u003e pour l'application sur le reste du manteau.\u003cbr\u003e\n        3. \u003cstrong\u003eCouvrez l'animal d'une serviette\u003c\/strong\u003e et laissez poser \u003cstrong\u003e20 à 30 minutes\u003c\/strong\u003e pour une absorption maximale des actifs réparateurs.\u003cbr\u003e\n        4. Passez au shampoing sans rincer au préalable — le premier shampoing s'applique directement sur le produit en pose.\u003cbr\u003e\u003cbr\u003e\n        \u003cdiv style=\"background: #f0f7ff; border-left: 3px solid #4a90d9; padding: 10px 12px; font-size: 12px;\"\u003e\n          💧 \u003cstrong\u003eEn cas d'anomalies cutanées persistantes :\u003c\/strong\u003e il est conseillé de réaliser le bain suivant avec le shampoing \u003cstrong\u003eSkincare Pro\u003c\/strong\u003e pour potentialiser l'action thérapeutique du masque.\n        \u003c\/div\u003e\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 🔥 Objectif Démêlage \u0026amp; Anti-mue\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        Pour traiter, accélérer ou prévenir la mue, et faciliter le démêlage :\u003cbr\u003e\n        1. Diluez à \u003cstrong\u003e1\/20\u003c\/strong\u003e, puis ajoutez une crème après-shampoing ainsi qu'un produit huileux de la gamme (Huiles 4 Éléments ou Aqua Dolce).\u003cbr\u003e\n        2. Appliquez sur le poil sec. \u003cstrong\u003eTravaillez avec vos outils de toilettage habituels\u003c\/strong\u003e (brosse, peigne) — le produit facilite l'évacuation du poil mort et le démêlage en douceur.\u003cbr\u003e\n        3. Au bout d'une dizaine de minutes, passez directement au shampoing \u003cstrong\u003esans rincer\u003c\/strong\u003e.\n      \u003c\/div\u003e\n    \u003c\/details\u003e\n\n    \u003cdiv style=\"margin-top: 20px; padding: 20px; background: #f6f6f6; border: 1px dashed #1a1a1a;\"\u003e\n      \u003cspan style=\"font-size: 11px; font-weight: bold; text-transform: uppercase; display: block; margin-bottom: 10px;\"\u003e🛠️ ASSOCIATIONS BOOSTER :\u003c\/span\u003e\n      \u003cdiv style=\"font-size: 13px; line-height: 1.8;\"\u003e\n        Pour une efficience optimale, mélangez Bio Energy Plus avec un ou plusieurs \u003cstrong\u003eintégrateurs à base huileuse\u003c\/strong\u003e :\u003cbr\u003e\n        ✨ \u003cstrong\u003eAqua Dolce\u003c\/strong\u003e et\/ou \u003cstrong\u003eHuiles 4 Éléments\u003c\/strong\u003e et\/ou \u003cstrong\u003eBombastic\u003c\/strong\u003e\u003cbr\u003e\u003cbr\u003e\n        Le bain se prolonge ensuite avec n'importe quel shampoing + masque + conditionneur de la gamme Special One.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/span\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eCompatible avec l'ensemble de la gamme Special One en aval. Bio Energy Plus est la \u003cstrong\u003epremière étape\u003c\/strong\u003e — tout le reste du protocole de bain vient après.\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✔️ Tous les chats — notamment pour dégraisser sans décaper.\u003c\/td\u003e\u003c\/tr\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Tous les chiens en salon — pour limiter le retour rapide des nœuds.\u003c\/td\u003e\u003c\/tr\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Fourrures frisées : Caniches, Bichons, Kerry Blue, Soft Coated, Bedlington…\u003c\/td\u003e\u003c\/tr\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Tous les Cockers (Américain, Anglais)\u003c\/td\u003e\u003c\/tr\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Races tibétaines : Shih-Tzu, Lhassa, Terrier du Tibet…\u003c\/td\u003e\u003c\/tr\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Épagneuls Nains Anglais (Cavalier et King Charles)\u003c\/td\u003e\u003c\/tr\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Fourrures longues et soyeuses : Yorkshire, Afghans…\u003c\/td\u003e\u003c\/tr\u003e\n        \u003ctr\u003e\u003ctd style=\"padding: 10px 0;\"\u003e✔️ Terriers : Scottish, Westie, Welsh… — liste longue et non exhaustive !\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 +90% | Sans Paraben, Silicone | 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":37819388494003,"sku":"WEX-BIO250 (100)","price":23.9,"currency_code":"EUR","in_stock":true},{"title":"1 Litre","offer_id":37819388428467,"sku":"WEX-BIO1 02 (106)","price":46.3,"currency_code":"EUR","in_stock":true},{"title":"5 Litres","offer_id":37819388461235,"sku":"WEX-BIO5 01 (99)","price":142.8,"currency_code":"EUR","in_stock":true},{"title":"10 Litres","offer_id":37819388526771,"sku":"WEX-KE10000 (251)","price":249.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/bioEnergyPlus.png?v=1680247667"},{"product_id":"huiles-4-elements","title":"HUILES 4 ELEMENTS","description":"\u003cbody\u003e\n\n\n\u003cmeta charset=\"UTF-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n\u003ctitle\u003eHuiles 4 Éléments – Special One | Fiche Produit\u003c\/title\u003e\n\n\n\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\u003eHUILES 4 ÉLÉMENTS\u003c\/strong\u003e est le mélange d'huiles Special One étudié pour \u003cstrong\u003erenforcer et reconstruire le pelage\u003c\/strong\u003e. Un vrai touche-à-tout qui sublime tous les pelages de toutes les races — en intégrateur, en démêlant, en soin avant-bain, en papillotes ou en cataplasmes.\n    \u003c\/div\u003e\n\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003ePour qui est fait ce produit ?\u003c\/span\u003e\n    \u003cp style=\"margin-bottom: 15px; font-size: 14px;\"\u003eTout le monde y trouvera un réel intérêt — ce produit sublimera tous les pelages sans exception.\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;\"\u003e✅ Toiletteurs\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;\"\u003e✅ Particuliers\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;\"\u003e✅ Compé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;\"\u003e✅ Handlers\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 2 : EXPERTISE \u0026 RÉSULTATS --\u003e\n  \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eExpertise \u0026amp; Résultats\u003c\/span\u003e\n\n    \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eCe complexe de \u003cstrong\u003equatre huiles végétales précieuses\u003c\/strong\u003e — formulé à base de fractions \u003cstrong\u003einsaponifiables\u003c\/strong\u003e, la partie la plus noble de chaque huile, concentrant vitamines liposolubles, antioxydants, polyphénols et squalène — s'intègre à toutes les étapes du toilettage. Sa polyvalence et sa douceur en font un indispensable de toutes les mallettes. \u003cstrong\u003eNon gras, non occlusif\u003c\/strong\u003e : grâce à son affinité avec le sébum et ses propriétés sébo-restitutives, il est absorbé facilement par la peau et le poil, nourrissant en profondeur et durablement sans jamais alourdir.\u003c\/p\u003e\n\n    \u003cdiv style=\"background: #fff8e1; border-left: 3px solid #f0a500; padding: 12px 15px; font-size: 13px; margin-bottom: 20px;\"\u003e\n      ⚠️ \u003cstrong\u003eNe pas utiliser en grande quantité dans l'après-shampoing non rincé :\u003c\/strong\u003e trop d'huile + chaleur du sèche-cheveux = effet \"cuisson\" — le poil ressort sec et en souffrance. Privilégiez l'huile \u003cstrong\u003een amont du bain\u003c\/strong\u003e, pas juste avant le brushing.\n    \u003c\/div\u003e\n\n    \u003cdiv style=\"background: #fff; padding: 20px; border: 1px solid #e5e5e5;\"\u003e\n      \u003cul style=\"padding-left: 20px; margin: 0; font-size: 14px; list-style-type: none;\"\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eAction revitalisante \u0026amp; restructurante :\u003c\/strong\u003e Renforce et reconstruit le pelage en profondeur.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eLuminosité \u0026amp; toucher velouté :\u003c\/strong\u003e Apporte éclat et douceur au manteau dès la première application.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eDémêlant :\u003c\/strong\u003e Facilite le démêlage et le brossage — efficace même à sec sur les nœuds.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eAnti-feutrage :\u003c\/strong\u003e Prévient le retour des nœuds et feutrages entre les bains.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eRéparation :\u003c\/strong\u003e Répare les poils cassés et abîmés, renforce la fibre sur le long terme.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003ePousse améliorée :\u003c\/strong\u003e Utilisé en papillotes et cataplasmes, améliore la croissance et la qualité du manteau.\u003c\/li\u003e\n        \u003cli\u003e✅ \u003cstrong\u003eUniversel :\u003c\/strong\u003e Convient aux chiens et chats de tous âges, du bébé au sénior.\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: #ffffff;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eSynergie d'Actifs Naturels\u003c\/span\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eQuatre huiles végétales précieuses aux propriétés complémentaires — sans parabens, sans silicone.\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\u003e🍀 Huile d'Argan\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eIssue de l'Argania Spinosa du Maroc. Antioxydante, hydratante, élasticisante et cicatrisante — absorbée facilement grâce à ses propriétés sébo-restitutives anti-âge. Riche en acides gras insaturés (linoléique, oléique), carotène, vitamine E et stérols. Idéale pour les manteaux secs et crêpus.\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\u003e🍀 Huile de Noix\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eRiche en tanins, flavonoïdes, acides gallique et caféique. Propriétés dépuratives, antibactériennes, antifongiques et anti-inflammatoires. S'étale rapidement pour lisser les poils frisés ou ébouriffés — idéale en préparation de bains ou de masques.\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\u003e🍀 Huile de Tournesol\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003ePressée à froid, riche en acides oléique (32%) et linoléique (54%) et en vitamine E antioxydante. Renforce la barrière lipidique naturelle et prévient la déshydratation. Régénérante cellulaire — émolliente, hydratante et rééquilibrante pour les peaux sensibles ou irritées.\u003c\/span\u003e\n          \u003c\/td\u003e\n          \u003ctd style=\"border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e\n            \u003cstrong\u003e🍀 Huile de Soja (Maïs)\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eExtraite du germe du maïs — légère, émolliente et levigante. Très bien tolérée par les peaux sèches. Riche en vitamine E, acide oléique et linoléique — anti-âge naturel qui équilibre le film hydrolipidique et illumine le pelage en le laissant velouté.\u003c\/span\u003e\n          \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: #f6f6f6;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/span\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 🔥 Intégrateur — dans le masque pré-bain ou l'après-shampoing\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        La méthode d'intégration universelle :\u003cbr\u003e\n        💫 Dans n'importe quel \u003cstrong\u003emasque pré-bain\u003c\/strong\u003e : \u003cstrong\u003e3 pressions d'Huiles 4 Éléments par litre\u003c\/strong\u003e de produit préparé.\u003cbr\u003e\n        💫 Dans l'\u003cstrong\u003eHydrating Cream en fin de bain\u003c\/strong\u003e : ajoutez \u003cstrong\u003e1 pression\u003c\/strong\u003e pour enrichir le conditionneur.\u003cbr\u003e\n        💫 Pour les fourrures en grande souffrance : appliquez les Huiles \u003cstrong\u003ejusqu'à 24 heures avant le bain\u003c\/strong\u003e pour maximiser le temps d'action et l'intensité des bénéfices.\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; feutrages\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        Pour traiter les nœuds et zones feutrées sans mouiller le poil :\u003cbr\u003e\n        💫 Appliquez les \u003cstrong\u003eHuiles 4 Éléments pures directement sur le nœud\u003c\/strong\u003e. Laissez pénétrer quelques instants.\u003cbr\u003e\n        💫 Brossez délicatement avec une brosse à picots douce — le nœud se défait sans douleur ni casse.\u003cbr\u003e\n        💫 Sur les \u003cstrong\u003echiens papillotés ou élastiqués\u003c\/strong\u003e : à l'ouverture, si le poil est noué ou feutré, appliquez de l'huile pure sur la mèche et brossez à la brosse douce.\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 🔥 Papillotes \u0026amp; cataplasmes — pousse \u0026amp; concours\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        Pour les chiens en papillotes ou nécessitant un traitement de fond pour la pousse :\u003cbr\u003e\n        💫 Utilisez les Huiles \u003cstrong\u003epures ou mélangées avec Aqua Dolce + Hydrating Cream\u003c\/strong\u003e pour préparer et envelopper les mèches.\u003cbr\u003e\n        💫 Le complexe huileux nourrit la fibre de façon prolongée et améliore la qualité et la densité de la repousse au fil des semaines.\u003cbr\u003e\n        💫 Idéal en préparation de concours pour les races dont le manteau doit être long, dense et brillant.\n      \u003c\/div\u003e\n    \u003c\/details\u003e\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 4 🔥 Conditionneur reconstituant post-bain — manteaux très abîmés\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        Pour une action reconstructrice intense après le shampoing :\u003cbr\u003e\n        1. Dans un bol, mélangez \u003cstrong\u003e10 gouttes d'Huiles 4 Éléments + 2 cuillères à soupe de crème\u003c\/strong\u003e au choix : Hydrating Cream, Aqua Dolce ou Extra Body Cream.\u003cbr\u003e\n        2. Diluez avec \u003cstrong\u003e500 mL d'eau chaude\u003c\/strong\u003e et homogénéisez.\u003cbr\u003e\n        3. Appliquez uniformément sur toute la longueur du poil.\u003cbr\u003e\n        4. Sur manteaux très abîmés : laissez poser \u003cstrong\u003e5 minutes sous source de chaleur douce\u003c\/strong\u003e pour favoriser l'absorption. Rincez abondamment.\u003cbr\u003e\n        5. Séchez à basse température, air modéré.\u003cbr\u003e\u003cbr\u003e\n        \u003cem\u003eAlternative simple :\u003c\/em\u003e après le bain, frictionnez quelques gouttes sur le poil humide et séchez sans rincer.\n      \u003c\/div\u003e\n    \u003c\/details\u003e\n  \u003c\/div\u003e\n  \u003cdiv style=\"padding: 30px 20px; background-color: #ffffff;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/span\u003e\n\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003e\n      🤝 \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e en masque pré-bain ·\n      🤝 \u003cstrong\u003eTous les shampoings Special One\u003c\/strong\u003e ·\n      🤝 \u003cstrong\u003eHydrating Cream \/ Aqua Dolce\u003c\/strong\u003e en fin de bain ou pour les papillotes\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\n          \u003ctd style=\"padding: 10px 0;\"\u003e✔️ \u003cstrong\u003eTous les pelages de toutes les races, sans exception\u003c\/strong\u003e — chiens et chats de tous âges.\u003c\/td\u003e\n        \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 +90% | Sans Paraben, Silicone | Non testé sur les animaux | PEHD02 Recyclable\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003c\/body\u003e","brand":"Endemik Sas","offers":[{"title":"200 mL","offer_id":37819388887219,"sku":"WEX-4EL200 (145)","price":71.9,"currency_code":"EUR","in_stock":true},{"title":"50 mL","offer_id":37819388919987,"sku":"WEX-4EL50 (140)","price":37.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/Nouvelleversiontailleproduits-21.png?v=1666170332"},{"product_id":"hygro-fluid","title":"HYGRO FLUID","description":"\u003cbody\u003e\n\n\n\u003cmeta charset=\"UTF-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n\u003ctitle\u003eHygro Fluid – Special One | Fiche Produit\u003c\/title\u003e\n\n\n\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\u003eHYGRO FLUID\u003c\/strong\u003e est l'intégrateur nourrissant Special One étudié pour \u003cstrong\u003erenforcer et reconstruire le pelage\u003c\/strong\u003e. Riche en huiles végétales précieuses, il joue un rôle central dans l'équilibre du film hydrolipidique et le rééquilibrage de la flore cutanée. Sa structure permet une \u003cstrong\u003emeilleure absorption des actifs des produits utilisés ensuite\u003c\/strong\u003e — un amplificateur naturel pour tous vos soins.\n    \u003c\/div\u003e\n\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003ePour qui est fait ce produit ?\u003c\/span\u003e\n    \u003cp style=\"margin-bottom: 15px; font-size: 14px;\"\u003eTout le monde y trouvera un réel intérêt — ce produit sublime tous les pelages sans exception. Parfaitement complémentaire des deux autres intégrateurs de la gamme : \u003cstrong\u003eSuper Keeper et Huiles 4 Éléments\u003c\/strong\u003e.\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;\"\u003e✅ Toiletteurs\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;\"\u003e✅ Particuliers\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;\"\u003e✅ Compé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;\"\u003e✅ Handlers\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 2 : EXPERTISE \u0026 RÉSULTATS --\u003e\n  \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eExpertise \u0026amp; Résultats\u003c\/span\u003e\n\n    \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eHygro Fluid assainit le derme, rééquilibre la flore cutanée et prépare la peau à mieux recevoir les actifs des soins successifs. Son usage en amont amplifie l'efficacité de tous les produits appliqués après lui — un rôle de \u003cstrong\u003ecatalyseur naturel\u003c\/strong\u003e unique parmi les intégrateurs de la gamme.\u003c\/p\u003e\n\n    \u003cdiv style=\"background: #fff8e1; border-left: 3px solid #f0a500; padding: 12px 15px; font-size: 13px; margin-bottom: 20px;\"\u003e\n      ⚠️ Si vous ajoutez Hygro Fluid en trop grande quantité après le bain sans rincer, faites attention lors du brushing — le résultat pourrait être trop gras. Privilégiez son utilisation \u003cstrong\u003een amont\u003c\/strong\u003e du bain.\n    \u003c\/div\u003e\n\n    \u003cdiv style=\"background: #fff; padding: 20px; border: 1px solid #e5e5e5;\"\u003e\n      \u003cul style=\"padding-left: 20px; margin: 0; font-size: 14px; list-style-type: none;\"\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eAction revitalisante \u0026amp; restructurante :\u003c\/strong\u003e Renforce et reconstruit le pelage en profondeur.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eLuminosité \u0026amp; toucher velouté :\u003c\/strong\u003e Apporte éclat et douceur au manteau dès la première application.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eDémêlant :\u003c\/strong\u003e Facilite le démêlage et le brossage, prévient le retour des nœuds et feutrages.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eRéparation :\u003c\/strong\u003e Répare les poils cassés et renforce la fibre sur le long terme.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eProtection cutanée :\u003c\/strong\u003e Préserve la peau des agressions et de la saleté en rééquilibrant le film hydrolipidique.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003ePréparation aux concours :\u003c\/strong\u003e Prépare les fourrures pour une présentation en ring — résultat optimal en synergie avec les autres intégrateurs.\u003c\/li\u003e\n        \u003cli\u003e✅ \u003cstrong\u003eUniversel :\u003c\/strong\u003e Convient aux chiens et chats de tous âges, du bébé au sénior.\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: #ffffff;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eSynergie d'Actifs Naturels\u003c\/span\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eUn concentré d'huiles végétales précieuses aux propriétés hydratantes, protectrices et anti-âge — sans parabens, sans silicone.\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\u003e🍀 Huile de Riz\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eAntioxydante et filtre UV naturel — absorbe les rayons UV et protège le poil et la peau des dommages liés à l'exposition solaire.\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\u003e🍀 Huile de Graine de Rose\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eRevitalisante et protectrice — nourrit la peau en profondeur, favorise la régénération cellulaire et renforce les défenses naturelles du derme.\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\u003e🍀 Oméga 3 \u0026amp; 6\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eVitaminés et anti-âge pour le poil — nourrissent et renforcent la fibre capillaire, améliorant élasticité, brillance et résistance à long terme.\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: #f6f6f6;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/span\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 🔥 Intégrateur dans le masque pré-bain ou le shampoing\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        La méthode d'intégration quotidienne :\u003cbr\u003e\n        💫 Dans le \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e : ajoutez \u003cstrong\u003e1 à 2 cuillères à soupe d'Hygro Fluid par litre\u003c\/strong\u003e de masque préparé — il amplifie l'action hydratante du masque dès la phase pré-bain.\u003cbr\u003e\n        💫 Dans le \u003cstrong\u003eshampoing\u003c\/strong\u003e : ajoutez \u003cstrong\u003e1 cuillère à soupe\u003c\/strong\u003e directement dans votre shampoing habituel (sauf si vous êtes en recherche de volume maximal).\u003cbr\u003e\n        💫 Pour les fourrures très en souffrance : appliquez Hygro Fluid \u003cstrong\u003ejusqu'à 24 heures avant le bain\u003c\/strong\u003e pour maximiser la pénétration des actifs.\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 🔥 Enrichissement de l'après-shampoing\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        Pour enrichir le conditionneur final :\u003cbr\u003e\n        💫 Ajoutez \u003cstrong\u003e1 à 2 pressions d'Hygro Fluid dans l'Hydrating Cream\u003c\/strong\u003e en fin de bain.\u003cbr\u003e\n        Le complexe d'huiles enrichit le conditionneur et améliore la douceur, le velouté et la tenue du poil après séchage.\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 🔥 Programme peau — lutte contre les problèmes cutanés\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        Hygro Fluid est un élément clé du programme de lutte contre les problèmes de peau :\u003cbr\u003e\n        1. \u003cstrong\u003eBio Energy Plus + Hygro Fluid\u003c\/strong\u003e en masque pré-bain (20 min de pose) — le duo rééquilibre le film hydrolipidique et prépare la peau à absorber le soin suivant.\u003cbr\u003e\n        2. Shampoing avec \u003cstrong\u003eSkincare Pro\u003c\/strong\u003e.\u003cbr\u003e\n        3. Finalisez avec \u003cstrong\u003eHydrating Cream + 1 pression d'Hygro Fluid\u003c\/strong\u003e.\u003cbr\u003e\n        Ce trio (Bio Energy + Hygro Fluid + Skincare Pro) est la référence pour les peaux chroniquement déséquilibrées.\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: #ffffff;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/span\u003e\n\n    \u003cp style=\"font-size: 13px; margin-bottom: 10px;\"\u003eToute la gamme Special One est compatible avec Hygro Fluid. Nos alliances préférées :\u003c\/p\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 15px;\"\u003e\n      🤝 \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e en masque pré-bain (association fondamentale) ·\n      🤝 \u003cstrong\u003eTous les shampoings Special One\u003c\/strong\u003e ·\n      🤝 \u003cstrong\u003eHydrating Cream\u003c\/strong\u003e en fin de bain\n    \u003c\/p\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px; padding: 10px 14px; background: #f9f9f9; border: 1px solid #eee;\"\u003e\n      💛 Parfaitement complémentaire des deux autres intégrateurs : \u003cstrong\u003eSuper Keeper\u003c\/strong\u003e et \u003cstrong\u003eHuiles 4 Éléments\u003c\/strong\u003e — les trois fonctionnent en symbiose pour une action complète sur toutes les fourrures.\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\n          \u003ctd style=\"padding: 10px 0;\"\u003e✔️ \u003cstrong\u003eTous les pelages de toutes les races, sans exception\u003c\/strong\u003e — chiens et chats de tous âges.\u003c\/td\u003e\n        \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 +90% | Sans Paraben, Silicone | Non testé sur les animaux | PEHD02 Recyclable\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003c\/body\u003e","brand":"Endemik Sas","offers":[{"title":"1 Litre","offer_id":37819389083827,"sku":"WEX-HYG 020 (38)","price":77.5,"currency_code":"EUR","in_stock":true},{"title":"250 mL","offer_id":37819389116595,"sku":"WEX-HYG250 (36)","price":36.3,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/hygrofluid_7d67bda4-a773-40c0-a567-df3b744fc2b2.png?v=1680256952"},{"product_id":"hydrating-cream-masque-final-sublimateur","title":"HYDRATING CREAM, masque final sublimateur","description":"\u003c!-- ============================================\n     SYSTÈME DE DESIGN — Affinage visuel\n     ============================================ --\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\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: 16px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e\n\u003cstrong\u003eHYDRATING CREAM\u003c\/strong\u003e est le \u003cstrong\u003emasque hydratant professionnel le plus vendu de l’histoire de Special One\u003c\/strong\u003e. Indispensable pour découvrir la gamme.\u003c\/div\u003e\n\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;\"\u003ePour qui est fait ce produit ?\u003c\/h2\u003e\n\u003cp style=\"margin-bottom: 20px; font-size: 14px;\"\u003eIndispensable pour \u003cstrong\u003etoutes les races\u003c\/strong\u003e, particulièrement pour le \u003cstrong\u003econditionnement des franges, des barbes\u003c\/strong\u003e et les pelages nécessitant une \u003cstrong\u003ehydratation profonde\u003c\/strong\u003e.\u003c\/p\u003e\n\u003cdiv class=\"aqr-audience\"\u003e\n\u003cdiv class=\"aqr-audience-grid\"\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eToiletteurs\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eÉleveurs\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eParticuliers\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eCompétiteurs\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eHandlers\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- BLOC 2 : EXPERTISE \u0026 RÉSULTATS --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\n\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; Résultats\u003c\/h2\u003e\n\u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eUne \u003cstrong\u003eformulation enrichie d’actifs naturels\u003c\/strong\u003e pour nourrir et revitaliser avec un \u003cstrong\u003eeffet anti-âge\u003c\/strong\u003e. Les extraits de \u003cstrong\u003esoie\u003c\/strong\u003e confèrent une brillance exceptionnelle pour une couleur éclatante.\u003c\/p\u003e\n\u003cdiv class=\"aqr-benefits\" style=\"margin-top: 20px;\"\u003e\n\u003cdiv class=\"aqr-benefits-grid\"\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 0;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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 4h16v6M4 4v3M8 4v3M12 4v3M16 4v3M20 4v3M4 10h16l-2 10H6z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eDémêlage\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eFacilite le brossage et \u003cstrong\u003eévite le retour des nœuds\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 1;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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 9h12a3 3 0 1 0-3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 14h16a3 3 0 1 1-3 3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eRapidité\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eRéduit considérablement le \u003cstrong\u003etemps de séchage\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 2;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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=\"4\"\u003e\u003c\/circle\u003e\u003cpath d=\"M12 3v2M12 19v2M3 12h2M19 12h2M5.6 5.6l1.4 1.4M17 17l1.4 1.4M5.6 18.4l1.4-1.4M17 7l1.4-1.4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eProtection\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003e\n\u003cstrong\u003eFiltre UV\u003c\/strong\u003e et action \u003cstrong\u003eanti-fourches\u003c\/strong\u003e pour préserver les pointes.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 3;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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 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\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eSanté\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eMaintient l’\u003cstrong\u003eélasticité cutanée\u003c\/strong\u003e et une peau en parfaite santé.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 4;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eVitalité\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eTexture plus \u003cstrong\u003esouple et gainée\u003c\/strong\u003e dès la première application.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- BLOC RADAR (deplace sous Expertise) --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n\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;\"\u003eMieux comprendre les actions de l’Hydrating Cream\u003c\/h2\u003e\n\u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eLe détail de ses performances cosmétologiques, note par note.\u003c\/p\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: 16px 28px; overflow: visible;\"\u003e\n\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\n\u003cdiv id=\"so-radar-footer\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cscript\u003e\n  (function() {\n    var PRODUCT = { criteria: [ { label: \"Hydratation\", value: 5 }, { label: \"Brillance\", value: 4 }, { label: \"Démêlant\", value: 4 }, { label: \"Volume\", value: 3 }, { label: \"Soin peau\", 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!-- BLOC 3 : COMPOSITION (CARTOGRAPHIE JS actifs Hydrating Cream - fiabilisee) --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n\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 de l’Hydrating Cream : 4 duos d’actifs synergiques\u003c\/h2\u003e\n\u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eUne \u003cstrong\u003eformulation sophistiquée\u003c\/strong\u003e qui pénètre au cœur de la fibre pour une régénération totale — quatre duos d’actifs aux propriétés complémentaires.\u003c\/p\u003e\n\u003c!-- CARTOGRAPHIE --\u003e\n\u003cdiv id=\"aqr-carto\" style=\"background: #fff; border: 1px solid #e5e5e5; padding: 18px;\"\u003e\n\u003cdiv class=\"aqr-grid\"\u003e\n\u003cdiv class=\"aqr-col-list\"\u003e\n\u003cul class=\"aqr-list\" id=\"aqrList\"\u003e\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-col-schema\"\u003e\n\u003cdiv class=\"aqr-schema-wrap\" id=\"aqrSchemaWrap\"\u003e\n\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 l’Hydrating Cream\" 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\n\u003cdiv class=\"aqr-connectors\" id=\"aqrConnectors\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-col-info\"\u003e\n\u003cdiv class=\"aqr-info\" id=\"aqrInfo\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n\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:'argan', label:'Argan \u0026amp; Macadamia', latin:'Huiles précieuses', family:'botanic',\n          desc:\"Duo d’huiles précieuses : nutrition intense, hydratation et élasticité grâce à l’acide palmitoléique (rare et précieux).\",\n          targets: [\n            { anchor:'tige_poil', action:\"Nutrition intense\", benefit:\"Nourrit la fibre en profondeur et apporte souplesse et élasticité.\" },\n            { anchor:'cuticule', action:\"Hydratation lipidique\", benefit:\"Lisse la cuticule et restitue brillance et toucher gainé.\" }\n          ]\n        },\n        {\n          id:'soie', label:'Soie \u0026amp; Collagène', latin:'Protéines structurantes', family:'aqua',\n          desc:\"Duo restructurant : la \u003cstrong\u003esoie\u003c\/strong\u003e dépose un film protecteur et confère une brillance exceptionnelle ; le \u003cstrong\u003ecollagène\u003c\/strong\u003e restructure la fibre en profondeur.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Restructuration\", benefit:\"Renforce la structure interne et restaure la cohésion du poil.\" },\n            { anchor:'cuticule', action:\"Brillance éclatante\", benefit:\"Dépose un film protecteur soyeux — signature « brillance » du produit.\" }\n          ]\n        },\n        {\n          id:'ginseng', label:'Ginseng \u0026amp; Fucus', latin:'Plantes adaptogènes \u0026amp; marines', family:'bio',\n          desc:\"Duo régénérant : le \u003cstrong\u003eginseng\u003c\/strong\u003e antioxydant tonifie et oxygène ; le \u003cstrong\u003efucus\u003c\/strong\u003e (algue brune) reminéralise et participe à la régénération cellulaire.\",\n          targets: [\n            { anchor:'derme', action:\"Régénération cellulaire\", benefit:\"Soutient la régénération profonde et l’oxygénation cutanée.\" },\n            { anchor:'epiderme', action:\"Action antioxydante\", benefit:\"Protège des stress oxydatifs — effet anti-âge.\" }\n          ]\n        },\n        {\n          id:'proteines', label:'Protéines végétales \u0026amp; Vitamine E', latin:'Bouclier protecteur', family:'cond',\n          desc:\"Duo protecteur : les \u003cstrong\u003eprotéines végétales\u003c\/strong\u003e hydratent l’épiderme ; la \u003cstrong\u003evitamine E\u003c\/strong\u003e protège les cellules contre les radicaux libres.\",\n          targets: [\n            { anchor:'epiderme', action:\"Protection cellulaire\", benefit:\"Hydrate l’épiderme et le protège des radicaux libres.\" },\n            { anchor:'film_hydro', action:\"Apport humectant\", benefit:\"Restaure le film hydrolipidique et maintient l’hydratation.\" }\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!-- ENCART STORYTELLING : best-seller historique --\u003e\n\u003cdiv style=\"margin-top: 25px; padding: 22px 24px; background: #fff; border-left: 3px solid #1d1d1f;\"\u003e\n\u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin-bottom: 12px; display: block;\"\u003e✨ La signature Hydrating Cream\u003c\/span\u003e\n\u003cp style=\"font-size: 14px; margin: 0 0 10px; font-weight: 600;\"\u003eLe best-seller historique de Special One\u003c\/p\u003e\n\u003cp style=\"font-size: 13px; margin: 0; color: #444; line-height: 1.65;\"\u003eL’\u003cstrong\u003eHydrating Cream\u003c\/strong\u003e est le masque hydratant professionnel le plus vendu de toute l’histoire de Special One — le produit qui a fait découvrir la marque à des milliers de toiletteurs. Sa formule s’appuie sur les \u003cstrong\u003eextraits de soie\u003c\/strong\u003e, qui déposent un film protecteur soyeux et confèrent au manteau une \u003cstrong\u003ebrillance exceptionnelle pour une couleur éclatante\u003c\/strong\u003e. C’est \u003cem\u003ela\u003c\/em\u003e porte d’entrée de la gamme.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- BLOC 4 : PROTOCOLES --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\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;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/h2\u003e\n\u003c!-- DILUTION P4 : 3 cartes sobres (Ratio · Rendement · Équivalences animées) --\u003e\n\u003cdiv class=\"aqr-dilution\" style=\"margin-bottom: 12px;\"\u003e\n\u003cdiv class=\"aqr-dilution-eyebrow\"\u003eDilution de référence\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-grid\"\u003e\n\u003c!-- CARTE 1 : Ratio --\u003e\n\u003cdiv class=\"aqr-dilution-cell\"\u003e\n\u003cdiv class=\"aqr-dilution-cell-label\"\u003eRatio\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-value\"\u003e1\u003cspan class=\"aqr-dilution-slash\"\u003e\/\u003c\/span\u003e60\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-note\"\u003e1 c. à café à 2 c. à soupe\u003cbr\u003epar litre selon le rendu\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARTE 2 : Rendement --\u003e\n\u003cdiv class=\"aqr-dilution-cell\"\u003e\n\u003cdiv class=\"aqr-dilution-cell-label\"\u003eRendement\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n\u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e150 mL\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 9 L\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e500 mL\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 30 L\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e3 L\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 180 L\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-note\"\u003eprêts à l'emploi\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARTE 3 : Équivalences animées --\u003e\n\u003cdiv class=\"aqr-dilution-cell\"\u003e\n\u003cdiv class=\"aqr-dilution-cell-label\"\u003ePour \u003cspan id=\"aqrCycleTarget\" class=\"aqr-dilution-cycle-target\"\u003e1 L\u003c\/span\u003e de produit fini\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n\u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cstrong id=\"aqrCycleMl\"\u003e17\u003c\/strong\u003e mL \u003cspan\u003een volume\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleG\"\u003e17\u003c\/strong\u003e g \u003cspan\u003een poids\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleSpoon\"\u003e1\u003c\/strong\u003e \u003cspan id=\"aqrCycleSpoonLabel\"\u003ecuillère à soupe\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\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 \u003c!-- BLOC METHODE DE PRÉPARATION (infographie, pas un protocole) --\u003e\n\u003cdiv class=\"aqr-method-box\"\u003e\n\u003cdiv class=\"aqr-method-eyebrow\"\u003e🛠️ Méthode de préparation\u003c\/div\u003e\n\u003ch3 class=\"aqr-method-title\"\u003eRéussir sa crème en 6 étapes — conseils maison\u003c\/h3\u003e\n\u003cp class=\"aqr-method-subtitle\"\u003eCette méthode anti-grumeaux est à la base des \u003cstrong\u003e3 protocoles ci-dessous\u003c\/strong\u003e — un seul geste à maîtriser.\u003c\/p\u003e\n\u003col class=\"aqr-method-grid\"\u003e\n\u003cli class=\"aqr-method-step\"\u003e\n\u003cdiv class=\"aqr-method-num\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-title\"\u003eDoser\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-desc\"\u003ePrendre \u003cstrong\u003e1 cuillère\u003c\/strong\u003e de crème dans un bol ou un shaker.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-method-step\"\u003e\n\u003cdiv class=\"aqr-method-num\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-title\"\u003eHuile \u003cspan class=\"aqr-method-opt\"\u003e(option)\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-desc\"\u003eSi nœuds résiduels : \u003cstrong\u003e1 pression d’Huiles 4 Éléments\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-method-step\"\u003e\n\u003cdiv class=\"aqr-method-num\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-title\"\u003eEau \u003cem\u003etrès\u003c\/em\u003e chaude\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-desc\"\u003eEnviron \u003cstrong\u003e5 cm d’eau très chaude\u003c\/strong\u003e — essentielle pour \u003cstrong\u003edissoudre les huiles\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-method-step\"\u003e\n\u003cdiv class=\"aqr-method-num\"\u003e04\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-title\"\u003eÉmulsionner\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-desc\"\u003e\n\u003cstrong\u003eFouet ou mixeur indispensable !\u003c\/strong\u003e Secouer\/mixer jusqu’à émulsion homogène.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-method-step\"\u003e\n\u003cdiv class=\"aqr-method-num\"\u003e05\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-title\"\u003eBio Energy Plus \u003cspan class=\"aqr-method-opt\"\u003e(option)\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-desc\"\u003e\n\u003cstrong\u003e2 pressions de Bio Energy Plus\u003c\/strong\u003e pour booster l’effet hydratant.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-method-step\"\u003e\n\u003cdiv class=\"aqr-method-num\"\u003e06\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-title\"\u003eCompléter \u0026amp; appliquer\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-desc\"\u003eCompléter avec de l’eau tiède, homogénéiser, appliquer. \u003cstrong\u003eNe rincez pas (ou peu)\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cdiv class=\"aqr-method-tip\"\u003e\n\u003cspan class=\"aqr-method-tip-icon\"\u003e💡\u003c\/span\u003e \u003cstrong\u003eNotre conseil :\u003c\/strong\u003e contrairement à d’autres crèmes, l’Hydrating Cream se révèle pleinement \u003cstrong\u003esans rinçage (ou avec un rinçage très léger)\u003c\/strong\u003e — c’est ce qui permet au film soyeux de bien s’installer sur la fibre.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n      .aqr-method-box {\n        background: #f5f5f7;\n        border: 1px solid #e5e5e7;\n        border-radius: 14px;\n        padding: 22px 24px 24px;\n        margin-bottom: 18px;\n        font-family: inherit;\n      }\n      .aqr-method-eyebrow {\n        font-size: 11px;\n        letter-spacing: 0.15em;\n        text-transform: uppercase;\n        color: #86868b;\n        font-weight: 600;\n        margin-bottom: 8px;\n      }\n      .aqr-method-title {\n        font-size: 18px;\n        font-weight: 600;\n        color: #1d1d1f;\n        margin: 0 0 6px;\n        line-height: 1.3;\n      }\n      .aqr-method-subtitle {\n        font-size: 13px;\n        color: #6e6e73;\n        margin: 0 0 18px;\n        line-height: 1.5;\n      }\n      .aqr-method-grid {\n        list-style: none;\n        margin: 0;\n        padding: 0;\n        display: grid;\n        grid-template-columns: repeat(6, 1fr);\n        gap: 10px;\n      }\n      .aqr-method-step {\n        background: #fff;\n        border: 1px solid #e5e5e7;\n        border-radius: 10px;\n        padding: 14px 12px;\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n        position: relative;\n      }\n      .aqr-method-step + .aqr-method-step::before {\n        content: '→';\n        position: absolute;\n        left: -10px;\n        top: 50%;\n        transform: translateY(-50%);\n        color: #c2a85c;\n        font-weight: 600;\n        font-size: 12px;\n        background: #f5f5f7;\n        padding: 0 3px;\n      }\n      .aqr-method-num {\n        font-size: 11px;\n        font-weight: 700;\n        color: #c2a85c;\n        letter-spacing: 0.1em;\n      }\n      .aqr-method-step-title {\n        font-size: 13px;\n        font-weight: 600;\n        color: #1d1d1f;\n      }\n      .aqr-method-opt {\n        font-weight: 400;\n        color: #86868b;\n        font-size: 11px;\n      }\n      .aqr-method-step-desc {\n        font-size: 12px;\n        line-height: 1.45;\n        color: #515154;\n      }\n      .aqr-method-tip {\n        margin-top: 16px;\n        padding: 12px 14px;\n        background: #fff;\n        border-left: 3px solid #c2a85c;\n        border-radius: 6px;\n        font-size: 12.5px;\n        color: #515154;\n        line-height: 1.55;\n      }\n      .aqr-method-tip-icon {\n        margin-right: 4px;\n      }\n      @media (max-width: 900px) {\n        .aqr-method-grid { grid-template-columns: repeat(2, 1fr); }\n        .aqr-method-step + .aqr-method-step::before { display: none; }\n      }\n      @media (max-width: 480px) {\n        .aqr-method-grid { grid-template-columns: 1fr; }\n      }\n    \u003c\/style\u003e\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\u003cdetails class=\"aqr-proto-acc\"\u003e\n\u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eToilettage rapide \u0026amp; efficace\u003c\/span\u003eL’usage de base — tous les jours en salon\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\n\u003cdiv class=\"aqr-proto-body\"\u003e\n\u003col class=\"aqr-proto-steps\"\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eMélanger\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eMélangez l’Hydrating Cream à un \u003cstrong\u003efond d’eau chaude\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eHomogénéiser\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eSecouez ou mixez pour homogénéiser.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eCompléter\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eComplétez avec de l’eau tiède et appliquez.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e⚡\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eVolume léger\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003e\n\u003cstrong\u003e1 cuillère à café \/ litre\u003c\/strong\u003e + rinçage optionnel.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e⚡\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003ePlus de plombant\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003e\n\u003cstrong\u003e1 à 2 cuillères à soupe \/ litre\u003c\/strong\u003e + pas de rinçage.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"aqr-proto-acc\"\u003e\n\u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eRestructuration intensive\u003c\/span\u003ePour les poils très abîmés — cure de fond\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\n\u003cdiv class=\"aqr-proto-body\"\u003e\n\u003col class=\"aqr-proto-steps\"\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003ePréparer le mélange\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eSur poil lavé et essoré : \u003cstrong\u003e1 cuillère à soupe + 20 gouttes de 4 Elements Oil\u003c\/strong\u003e dans \u003cstrong\u003e2 L d’eau chaude\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eDistribuer\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eDistribuez sur toute la longueur et laissez poser quelques minutes en brossant.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eBoost chaleur\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003e💡 \u003cstrong\u003eAstuce :\u003c\/strong\u003e pour les poils très abîmés, effectuez la pose \u003cstrong\u003esous une source de chaleur\u003c\/strong\u003e (sèche-cheveux, lampe) pour activer la pénétration.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e04\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eRincer\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eRincez abondamment.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"aqr-proto-acc\"\u003e\n\u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003ePréparation Exposition \/ Wrapping\u003c\/span\u003eLe rituel des Compétiteurs et Handlers\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\n\u003cdiv class=\"aqr-proto-body\"\u003e\n\u003col class=\"aqr-proto-steps\"\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eMélanger le trio\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eAprès le bain : \u003cstrong\u003e1 c. à soupe d’Hydrating Cream + 1 c. à soupe d’Hygrofluid + quelques gouttes de 4 Elements\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eAppliquer\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eAppliquez sur les \u003cstrong\u003efranges et la barbe\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003ePeigner\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003ePeignez avec une \u003cstrong\u003epin brush\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003ePapillotes\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eLaissez en place \u003cstrong\u003esous papillotes\u003c\/strong\u003e — jusqu’à 1 semaine maximum.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- BLOC 5 : ASSOCIATIONS \u0026 RACES --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\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;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/h2\u003e\n\u003c!-- Villanelle au cœur + compléments modulaires Si.. → Alors --\u003e\n\u003cdiv class=\"aqr-assoc\"\u003e\n\u003cp class=\"aqr-assoc-intro\"\u003eL’Hydrating Cream fait \u003cstrong\u003el’unanimité sur une grande variété de races\u003c\/strong\u003e. Idéal pour le \u003cstrong\u003econditionnement des franges, des barbes\u003c\/strong\u003e, et le \u003cstrong\u003etraitement pendant la mue saisonnière\u003c\/strong\u003e.\u003c\/p\u003e\n\u003cdiv class=\"aqr-assoc-rules\"\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003evolume léger recherché…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003e1 c. à café \/ L + rinçage optionnel\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eeffet plombant voulu…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003e1 à 2 c. à soupe \/ L + sans rinçage\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003epoils très abîmés…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eRestructuration intensive (+ 4 Elements Oil + chaleur)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003epréparation à un show ou wrapping…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eMélange Hydrating + Hygrofluid + 4 Elements sous papillotes\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003edémêlage difficile en duo…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eVillanelle (débourrage) + Hydrating Cream (finition)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\u003c!-- Races en pilules arrondies --\u003e\n\u003ch3 style=\"font-size: 13px; font-weight: 600; color: #1a1a1a; margin: 0 0 12px;\"\u003eLà où l’Hydrating Cream fait la différence :\u003c\/h3\u003e\n\u003cdiv class=\"aqr-races-mosaic\"\u003e\n\u003cspan class=\"aqr-race-tag\"\u003e🐱 Tous les Chats \u0026amp; Races Tibétaines \u003cspan\u003e(Shih-Tzu, Lhassa…)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e🐶 Cockers, Épagneuls \u0026amp; Cavalier King Charles \u003cspan\u003e(franges et barbes)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e🐕 Bergers, Retrievers, Spitz \u0026amp; Eurasiers \u003cspan\u003e(mue saisonnière)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e🐩 Terriers, Caniches, Bichons \u0026amp; Yorkshires \u003cspan\u003e(poil bouclé et long)\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp style=\"margin-top: 14px; font-size: 11px; color: #888; font-style: italic;\"\u003eHydrating Cream fait l’unanimité — la porte d’entrée historique de la gamme Special One.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\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 +90% | Sans SLES, DEA, Paraben, Silicone | Non testé sur les animaux | PEHD02 Recyclable\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"Endemik Sas","offers":[{"title":"500 mL","offer_id":37819389739187,"sku":"WEX-HYD500 (20)","price":46.5,"currency_code":"EUR","in_stock":true},{"title":"1 Litre","offer_id":37819389673651,"sku":"WEX-HYD1 (22)","price":72.7,"currency_code":"EUR","in_stock":true},{"title":"3 Litres","offer_id":37819389706419,"sku":"WEX-HYD3 (24)","price":181.8,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/HydratingCream.png?v=1680188791"},{"product_id":"aquapure-chlorexidine-propolis","title":"AQUAPURE PRO - 1er shampoing lavant et désinfectant","description":"\u003c!-- ============================================\n     SYSTÈME DE DESIGN — Affinage visuel\n     ============================================ --\u003e\n\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\n\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: 16px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e\n      \u003cstrong\u003eAQUAPURE PRO\u003c\/strong\u003e est le shampoing Special One au \u003cstrong\u003epouvoir lavant le plus fort de la gamme\u003c\/strong\u003e. Il nettoie très en profondeur même les animaux les plus sales et permet une \u003cstrong\u003eremise à zéro de l’épiderme\u003c\/strong\u003e grâce à ses propriétés antiseptiques naturelles — sans jamais agresser ni la peau ni le poil.\n    \u003c\/div\u003e\n    \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;\"\u003ePour qui est fait ce produit ?\u003c\/h2\u003e\n    \u003cp style=\"margin-bottom: 20px; font-size: 14px;\"\u003eTout le monde y trouvera un réel intérêt — \u003cstrong\u003eparticulièrement indispensable pour les cas difficiles et les situations extrêmes\u003c\/strong\u003e en salon ou en élevage.\u003c\/p\u003e\n\n    \u003cdiv class=\"aqr-audience\"\u003e\n      \u003cdiv class=\"aqr-audience-grid\"\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eToiletteurs\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eÉleveurs\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eParticuliers\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eCompétiteurs\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eHandlers\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \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\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 2 : EXPERTISE \u0026 RÉSULTATS --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\n    \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; Résultats\u003c\/h2\u003e\n    \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eEnrichi en \u003cstrong\u003epropolis\u003c\/strong\u003e — « l’antibiotique naturel » — et en \u003cstrong\u003echlorhexidine\u003c\/strong\u003e, l’Aquapure Pro combine le pouvoir nettoyant le plus élevé de la gamme avec des propriétés \u003cstrong\u003eantiseptiques, antibactériennes et antifongiques durables\u003c\/strong\u003e. Ultra efficace dans les situations les plus extrêmes, il respecte pourtant l’équilibre hydrolipidique et le pH naturels de la peau.\u003c\/p\u003e\n    \u003cdiv class=\"aqr-benefits\" style=\"margin-top: 20px;\"\u003e\n      \u003cdiv class=\"aqr-benefits-grid\"\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 0;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 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\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003ePouvoir lavant maximal\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eLe plus fort de la gamme : nettoie et assainit profondément même les cas les plus difficiles.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 1;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eRespect de la peau\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003ePréserve l’équilibre hydrolipidique et le pH naturels malgré sa puissance nettoyante.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 2;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 3c3 4 5 6 5 9a5 5 0 0 1-10 0c0-1.6.6-3 1.6-4.2 0 1.2.7 2 1.5 2 .9 0 1.1-1 .6-2.3C12.3 6.6 12 4.8 12 3z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eCas extrêmes\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eEfficace sur les mâles avec urines, poils très négligés, pollution et saleté profonde.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 3;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"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\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eRemise à zéro de l’épiderme\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003ePropriétés apaisantes, purifiantes et antiseptiques pour repartir d’une peau saine.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 4;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"8\"\u003e\u003c\/circle\u003e\u003cpath d=\"M12 8v8M8 12h8\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eAntibactérien \u0026amp; antifongique\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eAction durable contre bactéries, levures et champignons — en curatif comme en préventif.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 5;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12z\"\u003e\u003c\/path\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"3\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eRésultat visible\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003ePelage plus propre, plus sain et plus brillant dès la première utilisation.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \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\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC RADAR (deplace sous Expertise) --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n    \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;\"\u003eMieux comprendre les actions de l'Aquapure Pro\u003c\/h2\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eLe détail de ses performances cosmétologiques, note par note.\u003c\/p\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:16px 28px;overflow:visible;\"\u003e\n        \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 { 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\n\n  \u003cscript\u003e\n  (function() {\n    var PRODUCT = { criteria: [ { label: \"Hydratation\", value: 4 }, { label: \"Démêlant\", value: 3 }, { label: \"Texture\", value: 1 }, { label: \"Soin peau\", value: 5 }, { label: \"Lavant\", value: 5 } ] };\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\n\n  \u003c!-- BLOC 3 : COMPOSITION (CARTOGRAPHIE JS actifs Aquapure Pro - fiabilisee) --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n    \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 de l'Aquapure Pro : actifs naturels \u0026amp; action ciblée\u003c\/h2\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eUne formule ciblée sur l’efficacité antiseptique et le respect cutané — \u003cstrong\u003esans SLES, sans parabens, sans silicone\u003c\/strong\u003e. Voici, zone par zone, comment chaque actif agit sur la peau et le poil.\u003c\/p\u003e\n\n    \u003c!-- CARTOGRAPHIE --\u003e\n    \u003cdiv id=\"aqr-carto\" style=\"background:#fff;border:1px solid #e5e5e5;padding:18px;\"\u003e\n      \u003cdiv class=\"aqr-grid\"\u003e\n\n        \u003cdiv class=\"aqr-col-list\"\u003e\n          \u003cul class=\"aqr-list\" id=\"aqrList\"\u003e\u003c\/ul\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"aqr-col-schema\"\u003e\n          \u003cdiv class=\"aqr-schema-wrap\" id=\"aqrSchemaWrap\"\u003e\n            \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 l'Aquapure Pro\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/schema-peau-poil.webp?v=1779972667\"\u003e\n            \u003csvg class=\"aqr-overlay\" id=\"aqrOverlay\" preserveaspectratio=\"none\" viewbox=\"0 0 100 225\"\u003e\u003c\/svg\u003e\n            \u003cdiv class=\"aqr-connectors\" id=\"aqrConnectors\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"aqr-col-info\"\u003e\n          \u003cdiv class=\"aqr-info\" id=\"aqrInfo\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n    \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\n\n    \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:'propolis', label:'Propolis', latin:'« L’antibiotique naturel »', family:'botanic',\n          desc:\"Résine récoltée par les abeilles, purifiante et revitalisante : propriétés apaisantes, purifiantes et antiseptiques reconnues depuis l’Antiquité. Idéale pour les peaux sensibles ou sujettes aux irritations.\",\n          targets: [\n            { anchor:'epiderme', action:\"Assainissant naturel\", benefit:\"Purifie et apaise les peaux sensibles ou sujettes aux irritations.\" },\n            { anchor:'glande_seb', action:\"Action antiseptique\", benefit:\"Limite la prolifération microbienne au niveau du film cutané.\" }\n          ]\n        },\n        {\n          id:'chlorhexidine', label:'Chlorhexidine', latin:'Antiseptique de référence', family:'bio',\n          desc:\"Antibactérien puissant à effet durable, également antifongique : prévient la prolifération des micro-organismes et le développement d’infections cutanées, y compris sur les peaux sèches et squameuses.\",\n          targets: [\n            { anchor:'epiderme', action:\"Antibactérien \u0026 antifongique\", benefit:\"Prévient bactéries, levures et champignons — effet durable, en curatif comme en préventif.\" },\n            { anchor:'glande_sud', action:\"Désinfection profonde\", benefit:\"Assainit la peau dans les situations extrêmes (peau macérée ou négligée).\" }\n          ]\n        },\n        {\n          id:'panthenol', label:'Panthénol (Provitamine B5)', latin:'Panthénol', family:'cond',\n          desc:\"Renforce et régénère le poil : il restitue brillance et vitalité tout en améliorant la structure de la fibre.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Régénération de la fibre\", benefit:\"Renforce le poil et améliore la structure de la fibre.\" },\n            { anchor:'cuticule', action:\"Brillance \u0026 vitalité\", benefit:\"Lisse la surface et restitue brillance et vitalité au poil.\" }\n          ]\n        },\n        {\n          id:'glycurea', label:'Glycérine \u0026 Urée', latin:'Humectants', family:'aqua',\n          desc:\"Agents hydratants et humectants : ils maintiennent la peau et le poil souples et élastiques malgré l’intensité du nettoyage.\",\n          targets: [\n            { anchor:'film_hydro', action:\"Hydratation humectante\", benefit:\"Captent et retiennent l’eau pour préserver le confort de surface.\" },\n            { anchor:'epiderme', action:\"Souplesse préservée\", benefit:\"Maintiennent l’élasticité cutanée malgré la puissance lavante.\" }\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\n\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 4 : PROTOCOLES --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n    \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;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/h2\u003e\n    \u003c!-- DILUTION P4 : 3 cartes sobres (Ratio · Rendement · Équivalences animées) --\u003e\n    \u003cdiv class=\"aqr-dilution\" style=\"margin-bottom: 12px;\"\u003e\n      \u003cdiv class=\"aqr-dilution-eyebrow\"\u003eDilution de référence\u003c\/div\u003e\n\n      \u003cdiv class=\"aqr-dilution-grid\"\u003e\n\n        \u003c!-- CARTE 1 : Ratio --\u003e\n        \u003cdiv class=\"aqr-dilution-cell\"\u003e\n          \u003cdiv class=\"aqr-dilution-cell-label\"\u003eRatio\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-value\"\u003e1\u003cspan class=\"aqr-dilution-slash\"\u003e\/\u003c\/span\u003e20\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-note\"\u003eUne part pour 20 parts d'eau\u003cbr\u003e1\/10 si action aseptisante intense\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003c!-- CARTE 2 : Rendement --\u003e\n        \u003cdiv class=\"aqr-dilution-cell\"\u003e\n          \u003cdiv class=\"aqr-dilution-cell-label\"\u003eRendement\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n            \u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e250 mL\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 5 L\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e1 L\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 20 L\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e5 L\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 100 L\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-note\"\u003eprêts à l'emploi\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003c!-- CARTE 3 : Équivalences animées --\u003e\n        \u003cdiv class=\"aqr-dilution-cell\"\u003e\n          \u003cdiv class=\"aqr-dilution-cell-label\"\u003ePour \u003cspan id=\"aqrCycleTarget\" class=\"aqr-dilution-cycle-target\"\u003e1 L\u003c\/span\u003e de produit fini\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cstrong id=\"aqrCycleMl\"\u003e50\u003c\/strong\u003e mL \u003cspan\u003een volume\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleG\"\u003e50\u003c\/strong\u003e g \u003cspan\u003een poids\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleSpoon\"\u003e3\u003c\/strong\u003e \u003cspan id=\"aqrCycleSpoonLabel\"\u003ecuillères à soupe\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCyclePump\"\u003e2\u003c\/strong\u003e \u003cspan id=\"aqrCyclePumpLabel\"\u003epressions de pompe\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \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\n\n    \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: '50',  g: '50',  spoon: '3',  pump: '2' },\n        { target: '2 L', ml: '100', g: '100', spoon: '6',  pump: '4' },\n        { target: '4 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\n                  \u003cdetails class=\"aqr-proto-acc\" open\u003e\n        \u003csummary class=\"aqr-proto-summary\"\u003e\n          \u003cspan class=\"aqr-proto-title\"\u003eNettoyage intensif — animaux très sales ou très négligés\u003c\/span\u003e\n          \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\n        \u003c\/summary\u003e\n        \u003cdiv class=\"aqr-proto-content\"\u003e\n          \u003cp class=\"aqr-proto-subtitle\"\u003ePour les fourrures très négligées, mâles avec urines, pollution ou saleté profonde\u003c\/p\u003e\n          \u003col class=\"aqr-proto-steps\"\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eLavage intensif\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eAppliquez Aquapure Pro \u003cstrong\u003edilué à 1\/10\u003c\/strong\u003e (action intense) sur le poil mouillé. Massez abondamment, puis rincez.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eSecond shampoing conditionnant\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eEnchaînez avec un \u003cstrong\u003esecond shampoing plus doux\u003c\/strong\u003e — \u003cstrong\u003eBain Pro, Aquarosa Pro ou 4Poodle\u003c\/strong\u003e — pour conditionner après le nettoyage.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eFinition\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eFinalisez avec \u003cstrong\u003eHydrating Cream, Bombastic ou Aqua Dolce\u003c\/strong\u003e selon le besoin de la fourrure.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n          \u003c\/ol\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"aqr-proto-acc\"\u003e\n        \u003csummary class=\"aqr-proto-summary\"\u003e\n          \u003cspan class=\"aqr-proto-title\"\u003eRemise à zéro de l’épiderme — peau à assainir\u003c\/span\u003e\n          \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\n        \u003c\/summary\u003e\n        \u003cdiv class=\"aqr-proto-content\"\u003e\n          \u003cp class=\"aqr-proto-subtitle\"\u003ePour repartir d’une peau saine après une peau macérée, négligée ou déséquilibrée\u003c\/p\u003e\n          \u003col class=\"aqr-proto-steps\"\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eMasque pré-bain\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003ePréparez avec le masque pré-bain \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e pour amplifier l’action réparatrice.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eApplication sans rincer\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eAppliquez Aquapure Pro directement \u003cstrong\u003esans rincer le masque\u003c\/strong\u003e. Laissez poser quelques instants, massez.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eRinçage \u0026amp; renouvellement\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eRincez abondamment, puis renouvelez le shampoing si nécessaire.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eFinition réparatrice\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eFinalisez avec \u003cstrong\u003eHydrating Cream + Huiles 4 Éléments\u003c\/strong\u003e pour restaurer le film protecteur.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n          \u003c\/ol\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"aqr-proto-acc\"\u003e\n        \u003csummary class=\"aqr-proto-summary\"\u003e\n          \u003cspan class=\"aqr-proto-title\"\u003eChoisissez Aquapure Pro si vous avez besoin de…\u003c\/span\u003e\n          \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\n        \u003c\/summary\u003e\n        \u003cdiv class=\"aqr-proto-content\"\u003e\n          \u003cp class=\"aqr-proto-subtitle\"\u003eLes situations où l’Aquapure Pro fait toute la différence\u003c\/p\u003e\n          \u003col class=\"aqr-proto-steps\"\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eNettoyer en profondeur\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eLes fourrures les plus sales et les plus négligées.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eRemettre la peau à zéro\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eGrâce aux propriétés antiseptiques et antifongiques.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eAseptiser en situation exceptionnelle\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eÉpilation sur peau très sale nécessitant une désinfection de l’épiderme.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e04\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003ePrévenir\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eEmpêcher le développement de bactéries, levures ou champignons sur une peau ayant macéré ou été négligée.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n          \u003c\/ol\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \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\n    \n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 5 : ASSOCIATIONS \u0026 RACES --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n    \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;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/h2\u003e\n    \u003c!-- Aquapure Pro au cœur + compléments modulaires Si... → Alors --\u003e\n    \u003cdiv class=\"aqr-assoc\"\u003e\n      \u003cp class=\"aqr-assoc-intro\"\u003e\u003cstrong\u003eToute la gamme Special One\u003c\/strong\u003e est compatible avec l’Aquapure Pro. Nos alliances préférées :\u003c\/p\u003e\n\n      \u003cdiv class=\"aqr-assoc-rules\"\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eun second shampoing plus doux est souhaité…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eBain Pro · Aquarosa Pro · 4Poodle\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eun masque pré-bain réparateur est voulu…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eun soin final est nécessaire…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eHydrating Cream · Bombastic · Aqua Dolce\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eune finition show est recherchée…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eAbsolute 4Poodle · Mix Pink · Style 360\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \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\n\n    \u003c!-- Races en pilules arrondies --\u003e\n    \u003ch3 style=\"font-size: 13px; font-weight: 600; color: #1a1a1a; margin: 0 0 12px;\"\u003eLà où l'Aquapure Pro fait la différence :\u003c\/h3\u003e\n    \u003cdiv class=\"aqr-races-mosaic\"\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐶 Tous les chiens \u003cspan\u003e(sans exception)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐱 Tous les chats \u003cspan\u003e(sans exception)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e💧 Mâles marqueurs \u0026amp; urines\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🌫️ Pollution \u0026amp; saleté profonde\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🩹 Peaux macérées ou négligées\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e✂️ Épilation sur peau à assainir\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cp style=\"margin-top: 14px; font-size: 11px; color: #888; font-style: italic;\"\u003eLe nettoyage le plus puissant de la gamme — sans aucun compromis sur la douceur envers la peau et le poil.\u003c\/p\u003e\n\n    \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\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 +90% | Sans SLES, DEA, Paraben, Silicone | Non testé sur les animaux | PEHD02 Recyclable\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"PetDesign shop","offers":[{"title":"250 mL","offer_id":40196766924979,"sku":"WAQ-AQPU250 (16)","price":22.9,"currency_code":"EUR","in_stock":true},{"title":"5 L","offer_id":40196766957747,"sku":"WAQ-AQPU5000 (14)","price":128.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/Aquapure_13bcd1a0-6daf-4a4c-a84a-2b55145279af.png?v=1680253861"},{"product_id":"mix-pink-conditionner-bi-phase","title":"MIX PINK, conditionner Bi-phase","description":"\u003cbody\u003e\n\n\n\u003cmeta charset=\"UTF-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n\u003ctitle\u003eMix Pink – Special One | Fiche Produit\u003c\/title\u003e\n\n\n\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\u003eMIX PINK\u003c\/strong\u003e est le spray conditionneur bi-phasique antistatique de Special One, bestseller de la gamme Expert Line. Sa formule unique — enrichie à l'huile de macadamia et à la lanoline — agit comme un \u003cstrong\u003epuissant restructurant et disciplinant du manteau\u003c\/strong\u003e : le poil retrouve tonus, hydratation et brillance sans être alourdi ni graissé.\n    \u003c\/div\u003e\n\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003ePour qui est fait ce produit ?\u003c\/span\u003e\n    \u003cp style=\"margin-bottom: 15px; font-size: 14px;\"\u003eIdéal pour tous les manteaux longs et frangés — et indispensable pour les fourrures fines et laineuses à fort potentiel électrostatique.\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;\"\u003e✅ Toiletteurs\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;\"\u003e✅ Particuliers\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;\"\u003e✅ Compé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;\"\u003e✅ Handlers\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 2 : EXPERTISE \u0026 RÉSULTATS --\u003e\n  \u003cdiv style=\"padding: 30px 20px; background-color: #f6f6f6;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eExpertise \u0026amp; Résultats\u003c\/span\u003e\n\n    \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eSa \u003cstrong\u003eformule bi-phasique\u003c\/strong\u003e est la clé de son efficacité : après agitation, les deux phases — huileuse et aqueuse — permettent aux huiles de se répartir uniformément sur le poil \u003cstrong\u003esans graisser\u003c\/strong\u003e, tout en neutralisant la charge électrostatique. Le produit sèche rapidement, ne s'accumule pas et ne \"vole\" pas pendant le séchage — il peut donc être utilisé autant que nécessaire, même quotidiennement.\u003c\/p\u003e\n\n    \u003cdiv style=\"background: #fff; padding: 20px; border: 1px solid #e5e5e5; margin-top: 20px;\"\u003e\n      \u003cul style=\"padding-left: 20px; margin: 0; font-size: 14px; list-style-type: none;\"\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eAntistatique puissant :\u003c\/strong\u003e Élimine la charge électrostatique sans alourdir le manteau.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eDisciplinant :\u003c\/strong\u003e Ordonne, lisse et structure le manteau — fin aux poils qui \"volent\".\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eHydratation \u0026amp; brillance :\u003c\/strong\u003e Poil luisant, souple et visiblement hydraté après chaque application.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eAnti-nœuds durable :\u003c\/strong\u003e Améliore la texture du manteau et prévient les nœuds à l'usage quotidien.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eAnti-frisottis :\u003c\/strong\u003e Élimine le crêpage et protège le manteau de la chaleur du sèche-cheveux.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eAdoucissant :\u003c\/strong\u003e Assouplit les manteaux secs et déshydratés, facilitant nettement le démêlage.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eFormule non grasse :\u003c\/strong\u003e Distribution uniforme des huiles sans résidu ni effet lourd.\u003c\/li\u003e\n        \u003cli\u003e✅ \u003cstrong\u003eParfum frais \u0026amp; persistant :\u003c\/strong\u003e Note agréable qui laisse le manteau sentant bon après chaque utilisation.\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: #ffffff;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eSynergie d'Actifs Naturels\u003c\/span\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eUn complexe d'huiles précieuses et d'actifs restructurants soigneusement sélectionnés pour leurs propriétés hydratantes, protectrices et régénérantes.\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\u003e🍀 Huile de Macadamia\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eHydratante et restructurante — maintient le manteau doux, brillant et nourri en profondeur.\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\u003e🍀 Lanoline\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eÉmolliente naturelle d'origine ovine : prévient la sécheresse, réduit la perte de poil et améliore la peignabilité.\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\u003e🍀 Huile de Camélia\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eRiche en acides gras essentiels et vitamine E — protège le manteau des UV, du vent et de la pollution.\u003c\/span\u003e\n          \u003c\/td\u003e\n          \u003ctd style=\"border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e\n            \u003cstrong\u003e🍀 Huile de Tournesol\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eÉmolliente et apaisante — maintient la peau souple et hydratée, prévient la sécheresse.\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\u003e🍀 Huile de Maïs\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eLégère et non grasse — hydrate le manteau sans l'alourdir.\u003c\/span\u003e\n          \u003c\/td\u003e\n          \u003ctd style=\"border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e\n            \u003cstrong\u003e🍀 Extrait de Ginseng\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eAntioxydant et régénérant — protège des agressions extérieures et stimule la régénération du poil.\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\u003e🍀 Extrait de Café Arabica\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eTonifiant et stimulant — améliore la microcirculation cutanée et dynamise la fibre.\u003c\/span\u003e\n          \u003c\/td\u003e\n          \u003ctd style=\"border: 1px solid #eee; padding: 12px; background: #fff; vertical-align: top; font-size: 13px;\"\u003e\n            \u003cstrong\u003e🍀 Huile de Ricin Hydrogénée\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eÉmolliente et lénitive — assouplit la peau, prévient la sécheresse et la desquamation.\u003c\/span\u003e\n          \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: #f6f6f6;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/span\u003e\n\n    \u003cdiv style=\"margin-bottom: 15px; padding: 12px 15px; background: #fff; border: 1px solid #e5e5e5; font-size: 13px; font-weight: 600;\"\u003e\n      ⚠️ \u003cstrong\u003eAgiter énergiquement avant chaque utilisation\u003c\/strong\u003e pour bien mélanger les deux phases. Vaporiser à \u003cstrong\u003e20–30 cm\u003c\/strong\u003e du poil. Ne pas vaporiser sur les yeux et le nez.\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 🔥 Entretien \u0026amp; brossage quotidien à poil sec\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        Pour les manteaux qui se nouent facilement, Mix Pink peut s'utiliser \u003cstrong\u003echaque jour à poil sec\u003c\/strong\u003e en entretien :\u003cbr\u003e\n        1. Agitez le flacon. Vaporisez sur la zone à brosser, à 20–30 cm.\u003cbr\u003e\n        2. Brossez section par section. Le poil se détend, s'ordonne et la charge électrostatique disparaît.\u003cbr\u003e\n        L'usage régulier améliore progressivement la texture du manteau et \u003cstrong\u003eprévient la formation de nœuds\u003c\/strong\u003e sur le long terme.\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 🔥 Conditionneur pendant le séchage\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        Mix Pink s'intègre parfaitement dans la phase de séchage après le bain :\u003cbr\u003e\n        1. Agitez le flacon. Vaporisez uniformément sur l'ensemble du manteau humide, à 20–30 cm, en couvrant toute la surface.\u003cbr\u003e\n        2. Séchez au sèche-cheveux en brossant section par section.\u003cbr\u003e\n        Le produit \u003cstrong\u003esèche rapidement sans s'accumuler\u003c\/strong\u003e — il protège des dommages thermiques et laisse le poil discipliné, luisant et parfumé.\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 🔥 Finishing pré-ring — définition \u0026amp; brillance expo\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        Mix Pink est un excellent \u003cstrong\u003efinishing de présentation\u003c\/strong\u003e pour les chiens d'exposition :\u003cbr\u003e\n        1. Agitez le flacon. Vaporisez directement sur le manteau sec et brossé.\u003cbr\u003e\n        2. Distribuez uniformément à la brosse pour définir les formes et amplifier la brillance des longueurs et des franges.\u003cbr\u003e\n        Résultat : manteau impeccablement ordonné, lumineux et structuré — prêt pour le ring.\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: #ffffff;\"\u003e\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/span\u003e\n\n    \u003cp style=\"font-size: 13px; margin-bottom: 10px;\"\u003eToute la gamme Special One est compatible avec Mix Pink. À noter : Mix Pink est plus aérien qu'Aqua Beauty (moins anti-nœuds, plus léger), et se distingue d'Absolute 4Poodle, davantage dédié au volume sur Caniche.\u003c\/p\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003e\n      🤝 \u003cstrong\u003eAquarosa Pro \/ Bain Pro\u003c\/strong\u003e en shampoing ·\n      🤝 \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e en masque ·\n      🤝 \u003cstrong\u003eAqua Beauty\u003c\/strong\u003e en spray complémentaire (action anti-nœuds renforcée)\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\n          \u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Races à manteau long et frangé : Cockers, Setters, Afghans, Yorkshire — conditioning et brillance des longueurs.\u003c\/td\u003e\n        \u003c\/tr\u003e\n        \u003ctr\u003e\n          \u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Fourrures fines et laineuses à fort électrostatisme : Maltais, Bichons, Samoyèdes…\u003c\/td\u003e\n        \u003c\/tr\u003e\n        \u003ctr\u003e\n          \u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Caniches — allège et ordonne le manteau sans le friser (à différencier d'Absolute 4Poodle pour le volume).\u003c\/td\u003e\n        \u003c\/tr\u003e\n        \u003ctr\u003e\n          \u003ctd style=\"padding: 10px 0; border-bottom: 1px solid #eee;\"\u003e✔️ Races soyeuses : Shih-Tzu, Cavalier King Charles, Terrier du Tibet — douceur et peignabilité quotidienne.\u003c\/td\u003e\n        \u003c\/tr\u003e\n        \u003ctr\u003e\n          \u003ctd style=\"padding: 10px 0;\"\u003e✔️ Tous les chiens participant à des expositions — finishing pré-ring pour définir les formes et intensifier la brillance.\u003c\/td\u003e\n        \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 +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\n\n\u003c\/body\u003e","brand":"Endemik Sas","offers":[{"title":"200 mL","offer_id":37819390001331,"sku":"WEX-MIX200 (10)","price":40.9,"currency_code":"EUR","in_stock":true},{"title":"1 Litre","offer_id":37819389968563,"sku":"WEX-MIXP1 (12)","price":98.9,"currency_code":"EUR","in_stock":true},{"title":"3 Litres","offer_id":43820256526556,"sku":"3x  (12)","price":277.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/Mixpink.png?v=1675846492"},{"product_id":"aquarosa-pro","title":"AQUAROSA PRO","description":"\u003c!-- ============================================\n     SYSTÈME DE DESIGN — Affinage visuel\n     ============================================ --\u003e\n\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\n\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\u003eAQUAROSA PRO\u003c\/strong\u003e est le shampoing professionnel Special One dédié aux fourrures ayant fortement besoin d'être nourries. Ultra concentré, riche en vitamines et actifs hydratants, il donnera la \u003cstrong\u003emeilleure version du poil de votre animal, quelle que soit sa race\u003c\/strong\u003e : hydratation et nutrition les plus intenses possible, avec conditionneur intégré.\n    \u003c\/div\u003e\n\n    \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;\"\u003ePour qui est fait ce produit ?\u003c\/h2\u003e\n    \u003cp style=\"margin-bottom: 20px; font-size: 14px;\"\u003eTout le monde y trouvera un réel intérêt — du salon de toilettage professionnel au particulier.\u003c\/p\u003e\n\n    \u003cdiv class=\"aqr-audience\"\u003e\n      \u003cdiv class=\"aqr-audience-grid\"\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eToiletteurs\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eÉleveurs\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eParticuliers\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eCompétiteurs\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eHandlers\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \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\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 2 : EXPERTISE \u0026 RÉSULTATS --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\n    \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; Résultats\u003c\/h2\u003e\n    \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eSa formulation ultra concentrée permet de \u003cstrong\u003erattraper les fourrures les plus déshydratées\u003c\/strong\u003e, avec une action particulièrement intense sur les peaux sèches et sensibles. Les vitamines et acides aminés naturels lui confèrent une douceur remarquable tout en apportant brillance et éclat durable. Même en usage ultra fréquent, il reste respectueux de la peau et du poil.\u003c\/p\u003e\n    \u003cdiv class=\"aqr-benefits\" style=\"margin-top: 20px;\"\u003e\n      \u003cdiv class=\"aqr-benefits-grid\"\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 0;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 3 C8 9 6 13 6 16 a6 6 0 0 0 12 0 c0-3-2-7-6-13Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eBain en douceur\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eConvient aux chiens et chats de tous âges, du bébé au sénior.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 1;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"9\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"3\" fill=\"currentColor\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eNettoyage profond\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eNettoie, assainit et donne un coup d'éclat à tous les types de poils.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 2;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M3 8 Q9 5 15 8 T21 8\"\u003e\u003c\/path\u003e\u003cpath d=\"M3 12 Q9 9 15 12 T21 12\"\u003e\u003c\/path\u003e\u003cpath d=\"M3 16 Q9 13 15 16 T21 16\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eAnti-nœuds\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eFacilite le démêlage et le brossage, et limite le retour des nœuds.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 3;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"M13 2 L4 14 L11 14 L11 22 L20 10 L13 10 Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eNutrition immédiate\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eAction intense et visible dès le 1er shampoing.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 4;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 3 L20 6 L20 12 Q20 18 12 22 Q4 18 4 12 L4 6 Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eProtection kératine\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eAugmente les défenses naturelles pour protéger la structure du poil.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 5;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 3 L12 21\"\u003e\u003c\/path\u003e\u003cpath d=\"M3 12 L21 12\"\u003e\u003c\/path\u003e\u003ccircle cx=\"6\" cy=\"9\" r=\"1.5\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"18\" cy=\"15\" r=\"1.5\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003ePeaux grasses\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eTraite le sébum en excès tout en préservant le film hydrolipidique.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 6;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 12 A9 9 0 0 1 18 6 L21 6\"\u003e\u003c\/path\u003e\u003cpath d=\"M21 12 A9 9 0 0 1 6 18 L3 18\"\u003e\u003c\/path\u003e\u003cpath d=\"M18 3 L21 6 L18 9\"\u003e\u003c\/path\u003e\u003cpath d=\"M6 21 L3 18 L6 15\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eBains fréquents\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eAucun risque pour la peau et le poil, même en utilisation intensive.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 7;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"5\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eUniversel\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eLes poils à volume garderont leur volume naturel ; les poils plombants soyeux resteront tels quels — et encore plus beaux.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \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\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC RADAR (deplace sous Expertise) --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n    \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;\"\u003eMieux comprendre les actions d'AQUAROSA PRO\u003c\/h2\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eLe détail de ses performances cosmétologiques, note par note.\u003c\/p\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:16px 28px;overflow:visible;\"\u003e\n        \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 { 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\n\n  \u003cscript\u003e\n  (function() {\n    var PRODUCT = { criteria: [ { label: \"Hydratation\", value: 4 }, { label: \"Brillance\", value: 4 }, { label: \"Soin peau\", value: 4 }, { label: \"Volume\", value: 3 }, { label: \"Texture\", value: 2 }, { label: \"Démêlant\", 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); 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\n\n  \u003c!-- BLOC 3 : COMPOSITION (avec CARTOGRAPHIE) --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n    \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 d'AQUAROSA PRO : innovation, performance et recherche de naturel !\u003c\/h2\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eUne formulation naturelle riche en antioxydants, vitamines et actifs purifiants — \u003cstrong\u003esans SLS\u003c\/strong\u003e, sans parabens, sans silicone.\u003c\/p\u003e\n\n    \u003c!-- CARTOGRAPHIE --\u003e\n    \u003cdiv id=\"aqr-carto\" style=\"background:#fff;border:1px solid #e5e5e5;padding:18px;\"\u003e\n      \u003cdiv class=\"aqr-grid\"\u003e\n\n        \u003cdiv class=\"aqr-col-list\"\u003e\n          \u003cul class=\"aqr-list\" id=\"aqrList\"\u003e\u003c\/ul\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"aqr-col-schema\"\u003e\n          \u003cdiv class=\"aqr-schema-wrap\" id=\"aqrSchemaWrap\"\u003e\n            \u003cimg class=\"aqr-schema-img\" id=\"aqrSchemaImg\" alt=\"Schéma de l'anatomie de la peau et du poil illustrant l'action ciblée d'AQUAROSA PRO\" src=\"data:image\/webp;base64,UklGRuaIAABXRUJQVlA4WAoAAAAQAAAA8wEAZAQAQUxQSBggAAAB\/yckSPD\/eGtEpO4jbttIcqTpmvGuL\/+Adb9+L6L\/E1A3t4\/vcoWblB2y15gzpsKGUKfsFK6smxA8GbmmQoT49Ph22NWOtB7p2IC1tXarFoXJ8eZ4OjmmFPwWiN35aMTunBh\/gJmMNDOdqslQHLeN5EhS5Z\/1Wa17R8QE+O\/FZC6GbDGd2WIzKjDbtYGnW8sNeG3AWjOeDuDme\/wSFeVFEZQPWE52crPzm2E1stysN3v+Zgcn85+zZndvdn4zsutXPP8iXPw\/m7Yk6f+Ptc+5StvOvJ1GV94sVzrL5oe3s227H2292bZ7jEfbtpk65+wdEYPsvdeKQc596oiYAF\/Yth2bI\/\/fcV33\/b4VY+Zj27Zt214cLn6spbFtNMdt26yubOmkk7aiqThVKbzPfZ0Lz\/081ahU3vfDiJgAb9j2GZLk\/9\/9iojs6u7ptd7+2LZt2\/58Htq2vbYO29asbQ8Wo8YOG1OtqojX6+OHs3u9VRExAYzfk3\/Fzcf\/zV\/mJtBTe9\/pHmJd8t\/UWm9ihTTR\/kJ1Yn5apHv8yicOx9Lss3LOGi79gciKhw+zwMx8k+SlpUfVDSmL9PgNDHvevTltQ1Eu7j9i45H8LOVGWcPFD+Ri8nyxXJBb3vZkAdWxW6YSZbIjdyZBpKWzVRpkxe9\/IgXmZaOloRgP2\/GkA0lxlpJDhl99KgRetvfMxbjighNZYKVdq1wZM33B61QGEIMDn68kxr15H80QQI+\/3yBLox\/eOFoHEOnP1AlyfzUNgPLnv1mZMR99\/1fGsGInlIS462v+HVG19xpk1vw+Jbfku+6CzGPz74fTHg0vsSLEFRcqUkvD+Z0kxFLz8xvkVPxqmRFG8Z+KVAm\/lCzC0+iNi80UbeVHihXCBN\/+\/YhqpH1PpwYwweI3E6kiLxemgLDqbESmbuUe0gQsyYGLTaIe6dOb0mjyVZi5Ipv9H9E29VPwBW\/Bsv73KHtOSVV8+7H9Fvq\/tG1BgVf47veY9P8Y\/JmJ75I+vtfF\/1nzXc+Y46XYt5\/evu2gCe9U3raEuqLsuUB8l3z1PV7odt24uTS6pMW3iZ6RZ89Zd\/H9zOOplw6+bHiVPH2tNf3+KZLoDn34sEcfDV5rojvs3o8p6FnztS+VRpf8xiNZPaIsnLjmgjvs8jlE31h8Q4EXv3qwX7PTlzNd4ss\/CZU2trJbWXBTz0L7aNm6R5fTEC76qmOW0DKSzlcOuKR+CNou360yENu05beDaOXb1Dlcqb6j1l6rrLNsKLapC58NQ9tmpyg5XKKPwKpWXu40g4tY8nwn2ur4cyVVsV2lZ9ZateLgHKVgi1h5EobWsvqihdiu8DLXXitNNx2RGluU5T\/nRMfNKs5WwnNdq1bW+9MXrAptpoW\/aIKOfzOwYKvCs3zUb2fyQZWGFnX5M6yv\/3eUhYUQ29I8Acf\/3\/NTB0tFS3Tjbc4Oye8X3KL3qqYOZqfDxXr1LVC0b\/mWw40t4e3DZqxdpIULlIIs6tQTMLRv3SvLqQktexqs6pDqo70UZIkte8DIDrKNKk5WVd+Fuo\/2Xh46IVWRXWPGEzqGvamCluiRnWCHKP1rrQktfwa06iAtzQntNJxZZxU61nJS6QZkAZtqR8fIK7uUBTZt\/BGodPDulW1lnazU3O7NGDqaP61kZDk2w9hpeJpFkGVLnoceOq8f3TeBXdWvg0mX2l03kSpYabhzxgQdo8zcrhxgYexhaOqUFvbKBbZPHUf3sGt6uYKV6sN\/66mT1rapc65oi++HdvLuuem0Lq5Fl1yFhM6+TTnIwumLzk5mf24usHt2DHXVxe2lo0W2cMdq76FrHbtK3YAsvAiaukR5e5dcXBM7b\/CEbjtfRSuNfdo0g99SHCxpDiw3Z4UR1b9FWVzTziJsRV7nv8kSV2yuWarGioZxtrK4Fm5B7StyX\/waS2CZP+IVK27+2gcFVtKHa80wjL9VEdeiJ1DLyurST1rmSup1m7WPFUdsURLX1OdDpRvtnxJYtOlrrELG+ByBVY3uRpO6Fbvz+GRcaX8ziO5hf68srFNzbLmnbpH3fWVKXMFv87rXDWtOEFe0BRtd0F3sPtaMK78T2stygYqwdn+NJWS0OimuRXf+GyyD5xduSA2rJM9G088QmtlnQZWMds94he6R2j+FuPbpkSOjeU5kLXgUJhlauvMVc6pSfXKoPWQM27zUBVWQDVBkjDx7mlVBLfWK+1yymL+poMo54JjnkD9WuBK9pdFeDk8XVRPUtKlnQZHR08vbUnB1L6yXo6XnNxlW8JdrQs7UVouoFpv5c3iOyMsXV6xSfR2aXhbt2m0BlclnvpUUOV1XvFmcqn981T8ky2I63ER1+p03D+BZtDYdAZX5d\/6Ajpyet5+nClXiOXBkNU24qHb7oFieiFMHCSpL635VNJM9EwbVgD83eJbQzgVRnf3fUo2sNd\/3YmlMGV92qud58vpjJqidX2yIrJH2XxUNqjR1tSyPNDhcxlTmNxca5G06cTo7Uym9Ws9VyGVC2th853Pl5Y1nzJly+5EnIzLZ7HNY6Q2oe1kiDS93Mc1myR5PyJzfqIkpcOoYJE\/YrgMKplI9q0i57nq+NKRE91zvhtyTMiGdRkdQj+WJNP9XqkzpvKNWIa\/Z+HYFUtRFh5Db\/R4zIS326NBSppYuqpkpYhqN5PH86ubkSKXhoRXWR6a06TULpIBNI0PmvHp9CqTo1aNoJJO1l91EtDSnx5px5A1tH1ogZXg1HJmbbt2SnSix++Epk+cDL5qL6MofMUWu2Ha0kJbmKbspufB\/mchI0R6YtlxS\/Kg6omjTs07k9sVvVyEq+akNKrki32pZQNMX7K+I\/BtVkNJF90Oy+eJ3KBEF3NRzZrN8lIwo4s4pRW4xAxUmULAZnKMioCu95n6tcikfPG6JKE+74cgdefc+M6LUXouUDZotSAlvnACz2fLHKAK65\/cuapBf82SgKGv3uxSIJKKkecNIPJun2x7MIjp9oDFkD1k\/IeXfT022SGt3WSPK1v9spdlkK9dFAJWaw3AUtCkBTe1fk7TEeBAF14eT5wttWzegxB89Z8jv+vc9JYDS4xgVCPUENG2CaPJ5t+W21HiS0ZGNivyh6Z3mPAH1hHo+adLCePL+rAtKzoUFUM218AK2\/o8K4Uxs+2OXAspNQFejO9BUBWzVgaLO3+dE\/qGd83JxnmzZaUoBqbl4Jk4vUhawNlTwBFw1acjfyraLgKJNTYIFTHWZKJ9+WKsCUjMZTi7XCVEw4qK54jjBXoSiYX030Sx+zQJjgUi7XrCGU4X7VxTa8nhynCzBiaLrSThLs3MWUiL5n3ngBNg4UTLSQQEtd1Reotkd+1LgJLipbywRdyxmnFJzdJ8LCpp9wEI0E0vXKgtEnr0jHCdLm50okd5+0IImsUVnWUSanxTOztEARaOdvpyCJvFn7FUpIavimZgSQ0lbrwqaqAuugpRo6Zb7s+Pki+6yVCI0XDPhXD3LUTxoquzx15uUiLLvRJ6cmxxlY2IgmkW3PkoWcXtw2gImcnazSpGI++cLTj4ljjJ2tGimrd7rLBK5\/5A5TttPeCqTtt5pDSawGqL0sUkwk\/7qMS91u+NkS9eChfxk0Zz80V21FErH4QTURFm313YpYPK0AizTdOv2AhOb9a9FKmM2phDNaiirvONCnIRnx51lLM+LZvphGsro0aUULNHn9x2F445FmpLeccpSGdmxZqL5Qk0UVZp7MZwl6oLZnpcJe\/W+3FgCfD0KG0eWEMvE9AJnGXhmKJjFr9+uKCrKFymzRF10EoUgfT1N8JW3oLDs6c+0BBP+aVCq2DnqxDJ5x4QXgu1Gk\/jDtEI+2q3CUtJr97uUUdr3XhPL4tMrlGUgD2QsGZY7UVY82ZhQpq58AaVQ8LomswSowgvBEJwW91DaluYnTYkvXKNSpkmfuzaJZfolOkpnJszSHDjjqZDFSYQSgTfub1hG6fj7w1ASO3NDXaF0XRPNWxaApWJygiXq5Gu8h8KhF6YtSALSUnopt43TxVnqOQL2TCgnvmlSWc6DJfokMdcuuuMAGCDDZDv3WbEoO05WJQmYUBQPDfYoSNL5z03OUpJ3YpljKG86SijTewSLuc4cJpISHj7YSLHQ7c1IAqd6KG86Qiz7eQSMVmUg0Sb3gMVqueHB1FBa+xikWGjJc4DkaC6ivMkVAlnwvJXKYmX+DDWSwHVwlA4tT8tIoo8CSONTIjk1B2\/Rqljorb6CI2q1d7mzWNOFezNH5IqPvdcqFLfIMmEstuHBxURA64nkdFQV5SPvfMqcI\/ejE85yblufBImYRxARe+PiWOz0rZpCdBEcAQJHxHhzaCQRESMNLlxPJA1CKHrj4pg6\/ipIBO3Zb4ER0N8CBvB00xOlYeS8NETMzsRx8udusBgRIAn3UBnCRbJfQMjQOEhSb7rVUoSk3QqMiE07IAEi9f9JDSNgZPAAUu2L5JEgpkvBkRwFGGLcxLH3n0TQzUOQMPiHGFX\/OMwY0Xeuc0aQijhOft82C2IgEX\/vCGltnSPa5F6GaOWhjalhpOvvhUQIzS+aUQRcuAiPIHUW4njrAmeE3D87FBQRDy3XEBpOy4QxAUfI3qRA9gFCNrvqpewUUTcc9RQhNLtsgRG2HjSJoCgmkAeOmDYVJCWGiDR\/lwIjx5vAGHs2yjEC1yNonhLH9EtRSnBEWz3fQ4RO3F+CogovWa8SQTHjAvlfEDNsShjTJjaBEcLmp0HSHY+6RPD86MZcKQLqhojZJRPHa5IH2enCmPKsecYIef1v1TACE4J6iGPqIEovc8Rmx05nhNB9C4aR4PBBlQhFVy3moAi4qETIOFIhjk0Q00IY06bOkhEib7rFgiL42DRCyvbuDI5w\/nwM6HrCWPDoTpUYCsOI2DFpiOkKjIDzjpA2OudgDox6SxgD1mSCWJrNL\/JeCA1+dbwaRMCoQkxvvvwnlDB6lgcxjR8riolb6DFATlGl9212xojBKzcpGCLWLdQgYv+sQQTUIKJO9kIUX0LcuaExRJ84HsaWL1jOwVCz73ZnEFISw\/RDn1roEmVuRUEQyXdtV0HM4tfenxtBgLkRYZcGJoKTn9jjEmeTGKYfXG6MYuUOBULARUdU+dxH5QwxMQywXhD7BQQeiiE2y56PFEXMLjEEnzoARim86VAXCEHPI64WoTilQLZxYjSyMEqH7jNHiJjueZTwnbd6Q0jw4nFjEHipyxACBoira4NgiFUcX\/4ok2IfxdFg+4SIunYjGCTstd0KhJJfd61KkGq3vFUYAuqGCGrqIgSxElGz\/9IPtoSQYzHCWhzzh5IBRF0wW3kUKQaCWCYR1+JEKRByi9R\/XRBLilPtkjezM3RxEEfqrwlh4uhOkzhTouipy5RRbHUTRMDQEdXzjqvlDNEYRiqTMoKoK1+MKo6FIJ5YA8ZZqQqGQhE2dPZcRxHjSIMQxFMeKEwMJ14zbnFsDCLYCo8S6eUbUoWoQdiw3TMWDLnHkTaYII6lSHuCoVS+8ZuNUUy\/p0DI9dPfbBJFCjEs5kXENYggGebgg7l3sWnyZuUlr4BzbZC3Mhdfz8WpBwoFQ8SK8Tg1XTmbgqCE2bUqUVzPrmaEHD06opo2KMSwIXIWxYwTpf+MAiIPZJtvM2eIKY7UbQgRnJq9j6KKk0IE09MzliuihmarEQToZngYtbNWUwBEbFjtEieJYdqxpzaBAiLQDXPu4v8ikZIhxHrqhUiBVgcEiaz71kmTMC3ffnduAOnMsYYIGxoOhfA\/1QmRkxHk1ZHkjOQi2CYfEEfkjBDsEiKbKkOUSJGWzo0gKLi1t4UwGUrKDKnGyokgYl4fDBTLawQlv+dAI3GaXfpGcX6AiT5CL7mJYMVcPIP1gLPBLEQWyfOOc23ID5u1z0eKI9UqgIneEsQ2AwjwJliIYQYzhhyxIwKhirFKTwA7\/q2JZPrg10fmR3DfCmOc0MyTqfFDHK0MkdeXQgQP4aGSGUIJsQchhJtgfy2Ex+cHe4Wg1Fx\/n\/ZC\/SxBgLgh9K8wBDLWPEMDzMFzU7QjCNL+m5BinU8QMETwaxEiox2N0MiCxRAgYuc8j2UJoArPWqUM1NK9W1PgA5wHEdj1\/D6Eegg+ZSGAh9FqCF\/qwt2xTEn8iu065RIoyp4rAQKaARFJS28pAHrOsoaBpDIufEVvvM0SQofzQyxaqYxFsMsuF8ROhg9t\/IWMttLwAbxGbNfZu4rjAwaTWgh400doJ869Oc\/X4YIfwZGlzmCFn+RPLFSEtrUFBT3AyD2U5+cuS40fIYJH6CO0ORdHDdcAMp8Cgx2e8El68EFNwR6u+ABTC4nIMl3ihg8veSxCY8LXfT89luT40Fe9EmAsD3yS37u5EYS2VPAB+mOILe3cb4HPBQQvds2m4vDY5AwkFjLRK7b6FjCW6ZM2uLEDNAN4rOw\/8Pkt0UNBcCnpUNJqwnZmY4\/\/gZOrl5VVyrJaEbXOli3GWlYx79Oga+6nqPl\/B6uZ\/JcGl+UKI0A7fGyYLme9Ry4anJyDXND4gv8dXC0HrESl\/\/H1NVvY2I\/t69ez8jZWxLusqdUnHxwRtBM3NPJfNkyi7UPrHzpHFy0CKdB4wj2cL2TaAYivAHz51\/9oKatlcNMk2v\/uYx5dZctFH9mmgMvfDRE1uti2WeBLP\/dEI7QVh9HetY07wPQzf39qdmQ4ZRxBidbk97BtKRm\/8LUlL3zrb8gwZXo3bOUVKxy5A5a+950pu5xVv\/dTYtksvu8Hwlu+\/PKvB0wZl214GV6ObEMgzClx7dtvY55kBY0X6I+uU4nlfO2P\/mUCgsR6MABFHyHam\/q5kXH4i+LZYJEVy\/4LBYUlJViY1qdmbgFyM1YA1laG2Inf+iOsNQIs8yJVa1MRBZ1RV7bKC7q4wbEbH\/3gvtNJEGspsz6umneIF9cI8b0IIGdWS7cS+LDrRakANxbu+sg5gFtoLWQZWYk+z3W2SokXh\/w3MGdtXcyMux98X7q3kKxZq5gB1ioA+auWrSP95fZoXfz8OXoLf4p6qqklrWJrcIU5hXM\/NX0AM2JNYYA7NKLzG39tIS\/\/8C8ueod\/PfW\/PictlD88m0SZumF3rT7ocs1HetVcuBICBaa0+Phnnjx\/EU8RWhskCGEC+Cb3+N6XN9585Tew0kYVVsj67OMm4e\/a4SF\/uHSVdMdwzUmvroSqTTKY3vWWB8BccSYTCgMK+Hpb\/qmfstE3\/IXR2RhgfZy6dVAt0fuS+4dRsb\/+SOV5aIsO\/87diwFeMSHJHN55ZOYiyCJ0JuoBqAEk6ae\/IP7uayhfvxFAgAAzXtBSxVpyev66IK9z2CwCnLiyDsxoLv7kE\/cJt3ImEdAAB4D1K2L0I79xmt\/cRHUEloxVsFGXJOQmfHXNHq68RxrCgRtunJmWy2PVczBzQPFfq9f0YfdsWY6tA1CAgRmrsGUDxMZwZS5FJk5f8uHrgeyrWDIiqE+vGrzohvP9rQDgRgRkzszElbuKm80ffM9tOyHl1cYNEATAV3v5gj\/ZEoPffSntInBDZozlQ54l3TZ98f2QKC8+a+XWCGDKtPk3ti9\/9y+ZNn4BQMEMjLF\/KCIz+6HHrjxYkjd68SRA0ap++TeFvuePYMt3Uh8B2ZggVg3g4ZkPXQOk8gKhdFmYwArAOrfyxa\/cKI+f+VbqEZgDxuRRxRJc+Nj7DjSWinIxsUXjXWQB\/PLmYP0\/bRNT22kXa8mciWagxNGHX3\/dKUs\/KBlEdLXvzyxby+MXfqgx0O84nUWAGxiTUBVLcM0FFyyly3gaAWwtFfqC2aXGy7DZfnLkLdM2qhGAG2BMWqXI3HSBCgEx+v6vauKn\/\/ZEqtjEKrR1oy0rqmQmukWZV0Dg\/rIf+q3N9DfjDyLpNCbDjb1jVit+6HXrGLnMexBz2eFPW2XxJ1OLUwMm6H7oKfYzf6EpY5LO0T\/iG7c3mYm6T1zLZTFht7EHaTZpA845E\/iEkf8\/YjiQK8BZzBhvafkC503hIj4R507c5Bhv4Xduyrg1+fV9iTbxwqWp0tbkv3s+hQdrJX3FhlBnrIX\/3Hiz56eLkyZ632zpuYs8SKM56msj2Y39hJr09Z9erTOxHp95XPhPbnDWNKj6tp9KCTYz3XhcGGySJsIEu2XJRHtblon2mPhi8e5jP5p4k2oQZyI+kMvGW14503lTnRPwNkacArmR\/0f+H7HTHbiYGOct7NE3DLhnZzNu7gMT7WEz50Xj7aJtJQasRdp1VnL9lippsidmzNUX6l5+9GtbUWHNeOlvT7iCNVxffaSbYJetNAGfRH1Grq+AzRw+UwZbM4I\/U0GN\/sW\/jmexTt30Y7jBBnAKiffE\/wXXJnINhlvS73\/3CDfyRRnelb\/beLOJO7\/MGzAE8X0l7iJ4F+wlcM2uRbwBXhNHNuCAjNzjcuD+g7jqcOHu\/BfnTXCdeE94CXCAITfy\/8j\/H0nZkMvANZ0KXOgh4KTDkWvIFd4iL+\/jrdnDt\/JmejFwU5q9yHErduWmghsyE\/GB3Mj\/I\/9\/DOIgLgw4s8Kb0tz5ctxY26mgDWxMxAdyI\/+P\/D\/y\/8j\/I\/9\/bP0I4jojbseBHLxtfMgab+oEfARxI\/+P\/D\/y\/8j\/I\/+P\/P\/RyFsQd0Qh7p6lFLQFD60m0Z7442Or0RacuCcHbWK3TO8cI94dgaJ3kmbvlsQ7iFB\/8d2Sd5KuOy5SpS3rW35CmTbp6BNkvCk08v\/I\/yP\/j\/z\/MSOdxM3J2z8v4M3rr9+koA1+YUL2rowf0v2\/rfWI81ur8aaH+wm4wzoBP1xz3spLd+WGm6+e9qYct+7xv8+g1dJSLddcak5btP7P3ZzaIZjk45hWoqVSfvZLIh2CjWmrDTCkfMX5HzI75JKd2PctPn5psfUz1pD1kz9UXIfeskMP\/kwav9T8S3Mu\/EtOTpYOwca0TS9NWED0FKZDcsnHLq5XP\/ErTKCQCfLwTZ\/4BdMBaFWUh9Y++LmzattPTjpkUv23WdWWvqQEZl7KZKmsiPNoemUltRJoiu7pG8KYtJudIp+4NT2MTdzAcyK+Qs6QG0uBm+jMd7dCG33qOAHv68QxEfdD\/4\/8P\/L\/yP8j\/39YYkJunbg4eTnzphUX8Fkj\/49wrkacTcloi\/TsM3LaZDufL402SCbgFcT9v\/9H\/h\/5f+T\/kf8\/Dn0hNwQuLb9SDbfIv6WEG75ZvMvgnXLcwKUivkaOyP3Q\/yP\/j\/w\/8v\/HnRjEpY64lf3AlReusoqblDTy\/8fFGsgV5FbCcGs6fWd22qR1F\/AWpEXXBGnrvBV5\/hwFZQ3v3e8CpcGLFTPx0KIBquneJ0qDDDZSjXwwxHnU5HaLDLNuj1NftYBM0RF5eIpVyGx9hzyuv7BrhCkdvB\/VIu07e16Ehz9zs3Wodk\/enhtgcHsxuqv9+eOp4RV6+oOLqCvythPN+cqX7UpBz5qv+9tuyJaW82f\/KRV6e5w70zlZiuEFf3wiWKFw7aWGc1MKMJ8\/71VLviKIXb1NOYckgRVAyaE58mc3mAUrt\/nXI80FFbUs0fPm9OybPv90CvEc0gYOm8goWvKKGdXZQgzO22UazH4aIBWeW1JHmKhGqQ2onrZWXHwyKQZPnrds4c\/STiCJ5368j08mVIuW3GvdJ+914YfekwU0t9A3OaCG55ekE5MFBWCimqgvuSB8+v1TAZF23e3CRkE1WUvREi9I0\/mCaYwnqxV1JKPv8s0nXLFx5rXrC2Bzi9TNQGa1wgufnhtcY7imllnx8o5hxNSdVwHyk9eywlxT0FbtxRnDu0+lsZgqRQYoee2ItSJdd9fGAijvuDmH0lFRdQcsoiZWT3F6+2liHKVKdKVK9\/VHkmSzbx4IUHpqnk4T4F5rWL2HXFIYK6u0zCvWNTsycfotz+QAn79xRH9LHSqGTKz+AjNinKOaopapzguUpu8bCGRzb5kDYpHOhCHUEZyBhYGPWVQpag1q3cdvmlIMpq8iIO06TP9kqoQ48wcLH8U0HomKTBg47bkTLmQ7zh0UUH7knhz4IvVBR6PWWnPXHMR4QpVABihZpfOSfUNJH949CORzI+pJgNVCHWvTjJPGC1Eqlivd87sGsmZ4\/l0ewC30Nq8pWDOXSA\/fi53VSTXVEvXDi4bso8eSQOv2XJIC2RJVGwgoqog1ebl5iUZnWWqFKpkVPnXFVCA\/euEpl+lhOl0AZpUQa\/5EaRieJSlqCZBRPTnrUPLMa7YUUHrmYXpnMJBF4WxTDO6ao5ydREXIWsrUTyXFuntuMhGDT9\/PClOHWsHZa+HAvZDPJtTULFc6ZbN3h1C+9eocMXz0GFWTtawjOs5+bYry7EJoLSf1czofdIh091UpgBg+eo8HWKE6qJTgbD0KD5T1xdZSUVGHMv0X3zYywI59IAmlI3S70RZgocpZvQZxN2viiFqu9FyaEaClt+wdBLb4GP3drBbBmDFG+4THWqTUrObUnylGDO+73gPQ8PGL6J+sVkxgEmNLT3lJaW2gSkRLKdVoANmj1+QAP\/WhBjR4doFOx1qqBWNTxejKRyk6g4Uq5pXuu0yA3vNIFvKnnqG35Q41jGvlPOHkOIMoKlZTor4UEFM3f24YKB37KCtMFYuK1DHOldE8ctzOAGpqySulorxj7yCIqZ0fFMgPLlJ1WS+pMl4We18\/DWUVUtTc6KuZQqRznkkCYsOtT9F\/UFGhqtp4OjIPlEBaDSTAJIEpWY1FD3\/inAah\/Ph1AXaU7lxR1FQZkxf1vvMeLF5EEbVk9L51waCkD9+6vvjxI\/TOXRGV8XySrrrtGNE0z1ModTW1VDPqy\/tNZdPNl+SC0tHL6J06oqWuMX92+\/gTDLI1K1Lpk2k63GtLSw6RZu41gdINd5rIsyOq7pVQSx2TxXAd+cBlV5DySvo\/OPcjHVxZAPkHDiSIwe6j9LbUMhVVJpoS+9\/3ex\/7p1P9ZPv+fkq1yNct\/GbjlZMXBYAF9VxTtMTYHlZQOCCoaAAAMHsCnQEq9AFlBD49Ho1EoiGho6ORShhwB4lpbsS6eOA55Vm548\/nedbzDbWoD0KOe2k5fYn8VffP06\/LX0Z\/I\/vH97+XHO2iufNfyl+6\/xHJnwGvy3+wf8D15\/m\/+z\/ev895hNwvQR9+\/sP\/B\/y\/7uf6z4PvrP+z6efaL\/xfcZ9gn86\/pH+h\/uH71\/4T2uvI2+2f8f\/e+4J\/I\/7J\/sv8F+5n+H\/\/\/0zf8v+z\/zP\/d\/2HwQ\/Ov9V\/1v9l+Tn2F\/yv+of7b+7\/6f\/2\/5\/\/\/\/\/L7vvZ5+3nsRfqz99ZBsYJPYKF2n\/XP5ONGegPjnUgDFl83jzZ6J1GOg5cKG1xgk9goXaf9azBwkG3QXEazQ+FG1OS9ZFXaf9c\/lBy4UNrjBJ7BPO4korL9Wv1TLIMjS1fXP5QcuFDa4wSewULs+W\/w2V8UIteggt3c52Cxgk9goXaf9c\/lBy4UNMmcbW3I7kmE9lyg\/dIceITXiF2n\/XP5QcuFDa4wSeu9bjfBfXxU0zE65z0vGChdp\/1z+UHLhQ2uL9jULyC9GDXUoqp9Ve02q4KF2n\/XP5QcuFDa4wSeuwS8ZX7\/Fkud9xP52QHT+jYtBJ7BQu0\/65\/KDlwobW5v1+fPCISaY7XVmPs89nW43cyufyg5cKG1xgk9goXadHqhQnVMoOh8uIMFsY5fY6uwULtP+ufyg5cKG1xf0FTVnKYoKA+tK+G57jnkFWIUbnYKF2n\/XP5QcuFDa4v1VtoxLJF94HOea9FO3tQC3NcYJPYKF2n\/XP5QcuFBXwS1TJp54DVafuegsKf7EsrsV7BJ7BQu0\/65\/KDlwoaYrtRXeXj09Ze+IXtpfKDlwobXGCT2Chdp\/zplbMAWUZu4qPQplQrs8XNRffShdp\/1z+UHLhQ2uMEnlTog4zvxjtHlt\/jiq4e2Lx6Ha4wSewULtP+ufyg5cJFf38tP2XEEP8lUh4DjC7RwuA9aewULtP+ufyg5cKG1uSutD\/Px0cCLAZ9HhTVHMl6z1eO8c0NrjBJ7BQu0\/65\/KDh05VURks8BP\/4iuQvErPg\/W8MxtcYJPYKF2n\/XP5Qcr2javQ3iHSv2zf0\/V62G5ILab2mUNp+6F2n\/XP5QcuFDa4wSX\/mlAIs6EhpQYimOUYNVkA+oUVqy6PO0\/65\/KDlwobXGCT2Bufsuwsv2lWmgleWSD6VJwmdpQJrjm5lBy4UNrjBJ7BQu0\/604m7\/yN+XmWjqp7dCWC6qmaYDNyHoT+ufyg5cKG1xgk9goXQ8fUIdudSf9XHE9Y0VkF7BR04PJMMiZ9P+ufyg5cKG1xgk9gdrGZrHmujALheOFlm5QC9\/HgSpa6vrn8oOXChtcYJPYKFzuNiuancc7MCwp71xxf1Aj\/FNKOyOFDa4wSewULtP+ufycXhK69NyyU6nathOWejh\/0QG8GUOxMfhQ2uMEnsFC7T\/rn8oJqlW2yp+1mNXippygrE6FFEsSpHpD\/qcJPYKF2n\/XP5QcuFDaZDKOHH2KTvcZ+G3WnkzjDYPgONk4bfT\/rn8oOXChtcYJPXYQi66SN7fEcowAwmMPUip52wj76f9c\/lBy4UNrjBJ68S+x7kEM7sQ6dc\/6gSIR0Q0WgIRPQbYBfspL\/0b4se058V2uHibhvYuImzT2ChTrKlLIBEDD7+komU14F+8sQibDCq2BQbMJdpZBJMJaWt6\/AIN7lU\/Ho1J0wrVUDHsVjX3LYAjcn\/qSu6mZLT8wuvVnoLKDN8rtySC2cicbJiB+7QjdVQDyObbatxhSo6Y+ACWKQZ86+InsZIsofcg0nVUrkKjSENctfPbsf7AnmZyP55+a8rWKYWD2a0PqrNpmWvz7K6\/TFCpa3GcBchdlLR522GoYVlvprlfKoUgEln\/Xc+BPouG4qta6yNnZVaQOyvff+2o5pABWcCAF1jj3kPhmWb\/+W4QVURs1xqAXYdDW5crAziYFvKj6h9GQsq7yFvN0aiLFsKEvdCsKtSEW6j3Bl\/j7PL2b3owqHlPBiH5uRbR3bdaq1nGWnsvFNURV2dy\/cLwLY38xe6WIRdxRBMiexGnO19i2rOsuo6JX\/\/rYD3UK9mDMiCnEgWmJH3KyZVJxn5UY3tO5v0Vcxf3x0nSjZEB3Qe\/BXOdwyNp65N9EHgF3RfYs2Wz6c0BAdEbp8JSQ4fKNSNe3GLrLc91dJL1cZZCTPJrZ6igLojQiWXDjD1u23uHDzl1\/ng+mWv7apXNDnT6NWcg+lGHXo+CJdjHzM8PieFNrYLFS0LtLZkLmEc+rxIonCN0WXTPouj+WlO+jgzo3IygFF+TuPhWXNjtZBgFb1EPN0XR+Z8nrib8kgvRcPYmytBgUaRxHNp3ycdB6y3yNAkBha8x\/Hp3WpW4EA5js7\/3A1dTd3mrJC7TxGks+rl1+DcqEEA60FdYbG5rDOip2BYTCIt7TKE8ylSJMoFNBGUhy9XlnyXVYBU8lOR9tKf8IdJapolKTcsnJAqCbIvTcxYXAy2wRIh9LbKM6EsKhJjACtWVgBlDkVls5JbXySABC190w5u\/ujLFKaWYByx7HFDsAi3Mp7mJlP7cHrTHjoAzT0f1QQpe3vtZGO+HG8knz4GOrK5aj98eSl6Jtm5uB4GBFW8qwl2a\/W1FjIZV6Qsg25voszrWP8XV8hDVwhSmyYigzrFImUNHoOnTWniysb2fdjoTTMoQ728UpGAUqs8OrPuwXFDv2kiJ1Z4esC400cg63aZwgmrKRiQYAtTG52KJWL4Xo9F\/GCJGpIhM4K6uBlRzK2VuTu\/55JeGi60xwxUe25k9XzTZX0ZPyjp8iHWXBRQoviFlyA\/PTiRS4NJutQF7Ddtf1O1uczk7gJ99qpiVwAFArm9fBFAdh5QKm2BU+ArJKVo+uZ3XEpq6aj18kMX9zYZ324arR\/zFHHl1RyikMB+J0JpVab2ohcHYUhNALYeblr3i9jdaiNbV3iesShp9fDU8jf\/HP9m2nz7WKyQ5Dfvk80OwB2xiTdB91HwxXseeklF5+UsZ6XmlpCv1cs0\/yF\/9wp3\/hBkPFA+gBGfN+lVgZqZTuZEKQd0FbosBlr1ILRTPp8MX+\/idV5gvfGFHe+PqTiXb0SIlzr409eOSYHhI0HLSQnJuyScMAw9blYrutvBgDaPiIFOzyKapeWvjPcb9CNidcz0az0NNGc9l\/LEQ9k4EvmnoNxp3923q1JLy3vAsUAjnQD36wWmAd34dJTesvIKvtJ7BCj+QwGKwMZbDgW8Ap4R0I1KrbKbVzQS10cpzr2\/Zp8ipPAZHT9qI8M7mk0eetHJtMJ4qPZwpo7x\/x06CBAzUJjFGTEc3qgxvSwi0Nmu1rhAbgROBCVsp1\/o3bJT2Z3WlRqdP3aQKq+IoF4QuqJHLZr\/A7tM\/PPRlG+8rSdBTwlj9f1zHqncz86BHPK\/LW9j9rE0Lrp5d8gIAs7kckN0dLsQi3Yso\/lJe343rvxFtNvUrbhIeyx3R+ia\/qfewBC32SpREODVzH107lYMBu6Nt1aEubXgbtd7PzjQa+HS\/0vEgfVOk2QVmxRFTgl83g3yp5bYNnIZaCBl75PkKS47v9Ne6K96MaVS+YjheTY+WSOT4QEwkFX8xAnaQYHnP70Ptk+png2gcvUP4ex9wd3vPkpx9Vm0mfkNJg+3efv0RmicuL4bgrDrEqStKcD+8wrzyL\/DeNeo99tkHpQg97DX5FL1e3vCKEAJ74NBio2jGECE6Qs+a3OP7DUs3AD6PDqiSriIRaC+gGMEkdARFf\/Fef9DGmrwSLIU6mEM+vkUnNuUNAmlP\/5P4cgQIH9R+X19rz0EsawH3QjvIGMJrmO8L6YpOzTgYXqFTTOCrJHuJcT2efJWgPar7c1zDvGs6oLCI1rBgR\/875VZmdMOPjJb7vKXQkUCmb39B+7C9eKLRxT6CXtTGjFr2IgSwdFg91MiS6UMp6Kyc1ZnUhb\/1rlMGJkmpwnw2qfvLaxXiRf4P6Lp\/8p5pQo3p9IEffSGTqiD9\/8m8ITMwalidNjeCR1Fe58ABNJMx7qUS1Xi5lZF7flL7dOXS1W7ZGO9w51vsjVVcKwHijgphaczD9BURTFbf7qUmB11RFaqf21YHj7dpMLROMtO1sGI45w6Shy\/\/Me8r2p8LMp7H8rEe48Y\/5EPxONwZQQK5JbXhFnfIIZYXxCNwL4gpeJkIF361CxHaJCnM0KnoS4yUx8vU0RyArGk6p0snD5S+oC5mRdqULIpjmT2YOH3pnQrFATRouVFBIoQtqbvmW3rgZpn4E4o0lHOf8cC\/37hmxyoDBXkGbdq9Yq2DVwV9FV5pX+K7kTSMqFJRNZ3h76GYENIXsM+UJKsFlETwBGp4+w+JyuHdVXqzQiuomnuQhguKHSUMWJgqAtuxXTSKZWQhYrX8AzoYp6rGmeAbthpf6wrWSA65XSm0xRZSdVCTx5LtbmrD0CfNPMC0r5GjTHryoTQTZEs\/FWkeG\/x7wa60J1KwkL\/vwD0w89WTjkHrt35AsOZrauxTwqFBkOjXfx\/a4G7pJaCCZq6u+QxRwEaPh2yLf07VGkidxE+4fB\/CZ544iv5AUARZpbXVvqDpYltvGfzse8CpUKzR3Wlp8B665MkXBFKVuYuLKafRs9D9nKdL76gCuiMFpEYBS+4iK15zt2hCD27HoASpncBAyGMG3XRbnXwPFC+MZQTNm2uH9cJgLWaCnk0W5ReK4PXWVURhhNwRxOPE2hOih3lykUwICufvMYDOB5QgEW8uSxh\/JUaAjVOFVBNo1DUb1KxlEo7GdNXtB5w1+AGWHIyiPkTFVyyNhDMygitBw+piLpgRrF3gUPY\/LMNtZBBmbcG6XGpTL8Q7X5puJceGSpMNC9Khb01rwxLocN\/SOFxp0IB+RKNfaqbjsFLJsxhlaLJV\/IIpJ8RrQ8HSKarcv5NPcVD3kiyl\/N8hzXCXUIIArr4SXAl7NRtiJy7Au30VyO2ZJtMAlEWD3doUdM0PKDZLkMA+MO8dIdcQONpMI3mWwsTtQc2TnWYzcvAij70vi6162eiBDvE\/PVFXoDNeovw5RSjnO0wzOhk\/66pe99+MxPNMpYS1RotgpoJc\/Xd33w8fYq\/0giYcWkWbb2NSk1Mlg14Gc59I3eeZsY92Voogmk0sJFKxArRYQrMvWDI2JQRusEZVNXh9CUMbgUaXr1ypLFSldtdRWhr75kbi0WYH92eOWNSFgB1hOiWewWnG\/yeliPQmg3PbpZJpaJwsZF6T7V+m99\/Z1JvYPP2RqSHz9rTbvU3WYrH9C1rcNhHe4jyK4krU5pSkqFgHrsajk61\/2MMfTPJR9zINGR99aMk6OKzTSwxIpoTjFKBOgnxy\/o40iAHvWvg0CXESbSK3Z29\/IREn2x7dOfpuMbIbVy4diyFAtk0B6K2afaPl3qn6cSebgkop2iiuHv8HBVooNMnTSCtUZkNubGnlE5RrOOp23S3B8MCnFafi9n42QwL5qNE7jBQu4BJGlnXycqyHBdto\/icMcwjgiwQ4OZrP2rjfrdVNLjggBBhjFbDwZE5TsOcDRRvxyW8CY1zjYHbhQ2uPbhq8rCvP6H3wHyr9VMN4wbVB6vBUM0ed1vMbo04cv2ffTUiam9NCXIa2rznBcg3hz\/0fstxQzv1J3V3JuSdLP99xX26seIuEEONbvaxPM2AxeRR6RhnqLKm\/+2djtr0R3HMLsdaa5VlEaHEgjHIZ\/3cyvOdty1qymiMXAOjpipXjBRyUJDM6\/hir\/FCM5MMWiPIxvIPecO0MnaIEss9Plblw43lWMe\/PEAxQa4vJAxvd8sevaBngTNEJQUgvMP3fz+AbIU52KlTUMr7u9x1vA6AG42pWRBQ1EHLOm0ZXu2iKa\/4CZ1o5TZTk+sl\/j1WRNnTceyqX4zpsaFUYQomy\/u586Of\/ad1ND8lbU8aR1GAVpOkPIandPG7dPu5kjxmaRhtGECMumVacpijn8qsQe3gC4Uw\/9228NXMXJ8TY2qv36fFgIsC7puywgAK6SA+UyEyHZlXOFesbVfwRqJANFSWR3kbbH\/fX+JRKp200otGsgErBn0omBOb+ysPemwGN55\/PdcNCZoHJm3CrjlevtZxmErKyKwKQ6eJHTm3Ic4V8fkiVT8HvBzlrcTLhiwBjCMpao36nDXJ3wDYv8rAu7Qhx5DSsbcaPFh1kkXlNG6b4bRhJhFVamUKUvytvnEWN\/kbNLPedP8T2ei32kPgj7qz8FwE7lTqXAXrO1hvckrGKBRznWsABHRi93jIq9HrJQruBvcug48VI2SCCD\/mrfpQlaDExT35nPPmBGYJNa3xtdGfbeMTKXc4WQCYi4jMSWSinRxMhbNDs\/t8tp5SRB1LSvwG5Xm1n14QnzCyM2rLU6yrXJ4d5fsYXYvCRekb844rsLSCOvIXQBN32UEMtSH73CZ0KFYi7Lf9twC4Q6YX3zNfRc8Y7ZC3exbYQRDt4K0nPASjj8AdBzDZbMWG+fhiAfrOlvpQViCyvlgNQ4ORZ1w4OBIokYpdETFNjjG9NYpqu5bV0LoTn\/FYLBu98yH0lVX\/Xt3Jh1J\/kYQvy83mOSkz84byCXniMwLXM5M4cucW1dfVAUq2IF3z+pVbjeGHzyUTpBAdj2GIGg+Dt43RCmz5Bb5CJmqyOFOSwcQmkGKGuEbsvp5p6ozFTyivAyDHOQ+9fuYDM22JuRe8Cg6\/3FajNumoT8mXAkv4AR80kMUBb9c4VzKHeQHIDnwZY9qT1UGwk1s\/5nEOdT8hnOwCROvo1uq1PzHPyKUBKAmGwULtP+ufxQAA\/vR+AgNCu0OylPfEN5s8E+N52nGWpQmriscesDnCAHQqj0FEXYf8Kpuod+5FJPrgCdTYHeY5ct+G9ieUaewRnNfx2qUFd\/Td7QPfal1oZCRKw\/joLDz+x6C810w8OVv\/mxmJ5cl\/jPBKzbF+2J6+DdQyIBuxURSfRl+n9VCwzzRSB\/DFcUVkPWLzF54nVwmnFHm7EkwooAVPIQABE33ANP9pwFCBW554Pu\/VkDs2Bn2Xwtbi364UuRv3nS2p7zCCEmddGVy6XJX5Fy2nIWUYaY8Pw1zPWZ3075hdvWPIFdsxW+swB94VKJ6ajZXJR7s86B0WkPOcKtHhRlN3SF7mzfr+nIu58WDu5RkjNRihO1em4+C50NnwxNAAQyyB9du+YYoRah4Id0XpjQh6UIGHeSCfROJnGmA9gNm3erdTow4DVn2Rxg4R1wow833GbXgZrKC9iIbGCitag9OuDajH4HOBmqrS\/wuCnaE6pcXWiQKwTc0uwz2Crs6RNdsHHxtQYN6f6ZDdKcbg4CoYqYTha4AiqTTWaB4BraCAWOFFy5UwD8ZNbWegZ7Z\/GbhdzB738\/+03MA9TBA6R4XMs4Zni3xsOWVY7QJmpObI1TNOS\/VuCI5EOalAHTi0+8XyJla21d5F2bgnk5Jl8tI\/z7eAOwKDEbAD6eyADfd+LyJakSjL5I5prtvf63BGcSl8aO3E8SJ++XkZxOBw+G6Dgx8adqiMYwo9vwN\/5LYYCCyoRmxMuJjKbVk5relvaWAgEqRFsu7gtGCUDJnFvFk9dAoUg\/K83GVT9NeFdSiMaHWRiFPQDXQcdF\/lTUNIlDTsiTzpN0JJqndOx+DXSvExQEmiOIP+xQfhMRSwmxKCv6qa7yrLN9tO5aHkkdOpK\/e4rs437v32gcfZ+yuQXv2jt1S8BkXzgcSUlBruAAX0l69ohHN3ME\/HNzxTnu3GrvJgd1THFT2xMAHsUC21rOfyjrOJRd1RmzPCNYk8iS9+9Q2FeaJb6JNdwUJiBcwK\/dWPXlR8KVDt8Slr8kFV6QW86GckjEBrSvVB39cD4O\/agzQLOUdDMbPqLlCqeofH7ESQgcqnO+rctekkPmBb5uOR5xU\/HM\/aJ2KAARtYOglXe4tCEEfWzNn4GqVkqkvckiu4TYmVx3TtF44rsPWv+WV6rnrLLFyaeCardIf+kIlOqBeUdxNf8U37tC4LW3AfoEmz6Z75QJ1jvE1epHdEXsWLM7axLyecYejyG0UupGzu57eoUYdD8QHAwGJ\/xkaTrJoNzRkyrIV+4G+9FruYh0XlPKGqYxzJKOBSSv3EkFgBJeOFv4qqZwkSa4xJGnvysM9KKkajwPd9nC\/xM49Iu0uTNWAhGC\/dVGyDrTbrjhk0Zgylfx\/i+KImgeTCQO62p7YulMdsPSCwd4kyJFr2ofMeKVc\/3ucihHzCnJyc8W\/7uke4qPXL+tmrkO7OaIveSyrM6RZAbE\/25nOR33LZ+Ak0PA02ALvdQkpvgf7dXpAjdSRLMlLgAz\/vAza\/yzfvvmQJhMJqV2beUawg8+t25IUIABv0kElxr617RY3naYFpHc6KCdFS9MFvuZy\/zRV06STuM1fxwlKCYd\/A0KGYlItOXYbhptV\/nOnTaGNiqBQdIGM2qNozGurkxLqpT6D3JtLkMtf8c71DvuPChpYGZl22RfvTzKXidF4HugKT1kzTctshHX1cI297vOy71zVQda0IDFTCjS\/ualq+oAdY6HEo6eIEwfh7oXbqDsmw+sU9VA2DToCSWGN5WRvlALj7YUy424TxNAaBDUWJ4WfSQ0TnFwVy4oGe6Zdl2mFv0lvOFJxjHfy0x8irCScIW+XAy4e9xsOZ4m3Xhi70tiPPgC32l08PzdvwZJnpYib1sgq+f+i14B7jC1BJ4yaCoAaer0doZwCenpSIQSPks+6NxQSTN7UEwOl1U6Abu45cIcd7DfPSzZgAP98Jy1BNHX493wrqpNqu6gSo\/T1Yw\/gbOHRv9bcTY\/Mo+pfqgZYESAnLwSvArKIGbmtWTDMDui3hWIeq4YguDJYzzDPbHIdLMGan3vrqQOCFzmBe9BKKFYz66OaeQuuVyH7A0vqEE2LQdaTl2AOtfHj2jJKDpNj0Qkq1jcuo9EwMnfveNDEaJjR1LPN4SG8Mfw\/5qW8JsANVUrVl3s9p+hUWGMiCIRvXYwMHxdfRyzkTErB4MSc9pCO51f\/R9Xlqo\/tFS\/Z1rLanBnRtWZDf\/3e4RU27I8NHnnmKDbNMtgMM+4z7oeVKyisE2mBQT5YYf8SKiQJyskz+o6AvAPP\/hfQBKhmA7aB2jd72TsTvzhX0Lir+Qk5J1tEMB3gU5zG3lHqH+D016Kw7ZyaIFDj8wk2XzDJ4jfzMS\/aKTcp9Lg0meilO9swDXnvTU6fQmPm5tYhKsgpHo0bWOnwYTZVEUAjfh90ittqlllpkTZZLYj50XbVvmuwGx6h5EYIuYMqwXa+fA0oozSdP0Iaxec2TvxuuEr49wKRpsG3sh16JBm4AAsrLMjEnNl35Wb+8gWP4ZKvUCgIRbTKjWXf7l6\/3dP2pzmfB1zSHE4Q4pRHjz6k4GhJHAy\/P5zcTlzIuNKOf+09H8KMLfRGApeCN\/H9uZqiLlzewtjxoYAE+x92cd5iEy013pQcT3y5w5RdzgWOblWv5wbHL9\/JsLV65nNH\/xoRNvO4naOWsE31Qd4Tp\/zgzrFqMF5RZha5z+h3i9Uq6avdeRRHH+YTFozX7r0L4eER37AC985MdVPd4V+t\/7Bw8EaHLyUrhUQJOS1MnFiGd6QXIqsSo1zhbjd2aBmKXrEDTVp9v0xl11qC0bt7\/ybnoaiqFMdwDRz4pxcYWZDwrQPOC7lBD2Jojrqww6N8J8j9GjxzIc6sXp8aHj4S0vTGnw8e8UErHYO807\/Pfn3lrlzMabeyq1fKipCHzH3fs8qNJ5w+rOcpfbLTArnHOLwkJrFGH\/1N0guBRdcxExswAVBzeoCkSzSSPvtwgmczldfo6GzZWABfKrCsO3vCd\/+Zq98AdfRn7aPF9\/M7Qt\/QCWUqhigERGm5\/n8rCcf42D\/Er6BK9VWjpTVuBYoXYUztWQQoKNwQDWjlx3\/lkuibiP1Oqgb6GzRxK5W94Az+tcuaIEimpAfd12snYR+LAYjhdgdFt2tYoWfH1t0NN0H99CcGltnY1zrsa88ABHO7xwoyK72EF28m2LofCxHb6T8F+14P2xtZ+43\/8fiHxiMX\/7fOniXEBj3SvxvQQftML20GeIahiZ3pnOnf2\/Q0EeiqVBENQ34f1U\/pLIw52I2XoD6ZmtjsMPj8JPLue+KJrQNX7pePbYAqdJfx2GeroS9DGf6R6MFxGh7e9\/IP0dl4VuKxjKYrC9eiuvvjZxtH\/Gv4vYYoE\/bYZVjv2d3WKp6\/en5q2AD3KSaaZEJqh6S8x4vIqRrq3zAKYvLnNMH2bMy8X1i0x75bdniCZnRoIKZBmXCdIqzArnGNWR4ULAvpVl+VPmwiQA99E7wNeJyHpRikRgakl+gpAgAXSW9QPkXi7do72vPMGNKAL6dzHvPbFhfEzn9dmWmC7GBIF7Sq1Lwo9sCXKr+8vqJC2knfrGZkBdMrO5dOS28tgzMJLCAQOJFBBK7yJuITB9k7ZIYfoACZC61\/iiY65aaBtTAYEfng8Z2\/J6HaQph1h+uVo7qdbqaubPWpej3Vbk+dSz88nBzyorxFX4wPKR+Z9s2sNwdj04v72vwpiEPw0iOoMPjeOhyAq+Fma1KRBYNVOKypXD5CChn8nR44gRNXXjDwvvDQ9xKL9IFg2DobOdD+yuBz5+r\/Tmwh+wGad\/FnW0gfjzJu8ebe2EqCZ714UTmfsiZ3MjUPcZTVrC19FVDlOR99zGR16uu6iAPC7th2JsunN5PQ65l\/zG\/crW5OUIsgK+ga98bIexyd5Z3C5kjHJEeAw6NzCOEMuCtOrcLp1KRuc+liS8kCV1YD\/ysHsyljRbx8B01WQp+EnIFiPtcV+tEw7P+w5rs1lmSnw9yNmvlXozTn27t+1pCPiKvmRXTEzvhW6KAlDqHbrV8dHftv8ZWkGKFliUfCFi29P0\/ST8juGiCe\/VoOuP34iJi3KdPuR4etvTqYvsuI\/KmoxyFlQBUJzzjhQll4SgLzcDb8AyXCuuGRxyQFYK0\/ukBdcZERFyvozh75FgpRCr\/MykzRjqb9fYi6OwYWoK6LkF9wEYw8IAeEkTk4fvok8NVfIFBP0OqLCNWNGmDxNw6kZQy+cnVpW1+oIzk1U3pDZ0exUiXWmDK+AGMRRvMBRIBVuKTXMVHVeeN9S8IsReZY1IJiuhUB97GEH4e7NntGwtO7h+ZTIaCzYo1geyCbt6XhQK3sI+LOhw7VLx7LAsFzUp8Uq09FtlaYKGzswTGX0HPsjGzk3WRiCYa5F5IOX1RWytTRZTgNCFigAhTQP9dcSFUQ0SOICwvTB88P5jCtPbdTkJqh4N\/C6SlBlN0sqJj68vsVwy6\/mLiudNGBSoLUuJ4AU0LyB8ior3ta2WJup5Vtkrma9dic4WN+WRCD4qbmKSW9ACATBGH0iQpVd2HVcEwIPxQeEf2CmAE21rjL4Lefu4p9fXwGiWYckHwIbje2+3QAEttmySoq\/WLrtByOHHF4rQ2Ividi7oFclook2vnjOjr\/ykFsiXxNoxgSz\/HYfrdyxCNS5CBPz2dx7Pf23FUeKREme3m9AibX0las3jekAZuEo4EJ\/50+PZk6GctVYmeMJ2kV+7mRWirmCYgMtOmMIgqhzNpk6AMzuDuJxxNw9alf3DwaHv8PgL6d6MFY+wNTMJOmM2PtmOwDLKTd0UCBGWwoEuF5xSZ4FhG\/OjpKhfKJpF9rwhqN9mxb5X1bysGVHHrgXfzoqf7jkAKPNBL2OTs2Z0jyn9I6gFlT\/XSnJ23fOpkdo04txgRfSif1LZ5nG71z0NJfiMfxVFeEAheVkMXfZlvYljv3QFJFLPBZ9i5ypESzAYOF2EhY8JWvISXtqF68xCusiZSnJRmj6z+d\/1PaAnaroHJno4b55ezomcTilh4Vks6rc\/lM2CwgOfBK9ee501zbzg67PaoMw7DWDDbkmGW9wPGoW7VgBhBZxy0c4CD3Fe6A064P4I9rG59+mAyElmLN7DkxT0iL7eONw9IOQmgLBDsIm9GulQ2C7VHdTtIzyQo1c8qptFWWtlR9nTb08yNFoqtJD\/taAate04hvuxaZ\/XQJehNeonbZ9C3+Nid+urf3RkuYl1W44WbN1A8EwedVBm7Tf\/FPupzPJUGMhXXIjoH2+z0BpzR89bG6wzKW038BFGEE05RPCC+8fWAEd+OBNDpGqBWIpYE69zoUH6GlrHAy2igvOCydqgdeQyfdz8hGmOYL+eVGDx64+0XUoSG0SSoEzBDMtcjRN9fhfXyHviftLDJnNQiA9e7uK8\/F+W12M7mnhqmbnJlZptVLCTI1bGUSHZCiKzqIQq3ZmJ1NOd1\/2qzIIxwihtqYLzBpWep3y8WX8y9ddXAWQ+kDABAIv+uKGIpTB\/rr7KIbCBQp2ws2prZX1vfmeNq3wYAMWpG\/nkjqnUSYSC61ySbEmQPejWfgkewbagq\/1N3gFFcEbq\/85W4ZqoN\/Qf5yFxC3QtDUvZa5mcVEZ2GEC2PMa1d\/X4AEIKBryZLFfz66Ttq4\/077DYQgqSBQ2kv7TVeKbFpCAH9X8+qjMH6L7P2qO\/jgr8xxYv0VFo1dMtGX9oP7mCHcxrMXALPDkifHLlAih9QBILpwA4r9YAU0A9MHJJhiqPVTZOXAJYpMYrqRw6dyL12p\/OFEhPMny3zHSrwTpUCUf6zyTlmm\/tLXyeX7JA2mGhlQHF5UrBgW5xKW5uc4W6ZGqghSyiYV8GVAvidBUmqW\/nBhKzgdN4qGg7c3apfrKaUN9twDFKxh+SLHDOxmbPFZVvHu6wydC5zp8un02fCkq510OGgONCcALbyKLSE5YXR3XPAeZ1YA6fMvpcXSCrM9RaOiRunTdN937kroJC57TJfcHLSIeACSPcrZe29ivJY58HtQMu7TvVD5mlICfyjeGueQbjmxG5YTC4NRLou+KJwP7kVJ4MekVm09MThB2NwFR\/5+EPzN2yeM6Y8J2Zk1oQz82sQusmOXxlwycdWprpyel705stjkkaf55zJPCmafPbWSw3GA3vmXq9DboQmUML6WlAwRhAqxlv7MTqVmr6sOjy1019w1nVT10tNv4MUmiAlsxJqJDsFVu+ZbbOfSm4IRpP7ze5ZqZbxzgTmHXECfWtviJObNafrpsZrKxrrJhHOzQ\/92JmUSzTh6abBrpIVGpra8DP3a8U\/jU6\/a5JSIwFmw7B\/17X7Rzc8UMUAVIrCX8RxSrH9mZC+Dr7MLJkImBGl1uUAXGOUav3xZH5fQEFEdI46fUf4RfGQUt5SXCKET2mGx4Cx0Yymdl1v240Zzfwyduis2UuYk4PtH0n2l9D\/X80+TuWm6XSmZaIpPCEu8oDHhY2GxtANd\/NkedQkxfuICUUgl82SRZvfk99PRqMFdBteqOoVqjnmcmSI5wFu8\/vpxLDM98ai0Ly9o5ShKzDYmpjrZ0UWFlYm5gUfH1rnlf0I8KZzmeoM7xYvfeT1BwO9guqO9phUcOcp8C5ALVvbQmoWa29suXCYY64Ln7Fhffuu2eA8DWZ933Lnvr0LtQdP04u+h55KyFA7FdKXOHOtP8llndyszdjP5yQDgu1QhTCNqn4CwOoCf1332hTQw0dcG8TruuMKLLhUA1CB+Begfo4dDTr\/lZ8W0W4YvTlLgwO\/hXn\/A8bMQEBkc6ELYNO6K1N9A7yxwaSSHp41Gsvg5sn1x55ydS0s2Ez2tWA7ffHDwRo30iVm6ZNcZxOV6+IaPZ6Md9A2iBvL5ryfumkWcarsT3Ai\/OXJHW\/4tv\/\/f9xdQR+sl1XMP9H0ru\/DFMqx+w7HvkRH2+ndQ2I2Y\/sAte3J5BIoFg4R1NL9fCBksvyrrEjZ7myMKiXd8s2OnqqU8miiyj\/3f3P+aHE4Rx+1s3lfCNwlLwTogwm4I7mqxv\/9J9rmBfTH\/dDih\/gNjdPjiVcVJJcPXXaixLFQ3vHuvHowt1oQ3XfDEaT5QDw5wnR0OyJXcNiYuRQMch+bAWcbgh7PfoKQzqhTjy3HRWr5WyUAuI15l5+6Ynzs9aj5H8OHtVLZBQbgmrPx6ChOY7cewhNzBClTtEXslMljqA1HgXoPsk1jzx1DSUSm4k+SDSOK+igz6YDmxgyZ3+gCKNNz\/dNrMf81SaJMm\/5vpTMtt0TjCsMQbliymzHXoyXyBOWh\/XNwwSkLCXwIzBl76Tkteo4+34jHhHTyfwbY1D9eVOUuBV4Kb02HUu+1k7R1aPTH1AODk4rPzR88269yQJYQOvdFrkJjKo1Dq9bQvFoCb\/9ytR5JJ3q57paZR3wSPEBIdzL8fHUNWzuEXF1XcjK1QAoD2swf8UGtphx27\/aDypf2vZb1mTvT7vlU3y3dxmFPha3AJRjwHjf8YxnHaB9DgHMmRXLuNpWJHxtJvm2mbJ3Ut1TT9qyZlOuhewUcRu\/yZkfJeFJKW9WcFW18PL6RCT4IRXkukZWEnHgb3b5CsokVF+S3r8sX+xNqAWKQj3XLCG3HfvPAaUtCTnaIKGCtWbG\/B0lDiym+BuvkrCWMKBnzSPOMDxnD\/\/eA6hlwr0t5qc757TiWYCMXEKbiC7QkSTJx2kzMke6zyitCF3P65\/DMLb2Fxs\/9dJvk5fjskjWj1q6WfWS1P7yf8rLhWSoMekLJq26DnjOFWcA3TTaasJ28d8qmkUZv8d6T2YzFlUOxyBQIMWsQWouKVNqbvIFs3J1Ea+xNj5jnwwlrxMX2ymcFpVkbzwqLx2Au4LL8l\/s4kzosKqCVTwTaeym86TG85OPX4N8nufJCXvOHpX9MEGl3URAJJJ6LL2qK1VmI18Yv9kuvR7DseBW\/8KThfvmzrUKR2VSt5N6eQdDFBCylxC0KJf6GXHU1ZN8hVMmMxHhw9qM7zbeveQ14sXIyklLoqYQnwp+B44GiH4424027iL5aeI0tNzi7+O+EzkyKIf87pV8vCaf5OE0lsvXDZ0MsgDzrVxPTewAMovcKPA6SUMz\/ruN25RPEXc9t680xoVOXHei7BG+N\/lEbEeBY2ZNfzr2lNP120De7\/69\/3\/kyA19r+gOXiyroRU+jXyAohXagr8OsugItxX0AjIADwDq8BifFpjxfcNPn9nZfEnvmpn90MmZ4j8pbDT8IHgIVb1wEdC3RAdRYqlOeUbczjMi02nAfAXn\/5FYy\/wQlJWMn+dphDckIJHMIP1vtV6Po8XVZakADZ3ggymKu20u9fHQtD4aishXeQcfGZtakP4jNYcCoOH5xviTKyRhgT9EdHCRqBEUREcNHwMHboMGZrNrjZiejtVoxAT0sW7upqQpkwwDuTHT9dH20ZR4rQlZtt40Rab3CPbOMhQEp47p4DAu5xJKukb4WhEXtPPulw3gH2PV1L3ciY2k7b+XEmuqj54Gu\/nAxI7W+58T9L9fnvb5c9r6WMXErNEO9D\/hoB4kq7287D+NtIdUsQrewMqcnUtoLicQDF\/6v357QZuTJkCScmCQZ1zKM8buWu19hidXRx5wjITgxbEcdU7Jkf\/zT5LmqcGNcWl9DwlW7DLCHwf316wn\/Gx9D\/NKK0iAhSrzAdZt\/8mqlb846Z9vZ8+TC1Jr0dt2YGDOGJP6g8bkpvrYwVmD7FQajZqrB0uqNhzkifbaoyPuaNzMUxzGBqS+CrU7JakFdd\/dz41nYvb4FJvWVkrNlnqQO6hJCdUdeHq8gFgLtxu9xHrCUGJ\/gXMWa1gDYEQlqr6OlWVOFVOdiTWWiPpFG496a0RS7sOeIRbRJf3PbhLhkVWksbJNfn4DqPjU+0GGg9GuzcAp3AeZVHK4MsWlAH5SPhFWvRtoX3rF2bUX7fFbftfAYTpP4leZZFWC+MlcP4iQ4SD0P\/TfPESQcD2r7FGhJS\/kU1ab10558Sa+dgnia8fJWzbhlSLJCPe3hmUdT1Nc9DOGbtQn0Rv1J8vAG2twfxM2C7Z5xbaYagp7ApzfpdlwE5I0pxGhn5LdVEV\/ct4XZC2gDCVR6a\/AntMXlSVmVR6rjcLmS5Kdd9rnbLFcsTn5KGnXPk4cd0m+wofIQdHxaSfgU1NwTFR78qZmRFkQBgDa6F6b25vZS8JvhU+aQoJZixtiZ1zhPekbCPYDTAd96u4qc5Q7lg569bY9DqNt+DW+61fcNXK\/3j4cmAJswrp4fUlBniIvlheQHx9IZezAPZ8sXrbOtQX\/7bmDzw72k8n5xGOAi5sJbsWKAECqmKcbTXuKhP24Debo3im7GoRQohsknDLc47KIGg2jtEna8bQSbB5ognQE0xRVvibQYyWJ7EfJ74I\/4OiwXzq2\/t+\/n88eCgqSpRn6TGLMXamG9koOKUHvwiGjaiSazEqBDjChv3ASwfiBRRi4VyuMlnUR9u4PRU3XMGLIIQqVziw8+e1RDpzAmAPBprKKcX8BO8bZhaY\/5r76cshJFCZTmfRIdIUPS+9nfl9yBVFD\/zCbBl30M\/vwmshtxL3lKcpnA8CMFIaYQ7SdaaFkPInLI6ux88a7JgbrbicLKnGGTCiHAKw7FHsP0GqBT+BrBLeNPsnBWSem6awNxr4WvQboPNUZ2mDrW5Lzt\/NwVnOm58ZLYUv8cjt1ojZLeG0SE98lvyxE4rPD8lbSTN4Osos\/\/Po2tgaNrnbyqYVZ6Y\/VBiRtEZFMvLpYjy6nQh5gTohAh7srvcYZaiyHAtpy\/Nj6wPvEop\/c2+1uBO3WwovxVultaU4FNiRmELBmqSPvNQRDIMg96PGQ8miYB0hM5\/60czyHowWvBWioViPdzYxwDQLP1UD\/hd56EtcdBizjYfL11\/EAC4D4dE9ccYEiYE6JifAz0M2ArsPhGEqLrj2gzXn9x6EAR\/5Z\/RdUJSYb9xdU7ZZhMzybwEZ7yYI2XVAlsTkx598mNIQgRJSXTUsTPD1OZoU70YG3t09dzSEvhPfFSd68sizxz2hasG914QPuRLtVdtj9wE+Rxq49CQhmpGXa43v2SnsTxlTGTlLQdj70Rw7gIrGrEmu3q16\/MT3QGJntxLiFmYOTNDO9RaWzLD1W\/tEtC5x2+WWaFCiNvFt3UOtGlHCFjZc+NLovIC3k4QIPl2RnpL0usLkWLbVnad9qswIZEA6nLgnXpQGjA2EOs\/Psk7BrJMGUQR7VIyA9gI20c67Zcp8ke0evYK7foFGunXuGm8MuHLXkU9dKcEjMvL1vuHltD9MMQNvXzIAqEBXqB6kDShNh\/c9B+3hoBrfFQKZcsGUN2IWhNPoqhgFo3w5WvkjbWNBHbZzbMV85xEzeGy6wJyZG1VdmeyjEEnFDKZb+VlvlPBwn7AwCtnSjfxlF2gTw4lG8JLRtt6tbcflbj+MPeqJJ60iwGq6Xwh9PIdh3qvDoxsa083NiTT6lGXPH9D5SUBF5TPibXltyGI6IGljyrwry1bNLKlchIPyrWdswwtUnbApj+OInNQxvFNicyHflwE9pR9bNHqzz0K8fg+XlQ6xqoQHBX6Hf6XcBmNrHLsZpnNxTmSkBOz5TZ6eLoHUdHkG1C7rdnNe1YaVe91BfIh5U8eluUBMbLb65XtzuNSwb3NDYcCBLBjSS\/rcH1XKe3Usx149o1n1P7DCjjjRHbZ8hg8X6OzSYIllMESeOyjQhwnOO4gT1N9HZzKpm1NP1U5arE1VOSukZhEeSuAzjkFu0sVbUfsr0\/vL2QZksIXqwC4FzBmkgTRMhn6wAt3lbZB5LKhC86qvRBP4DHPo\/7QybgUu0KqGUkyuzmCS\/Wthh91RrT+M\/cqK7e4DWd764uT3vPlCHPEJVmZgOu0xK95ZHvu2Aq9j4wK43kU\/rAcMZ3OQYenNZdor7mrBycpLzlAe5JI7Jrgb6XdA9OgH7JkJlWy1FEQFIVvme0663naTvnaOV0xikDmyXEnrVHkDCs936XX\/6nX2nxxS\/71Exa+L9ZvwSijWQ+HWNB1qNqXf9I+keakLcJGjc+L+cz7PQMd9d2qBgdiv8JB7yXO0bIzjAaR5rz2yS2HZ4Ox83XJ5sDP3gbGk70mdCLjNn62j9HO8xs\/XEvI3NbQJSitzPDkmWcnQWd8Ox2g3hFD9BYshLHSk0LnW8kYKZyXW8I5V3nzZcBpJ4WHQpAu4C8\/3KbMWpYhI+I9YuAKcEAAESnzbRWkoyl\/7xl+vcrO1yS4An\/plDwoxmlyukzv6RYyYrwTO1pFfnSNtTD2FQ\/y5FfeU3dqx9VsCMHTTnW+EQ\/AvmBhFfy0xBkYVLoGXNK7nrxEEjukcnYMBw37\/8eDTqt3IiNrMToslB72NpklrdimlIBRXjSbpQOhS5twH5V9SQv2b3DACuww2raoxMGB1FG1NY4KU9fPvhz7fkKOsG0LbuhskTNd8Io\/dQc9dI80Til1MRju2GfKzYccTNgI7TAlQyFpZ0lVuJ+wqd1BG+HmQaa6t18dm+aB0+xeYjy6e2A6yKzF0RLZRmntq3xO3\/hLulvX4tmr7+iMYbZdFY0iGmprXwjiJrXYsNw2v6fY8WSHHo0lhK3NzECybk+De1mupmg1ZU3gH0wUKI6hehVb0uHF3nqsOwAkVde\/10HV71DXeVw6WaCU7aT7tw1hmKcbLPkUusRnhJAlaxR6AcJMSoOypZ3PMCOSk\/tErkJNYkMNaOr1+gkSt2MCLQKt\/wFuB4DTMHOJoYpBa0NE67jdNNLDqF5d7X573t3YxwK3j76mPFIGgo8j5VbmUBH88AOc7nIARIJnK7fMrdLW4Q89ZGt6wPSpzfLfphnfrXxBFTWPD1uaPPnFT7Ztg48OZaCjX8qlhuVLvZJS7k0KzKXStgLxy3RZPbfzcXtc0a+sYqDZFzCdqBtLtlBqWieqU0s2m\/OGfW0zPMkIvJqOEEY51OUfr0MTKlEpo6fi7vo1XAwEOTpfyp65yp9KTQZCFjRnzuYr88GKmbwzg99saapDaxELJXUyffowNXRaIW7bRyYEa3jU9fBB50L4tnBH8O1khO6AoVRV1L0Hrf1h+H4oVWN13iGJuXSyegb1P7atVzE+GxyxG38hm84rx004TbBNhsSK1N0m\/qqM72mS0uGXEVvVF\/CpSJONxgqi0HKXUUXYslDY9yqNPNSrJWz+xFWz\/zKutXlB+8Bm+oCyeisNkuhkzA0NOEJM6JIHW5VOQKgRxbhY0GRsUC7sSf7oSOSNhXVgiL+eMtkVF5b1j8tut4eFa42NIX2tDsCSH6agIgm41kw9E1MUqXZzYtHgl5PLNpd4pbSc7hp4NBenhFVWBydpButMflwvIbyGDZVM2Q7ECLDwJd9gk2CJZwWDus5ihON9HGyTk\/Nw7ZdhQpLfeSCzOpcTUkIXV3s+kMDTIcX\/XCpDrA\/ZLEP1QdiTsexTwHt5me\/kgDG8IBUfpWO0YJlD4krf6gJ12pLtw8+NjVnoADykasRfe4Ll8eR+fKoMssVsmEKVkK4wgVJbUNZEjImELiKfLUt85qfdJ3mIzuDTBEoTI0iemN0FaN4SteJ3h3WkSJppN4k3Pis6aEsrKs\/whr9jJXiPHRVpfVRBs5hOhr3YRGlYwu8XxXwLW3cOQPTQKtiwxOjtLYd+3S3UiUPkCwu7oHamOwefrb\/xKua4y6HGP6+q8POF6mBQ94Du1Lfycoe1JMN9dkt8OyIr1QkI2gyy1PtiODKrdNPi6liAIDtNGVm+cRtmxTUAv6luTYQs1OBnr9HT1hqGQ1ChHCm5LqVj8SngEszcPpiOvsDzIp833E6kt4rc6E9FfpNkrx1c7mgy8aPLDwgEvq2Dx9DwMMlHLnW96vRoqQX1jkZhDrm1flUjFrxuwxXFjihrrqS66uP0sMuJtZAM48QgXCsdyGqlQ+5lsilH\/zsmm8LU5NcsgMXPrsZU5bhlXLbTHlXADFA6HQbQmtwNP2ZXCG9SNFgTv5zd26Kjzk3XoQpF8f6JAgQBrccOA67snxKaCCxFCNZ7M8pJK1Aw1K472qLBq\/FmRKJRKZLMinv33MJW+5ydSmTScCV5BC\/nD3C64lh6RlZ82SKHcZ75NTCwDGb6jRrPRemO1W\/TryEUte3SYojqL5HFZIwhyQ8vwco3VehsgzVraLqhSDVXBrawCoNdwUhVqFyd\/aV7oGGz1zBKdx8y67VA0jkqJQSS5v7uWOrilUvi9jeyQ+cnf6ce3L2H\/hxZAJUtYhzCu1ngJ0fyOXO\/aXUfjChRM0fipTmo9jRxAem1VhqcfvCktYcXayONCdz8v\/qJLd\/wA3zB1WOMaC7AnCZ0kY4YuP627ZhmzCMnGW1yD8N4ZwO5SU3VTL6eZjUTWjkUpDz4L8YLOrA6qho+BKSfJWQoC8Nxr8+QSUMBgUY\/2e34ceOqfiOJ4yk88HMEMDDJHOzeqZ2VOUsCnnR79tbOpol5ZtswWh2WFYRTK6uV\/\/31EYQMPEI2WCmZx0vHUZeXp9WsxBfij2CG\/nXJbLNqwpDUK+7FtTlfKOzDxzZujFEpKT0qrm+kKnhKgi5WuhIda9\/oNtSyr9o3uA+97mKA1nCE2EI7azaxiiv6GU6xm+qMKn4dAQEh6cVvzeUbQ1tGpArMlGHRZGWs7sNowEEPNLzJzlRib39DSrDpUVDw94nMCIiVqQyL6s9Cfk7FJxz2h7yjEev\/ktrXt4FpvJY1hazxG2ckBcwpYBkRlQmaCQV5MYdeY2Bn6\/QLVQmrVIIeyyDmz26ZLGAULeNQoQuzN0Q0Gq4+EwT58Cv1pceTkhhaD56R95plcYbAGbHsKkYJ2qxQ1lS7YuPWIGfHN54WzxX\/teazYLNv4EDqVO8Op\/4mMrnT2LltqcHeMzHNLtg32PlP5wqtY3dJAcUSekyXnQRRDahkbe97vS1rvdMCTDyC4iV5NNzZ6D4kQj8b8zLY+EotQbjAKWymzJJLs6DGGH7oIrz961kk7wXCpr4JhOCTlHSKFxYqK41D381ZADMYeYzWEYJf\/D\/I8KpJz+twLPmQFrskcjrYCV2T4rSJjaoDt0W8jf+rZMaKQEQPU1PNMn1Ojmb20IXseKS4hxsNjuQI8yGWOIvLhP\/YmL2lqFH1AmOe8e0GnBia+t4UYfSSamrqq+QO0vU6ANchpLFyEtGfqjAbl+FxbzZEmZhYLdnqVlxH35HAEm3C4gEoWYV1m2Y1BzXdteTB6vYoGHG94MxWwp2NduvqrxoIHJSD3zxNyAye+BRe15UxQvw4c4f05WKaSTb0cRHixxj2AZs1O82q4G+3cNwfvfFhHm9hZ8qwcz43bwzkaiaDM49WPPaXfiuNJJOjHLuV8s+fAAlqEAT38Juiw6hWd+Y5ENE7wIYV9miHksE7M3Xyrbcvm5C9dM8ItidHxVDoZLCausdxG\/DggY+XDdX+nlyoShI3k9Nn\/Yzt5kEsjdmiAeyLb4BISQIcoL02GdlEC2\/HPVjxcMaec4hIbI8voEknu7vlISa0i93KCWQUdIRMBWJnQgjGkn+uzYqoGY5gXU10HUvYoeF16Nmfe6JNZ1QrsVo2Sfqt34pfBC\/UPTp0RXmCIs6dOtCZ4E1xiJLq76kSlIlItKc2JdwAmISlhGbyqq+93gEOp1GJIIlXkhOrxZ3aRJCPWH5SZA3a0wv78BPcX9F\/WuXD+ahb4AX+mQf8yI1J71kjUaG\/y42ZYxYfXM24arP8XECI2zQh5\/gKlKisX8ev357JEjU9suMjPMVBLrjZUGy2kDngCwD1RRkmoZ6dORDhpIERbSBroRfFZ3P3Tmco7Wyu2rSgydWp3hUvTyaciohRVJ8+5wKGRV7jwPkNVSiMQVO6ubbeejZr+HCb02zxIm7G\/wDsyT\/bCh9n8Is6pKy5uf6NHB8UseSMQ9PpUL974koqqjFR9QFewXO\/IQVbLTckiniuFwFPgt3AKOB60d+tun0bA44XmKYrqQRZov7dkJZif2+Mcc\/Rolrw78qmw7yilqKNYSXj6V+KTN+Fn26h5OKxBLVUIu5LXTLTuDgkT2mqZlTOdFJKf5pNpTDlUf5nQoptccsVqXkQzu3pgezyGrsqp+qot1t+IjWQLQ+EYWMq1YaaEzBGuPAolRCnvTok96PvQwaA\/a\/evz191zDzy9mweh4zJZ9SWFna9ltFTiuwWeQ38YWUOaoQ1VDC5uzQyPLrlLsOeWi3MKhBwHTN09aQyi\/wDax+Knh3i\/V\/lVNvOUIY1dWPF95+L+t4jlb86LAwybWJFeCqnOU+KUhExxZ8MXIoxpkRtudr+Mdw+YEKRdQ16bCr1OqBgxci7Er0i9ly2MvOCHYEQhvz7eN6OO5L3y89d2X\/NRzcZaQ2hMBcQlD6LZxRjKE1Was0T+NmvRFte6WmA0tpPcbNYyD2ElP4tzpTxRA8zrYtFBbfhcOfr\/Crc0XzyZEPl5kpoBbPCW0MtcOXnqROuIUlqvmtfFAq5lwg8R1BxrzihfEE8lpO7bBsSMdOEG+5caaXaIYjKmFxW1KjkHFWIFu0a9icBxz2CjiHl1U7mXraZTs\/w9Bf+vv5rPLX4SkKLcb+fuB02d\/+0bcm+76g65n3zU+O\/+RgCp6oKORdG7tiW+OuMYRD6OUxCuhXe2iDywSKVQGRpLR1eepnRb4ysOIHTOwtQRlP5YVUFRXab4eXkjXZ6svt47YyLhWaLw\/SC1WqdaInhi\/BYySI7URdHHb1Ts53Q61AgR+DeJrTlmD65SfTMWvVhWH8DvWa\/wkEgySR947AqgSbfLOKUl8HW5t\/5et+cve9wVJj8Rkqizdy\/a0nDkjUd9Zli6NFPj6LoVTG9Ti5cB+ZvN04vG+XbY2BFcT0C5gjEdE5gOkdL8bJBTV1YwD4r6BUUy9X6bPwtehbItMTalvAbZ7694Jh9XzY6SR4O5TypaQ\/qZb2M0ZylWnL3n48Au\/GDZLBVT57AMC3FDb7fL35VDrESsubcqU1FziscZf9cGmQVDZ\/d4aypUnkkLWr6dzxkH5V0881mOlh3b04BgDgNo8FyfBF9VjZIwHXHn4ngSEtVYcZDRogC3sauyoB\/HKIK\/jalcXNoNLO9ZruS8aoaieczu+VF7\/InHwBoHPnAmo26gckkDN\/AHoUNCzya+jP0Ux2RBqKwgablgXCgOXx88M7LegZWUJvx+uctmLC6dzgSG\/Q3qAnBkiWaByJEsDTeJCu9urGc1RW9Lnz\/\/XC43TYZbHldcepeifSK2iHbgOZYs4KtlibjovzqdCf79VbDbbgGZOp744x+Jy8JIsSQEbhAjvpgGwqeQVKtqHWhWrAld8W5WxoomwmTIPqYNo2vSRmuYqHPgWFsSA2imXVaxriGaQKwlK+JbZIMpyo5B6coEFyJreKFQ9xKZvOqfOa25MLZ\/3GxYEW22ez\/3VgAy+05WGuT3cavFTGHYT67E\/B255r+0In7jOlLmNh+pQ1TWKyBaXb1mR\/y\/S9FLAXJeclkpyr7zNpXE4zQ+2PRqFJbklLvcijM7d4rTLclJb2Bfbu3J03UxOoavuFuqNOOnu8CwvDZsjeuPWeds3x0ch10M7uUJ9LnIeAdZD8kjrpeA94UqCSS9XXMv9NuANlHGrOhE95yMHxZDGI50MZbXlDOlJ2xNQG0pC6hMImFmih68HAH8F30yH5GEiNDEWq\/EmAZ2GaYWOmCyZhVK62ZXNjegY+2Gp+tVI8Rtb0JNMl96Xtf0NMzRbvoujfILKnkxdZDodhnxpEIUEnULFiKTj47m3cjmUpFiV4NdAZUEwGyAXoZuAhpwrpjd+9bvFOX1CvHXPKgTIjxh04oc4UZmG5bw3\/PRQ5H0A1swR1vvK9FBAO9QbkdbVRb\/XAhpdMN4ijbGOYlu7xLjNNco8WR8lffa9SAth0IHRwxyqsIdh8RGH+0Kl9WM964udeIPDy8ZK9wiUsztty7NByP7cOxE\/ID1097MPPuL\/spKDgxEQNyFP8wv\/mOiuZZlipvx3clY+aTvbnGtaERh9FOP\/Ej5dP1NBHA+AanI0sYG7rueL6mbrulDUx4UARv38pYToKoJw2bkZGd2esymVyW9lXt8mHHgWcvNZBY9WoqWWhlpon9EuMGu4IbEc4OtNZAzqHVAI+MzZrOf2KEabuoFEBFsNvzgFrYQnyM6luKc4kaI5B0CoykB43mE1tRQMbxsUWN35Xv7GyrXUMWLFxwrvET7DS92R32VP+J3oALwnwdd3eRPm6VVzmwX3td1G1Iy5s\/KyUuGVdraSlBqW8sokCznBSli\/8GItY4gu6oODV8qZMblrSh6H0Lhqu9vqBOSILZiM9IR\/zrc4bCDESvPsd6X5BEShg+hgzIwyxVrRT85xa212QLE90sTpbcv\/gVYLnjYGqa\/27uEcI3scEL745lOed+3x6E+Kk18gicGRz8fd1AVBjMLR+uKw1hW9GWJSmvNDdlM+b1A\/m0aIbV86rnuWTvMlfxFpr6RlDpczGG8xw9ruMVjaf6WucefCJ8Mm7DOqT27xvbWCfQbPW+Jk0QMaVIeyq1S+Bpiz5QbQ74HNqACIb1kpfsq2ajJhahzadcyFYDYL7dMyvJsFA5Rhn1tCJFE41QoKojBTeyXGUXapfBpQk\/bRS006XSSYkrVJnRyS\/K508nNmJVuapyiU6Rblzomvi5eIX9w0JvccHaEif4MytFFinvIjpNwjdipWUmHwCnTaj2KxS+zplD4n0Dkg1Idey88Npjeisf6HKUi6ZB3FRhQUwcJASaq12EcSJQV7GAFKI2zby8Y9w2ON9cnujZEM0AjSAZ+2hZs9k6F8dSy7s7L\/s0HJTkbpr8MKz+ZxXNbHwQlZC5Sh+Pg0z7kG4Ty\/m1hGjqXa1KL4WEXqlutbh31TARPXqdGAtjVr+LLTKNv0f3fClz39zVUqCRgx2Oa66zkTRU4JBET+pwa3mZg2nGhFylUR1ltFt3iYF7GZtRVFE+BsR8lm7VeSUnbVpvtIGECYQyLZzpkV2Q0OPi1\/UldyzCKQ9XzCWGK2Vy0oO3EnwqYbDhpNTtaImK0cAExqCw1xgjgvRONrNKy15RlV3EAH41FfPZlIgZuacHZImcIqvm\/gKqEk84OGhbhP+sMifoG8MhwYHVkJZDAuB7qXIP1tsJ5zdLOhXshpozbWlVctAEuG5LlDJYylFuGHcLY7Zv5CSut6JLXGybYRBwiyrqXKVrJIHorsUJg7\/BXUVOdznd+pKYt7su7pb54AcVyaVv1IdqdEEHc8iDdH9MKHRbBxHPNCmCBnPT\/iK5uq0zHws22HF1kY6XZSMk5onrYTWaHAou2j7spDjrT9qiMsgNuBLZvy2MTzT2g\/NAEwt0N0UonG3F3wmj\/CwSaSZjTz0fOYfh+7m\/nhQf62+grEqxit6GswJWd4ob3FVIbGM5t4YrwawCBau+ehDiWCXWHGQDvNQOC+nG2HSWFKspPkZHZfogvUYIG\/5HpYMaKPo42c2ykkty1dIP\/5FI6UYf0\/TObNhV5RAkkq832W5AhZU24VQ+n2awpy4pIdKg08i1TuSg+tv6cw0BcC+drGcvlH1h98Z105ItFpRkAVn7IgkaQ5VaBjRlupESIaqbrBA+PgdSapOjT8QcxwzNCMjOc28hcyjfNYBEYfCfJ0lj2KfKh8o11k+vrpVoYTPNbIoGKAIr8mGJd136V7s046+Tj3vIAxPMWo91XvUwV+WuMfpsKxs6f3IO2Fy2CqaDtRkaHUoE1bXwT\/Acy8YMTWAU\/jLsT7G9R8UX3pyTOYdrQXsF8FaJlF7+LNqt4akE0ZIBUO8qRzogx6B+6AtKEJZreS+MiAwTJU7fT8csbDB\/8t1WfcdWWJn+7xYUaMe4VGVucARLpmtBYf5M3NfxnLoQ3YIdjWYpWDFYZ6dviqPiZCSMSqqAeWFOoTl8MYpbXMw6caJBOcO6dqzS3Yj2FwoyHCOIh29xeAEIFeLN0W4Do6\/v3wFvZ1yvdK\/ohYTbB4K4tuv1szGnOv\/NNpW1XkKab+dT3w4C1z9OWaWMCUTSNH9XLuXzhUIw2eXT4YMYRlkYRpQEn95RkO03bieIMY+tJWFQwA\/hM5X2o0aP1YQASKMT9jmhOsnGNp9JxLYFrDvaG8Q4WZ2+jYJiKOTgV\/3DNQ1GMtB4sruq0nAH+j7J0+kpLRpym1r5pyygi7lVKn\/Q9NvtE6Of9riXSDGVCpCA45e6V31i0FdIHzcBUAT39fTvSy+2xn3PLoqbzlcrc4wbHNLKg4iFklvEVxhtGeRb9Y2uYHCT6XsEcXNW+1zoNsLbxMPi\/FBMCwajfbiV8mtPQzcoA7QBQAHswhhkAPl08VSVT54syqzNCZHIEu5GBK13jzQawbMtCjkiKZZ8jxpkIWWsjWLioShBm8okNkBJG3esyX+vc0R5XLUFMPcEFjhYjgLpIUaEWD9eHW8fCnjfXfWhnYYGb2eUwk97OVdB4+MFYjj1f04MrCloX5cmvVR22do7n5nDa0+AENNoLbw2M2rKWXHcCow3hv03shNAuaaIJLUNj5WUVWyeOf+SjXWtyE17YKJQj4LoKJZfRaxweb2DIR2I\/AkiDc3dK6ruyAEJekFU6BpsxH\/eu3qvbcaTtU41WQE\/RDI4QGGBjn8SapQ4u8ezhbHPWeHNCqrkNMRa97YNolZ+j409l91GA6xy5w0kZsP4usBjIL4agrWUr9ELdF\/02zuK8KDCV6tmKVYmM\/AKEygkVbrqILGCdQ8aSPb9sysy+kO1BYv1EE4677NxA2e4vB8M5B26U0Ow7bcgCXKmJcA8YgQ4OoKAaRzpQkXDKYgR45G5HXJQckuNJ60XFyGWft101jBS0y8lBLxr3fIlmd9t2S3WcUWrw7k6xCYqhsK0\/x+PJJ3TaypEXQArFpTS7WnUCdxs64ljgKcovcgt\/bsOOLk2a5oJdi0dwwHaKcKgWKw5hG5kGjjiId8+WD6JATuot2q+468RM8efxYxI4IggWlG7LRsx5oecy4\/Hm3Q+WOsohMbfciKXQIWqXOy7UUI1oAKN9Wgu8l+JbKKjDKKxWkGIHThI52PXyRFJ83dn6Nh+g5rsIf3rLZPjWfjnH04oF5HQP7mD5lsa5K+aNTh0IOJOLuvJYIgG18WlbTiSPsXZSbZgCKGWCWiPUiPa6BgEZviilHS7PxkYmSgSnoGnCPAhinI5IOtX5FmHS2Rz8E7B3C5W8TJbJhz4slCbNI4MMoESQGfu+GBR97BzLKytnvXcNRNnp9xmd\/45vWerI4S+Mg424Qe8XFhOPPXTbDefg28GgGGZg2s92D9+1JHAM4NPci3bcDN6Qizc4FEKux5WK6OGvJeeApIy7HuA\/eEA9k1x4Nmb3A0\/9X5Q\/brCFZiunuG5ilQNlWfzoCBHU6jG6uwJU04U+Cr8\/Q9uPjM8SCNA4ZI7SnTWANyaiWSWBxy2niwdhC64B7\/x6wMZ1zudQnSqiky1Pb8XYMO2DTXiRqbs7kpzhdP0\/iDRRAeKQOYBo0XGUwxYaR0co5\/XBsLTqxQ6FFf4o82doJfzz7hltN02o\/U+fsWOdNFgJuTn87fxNoSv9Zg3vZkcSiGl6P9SzwZ3\/cA8ppSSLirvQjux9m0+YJo9E7iPquHxUdSfgz+peSWSYn+AEKziqQbnfF8I7i5WSnvfp\/H2MQ\/\/HscB9BV\/JYCqYURs0nSfBHdPqZQF6BfH6bJgxXrXU9tw15bPLenEFZHDOhDbwC5Q12vXXF9g0ApRNbCCNBkvBjFJv1yEzMzTp2X9MlTD8JX+La7xwsKpHtBbPpeZs4qbXxq39aOhns7kmI3ivuqu4cX+4+3qfelvi7FM0Lz8KA22UW42f3WUoSuituMgym9OQnLZxGqVElbwH7TutSOQR+idvpxNBgVjWjpug94y0lgA3vORTteVLrUokPb\/Cx0JlNsbU5Oq2XuVgGja6NQb\/PbpB8DQRW\/oaPevJ3j12224P3Ee6DouTyg866mEGbC51q5nF2GzYOktJBaDtDLMGhDSbHO2gV\/fk8tls1KeI2EgB9NueUDL2nRYeNJP0QxDl6aCdF1JQJF5SWA8ZfU+SDLKsQP5AazRlz1bsEhqYd4QR9nM6SOldUlcgWrws\/aOmj2GJOJGSmHP+\/PPBsgcOvZgHE9h2+TE1pDV\/PQTe8bUpnax\/Nn4CmL3HxJNNf42l83GXLVAVXDLN+AungKEMAuaRVblDHIcSpD\/mRP+Z9n54F\/zwBV1OTxjCVpWjpG29pe0saL2Uh\/JZmCO2XF291D5IkELXS51N0hvGTalAgIGGqYuua5gT69fi4639nbPd\/f5Q\/vsAccdgpvzmhkexerSZwVOip3I2eBm4mSgXESCX20tF6b9mgVTTpsfXSfBH8YsglYnx1otvCXhGuJSn2OFLNsZILkGiITGoN\/ig1fE0fYQLbm8TD6XbYDaGe+VP3hSqEKAhedr18dYiE4UaOLELXO6UzW6ZJJtiL8BUVIVuVg18+yBs2sSyGwyy0dAsgBkytOZZJ4sORVY47c9nhWWGal1EPnEqjHEJQ2Zfo8b+CoBxAZ\/HBE\/FfcWQnvqEqU1GPhpBXSDsZRhISCUfMjcfQ58cdzClpyZiyv+mUQ8spqu2Yqe85kL3K5amu\/9ogDNhv3SyHZNzVEE173JgBGs6JJMPbIJGRlV1+ew3VVcEs0xVHAoTrO9Zfs4d1R3XIlCM9N6BlymxaZgqihpcEqHrZV+Xw5cJVRCK+Xqam3DS5vChHY\/OYIv05MuIvC12kAUke\/HMtI49KhdXEjx4zsv5wbUoPm9eOJj+SIGGXQKapycya5bWnTS64jGTU3S9pYmfDVa67PM\/jrdcNDQg7vAAbJ9wFV5zu\/CnAbmywKuEMHvdLb\/hiTK0d25EMqhFbPxLhNb0+71FknwIU6iqnn\/gDM5yiA9Bvja3W+QVPybnsKodeP1xoZMa4szQeQ690K6+5+V22h++Oz+qxa8jc0dbF+FTbKGM2YV2fOr9bYQ\/2oU013ruDJ4jIyey0q\/FcsfmjY9uIKYS48MUs6lJWLzpg8j9QVPrvn4trO0v3BIpF2HyUAVFepbeAg8jVRt+2+2wNf84jMqpp8iBu2e7gQSq4jSuzSqmWyiWh+j+Ue3\/nkE77OB86tE7ednrUH7wDyOXJD0jFUHQgMuuypcD2DU12ITfdLK\/DzVJDBxMOZfue4SoAl+DG4Qj4koD\/DwwI6rC59akKmIWq\/nqvFxa0091D\/6ffGa8AFq3P3W44r7PcWuvSYuydHcSJeM2smlp9WGd+bQeTfPm4GDtfD82WZ7DIn3jIUg3NyT4XgRSM8DqdA125G9rGf3PgIPn1OyrenpDYE2ydFQ0\/Q9TjUN5k5nSNlR8uDnIxaPUiISIf8uF0xOzlRUvR4klvbtHaFnmcckMEbJOPUKkRQgdba0ILE3aLij9wl3nKJZ6OIBQQajfa2PvCqCV1GxivWUhpdlZ2JmdubwSqerM6BAuQ2hCQiQXGL4ABljhg0Rcz03qs1JVOJoezG7DbvEFkMRKkypTEzsrzBCwOAhgiEDOYh0rUdMi\/sFvlSS35JmwvkfKq0wd\/ZYGCXG35H+XLnVxcZx0fdbJpftEzB83Box4T\/7QE2lqjedG\/HC++eGJHx4535IRhneL6P+qfd9Gy72shtotu0Ci7xOty8sYfDmY8t7AmIlBcdg1SCHq5YRW9xS7xfNWDkUjhfnSXgjNFJevNPC1y9NWBaIbwO6CnOgNMsKgHybfUKbwPkFPuNRCmkQAMq5iGOYmwB1FEL+GKwGrnyXuMP4Lx746FIIagh283UkW+uxHdQXCj3isW8N\/Df88xoYcOLmL78rPn8Ps2O7X+0Z6vQMIDm9EUiC3qCtFTYn\/uAwW2XtKkGILbPRdZ2o0Un38l4YNkCxCXMjyCyI2UtKEEeaL+a05w6c7W4y+cz1i7NyjP7TLiRFpJ3RztSqMIBt3pCo+iCdfk1rNe5BFbkrb4gJ\/zt0sFmVR753lDwg2nHrQqKRNDqObNCoI8Uvgbvd1\/xKuk8khOC68Z0V79OZPvfnaiS\/4te5A9YGuzKefOIC3E9gnjQ8FU7aVMrHVgVBQTWng2kp83Cz8PEGT7v\/JCluGulxbT14Xf\/ygeG+fUJ6kIMKbJ93l8PuDwFWD\/mcyZ1EmyEyt+cxSrUHNmDW\/8zIztA3950fJ20erEMEb8eJj0RLuA4EzZ0jsBbSPG4mTaLtgBm8D7\/t9\/FWszmnlEm3k8Uaci3OKa2362XR6syfI7I\/xbDky6XWO8y0AzysTbzzhr6RMtOiej6Zv6q+mwBm\/07p+DX8VbXHd1VqQohTXEDKHIBnT1B20mS9iQFOKyCDcf2CB4tw\/vYh8WKkZZ2CBBAi+pwTegB\/5Jo9LJZJhnYAGfPndYNIeZ4FKYDsrnShpvx9sPzZ0aLK8VFss\/ZNyNRHG\/iJC998FcHRNqLfZLolVXwZyGsc4i7xRWFQi\/MTEXixL9b0u1lH18dywH3p53TXr62nQ8n5GKuGVhI3F5CM4442M1M2wjw57w3GJwzg3RS3\/17lO+kNUXjgAtbTcfDsfl9BWrBPCGu5SVkmZnW3di+1cLoMxitE2HdSwU3aFeeCBLCjFnT6Y6O10nNfKr46Y3UFEWRxb4bf9fBkD6pwsGiU9RIRC0npuIjVrzegK1bIbpahdbnxJxgAAHUF\/5zWHoXM1QB8LdI4O2DBxe0+DR6dW0tLdYOxm50xUAeaisdueWpsZyxqp5LmpVi6CVdlSy4krdCMqR8yHDbsEBiz078A3naSrwmcEi4NpUrG\/mVOi6XNBJRKTEiJ9TmVLm7\/BvakI7cE\/6eKQPn7kO55eyPDk2dzMTgJJiGZIbB1i+Bq7hVKuYAe789xqv83iWCu3c4WoCR1in+WpaY5oVaIKRl4vkN2NiJvW16LwSBnkUDHZGqcT47adV2EldVS+YV0HhPvbcIdh07twPIfcAz+qTdPSQkfTnjcTB6BDcydc8MHkKa7s81CMAs7NLVCtjgXAmzv+K4cfeXVPFo5FZuw5l9LfB7bY9DFaI81F\/\/6DsRJSkl6ZRkF38U9UaS3Q\/IAlGceKiOZXZieydglbqDmvodC\/XwA4CtuZ4y7t6eIK5L6LIsjj3O7j5TUWQdds+4l7j6odKdmzj11J9H4dXok6\/tJCLLJwR6TvVmcG2lKC9rCaDbF1JgVK0CckkZS5YbT\/HIF92Hg78oe30FY+QSHvNtGE8leSt1ubDpNEiVmCdTeP+FX4N0qIWGi7POEfzXnLcRA\/L849e5C3L38Lqc9T5cDmlRE1v0VSHesl41UJYhMcPsezolCCFOvoUuCMsEeEiaW\/+1t4JcVyqtoTAMtUFFjVTjfvZrRrCHMwIWcN+nQYOEQsuE9zBMmA2RV7wnR1R034QI7YPTC6nCj45sd5fn6CJoy2dwytj5dbQ7JPw9m\/8fR0pr2lOlsbEW0mTDQh0h3nx5nbZfiM\/MmG0MUb+v+KgGaMwEfE8cV41HufdJfwqdVdW2+e0i4kG7anyG0V4QEN4qwnnHVAfWHgJxiFoIkQRjorAu\/XGx1CGPLohBHjpSvBiE5l7X\/1PHaHaW6mwBDmKeNQWDIX2yxHFKz6GrFn7xo3dAZ2jMo6MCIJM\/SZgPYm8LSdIQewC4dnZbOUj8o4lbatBagSvNmNTjUm3lwCLdDJAsF0710mgp6buY0kSKMT7koclaQRncbo0M4QWYgNxj0r4D0+DEjbtho6imUsYYw1+0uKm3jOhFxOjjQ4QrYNExgTA\/hMS5Z8bkaJRGDjAxCxbs1sfmwVTHPJw1fOyYvF5AJSr1jj7shGJruXyImb\/w4k9v5nQl8qjvYb90v8fCvVF2QhUJRFaHsQEEZNBFnrG02XpE2IJkoTIA\/5GtCYlw1PVJsu+itcuXRYeEuUJe16zA2wXq3Bgt7o6424rqMTi4\/sFV0VpntDcTxHnIXySsVGKFIeDn3LaIL1WVUgICT9rMQIiMc3EXyThZ3wHgn1fSBue\/wxRGMSoQ3izt2gVijry+judwhxW\/Gje631rK8ZisRkN\/O1FWWPWTcQ7Ezd+ltLJphbrFvP4qMEOCOMUbEyx7EV68zWFjlEcyB89rmG\/S4xNYLsnyEeBdD1MHgG\/idpkujktBjWigkX6eQryeRVvtxqZm1SE58D1x6UdyxR4Ez0cEDqUbGGuJ4busjrGVSOcxzcOV3EyEJJZhnz1FubLg\/cv7hgoAGQVQ4SN33HsPLsdY408jsylWWkcM8rnfLMke2diRFXwhXlPhu\/n3sKl9hTGUFQSrbOkmpsvJbknBkMAJrW+QZwe4pxb5IERv14S7Zn5OOuHc4Ym1pF4J38GBXjlpOUKcR3HSS\/E6MiHbCAgKjq+UGFj6J3LkgwS46Jlk+8tCya1ZLbTMK\/j2FhpsgrjOLAMbLz2lrnI+qOhyYTdN1sDZfRoJ1BqmcJDt1ko59DntnSUWCJCsRMlHLMvuPLAQC6utOqsQx3CVutF7fq1OMQFTAjbSwqNSeEpBZrOCnkK3Z4HZZQnMpWaYQZmWJMeanI0K5SpeCY8365v64XhXZqZjSecG7mgxNA1xdGNzoAiLHYLRVONUa3307x0vPK2R5uLRo84QS+kG\/I1vRX+gcDvw6sLMOF4gR0n+wk2vh9ozrssY2VXs5y7+WFUQtG6onr5txsyMUkErbbDEVvM96RQQuekqL5tQLP7k\/hm38Pi3DIihXzml9pwo8L9O3prutN1SPrnLfF45H+Ybbb64RVyIL16FG0IGmfrgRPA1tCGas6i9\/sxjOOQ2+Py7sEHubqpa8t7BAn\/pveiBxSTByb9RqcTdzOyQWjbXeT2tFHPBeRUNZYhfAokDAchfY\/E7ZzkT5IIcoGLNOJ7Dzbbgs+9ESjPTX0fIQQ5sp0cOuohV26fOE9V+EQNlViZrSxi+irlZwHtYRZXbcV5ZlNzbDCqYw9S81N8PdOSPI+fNYJhWbQbMWDFE3pz6UYBqgARYp\/drDXBU\/aBMkJCuGUSsNDmqOE4VXA0\/cpXRXbWTNA0fYZBnNZnNl0rZD6oRI8n\/roZ\/\/\/qv2qKPBTmDESRvqnRENQzhJQoH4qcpHycd\/Gbxd6X8x\/2QIoaKtxXfrfLogPxsZ\/1Sjg+VJigsut4fvXlYwdt2zcfwBajpBeui8jML3MSilzZclLAvmMxC7Eq2\/DxeWL4Po4vQwaDCdLZ4U1Qscz1H0DE5OfO8JswAjrotMmXgUtrcKPXrKCBhc2YbvnriUuakGKaSYCn3zwVIOeGdIMYaQ3DOznm6NrHOdGeal7haiDJNW1ZmPYb6zSSP8uBXzyzsftTZzPU4GCfOhX7Tg0Vx2Vl8crYCdQJqplnrozXCbg+IrukDYLfBc87Hg55sV0DEzQNjnSBtG1TqfMfv+IMfMe9dUowOu2pQbJkPfS4OsDlziLAQWoY6Z7K0UQRdmOs1gyPO48H0Ga55jFs7AfTEBDSy\/kw76oE97d4wR8ycPWJRPDaSBSiBIyaBnOddK6mgcR1cYXf9JgJe3Iz4EjOr6BqRBgvNlIr\/Jb\/NYPT6Kvhju12uZQU1xTi\/cprJA0OmaF8YoX603E3H\/OylwGUIs9v7o6VlujbZLf4pD6UnGLEl\/CmylXMKco1g28UAFBVLPmnE5+pFxkEcIaC6iYvz+DtME322OoQbqd4a7SrIc05uittTUpBx9gz8UM60xevlYIvHxwgMaMT6YDT5Bl+RiT21KCEOpLSJoBsv0WN8J4h0OlNjatIvnYutfqJZV6lw8oxwH6cgH8dpTrYfGxHhCK2HnAa6WupX0pxCuwpqm67pauPDTb4zQkj7eG\/k4O0Tn0sbgwIU3NDZvUP+7WF15tWwaN0ywowcGYU\/MRCZOhDTXi7E3f9h7qqDo8sAiTySZgM53oShUfohHp7V2tcFyt\/1Pjs+ON2CQfk0Q4dK\/kyUDiO34jpxnFURYX\/K44JUhKEbiwrRo2dsdYEHc5uSw913SjQgCHCQwfybmPER8GQCf5\/T64W21gIQBqeVmgI0iJDlymxNQ2VeE9hudIF9qoo3C7290ID52vwbavA3msXluBesgADm3NXiqn2AmVy3CoW+HMyX9d\/WNLXH3Ti7b1dtd14RLxLRnpXHE7NH9uOj9CTaEs42b64Oh1EjjW4E8eDNd0q0nASDcw1Y7\/XepEv2po2b51\/h4pR2Mb9FeesaM0veNA+v5fBf58wXo9nGE8V4xKtG4TNWHVA3kKNiFOtR50sn6I+e+R1sV\/7zINK21A7HQLOy2J0jSxT2A7bzNPBVSZ8Y06U0xLR73WXJzNJZmw5x\/VGp4DOD4dUn89NPOxZ8PZZRTHpCyXQ8NOg\/NDYD2Pa7Q5p8JKjTDVtyR1jJkfSQ\/WDbvA2G7R2\/LN3amHVMqiHGuSLfYAQJnbimrDSbssPCaB6buyHVCjpsSlj+k91ExGmd1\/n6yKhvXT1oVlL7N71Sdp81PzEIA5e4bI\/yt\/qWpaU+G3nN6ErK259OSzGI9GHIPVwmNGuvDLXzkHBp5vOY30RODAggL02SJnMSm1EfIZVhbwl5vQL+iV\/\/E4c\/vIbMeoSePHnU8\/UWul3hjMIdS6\/PIAFtrnqZ7\/hZSP1TvAVGjz4fKAgLiddn+paEHM++ybGjDyfJhVzDMMQGpzoAf4Jo8B6RChrenHBzbJzk9hiYPvBWhg2vxLINu7RUbBml7vn8QUbyd80MCtuZoduJlx4n9F5shYuiCW+uTfCXnD49Clob8Y3zxZ0EL0twJE2VYd2+7S9aJCKcNOMn7hbviXKlPseVxfyirTycfdaFAojx+OiT3OnFeKzSirIDTLugN5plu8XtvqoKfWqrYvSLxzVfWO8XFuZ0N\/28bQRvBORir4HLf1rjIHZuO+OO8YocQ0gv8WDkNbpA8K6RIp+vyWZBGu1mBKXrH\/MSf3VTwbDGbtbr4EFuqf1jwpt9ONuFkoessDbhC+Uem49ZwnPXhLGfqZs9spnZKCfU6fd3KM1Py8yOUoWmhsuNnDnb6\/Wu5y9YCZ3q\/5H1tio1\/LYeW\/aNtlG2DooZehdLd3X6T\/fjw9Q4EBxznuewE+K70wm5LlGPpggXkrS7DyB\/wOotrg34OjqKiUOVJeLjo8JyvuTCs6ZjfjKPOF69Rrwm4Mv8geTavhP47rR5iaWgQiJDn3\/4l0EBuqg8UHG5aIpmf8shq+BfJUEKwSoicf7Rry4ZRk3MOqUEJDHcdmI8TVn0jDzXkbrRNavHkqyP5IzQxuRg02EDEvNqjfmg4XzhPpE16wSMAWPTPV+gBI1YEspMmKyhr8p4gjv7O+YFNsNUryirDkrGBe+JRpCNlLDxh5hsXJjH8TlecDiXAtPicau\/GbDYNlWeYcq5h0bCjCpbTkz7A+WGAgbgNf0W5Ct\/Cm5ebYzVpl12VH9lpMq5vMRsxVkmhlgA27YzntV+0f8wzFTY6YJujV17QOkWPLbl50mUQN87WCfvk2pXpCfluyF58l6F6t\/auBuuAA1oaf4bjUBM9IIdjSU\/krxRfa40iSiLT51AXmtE0ZoizDTIWpmtSIv+vO72XB6jsKVKX7i\/Y\/9gNUklFvySw128nxYW9Utw6dzQZ86Zj56\/SCkn2A+gYAAAAtSAAkinSNSzU2lviZm89TxYPzVycFb4Z2UL3XfceBI5Owm3+z+BSfjnyJzgU\/GC6Sef3nbbPKMGEC0kMAjfLN43Wtk+HNp2gADbfgNsL4na9fc4AnZl39a4HbUmy3IDvPVCY4o9YVe\/PHwi7vkf6H8P3Yb2CbOOpGJtHonL1po36maLtyn\/D3Pv+Vo5Yr+s7vBFjJNQex92ZJWwse+3JB1ZO8WqNLyclx3IPm4vsL8DwiBEktvyMlQeVOxzXHjIugHK8W+eVQfY39Dx0kKTUV8uk+xVxMeC6dfDYM\/psCWDzP+M9HNcAfZISTtXkQmsgAAAAAAA=\"\u003e\n            \u003csvg class=\"aqr-overlay\" id=\"aqrOverlay\" preserveaspectratio=\"none\" viewbox=\"0 0 100 225\"\u003e\u003c\/svg\u003e\n            \u003cdiv class=\"aqr-connectors\" id=\"aqrConnectors\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"aqr-col-info\"\u003e\n          \u003cdiv class=\"aqr-info\" id=\"aqrInfo\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n    \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\n\n    \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:'rose', label:'Rose Sauvage \u0026 Mauve', latin:'Rosa canina + Malva sylvestris', family:'botanic',\n          desc:\"Macérat floral hautement concentré en bioflavonoïdes, provitamine A (caroténoïdes) et acides gras polyinsaturés (oméga-3, oméga-6). Reconnu pour son action anti-inflammatoire et restructurante.\",\n          targets: [\n            { anchor:'epiderme', action:\"Action anti-inflammatoire\", benefit:\"Apaise les rougeurs, calme les démangeaisons et restaure le confort cutané dès les premières applications.\" },\n            { anchor:'tige_poil', action:\"Révèle l'éclat naturel\", benefit:\"Les acides gras essentiels gainent la fibre et restaurent sa réflectance lumineuse.\" }\n          ]\n        },\n        {\n          id:'flav', label:'Flavonoïdes \u0026 Vitamine C', latin:'Polyphénols actifs', family:'botanic',\n          desc:\"Antioxydants végétaux puissants qui neutralisent les radicaux libres et activent les fibroblastes pour la production de collagène et d'élastine.\",\n          targets: [\n            { anchor:'derme', action:\"Stimule le collagène\", benefit:\"Renforce la matrice dermique et améliore la tonicité de la peau dès l'application.\" },\n            { anchor:'epiderme', action:\"Bouclier anti-radicaux libres\", benefit:\"Protège les kératinocytes du stress oxydatif lié à la pollution et aux UV.\" }\n          ]\n        },\n        {\n          id:'chlor', label:'Chlorella', latin:'Chlorella vulgaris', family:'botanic',\n          desc:\"Micro-algue d'eau douce parmi les plus riches en chlorophylle, contenant 60% de protéines complètes, vitamines B et C, fer et magnésium chélatés.\",\n          targets: [\n            { anchor:'epiderme', action:\"Détoxifie en profondeur\", benefit:\"La chlorophylle capte les métaux lourds et résidus chimiques accumulés sur l'épiderme.\" },\n            { anchor:'tige_poil', action:\"Hydratation cellulaire\", benefit:\"Restaure le taux d'humidité optimal de la fibre (12-15%) pour une souplesse durable.\" }\n          ]\n        },\n        {\n          id:'mer', label:'Eau de Mer', latin:'Complexe minéral marin', family:'aqua',\n          desc:\"Eau de mer pure micronisée, source naturelle de 92 oligo-éléments et minéraux biodisponibles dont magnésium, calcium, zinc, cuivre et sélénium.\",\n          targets: [\n            { anchor:'glande_seb', action:\"Régule la séborrhée\", benefit:\"Le zinc équilibre l'activité des glandes sébacées et limite l'excès de sébum sans dessécher.\" },\n            { anchor:'cuticule', action:\"Reminéralise la fibre\", benefit:\"Les oligo-éléments comblent les déficits minéraux du poil et renforcent les ponts disulfures.\" }\n          ]\n        },\n        {\n          id:'aa', label:'Acides Aminés Naturels', latin:'Précurseurs de kératine', family:'bio',\n          desc:\"Cocktail d'acides aminés essentiels (cystéine, méthionine, arginine, lysine) constituant 95% de la kératine du poil. Pénétration intra-cellulaire prouvée.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Reconstruit la kératine\", benefit:\"Comble les zones de la fibre où les chaînes peptidiques sont rompues. Effet structurel durable.\" },\n            { anchor:'cuticule', action:\"Resserre les écailles\", benefit:\"La cuticule lissée réfléchit la lumière uniformément : brillance maximale et toucher soyeux.\" }\n          ]\n        },\n        {\n          id:'vit', label:'Complexe Vitaminé', latin:'Matrice B-C-E-F', family:'bio',\n          desc:\"Synergie de vitamines B5 (panthénol), B7 (biotine), C (ascorbate) et E (tocophérol) pour une nutrition complète du follicule jusqu'à la pointe.\",\n          targets: [\n            { anchor:'film_hydro', action:\"Préserve la barrière cutanée\", benefit:\"La vitamine E protège les lipides du film hydrolipidique de l'oxydation et du lessivage.\" },\n            { anchor:'bulbe', action:\"Active la matrice germinative\", benefit:\"La biotine et la B5 stimulent les cellules souches du bulbe responsables de la croissance du poil.\" }\n          ]\n        },\n        {\n          id:'gly', label:'Glycérine \u0026 Urée', latin:'Humectants naturels', family:'cond',\n          desc:\"Couple humectant captant l'humidité atmosphérique pour la fixer durablement dans la fibre capillaire et la couche cornée de la peau.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Retient l'humidité\", benefit:\"L'urée à 2% maintient le taux d'eau de la fibre, la rendant souple, élastique et anti-casse.\" },\n            { anchor:'derme', action:\"Restaure le NMF cutané\", benefit:\"Reconstitue le Facteur Naturel d'Hydratation, garant de l'élasticité et de la souplesse cutanée.\" }\n          ]\n        },\n        {\n          id:'cond', label:'Complexe Conditionneur', latin:'Smoothing complex', family:'cond',\n          desc:\"Agents lissants cationiques de dernière génération qui se déposent sélectivement sur les zones endommagées de la fibre par attraction électrostatique.\",\n          targets: [\n            { anchor:'cuticule', action:\"Démêle instantanément\", benefit:\"Réduit le coefficient de friction inter-fibres de 65% pour un peigne sans résistance.\" },\n            { anchor:'tige_poil', action:\"Effet anti-nœuds prolongé\", benefit:\"Le film protecteur persiste après rinçage et limite le retour rapide des feutrages.\" }\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            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      });\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      function start() { setTimeout(function() { focusIngredient(0); }, 200); }\n      if (schemaImg.complete) start();\n      else schemaImg.addEventListener('load', start);\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\n\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 4 : PROTOCOLES --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n    \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;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/h2\u003e\n    \u003c!-- DILUTION P4 : 3 cartes sobres (Ratio · Rendement · Équivalences animées) --\u003e\n    \u003cdiv class=\"aqr-dilution\" style=\"margin-bottom: 12px;\"\u003e\n      \u003cdiv class=\"aqr-dilution-eyebrow\"\u003eDilution de référence\u003c\/div\u003e\n\n      \u003cdiv class=\"aqr-dilution-grid\"\u003e\n\n        \u003c!-- CARTE 1 : Ratio --\u003e\n        \u003cdiv class=\"aqr-dilution-cell\"\u003e\n          \u003cdiv class=\"aqr-dilution-cell-label\"\u003eRatio\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-value\"\u003e1\u003cspan class=\"aqr-dilution-slash\"\u003e\/\u003c\/span\u003e20\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-note\"\u003eUne part de shampoing\u003cbr\u003epour 20 parts d'eau\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003c!-- CARTE 2 : Rendement --\u003e\n        \u003cdiv class=\"aqr-dilution-cell\"\u003e\n          \u003cdiv class=\"aqr-dilution-cell-label\"\u003eRendement\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n            \u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e250 mL\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 5 L\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e1 L\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 20 L\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e5 L\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 100 L\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-note\"\u003eprêts à l'emploi\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003c!-- CARTE 3 : Équivalences animées --\u003e\n        \u003cdiv class=\"aqr-dilution-cell\"\u003e\n          \u003cdiv class=\"aqr-dilution-cell-label\"\u003ePour \u003cspan id=\"aqrCycleTarget\" class=\"aqr-dilution-cycle-target\"\u003e500 mL\u003c\/span\u003e de produit fini\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cstrong id=\"aqrCycleMl\"\u003e25\u003c\/strong\u003e mL \u003cspan\u003een volume\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleG\"\u003e25\u003c\/strong\u003e g \u003cspan\u003een poids\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleSpoon\"\u003e1,5\u003c\/strong\u003e \u003cspan id=\"aqrCycleSpoonLabel\"\u003ecuillère à soupe\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCyclePump\"\u003e1\u003c\/strong\u003e \u003cspan id=\"aqrCyclePumpLabel\"\u003epression de pompe\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \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\n\n    \u003cscript\u003e\n    (function(){\n      \/\/ Animation: cycle entre 500 mL \/ 1 L \/ 2 L\n      var cycles = [\n        { target: '500 mL', ml: '25',  g: '25',  spoon: '1,5', pump: '1' },\n        { target: '1 L',    ml: '50',  g: '50',  spoon: '3',   pump: '2' },\n        { target: '2 L',    ml: '100', g: '100', spoon: '6',   pump: '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 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\n      \u003cdetails class=\"aqr-proto-acc\" open\u003e\n        \u003csummary class=\"aqr-proto-summary\"\u003e\n          \u003cspan class=\"aqr-proto-title\"\u003eToilettage rapide, économique \u0026amp; efficace\u003c\/span\u003e\n          \u003cspan class=\"aqr-proto-plus\"\u003e\n            \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\n          \u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"aqr-proto-content\"\u003e\n          \u003cp class=\"aqr-proto-subtitle\"\u003eLe bain de base — usage régulier en salon\u003c\/p\u003e\n          \u003col class=\"aqr-proto-steps\"\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003ePremier passage\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eDémarrez le bain directement avec l'Aquarosa Pro dilué, sur le poil préalablement mouillé. Rincez.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eSecond shampoing\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eAppliquez un second shampoing, rincez de nouveau.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eSoin final\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eFinissez avec l'après-shampoing adapté au besoin : \u003cstrong\u003eHydrating Cream\u003c\/strong\u003e, \u003cstrong\u003eBombastic\u003c\/strong\u003e ou \u003cstrong\u003eAqua Dolce\u003c\/strong\u003e.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n          \u003c\/ol\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails class=\"aqr-proto-acc\"\u003e\n        \u003csummary class=\"aqr-proto-summary\"\u003e\n          \u003cspan class=\"aqr-proto-title\"\u003eAction ultra intense — Salon, Urgence ou Expo\u003c\/span\u003e\n          \u003cspan class=\"aqr-proto-plus\"\u003e\n            \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\n          \u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"aqr-proto-content\"\u003e\n          \u003cp class=\"aqr-proto-subtitle\"\u003ePour démêler, rattraper une fourrure abîmée ou amplifier un toilettage d'exposition\u003c\/p\u003e\n          \u003col class=\"aqr-proto-steps\"\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eMasque pré-bain\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eAttaquez par un \u003cstrong\u003emasque pré-bain\u003c\/strong\u003e à base de \u003cstrong\u003eBio Energy\u003c\/strong\u003e ou \u003cstrong\u003eBombastic\u003c\/strong\u003e. Ajoutez-y des \u003cstrong\u003eHuiles 4 Elements\u003c\/strong\u003e ou de l'\u003cstrong\u003eHydrating Cream\u003c\/strong\u003e.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eAquarosa sur masque\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eAppliquez l'\u003cstrong\u003eAquarosa Pro directement après le masque, sans rinçage intermédiaire\u003c\/strong\u003e. Pour une efficacité accrue, concentrez davantage et couplez au \u003cstrong\u003eBombastic\u003c\/strong\u003e.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003ePose et double shampoing\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eLaissez poser quelques instants et massez si possible. \u003cstrong\u003eDeux shampoings recommandés.\u003c\/strong\u003e\n\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e04\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eFinalisation\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eFinalisez avec un conditionneur ou un masque selon le besoin.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n          \u003c\/ol\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails class=\"aqr-proto-acc\"\u003e\n        \u003csummary class=\"aqr-proto-summary\"\u003e\n          \u003cspan class=\"aqr-proto-title\"\u003eBoosters d'intégration — Nutrition \u0026amp; Volume\u003c\/span\u003e\n          \u003cspan class=\"aqr-proto-plus\"\u003e\n            \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\n          \u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"aqr-proto-content\"\u003e\n          \u003cp class=\"aqr-proto-subtitle\"\u003eDeux variations pour amplifier l'effet selon le besoin\u003c\/p\u003e\n          \u003col class=\"aqr-proto-steps\"\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003eA\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eBoost nutrition\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003ePour un effet encore plus nourrissant, ajoutez directement \u003cstrong\u003eune cuillère d'Aqua Dolce\u003c\/strong\u003e dans votre mélange d'Aquarosa Pro. Appliquez, laissez poser quelques instants et rincez abondamment à l'eau tiède.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003eB\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eBoost volume\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eMélangez l'Aquarosa Pro avec la mousse \u003cstrong\u003eAqua Vita\u003c\/strong\u003e. Son effet effervescent apporte du volume et renforce la détergence. Idéal pour les fourrures qui manquent de légèreté après le bain.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eSéchage parfait\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eDans les deux cas, finalisez le séchage en brossant avec \u003cstrong\u003eAqua Beauty\u003c\/strong\u003e ou \u003cstrong\u003eMix Pink\u003c\/strong\u003e pour un manteau encore plus doux et brillant.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n          \u003c\/ol\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \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\n    \n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 5 : ASSOCIATIONS \u0026 RACES --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n    \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;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/h2\u003e\n    \u003c!-- Aquarosa au cœur + compléments modulaires Si... → Alors --\u003e\n    \u003cdiv class=\"aqr-assoc\"\u003e\n      \u003cp class=\"aqr-assoc-intro\"\u003eToute la gamme Special One est compatible. \u003cstrong\u003eÀ combiner librement\u003c\/strong\u003e selon le besoin du moment :\u003c\/p\u003e\n\n      \u003cdiv class=\"aqr-assoc-rules\"\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eun masque pré-bain est souhaité…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eBio Energy\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003evous couplez avec un autre shampoing…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003e4Poodle · Bain Pro · Aquapure Pro\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eun masque final est nécessaire…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eHydrating Cream · Bombastic · Aqua Dolce\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eune touche de finition s'impose…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eAbsolute 4Poodle · Mix Pink · Style 360\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \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\n\n    \u003c!-- Races en pilules arrondies --\u003e\n    \u003ch3 style=\"font-size: 13px; font-weight: 600; color: #1a1a1a; margin: 0 0 12px;\"\u003eParfaitement calibré pour les textures exigeantes :\u003c\/h3\u003e\n    \u003cdiv class=\"aqr-races-mosaic\"\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐾 Tous les chiens en salon \u003cspan\u003e(limite le retour des nœuds)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐩 Fourrures Frisées \u003cspan\u003e(Caniches, Bichons, Kerry Blue...)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🇬🇧 Cockers \u0026amp; Épagneuls \u003cspan\u003e(Anglais, Américains, Cavaliers...)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🏔️ Manteaux Tibétains \u003cspan\u003e(Shih-Tzu, Lhassa Apso...)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e✨ Textures Soyeuses \u003cspan\u003e(Yorkshire, Lévriers Afghans...)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐕 Terriers \u003cspan\u003e(Scottish, Westie, Welsh...)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐱 Tous les Chats\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cp style=\"margin-top: 14px; font-size: 11px; color: #888; font-style: italic;\"\u003eListe non exhaustive — Aquarosa Pro convient à toutes les fourrures nécessitant nutrition intense.\u003c\/p\u003e\n\n    \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\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 +90% | Sans SLS, DEA, Paraben, Silicone | 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":37819444494515,"sku":"WAQ-AQRO250 (96)","price":19.9,"currency_code":"EUR","in_stock":true},{"title":"5 Litres","offer_id":37819444461747,"sku":"WAQ-AQRO5000 (98)","price":127.5,"currency_code":"EUR","in_stock":true},{"title":"10 Litres","offer_id":57582899233113,"sku":"WAQ-AQRO10000 (250)","price":218.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/products\/Aquarosa_b416a6e2-3b73-4c01-b49a-928e3e6e9050.png?v=1680188855"},{"product_id":"aquaterme-argile-verte","title":"AQUA TERME PRO, shampoing soin à l'argile","description":"\u003c!-- ============================================\n     SYSTÈME DE DESIGN — Affinage visuel\n     ============================================ --\u003e\n\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\n\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: 14px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e\n      \u003cstrong\u003eAQUA TERME PRO\u003c\/strong\u003e est le shampoing professionnel Special One formulé à l’\u003cstrong\u003eargile verte et à la menthe\u003c\/strong\u003e, dédié aux peaux nécessitant une action traitante. Il \u003cstrong\u003epurifie et nettoie en profondeur\u003c\/strong\u003e tout en respectant le film hydrolipidique — sans aucune concession sur le résultat : visuel superbe et brushing parfait.\n    \u003c\/div\u003e\n    \u003cdiv style=\"font-size: 1.1em; margin-bottom: 16px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e\n      C’est aussi \u003cstrong\u003ele shampoing idéal des chiens à problèmes d’odeur\u003c\/strong\u003e : grâce à l’Aqua Terme, tous terminent le toilettage avec une odeur merveilleusement fraîche.\n    \u003c\/div\u003e\n    \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;\"\u003ePour qui est fait ce produit ?\u003c\/h2\u003e\n    \u003cp style=\"margin-bottom: 20px; font-size: 14px;\"\u003eTout le monde y trouvera un réel intérêt — en \u003cstrong\u003ecuratif\u003c\/strong\u003e sur les animaux présentant des anomalies cutanées, et en \u003cstrong\u003epréventif\u003c\/strong\u003e sur les races prédisposées.\u003c\/p\u003e\n\n    \u003cdiv class=\"aqr-audience\"\u003e\n      \u003cdiv class=\"aqr-audience-grid\"\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eToiletteurs\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eÉleveurs\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eParticuliers\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eCompétiteurs\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eHandlers\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \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\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 2 : EXPERTISE \u0026 RÉSULTATS --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\n    \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; Résultats\u003c\/h2\u003e\n    \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eGrâce à sa teneur en \u003cstrong\u003eargile verte et extrait de menthe\u003c\/strong\u003e, l’Aqua Terme Pro purifie en profondeur, apaise les peaux déshydratées ou réactives et redonne éclat et fraîcheur aux manteaux ternes. Sa formule traitante n’a aucune incidence sur la qualité du toilettage : \u003cstrong\u003eaction thérapeutique et résultat visuel impeccable vont de pair\u003c\/strong\u003e.\u003c\/p\u003e\n    \u003cdiv class=\"aqr-benefits\" style=\"margin-top: 20px;\"\u003e\n      \u003cdiv class=\"aqr-benefits-grid\"\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 0;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003ePeau saine\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eTraite les problèmes cutanés en préservant le film hydrolipidique, sans agresser.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 1;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eAnti-odeur\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eLutte contre les mauvaises odeurs liées aux dérèglements épidermiques et au sébum.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 2;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 3l9 5-9 5-9-5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M3 13l9 5 9-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003ePolyvalent\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eAide à lutter contre alopécie, prurit, irritations et hot spots.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 3;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 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\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eAssainissement \u0026amp; purification\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eNettoie et régénère les cellules en profondeur dès le premier usage.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 4;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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\u003cpath d=\"M18.5 15l.6 1.6 1.6.6-1.6.6-.6 1.6-.6-1.6-1.6-.6 1.6-.6z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eAnti-pellicules\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eRégule le cuir chevelu et réduit nettement les squames.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 5;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 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\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eApaisant\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eSoulage les peaux irritées ou réactives — idéal après épilation ou brossage énergique.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 6;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 19C5 11 11 5 19 5c0 8-6 14-14 14z\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 19c4-4 7-6 11-7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eDouceur \u0026amp; fraîcheur\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eAjoute éclat et fraîcheur aux manteaux ternes et sans vie.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 7;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"M6 15l6-6 6 6\"\u003e\u003c\/path\u003e\u003cpath d=\"M6 9l6-6 6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eTenue des fourrures fines\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eDonne de la tenue aux poils très fins qui manquent de volume (ex. Caniches gris, roux).\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 8;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"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\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eDétoxifiant \u0026amp; rafraîchissant\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eÉlimine toxines et impuretés cutanées avec une sensation de fraîcheur immédiate.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 9;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"8\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"4\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"1.2\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eAlopécie X du Spitz\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eRecommandé en bain hebdomadaire dans le protocole de suivi et de repousse.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 10;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"9\" cy=\"13\" r=\"4\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"16\" cy=\"9\" r=\"2.5\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"17.5\" cy=\"15\" r=\"1.5\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eMousse exceptionnelle\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eMousse à merveille en salon : application aisée et bonne dépose des actifs.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 11;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"9\" r=\"5\"\u003e\u003c\/circle\u003e\u003cpath d=\"M9 13.5L7.5 21 12 18.5 16.5 21 15 13.5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eRésultat professionnel\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eAction traitante sans compromis — visuel superbe et brushing parfait.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \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\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC RADAR (deplace sous Expertise) --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n    \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;\"\u003eMieux comprendre les actions de l'Aqua Terme Pro\u003c\/h2\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eLe détail de ses performances cosmétologiques, note par note.\u003c\/p\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:16px 28px;overflow:visible;\"\u003e\n        \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 { 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\n\n  \u003cscript\u003e\n  (function() {\n    var PRODUCT = { criteria: [ { label: \"Soin peau\", value: 5 }, { label: \"Volume\", value: 4 }, { label: \"Moussant\", value: 4 }, { label: \"Texture\", value: 3 }, { 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\n\n  \u003c!-- BLOC 3 : COMPOSITION (CARTOGRAPHIE JS actifs Aqua Terme Pro - fiabilisee) --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n    \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 de l'Aqua Terme Pro : actifs naturels \u0026amp; action ciblée\u003c\/h2\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eUn complexe minéral et végétal entièrement naturel — \u003cstrong\u003eargile verte, menthe et plantes purifiantes\u003c\/strong\u003e, sans SLS, sans parabens, sans silicone. Voici, zone par zone, comment chaque actif agit sur la peau et le poil.\u003c\/p\u003e\n\n    \u003c!-- CARTOGRAPHIE --\u003e\n    \u003cdiv id=\"aqr-carto\" style=\"background:#fff;border:1px solid #e5e5e5;padding:18px;\"\u003e\n      \u003cdiv class=\"aqr-grid\"\u003e\n\n        \u003cdiv class=\"aqr-col-list\"\u003e\n          \u003cul class=\"aqr-list\" id=\"aqrList\"\u003e\u003c\/ul\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"aqr-col-schema\"\u003e\n          \u003cdiv class=\"aqr-schema-wrap\" id=\"aqrSchemaWrap\"\u003e\n            \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 l'Aqua Terme Pro\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/schema-peau-poil.webp?v=1779972667\"\u003e\n            \u003csvg class=\"aqr-overlay\" id=\"aqrOverlay\" preserveaspectratio=\"none\" viewbox=\"0 0 100 225\"\u003e\u003c\/svg\u003e\n            \u003cdiv class=\"aqr-connectors\" id=\"aqrConnectors\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"aqr-col-info\"\u003e\n          \u003cdiv class=\"aqr-info\" id=\"aqrInfo\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n    \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\n\n    \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:'argile', label:'Argile Verte', latin:'Fuller’s Earth', family:'aqua',\n          desc:\"Argile minérale antibactérienne et absorbante : elle purifie la peau en profondeur, capte le sébum en excès et régénère les cellules cutanées.\",\n          targets: [\n            { anchor:'glande_seb', action:\"Capture du sébum\", benefit:\"Absorbe l'excès de sébum et assainit les glandes sébacées.\" },\n            { anchor:'epiderme', action:\"Purification profonde\", benefit:\"Capte impuretés et toxines, puis régénère les cellules de surface.\" }\n          ]\n        },\n        {\n          id:'mineral', label:'Complexe Minéral', latin:'Fer · Calcium · Silicium · Magnésium · Potassium', family:'aqua',\n          desc:\"Oligo-éléments essentiels qui reminéralisent la peau, renforcent le manteau et lui restituent force et brillance naturelle.\",\n          targets: [\n            { anchor:'derme', action:\"Reminéralisation\", benefit:\"Apporte les oligo-éléments qui renforcent la structure cutanée en profondeur.\" },\n            { anchor:'tige_poil', action:\"Force \u0026 brillance\", benefit:\"Restitue résistance et brillance naturelle au manteau.\" }\n          ]\n        },\n        {\n          id:'menthe', label:'Menthol \u0026 Huile de Tea Tree', latin:'Mentha \u0026 Melaleuca', family:'botanic',\n          desc:\"Duo rafraîchissant, lénitif et purifiant : effet immédiat de bien-être qui apaise les irritations cutanées.\",\n          targets: [\n            { anchor:'epiderme', action:\"Fraîcheur \u0026 lénifiant\", benefit:\"Sensation de fraîcheur immédiate qui apaise les irritations.\" },\n            { anchor:'film_hydro', action:\"Purifiant doux\", benefit:\"Assainit la surface tout en respectant le film protecteur.\" }\n          ]\n        },\n        {\n          id:'romarin', label:'Romarin', latin:'Rosmarinus officinalis', family:'botanic',\n          desc:\"Tonique végétal qui fortifie le poil et améliore la microcirculation cutanée : il favorise un manteau plus résistant et lumineux.\",\n          targets: [\n            { anchor:'follicule', action:\"Stimulation de la pousse\", benefit:\"Active la microcirculation autour du follicule et favorise une repousse vigoureuse.\" },\n            { anchor:'tige_poil', action:\"Fortifie le poil\", benefit:\"Renforce la fibre pour un manteau résistant et lumineux.\" }\n          ]\n        },\n        {\n          id:'ortie', label:\"Extrait d'Ortie\", latin:'Urtica dioica', family:'bio',\n          desc:\"Plante séborégulatrice et anti-pelliculaire : elle régule la production de sébum et stimule la régénération cutanée.\",\n          targets: [\n            { anchor:'glande_seb', action:\"Séborégulation\", benefit:\"Régule la production de sébum à la source.\" },\n            { anchor:'epiderme', action:\"Anti-pelliculaire\", benefit:\"Stimule la régénération cutanée et réduit les squames.\" }\n          ]\n        },\n        {\n          id:'biotine', label:'Biotine \u0026 Niacinamide', latin:'Vitamines B7 \u0026 B3', family:'bio',\n          desc:\"Duo réparateur essentiel : renforce la structure du poil, stimule la croissance et réduit les pellicules.\",\n          targets: [\n            { anchor:'bulbe', action:\"Croissance du poil\", benefit:\"Nourrissent le bulbe et stimulent la pousse d'un poil plus fort.\" },\n            { anchor:'tige_poil', action:\"Renfort structural\", benefit:\"Renforcent la structure de la fibre de l'intérieur.\" }\n          ]\n        },\n        {\n          id:'citron', label:'Citron \u0026 Piroctone Olamine', latin:'Citrus limon \u0026 actif assainissant', family:'cond',\n          desc:\"Action déodorante, antibactérienne et protectrice : neutralise les mauvaises odeurs et protège la peau des agents externes.\",\n          targets: [\n            { anchor:'glande_sud', action:\"Action déodorante\", benefit:\"Neutralise les mauvaises odeurs liées aux déséquilibres cutanés.\" },\n            { anchor:'epiderme', action:\"Protection antibactérienne\", benefit:\"Protège la peau des agents externes et limite la prolifération bactérienne.\" }\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\n\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 4 : PROTOCOLES --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n    \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;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/h2\u003e\n    \u003c!-- DILUTION P4 : 3 cartes sobres (Ratio · Rendement · Équivalences animées) --\u003e\n    \u003cdiv class=\"aqr-dilution\" style=\"margin-bottom: 12px;\"\u003e\n      \u003cdiv class=\"aqr-dilution-eyebrow\"\u003eDilution de référence\u003c\/div\u003e\n\n      \u003cdiv class=\"aqr-dilution-grid\"\u003e\n\n        \u003c!-- CARTE 1 : Ratio --\u003e\n        \u003cdiv class=\"aqr-dilution-cell\"\u003e\n          \u003cdiv class=\"aqr-dilution-cell-label\"\u003eRatio\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-value\"\u003e1\u003cspan class=\"aqr-dilution-slash\"\u003e\/\u003c\/span\u003e20\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-note\"\u003eUne part pour 20 parts d'eau\u003cbr\u003e— ou pur\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003c!-- CARTE 2 : Rendement --\u003e\n        \u003cdiv class=\"aqr-dilution-cell\"\u003e\n          \u003cdiv class=\"aqr-dilution-cell-label\"\u003eRendement\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n            \u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e250 mL\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 5 L\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e1 L\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 20 L\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e5 L\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 100 L\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-note\"\u003eprêts à l'emploi\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003c!-- CARTE 3 : Équivalences animées --\u003e\n        \u003cdiv class=\"aqr-dilution-cell\"\u003e\n          \u003cdiv class=\"aqr-dilution-cell-label\"\u003ePour \u003cspan id=\"aqrCycleTarget\" class=\"aqr-dilution-cycle-target\"\u003e1 L\u003c\/span\u003e de produit fini\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cstrong id=\"aqrCycleMl\"\u003e50\u003c\/strong\u003e mL \u003cspan\u003een volume\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleG\"\u003e50\u003c\/strong\u003e g \u003cspan\u003een poids\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleSpoon\"\u003e3\u003c\/strong\u003e \u003cspan id=\"aqrCycleSpoonLabel\"\u003ecuillères à soupe\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCyclePump\"\u003e2\u003c\/strong\u003e \u003cspan id=\"aqrCyclePumpLabel\"\u003epressions de pompe\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \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\n\n    \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: '50',  g: '50',  spoon: '3',  pump: '2' },\n        { target: '2 L', ml: '100', g: '100', spoon: '6',  pump: '4' },\n        { target: '4 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\n                  \u003cdetails class=\"aqr-proto-acc\" open\u003e\n        \u003csummary class=\"aqr-proto-summary\"\u003e\n          \u003cspan class=\"aqr-proto-title\"\u003eToilettage rapide \u0026amp; peau à apaiser\u003c\/span\u003e\n          \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\n        \u003c\/summary\u003e\n        \u003cdiv class=\"aqr-proto-content\"\u003e\n          \u003cp class=\"aqr-proto-subtitle\"\u003ePour un bain efficace et apaisant au quotidien\u003c\/p\u003e\n          \u003col class=\"aqr-proto-steps\"\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003ePremier shampoing\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eDémarrez le bain directement avec l’\u003cstrong\u003eAqua Terme Pro dilué\u003c\/strong\u003e sur le poil mouillé. Rincez.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eSecond shampoing\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eAppliquez un \u003cstrong\u003esecond shampoing\u003c\/strong\u003e, puis rincez de nouveau.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eFinition\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eFinalisez avec l’après-shampoing adapté au besoin : \u003cstrong\u003eHydrating Cream, Bombastic ou Aqua Dolce\u003c\/strong\u003e.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n          \u003c\/ol\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"aqr-proto-acc\"\u003e\n        \u003csummary class=\"aqr-proto-summary\"\u003e\n          \u003cspan class=\"aqr-proto-title\"\u003eBain \u0026amp; soin profond — peau nécessitant une action intense\u003c\/span\u003e\n          \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\n        \u003c\/summary\u003e\n        \u003cdiv class=\"aqr-proto-content\"\u003e\n          \u003cp class=\"aqr-proto-subtitle\"\u003ePour les peaux présentant des anomalies cutanées marquées\u003c\/p\u003e\n          \u003col class=\"aqr-proto-steps\"\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eMasque pré-bain Detox\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eAppliquez le masque pré-bain \u003cstrong\u003eDetox Therapy pendant 10 minutes\u003c\/strong\u003e sur le poil sec.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eEnchaînement sans rinçage\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eEnchaînez directement avec l’\u003cstrong\u003eAqua Terme Pro sans rincer\u003c\/strong\u003e entre les deux phases.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eDouble shampoing \u0026amp; pose\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eRincez, puis renouvelez le shampoing. \u003cstrong\u003eLaissez poser 5 minutes\u003c\/strong\u003e.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eFinition réparatrice\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eFinalisez avec \u003cstrong\u003eHydrating Cream + Huiles 4 Éléments\u003c\/strong\u003e, puis rincez l’après-shampoing.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n          \u003c\/ol\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \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\n    \n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 5 : ASSOCIATIONS \u0026 RACES --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n    \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;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/h2\u003e\n    \u003c!-- Aqua Terme Pro au cœur + compléments modulaires Si... → Alors --\u003e\n    \u003cdiv class=\"aqr-assoc\"\u003e\n      \u003cp class=\"aqr-assoc-intro\"\u003e\u003cstrong\u003eToute la gamme Special One\u003c\/strong\u003e est compatible avec l’Aqua Terme Pro. Nos alliances préférées :\u003c\/p\u003e\n\n      \u003cdiv class=\"aqr-assoc-rules\"\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eun masque pré-bain s’impose…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eDetox Therapy\u003c\/strong\u003e (recommandé systématiquement)\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eun soin final est nécessaire…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eAqua Dolce · Bombastic · Hydrating Cream\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003ela peau est très réactive…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eHydrating Cream + Huiles 4 Éléments\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \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\n\n    \u003c!-- Races en pilules arrondies --\u003e\n    \u003ch3 style=\"font-size: 13px; font-weight: 600; color: #1a1a1a; margin: 0 0 12px;\"\u003eLà où l'Aqua Terme Pro fait la différence :\u003c\/h3\u003e\n    \u003cdiv class=\"aqr-races-mosaic\"\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🦊 Spitz · Alopécie X \u003cspan\u003e(bain hebdo : tenue, pousse \u0026amp; densité)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐩 Caniches gris, roux \u0026amp; fauves \u003cspan\u003e(poils fins : tenue \u0026amp; repousse)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐱 Chats \u0026amp; chiens à anomalies cutanées \u003cspan\u003e(usage curatif)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e✂️ Races qu’on épile \u003cspan\u003e(repousse post-épilation)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐶 Bouledogue Français \u0026amp; Carlins \u003cspan\u003e(plis, séborrhée, irritations)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐕 Chien Chinois à Crête \u003cspan\u003e(peau nue exposée)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🦮 Golden Retriever \u003cspan\u003e(irritations \u0026amp; excès de sébum)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐺 Shar-Peï \u003cspan\u003e(plis profonds, déséquilibres cutanés)\u003c\/span\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cp style=\"margin-top: 14px; font-size: 11px; color: #888; font-style: italic;\"\u003eListe non exhaustive — en curatif comme en préventif sur les peaux sensibles et prédisposées.\u003c\/p\u003e\n\n    \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\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 +90% | Sans SLS, DEA, Paraben, Silicone | 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":"1 Litre","offer_id":57191767540057,"sku":"(77)","price":51.5,"currency_code":"EUR","in_stock":true},{"title":"5 Litres","offer_id":37819485028531,"sku":"WAQ-AQTE5000 (153)","price":144.2,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/eleven_7.png?v=1771967768"},{"product_id":"aqua-beauty","title":"AQUA BEAUTY : spray bi phase anti statique plombant gainant démêlant","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. Un \"must have\" dans toutes les mallettes de toilettage.\n    \u003c\/div\u003e\n\n    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003ePour qui est fait ce produit ?\u003c\/span\u003e\n    \u003cp style=\"margin-bottom: 15px; font-size: 14px;\"\u003eTout le monde y trouvera un réel intérêt — de la mallette du toiletteur professionnel à la brosse du particulier au quotidien.\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;\"\u003e✅ Toiletteurs\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;\"\u003e✅ Particuliers\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;\"\u003e✅ Compé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;\"\u003e✅ Handlers\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    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eExpertise \u0026amp; Résultats\u003c\/span\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. Sa double action protège autant la fourrure mal entretenue des clients peu soigneux en salon que les manteaux très sollicités des chiens d'exposition. Un seul spray suffit pour retrouver un poil glissant, détendu et parfaitement lissé.\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: none;\"\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eLissage \u0026amp; défrisage :\u003c\/strong\u003e Supprime les ondulations et les frisottis du pelage immédiatement.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eConditioning intense :\u003c\/strong\u003e Gaine, protège et conditionne fortement le poil.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eDémêlage rapide :\u003c\/strong\u003e Action efficace sur les nœuds, même à sec.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eAnti-électricité statique :\u003c\/strong\u003e Élimine l'effet électrostatique pour un brossage fluide.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eHydratation :\u003c\/strong\u003e Apporte de l'eau et de la souplesse à la fibre en profondeur.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eAnti-casse :\u003c\/strong\u003e Renforce la résistance du poil et limite les ruptures.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eAnti-nœuds durables :\u003c\/strong\u003e Retarde significativement le retour des nœuds entre les bains.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eBrushing facilité :\u003c\/strong\u003e Rend le poil glissant et détendu, même lorsqu'on ressent de l'accroche en début de séchage.\u003c\/li\u003e\n        \u003cli style=\"margin-bottom: 8px;\"\u003e✅ \u003cstrong\u003eRéparateur :\u003c\/strong\u003e Remédie aux dommages causés par le vent, la pollution et le séchage intensif au sèche-cheveux.\u003c\/li\u003e\n        \u003cli\u003e✅ \u003cstrong\u003eNon gras :\u003c\/strong\u003e Contrairement aux huiles, il démêle sans graisser le poil — utilisable avant le bain sans risque de mauvais rinçage ni de tache sur les manteaux blancs.\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    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eSynergie d'Actifs Naturels\u003c\/span\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eUne formulation naturelle ciblée sur la restructuration, l'hydratation et l'éclat — 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\u003e🍀 Extrait 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 et anti-âge. Confère au poil un effet velouté et élastique grâce à sa capacité protectrice.\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\u003e🍀 Tulipe 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\u003e🍀 Protéines Hydrolysées de Blé\u003c\/strong\u003e\u003cbr\u003e\n            \u003cspan style=\"font-size: 11px; color: #666;\"\u003eExcellent 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    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/span\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–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        Aqua Beauty est \u003cstrong\u003ele compagnon idéal des brossages entre les bains\u003c\/strong\u003e. Au quotidien, vaporisez sur le manteau sec ou légèrement humidifié, à 20–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 et les définir — touche finale impeccable 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–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 au 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 s'intègre parfaitement comme \u003cstrong\u003eétape de finition 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 est nettement facilité — résultat professionnel garanti.\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    \u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #999; margin-bottom: 15px; display: block;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/span\u003e\n\n    \u003cp style=\"font-size: 13px; margin-bottom: 15px;\"\u003eToute la gamme Special One est compatible avec Aqua Beauty. Nos alliances 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 — synergie parfaite conditioning + lissage\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 — ce produit s'adapte à 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 a précisément été conçu pour répondre à 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 — 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, fini 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 +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\/eleven_3.png?v=1771967180"},{"product_id":"villanelle-special-one-masque-apres-shampoing","title":"VILLANELLE, Crème Ultra-Démêlante \u0026 Séchage Rapide","description":"\u003c!-- ============================================\n     SYSTÈME DE DESIGN — Affinage visuel\n     ============================================ --\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\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: 16px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e\n\u003cstrong\u003eVILLANELLE\u003c\/strong\u003e est le nouveau traitement \u003cstrong\u003eUltra-Démêlant\u003c\/strong\u003e Special One. Conçue pour dissoudre les feutrages les plus critiques, elle réduit jusqu’à \u003cstrong\u003e40 % le temps de séchage\u003c\/strong\u003e tout en protégeant le poil du stress thermique. Son secret : la \u003cstrong\u003eZédoaire\u003c\/strong\u003e, racine ayurvédique millénaire surnommée le « curcuma blanc des rajahs ».\u003c\/div\u003e\n\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;\"\u003ePour qui est fait ce produit ?\u003c\/h2\u003e\n\u003cp style=\"margin-bottom: 20px; font-size: 14px;\"\u003e\u003cstrong\u003eIndispensable pour l’efficacité et le gain de temps\u003c\/strong\u003e — c’est le produit de référence pour les débourrages complexes et l’évacuation massive du poil mort.\u003c\/p\u003e\n\u003cdiv class=\"aqr-audience\"\u003e\n\u003cdiv class=\"aqr-audience-grid\"\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eToiletteurs\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eÉleveurs\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eParticuliers\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eCompétiteurs\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-audience-card\"\u003e\n\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\n\u003cdiv class=\"aqr-audience-name\"\u003eHandlers\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 20px 10px; background-color: #ffffff;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- BLOC 2 : EXPERTISE \u0026 RÉSULTATS --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\n\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; Résultats\u003c\/h2\u003e\n\u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eGrâce à des \u003cstrong\u003eactifs volatils innovants\u003c\/strong\u003e, Villanelle se lie à l’humidité superflue pour favoriser son évaporation rapide — limitant ainsi l’exposition du poil au chaud du séchoir. Le résultat : moins de stress thermique, plus de temps gagné, et un manteau soyeux dès la sortie du bain.\u003c\/p\u003e\n\u003cdiv class=\"aqr-benefits\" style=\"margin-top: 20px;\"\u003e\n\u003cdiv class=\"aqr-benefits-grid\"\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 0;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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=\"M6 3L20 17l-2 4-5-5\"\u003e\u003c\/path\u003e\u003ccircle cx=\"6\" cy=\"20\" r=\"3\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"18\" cy=\"20\" r=\"3\"\u003e\u003c\/circle\u003e\u003cpath d=\"M20 7L6 21\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eDémêlant Express\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003ePénètre et dissout les nœuds et les feutres \u003cstrong\u003esans douleur\u003c\/strong\u003e — même sur les zones les plus critiques.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 1;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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 9h12a3 3 0 1 0-3-3\"\u003e\u003c\/path\u003e\u003cpath d=\"M4 14h16a3 3 0 1 1-3 3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eSéchage record\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eTechnologie d’accélération du séchage unique — jusqu’à \u003cstrong\u003e40 % de temps gagné\u003c\/strong\u003e, moins de chaleur, moins de stress.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 2;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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=\"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\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eAnti-Mue puissant\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eIdéal pour les \u003cstrong\u003eprotocoles d’évacuation du poil mort\u003c\/strong\u003e — le débourrage massif devient un jeu d’enfant.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 3;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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\u003cpath d=\"M18.5 15l.6 1.6 1.6.6-1.6.6-.6 1.6-.6-1.6-1.6-.6 1.6-.6z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eTexture parfaite\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eUne consistance riche, fondante, qui laisse le poil \u003cstrong\u003esoyeux et léger\u003c\/strong\u003e sans l’alourdir.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-card\" style=\"--i: 4;\"\u003e\n\u003cdiv class=\"aqr-benefit-corner\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\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\n\u003cdiv class=\"aqr-benefit-content\"\u003e\n\u003cdiv class=\"aqr-benefit-title\"\u003eVitalité \u0026amp; protection\u003c\/div\u003e\n\u003cdiv class=\"aqr-benefit-desc\"\u003eRenforce la fibre capillaire et la \u003cstrong\u003eprotège des agressions extérieures\u003c\/strong\u003e — chaleur, frottements, brossages intenses.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- BLOC RADAR (deplace sous Expertise) --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n\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;\"\u003eMieux comprendre les actions de la Villanelle\u003c\/h2\u003e\n\u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eLe détail de ses performances cosmétologiques, note par note.\u003c\/p\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: 16px 28px; overflow: visible;\"\u003e\n\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\n\u003cdiv id=\"so-radar-footer\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cscript\u003e\n  (function() {\n    var PRODUCT = { criteria: [ { label: \"Hydratation\", value: 5 }, { label: \"Brillance\", value: 4 }, { label: \"Soin peau\", value: 3 }, { label: \"Volume\", value: 4 }, { label: \"Démêlant\", value: 5 } ] };\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!-- BLOC 3 : COMPOSITION (CARTOGRAPHIE JS actifs Villanelle - fiabilisee) --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n\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 de la Villanelle : synergie d’actifs nourrissants \u0026amp; action ciblée\u003c\/h2\u003e\n\u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eUne formulation de haute qualité alliant \u003cstrong\u003enutrition intense\u003c\/strong\u003e et \u003cstrong\u003elégèreté absolue\u003c\/strong\u003e. Voici, zone par zone, comment chaque actif agit sur la fibre et la peau.\u003c\/p\u003e\n\u003c!-- CARTOGRAPHIE --\u003e\n\u003cdiv id=\"aqr-carto\" style=\"background: #fff; border: 1px solid #e5e5e5; padding: 18px;\"\u003e\n\u003cdiv class=\"aqr-grid\"\u003e\n\u003cdiv class=\"aqr-col-list\"\u003e\n\u003cul class=\"aqr-list\" id=\"aqrList\"\u003e\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-col-schema\"\u003e\n\u003cdiv class=\"aqr-schema-wrap\" id=\"aqrSchemaWrap\"\u003e\n\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 la Villanelle\" 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\n\u003cdiv class=\"aqr-connectors\" id=\"aqrConnectors\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-col-info\"\u003e\n\u003cdiv class=\"aqr-info\" id=\"aqrInfo\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n\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:'karite', label:'Beurre de Karité', latin:'Butyrospermum parkii', family:'botanic',\n          desc:\"Beurre végétal pénétrant, riche en acides gras et vitamines : il nourrit intensément la fibre tout en laissant une texture fondante — douceur immédiate, poil discipliné.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Nutrition profonde\", benefit:\"Pénètre la fibre et restitue souplesse, lourdeur juste et discipline.\" },\n            { anchor:'cuticule', action:\"Lissage doux\", benefit:\"Adoucit la cuticule et facilite la pénétration des autres actifs.\" }\n          ]\n        },\n        {\n          id:'coton', label:'Huile de Coton Bio', latin:'Gossypium herbaceum', family:'botanic',\n          desc:\"Huile végétale légère, riche en vitamine E : elle apporte volume et souplesse, et protège le poil des dommages oxydatifs (chaleur, frottements, UV).\",\n          targets: [\n            { anchor:'tige_poil', action:\"Volume \u0026amp; souplesse\", benefit:\"Donne du corps et de la souplesse sans alourdir le manteau.\" },\n            { anchor:'cuticule', action:\"Protection antioxydante\", benefit:\"Bouclier antioxydant contre le stress thermique du séchage.\" }\n          ]\n        },\n        {\n          id:'b5', label:'Provitamine B5', latin:'D-Panthénol', family:'aqua',\n          desc:\"Humectant cosmétique majeur : elle hydrate la fibre en profondeur, restaure l’élasticité et facilite le démêlage des nœuds les plus tenaces.\",\n          targets: [\n            { anchor:'film_hydro', action:\"Hydratation profonde\", benefit:\"Retient l’eau dans la fibre et reconstitue le film hydrolipidique.\" },\n            { anchor:'tige_poil', action:\"Élasticité retrouvée\", benefit:\"Revigore la fibre élastique — le poil se démêle sans casser.\" }\n          ]\n        },\n        {\n          id:'zedoaire', label:'Zédoaire d’Asie', latin:'Curcuma zedoaria', family:'bio',\n          desc:\"Racine ayurvédique millénaire, surnommée le « curcuma blanc des rajahs » : son huile essentielle purifie le terrain cutané et tonifie le poil. Plus rare et plus précieuse que son célèbre cousin le curcuma.\",\n          targets: [\n            { anchor:'epiderme', action:\"Purification\", benefit:\"Purifie la peau et apporte un terrain sain pour un poil vigoureux.\" },\n            { anchor:'cuticule', action:\"Tonification\", benefit:\"Tonifie la fibre et apporte cette signature « soyeuse et légère ».\" }\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!-- ENCART STORYTELLING ZÉDOAIRE --\u003e\n\u003cdiv style=\"margin-top: 25px; padding: 22px 24px; background: #fff; border-left: 3px solid #1d1d1f;\"\u003e\n\u003cspan style=\"font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #999; margin-bottom: 12px; display: block;\"\u003e🌺 Le secret de Villanelle\u003c\/span\u003e\n\u003cp style=\"font-size: 14px; margin: 0 0 10px; font-weight: 600;\"\u003eLa Zédoaire, trésor botanique des traditions ayurvédiques\u003c\/p\u003e\n\u003cp style=\"font-size: 13px; margin: 0; color: #444; line-height: 1.65;\"\u003eRacine dorée originaire des forêts d’Inde et d’Indonésie, la \u003cstrong\u003eZédoaire\u003c\/strong\u003e \u003cem\u003e(Curcuma zedoaria)\u003c\/em\u003e est utilisée depuis plus de \u003cstrong\u003e2 000 ans\u003c\/strong\u003e dans la médecine ayurvédique pour ses vertus purifiantes et régénérantes. Plus rare et plus précieuse que son célèbre cousin le curcuma, on la surnomme le \u003cem\u003e« curcuma blanc des rajahs »\u003c\/em\u003e.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- BLOC 4 : PROTOCOLES --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\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;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/h2\u003e\n\u003c!-- DILUTION P4 : 3 cartes sobres (Ratio · Rendement · Équivalences animées) --\u003e\n\u003cdiv class=\"aqr-dilution\" style=\"margin-bottom: 12px;\"\u003e\n\u003cdiv class=\"aqr-dilution-eyebrow\"\u003eDilution de référence\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-grid\"\u003e\n\u003c!-- CARTE 1 : Ratio --\u003e\n\u003cdiv class=\"aqr-dilution-cell\"\u003e\n\u003cdiv class=\"aqr-dilution-cell-label\"\u003eRatio\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-value\"\u003e1\u003cspan class=\"aqr-dilution-slash\"\u003e\/\u003c\/span\u003e60\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-note\"\u003eUne cuillère à soupe\u003cbr\u003epour 1 L d’eau tiède\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARTE 2 : Rendement --\u003e\n\u003cdiv class=\"aqr-dilution-cell\"\u003e\n\u003cdiv class=\"aqr-dilution-cell-label\"\u003eRendement\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n\u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e150 mL\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 9 L\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e500 mL\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 30 L\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e3 L\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 180 L\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-note\"\u003eprêts à l'emploi\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CARTE 3 : Équivalences animées --\u003e\n\u003cdiv class=\"aqr-dilution-cell\"\u003e\n\u003cdiv class=\"aqr-dilution-cell-label\"\u003ePour \u003cspan id=\"aqrCycleTarget\" class=\"aqr-dilution-cycle-target\"\u003e1 L\u003c\/span\u003e de produit fini\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n\u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cstrong id=\"aqrCycleMl\"\u003e50\u003c\/strong\u003e mL \u003cspan\u003een volume\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleG\"\u003e50\u003c\/strong\u003e g \u003cspan\u003een poids\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleSpoon\"\u003e3\u003c\/strong\u003e \u003cspan id=\"aqrCycleSpoonLabel\"\u003ecuillères à soupe\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\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 \u003c!-- BLOC METHODE DE PRÉPARATION (infographie, pas un protocole) --\u003e\n\u003cdiv class=\"aqr-method-box\"\u003e\n\u003cdiv class=\"aqr-method-eyebrow\"\u003e🛠️ Méthode de préparation\u003c\/div\u003e\n\u003ch3 class=\"aqr-method-title\"\u003eRéussir sa crème en 5 étapes simples\u003c\/h3\u003e\n\u003cp class=\"aqr-method-subtitle\"\u003eCette méthode anti-grumeaux est à la base des \u003cstrong\u003e3 protocoles ci-dessous\u003c\/strong\u003e — un seul geste à maîtriser.\u003c\/p\u003e\n\u003col class=\"aqr-method-grid\"\u003e\n\u003cli class=\"aqr-method-step\"\u003e\n\u003cdiv class=\"aqr-method-num\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-title\"\u003eDoser\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-desc\"\u003e\n\u003cstrong\u003e1 cuillère à soupe\u003c\/strong\u003e de Villanelle dans un bol ou un shaker.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-method-step\"\u003e\n\u003cdiv class=\"aqr-method-num\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-title\"\u003eHuile \u003cspan class=\"aqr-method-opt\"\u003e(option)\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-desc\"\u003eSi nœuds résiduels : \u003cstrong\u003e1 pression d’Huiles 4 Éléments\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-method-step\"\u003e\n\u003cdiv class=\"aqr-method-num\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-title\"\u003eEau chaude\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-desc\"\u003eEnviron \u003cstrong\u003e5 cm d’eau chaude\u003c\/strong\u003e — anti-grumeaux dès le départ.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-method-step\"\u003e\n\u003cdiv class=\"aqr-method-num\"\u003e04\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-title\"\u003eÉmulsionner\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-desc\"\u003eFouet, mixeur ou shaker fermé : \u003cstrong\u003esecouer intensément\u003c\/strong\u003e jusqu’à émulsion lisse.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-method-step\"\u003e\n\u003cdiv class=\"aqr-method-num\"\u003e05\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-title\"\u003eCompléter \u0026amp; rincer\u003c\/div\u003e\n\u003cdiv class=\"aqr-method-step-desc\"\u003eCompléter avec de l’eau tiède jusqu’à 1 L, appliquer sur poil essoré, puis \u003cstrong\u003erincer\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cdiv class=\"aqr-method-tip\"\u003e\n\u003cspan class=\"aqr-method-tip-icon\"\u003e💡\u003c\/span\u003e \u003cstrong\u003eNotre conseil :\u003c\/strong\u003e certains préfèrent ne pas rincer cette crème, mais nous observons qu’\u003cstrong\u003een la rinçant on obtient un résultat optimal\u003c\/strong\u003e — plus de légèreté, moins de résidus.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n      .aqr-method-box {\n        background: #f5f5f7;\n        border: 1px solid #e5e5e7;\n        border-radius: 14px;\n        padding: 22px 24px 24px;\n        margin-bottom: 18px;\n        font-family: inherit;\n      }\n      .aqr-method-eyebrow {\n        font-size: 11px;\n        letter-spacing: 0.15em;\n        text-transform: uppercase;\n        color: #86868b;\n        font-weight: 600;\n        margin-bottom: 8px;\n      }\n      .aqr-method-title {\n        font-size: 18px;\n        font-weight: 600;\n        color: #1d1d1f;\n        margin: 0 0 6px;\n        line-height: 1.3;\n      }\n      .aqr-method-subtitle {\n        font-size: 13px;\n        color: #6e6e73;\n        margin: 0 0 18px;\n        line-height: 1.5;\n      }\n      .aqr-method-grid {\n        list-style: none;\n        margin: 0;\n        padding: 0;\n        display: grid;\n        grid-template-columns: repeat(5, 1fr);\n        gap: 10px;\n      }\n      .aqr-method-step {\n        background: #fff;\n        border: 1px solid #e5e5e7;\n        border-radius: 10px;\n        padding: 14px 12px;\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n        position: relative;\n      }\n      .aqr-method-step + .aqr-method-step::before {\n        content: '→';\n        position: absolute;\n        left: -10px;\n        top: 50%;\n        transform: translateY(-50%);\n        color: #c2a85c;\n        font-weight: 600;\n        font-size: 12px;\n        background: #f5f5f7;\n        padding: 0 3px;\n      }\n      .aqr-method-num {\n        font-size: 11px;\n        font-weight: 700;\n        color: #c2a85c;\n        letter-spacing: 0.1em;\n      }\n      .aqr-method-step-title {\n        font-size: 13px;\n        font-weight: 600;\n        color: #1d1d1f;\n      }\n      .aqr-method-opt {\n        font-weight: 400;\n        color: #86868b;\n        font-size: 11px;\n      }\n      .aqr-method-step-desc {\n        font-size: 12px;\n        line-height: 1.45;\n        color: #515154;\n      }\n      .aqr-method-tip {\n        margin-top: 16px;\n        padding: 12px 14px;\n        background: #fff;\n        border-left: 3px solid #c2a85c;\n        border-radius: 6px;\n        font-size: 12.5px;\n        color: #515154;\n        line-height: 1.55;\n      }\n      .aqr-method-tip-icon {\n        margin-right: 4px;\n      }\n      @media (max-width: 900px) {\n        .aqr-method-grid { grid-template-columns: repeat(2, 1fr); }\n        .aqr-method-step + .aqr-method-step::before { display: none; }\n      }\n      @media (max-width: 480px) {\n        .aqr-method-grid { grid-template-columns: 1fr; }\n      }\n    \u003c\/style\u003e\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\u003cdetails class=\"aqr-proto-acc\"\u003e\n\u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eDémêlage choc \u0026amp; séchage record\u003c\/span\u003eAprès le shampoing — protocole de référence salon\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\n\u003cdiv class=\"aqr-proto-body\"\u003e\n\u003col class=\"aqr-proto-steps\"\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003ePréparer l’émulsion\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eDiluez \u003cstrong\u003e1 cuillère à soupe de Villanelle\u003c\/strong\u003e dans \u003cstrong\u003e1 L d’eau tiède\u003c\/strong\u003e. Fouettez ou secouez énergiquement pour homogénéiser.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eAppliquer\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eVersez l’émulsion sur le manteau préalablement essoré, en insistant sur les zones feutrées.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eLaisser agir\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003ePause de \u003cstrong\u003e5 minutes\u003c\/strong\u003e — les actifs volatils se lient à l’humidité superflue.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e04\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eRincer délicatement\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eL’effet accélérateur de séchage est immédiatement activé. Séchage \u003cstrong\u003e40 % plus rapide\u003c\/strong\u003e.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"aqr-proto-acc\"\u003e\n\u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eTraitement d’urgence — nœuds \u0026amp; mue\u003c\/span\u003eApplication pure sur zones feutrées\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\n\u003cdiv class=\"aqr-proto-body\"\u003e\n\u003col class=\"aqr-proto-steps\"\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003eA\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eAppliquer pure\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eDéposez une petite quantité de \u003cstrong\u003ecrème pure\u003c\/strong\u003e directement sur les nœuds ou les amas de poil mort.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003eB\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eMasser\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eMassez pour faire pénétrer la texture beurrée — la fibre s’assouplit, le feutrage se dissout.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eBrossage\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eLaissez poser \u003cstrong\u003e5 minutes\u003c\/strong\u003e, brossez si nécessaire, puis rincez abondamment.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"aqr-proto-acc\"\u003e\n\u003csummary class=\"aqr-proto-summary\"\u003e\u003cspan class=\"aqr-proto-title\"\u003eBooster d’intégration shampoing \u0026amp; masque\u003c\/span\u003eEnrichir un soin existant\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\n\u003cdiv class=\"aqr-proto-body\"\u003e\n\u003col class=\"aqr-proto-steps\"\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eAjouter au shampoing\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eAjoutez \u003cstrong\u003e1 cuillère de Villanelle\u003c\/strong\u003e directement dans votre mélange de shampoing préféré.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eOu enrichir le masque\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eOu ajoutez-la dans votre \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e pour un effet ultra-démêlant et une douceur extrême dès la première étape.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"aqr-proto-step\"\u003e\n\u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"aqr-proto-step-title\"\u003eRésultat\u003c\/div\u003e\n\u003cdiv class=\"aqr-proto-step-desc\"\u003eEffet démêlant boosté + texture soyeuse dès le shampoing.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- BLOC 5 : ASSOCIATIONS \u0026 RACES --\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\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;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/h2\u003e\n\u003c!-- Villanelle au cœur + compléments modulaires Si.. → Alors --\u003e\n\u003cdiv class=\"aqr-assoc\"\u003e\n\u003cp class=\"aqr-assoc-intro\"\u003e🤝 \u003cstrong\u003eSynergie parfaite\u003c\/strong\u003e avec \u003cstrong\u003eAquarosa Pro\u003c\/strong\u003e et \u003cstrong\u003e4Poodle\u003c\/strong\u003e (shampoings), et \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e (conditionnement). Villanelle s’intègre comme un véritable booster de routine.\u003c\/p\u003e\n\u003cdiv class=\"aqr-assoc-rules\"\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003efourrure double avec mue intense…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eApplication pure sur les amas, masser, brosser, rincer\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003etemps de séchage à raccourcir absolument…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eÉmulsion 1\/60 après le shampoing — effet 40 %\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eshampoing en cours, on enrichit le geste…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003e1 cuillère de Villanelle dans le mix shampoing\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003epeau réactive ou lésions…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003ePréférer Skincare Pro — puis Villanelle en finition\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-rule\"\u003e\n\u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003ecas extrême de feutrage…\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eVillanelle pure + 1 pression d’Huiles 4 Elements\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n\u003c!-- Races en pilules arrondies --\u003e\n\u003ch3 style=\"font-size: 13px; font-weight: 600; color: #1a1a1a; margin: 0 0 12px;\"\u003eLà où la Villanelle fait la différence :\u003c\/h3\u003e\n\u003cdiv class=\"aqr-races-mosaic\"\u003e\n\u003cspan class=\"aqr-race-tag\"\u003e🐺 Fourrures doubles \u003cspan\u003e(Bergers, Goldens, Spitz, Samoyèdes — gain de séchage)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e🐩 Fourrures frisées \u003cspan\u003e(Caniches, Bichons, Kerry Blue — souplesse et volume)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e🐱 Chats à poils longs \u003cspan\u003e(Maine Coon, Persans — démêlage précieux)\u003c\/span\u003e\u003c\/span\u003e \u003cspan class=\"aqr-race-tag\"\u003e🐶 Fourrures soyeuses \u003cspan\u003e(Yorkshire, Shih-Tzu, Afghans — anti-nœuds essentiel)\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp style=\"margin-top: 14px; font-size: 11px; color: #888; font-style: italic;\"\u003eLe partenaire idéal des fourrures exigeantes — et le grand allié du temps gagné.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\n\u003cdiv style=\"max-width: 1000px; margin: 0 auto; color: #1a1a1a; line-height: 1.6; font-family: inherit;\"\u003e\n\u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\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 +90% | Sans SLES, DEA, Paraben | Non testé sur les animaux | PEHD02 Recyclable\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\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\/34c8a1cc-3866-467f-803e-43945630c61f.jpg?v=1763633186"},{"product_id":"peach-blossom-edition-limitee-ete-2026","title":"PEACH BLOSSOM - Edition Limitée Eté 2026 format 5L","description":"\u003c!-- ============================================\n     SYSTÈME DE DESIGN — Affinage visuel\n     ============================================ --\u003e\n\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\n\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: 14px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e\n      \u003cstrong\u003ePEACH BLOSSOM — Summer Edition 2026\u003c\/strong\u003e est le shampoing de la saison : \u003cstrong\u003evolume maximal et douceur maximale\u003c\/strong\u003e. Le poil est ultra nourri tout en étant très volumineux, sans nœuds ni sécheresse — là où les autres shampoings volume échouent.\n    \u003c\/div\u003e\n    \u003cdiv style=\"font-size: 1.1em; margin-bottom: 14px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e\n      Idéal en salon comme en entretien hebdomadaire des chiens d'exposition, et parfait pour tous les poils doubles, frisés et complexes.\n    \u003c\/div\u003e\n    \u003cdiv style=\"font-size: 1.1em; margin-bottom: 14px; border-left: 3px solid #1d1d1f; padding-left: 15px;\"\u003e\n      Haute performance (\u003cstrong\u003e1:30\u003c\/strong\u003e), \u003cstrong\u003eSLES \u0026amp; DEA FREE\u003c\/strong\u003e. Sa formule évoluée aux extraits de pêche, abricot et coton transforme chaque lavage en un soin complet : nettoie avec précision, restitue volume et légèreté, améliore la peignabilité et donne au manteau une douceur visiblement saine et naturelle. \u003cstrong\u003eUn seul geste professionnel. Un résultat qu'on n'oublie pas.\u003c\/strong\u003e\n    \u003c\/div\u003e\n    \u003cdiv style=\"margin: 22px 0 10px; padding: 14px 18px; background: #fdf6ef; border: 1px solid #f0d9bf; border-radius: 12px; font-size: 13px; line-height: 1.55; color: #1d1d1f;\"\u003e🍑 \u003cstrong\u003eÉdition limitée\u003c\/strong\u003e — disponible uniquement d'avril à septembre 2026. Cette formule ne sera ni reformulée, ni réintroduite : elle disparaîtra avec la saison. Ceux qui en tombent amoureux font des stocks.\u003c\/div\u003e\n\n    \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;\"\u003ePour qui est fait ce produit ?\u003c\/h2\u003e\n    \u003cp style=\"margin-bottom: 20px; font-size: 14px;\"\u003ePensé pour le travail quotidien en salon — journées intenses, pelages imparfaits, exigences élevées. Mais tout le monde y trouvera un réel intérêt, particulièrement pour les \u003cstrong\u003ecoupes ciseaux\u003c\/strong\u003e et les \u003cstrong\u003epelages post-hiver\u003c\/strong\u003e.\u003c\/p\u003e\n\n    \u003cdiv class=\"aqr-audience\"\u003e\n      \u003cdiv class=\"aqr-audience-grid\"\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eToiletteurs\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eÉleveurs\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eParticuliers\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eCompétiteurs\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-audience-card\"\u003e\n          \u003cdiv class=\"aqr-audience-icon\"\u003e\n            \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\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-audience-name\"\u003eHandlers\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \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\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 2 : EXPERTISE \u0026 RÉSULTATS --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #ffffff;\"\u003e\n    \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; Résultats\u003c\/h2\u003e\n    \u003cp style=\"font-size: 14px; margin-bottom: 15px;\"\u003eAprès les mois de froid, d'humidité et de stress cutané, les pelages arrivent au salon avec une demande silencieuse : nettoyage en profondeur, respect, légèreté. Peach Blossom a été formulé pour \u003cstrong\u003eréactiver le manteau, restituer de l'aérien, de l'élasticité et du volume\u003c\/strong\u003e — sans agresser. Un geste unique qui simplifie le travail et améliore le résultat final. Convient parfaitement aux bains fréquents et aux manteaux stressés.\u003c\/p\u003e\n    \u003cdiv class=\"aqr-benefits\" style=\"margin-top: 20px;\"\u003e\n      \u003cdiv class=\"aqr-benefits-grid\"\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 0;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 3 L21 8 L12 13 L3 8 Z\"\u003e\u003c\/path\u003e\u003cpath d=\"M3 13 L12 18 L21 13\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eVolume + Douceur en une étape\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eL'équilibre rare — volume de coupe sans texture rêche, douceur sans perdre le contrôle.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 1;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"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\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003ePoil travaillable\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eBase parfaite, propre, soulevée, prête à être sculptée — idéal coupe aux ciseaux.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 2;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 3 L20 6 L20 12 Q20 18 12 22 Q4 18 4 12 L4 6 Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003ePeau sensible\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eSLES \u0026amp; DEA FREE — nettoyage efficace et délicat, parfait pour les peaux sensibles et les bains fréquents.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 3;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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 8 Q9 5 15 8 T21 8\"\u003e\u003c\/path\u003e\u003cpath d=\"M3 12 Q9 9 15 12 T21 12\"\u003e\u003c\/path\u003e\u003cpath d=\"M3 16 Q9 13 15 16 T21 16\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003ePeignabilité améliorée\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eLe manteau ressort aérien, gérable et incroyablement facile à travailler.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 4;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M8.5 15.5 L15.5 8.5\"\u003e\u003c\/path\u003e\u003ccircle cx=\"9.5\" cy=\"9.5\" r=\"1.3\" fill=\"currentColor\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"14.5\" cy=\"14.5\" r=\"1.3\" fill=\"currentColor\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eUltra économique\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eDilution 1\/30 — haute performance, rentabilité maximale en salon. Jusqu'à 150 L de produit prêt à l'emploi.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 5;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M8 12 L11 15 L16 9\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eEffet all-in\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eNettoyage + conditioning en un seul geste professionnel : moins d'étapes, moins de corrections.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-benefit-card\" style=\"--i: 6;\"\u003e\n          \u003cdiv class=\"aqr-benefit-corner\"\u003e\u003c\/div\u003e\n          \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=\"4\"\u003e\u003c\/circle\u003e\u003cpath d=\"M12 2 L12 5 M12 19 L12 22 M2 12 L5 12 M19 12 L22 12 M5 5 L7 7 M17 17 L19 19 M19 5 L17 7 M7 17 L5 19\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n          \u003cdiv class=\"aqr-benefit-content\"\u003e\n            \u003cdiv class=\"aqr-benefit-title\"\u003eParfum solaire \u0026amp; persistant\u003c\/div\u003e\n            \u003cdiv class=\"aqr-benefit-desc\"\u003eUne note raffinée et ensoleillée qui reste dans la mémoire du client — et de son chien.\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \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\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC RADAR (deplace sous Expertise) --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n    \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;\"\u003eMieux comprendre les actions de Peach Blossom\u003c\/h2\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eLe détail de ses performances cosmétologiques, note par note.\u003c\/p\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:16px 28px;overflow:visible;\"\u003e\n        \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 { 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\n\n  \u003cscript\u003e\n  (function() {\n    var PRODUCT = { criteria: [ { label: \"Volume\", value: 5 }, { label: \"Hydratation\", value: 4 }, { label: \"Douceur\", value: 5 }, { label: \"Peau sensible\", value: 5 } ] };\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\n\n  \u003c!-- BLOC 3 : COMPOSITION (CARTOGRAPHIE JS actifs Peach Blossom - fiabilisee) --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #fff;\"\u003e\n    \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 de Peach Blossom : actifs naturels \u0026amp; action ciblée\u003c\/h2\u003e\n    \u003cp style=\"font-size: 13px; margin-bottom: 20px;\"\u003eUne formulation concentrée aux extraits de \u003cstrong\u003epêche, abricot et coton\u003c\/strong\u003e — sans SLES, sans DEA, sans colorants. Chaque actif et son action ciblée sur la peau et le poil.\u003c\/p\u003e\n\n    \u003c!-- CARTOGRAPHIE --\u003e\n    \u003cdiv id=\"aqr-carto\" style=\"background:#fff;border:1px solid #e5e5e5;padding:18px;\"\u003e\n      \u003cdiv class=\"aqr-grid\"\u003e\n\n        \u003cdiv class=\"aqr-col-list\"\u003e\n          \u003cul class=\"aqr-list\" id=\"aqrList\"\u003e\u003c\/ul\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"aqr-col-schema\"\u003e\n          \u003cdiv class=\"aqr-schema-wrap\" id=\"aqrSchemaWrap\"\u003e\n            \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 Peach Blossom\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/schema-peau-poil.webp?v=1779972667\"\u003e\n            \u003csvg class=\"aqr-overlay\" id=\"aqrOverlay\" preserveaspectratio=\"none\" viewbox=\"0 0 100 225\"\u003e\u003c\/svg\u003e\n            \u003cdiv class=\"aqr-connectors\" id=\"aqrConnectors\"\u003e\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"aqr-col-info\"\u003e\n          \u003cdiv class=\"aqr-info\" id=\"aqrInfo\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n    \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\n\n    \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:'vitamines', label:'Vitamines A · C · E', latin:'Pêche \u0026 Abricot', family:'bio',\n          desc:\"Trio antioxydant majeur des extraits de pêche et d’abricot : provitamine A (β-carotène), vitamine C et vitamine E neutralisent les radicaux libres et soutiennent l’éclat naturel du pelage.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Protection antioxydante\", benefit:\"Préservent la fibre du stress oxydatif (UV, pollution) et entretiennent sa vitalité et son mouvement.\" },\n            { anchor:'epiderme', action:\"Éclat \u0026 luminosité\", benefit:\"La vitamine C ravive l’éclat tandis que la vitamine E protège le film cutané superficiel.\" }\n          ]\n        },\n        {\n          id:'polysaccharides', label:'Polysaccharides de fruit', latin:'Sucres naturels de pulpe', family:'aqua',\n          desc:\"Sucres végétaux (polysaccharides) issus de la pulpe de pêche et d’abricot, reconnus pour leurs propriétés humectantes : ils captent et retiennent l’eau au cœur de la fibre.\",\n          targets: [\n            { anchor:'cuticule', action:\"Rétention d’hydratation\", benefit:\"Forment un voile hydrophile qui maintient l’eau dans la fibre — souplesse, légèreté et mouvement.\" },\n            { anchor:'film_hydro', action:\"Confort hydrolipidique\", benefit:\"Renforcent la teneur en eau de la surface cutanée sans jamais l’alourdir.\" }\n          ]\n        },\n        {\n          id:'acidesgras', label:'Acides gras d’abricot', latin:'Acides oléique \u0026 linoléique', family:'botanic',\n          desc:\"L’amande d’abricot est riche en acides gras insaturés (oléique, linoléique), émollients et nourrissants, proches des lipides naturels du pelage.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Nutrition \u0026 mouvement\", benefit:\"Nourrissent la fibre sans l’alourdir : le poil retrouve présence, mouvement et matière travaillable.\" },\n            { anchor:'epiderme', action:\"Émollience\", benefit:\"Adoucissent et assouplissent la couche superficielle de la peau.\" }\n          ]\n        },\n        {\n          id:'proteines', label:'Protéines \u0026 acides aminés de coton', latin:'Gossypium herbaceum', family:'cond',\n          desc:\"La graine de coton apporte protéines et acides aminés ayant une affinité naturelle avec la kératine du poil : ils se fixent là où la fibre est fragilisée.\",\n          targets: [\n            { anchor:'cuticule', action:\"Lissage de la cuticule\", benefit:\"Comblent les écailles soulevées : peignabilité nettement améliorée et toucher lisse.\" },\n            { anchor:'tige_poil', action:\"Renfort de la fibre\", benefit:\"Se lient à la kératine pour discipliner et renforcer le poil.\" }\n          ]\n        },\n        {\n          id:'linoleique', label:'Acide linoléique de coton', latin:'Oméga-6 (huile de coton)', family:'cond',\n          desc:\"L’huile de coton est l’une des plus riches en acide linoléique (oméga-6), lipide clé de réparation de la barrière cutanée et capillaire.\",\n          targets: [\n            { anchor:'film_hydro', action:\"Restauration lipidique\", benefit:\"Recompose le film protecteur des manteaux stressés ou déshydratés par l’hiver.\" },\n            { anchor:'epiderme', action:\"Apaisement\", benefit:\"Soutient la barrière cutanée et limite la perte en eau.\" }\n          ]\n        },\n        {\n          id:'filmcoton', label:'Film conditionnant de coton', latin:'Le grand équilibreur', family:'cond',\n          desc:\"Le coton est le « grand équilibreur » : il dépose un film conditionnant léger et respirant qui met de l’ordre sans alourdir.\",\n          targets: [\n            { anchor:'tige_poil', action:\"Douceur \u0026 anti-statique\", benefit:\"Discipline le poil et apporte douceur, ordre et un fini élégant, prêt pour la coupe.\" },\n            { anchor:'cuticule', action:\"Effet conditionnant\", benefit:\"Lisse la surface pour un manteau brillant, fluide et facile à travailler.\" }\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\n\n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 4 : PROTOCOLES --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n    \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;\"\u003eProtocoles \u0026amp; Suggestions d'utilisations\u003c\/h2\u003e\n    \u003c!-- DILUTION P4 : 3 cartes sobres (Ratio · Rendement · Équivalences animées) --\u003e\n    \u003cdiv class=\"aqr-dilution\" style=\"margin-bottom: 12px;\"\u003e\n      \u003cdiv class=\"aqr-dilution-eyebrow\"\u003eDilution de référence\u003c\/div\u003e\n\n      \u003cdiv class=\"aqr-dilution-grid\"\u003e\n\n        \u003c!-- CARTE 1 : Ratio --\u003e\n        \u003cdiv class=\"aqr-dilution-cell\"\u003e\n          \u003cdiv class=\"aqr-dilution-cell-label\"\u003eRatio\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-value\"\u003e1\u003cspan class=\"aqr-dilution-slash\"\u003e\/\u003c\/span\u003e30\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-note\"\u003eUne part de shampoing\u003cbr\u003epour 30 parts d'eau\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003c!-- CARTE 2 : Rendement --\u003e\n        \u003cdiv class=\"aqr-dilution-cell\"\u003e\n          \u003cdiv class=\"aqr-dilution-cell-label\"\u003eRendement\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n            \u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e250 mL\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 7,5 L\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e1 L\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 30 L\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-rend-row\"\u003e\n\u003cstrong\u003e5 L\u003c\/strong\u003e \u003cspan class=\"aqr-dilution-rend-arrow\"\u003e→\u003c\/span\u003e 150 L\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-note\"\u003eprêts à l'emploi\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003c!-- CARTE 3 : Équivalences animées --\u003e\n        \u003cdiv class=\"aqr-dilution-cell\"\u003e\n          \u003cdiv class=\"aqr-dilution-cell-label\"\u003ePour \u003cspan id=\"aqrCycleTarget\" class=\"aqr-dilution-cycle-target\"\u003e750 mL\u003c\/span\u003e de produit fini\u003c\/div\u003e\n          \u003cdiv class=\"aqr-dilution-cell-rows\"\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cstrong id=\"aqrCycleMl\"\u003e25\u003c\/strong\u003e mL \u003cspan\u003een volume\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleG\"\u003e25\u003c\/strong\u003e g \u003cspan\u003een poids\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCycleSpoon\"\u003e1,5\u003c\/strong\u003e \u003cspan id=\"aqrCycleSpoonLabel\"\u003ecuillère à soupe\u003c\/span\u003e\n\u003c\/div\u003e\n            \u003cdiv class=\"aqr-dilution-eq-row\"\u003e\n\u003cspan class=\"aqr-dilution-eq-eq\"\u003e=\u003c\/span\u003e \u003cstrong id=\"aqrCyclePump\"\u003e1\u003c\/strong\u003e \u003cspan id=\"aqrCyclePumpLabel\"\u003epression de pompe\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \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\n\n    \u003cscript\u003e\n    (function(){\n      \/\/ Animation: cycle entre 750 mL \/ 1,5 L \/ 3 L (dilution 1\/30)\n      var cycles = [\n        { target: '750 mL', ml: '25',  g: '25',  spoon: '1,5', pump: '1' },\n        { target: '1,5 L',  ml: '50',  g: '50',  spoon: '3',   pump: '2' },\n        { target: '3 L',    ml: '100', g: '100', spoon: '6',   pump: '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 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\n      \u003cdetails class=\"aqr-proto-acc\" open\u003e\n        \u003csummary class=\"aqr-proto-summary\"\u003e\n          \u003cspan class=\"aqr-proto-title\"\u003eBain salon quotidien — volume \u0026amp; coupe ciseaux\u003c\/span\u003e\n          \u003cspan class=\"aqr-proto-plus\"\u003e\n            \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\n          \u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"aqr-proto-content\"\u003e\n          \u003cp class=\"aqr-proto-subtitle\"\u003eLe protocole de référence pour les journées chargées en salon\u003c\/p\u003e\n          \u003col class=\"aqr-proto-steps\"\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eDilution \u0026amp; application\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eDiluez Peach Blossom à \u003cstrong\u003e1\/30\u003c\/strong\u003e. Appliquez sur le poil mouillé, massez délicatement. Rincez.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eRenouvellement\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eRenouvelez le shampoing si nécessaire.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eFinition\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eFinalisez avec le \u003cstrong\u003econditionneur adapté au type de pelage\u003c\/strong\u003e pour fermer les écailles et sublimer le résultat — \u003cstrong\u003eVillanelle\u003c\/strong\u003e est particulièrement adapté.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eRésultat\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eLe poil est \u003cstrong\u003evolumineux, propre, conditionné et prêt pour la coupe\u003c\/strong\u003e — avec moins d'étapes et moins de corrections.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n          \u003c\/ol\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails class=\"aqr-proto-acc\"\u003e\n        \u003csummary class=\"aqr-proto-summary\"\u003e\n          \u003cspan class=\"aqr-proto-title\"\u003ePelages post-hiver — réactivation \u0026amp; légèreté retrouvée\u003c\/span\u003e\n          \u003cspan class=\"aqr-proto-plus\"\u003e\n            \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\n          \u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"aqr-proto-content\"\u003e\n          \u003cp class=\"aqr-proto-subtitle\"\u003ePour les manteaux fatigués, alourdis ou déshydratés par les mois froids\u003c\/p\u003e\n          \u003col class=\"aqr-proto-steps\"\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e01\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eMasque pré-bain\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003ePréparez avec le masque pré-bain \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e pour amplifier l'action dès la phase initiale.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e02\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003ePeach Blossom sur masque\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eAppliquez Peach Blossom dilué à \u003cstrong\u003e1\/30\u003c\/strong\u003e directement sur le masque, sans rinçage intermédiaire. Massez. Rincez.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e03\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eSecond shampoing enrichi\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eRenouvelez en ajoutant une petite cuillère à café de \u003cstrong\u003eVillanelle\u003c\/strong\u003e dans le second shampoing.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e04\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eFinition\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eFinalisez avec le conditionneur \u003cstrong\u003eVillanelle\u003c\/strong\u003e, que vous rincerez bien.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n            \u003cli class=\"aqr-proto-step\"\u003e\n              \u003cspan class=\"aqr-proto-step-marker\"\u003e★\u003c\/span\u003e\n              \u003cdiv class=\"aqr-proto-step-body\"\u003e\n                \u003cdiv class=\"aqr-proto-step-title\"\u003eRésultat\u003c\/div\u003e\n                \u003cdiv class=\"aqr-proto-step-desc\"\u003eLe manteau retrouve aérien, élasticité et volume — comme si l'hiver n'avait jamais existé.\u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/li\u003e\n          \u003c\/ol\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \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\n    \n  \u003c\/div\u003e\n\n  \u003c!-- BLOC 5 : ASSOCIATIONS \u0026 RACES --\u003e\n  \u003cdiv style=\"padding: 12px 20px 14px; background-color: #f6f6f6;\"\u003e\n    \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;\"\u003eAssociations Recommandées \u0026amp; Races\u003c\/h2\u003e\n    \u003c!-- Peach Blossom au cœur + compléments modulaires Si... → Alors --\u003e\n    \u003cdiv class=\"aqr-assoc\"\u003e\n      \u003cp class=\"aqr-assoc-intro\"\u003eCompatible avec toute la gamme Special One. \u003cstrong\u003eNos alliances préférées :\u003c\/strong\u003e\u003c\/p\u003e\n\n      \u003cdiv class=\"aqr-assoc-rules\"\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eun masque pré-bain est souhaité…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eBio Energy Plus\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eune finition s'impose…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eHydrating Cream · Villanelle\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"aqr-assoc-rule\"\u003e\n          \u003cdiv class=\"aqr-assoc-if\"\u003e\n\u003cspan class=\"aqr-assoc-if-tag\"\u003eSI\u003c\/span\u003e \u003cspan\u003eun effet volume est recherché…\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"aqr-assoc-then\"\u003e\n\u003cspan class=\"aqr-assoc-then-arrow\"\u003e→\u003c\/span\u003e \u003cstrong\u003eAbsolute 4Poodle · Style 360\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \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\n\n    \u003c!-- Races en pilules arrondies --\u003e\n    \u003ch3 style=\"font-size: 13px; font-weight: 600; color: #1a1a1a; margin: 0 0 12px;\"\u003eLà où Peach Blossom fait vraiment la différence :\u003c\/h3\u003e\n    \u003cdiv class=\"aqr-races-mosaic\"\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐺 Spitz, Samoyèdes \u0026amp; primitifs \u003cspan\u003e(volume, texture souple, zéro pesanteur)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🐩 Fourrures frisées \u003cspan\u003e(Caniches, Bichons Frisés)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🧸 Poils doubles complexes \u003cspan\u003e(Bouvier Bernois, Berger Australien, Terre-Neuve, Berger Allemand)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e🌬️ Fourrures mi-longues \u003cspan\u003e(volume doux, sous contrôle)\u003c\/span\u003e\u003c\/span\u003e\n      \u003cspan class=\"aqr-race-tag\"\u003e✂️ Coupe ciseaux \u003cspan\u003e(base propre, soulevée, prête à sculpter)\u003c\/span\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cp style=\"margin-top: 14px; font-size: 11px; color: #888; font-style: italic;\"\u003eListe non exhaustive — idéal pour toutes les fourrures recherchant volume et légèreté.\u003c\/p\u003e\n\n    \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\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 +90% | Sans SLES, DEA, Paraben, Silicone | Non testé sur les animaux | PEHD02 Recyclable\u003c\/p\u003e\n      \u003cp style=\"font-size: 11px; color: #c0392b; font-weight: 600; margin-top: 8px; text-transform: uppercase;\"\u003e⏳ Édition limitée — disponible jusqu'au 31 août 2026 uniquement, dans la limite des stocks disponibles\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Endemik Sas","offers":[{"title":"Default Title","offer_id":57896607842649,"sku":"(447)","price":169.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6305\/9635\/files\/Peach_Blossom_Special_One.jpg?v=1778064993"}],"url":"https:\/\/petdesign.fr\/collections\/les-cosmetiques-indispensables.oembed","provider":"Petdesign.fr","version":"1.0","type":"link"}