/* Created on : Sep 28, 2016, 12:39:48 PM Author : seif*/.alert-msg p{ display: block; width: 90%; margin: 0 auto; margin-bottom: 10px; padding: 3px 27px; border: 1px solid; text-align: center; color: #a94442; background-color: #f2dede; border-color: #ebccd1;}.p404-body { color: #444; margin:0; font: normal 14px/20px Arial, Helvetica, sans-serif; height:100%; background-color: #fff;}.p404-body h1, .p404-body h2 { color: #444;}.p404-first { height:auto; min-height:100%;}.p404-second { text-align: center; width:800px; margin-left: -400px; position:absolute; top: 20%; left:50%;}.p404-h1 { margin:0; font-size:150px; line-height:150px; font-weight:bold;}.p404-h2 { margin-top:20px; font-size: 30px;}.p404-div{ padding-top: 15px;}.client-box{ width: 100%; margin: 0 auto; display: flex; align-items: center; justify-content: center; height: 130px; padding: 0 15px;}.client-box img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain;}/* Status Badge (Availability) */.status-badge { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-left: 10px; vertical-align: middle; position: relative; cursor: help;}.status-badge.available { background-color: #22c55e; } .status-badge.busy { background-color: #f59e0b; } /* Tooltip style */.status-badge:hover::before { content: attr(data-status); position: absolute; bottom: 25px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.8); color: #fff; padding: 6px 12px; border-radius: 4px; font-size: 11px; font-weight: 400; text-transform: none; letter-spacing: 0; line-height: 1.4; white-space: nowrap; z-index: 100; font-family: 'Open Sans', Arial, sans-serif; box-shadow: 0 5px 15px rgba(0,0,0,0.3);}/* Tooltip arrow */.status-badge:hover::after { content: ''; position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); border-width: 5px 5px 0 5px; border-style: solid; border-color: rgba(0, 0, 0, 0.8) transparent transparent transparent; z-index: 100;}.status-badge:after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 50%; animation: pulse-status 2s infinite;}.status-badge.available:after { background-color: #22c55e; }.status-badge.busy:after { background-color: #f59e0b; }@keyframes pulse-status { 0% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(2.5); opacity: 0; }}/* Fix horizontal overflow */html, body { overflow-x: hidden; width: 100%;}/* Ensure all images are responsive */img { max-width: 100%; height: auto;}/* Improve Typography on Small Screens */@media (max-width: 767px) { .section-background { padding: 20px !important; } .resume-box .year { position: relative !important; left: 0 !important; margin-bottom: 10px; } .resume-box .box-content { margin-left: 0 !important; padding: 15px !important; }}/* Accessibility: Screen Reader Only */.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0;}/* Accessibility: focus states */a:focus, button:focus, input:focus, textarea:focus { outline: 2px solid #6366f1 !important;}/* Override focus for decorative dials */.skill-bar input.dial:focus { outline: none !important;}/* Prevent flash of raw inputs in skills section */.skill-bar input.dial { opacity: 0;}.skill-bar.processed input.dial { opacity: 1 !important;}/* Accessibility: Color Contrast Improvements */.footer-background p, .footer-background a { color: #e2e8f0 !important; }.resume-box .box-content p { color: #334155 !important; }/* Footer: avoid reCAPTCHA v3 badge overlap */footer .col-right { padding-right: 70px !important;}/* Accessibility: Tap Targets */footer .col-right a, .social ul li a { min-width: 48px; min-height: 48px; display: inline-flex !important; align-items: center; justify-content: center; margin: 8px;}@media (max-width: 767px) { footer .col-right { padding-right: 15px !important; }}/* Menu Toggle Stabilization */.toggle-btn { position: fixed !important; top: 0 !important; right: 0 !important; z-index: 1000 !important; width: 60px !important; height: 60px !important; background: #fff !important; border: none !important; display: block !important;}.toggle-btn .lines { background: #141414 !important; display: inline-block !important;}.toggle-btn .lines:before, .toggle-btn .lines:after { background: #141414 !important;}.toggle-btn.toggle-close { background: transparent !important;}.toggle-btn.toggle-close .lines { background: transparent !important;}@media (max-width: 767px) { html, body { height: auto !important; min-height: 100% !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch; } .fill, .home-background, .home-background .container-fluid, .home-background .row, .home-box { height: 100vh !important; min-height: 100vh !important; }}/* Home Background Fix */.home-background { background-size: cover !important;}
/* Icones sociales : le lot 10 a porte les liens a 48x48 (cibles tactiles) alors que le
   soulignement anime du theme est cale sur une hauteur de 30px (::before avec padding:15px 0).
   La ligne blanche du survol restait donc 18px trop haut, au milieu de l'icone, au lieu de
   rejoindre la bordure grise permanente du bas. On l'ancre au bas du lien, quelle que soit sa
   hauteur. Meme probleme et meme correctif pour les icones du pied de page (footer .col-right a),
   visees par la meme regle 48x48. Selecteurs plus specifiques que ceux du theme, car
   responsive.min.css est charge apres style.min.css. */
.social ul li a::before,
footer .col-right a::before { top: auto; bottom: 0; padding: 0; }

/* Copyright du pied de page : discret, aligne sur le nom du site, lisible sur fond sombre. */
.footer-copyright { margin: 6px 0 0; font-size: 12px; line-height: 1.5; color: #94a3b8 !important; }
@media (max-width: 767px) { .footer-copyright { font-size: 11px; } }
