Biolux Therapeutics — Guide des protocoles
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
–navy: #0A1628;
–navy2: #0D1F38;
–blue: #1B5FAD;
–teal: #00C2A8;
–ice: #F5F9FF;
–gray-bg: #F0F2F5;
–gray-border: #DDE3ED;
–gray-mid: #8896AA;
–text: #1A2540;
–text-soft: #5A6A82;
–white: #ffffff;
–jade: #A6D4BC;
–jade-dark: #1a4a35;
–blue-med: #4FC4DC;
–blue-med-dark: #0a3a45;
–orange: #FF7309;
–rose: #F4A7C3;
–rose-dark: #6b1a38;
–font-display: ‘Oswald’, sans-serif;
–font-body: ‘Inter’, sans-serif;
}
body {
font-family: var(–font-body);
background: var(–navy);
color: var(–text);
min-height: 100vh;
}
/* ── HEADER ── */
header {
background: var(–navy);
padding: 0 40px;
display: flex;
align-items: center;
justify-content: space-between;
height: 64px;
border-bottom: 1px solid rgba(255,255,255,0.08);
position: sticky;
top: 0;
z-index: 100;
}
.logo {
font-family: var(–font-display);
font-size: 20px;
font-weight: 600;
color: var(–white);
letter-spacing: 0.04em;
}
.logo span { color: var(–teal); }
.header-right { display: flex; align-items: center; gap: 16px; }
.badge-draft {
font-size: 11px;
font-weight: 500;
color: var(–teal);
border: 1px solid rgba(0,194,168,0.3);
border-radius: 20px;
padding: 3px 12px;
letter-spacing: 0.05em;
}
.lang-toggle {
display: flex;
border: 1px solid rgba(255,255,255,0.15);
border-radius: 6px;
overflow: hidden;
}
.lb {
padding: 5px 16px;
font-size: 12px;
font-weight: 500;
background: transparent;
border: none;
cursor: pointer;
color: rgba(255,255,255,0.5);
font-family: var(–font-body);
transition: all .15s;
}
.lb.active { background: rgba(255,255,255,0.12); color: var(–white); }
/* ── HERO ── */
.hero {
background: var(–navy);
padding: 48px 40px 40px;
border-bottom: 1px solid rgba(255,255,255,0.06);
}
.hero-label {
font-size: 11px;
color: var(–teal);
text-transform: uppercase;
letter-spacing: 0.1em;
font-weight: 500;
margin-bottom: 12px;
}
.hero-title {
font-family: var(–font-display);
font-size: 42px;
font-weight: 600;
color: var(–white);
line-height: 1.1;
letter-spacing: 0.01em;
margin-bottom: 10px;
}
.hero-title em { color: var(–teal); font-style: normal; }
.hero-sub {
font-size: 15px;
color: rgba(255,255,255,0.5);
max-width: 560px;
line-height: 1.6;
margin-bottom: 28px;
}
.hero-stats {
display: flex;
gap: 32px;
flex-wrap: wrap;
}
.stat { }
.stat-val {
font-family: var(–font-display);
font-size: 28px;
font-weight: 600;
color: var(–teal);
line-height: 1;
}
.stat-lbl {
font-size: 11px;
color: rgba(255,255,255,0.4);
margin-top: 3px;
text-transform: uppercase;
letter-spacing: 0.05em;
}
/* ── MAIN LAYOUT ── */
.layout {
display: grid;
grid-template-columns: 240px 1fr;
min-height: calc(100vh – 64px – 160px);
background: var(–ice);
}
/* ── SIDEBAR ── */
.sidebar {
background: var(–white);
border-right: 1px solid var(–gray-border);
padding: 24px 0;
position: sticky;
top: 64px;
height: calc(100vh – 64px);
overflow-y: auto;
}
.sidebar-label {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(–gray-mid);
font-weight: 500;
padding: 0 20px;
margin-bottom: 8px;
}
.mod-btn {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
padding: 10px 20px;
background: transparent;
border: none;
cursor: pointer;
font-family: var(–font-body);
font-size: 13px;
font-weight: 500;
color: var(–text-soft);
text-align: left;
border-left: 3px solid transparent;
transition: all .15s;
}
.mod-btn:hover { background: var(–ice); color: var(–text); }
.mod-btn.active { background: var(–ice); color: var(–text); border-left-color: currentColor; }
.mod-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.sidebar-divider { height: 1px; background: var(–gray-border); margin: 12px 0; }
/* ── CONTENT ── */
.content { padding: 32px 40px; }
.module-header {
margin-bottom: 24px;
padding-bottom: 20px;
border-bottom: 1px solid var(–gray-border);
}
.module-eyebrow {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.1em;
font-weight: 500;
margin-bottom: 6px;
}
.module-title {
font-family: var(–font-display);
font-size: 30px;
font-weight: 600;
color: var(–navy);
letter-spacing: 0.01em;
margin-bottom: 8px;
}
.module-intro {
font-size: 14px;
color: var(–text-soft);
line-height: 1.65;
max-width: 680px;
margin-bottom: 12px;
}
.module-reco {
background: var(–ice);
border: 1px solid var(–gray-border);
border-radius: 8px;
padding: 10px 14px;
font-size: 12px;
color: var(–text-soft);
line-height: 1.6;
display: flex;
gap: 8px;
align-items: flex-start;
}
.reco-icon { font-size: 14px; flex-shrink: 0; margin-top: 1px; }
/* ── PROTOCOL TABS ── */
.proto-tabs {
display: flex;
gap: 6px;
flex-wrap: wrap;
margin-bottom: 24px;
}
.proto-tab {
padding: 6px 16px;
border-radius: 20px;
font-size: 13px;
font-weight: 500;
cursor: pointer;
border: 1.5px solid var(–gray-border);
background: var(–white);
color: var(–text-soft);
font-family: var(–font-body);
transition: all .15s;
display: flex;
align-items: center;
gap: 6px;
}
.proto-tab:hover { border-color: #aab; color: var(–text); }
.proto-tab.active { border-color: transparent; color: inherit; }
.proto-tab .pd { width: 7px; height: 7px; border-radius: 50%; }
/* ── PROTOCOL CARD ── */
.proto-card {
background: var(–white);
border: 1px solid var(–gray-border);
border-radius: 14px;
overflow: hidden;
animation: fadeUp .2s ease;
}
@keyframes fadeUp {
from { opacity: 0; transform: translateY(6px); }
to { opacity: 1; transform: none; }
}
.card-header {
padding: 22px 28px 18px;
border-bottom: 1px solid var(–gray-border);
display: flex;
align-items: flex-start;
gap: 14px;
}
.card-accent { width: 5px; border-radius: 3px; flex-shrink: 0; align-self: stretch; }
.card-title {
font-family: var(–font-display);
font-size: 26px;
font-weight: 600;
color: var(–navy);
letter-spacing: 0.01em;
margin-bottom: 4px;
}
.card-badge {
display: inline-block;
font-size: 10px;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.07em;
padding: 3px 10px;
border-radius: 4px;
}
.card-desc {
padding: 18px 28px;
font-size: 14px;
line-height: 1.7;
color: var(–text-soft);
border-bottom: 1px solid var(–gray-border);
}
.card-specs {
display: grid;
grid-template-columns: 1fr 1fr;
border-bottom: 1px solid var(–gray-border);
}
.spec {
padding: 16px 24px;
border-right: 1px solid var(–gray-border);
}
.spec:last-child { border-right: none; }
.spec-label {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(–gray-mid);
font-weight: 500;
margin-bottom: 6px;
}
.spec-value {
font-family: var(–font-display);
font-size: 22px;
font-weight: 600;
line-height: 1.1;
margin-bottom: 3px;
}
.spec-unit { font-size: 11px; color: var(–text-soft); }
/* ── FREQUENCY BLOCK ── */
.freq-block { padding: 20px 28px; }
.freq-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 6px;
}
.freq-label {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(–gray-mid);
font-weight: 500;
}
.freq-total {
font-size: 11px;
font-weight: 600;
padding: 2px 10px;
border-radius: 10px;
}
.freq-summary {
font-size: 13px;
color: var(–text-soft);
margin-bottom: 16px;
line-height: 1.5;
}
.freq-summary strong { color: var(–text); }
/* ── WEEK CALENDAR ── */
.cal-week { width: 100%; }
.week-row {
display: flex;
gap: 4px;
margin-bottom: 5px;
align-items: center;
}
.week-lbl {
font-size: 10px;
color: var(–gray-mid);
width: 52px;
flex-shrink: 0;
text-transform: uppercase;
letter-spacing: 0.03em;
}
.day-cell {
flex: 1;
height: 38px;
border-radius: 6px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border: 1px solid var(–gray-border);
background: var(–ice);
}
.day-cell .dn {
font-size: 9px;
color: var(–gray-mid);
text-transform: uppercase;
line-height: 1;
margin-bottom: 2px;
}
.day-cell .dd {
font-size: 12px;
font-weight: 400;
color: var(–text-soft);
line-height: 1;
}
.day-cell.on { border-width: 1.5px; }
.day-cell.on .dn { opacity: 0.7; }
.day-cell.on .dd { font-weight: 700; font-size: 13px; }
/* ── MONTH CALENDAR ── */
.cal-months { display: flex; flex-direction: column; gap: 20px; }
.month-name {
font-size: 12px;
font-weight: 500;
color: var(–text-soft);
margin-bottom: 6px;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.month-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.mh {
text-align: center;
font-size: 9px;
text-transform: uppercase;
color: var(–gray-mid);
padding: 2px 0 5px;
letter-spacing: 0.03em;
font-weight: 500;
}
.mc {
aspect-ratio: 1;
border-radius: 5px;
display: flex;
align-items: center;
justify-content: center;
font-size: 11px;
color: var(–text-soft);
background: var(–ice);
border: 1px solid transparent;
}
.mc.on { border-width: 1.5px; font-weight: 700; }
.mc.empty { background: transparent; }
/* ── ON DEMAND ── */
.od-row { display: flex; gap: 5px; margin-bottom: 12px; }
.od-day {
flex: 1;
height: 42px;
border-radius: 6px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border: 1.5px solid;
}
.od-day .dn { font-size: 9px; text-transform: uppercase; opacity: 0.65; line-height: 1; margin-bottom: 3px; }
.od-check { font-size: 14px; font-weight: 700; }
.emergency-box {
border-radius: 8px;
padding: 12px 16px;
border-left: 3px solid;
}
/* ── LEGEND ── */
.legend { display: flex; gap: 16px; margin-top: 12px; flex-wrap: wrap; }
.leg-item { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(–text-soft); }
.leg-sq { width: 11px; height: 11px; border-radius: 3px; }
/* ── FOOTER ── */
footer {
background: var(–navy);
padding: 24px 40px;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 12px;
border-top: 1px solid rgba(255,255,255,0.06);
}
.footer-logo {
font-family: var(–font-display);
font-size: 16px;
font-weight: 600;
color: rgba(255,255,255,0.4);
letter-spacing: 0.04em;
}
.footer-logo span { color: var(–teal); }
.footer-note { font-size: 11px; color: rgba(255,255,255,0.25); }
@media (max-width: 768px) {
.layout { grid-template-columns: 1fr; }
.sidebar { position: static; height: auto; display: flex; gap: 6px; overflow-x: auto; padding: 12px 16px; flex-wrap: nowrap; border-right: none; border-bottom: 1px solid var(–gray-border); }
.mod-btn { white-space: nowrap; border-left: none; border-bottom: 2px solid transparent; padding: 8px 12px; border-radius: 20px; font-size: 12px; }
.mod-btn.active { background: var(–ice); border-bottom-color: currentColor; border-left-color: transparent; }
.sidebar-label, .sidebar-divider { display: none; }
.hero { padding: 28px 20px 24px; }
.hero-title { font-size: 28px; }
.content { padding: 20px 16px; }
header { padding: 0 16px; }
.logo { font-size: 16px; }
.card-header { padding: 16px 18px; }
.card-desc { padding: 14px 18px; }
.card-specs { grid-template-columns: 1fr 1fr; }
.spec { padding: 12px 16px; }
.freq-block { padding: 16px 18px; }
}
Manuel utilisateur — Guide des protocoles
32 protocolesvalidés cliniquement
Chaque protocole repose sur des études publiées et des validations cliniques menées en collaboration avec l’Institut des Neurosciences de Montpellier (INM-CNRS-Inserm).
const MONTHS_FR = [‘Janvier’,’Février’,’Mars’,’Avril’,’Mai’,’Juin’,’Juillet’,’Août’,’Septembre’,’Octobre’,’Novembre’,’Décembre’];
const MONTHS_EN = [‘January’,’February’,’March’,’April’,’May’,’June’,’July’,’August’,’September’,’October’,’November’,’December’];
const DAYS_FR = [‘L’,’M’,’M’,’J’,’V’,’S’,’D’];
const DAYS_EN = [‘M’,’T’,’W’,’T’,’F’,’S’,’S’];
const MONTH_DAYS = [31,28,31,30,31,30,31,31,30,31,30,31];
const DATA = {
painkiller: {
color: ‘#FF7309’, tc: ‘#fff’,
label_fr: ‘Anti-douleur’, label_en: ‘Painkiller’,
title_fr: ‘Anti-douleur’, title_en: ‘Pain Management’,
eyebrow_fr: ‘LightMotion · Soins d\’urgence’, eyebrow_en: ‘LightMotion · Emergency Care’,
intro_fr: ‘La photomodulation soulage la douleur en activant le transfert d\’oxygène dans le flux sanguin, réduisant l\’inflammation et le stress oxydatif. Elle agit de manière non thermique, en activant ou inhibant les cellules selon les paramètres choisis.’,
intro_en: ‘Photomodulation relieves pain by activating the transfer of oxygen into the bloodstream, thereby reducing inflammation and oxidative stress. It works non-thermally through photomodulation, activating or inhibiting cells according to the chosen parameters.’,
reco_fr: ‘Ne pas appliquer sur des plaies ouvertes. Attendre 24h après une opération avant de commencer. Peut être répété pour couvrir toute la zone traitée.’,
reco_en: ‘Do not apply to open wounds. Wait at least 24 hours after surgery before starting. The protocol can be repeated to cover the entire treated area.’,
protocols: [
{ id:’pain’,
name_fr:’Douleur’, name_en:’Pain’,
desc_fr:’Le protocole Douleur vise à réduire instantanément la sensation de douleur. Il propose un traitement basé sur deux longueurs d\’onde — lumière rouge et proche infrarouge — pour leurs propriétés analgésiques. À utiliser dès l\’apparition d\’une douleur intense, avant tout autre traitement.’,
desc_en:’The Pain protocol aims to instantly reduce the sensation of pain. It offers a treatment based on two wavelengths — red light and near infrared light — for their analgesic properties. Use as soon as intense pain appears and before any other treatment.’,
dur:’1\’20’, dist:’0 cm’, view:’ondemand’,
sum_fr:’Protocole
d\’urgence — répétable dès l\’apparition de la douleur’,
sum_en:’
Emergency protocol — repeatable as soon as pain appears’ },
{ id:’trauma’,
name_fr:’Coups & chocs’, name_en:’Trauma’,
desc_fr:’La longueur d\’onde rouge à 633 nm est utilisée à pleine puissance pour apporter la dose nécessaire à la réparation du derme en un temps court. Ce protocole doit être appliqué immédiatement après le traumatisme.’,
desc_en:’The red wavelength at 633 nm is used at full power to provide the dose required to repair the entire dermis in a short time. This protocol must be applied immediately after the trauma.’,
dur:’3\’00’, dist:’1 cm’, view:’week’, spw:7, weeks:2, sessdays:[0,1,2,3,4,5,6],
sum_fr:’
14 séances — tous les jours pendant
2 semaines ‘,
sum_en:’
14 sessions — every day for
2 weeks ‘ },
{ id:’oedema’,
name_fr:’Œdème’, name_en:’Oedema’,
desc_fr:’Le protocole utilise une combinaison de longueurs d\’onde rouge et proche infrarouge pour agir localement et en profondeur sur les processus inflammatoires. Il régule la vascularisation et module la production de facteurs pro-inflammatoires.’,
desc_en:’The protocol uses a combination of red and near-infrared wavelengths to act locally and in-depth on inflammatory processes. It regulates vascularisation and modulates the production of pro-inflammatory factors.’,
dur:’3\’00’, dist:’1 cm’, view:’week’, spw:4, weeks:3, sessdays:[0,2,4,6],
sum_fr:’
4 séances/semaine — pendant
3 semaines ‘,
sum_en:’
4 sessions/week — for
3 weeks ‘ },
{ id:’arthrosis’,
name_fr:’Arthrose’, name_en:’Arthrosis’,
desc_fr:’Le protocole combine lumière rouge et proche infrarouge à différentes fréquences et intensités. Il associe soulagement local de la douleur et régulation des protéases et cytokines pro-inflammatoires dysrégulées dans l\’arthrose.’,
desc_en:’The protocol uses a combination of red and near-infrared wavelengths at different frequencies. Combines local pain relief with regulation of proteases and pro-inflammatory cytokines dysregulated in osteoarthritis.’,
dur:’2\’00’, dist:’0 cm’, view:’week’, spw:7, weeks:4, sessdays:[0,1,2,3,4,5,6],
sum_fr:’
7 séances/semaine — pendant
1 mois ‘,
sum_en:’
7 sessions/week — for
1 month ‘ },
{ id:’bugbite’,
name_fr:’Piqûre insecte’, name_en:’Bug bite’,
desc_fr:’Ce protocole comprend 2 phases de traitement distinctes utilisant les longueurs d\’onde rouge et proche infrarouge séparément puis en combinaison. Objectif : soulager la douleur, limiter les effets inflammatoires et réparer les tissus endommagés.’,
desc_en:’This protocol comprises 2 distinct treatment phases using red and near-infrared wavelengths separately and in combination. Aim: instantly relieve pain, limit inflammatory effects and repair damaged tissue.’,
dur:’4\’20’, dist:’1 cm’, view:’ondemand’,
sum_fr:’Protocole
à la demande — répétable autant que nécessaire’,
sum_en:’
On-demand protocol — repeatable as needed’ }
]
},
skin_treatment: {
color: ‘#4FC4DC’, tc: ‘#0a3a45’,
label_fr: ‘Traitement peau’, label_en: ‘Skin treatments’,
title_fr: ‘Traitement peau’, title_en: ‘Skin Treatments’,
eyebrow_fr: ‘Biolux · DermaCare Médical’, eyebrow_en: ‘Biolux · DermaCare Medical’,
intro_fr: ‘La photomodulation est très efficace dans le traitement des lésions cutanées. La recherche Biolux a mis en évidence l\’interaction entre le nerf et la peau : traiter le nerf traite les problèmes cutanés, et traiter la peau régule l\’information nerveuse.’,
intro_en: ‘Photomodulation is highly effective in treating skin lesions. Biolux research has highlighted the interaction between the nerve and the skin: treating the nerve treats skin problems and treating the skin regulates nerve information.’,
reco_fr: ‘Utiliser des lunettes de protection contre la lumière bleue. Ne pas utiliser si vous prenez des substances photosensibles. Pause d\’1 mois avant tout autre traitement.’,
reco_en: ‘Use safety goggles to avoid eyes overexposure to blue light. Do not use if you are being treated with photosensitive substances. Take a 1-month break before any other treatment.’,
protocols: [
{ id:’healing’,
name_fr:’Cicatrisation’, name_en:’Healing’,
desc_fr:’Le protocole de cicatrisation facilite la guérison post-opératoire, limite les effets imprévisibles (rougeurs, aspects disgracieux de la cicatrice) et réduit la probabilité de complications. Traitement spécifique en 3 phases : lumière jaune, verte et rouge.’,
desc_en:’The healing protocol facilitates post-operative healing, limits unpredictable effects (visible redness or unsightly scars) and reduces the likelihood of complications. Specific 3-phase treatment using yellow, green and red light.’,
dur:’15\’00’, dist:’1 cm’, view:’week’, spw:3, weeks:4, sessdays:[0,2,4],
sum_fr:’
3 séances/semaine — lundi, mercredi, vendredi pendant
4 semaines ‘,
sum_en:’
3 sessions/week — monday, wednesday, friday for
4 weeks ‘ },
{ id:’flashacne’,
name_fr:’Acné flash’, name_en:’Flash acne’,
desc_fr:’Le protocole utilise lumière bleue et proche infrarouge. Son effet bactéricide régule la croissance bactérienne anormale et draine le pus. Efficace sur l\’acné légère à modérée. Peut être combiné avec le protocole Acné Vulgaris selon le diagnostic.’,
desc_en:’The protocol uses blue and near infrared light. Its bactericidal effect regulates abnormal bacterial growth and drains the pus. Effective on mild to moderate acne. Can be combined with the acne vulgaris protocol depending on diagnosis.’,
dur:’3\’00’, dist:’1 cm’, view:’months’, spw:2, totalMonths:3, sessdays:[1,4],
sum_fr:’
2 séances/semaine — mardi & vendredi pendant
3 mois ‘,
sum_en:’
2 sessions/week — tuesday & friday for
3 months ‘ },
{ id:’acnevulgaris’,
name_fr:’Acné vulgaris’, name_en:’Acne vulgaris’,
desc_fr:’Le protocole Acné est conçu pour traiter ou apaiser les éruptions cutanées. Adapté à l\’acné minimale à modérée. Il propose un traitement basé sur deux longueurs d\’onde : lumière rouge et infrarouge pour leurs propriétés analgésiques, anti-inflammatoires et neuro-dermatologiques.’,
desc_en:’The Acne protocol is designed to treat or soothe skin eruptions. Suitable for minimal to moderate acne. Based on two wavelengths: red light and infrared light for their combined analgesic, anti-inflammatory and neuro-dermatological regulatory properties.’,
dur:’6\’00’, dist:’1 cm’, view:’months’, spw:2, totalMonths:3, sessdays:[1,4],
sum_fr:’
2 séances/semaine — pendant
3 mois ‘,
sum_en:’
2 sessions/week — for
3 months ‘ },
{ id:’regeneration’,
name_fr:’Régénération’, name_en:’Regeneration’,
desc_fr:’Le protocole Régénération réduit les imperfections liées au traitement des dermatoses faciales. Il répare et restaure un teint plus uniforme. Traitement automatique en 3 zones du visage avec bip de changement de zone. Porter des lunettes protectrices.’,
desc_en:’The Regeneration protocol reduces skin imperfections linked to the treatment of facial dermatoses. It repairs and restores a more even complexion. Automatic treatment over 3 facial zones with beep indicating zone change.’,
dur:’2\’40 × 3 zones’, dist:’10 cm’, view:’months’, spw:2, totalMonths:3, sessdays:[1,4],
sum_fr:’
2 séances/semaine — pendant
3 mois ‘,
sum_en:’
2 sessions/week — for
3 months ‘ },
{ id:’rosacea’,
name_fr:’Rosacée’, name_en:’Rosacea’,
desc_fr:’Traitement basé sur 3 longueurs d\’onde : lumière rouge, jaune et proche infrarouge. Il régule la vascularisation, réduit l\’inflammation et améliore la qualité de la peau. Tenir l\’appareil à minimum 1 cm en s\’appuyant sur les phalanges.’,
desc_en:’Treatment based on 3 wavelengths: red, yellow and near infrared light. Regulates vascularisation, reduces inflammation and improves skin quality. Hold the device at a minimum distance of 1cm using your phalanges.’,
dur:’3\’00’, dist:’1 cm’, view:’months’, spw:2, totalMonths:3, sessdays:[1,4],
sum_fr:’
2 séances/semaine — pendant
3 mois ‘,
sum_en:’
2 sessions/week — for
3 months ‘ },
{ id:’psoriasis’,
name_fr:’Psoriasis’, name_en:’Psoriasis’,
desc_fr:’Le protocole utilise la lumière bleue à 470 nm et la lumière rouge à 633 nm en combinaison pour agir sur le processus inflammatoire et la prolifération des kératinocytes. Porter des lunettes de protection lors du traitement des plaques sur le visage.’,
desc_en:’The protocol uses blue light at 470 nm and red light at 633 nm in combination to provide a complete effect on the inflammatory process and keratinocyte proliferation. Wear protective glasses when treating patches on the face.’,
dur:’3\’00’, dist:’1 cm’, view:’months’, spw:2, totalMonths:4, sessdays:[1,4],
sum_fr:’
2 séances/semaine — pendant
4 mois ‘,
sum_en:’
2 sessions/week — for
4 months ‘ },
{ id:’radiodermatitis’,
name_fr:’Radiodermatite’, name_en:’Radiodermatitis’,
desc_fr:’Sur prescription médicale obligatoire. Le protocole utilise 4 longueurs d\’onde en 2 phases distinctes. Phase 1 : lumières verte, rouge et proche infrarouge à haute intensité pour la cicatrisation profonde. Phase 2 : lumière jaune pulsée pour rééquilibrer le derme.’,
desc_en:’Compulsory prescription and medical follow-up. The protocol uses 4 different wavelengths in two distinct phases. Phase 1: high-intensity green, red and near-infrared for deep healing. Phase 2: pulsed yellow light to rebalance the dermis.’,
dur:’3\’00’, dist:’0 cm’, view:’months’, spw:2, totalMonths:1, sessdays:[1,4],
sum_fr:’
2 séances/semaine — pendant
1 mois — sur prescription’,
sum_en:’
2 sessions/week — for
1 month — by prescription’ }
]
},
gynecology: {
color: ‘#F4A7C3’, tc: ‘#6b1a38’,
label_fr: ‘Gynécologie’, label_en: ‘Gynecology’,
title_fr: ‘Gynécologie’, title_en: ‘Gynecology’,
eyebrow_fr: ‘Biolux · Soins gynécologiques’, eyebrow_en: ‘Biolux · Gynecological Care’,
intro_fr: ‘Des protocoles cliniquement validés pour accompagner les soins gynécologiques à domicile. La photomodulation optimise toutes les étapes de cicatrisation, de la croissance cellulaire à la migration des fibroblastes.’,
intro_en: ‘Clinically validated protocols to support gynecological home care. From cell growth to fibroblast migration, PhotoModulation optimises all stages of healing.’,
reco_fr: ‘Ne pas combiner différents protocoles sur la même zone. Commencer le protocole 72h après l\’opération. Ne pas occlure la zone pendant le traitement.’,
reco_en: ‘Do not combine different photomodulation protocols on the same area. Start the protocol 72 hours after surgery. Do not seal the area during treatment.’,
protocols: [
{ id:’vulvitis’,
name_fr:’Vulvite’, name_en:’Vulvitis’,
desc_fr:’Protocole de traitement des vulvites par photomodulation. Agit sur la réduction de l\’inflammation locale et la régénération des tissus sensibles. Cliniquement validé pour un usage à domicile sous prescription.’,
desc_en:’Photomodulation protocol for vulvitis treatment. Acts on reducing local inflammation and regenerating sensitive tissue. Clinically validated for home use under prescription.’,
dur:’6\’00’, dist:’10 cm’, view:’week’, spw:3, weeks:4, sessdays:[0,2,4],
sum_fr:’
3 séances/semaine — pendant
4 semaines ‘,
sum_en:’
3 sessions/week — for
4 weeks ‘ },
{ id:’episiotomy’,
name_fr:’Post-épisiotomie’, name_en:’Post-episiotomy’,
desc_fr:’Les interventions chirurgicales en zones sensibles peuvent entraîner des complications liées à la cicatrisation dans les zones de friction. La photomodulation optimise toutes les étapes de guérison, de la croissance cellulaire à la migration des fibroblastes.’,
desc_en:’Surgical interventions in sensitive areas can lead to complications associated with healing in areas of friction. PhotoModulation optimises all stages of healing from cell growth to fibroblast migration.’,
dur:’15\’00’, dist:’1 cm’, view:’week’, spw:3, weeks:4, sessdays:[0,2,4],
sum_fr:’
3 séances/semaine — pendant
4 semaines ‘,
sum_en:’
3 sessions/week — for
4 weeks ‘ },
{ id:’herpes’,
name_fr:’Herpès’, name_en:’Herpes’,
desc_fr:’Le protocole vise à soulager la douleur et réparer les zones endommagées. Basé sur 3 longueurs d\’onde : lumière bleue, rouge et proche infrarouge. Les effets anti-inflammatoires apaisent rapidement douleurs et démangeaisons. La photobiomodulation agit sur les réponses immunitaires cutanées et retarde l\’apparition d\’une nouvelle poussée.’,
desc_en:’The protocol aims to relieve pain and repair damaged areas. Based on 3 wavelengths: blue, red and near-infrared light. The anti-inflammatory effects rapidly soothe pain and itching. Photobiomodulation acts on the skin\’s immune responses, delaying the onset of a new attack.’,
dur:’2\’00’, dist:’1 cm’, view:’week’, spw:3, weeks:4, sessdays:[0,2,4],
sum_fr:’
3 séances/semaine — pendant
4 semaines ‘,
sum_en:’
3 sessions/week — for
4 weeks ‘ },
{ id:’eczema_gyno’,
name_fr:’Eczéma’, name_en:’Eczema’,
desc_fr:’Le protocole vise à hydrater la zone et réduire les démangeaisons et l\’inflammation. Il propose un traitement basé sur 2 longueurs d\’onde : lumière jaune et rouge. Il hydrate et régénère le derme et agit sur les facteurs inflammatoires.’,
desc_en:’The protocol aims to moisturise the area and reduce itching and inflammation. Based on 2 wavelengths: yellow and red light, following a clinically validated protocol. Hydrates and regenerates the dermis and acts on inflammatory factors.’,
dur:’2\’00’, dist:’1 cm’, view:’week’, spw:3, weeks:4, sessdays:[0,2,4],
sum_fr:’
3 séances/semaine — pendant
4 semaines ‘,
sum_en:’
3 sessions/week — for
4 weeks ‘ },
{ id:’vitiligo’,
name_fr:’Vitiligo’, name_en:’Vitiligo’,
desc_fr:’Traitement long terme utilisant la lumière rouge pour activer la production d\’ATP dans les mélanocytes, réduire les mécanismes inflammatoires et l\’hyper-réponse immunitaire. En améliorant la circulation sanguine, le traitement fournit les nutriments nécessaires pour réactiver les mélanocytes.’,
desc_en:’Long-term treatment using red light to enable ATP production in melanocytes, reduce inflammatory mechanisms and the excessive immune response in auto-immune vitiligo. By improving blood flow, the treatment provides the nutrients needed to reactivate melanocytes.’,
dur:’6\’00’, dist:’1 cm’, view:’months’, spw:2, totalMonths:4, sessdays:[1,4],
sum_fr:’
2 séances/semaine — pendant
15 semaines ‘,
sum_en:’
2 sessions/week — for
15 weeks ‘ }
]
},
physiotherapy: {
color: ‘#FF7309’, tc: ‘#fff’,
label_fr: ‘Physiothérapie’, label_en: ‘Physiotherapy’,
title_fr: ‘Physiothérapie’, title_en: ‘Physiotherapy’,
eyebrow_fr: ‘LightMotion · Kinésithérapie & Sport’, eyebrow_en: ‘LightMotion · Physiotherapy & Sport’,
intro_fr: ‘La photomodulation fait partie de la pratique quotidienne de la physiothérapie. Elle soutient les athlètes à chaque étape de leur carrière pour prévenir les blessures et améliorer la réathlétisation.’,
intro_en: ‘Photomodulation is now part of everyday physiotherapy practice. Daily care photomodulation supports athletes at every stage of their career to prevent injuries and improve re-athletisation.’,
reco_fr: ‘Ne pas combiner différents protocoles sur la même zone. Utiliser le protocole Douleur en cas de douleur aiguë avant le traitement. Suivre les recommandations de votre kinésithérapeute.’,
reco_en: ‘Do not combine different protocols on the same area. Use the pain protocol first in case of acute pain. Follow up with your physiotherapist.’,
protocols: [
{ id:’recovery’,
name_fr:’Récupération’, name_en:’Recovery’,
desc_fr:’Le protocole vise à favoriser la récupération sportive et faciliter la récupération musculaire après l\’effort. Il utilise une combinaison de longueurs d\’onde rouge et infrarouge pour une action en profondeur jusqu\’au muscle blessé. Appareil maintenu en contact direct avec la peau.’,
desc_en:’The protocol aims to promote sports recovery and facilitate muscle recovery after exercise. Uses a combination of red and infrared wavelengths for deep action down to the injured muscle. Device kept in direct contact with the skin.’,
dur:’3\’00’, dist:’0 cm’, view:’week’, spw:7, weeks:2, sessdays:[0,1,2,3,4,5,6],
sum_fr:’
7 séances/semaine — tous les jours pendant
2 semaines ‘,
sum_en:’
7 sessions/week — every day for
2 weeks ‘ },
{ id:’tendinopathy’,
name_fr:’Tendinopathie’, name_en:’Tendinopathy’,
desc_fr:’Le protocole tendinopathie vise à réduire l\’inflammation post-traumatique du tendon. Il propose un traitement basé sur deux longueurs d\’onde, lumière rouge et proche infrarouge, pour leurs propriétés anti-inflammatoires. L\’appareil est placé directement sur la zone douloureuse du tendon.’,
desc_en:’The tendinopathy protocol aims to reduce post-traumatic inflammation of the tendon. Based on two wavelengths, red light and near-infrared light, for their anti-inflammatory properties. The device is placed directly on the painful area of the tendon.’,
dur:’2\’00’, dist:’0 cm’, view:’week’, spw:7, weeks:1, sessdays:[0,1,2,3,4,5,6],
sum_fr:’
7 séances/semaine — tous les jours pendant
1 semaine ‘,
sum_en:’
7 sessions/week — every day for
1 week ‘ },
{ id:’inflammation’,
name_fr:’Anti-inflammation’, name_en:’Inflammation’,
desc_fr:’Le protocole inflammation est conçu pour réduire l\’inflammation causée par un traumatisme. Il utilise uniquement de la lumière rouge haute intensité pour réguler la production de facteurs pro- et anti-inflammatoires. L\’appareil est en contact direct avec la peau.’,
desc_en:’The inflammation protocol is designed to reduce inflammation caused by trauma. Based solely on high-intensity red light to regulate the production of pro- and anti-inflammatory factors. The device is in direct contact with the skin.’,
dur:’3\’00’, dist:’0 cm’, view:’months’, spw:2, totalMonths:1, sessdays:[1,4],
sum_fr:’
2 séances/semaine — pendant
1 mois ‘,
sum_en:’
2 sessions/week — for
1 month ‘ },
{ id:’arthritis’,
name_fr:’Arthrite’, name_en:’Arthritis’,
desc_fr:’Le protocole Arthrite soulage la douleur inflammatoire et pénètre profondément dans l\’articulation. La longueur d\’onde rouge agit sur le derme pour désenflamber la zone, tandis que le proche infrarouge haute puissance agit sur l\’articulation pour réguler les facteurs inflammatoires.’,
desc_en:’The Arthritis protocol relieves inflammatory pain and penetrates deep into the joint. The red wavelength acts on the dermis to de-inflame the area, while the high-power near-infrared wavelength acts on the joint to regulate inflammatory factors.’,
dur:’2\’00’, dist:’0 cm’, view:’week’, spw:2, weeks:2, sessdays:[1,4],
sum_fr:’
2 séances/semaine — pendant
2 semaines ‘,
sum_en:’
2 sessions/week — for
2 weeks ‘ },
{ id:’sprain’,
name_fr:’Entorse’, name_en:’Sprain’,
desc_fr:’Le protocole propose 2 phases pour restaurer la mobilité articulaire, réduire le gonflement et soulager la douleur au repos. Les longueurs d\’onde rouge et proche infrarouge sont utilisées à des irradiations spécifiques pour optimiser la guérison de l\’entorse.’,
desc_en:’The protocol provides 2 phases to restore joint mobility, deflate the area and relieve pain at rest. Red and near-infrared wavelengths are used at specific irradiations to optimise sprain healing.’,
dur:’5\’20’, dist:’1 cm’, view:’week’, spw:2, weeks:2, sessdays:[1,4],
sum_fr:’
2 séances/semaine — pendant
2 semaines ‘,
sum_en:’
2 sessions/week — for
2 weeks ‘ }
]
},
skincares: {
color: ‘#A6D4BC’, tc: ‘#1a4a35’,
label_fr: ‘Soin de peau’, label_en: ‘Skin cares’,
title_fr: ‘Soin de peau’, title_en: ‘Skin Cares’,
eyebrow_fr: ‘Biolux · Esthétique & Anti-âge’, eyebrow_en: ‘Biolux · Aesthetics & Anti-aging’,
intro_fr: ‘Le rajeunissement cellulaire est un des paramètres de recherche clés de Biolux. Ces protocoles peuvent être utilisés par toute la famille, matin ou soir, dans leur routine quotidienne. Ils peuvent également être utilisés en complément des soins esthétiques.’,
intro_en: ‘Cellular rejuvenation is one of BIOLUX\’s key research parameters. These protocols can be used by the whole family, morning or evening, as part of their daily routine, and in conjunction with aesthetic procedures.’,
reco_fr: ‘Ne pas combiner différents protocoles sur la même zone. Prévoir une pause de 2 mois par an. Porter des lunettes de protection si nécessaire.’,
reco_en: ‘Do not combine different protocols on the same area. We suggest stopping 2 months out of the year to rest the skin. Please use protective goggles.’,
protocols: [
{ id:’glow’,
name_fr:’Éclat & Hydratation’, name_en:’Glow & Hydration’,
desc_fr:’Le protocole améliore et unifie la texture de la peau et limite la perte d\’eau quotidienne. Les lumières jaune et rouge stimulent les cellules épidermiques et dermiques pour optimiser la desquamation et la régénération cellulaire. Peut être réalisé seul ou en complément du protocole anti-âge hebdomadaire.’,
desc_en:’The protocol improves and evens out skin texture and limits daily water loss. Yellow and red lights stimulate epidermal and dermal cells to optimise desquamation and cell regeneration. Can be combined with the weekly anti-ageing protocol.’,
dur:’45\’\’ × 3 zones’, dist:’10 cm’, view:’week’, spw:7, weeks:1, sessdays:[0,1,2,3,4,5,6],
sum_fr:’Usage
quotidien — intégrable dans la routine matin ou soir’,
sum_en:’
Daily use — integrate into morning or evening routine’ },
{ id:’antiaging’,
name_fr:’Anti-âge’, name_en:’Anti-aging’,
desc_fr:’Le protocole anti-âge vise à réduire les rides et ridules et améliorer la qualité et le teint de la peau. Basé sur 4 longueurs d\’onde : lumière jaune pulsée, verte, rouge et proche infrarouge. Augmente la synthèse du collagène et de l\’élastine, facteurs importants du vieillissement cutané.’,
desc_en:’The anti-ageing protocol aims to reduce wrinkles and fine lines and improve the quality and tone of the skin. Based on 4 wavelengths: pulsed yellow light, green light, red light and near-infrared light. Increases the synthesis of collagen and elastin.’,
dur:’2\’40 × 3 zones’, dist:’10 cm’, view:’week’, spw:1, weeks:4, sessdays:[6], note_fr:’Programme annuel — 1 séance par semaine toute l\’année’, note_en:’Year-round programme — once a week throughout the year’,
sum_fr:’
1 séance/semaine — tout au long de l\’année’,
sum_en:’
1 session/week — throughout the year’ },
{ id:’rejuvenation’,
name_fr:’Rejuvenation’, name_en:’Rejuvenation’,
desc_fr:’Le protocole rejuvenation offre une action plus rapide et profonde sur des zones très localisées, à 1 cm de la peau. Il réduit rides et ridules et améliore qualité et teint. Basé sur 3 longueurs d\’onde : vert, rouge et jaune. Réalisé en 3 phases distinctes sur la zone à traiter.’,
desc_en:’The rejuvenation protocol offers faster and deeper action on very localised areas, at 1 cm from the skin. Reduces wrinkles and fine lines and improves quality and tone. Based on 3 wavelengths: green, red and yellow light. Carried out in 3 distinct phases.’,
dur:’6\’00’, dist:’1 cm’, view:’months’, spw:2, totalMonths:3, sessdays:[1,4],
sum_fr:’
2 séances/semaine — pendant
3 mois ‘,
sum_en:’
2 sessions/week — for
3 months ‘ },
{ id:’beforesun’,
name_fr:’Pré-soleil’, name_en:’Before sun’,
desc_fr:’Le protocole Pré-soleil agit avant l\’exposition solaire sur les zones sensibles susceptibles de provoquer érythèmes et vieillissement accéléré. Il régule et prépare les mélanocytes à une exposition prolongée aux UV. Utilise la longueur d\’onde rouge basse intensité.’,
desc_en:’The Before Sun protocol is specifically designed to act before sun exposure on sensitive areas. It regulates and prepares melanocytes for prolonged UV exposure. Uses the low-intensity red wavelength.’,
dur:’3\’00’, dist:’10 cm’, view:’week’, spw:2, weeks:5, sessdays:[1,4],
sum_fr:’
2 séances/semaine — pendant
5 semaines avant exposition’,
sum_en:’
2 sessions/week — for
5 weeks before sun exposure’ },
{ id:’aftersun’,
name_fr:’Post-soleil’, name_en:’After sun’,
desc_fr:’Le protocole post-soleil prend soin de la peau après une exposition prolongée. Il apaise la sensation de brûlure et la douleur causées par l\’érythème solaire et répare les tissus épidermiques endommagés. Utilise la longueur d\’onde rouge haute intensité 633 nm à 1 cm de la zone à traiter.’,
desc_en:’The after-sun protocol cares for the skin after prolonged sun exposure. It soothes the burning sensation and pain caused by solar erythema and repairs damaged epidermal tissue. Uses the high-intensity 633nm red wavelength.’,
dur:’6\’00’, dist:’1 cm’, view:’week’, spw:7, weeks:1, sessdays:[0,1,2,3,4,5,6],
sum_fr:’
Quotidien — pendant
1 semaine après l\’exposition’,
sum_en:’
Daily — for
1 week after sun exposure’ },
{ id:’eyescare’,
name_fr:’Contour des yeux’, name_en:’Eyes care’,
desc_fr:’Protocole dédié au traitement des rides péri-orbitaires. Il combine lumière jaune et rouge pour une action raffermissante sur les paupières et les poches. Deux phases automatiques avec signal acoustique annonçant le changement de phase avant la seconde stimulation.’,
desc_en:’Specifically dedicated to periorbital wrinkles and fine lines. Combines yellow and red light for firming action on eyelids and bags. Two automatic phases with acoustic signal announcing the change of phase.’,
dur:’2\’40 × 2 zones’, dist:’10 cm’, view:’week’, spw:4, weeks:5, sessdays:[0,2,4,6],
sum_fr:’
4 séances/semaine — pendant
5 semaines ‘,
sum_en:’
4 sessions/week — for
5 weeks ‘ }
]
},
hair: {
color: ‘#A6D4BC’, tc: ‘#1a4a35’,
label_fr: ‘Cheveux’, label_en: ‘Hair treatment’,
title_fr: ‘Thérapie capillaire’, title_en: ‘Hair Treatment’,
eyebrow_fr: ‘Biolux · Soins capillaires’, eyebrow_en: ‘Biolux · Hair Care’,
intro_fr: ‘Protocoles développés en collaboration avec des cliniques spécialisées en Suisse et à l\’étranger pour les traitements capillaires pré et post-chirurgie. Des études ont montré l\’importance de traiter l\’excès de sébum avant la chirurgie pour améliorer la prise des greffes.’,
intro_en: ‘Protocols developed in collaboration with specialist clinics in Switzerland and abroad for pre and post-surgery hair treatments. Studies have shown it is important to treat excess sebum before surgery to improve the take-up of hair grafts.’,
reco_fr: ‘Ne pas combiner différents protocoles sur la même zone. Pour les cheveux gras, sur diagnostic professionnel uniquement. Avant tout autre traitement capillaire.’,
reco_en: ‘Do not combine different protocols on the same area. For oily hair upon professional diagnosis only. Prior to any other hair treatment.’,
protocols: [
{ id:’oilyhair’,
name_fr:’Cheveux gras’, name_en:’Oily hair’,
desc_fr:’Le protocole améliore et unifie la texture capillaire en régulant l\’excès de sébum par des traitements rapides quotidiens. Les lumières jaune et rouge stimulent les cellules capillaires et les préparent à la chirurgie. Protocole spécifique aux cheveux gras.’,
desc_en:’The protocol improves and evens out hair texture by regulating excess sebum with rapid daily treatments. Yellow and red lights stimulate the hair cells and prepare them for surgery. Specific to oily hair.’,
dur:’1\’00’, dist:’10 cm’, view:’week’, spw:7, weeks:2, sessdays:[0,1,2,3,4,5,6],
sum_fr:’
Quotidien — pendant
2 semaines ‘,
sum_en:’
Daily — for
2 weeks ‘ },
{ id:’bioregeneration’,
name_fr:’Biorégénération’, name_en:’Bioregeneration’,
desc_fr:’Ce protocole est destiné à revitaliser le cuir chevelu après une procédure capillaire sur des zones spécifiques. Consultez votre médecin pour définir les zones exactes à traiter. Peut être utilisé indépendamment à la demande sur les zones abîmées.’,
desc_en:’This protocol is intended to revitalize the scalp after a hair procedure on specific areas. Consult your medical advisor to define the exact areas to be treated after the procedure.’,
dur:’1\’30’, dist:’0 cm’, view:’week’, spw:7, weeks:1, sessdays:[0,1,2,3,4,5,6],
sum_fr:’
Quotidien — pendant
1 semaine post-procédure’,
sum_en:’
Daily — for
1 week post-procedure’ },
{ id:’hairloss’,
name_fr:’Anti-chute’, name_en:’Anti hair loss’,
desc_fr:’Le protocole anti-chute vise à ralentir la perte de cheveux. Basé sur 3 longueurs d\’onde : lumière bleue, jaune et proche infrarouge. Il soulage l\’irritation du cuir chevelu, améliore la texture et l\’élasticité des cheveux, et optimise l\’irrigation des follicules capillaires.’,
desc_en:’The anti-hair loss protocol aims to slow down hair loss. Based on three wavelengths: blue, yellow and near infrared light. Relieves scalp irritation, improves hair texture and elasticity, and optimises irrigation of hair follicles.’,
dur:’2\’00’, dist:’10 cm’, view:’week’, spw:7, weeks:4, sessdays:[0,1,2,3,4,5,6], note_fr:’Phase 1 : quotidien 1 mois · Phase 2 : 1×/semaine 1 mois’, note_en:’Phase 1: daily 1 month · Phase 2: once a week 1 month’,
sum_fr:’
Quotidien 1 mois puis
1×/semaine 1 mois ‘,
sum_en:’
Daily 1 month then
once a week 1 month ‘ },
{ id:’postimplant’,
name_fr:’Post implants’, name_en:’Post implants’,
desc_fr:’Le protocole post-chirurgie capillaire facilite la cicatrisation et aide à maintenir les cheveux après la greffe, en réduisant infections et inflammations. Basé sur 3 longueurs d\’onde : lumière rouge (régule l\’inflammation, améliore la circulation), bleue (bactéricide) et jaune (renouvellement cellulaire).’,
desc_en:’The post-capillary surgery protocol facilitates healing and helps maintain hair after transplant, reducing infections and inflammation. Based on 3 wavelengths: red light (regulates inflammation), blue light (bactericidal effect), and yellow light (cell renewal).’,
dur:’2\’00’, dist:’10 cm’, view:’week’, spw:7, weeks:2, sessdays:[0,1,2,3,4,5,6],
sum_fr:’
Quotidien — pendant
2 semaines post-greffe’,
sum_en:’
Daily — for
2 weeks post-transplant’ }
]
}
};
let lang = localStorage.getItem(‘bx_lang’) || ‘fr’;
let activeMod = ‘painkiller’;
let activeProto = DATA.painkiller.protocols[0].id;
function setLang(l) {
localStorage.setItem(‘bx_lang’, l);
lang = l;
document.querySelectorAll(‘.lb’).forEach(b => b.classList.toggle(‘active’, b.textContent.includes(l===’fr’?’FR’:’EN’)));
document.getElementById(‘draftBadge’).textContent = l===’fr’ ? ‘Document de travail’ : ‘Working document’;
document.getElementById(‘heroLabel’).textContent = l===’fr’ ? ‘Manuel utilisateur — Guide des protocoles’ : ‘User manual — Protocol guide’;
document.getElementById(‘heroTitle’).innerHTML = l===’fr’ ? ’32 protocoles
validés cliniquement ‘ : ’32 protocols
clinically validated ‘;
document.getElementById(‘heroSub’).textContent = l===’fr’
? ‘Chaque protocole repose sur des études publiées et des validations cliniques menées en collaboration avec l\’Institut des Neurosciences de Montpellier (INM-CNRS-Inserm).’
: ‘Every protocol is based on published studies and clinical validations conducted in collaboration with the Montpellier Institute of Neurosciences (INM-CNRS-Inserm).’;
document.getElementById(‘statLbl1′).textContent = l===’fr’?’Protocoles’:’Protocols’;
document.getElementById(‘statLbl2′).textContent = l===’fr’?’Modules’:’Modules’;
document.getElementById(‘statLbl3′).textContent = l===’fr’?’Années de R&D’:’Years of R&D’;
document.getElementById(‘statLbl4′).textContent = l===’fr’?’Certifications’:’Certifications’;
document.getElementById(‘footerNote’).textContent = l===’fr’
? ‘Document confidentiel — Biolux Therapeutics © 2026 — Version de travail’
: ‘Confidential document — Biolux Therapeutics © 2026 — Working version’;
renderSidebar(); renderContent();
}
function accentColor(mod) {
return mod.color === ‘#F4A7C3’ ? ‘#6b1a38’ : mod.tc === ‘#fff’ ? mod.color : mod.tc;
}
function renderSidebar() {
const mod = DATA[activeMod];
const lbl = lang===’fr’ ? ‘Modules’ : ‘Modules’;
let html = ``;
Object.entries(DATA).forEach(([key, m]) => {
const name = lang===’fr’ ? m.label_fr : m.label_en;
const on = key === activeMod;
const ac = accentColor(m);
html += `
${name}
`;
});
document.getElementById(‘sidebar’).innerHTML = html;
}
function selectMod(key) {
activeMod = key;
activeProto = DATA[key].protocols[0].id;
renderSidebar(); renderContent();
}
function selectProto(id) {
activeProto = id;
renderContent();
}
function renderContent() {
const mod = DATA[activeMod];
const ac = accentColor(mod);
const proto = mod.protocols.find(p => p.id === activeProto);
const title = lang===’fr’ ? mod.title_fr : mod.title_en;
const eyebrow = lang===’fr’ ? mod.eyebrow_fr : mod.eyebrow_en;
const intro = lang===’fr’ ? mod.intro_fr : mod.intro_en;
const reco = lang===’fr’ ? mod.reco_fr : mod.reco_en;
const recoLbl = lang===’fr’ ? ‘Recommandations’ : ‘Recommendations’;
let tabsHtml = mod.protocols.map(p => {
const name = lang===’fr’ ? p.name_fr : p.name_en;
const on = p.id === activeProto;
return `
${name}
`;
}).join( »);
const protoCard = proto ? renderProtoCard(proto, mod, ac) : »;
document.getElementById(‘content’).innerHTML = `
${tabsHtml}
${protoCard}`;
}
function renderProtoCard(proto, mod, ac) {
const name = lang===’fr’ ? proto.name_fr : proto.name_en;
const desc = lang===’fr’ ? proto.desc_fr : proto.desc_en;
const sum = lang===’fr’ ? proto.sum_fr : proto.sum_en;
const modLbl = lang===’fr’ ? mod.label_fr : mod.label_en;
const durLbl = lang===’fr’ ? ‘Durée’ : ‘Duration’;
const distLbl = lang===’fr’ ? ‘Distance’ : ‘Distance’;
const perSess = lang===’fr’ ? ‘par séance’ : ‘per session’;
const fromSkin= lang===’fr’ ? ‘de la peau’ : ‘from skin’;
const freqLbl = lang===’fr’ ? ‘Programme de séances’ : ‘Session schedule’;
let total = »;
if (proto.view === ‘week’ && proto.weeks && proto.sessdays) {
const t = proto.sessdays.length * proto.weeks;
total = `
${t} ${lang===’fr’?’séances’:’sessions’} `;
} else if (proto.view === ‘months’) {
const t = proto.spw * (proto.totalMonths * 4);
total = `
~${t} ${lang===’fr’?’séances’:’sessions’} `;
}
let calHtml = »;
if (proto.view === ‘week’) calHtml = buildWeekCal(proto, mod, ac);
else if (proto.view === ‘months’) calHtml = buildMonthCal(proto, mod, ac);
else calHtml = buildOnDemand(proto, mod, ac);
return `
${desc}
⏱ ${durLbl}
${proto.dur}
${perSess}
📏 ${distLbl}
${proto.dist}
${fromSkin}
`;
}
function buildWeekCal(proto, mod, ac) {
const days = lang===’fr’ ? DAYS_FR : DAYS_EN;
const weeksToShow = Math.min(proto.weeks, 4);
const weekLbl = w => lang===’fr’ ? `Sem. ${w+1}` : `Week ${w+1}`;
let html = ‘
‘;
for (let w=0; w<weeksToShow; w++) {
html += `
${weekLbl(w)}
`;
for (let d=0; d<7; d++) {
const on = proto.sessdays.includes(d);
const date = w*7 + d + 1;
html += `
${days[d]}
${date}
`;
}
html += ‘
‘;
}
if (proto.weeks > 4 && proto.note_fr) {
const note = lang===’fr’ ? proto.note_fr : proto.note_en;
html += `
↻ ${note}
`;
}
html += ‘
‘ + buildLegend(mod, ac);
return html;
}
function buildMonthCal(proto, mod, ac) {
const days = lang===’fr’ ? DAYS_FR : DAYS_EN;
const months = lang===’fr’ ? MONTHS_FR : MONTHS_EN;
const mLbl = lang===’fr’ ? ‘Mois’ : ‘Month’;
const totalM = Math.min(proto.totalMonths, 4);
let html = ‘
‘;
for (let m=0; m<totalM; m++) {
const dIM = MONTH_DAYS[m];
html += `
${mLbl} ${m+1} — ${months[m]}
`;
days.forEach(d => { html += `
${d}
`; });
for (let day=1; day<=dIM; day++) {
const dow = (day – 1) % 7;
const on = proto.sessdays.includes(dow);
html += `
${day}
`;
}
html += ‘
‘;
}
if (proto.totalMonths > 4) {
const moreText = lang===’fr’ ? `↻ Programme sur ${proto.totalMonths} mois au total` : `↻ Programme over ${proto.totalMonths} months total`;
html += `
${moreText}
`;
}
html += ‘
‘ + buildLegend(mod, ac);
return html;
}
function buildOnDemand(proto, mod, ac) {
const days = lang===’fr’ ? DAYS_FR : DAYS_EN;
const label = lang===’fr’ ? ‘Dès que la douleur apparaît’ : ‘As soon as pain appears’;
const sub = lang===’fr’ ? ‘Répétable sans limite, sans délai minimum entre les séances.’ : ‘Repeatable without limit, with no minimum delay between sessions.’;
const chip = lang===’fr’ ? ‘⚡ Protocole d\’urgence’ : ‘⚡ Emergency protocol’;
let html = ‘
‘;
for (let i=0; i<7; i++) {
html += `
${days[i]}
✓
`;
}
html += ‘
‘;
html += `
`;
return html;
}
function buildLegend(mod, ac) {
const ls = lang===’fr’ ? ‘Séance’ : ‘Session’;
const lr = lang===’fr’ ? ‘Repos’ : ‘Rest’;
return `
`;
}
renderSidebar();
renderContent();
http://shared.js