 /* Contact Grid */
 .contact-grid {
     display: grid;
     grid-template-columns: 1fr 1.5fr;
     gap: 100px;
     padding: 20px 0;
 }

 /* Contact Info */
 .contact-info h2 {
     /* font-size: 36px; */
     margin-bottom: 40px;
     letter-spacing: -0.02em;
 }

 .info-item {
     margin-bottom: 10px;
     padding-bottom: 10px;
     border-bottom: 1px solid var(--border);
 }

 .info-item:last-child {
     border-bottom: none;
 }

 .info-label {
     font-size: 12px;
     color: var(--text-secondary);
     text-transform: uppercase;
     letter-spacing: 0.1em;
     margin-bottom: 15px;
 }

 .info-value {
     font-size: 20px;
     color: var(--text);
     margin-bottom: 10px;
 }

 .info-value a {
     color: var(--text);
     text-decoration: none;
     transition: color 0.3s ease;
 }

 .info-value a:hover {
     color: var(--accent);
     text-decoration: none;
 }

 .info-description {
     font-size: 14px;
     color: var(--text-secondary);
     line-height: 0.1;
 }

 /* Social Links */
 .social-grid {
     display: grid;
     grid-template-columns: repeat(2, 1fr);
     gap: 15px;
     margin-top: 30px;
 }

 .social-link {
     display: flex;
     align-items: center;
     gap: 12px;
     padding: 15px 20px;
     border: 1px solid var(--border);
     text-decoration: none;
     color: var(--text);
     font-size: 14px;
     transition: all 0.3s ease;
 }

 .social-link:hover {
     border-color: var(--accent);
     color: var(--accent);
     transform: translateX(5px);
 }

 /* Contact Form */
 .contact-form {
     background: var(--glass);
     border: 1px solid var(--border);
     padding: 60px;
 }

 .contact-form {
     border: 1px solid #CC2022;
 }

 .form-group {
     margin-bottom: 30px;
 }

 .form-row.full-width {
     grid-template-columns: 1fr;
     width: 100%;
 }

 .form-group label {
     display: block;
     font-size: 12px;
     color: var(--text-secondary);
     text-transform: uppercase;
     letter-spacing: 0.1em;
     margin-bottom: 12px;
 }

 .form-group input,
 .form-group select,
 .form-group textarea {
     width: 100%;
     padding: 16px 20px;
     background: transparent;
     border: 1px solid var(--border);
     color: var(--text);
     font-size: 15px;
     font-family: 'Space Grotesk', sans-serif;
     transition: all 0.3s ease;
 }

 .form-group input:focus,
 .form-group select:focus,
 .form-group textarea:focus {
     outline: none;
     border-color: var(--accent);
     background: var(--glass);
 }

 .form-group textarea {
     resize: vertical;
     min-height: 150px;
     line-height: 1.6;
 }

 .form-group select {
     cursor: pointer;
     appearance: none;
     background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%23ffffff' stroke-width='2'/%3E%3C/svg%3E");
     background-repeat: no-repeat;
     background-position: right 20px center;
 }

 .form-group option {
     background: var(--bg);
     color: var(--text);
 }

 .form-row {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 30px;
 }

 .success-message {
     padding: 20px 30px;
     background: rgba(0, 255, 136, 0.1);
     border: 1px solid var(--accent);
     color: var(--accent);
     margin-bottom: 30px;
     font-size: 14px;
 }

 .error-message {
     padding: 20px 30px;
     background: rgba(255, 68, 68, 0.1);
     border: 1px solid #ff4444;
     color: #ff4444;
     margin-bottom: 30px;
     font-size: 14px;
 }

 .error-message ul {
     list-style: none;
     margin-top: 10px;
 }

 .error-message li {
     margin-bottom: 5px;
 }

 .form-footer {
     margin-top: 40px;
     padding-top: 40px;
     border-top: 1px solid var(--border);
     font-size: 13px;
     color: var(--text-secondary);
     line-height: 1.8;
 }

 .form-footer a {
     color: var(--accent);
     text-decoration: none;
 }

 .form-footer a:hover {
     text-decoration: underline;
 }

 /* Map Placeholder */
 .map-section {
     height: 400px;
     background: var(--bg-secondary);
     border-top: 1px solid var(--border);
     border-bottom: 1px solid var(--border);
     display: flex;
     align-items: center;
     justify-content: center;
     margin: 100px 0;
     position: relative;
     overflow: hidden;
 }

 .map-section::before {
     content: '';
     position: absolute;
     inset: 0;
     background:
         repeating-linear-gradient(0deg,
             var(--border) 0px,
             transparent 1px,
             transparent 50px,
             var(--border) 51px),
         repeating-linear-gradient(90deg,
             var(--border) 0px,
             transparent 1px,
             transparent 50px,
             var(--border) 51px);
     opacity: 0.3;
 }

 .map-placeholder {
     position: relative;
     z-index: 1;
     text-align: center;
 }

 .map-placeholder h3 {
     font-size: 24px;
     margin-bottom: 10px;
 }

 .map-placeholder p {
     color: var(--text-secondary);
 }

 /* Responsive */
 @media (max-width: 1024px) {
     .contact-grid {
         grid-template-columns: 1fr;
         gap: 60px;
     }

     .contact-form {
         padding: 40px;
     }
 }

 @media (max-width: 768px) {
     .page-hero {
         padding: 150px 0 100px;
     }

     .contact-form {
         margin: 20px;
         padding: 30px 20px;
     }

     .form-row {
         grid-template-columns: 1fr;
     }

     .social-grid {
         grid-template-columns: 1fr;
     }
 }


 .contact-section {
     padding: 6rem 0;
 }

 .contact-grid {
     display: grid;
     grid-template-columns: 1fr 1.5fr;
     gap: 4rem;
 }

 /* Contact Info Styles */
 .contact-info {
     padding: 2rem;
 }

 .info-title {
     font-size: 2.5rem;
     font-weight: 600;
     margin-bottom: 1rem;
 }

 .info-description {
     color: var(--text-secondary);
     line-height: 1.6;
     margin-bottom: 1rem;
 }

 .contact-items {
     display: flex;
     flex-direction: column;
     gap: 0rem;
     margin-bottom: 3rem;
 }

 .contact-item {
     display: flex;
     align-items: flex-start;
     gap: 1rem;
 }

 .contact-icon {
     font-size: 1.5rem;
     width: 40px;
     height: 40px;
     display: flex;
     align-items: center;
     justify-content: center;
     background: var(--glass);
     border: 1px solid var(--border);
     border-radius: 0.5rem;
     flex-shrink: 0;
 }

 .contact-details {
     display: flex;
     flex-direction: column;
     gap: 0.25rem;
 }

 .contact-label {
     font-size: 0.875rem;
     color: var(--text-secondary);
 }

 .contact-value {
     color: var(--text);
     text-decoration: none;
     font-weight: 500;
     transition: color 0.3s;
 }

 a.contact-value:hover {
     color: var(--accent);
 }

 .social-links {
     margin-bottom: 3rem;
 }

 .social-title {
     font-size: 1.25rem;
     font-weight: 600;
     margin-bottom: 1rem;
 }

 .social-grid {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 1rem;
 }

 .social-link {
     aspect-ratio: 1;
     display: flex;
     align-items: center;
     justify-content: center;
     background: var(--glass);
     border: 1px solid var(--border);
     border-radius: 0.5rem;
     color: var(--text);
     text-decoration: none;
     font-weight: 600;
     transition: all 0.3s;
 }

 .social-link:hover {
     background: var(--accent);
     color: var(--bg);
     border-color: var(--accent);
     transform: translateY(-5px);
 }

 .availability {
     display: flex;
     align-items: center;
     gap: 0.75rem;
     padding: 1rem;
     background: var(--glass);
     border: 1px solid var(--border);
     border-radius: 0.5rem;
 }

 .availability-status {
     width: 12px;
     height: 12px;
     border-radius: 50%;
     flex-shrink: 0;
 }

 .status-accepting {
     background: var(--accent);
     box-shadow: 0 0 0 4px rgba(255, 0, 136, 0.2);
     animation: pulse 2s infinite;
 }

 .status-limited {
     background: #ffa500;
 }

 .status-full {
     background: #ff4444;
 }

 @keyframes pulse {

     0%,
     100% {
         box-shadow: 0 0 0 4px rgba(255, 0, 136, 0.15);
     }

     50% {
         box-shadow: 0 0 0 8px rgba(255, 0, 136, 0);
     }
 }

 .availability-text {
     font-size: 0.875rem;
     color: var(--text-secondary);
 }

 /* Form Styles */
 .contact-form-wrapper {
     padding: 3rem;
     background: var(--glass);
     border: 1px solid var(--border);
     border-radius: 1rem;
 }

 .form-title {
     font-size: 2rem;
     font-weight: 600;
     margin-bottom: 2rem;
 }

 .contact-form {
     display: flex;
     flex-direction: column;
     gap: 1.5rem;
 }

 /* Form Field Styles */
 .form-field {
     display: flex;
     flex-direction: column;
     gap: 0.5rem;
 }

 .form-label {
     font-weight: 500;
     color: var(--text);
 }

 .required {
     color: var(--accent);
 }

 .form-input {
     padding: 1rem;
     background: rgba(255, 255, 255, 0.02);
     border: 1px solid var(--border);
     color: var(--text);
     font-size: 1rem;
     transition: all 0.3s;
     width: 100%;
 }

 .form-input:focus {
     outline: none;
     border-color: var(--accent);
     background: rgba(255, 255, 255, 0.05);
 }

 .input-wrapper {
     position: relative;
     display: flex;
     align-items: center;
 }

 .input-icon {
     position: absolute;
     left: 1rem;
     color: var(--text-secondary);
     pointer-events: none;
     display: none;
 }

 .input-wrapper .form-input {
     padding-left: 1rem;
 }

 textarea.form-input {
     resize: vertical;
     min-height: 120px;
 }

 .btn-submit {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 0.75rem;
     padding: 1rem 2rem;
     background: var(--accent);
     color: var(--bg);
     font-weight: 600;
     border: none;
     border-radius: 2rem;
     cursor: pointer;
     transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
     margin-top: 1rem;
 }

 .btn-submit:hover {
     transform: translateY(-2px);
     box-shadow: 0 10px 40px rgba(0, 255, 136, 0.3);
 }

 .form-message {
     padding: 1rem;
     border-radius: 0.5rem;
     margin-top: 1rem;
 }

 .success-message {
     background: rgba(0, 255, 136, 0.1);
     border: 1px solid var(--accent);
     color: var(--accent);
 }

 .error-message {
     background: rgba(255, 68, 68, 0.1);
     border: 1px solid #ff4444;
     color: #ff4444;
 }

 @media (max-width: 768px) {
     .contact-grid {
         grid-template-columns: 1fr;
         gap: 2rem;
         padding: 10px 0;
     }

     .social-grid {
         grid-template-columns: repeat(4, 1fr);
     }

     .contact-form-wrapper {
         padding: 2rem;
     }

     .info-description {
         margin-bottom: 1rem;
     }

     .ebea-home-animation {
         padding-top: 100px;
     }
 }

 .portfolio-filters {
     padding: 4rem 0 2rem;
 }

 .filter-buttons {
     display: flex;
     flex-wrap: wrap;
     gap: 1rem;
     justify-content: center;
 }

 .filter-btn {
     padding: 0.75rem 1.5rem;
     background: var(--glass);
     border: 1px solid var(--border);
     border-radius: 2rem;
     color: var(--text);
     font-weight: 500;
     cursor: pointer;
     transition: all 0.3s;
 }

 .filter-btn:hover,
 .filter-btn.active {
     background: var(--accent);
     color: var(--bg);
     border-color: var(--accent);
 }

 .portfolio-grid {
     padding: 4rem 0;
 }

 .projects-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
     gap: 2rem;
 }

 /* Project Card Styles */
 .project-card {
     position: relative;
     border-radius: 1rem;
     overflow: hidden;
     transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
 }

 .project-card:hover {
     transform: translateY(-10px);
 }

 .project-image {
     position: relative;
     aspect-ratio: 16 / 10;
     overflow: hidden;
 }

 .project-image img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
 }

 .project-card:hover .project-image img {
     transform: scale(1.1);
 }

 .project-overlay {
     position: absolute;
     inset: 0;
     background: linear-gradient(to top, rgba(10, 10, 10, 0.95), transparent 50%);
     opacity: 0;
     transition: opacity 0.4s;
     display: flex;
     align-items: flex-end;
     padding: 2rem;
 }

 .project-card:hover .project-overlay {
     opacity: 1;
 }

 .project-info {
     width: 100%;
     transform: translateY(20px);
     transition: transform 0.4s;
 }

 .project-card:hover .project-info {
     transform: translateY(0);
 }

 .project-category {
     display: inline-block;
     padding: 0.25rem 0.75rem;
     background: var(--accent);
     color: var(--bg);
     font-size: 0.75rem;
     font-weight: 600;
     border-radius: 1rem;
     margin-bottom: 1rem;
 }

 .project-title {
     font-size: 1.75rem;
     font-weight: 600;
     margin-bottom: 0.5rem;
 }

 .project-description {
     color: var(--text-secondary);
     margin-bottom: 1rem;
     line-height: 1.6;
 }

 .project-tags {
     display: flex;
     flex-wrap: wrap;
     gap: 0.5rem;
     margin-bottom: 1.5rem;
 }

 .tag {
     padding: 0.25rem 0.75rem;
     background: var(--glass);
     border: 1px solid var(--border);
     border-radius: 1rem;
     font-size: 0.75rem;
     color: var(--text-secondary);
 }

 .project-link {
     display: inline-flex;
     align-items: center;
     gap: 0.5rem;
     color: var(--accent);
     text-decoration: none;
     font-weight: 500;
     transition: gap 0.3s;
 }

 .project-link:hover {
     gap: 1rem;
 }

 .project-meta {
     padding: 1rem;
     background: var(--glass);
     border: 1px solid var(--border);
     border-top: none;
     border-radius: 0 0 1rem 1rem;
     display: flex;
     justify-content: space-between;
     align-items: center;
 }

 .project-year {
     color: var(--text-secondary);
     font-size: 0.875rem;
 }

 .project-category-badge {
     padding: 0.25rem 0.75rem;
     background: var(--glass);
     border: 1px solid var(--border);
     border-radius: 1rem;
     font-size: 0.75rem;
 }

 .portfolio-stats {
     padding: 4rem 0;
     background: var(--glass);
     border-top: 1px solid var(--border);
     border-bottom: 1px solid var(--border);
 }

 @media (max-width: 768px) {
     .projects-grid {
         grid-template-columns: 1fr;
     }

     .stats-grid {
         grid-template-columns: repeat(2, 1fr);
     }
 }


 /* Hero Section Futuriste avec Parallax */
 .hero {
     min-height: 50vh;
     display: flex;
     align-items: center;
     position: relative;
     padding: 40px 0;
     /*overflow: hidden; /* */
 }

 .service-icon {
     display: none;
 }

 /* Parallax Layers */
 .parallax-layer {
     position: absolute;
     inset: 0;
     pointer-events: none;
 }

 /* Animated Grid 3D */
 .grid-3d {
     position: absolute;
     inset: -50%;
     background-image:
         linear-gradient(rgba(255, 0, 25, 0.05) 2px, transparent 2px),
         linear-gradient(90deg, rgba(255, 0, 47, 0.033) 2px, transparent 2px);
     background-size: 100px 100px;
     transform: perspective(1000px) rotateX(60deg) translateZ(-200px);
     animation: gridMove 20s linear infinite;
     transform-origin: center center;
 }

 @keyframes gridMove {
     0% {
         transform: perspective(1000px) rotateX(60deg) translateZ(-200px) translateY(0);
     }

     100% {
         transform: perspective(1000px) rotateX(60deg) translateZ(-200px) translateY(100px);
     }
 }

 /* Floating Particles */
 .particles {
     position: absolute;
     inset: 0;
 }

 .particle {
     position: absolute;
     width: 4px;
     height: 4px;
     background: var(--accent);
     border-radius: 50%;
     opacity: 0;
     animation: particleFloat 8s ease-in-out infinite;
 }

 .particle:nth-child(1) {
     left: 10%;
     animation-delay: 0s;
 }

 .particle:nth-child(2) {
     left: 20%;
     animation-delay: 1s;
 }

 .particle:nth-child(3) {
     left: 30%;
     animation-delay: 2s;
 }

 .particle:nth-child(4) {
     left: 40%;
     animation-delay: 3s;
 }

 .particle:nth-child(5) {
     left: 50%;
     animation-delay: 4s;
 }

 .particle:nth-child(6) {
     left: 60%;
     animation-delay: 5s;
 }

 .particle:nth-child(7) {
     left: 70%;
     animation-delay: 6s;
 }

 .particle:nth-child(8) {
     left: 80%;
     animation-delay: 7s;
 }

 .particle:nth-child(9) {
     left: 90%;
     animation-delay: 8s;
 }

 @keyframes particleFloat {
     0% {
         bottom: 0;
         opacity: 0;
         transform: translateX(0) scale(0);
     }

     10% {
         opacity: 1;
         transform: translateX(0) scale(1);
     }

     90% {
         opacity: 1;
         transform: translateX(100px) scale(1);
     }

     100% {
         bottom: 100%;
         opacity: 0;
         transform: translateX(200px) scale(0);
     }
 }



 @keyframes holoFloat {

     0%,
     100% {
         transform: translate(0, 0) scale(1);
     }

     25% {
         transform: translate(50px, -50px) scale(1.1);
     }

     50% {
         transform: translate(-30px, 30px) scale(0.9);
     }

     75% {
         transform: translate(30px, 50px) scale(1.05);
     }
 }

 /* Scan Lines Effect */
 .scan-lines {
     position: absolute;
     inset: 0;
     background: repeating-linear-gradient(0deg,
             rgba(0, 255, 136, 0.03) 0px,
             transparent 2px,
             transparent 4px,
             rgba(0, 255, 136, 0.03) 6px);
     pointer-events: none;
     animation: scanMove 8s linear infinite;
 }

 @keyframes scanMove {
     0% {
         transform: translateY(0);
     }

     100% {
         transform: translateY(20px);
     }
 }

 /* Hero Content */
 .hero-content {
     position: relative;
     z-index: 10;
 }

 .hero-title {
     font-size: clamp(48px, 5vw, 80px);
     font-weight: 700;
     letter-spacing: -0.05em;
     margin-bottom: 40px;
     line-height: 0.95;
     position: relative;
 }

 .hero-title .line {
     display: block;
     overflow: hidden;
     position: relative;
 }

 .hero-title .line span {
     display: inline-block;
     opacity: 0;
 }

 .hero.is-centered .hero-title .line span {
     animation: slideUp 1.2s cubic-bezier(0.76, 0, 0.24, 1) forwards;
     transform: translateY(120%);
 }

 .hero-title .line:nth-child(1) span {
     animation-delay: 0.3s;
 }

 .hero-title .line:nth-child(2) span {
     animation-delay: 0.5s;
 }

 .hero-title .line:nth-child(3) span {
     animation-delay: 0.7s;
 }

 @keyframes slideUp {
     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 /* Glitch Effect on Hover */
 .glitch-text {
     position: relative;
     display: inline-block;
 }

 .glitch-text::before,
 .glitch-text::after {
     content: attr(data-text);
     position: absolute;
     top: 0;
     left: 0;
     opacity: 0;
 }

 .hero-title:hover .glitch-text::before {
     animation: glitch1 0.3s infinite;
     color: var(--accent);
     z-index: -1;
 }

 .hero-title:hover .glitch-text::after {
     animation: glitch2 0.3s infinite;
     color: var(--accent-secondary);
     z-index: -2;
 }

 .layout-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
     gap: 2rem;
 }

 .layout-grid[style*="--columns: 2"] {
     grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
 }

 .layout-grid[style*="--columns: 3"] {
     grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
 }

 .layout-grid[style*="--columns: 4"] {
     grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
 }

 .stats-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
     gap: 60px;
 }

 @keyframes glitch1 {
     0% {
         opacity: 0.8;
         transform: translate(-2px, 2px);
     }

     50% {
         opacity: 1;
         transform: translate(2px, -2px);
     }

     100% {
         opacity: 0.8;
         transform: translate(-2px, 2px);
     }
 }

 @keyframes glitch2 {
     0% {
         opacity: 0.8;
         transform: translate(2px, -2px);
     }

     50% {
         opacity: 1;
         transform: translate(-2px, 2px);
     }

     100% {
         opacity: 0.8;
         transform: translate(2px, -2px);
     }
 }

 .hero-subtitle {
     font-size: 24px;
     color: var(--text-secondary);
     max-width: 700px;
     line-height: 1.8;
     margin-bottom: 50px;
     opacity: 0;

     border-left: 3px solid var(--accent);
     padding-left: 30px;
     font-weight: 300;
 }

 .hero.is-centered .hero-subtitle {
     animation: fadeIn 2s ease 0.9s forwards;
 }

 @keyframes fadeIn {
     to {
         opacity: 1;
     }
 }

 /* Buttons Enhanced */
 .hero-buttons {
     display: flex;
     gap: 25px;
     flex-wrap: wrap;
     opacity: 0;
     animation: fadeIn 1s ease 1.1s forwards;
 }

 .btn-hero {
     position: relative;
     overflow: hidden;
 }

 .btn-hero::before {
     content: '';
     position: absolute;
     inset: 0;
     background: linear-gradient(135deg, var(--accent) 0%, var(--accent-secondary) 100%);
     opacity: 0;
     transition: opacity 0.3s ease;
 }

 .btn-hero:hover::before {
     opacity: 0.2;
 }

 /* Scroll Indicator 3D */
 .scroll-indicator {
     z-index: 1000;
     position: fixed;
     bottom: 30px;
     background: transparent;
     margin: auto;
     /* width: 100%; */
     left: calc(100% - 70px);
     padding: 10px;
     background: rgba(255, 255, 255, .6);
     border-radius: 20px;
     border: 1px solid #c00;
     transform: translateX(-50%);
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 15px;
     opacity: 1;

 }

 .hide {
     animation: hide-animation .5s linear forwards !important;
     /**/
 }

 .pulse:not(.hide) {
     animation: pulse-animation 2s infinite;
 }

 @keyframes pulse-animation {
     0% {
         box-shadow: 0 0 0 0px rgba(255, 0, 0, 0.2);
     }

     100% {
         box-shadow: 0 0 0 20px rgba(255, 0, 0, 0);
     }
 }

 @keyframes hide-animation {

     0% {
         opacity: 1
     }

     100% {
         opacity: 0
     }
 }

 .scroll-text {
     font-size: 11px;
     letter-spacing: 0.2em;
     text-transform: uppercase;
     color: var(--text-secondary);
     writing-mode: vertical-rl;
 }

 .scroll-line {
     width: 2px;
     height: 60px;
     background: linear-gradient(to bottom, var(--accent), transparent);
     position: relative;
     overflow: hidden;
 }

 .scroll-line::after {
     content: '';
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 30px;
     background: var(--accent);
     animation: scrollPulse 2s ease-in-out infinite;
     box-shadow: 0 0 20px var(--accent);
 }

 @keyframes scrollPulse {

     0%,
     100% {
         transform: translateY(-30px);
         opacity: 0;
     }

     50% {
         opacity: 1;
     }

     100% {
         transform: translateY(60px);
     }
 }

 /* Parallax Sections */
 .parallax-section {
     position: relative;
     transform-style: preserve-3d;
     transition: transform 0.1s ease-out;
 }

 .parallax-bg {
     position: absolute;
     inset: 0;
     background: var(--bg-secondary);
     transform: translateZ(-100px) scale(1.2);
 }

 .parallax-content {
     position: relative;
     transform: translateZ(0);
 }

 /* Services Grid with Parallax */
 .services-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
     gap: 2px;
     background: var(--border);
     margin-top: 80px;
 }

 .service-card {
     background: var(--bg);
     padding: 60px 40px;
     transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
     position: relative;
     overflow: hidden;
     transform-style: preserve-3d;
 }

 .service-card::before {
     content: '';
     position: absolute;
     inset: 0;
     background: var(--glass);
     opacity: 0;
     transition: opacity 0.4s ease;
     transform: translateZ(50px);
 }

 .service-card:hover {
     transform: translateY(-2px) rotateX(1deg);
     z-index: 1;
 }

 .service-card:hover::before {
     opacity: 1;
 }

 .service-number {
     font-size: 12px;
     color: var(--text-secondary);
     margin-bottom: 30px;
     letter-spacing: 0.1em;
     font-family: 'Instrument Serif', serif;
     font-style: italic;
 }

 .service-card h3 {
     font-size: 26px;
     margin-bottom: 20px;
     position: relative;
     z-index: 1;
 }

 .service-card p {
     color: var(--text-secondary);
     line-height: 1.8;
     position: relative;
     z-index: 1;
 }

 /* Holographic Badge */
 .holo-badge {
     position: absolute;
     top: 20px;
     right: 20px;
     width: 60px;
     height: 60px;
     border-radius: 50%;
     background: linear-gradient(135deg, var(--accent), var(--accent-secondary));
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 24px;
     opacity: 0;
     transform: scale(0) rotate(0deg);
     transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
 }

 .service-card:hover .holo-badge {
     opacity: 1;
     transform: scale(1) rotate(360deg);
 }

 /* Stats with 3D Effect */
 .stats {
     padding: 150px 0;
     border-top: 1px solid var(--border);
     border-bottom: 1px solid var(--border);
     position: relative;
     perspective: 1000px;
 }

 .stat-item {
     text-align: center;
     transition: transform 0.3s ease;
     transform-style: preserve-3d;
 }

 .stat-item:hover {
     transform: translateZ(30px);
 }

 .stat-number {
     font-size: 72px;
     font-weight: 600;
     letter-spacing: -0.03em;
     margin-bottom: 10px;
     background: linear-gradient(135deg, var(--accent) 0%, var(--accent-secondary) 100%);
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent;
     background-clip: text;
     text-shadow: 0 0 40px rgba(255, 0, 17, 0.2);
 }

 .stat-label {
     color: var(--text-secondary);
     font-size: 14px;
     letter-spacing: 0.05em;
     text-transform: uppercase;
 }

 /* Responsive */
 @media (max-width: 968px) {
     .hero-title {
         font-size: clamp(40px, 12vw, 7vw);
     }

     .services-grid {
         grid-template-columns: 1fr;
     }

     .grid-3d {
         opacity: 0.3;
     }

     .holo-orb {
         opacity: 0.2;
     }
 }

 :root {
     --bg: #fff;
     --bg-alt: #f9f9f9;
     --bg-secondary: #f1f1f1;
     --text: #000;
     --reverse-text: #fff;
     --text-secondary: #333;
     --reverse-text-secondary: #ccc;
     --accent: #BC171F;
     --accent-secondary: #E22526;
     --border: rgba(255, 255, 255, 0.08);
     --border-hover: rgba(255, 255, 255, 0.15);
     --glass: rgba(255, 255, 255, 0.03);
     --glass-hover: rgba(255, 255, 255, 0.06);
 }

 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
     /*    position: relative; */
 }

 html {
     position: relative !important;

     scroll-behavior: smooth;
 }

 body {
     position: relative !important;
     font-family: 'Space Grotesk', sans-serif;
     background: var(--bg);
     color: var(--text);
     line-height: 1.6;
     overflow-x: hidden;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
 }

 main {
     position: relative;
 }

 .ebea-home-animation {
     background: rgba(255, 255, 255, 0.1);
     height: auto;
 }

 ::selection {
     background: var(--accent);
     color: var(--bg);
 }

 h1,
 h2,
 h3,
 h4,
 h5,
 h6 {
     font-weight: 600;
     line-height: 1.2;
     letter-spacing: -0.02em;
 }

 .serif {
     font-family: 'Instrument Serif', serif;
     font-style: italic;
 }

 .container {
     max-width: 1400px;
     margin: 0 auto;
     padding: 0 40px;
 }

 /* Navigation */
 nav {
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     z-index: 1000;
     padding: 30px 0;
     transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
 }

 nav.scrolled {
     padding: 20px 0;
     background: rgba(245, 245, 245, 0.8);
     /**/
     backdrop-filter: blur(20px) saturate(180%);
     /**/
     border-bottom: 1px solid var(--border);
 }

 .nav-container {
     display: flex;
     justify-content: space-between;
     align-items: center;
     max-width: 1400px;
     margin: 0 auto;
     padding: 0 40px;
 }

 .logo {
     font-size: 20px;
     font-weight: 600;
     color: var(--text);
     text-decoration: none;
     letter-spacing: -0.03em;
     position: relative;
     transition: color 0.3s ease;
 }

 .logo img {
     height: 40px;
 }

 .logo:hover {
     color: var(--accent);
 }

 .logo::before {
     content: '';
     position: absolute;
     left: -15px;
     top: 50%;
     transform: translateY(-50%);
     width: 6px;
     height: 6px;
     /* background: var(--accent); */
     border-radius: 50%;
 }

 .nav-links {
     display: flex;
     gap: 50px;
     list-style: none;
     align-items: center;
 }

 .nav-links a {
     color: var(--text-secondary);
     text-decoration: none !important;
     font-size: 14px;
     font-weight: 500;
     letter-spacing: 0.02em;
     transition: all 0.3s ease;
     position: relative;
 }

 .nav-links a:hover {
     color: var(--text);
 }

 .nav-links a::after {
     content: '';
     position: absolute;
     bottom: -5px;
     left: 0;
     width: 0;
     height: 2px;
     background: var(--accent);
     transition: width 0.3s ease;
 }

 .nav-links a:hover::after,
 .nav-links li.active a::after {
     width: 100%;
 }

 /* Buttons */
 .btn {
     display: inline-flex;
     align-items: center;
     gap: 10px;
     padding: 16px 32px;
     border: 1px solid var(--border);
     background: transparent;
     color: var(--text);
     text-decoration: none;
     font-size: 14px;
     font-weight: 500;
     letter-spacing: 0.02em;
     transition: all 0.3s ease;
     cursor: pointer;
     position: relative;
     overflow: hidden;
 }

 .btn::before {
     content: '';
     position: absolute;
     inset: 0;
     background: var(--glass);
     transform: translateX(-100%);
     transition: transform 0.3s ease;
 }

 .btn:hover {
     border-color: var(--border-hover);
     transform: translateY(-2px);
 }

 .btn:hover::before {
     transform: translateX(0);
 }

 .btn span {
     position: relative;
     z-index: 1;
 }

 .btn-primary {
     background: var(--accent);
     color: var(--bg);
     border-color: var(--accent);
 }

 .btn-primary:hover {
     background: var(--accent);
     border-color: var(--accent);
     box-shadow: 0 10px 40px rgba(255, 0, 32, 0.3);
 }

 /* Mobile Menu */
 .mobile-menu-toggle {
     display: none;
     flex-direction: column;
     gap: 6px;
     background: none;
     border: none;
     cursor: pointer;
     padding: 5px;
 }

 .mobile-menu-toggle span {
     width: 24px;
     height: 2px;
     background: var(--text);
     transition: all 0.3s ease;
 }


 .mobile-menu-toggle {
     position: relative;
     width: 48px;
     height: 48px;
     padding: 0;
     border: 0;
     background: transparent;
     cursor: pointer;
 }

 .mobile-menu-toggle span {
     position: absolute;
     left: 50%;
     width: 24px;
     height: 2px;
     background: #222;
     border-radius: 2px;
     transform: translateX(-50%);
     transition: transform 0.3s ease, opacity 0.3s ease, top 0.3s ease;
 }

 .mobile-menu-toggle span:nth-child(1) {
     top: 16px;
 }

 .mobile-menu-toggle span:nth-child(2) {
     top: 23px;
 }

 .mobile-menu-toggle span:nth-child(3) {
     top: 30px;
 }

 /* état actif = croix */
 .mobile-menu-toggle.active span:nth-child(1) {
     top: 23px;
     transform: translateX(-50%) rotate(45deg);
 }

 .mobile-menu-toggle.active span:nth-child(2) {
     opacity: 0;
 }

 .mobile-menu-toggle.active span:nth-child(3) {
     top: 23px;
     transform: translateX(-50%) rotate(-45deg);
 }

 /* Grid Background */
 .grid-bg {
     position: fixed;
     inset: 0;
     background-image:
         linear-gradient(var(--border) 1px, transparent 1px),
         linear-gradient(90deg, var(--border) 1px, transparent 1px);
     background-size: 100px 100px;
     opacity: 0.3;
     pointer-events: none;
     z-index: 0;
 }

 /* Gradient Orbs */
 .orb {
     position: fixed;
     border-radius: 50%;
     filter: blur(100px);
     opacity: 0.4;
     pointer-events: none;
     animation: float 20s ease-in-out infinite;
 }

 .orb-1 {
     top: 10%;
     left: 10%;
     width: 400px;
     height: 400px;

 }

 .orb-2 {
     bottom: 20%;
     right: 10%;
     width: 500px;
     height: 500px;

     animation-delay: -10s;
 }

 @keyframes float {

     0%,
     100% {
         transform: translate(0, 0) scale(1);
     }

     33% {
         transform: translate(30px, -30px) scale(1.1);
     }

     66% {
         transform: translate(-20px, 20px) scale(0.9);
     }
 }

 /* Footer */


 footer {
     border-top: 1px solid var(--border);
     padding: 100px 0 40px;
     margin-top: 0px;
     position: relative;
     z-index: 1;
 }

 .pre-footer {
     background-size: contain !important;
     background-position: bottom center !important;
     background-repeat: no-repeat !important;
     background-color: #fff !important;
     padding: 90px 0 0 0;
 }

 .prefill-footer {
     height: 150px;
     opacity: 0;
 }

 .footer-2 {
     color: #fff;
     background-color: #E22526;
     border-top: 0px solid var(--border);
     padding: 60px 0 20px;
     margin-top: 0px;
     position: relative;
     z-index: 1;
 }

 .footer-2 .footer-section p,
 .footer-2 .footer-section a,
 .footer-2 .footer-bottom a,
 .footer-2 .footer-bottom {
     color: var(--reverse-text);

 }

 .footer-2 .footer-section img {
     filter: invert(.05);
 }

 .footer-content {
     display: grid;
     grid-template-columns: 2fr repeat(3, 1fr);
     gap: 80px;
     margin-bottom: 10px;
 }

 .footer-section h3 {
     font-size: 14px;
     font-weight: 600;
     margin-bottom: 24px;
     letter-spacing: 0.05em;
     text-transform: uppercase;
     opacity: 0.5;
 }

 .footer-section p,
 .footer-section a {
     color: var(--text-secondary);
     text-decoration: none;
     display: block;
     margin-bottom: 16px;
     transition: color 0.3s ease;
     font-size: 15px;

 }

 .footer-section a:hover {
     color: var(--reverse-text-secondary);
     text-decoration: none;
 }

 .footer-brand {
     max-width: 350px;
 }

 .footer-brand .logo {
     font-size: 24px;
     margin-bottom: 20px;
     display: inline-block;
 }

 .footer-brand p {
     line-height: 1.8;
 }

 .social-links {
     display: flex;
     gap: 12px;
     margin-top: 30px;
 }

 .social-links a {
     width: 40px;
     height: 40px;
     display: flex;
     align-items: center;
     justify-content: center;
     border: 1px solid var(--border);
     text-decoration: none;
     color: var(--text-secondary);
     transition: all 0.3s ease;
     font-size: 32px;
 }

 .social-links a:hover {
     /* border-color: var(--accent); */
     color: var(--accent);
     transform: translateY(-3px);
 }

 .footer-bottom {
     padding-top: 40px;
     border-top: 1px solid var(--border);
     display: flex;
     justify-content: space-between;
     align-items: center;
     color: var(--text-secondary);
     font-size: 14px;
 }

 .footer-bottom a {
     color: var(--text-secondary);
     text-decoration: none;
     transition: color 0.3s ease;
 }

 .footer-bottom a:hover {
     color: var(--text);
 }

 /* Responsive */
 @media (max-width: 1024px) {


     .footer-brand {
         max-width: 100%;
     }

     .pre-footer {
         background-size: cover !important;

     }

     .container,
     .nav-container {
         padding: 0 30px;
     }

     .footer-content {
         grid-template-columns: 1fr 1fr;
         gap: 50px;
     }

     main {
         padding-top: 10px;
     }

     .hero {
         min-height: 10vh;
         display: block;
         overflow: hidden;
     }


     .hero-subtitle {
         font-size: 14px;
         border: 0;
         padding: 0;
     }
 }

 @media (max-width: 768px) {

     .prefill-footer {
         width: 100%;
     }

     .section-header {
         margin-bottom: 20px;
     }

     .social-links {
         display: inline-flex;
         margin: 0;
     }

     lottie-player {
         height: auto !important;
     }

     .card {
         padding: 1.5rem;
     }

     .container,
     .nav-container {
         padding: 0 20px;
     }

     .btn-primary {
         font-size: 12px;
         padding: 0.5rem 1rem;
     }

     .nav-links {
         display: none;
         position: fixed;
         top: 80px;
         left: 0;
         right: 0;
         box-shadow: 0px 5px 10px rgba(10, 10, 10, 0.05);
         backdrop-filter: blur(20px);
         /**/
         background: rgba(255, 255, 255, 1.0);
         flex-direction: column;
         padding: 20px 0;
         /* padding: 40px 20px; */
         /* margin: 10px; */
         height: 1000vh;
         line-height: 23vw;
         gap: 0px;
         border-top: 1px solid var(--border);
         transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
         font-size: 10vw;
         text-align: center;
         /* margin: 10px auto; /**/
         width: 100%;
     }

     .nav-links.active {
         display: table;
     }

     .nav-links a {
         font-size: 8vw;
     }

     .stats {
         padding: 10px 0;
     }

     nav.scrolled {
         padding: 20px 0;
         /* backdrop-filter: blur(20px) ;
        -webkit-backdrop-filter: blur(20px);/**/
         border-bottom: 1px solid var(--border);
     }

     nav.scrolled .nav-links {
         padding: 20px 0;
         top: 90px;
         backdrop-filter: brightness(0) contrast(10);
         background: rgba(245, 245, 245, 0.95);
         border-bottom: 1px solid var(--border);
     }

     nav.scrolled .nav-links.active {
         display: table;
     }


     .layout-grid,
     .stats-grid,
     .contact-grid,
     .social-grid {
         display: table;
         margin: auto;
     }

     .nav-links.active {
         display: flex;
     }

     .mobile-menu-toggle {
         display: flex;
     }

     .footer-content {
         grid-template-columns: 1fr;
         gap: 40px;
         text-align: center;
     }

     .footer-bottom {
         flex-direction: column;
         gap: 20px;
         text-align: center;
     }

     .service-detail,
     .info-item {
         margin-bottom: 2rem;
         padding-bottom: 2rem;
         border-bottom: 1px solid var(--border);
     }

     .social-link {
         padding: 5px 10px;
         aspect-ratio: 1.5;
     }
 }

 /* Utility Classes */
 .text-gradient {
     background: linear-gradient(135deg, var(--accent) 0%, var(--accent-secondary) 100%);
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent;
     background-clip: text;
 }

 .section {
     padding: 80px 0;
     position: relative;
     z-index: 1;
 }

 .section-header {
     max-width: 800px;
     margin-bottom: 80px;
 }

 .section-header h2 {
     font-size: clamp(40px, 5vw, 72px);
     margin-bottom: 24px;
     letter-spacing: -0.03em;
 }

 .section-header p {
     font-size: 18px;
     color: var(--text-secondary);
     line-height: 1.8;
 }

 .ebea-header {
     padding-top: 200px;
     background-repeat: no-repeat !important;
     background-size: cover !important;
     background-position: center !important;
 }

 .ebea-header img {
     opacity: 0;
 }

 .services-detailed {
     padding: 6rem 0;
 }

 .service-detail {
     margin-bottom: 6rem;
     padding-bottom: 6rem;
     border-bottom: 1px solid var(--border);
 }

 .service-detail:last-child {
     border-bottom: none;
     margin-bottom: 0;
     padding-bottom: 0;
 }

 .service-layout {
     display: grid;
     grid-template-columns: 200px 1fr;
     gap: 4rem;
     align-items: start;
 }

 .service-number-large {
     font-size: 120px;
     font-weight: 600;
     line-height: 1;
     letter-spacing: -0.05em;
     background: linear-gradient(135deg, var(--accent), var(--accent-secondary));
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent;
     background-clip: text;
     opacity: 0.3;
     position: sticky;
     top: 6rem;
 }

 .service-content {
     padding: 2rem;
     background: var(--glass);
     border: 1px solid var(--border);
     border-radius: 1rem;
 }

 .service-header {
     margin-bottom: 2rem;
 }

 .service-icon {
     font-size: 3rem;
     /* display: block; /**/
     margin-bottom: 1rem;
 }

 .service-title {
     font-size: 2.5rem;
     font-weight: 600;
     margin-bottom: 1rem;
 }

 .service-description {
     font-size: 1.25rem;
     color: var(--accent);
     margin-bottom: 1.5rem;
 }

 .service-full-description {
     font-size: 1.1rem;
     color: var(--text-secondary);
     line-height: 1.8;
     margin-bottom: 2rem;
 }

 .service-pricing {
     display: flex;
     align-items: baseline;
     gap: 0.5rem;
     margin-top: 2rem;
     padding-top: 2rem;
     border-top: 1px solid var(--border);
 }

 .pricing-label {
     color: var(--text-secondary);
     font-size: 0.9rem;
 }

 .pricing-value {
     font-size: 2rem;
     font-weight: 600;
     color: var(--accent);
 }

 .pricing-unit {
     color: var(--text-secondary);
 }

 /* Process Step Styles */
 .process-step {
     position: relative;
     padding: 2rem;
     background: var(--glass);
     border: 1px solid var(--border);
     border-radius: 1rem;
     transition: all 0.3s;
 }

 .process-step:hover {
     transform: translateY(-5px);
     border-color: var(--accent);
 }

 .step-number {
     font-size: 3rem;
     font-weight: 600;
     background: linear-gradient(135deg, var(--accent), var(--accent-secondary));
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent;
     background-clip: text;
     margin-bottom: 1rem;
 }

 .step-icon {
     font-size: 2rem;
     margin-bottom: 1rem;
     display: none;
 }

 .step-title {
     font-size: 1.5rem;
     font-weight: 600;
     margin-bottom: 1rem;
 }

 .step-description {
     color: var(--text-secondary);
     line-height: 1.6;
     margin-bottom: 1rem;
 }

 .step-duration {
     display: inline-block;
     padding: 0.25rem 0.75rem;
     background: var(--glass);
     border: 1px solid var(--border);
     border-radius: 1rem;
     font-size: 0.875rem;
     color: var(--accent);
 }

 /* Feature List Styles */
 .feature-list {
     list-style: none;
     padding: 0;
     margin: 2rem 0;
     display: grid;
     grid-template-columns: repeat(var(--feature-columns), 1fr);
     gap: 1rem;
 }

 .feature-item {
     display: flex;
     align-items: center;
     gap: 0.75rem;
     padding: 0.75rem;
     background: rgba(255, 0, 34, 0.05);
     border-radius: 0.5rem;
     transition: all 0.3s;
 }

 .feature-item:hover {
     background: rgba(255, 0, 34, 0.15);
     transform: translateX(5px);
 }

 .feature-icon {
     color: var(--accent);
     font-weight: 600;
     font-size: 1.1rem;
     flex-shrink: 0;
 }

 .feature-text {
     color: var(--text);
 }

 @media (max-width: 768px) {
     .service-layout {
         grid-template-columns: 1fr;
         gap: 2rem;
     }

     .service-number-large {
         font-size: 60px;
         position: static;
     }

     .feature-list {
         grid-template-columns: 1fr;
     }

     .ebea-header {
         padding-top: 100px;
         margin-top: 100px;
     }
 }



 /* Hero Section Styles */


 @keyframes gridMove {
     0% {
         transform: perspective(1000px) rotateX(60deg) translateZ(-200px) translateY(0);
     }

     100% {
         transform: perspective(1000px) rotateX(60deg) translateZ(-200px) translateY(80px);
     }
 }

 .particles-container {
     position: absolute;
     inset: 0;
     overflow: hidden;
     /*background-color: rgba(255, 255, 255, 0.5);*/
 }

 .particle {
     position: absolute;
     bottom: 0;
     width: 4px;
     height: 4px;
     background: var(--accent);
     border-radius: 50%;
     animation: particleFloat 15s ease-in infinite;
     opacity: 0;
 }

 @keyframes particleFloat {
     0% {
         bottom: 0;
         opacity: 0;
         transform: translateX(0) scale(0);
     }

     10% {
         opacity: 1;
         transform: translateX(20px) scale(1);
     }

     90% {
         opacity: 1;
     }

     100% {
         bottom: 100%;
         opacity: 0;
         transform: translateX(200px) scale(0);
     }
 }

 .holo-orb {
     position: absolute;
     border-radius: 50%;
     filter: blur(120px);
     opacity: 0.3;
 }

 .holo-orb-1 {
     width: 600px;
     height: 600px;

     top: -200px;
     left: -200px;
     animation: holoFloat 15s ease-in-out infinite;
 }

 .holo-orb-2 {
     width: 500px;
     height: 500px;

     bottom: -150px;
     right: -150px;
     animation: holoFloat 20s ease-in-out infinite reverse;
 }

 .holo-orb-3 {
     width: 400px;
     height: 400px;

     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     animation: holoFloat 18s ease-in-out infinite;
 }

 @keyframes holoFloat {

     0%,
     100% {
         transform: translate(0, 0) scale(1);
     }

     33% {
         transform: translate(50px, -50px) scale(1.1);
     }

     66% {
         transform: translate(-50px, 50px) scale(0.9);
     }
 }

 .scanlines {
     position: absolute;
     inset: 0;
     background: linear-gradient(transparent 50%,
             rgba(0, 255, 136, 0.02) 50%);
     background-size: 100% 4px;
     pointer-events: none;
     animation: scan 8s linear infinite;
 }

 @keyframes scan {
     0% {
         transform: translateY(0);
     }

     100% {
         transform: translateY(4px);
     }
 }

 .hero-content {
     position: relative;
     z-index: 1;
     text-align: center;
     max-width: 1200px;
     padding: 2rem;
 }

 .hero-title .line:nth-child(1) span {
     animation-delay: 0.1s;
 }

 .hero-title .line:nth-child(2) span {
     animation-delay: 0.2s;
 }

 .hero-title .line:nth-child(3) span {
     animation-delay: 0.3s;
 }

 @keyframes slideUp {
     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 .text-gradient {
     background: linear-gradient(135deg, var(--accent), var(--accent-secondary));
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent;
     background-clip: text;
     position: relative;
 }

 .glitch-text {
     position: relative;
 }

 .glitch-text::before,
 .glitch-text::after {
     content: attr(data-text);
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     opacity: 0;
 }

 .hero-title:hover .glitch-text::before {
     animation: glitch1 0.3s infinite;
     color: var(--accent);
     z-index: -1;
 }

 .hero-title:hover .glitch-text::after {
     animation: glitch2 0.3s infinite;
     color: var(--accent-secondary);
     z-index: -2;
 }

 @keyframes glitch1 {

     0%,
     100% {
         transform: translate(0);
     }

     33% {
         transform: translate(-2px, 2px);
     }

     66% {
         transform: translate(2px, -2px);
     }
 }

 @keyframes glitch2 {

     0%,
     100% {
         transform: translate(0);
     }

     33% {
         transform: translate(2px, -2px);
     }

     66% {
         transform: translate(-2px, 2px);
     }
 }

 .hero-subtitle {
     font-size: clamp(1rem, 2vw, 1.25rem);
     color: var(--text-secondary);
     max-width: 600px;
     margin: 0 auto 3rem;
     line-height: 1.6;
     animation: fadeIn 0.8s 0.4s cubic-bezier(0.4, 0, 0.2, 1) backwards;
 }

 .scroll-text {
     writing-mode: vertical-rl;
     font-size: 0.75rem;
     letter-spacing: 0.2em;
     color: var(--text-secondary);
 }

 .scroll-line {
     width: 1px;
     height: 60px;
     background: linear-gradient(to bottom, transparent, var(--accent), transparent);
     animation: scrollPulse 2s ease-in-out infinite;
 }

 @keyframes scrollPulse {

     0%,
     100% {
         opacity: 0.3;
         transform: scaleY(1);
     }

     50% {
         opacity: 1;
         transform: scaleY(1.2);
     }
 }

 @keyframes fadeIn {
     from {
         opacity: 0;
         transform: translateY(20px);
     }

     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 /* Marquee Styles */
 .marquee-container {
     padding: 25px 0;
     background: var(--glass);
     border-top: 1px solid var(--border);
     border-bottom: 1px solid var(--border);
     overflow: hidden;
 }

 .marquee-content {
     display: flex;
     gap: 4rem;
     animation: marquee var(--marquee-speed) linear infinite;
     width: fit-content;
 }

 .marquee-left {
     animation-direction: normal;
 }

 .marquee-right {
     animation-direction: reverse;
 }

 @keyframes marquee {
     from {
         transform: translateX(0);
     }

     to {
         transform: translateX(-33.333%);
     }
 }

 .marquee-item {
     font-size: 2rem;
     font-weight: 600;
     white-space: nowrap;
     color: var(--text);
 }

 .marquee-separator {
     color: var(--accent);
 }

 /* Card Styles */
 .card {
     position: relative;
     padding: 2.5rem;
     background: var(--glass);
     border: 1px solid var(--border);
     border-radius: 1rem;
     transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
     /**/
     overflow: hidden;
 }

 .card::before {
     content: '';
     position: absolute;
     inset: 0;
     background: linear-gradient(135deg, var(--accent), var(--accent-secondary));
     opacity: 0;
     transition: opacity 0.4s;
 }

 .card:hover {
     transform: translateY(-0px);
     border-color: var(--accent);
 }

 .card:hover::before {
     opacity: 0.05;
 }

 .card-number {
     position: absolute;
     top: 1rem;
     right: 1rem;
     font-size: 5rem;
     font-weight: 600;
     opacity: 0.05;
     line-height: 1;
 }

 .card-badge {
     display: inline-block;
     padding: 0.25rem 0.75rem;
     background: var(--accent);
     color: var(--bg);
     font-size: 0.75rem;
     font-weight: 600;
     border-radius: 1rem;
     margin-bottom: 1rem;
 }

 .card-icon {
     display: none;
     font-size: 2.5rem;
     margin-bottom: 1rem;
 }

 .card-content {
     position: relative;
     z-index: 1;
 }

 .card-title {
     font-size: 1.5rem;
     font-weight: 600;
     margin-bottom: 1rem;
 }

 .card-description {
     color: var(--text-secondary);
     line-height: 1.6;
     margin-bottom: 1.5rem;
 }

 .card-link {
     display: inline-flex;
     align-items: center;
     gap: 0.5rem;
     color: var(--accent);
     text-decoration: none;
     font-weight: 500;
     transition: gap 0.3s;
 }

 .card-link:hover {
     gap: 1rem;
 }

 /* Section Styles */
 section:not(.page-hero) {
     /* background: var(--bg-alt); /**/
 }

 .section {
     padding: 3rem 0;
 }

 .spacing-small {
     padding: 3rem 0;
 }

 .spacing-large {
     padding: 9rem 0;
 }

 .section-dark {
     background: var(--bg-alt) !important;
 }

 .section-gradient {
     background: linear-gradient(180deg, transparent, rgba(0, 255, 136, 0.02), transparent);
 }

 .section-header {
     /* text-align: center;*/
     margin-bottom: 4rem;
 }

 .section-title {
     font-size: clamp(2.4rem, 5vw, 3.5rem);
     font-weight: 600;
     margin-bottom: 1rem;
 }

 .section-subtitle {
     font-size: 1.25rem;
     color: var(--text-secondary);
     max-width: 600px;
     /* margin: 0 auto; */
 }

 .section-content {
     position: relative;
 }

 /* Stat Styles */
 .stat-item {
     text-align: center;
     padding: 2rem;
 }

 .stat-value {
     display: flex;
     align-items: center;
     justify-content: center;
     gap: 0.25rem;
     font-size: clamp(2.5rem, 5vw, 4rem);
     font-weight: 600;
     background: linear-gradient(135deg, var(--accent), var(--accent-secondary));
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent;
     background-clip: text;
     margin-bottom: 0.5rem;
 }

 .stat-label {
     color: var(--text-secondary);
     font-size: 1rem;
 }

 /* CTA Styles */
 .cta-section {
     position: relative;
     padding: 6rem 0;
     text-align: center;
     overflow: hidden;
     width: 100%;
 }

 .cta-background {
     position: absolute;
     inset: 0;
     z-index: 0;
 }

 .cta-gradient .cta-background {
     background: #E22526;
     color: #fff;
 }

 .cta-gradient .cta-title,
 .cta-gradient .cta-description {
     color: #fff;
 }

 .cta-background .gradient-orb {
     width: 800px;
     height: 800px;
     background: linear-gradient(135deg, var(--accent), var(--accent-secondary));
     border-radius: 50%;
     filter: blur(150px);
     opacity: 0.2;
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     display: none;
 }

 .cta-content {
     position: relative;
     z-index: 1;
 }

 .cta-title {
     font-size: clamp(2.4rem, 5vw, 3.5rem);
     font-weight: 600;
     margin-bottom: 1rem;
 }

 .cta-description {
     font-size: 1.25rem;
     margin-bottom: 2rem;
 }

 .cta-buttons {
     display: flex;
     align-items: center;
     justify-content: center;
     gap: 1rem;
     flex-wrap: wrap;
 }

 .btn-secondary {
     display: inline-flex;
     align-items: center;
     gap: 0.75rem;
     padding: 1rem 2rem;
     background: transparent;
     color: var(--text);
     font-weight: 600;
     border: 1px solid var(--border);
     border-radius: 2rem;
     text-decoration: none;
     transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
 }

 .btn-secondary:hover {
     border-color: var(--accent);
     transform: translateY(-2px);
 }

 /* Responsive */
 @media (max-width: 768px) {
     .section {
         padding: 4rem 0;
     }

     .layout-grid {
         grid-template-columns: 1fr;
     }

     .scroll-indicator {
         display: none;
     }
 }

 /* Table Component Styles */
 .table-container {
     background: var(--bg);
     border: 1px solid var(--border);
     border-radius: 1rem;
     overflow: hidden;
     transition: all 0.3s;
 }

 .table-container:hover {
     box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
 }

 .table-header {
     display: flex;
     justify-content: space-between;
     align-items: center;
     padding: 1.5rem;
     border-bottom: 1px solid var(--border);
     background: var(--glass);
 }

 .table-title {
     font-size: 1.25rem;
     font-weight: 600;
     color: var(--text);
     margin: 0;
 }

 .table-search {
     padding: 0.5rem 1rem;
     background: var(--bg);
     border: 1px solid var(--border);
     border-radius: 0.5rem;
     color: var(--text);
     font-size: 0.875rem;
     width: 200px;
     transition: all 0.3s;
 }

 .table-search:focus {
     outline: none;
     border-color: var(--accent);
     background: var(--glass);
 }

 .table-wrapper {
     overflow-x: auto;
 }

 .table {
     width: 100%;
     border-collapse: collapse;
     font-size: 0.875rem;
 }

 .table thead {
     background: var(--glass);
 }

 .table th {
     padding: 1rem 1.5rem;
     text-align: left;
     font-weight: 600;
     color: var(--text-secondary);
     text-transform: uppercase;
     font-size: 0.75rem;
     letter-spacing: 0.05em;
     border-bottom: 1px solid var(--border);
 }

 .table td {
     padding: 1rem 1.5rem;
     border-bottom: 1px solid var(--border);
     color: var(--text);
 }

 .table tbody tr {
     transition: all 0.2s;
 }

 .table tbody tr:hover {
     background: var(--glass);
 }

 .table tbody tr:last-child td {
     border-bottom: none;
 }

 .table-striped tbody tr:nth-child(odd) {
     background: rgba(0, 0, 0, 0.02);
 }

 .table-striped tbody tr:nth-child(odd):hover {
     background: rgba(0, 0, 0, 0.05);
 }

 .table-bordered th,
 .table-bordered td {
     border: 1px solid var(--border);
 }

 .table-hover tbody tr:hover {
     background: var(--glass);
 }

 .table-empty {
     padding: 3rem 1.5rem;
     text-align: center;
     color: var(--text-secondary);
 }

 .empty-icon {
     font-size: 3rem;
     margin-bottom: 1rem;
     opacity: 0.3;
 }

 .empty-text {
     font-size: 1rem;
 }

 .table-pagination {
     display: flex;
     justify-content: space-between;
     align-items: center;
     padding: 1rem 1.5rem;
     border-top: 1px solid var(--border);
     background: var(--glass);
 }

 .pagination-info {
     font-size: 0.875rem;
     color: var(--text-secondary);
 }

 .pagination-controls {
     display: flex;
     align-items: center;
     gap: 1rem;
 }

 .pagination-btn {
     padding: 0.5rem 1rem;
     background: var(--bg);
     border: 1px solid var(--border);
     border-radius: 0.5rem;
     color: var(--text);
     font-size: 0.875rem;
     cursor: pointer;
     transition: all 0.3s;
 }

 .pagination-btn:hover:not(:disabled) {
     background: var(--glass);
     border-color: var(--accent);
     color: var(--accent);
 }

 .pagination-btn:disabled {
     opacity: 0.5;
     cursor: not-allowed;
 }

 .pagination-page {
     font-size: 0.875rem;
     color: var(--text-secondary);
     font-weight: 500;
 }

 .sort-indicator {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     margin-left: 0.5rem;
     cursor: pointer;
     padding: 0.25rem;
     transition: all 0.3s;
     border-radius: 0.25rem;
 }

 .sort-indicator:hover {
     background: var(--glass);
     color: var(--accent);
 }

 .sort-icon {
     font-size: 0.75rem;
     font-weight: 600;
 }

 /* Responsive Table */
 @media (max-width: 768px) {
     .table-container {
         border-radius: 0;
         border-left: none;
         border-right: none;
     }

     .table-header {
         flex-direction: column;
         gap: 1rem;
         padding: 1rem;
     }

     .table-search {
         width: 100%;
     }

     .table th,
     .table td {
         padding: 0.75rem 1rem;
         font-size: 0.8rem;
     }

     .table-pagination {
         flex-direction: column;
         gap: 1rem;
         text-align: center;
     }

     .pagination-controls {
         flex-direction: column;
         gap: 0.5rem;
     }
 }

 /* ═══════════════════════════════════════════════════════════════
   CONTACT FORM — Redesign light theme
   Override complet des règles précédentes (chargé en dernier)
   ═══════════════════════════════════════════════════════════════ */

 /* ── Layout ──────────────────────────────────────────────────── */
 .contact-section {
     padding: 5rem 0 7rem;
 }

 .contact-grid {
     display: grid;
     grid-template-columns: 1fr 1.6fr;
     gap: 5rem;
     align-items: start;
     padding: 4rem 0;
 }

 /* ── Info panel ──────────────────────────────────────────────── */
 .contact-info {
     padding: 0;
     position: sticky;
     top: 8rem;
 }

 .info-title {
     font-size: clamp(3.6rem, 3vw, 2.4rem);
     font-weight: 700;
     letter-spacing: -0.025em;
     line-height: 1.15;
     margin-bottom: 0.9rem;
     color: #1c1c1c;
 }

 .info-description {
     font-size: 0.95rem;
     color: rgba(28, 28, 28, 0.55);
     line-height: 1.75;
     margin-bottom: 2.5rem;
 }

 .contact-items {
     display: flex;
     flex-direction: column;
     gap: 0;
     margin-bottom: 2rem;
 }

 .info-item {
     display: flex;
     flex-direction: column;
     gap: 0.25rem;
     padding: 1.1rem 0;
     border-bottom: 1px solid rgba(0, 0, 0, 0.08);
     margin-bottom: 0;
 }

 .info-item:first-child {
     border-top: 1px solid rgba(0, 0, 0, 0.08);
 }

 .info-label {
     font-size: 0.67rem;
     font-weight: 700;
     letter-spacing: 0.13em;
     text-transform: uppercase;
     color: rgba(28, 28, 28, 0.38);
     margin-bottom: 0;
 }

 .info-value {
     font-size: 0.95rem;
     color: #1c1c1c;
     font-weight: 500;
     margin-bottom: 0;
 }

 .info-value a {
     color: #1c1c1c;
     text-decoration: none;
     border-bottom: 1px solid transparent;
     transition: color 0.2s, border-color 0.2s;
 }

 .info-value a:hover {
     color: #BC171F;
     border-bottom-color: rgba(188, 23, 31, 0.4);
 }

 /* ── Availability badge ──────────────────────────────────────── */
 .availability {
     display: inline-flex;
     align-items: center;
     gap: 0.6rem;
     padding: 0.5rem 1rem;
     background: rgba(34, 197, 94, 0.07);
     border: 1px solid rgba(34, 197, 94, 0.2);
     border-radius: 100px;
     margin-top: 2rem;
 }

 .availability-status {
     width: 7px;
     height: 7px;
     border-radius: 50%;
     flex-shrink: 0;
     background: #22c55e;
     box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4);
     animation: cf-pulse 1.8s ease-out infinite;
 }

 .availability-text {
     font-size: 0.82rem;
     color: #15803d;
     font-weight: 500;
 }

 @keyframes cf-pulse {
     0% {
         box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4);
     }

     70% {
         box-shadow: 0 0 0 6px rgba(34, 197, 94, 0);
     }

     100% {
         box-shadow: 0 0 0 0 rgba(34, 197, 94, 0);
     }
 }

 /* ── Form card ───────────────────────────────────────────────── */
 .contact-form {
     background: #ddd;
     border: none !important;
     border-radius: 16px;
     padding: 2.75rem;
     display: flex;
     flex-direction: column;
     gap: 0;
 }

 /* ── Form rows & groups ──────────────────────────────────────── */
 .form-row {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 1.1rem;
     margin-bottom: 0;
 }

 .form-row.full-width {
     grid-template-columns: 1fr;
 }

 .form-group {
     margin-bottom: 1.35rem;
     position: relative;
 }

 .form-group label,
 .form-label {
     display: block;
     font-size: 0.69rem;
     font-weight: 700;
     letter-spacing: 0.1em;
     text-transform: uppercase;
     color: rgba(28, 28, 28, 0.45);
     margin-bottom: 0.55rem;
 }

 /* ── Inputs ──────────────────────────────────────────────────── */
 .form-group input,
 .form-group select,
 .form-group textarea,
 .form-input {
     width: 100%;
     padding: 0.85rem 1rem;
     background: #fff;
     border: 1.5px solid rgba(0, 0, 0, 0.13);
     border-radius: 8px;
     color: #1c1c1c;
     font-size: 0.93rem;
     font-family: 'Space Grotesk', system-ui, sans-serif;
     line-height: 1.5;
     transition: border-color 0.2s ease, box-shadow 0.2s ease;
     outline: none;
     -webkit-appearance: none;
     appearance: none;
 }

 .form-group input::placeholder,
 .form-group textarea::placeholder,
 .form-input::placeholder {
     color: rgba(28, 28, 28, 0.28);
 }

 .form-group input:focus,
 .form-group select:focus,
 .form-group textarea:focus,
 .form-input:focus {
     border-color: #BC171F;
     box-shadow: 0 0 0 3px rgba(188, 23, 31, 0.09);
     background: #fff;
     outline: none;
 }

 .form-group textarea,
 textarea.form-input {
     resize: vertical;
     min-height: 140px;
     line-height: 1.75;
 }

 /* Select custom arrow (dark on white) */
 .form-group select,
 select.form-input {
     cursor: pointer;
     background-image: url("data:image/svg+xml,%3Csvg width='11' height='7' viewBox='0 0 11 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5.5 5.5L10 1' stroke='%231c1c1c' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
     background-repeat: no-repeat;
     background-position: right 1rem center;
     padding-right: 2.5rem;
 }

 .form-group option {
     background: #fff;
     color: #1c1c1c;
 }

 /* Input wrapper (icon) */
 .input-wrapper {
     position: relative;
 }

 /* ── Required star ───────────────────────────────────────────── */
 .required {
     color: #BC171F;
     margin-left: 0.15rem;
 }

 /* ── Submit button ───────────────────────────────────────────── */
 .contact-form button[type="submit"],
 .contact-form .btn.btn-primary {
     display: flex;
     align-items: center;
     justify-content: space-between;
     width: 100%;
     padding: 1rem 1.4rem;
     background: #1c1c1c;
     color: #fff;
     border: none;
     border-radius: 8px;
     font-family: 'Space Grotesk', system-ui, sans-serif;
     font-size: 0.92rem;
     font-weight: 600;
     letter-spacing: 0.01em;
     cursor: pointer;
     transition: background 0.2s ease, transform 0.15s ease;
     margin-top: 0.5rem;
 }

 .contact-form button[type="submit"]:hover,
 .contact-form .btn.btn-primary:hover {
     background: #BC171F;
     transform: translateY(-1px);
     box-shadow: 0 6px 20px rgba(188, 23, 31, 0.18);
 }

 /* ── Feedback messages ───────────────────────────────────────── */
 .success-message {
     display: flex;
     align-items: flex-start;
     gap: 0.75rem;
     padding: 1rem 1.25rem;
     background: rgba(34, 197, 94, 0.07);
     border: 1px solid rgba(34, 197, 94, 0.25);
     border-radius: 8px;
     color: #15803d;
     margin-bottom: 1.5rem;
     font-size: 0.88rem;
     line-height: 1.6;
 }

 .error-message {
     padding: 1rem 1.25rem;
     background: rgba(188, 23, 31, 0.05);
     border: 1px solid rgba(188, 23, 31, 0.2);
     border-radius: 8px;
     color: #BC171F;
     margin-bottom: 1.5rem;
     font-size: 0.88rem;
 }

 .error-message ul {
     list-style: none;
     margin-top: 0.5rem;
     display: flex;
     flex-direction: column;
     gap: 0.25rem;
 }

 .error-message li {
     margin: 0;
     padding-left: 0;
 }

 /* ── Form footer ─────────────────────────────────────────────── */
 .form-footer {
     margin-top: 1.25rem;
     padding-top: 1.25rem;
     border-top: 1px solid rgba(0, 0, 0, 0.08);
     font-size: 0.76rem;
     color: rgba(28, 28, 28, 0.38);
     line-height: 1.8;
 }

 .form-footer a {
     color: #BC171F;
     text-decoration: none;
 }

 .form-footer a:hover {
     text-decoration: underline;
 }

 /* ── Responsive ──────────────────────────────────────────────── */
 @media (max-width: 1024px) {
     .contact-grid {
         grid-template-columns: 1fr;
         gap: 3rem;
         padding: 2rem 0;
     }

     .contact-info {
         position: static;
     }

     .contact-items {
         display: grid;
         grid-template-columns: repeat(2, 1fr);
         gap: 0;
     }

     .info-item:nth-child(odd) {
         border-right: 1px solid rgba(0, 0, 0, 0.08);
         padding-right: 1.5rem;
     }

     .info-item:nth-child(even) {
         padding-left: 1.5rem;
     }
 }

 @media (max-width: 640px) {
     .contact-grid {
         gap: 2rem;
     }

     .contact-items {
         grid-template-columns: 1fr;
     }

     .info-item:nth-child(odd) {
         border-right: none;
         padding-right: 0;
     }

     .info-item:nth-child(even) {
         padding-left: 0;
     }

     .contact-form {
         padding: 1.5rem;
         border-radius: 12px;
         margin: 0;
     }

     .form-row {
         grid-template-columns: 1fr;
     }
 }