2026-06-05 21:17:48 +02:00
<!DOCTYPE html>
< html lang = "fr" >
< head >
< meta charset = "UTF-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< meta name = "robots" content = "noindex, nofollow, noarchive, nosnippet" >
< meta name = "googlebot" content = "noindex, nofollow" >
< title > GSK | Règles de Sécurité< / title >
< link rel = "icon" href = "https://gsk.labbej27.fr/logo.jpeg" type = "image/jpeg" >
< link rel = "shortcut icon" href = "https://gsk.labbej27.fr/logo.jpeg" type = "image/jpeg" >
< style >
@ import url ( 'https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap' ) ;
: root {
--gsk-orange : #f36f21 ;
--gsk-dark : #1c2526 ;
}
* { margin : 0 ; padding : 0 ; box-sizing : border-box ; }
body {
font-family : 'Roboto' , sans-serif ;
background-color : #f8f9fa ;
color : #333 ;
line-height : 1.6 ;
}
header {
background : linear-gradient ( 135 deg , var ( - - gsk - dark ) , #2a3a3d ) ;
color : white ;
padding : 1 rem 0 ;
box-shadow : 0 4 px 12 px rgba ( 0 , 0 , 0 , 0.2 ) ;
}
. header-content {
max-width : 1200 px ;
margin : 0 auto ;
display : flex ;
align-items : center ;
2026-06-11 19:35:47 +00:00
justify-content : center ;
2026-06-05 21:17:48 +02:00
padding : 0 2 rem ;
}
2026-06-11 19:35:47 +00:00
. logo {
cursor : pointer ;
}
2026-06-05 21:17:48 +02:00
. logo img {
2026-06-11 19:35:47 +00:00
height : 65 px ;
2026-06-05 21:17:48 +02:00
}
. lang-selector {
display : flex ;
2026-06-11 19:35:47 +00:00
justify-content : center ;
align-items : center ;
2026-06-05 21:17:48 +02:00
gap : 10 px ;
2026-06-11 19:35:47 +00:00
flex-wrap : wrap ;
2026-06-05 21:17:48 +02:00
}
. lang-btn {
background : rgba ( 255 , 255 , 255 , 0.1 ) ;
color : white ;
border : 2 px solid var ( - - gsk - orange ) ;
padding : 8 px 16 px ;
border-radius : 30 px ;
cursor : pointer ;
transition : all 0.3 s ;
font-weight : 500 ;
}
. lang-btn : hover , . lang-btn . active {
background : var ( - - gsk - orange ) ;
transform : translateY ( -2 px ) ;
}
. hero {
background : linear-gradient ( rgba ( 0 , 0 , 0 , 0.65 ) , rgba ( 0 , 0 , 0 , 0.75 ) ) , url ( 'https://picsum.photos/id/1015/2000/800' ) center / cover ;
height : 55 vh ;
display : flex ;
align-items : center ;
justify-content : center ;
text-align : center ;
color : white ;
}
. hero-content h1 {
font-size : 2.8 rem ;
color : var ( - - gsk - orange ) ;
margin-bottom : 1 rem ;
}
. content {
max-width : 1200 px ;
margin : 3 rem auto ;
padding : 0 2 rem ;
display : none ;
}
. content . active { display : block ; }
. video-container {
margin : 2.5 rem auto ;
border-radius : 12 px ;
overflow : hidden ;
box-shadow : 0 10 px 30 px rgba ( 0 , 0 , 0 , 0.2 ) ;
background : #000 ;
width : 100 % ;
max-width : 1100 px ;
}
. video-container video {
width : 100 % ;
height : auto ;
display : block ;
aspect-ratio : 16 / 9 ;
object-fit : contain ;
}
. safety-text {
background : white ;
padding : 3 rem ;
border-radius : 12 px ;
box-shadow : 0 5 px 20 px rgba ( 0 , 0 , 0 , 0.1 ) ;
margin-top : 2 rem ;
}
. safety-text h2 {
color : var ( - - gsk - orange ) ;
margin-bottom : 1.5 rem ;
font-size : 2 rem ;
}
ul { list-style : none ; margin : 1.5 rem 0 ; }
ul li {
padding : 12 px 0 ;
border-bottom : 1 px solid #eee ;
font-size : 1.1 rem ;
}
ul li : before {
content : "✓" ;
color : var ( - - gsk - orange ) ;
margin-right : 12 px ;
font-weight : bold ;
}
. confirmation {
background : #f8f9fa ;
border : 3 px solid var ( - - gsk - orange ) ;
padding : 2 rem ;
border-radius : 12 px ;
text-align : center ;
margin-top : 2.5 rem ;
font-size : 1.3 rem ;
}
. code {
2026-06-11 19:35:47 +00:00
font-size : 2.5 rem ;
2026-06-05 21:17:48 +02:00
font-weight : bold ;
color : var ( - - gsk - orange ) ;
2026-06-11 19:35:47 +00:00
letter-spacing : 2 px ;
2026-06-05 21:17:48 +02:00
margin : 1 rem 0 ;
background : white ;
padding : 15 px ;
border-radius : 8 px ;
2026-06-11 19:35:47 +00:00
display : none ;
text-align : center ;
2026-06-11 19:29:12 +02:00
}
2026-06-11 19:35:47 +00:00
. accept-checkbox {
width : 24 px ;
height : 24 px ;
flex-shrink : 0 ;
margin-top : 3 px ;
}
2026-06-11 19:29:12 +02:00
. accept-label {
display : inline-flex ;
2026-06-11 19:35:47 +00:00
align-items : flex-start ;
2026-06-11 19:29:12 +02:00
gap : 10 px ;
font-size : 1.2 rem ;
2026-06-11 19:35:47 +00:00
margin-bottom : 1 rem ;
cursor : pointer ;
text-align : left ;
2026-06-05 21:17:48 +02:00
}
footer {
background : var ( - - gsk - dark ) ;
color : #aaa ;
text-align : center ;
padding : 2.5 rem ;
margin-top : 4 rem ;
}
@ media ( max-width : 768px ) {
2026-06-11 19:35:47 +00:00
. header-content {
padding : 0 1 rem ;
}
. logo img {
height : 50 px ;
}
. hero {
height : auto ;
padding : 2 rem 1 rem ;
}
. hero-content h1 {
font-size : 2 rem ;
}
. hero-content p {
font-size : 1.15 rem !important ;
margin-bottom : 1.5 rem !important ;
}
. lang-selector {
flex-direction : column ;
align-items : stretch ;
width : 100 % ;
max-width : 350 px ;
margin : 0 auto ;
}
. lang-btn {
width : 100 % ;
font-size : 1.1 rem !important ;
padding : 14 px !important ;
}
. content {
padding : 0 1 rem ;
margin : 1.5 rem auto ;
}
. safety-text {
padding : 1.25 rem ;
}
. safety-text h2 {
font-size : 1.5 rem ;
}
ul li {
font-size : 1 rem ;
}
. confirmation {
padding : 1.25 rem ;
font-size : 1 rem ;
}
. code {
font-size : 1.8 rem ;
letter-spacing : 2 px ;
word-break : break-word ;
}
footer {
padding : 1.5 rem 1 rem ;
}
}
2026-06-05 21:17:48 +02:00
< / style >
< / head >
< body >
< header >
< div class = "header-content" >
< div class = "logo" >
< img src = "https://gsk.labbej27.fr/logo.jpeg" alt = "GSK Logo" >
< / div >
< / div >
< / header >
<!-- Accueil -->
< section id = "home" class = "hero" >
< div class = "hero-content" >
< h1 > Bienvenue chez GSK< / h1 >
< p style = "font-size: 1.5rem; margin-bottom: 2.5rem;" > Sélectionnez votre langue pour consulter les règles de sécurité< / p >
2026-06-11 19:35:47 +00:00
< div class = "lang-selector" >
< button class = "lang-btn" data-lang = "fr" onclick = "selectLanguage('fr')" >
🇫🇷 Français
< / button >
< button class = "lang-btn" data-lang = "en" onclick = "selectLanguage('en')" >
🇬🇧 English
< / button >
< button class = "lang-btn" data-lang = "es" onclick = "selectLanguage('es')" >
🇪🇸 Español
< / button >
< / div >
2026-06-05 21:17:48 +02:00
< / div >
< / section >
<!-- Français -->
2026-06-11 19:35:47 +00:00
< div id = "content-fr" class = "content" >
2026-06-05 21:17:48 +02:00
< div style = "text-align:center; margin-bottom: 2rem;" >
< h1 style = "color:#f36f21;" > Règles de sûreté à l’ intention des visiteurs< / h1 >
< / div >
< div class = "video-container" >
2026-06-11 19:35:47 +00:00
< video controls playsinline >
2026-06-05 21:17:48 +02:00
< source src = "https://gsk.labbej27.fr/video-securite.mp4" type = "video/mp4" >
Votre navigateur ne supporte pas la lecture vidéo.
< / video >
< / div >
< div class = "safety-text" >
< ul >
< li > Lire attentivement les consignes de sécurité, les compléter et les conserver sur soi en cas de contrôle.< / li >
< li > Porter le badge de manière visible autour du cou.< / li >
< li > Badger individuellement, même si quelqu’ un vous tient la porte.< / li >
< li > Seuls les véhicules transportant du matériel sont autorisés à entrer et à se stationner à l’ intérieur du site, munis d’ une autorisation.< / li >
< li > Limitation de vitesse à 20 km/h.< / li >
< li > Stationner dans le sens du départ.< / li >
< li > Restituer le badge à l’ accueil visiteurs ou dans la boîte aux lettres en quittant le site après 18 h.< / li >
< / ul >
< div class = "confirmation" >
2026-06-11 19:29:12 +02:00
< label class = "accept-label" >
< input type = "checkbox" class = "accept-checkbox" >
< strong > En cliquant ici, « vous reconnaissez avoir lu et compris » les règles de sûreté, et vous vous engagez à les appliquer.< / strong >
< / label >
< br > < br >
2026-06-05 21:17:48 +02:00
Communiquez ce code à l’ hôtesse d’ accueil :< br >
2026-06-11 19:29:12 +02:00
< div class = "code" id = "code-fr" > GSK-SEC-FR-XXXXXX< / div >
2026-06-05 21:17:48 +02:00
< / div >
< / div >
< / div >
<!-- English -->
< div id = "content-en" class = "content" >
< div style = "text-align:center; margin-bottom: 2rem;" >
< h1 style = "color:#f36f21;" > Safety Rules for Visitors< / h1 >
< / div >
< div class = "video-container" >
2026-06-11 19:35:47 +00:00
< video controls playsinline >
2026-06-05 21:17:48 +02:00
< source src = "https://gsk.labbej27.fr/video-securiteen.mp4" type = "video/mp4" >
Your browser does not support video playback.
< / video >
< / div >
< div class = "safety-text" >
< ul >
< li > Please read the safety instructions carefully, complete them, and keep them with you at all times in case of inspection.< / li >
2026-06-11 19:29:12 +02:00
< li > Your badge must be worn visibly around the neck at all times.< / li >
2026-06-05 21:17:48 +02:00
< li > You must badge in individually, even if someone holds the door for you.< / li >
< li > Only vehicles carrying equipment are permitted to enter and park on site, and must have a valid authorization.< / li >
< li > Speed limit: 20 km/h.< / li >
< li > Vehicles must be parked facing the exit.< / li >
< li > Please return your badge to the reception desk or place it in the mailbox when leaving the site after 6 p.m.< / li >
< / ul >
< div class = "confirmation" >
2026-06-11 19:29:12 +02:00
< label class = "accept-label" >
< input type = "checkbox" class = "accept-checkbox" >
< strong > By clicking here, you acknowledge that you have read and understood the safety rules, and you agree to comply with them.< / strong >
< / label >
< br > < br >
2026-06-05 21:17:48 +02:00
Give this code to the receptionist:< br >
2026-06-11 19:29:12 +02:00
< div class = "code" id = "code-en" > GSK-SEC-EN-XXXXXX< / div >
2026-06-05 21:17:48 +02:00
< / div >
< / div >
< / div >
<!-- Español -->
< div id = "content-es" class = "content" >
< div style = "text-align:center; margin-bottom: 2rem;" >
< h1 style = "color:#f36f21;" > Normas de seguridad para visitantes< / h1 >
< / div >
< div class = "video-container" >
2026-06-11 19:35:47 +00:00
< video controls playsinline >
2026-06-05 21:17:48 +02:00
< source src = "https://gsk.labbej27.fr/video-securitees.mp4" type = "video/mp4" >
Tu navegador no admite la reproducción de vídeo.
< / video >
< / div >
< div class = "safety-text" >
< ul >
< li > Lea atentamente las instrucciones de seguridad, complételas y consérvelas consigo en caso de control.< / li >
< li > La credencial debe llevarse visible alrededor del cuello en todo momento.< / li >
< li > Debe registrar su entrada de forma individual, incluso si alguien le abre la puerta.< / li >
< li > Solo los vehículos que transportan material están autorizados a acceder y estacionarse dentro del recinto, y deben contar con una autorización válida.< / li >
< li > Límite de velocidad: 20 km/h.< / li >
< li > Los vehículos deben estacionarse en el sentido de la salida.< / li >
< li > Devuelva la credencial en la recepción o deposítela en el buzón al salir del sitio después de las 18 h.< / li >
< / ul >
< div class = "confirmation" >
2026-06-11 19:29:12 +02:00
< label class = "accept-label" >
< input type = "checkbox" class = "accept-checkbox" >
< strong > Haciendo clic aquí, usted reconoce haber leído y comprendido las normas de seguridad, y se compromete a cumplirlas.< / strong >
< / label >
< br > < br >
2026-06-05 21:17:48 +02:00
Entregue este código a la recepcionista:< br >
2026-06-11 19:29:12 +02:00
< div class = "code" id = "code-es" > GSK-SEC-ES-XXXXXX< / div >
2026-06-05 21:17:48 +02:00
< / div >
< / div >
< / div >
2026-06-11 19:29:12 +02:00
< footer >
2026-06-05 21:17:48 +02:00
< p > © 2026 GSK plc — Règles de Sécurité Visiteurs< / p >
2026-06-05 21:58:42 +02:00
< p style = "margin-top: 8px; font-size: 0.95rem;" > Développé par LABBEJ27 pour Fiducial Évreux< / p >
< p style = "margin-top: 15px; font-size: 0.85rem; opacity: 0.75;" >
Code source disponible sur :
< a href = "https://labbej27.duckdns.org/labbej/gsk-securite-visiteurs"
target = "_blank"
style = "color: #f36f21;" >
Gitea — gsk-securite-visiteurs
< / a >
< / p >
2026-06-05 21:17:48 +02:00
< / footer >
< script >
2026-06-11 19:29:12 +02:00
// Génère le code avec le mois en cours (ex: 062026)
function getCurrentCode ( lang ) {
const now = new Date ( ) ;
const month = String ( now . getMonth ( ) + 1 ) . padStart ( 2 , '0' ) ;
const year = now . getFullYear ( ) ;
return ` GSK-SEC- ${ lang . toUpperCase ( ) } - ${ month } ${ year } ` ;
}
// Met à jour tous les codes
function updateCodes ( ) {
document . getElementById ( 'code-fr' ) . textContent = getCurrentCode ( 'fr' ) ;
document . getElementById ( 'code-en' ) . textContent = getCurrentCode ( 'en' ) ;
document . getElementById ( 'code-es' ) . textContent = getCurrentCode ( 'es' ) ;
}
2026-06-05 21:17:48 +02:00
function selectLanguage ( lang ) {
2026-06-11 19:29:12 +02:00
2026-06-11 19:35:47 +00:00
stopAllVideos ( ) ;
document . querySelectorAll ( '.content' ) . forEach ( c =>
c . classList . remove ( 'active' )
) ;
document . getElementById ( ` content- ${ lang } ` )
. classList . add ( 'active' ) ;
document . querySelectorAll ( '.lang-btn' ) . forEach ( btn => {
btn . classList . toggle (
'active' ,
btn . getAttribute ( 'data-lang' ) === lang
) ;
} ) ;
const activeVideo =
document . querySelector ( ` #content- ${ lang } video ` ) ;
if ( activeVideo ) {
activeVideo . play ( ) ;
}
setTimeout ( ( ) => {
document . getElementById ( ` content- ${ lang } ` )
. scrollIntoView ( { behavior : 'smooth' } ) ;
} , 150 ) ;
}
// Arrête toutes les vidéos lors du changement de langue
function stopAllVideos ( ) {
document . querySelectorAll ( 'video' ) . forEach ( video => {
video . pause ( ) ;
video . currentTime = 0 ;
} ) ;
}
2026-06-11 19:29:12 +02:00
// Gestion des cases à cocher
function setupCheckboxes ( ) {
document . querySelectorAll ( '.accept-checkbox' ) . forEach ( checkbox => {
const codeDiv = checkbox . closest ( '.confirmation' ) . querySelector ( '.code' ) ;
checkbox . addEventListener ( 'change' , function ( ) {
2026-06-11 19:35:47 +00:00
if ( this . checked ) {
codeDiv . style . display = 'inline-block' ;
setTimeout ( ( ) => {
codeDiv . scrollIntoView ( {
behavior : 'smooth' ,
block : 'center'
} ) ;
} , 100 ) ;
} else {
codeDiv . style . display = 'none' ;
}
} ) ;
2026-06-11 19:29:12 +02:00
} ) ;
}
// Initialisation
window . onload = function ( ) {
updateCodes ( ) ;
setupCheckboxes ( ) ;
// Retour à l'accueil en cliquant sur le logo
document . querySelector ( '.logo' ) . addEventListener ( 'click' , ( ) => {
document . getElementById ( 'home' ) . scrollIntoView ( { behavior : 'smooth' } ) ;
} ) ;
} ;
2026-06-05 21:17:48 +02:00
< / script >
< / body >
< / html >