/* ============================================ */
/* RESPONSIVE DESIGN - Version corrigée mobile */
/* Mobile First Approach + Navigation fixée    */
/* ============================================ */

/* === DESKTOP FIRST FIXES === */
@media (min-width: 769px) {
	/* Force hide mobile elements on desktop */
	.nav-toggle {
		display: none !important;
	}

	.nav-overlay {
		display: none !important;
	}

	/* Reset menu for desktop */
	.nav-menu {
		position: static !important;
		width: auto !important;
		height: auto !important;
		background: transparent !important;
		flex-direction: row !important;
		justify-content: flex-end !important;
		align-items: center !important;
		padding: 0 !important;
		box-shadow: none !important;
		border: none !important;
		transform: none !important;
		transition: none !important;
		/* z-index: auto !important; */
		overflow: visible !important;
	}
}

@media (min-width: 769px) {
	.hero .container {
		margin-top: -40px;
		margin-bottom: -40px;
	}
}

/* === TABLET (max-width: 1024px) === */
@media (max-width: 1024px) {
	/* Hero adjustments */
	.hero .container {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.hero-visual {
		display: none;
	}

	.hero-actions {
		justify-content: center;
		flex-wrap: wrap;
	}

	.hero-metrics {
		justify-content: center;
	}

	/* Process cards */
	.process-cards {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Portfolio grid */
	.portfolio-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.tech-benefits {
		padding: var(--space-xl);
	}
}

/* === MOBILE (max-width: 768px) === */
@media (max-width: 768px) {
	/* Typography scaling */
	:root {
		--text-7xl: 3.5rem;
		--text-6xl: 3rem;
		--text-5xl: 2.5rem;
		--text-4xl: 2rem;
		--text-3xl: 1.75rem;
		--text-2xl: 1.5rem;
		--text-xl: 1.25rem;
	}

	/* ============================= */
	/* NAVIGATION MOBILE - CRITIQUE   */
	/* ============================= */

	/* Force l'affichage du burger */
	.nav-toggle {
		display: flex !important;
		z-index: 1002 !important;
		position: relative !important;
	}

	/* Container navbar - débordement fixé */
	.navbar {
		width: 100vw !important;
		max-width: 100vw !important;
		left: 0 !important;
		right: 0 !important;
		margin: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		overflow: visible !important; /* Permet au menu de déborder */
		z-index: 999 !important; /* Sous le menu mobile */
	}

	.navbar .container {
		padding: 0 var(--space-md) !important;
		margin: 0 !important;
		max-width: 100% !important;
		width: 100% !important;
		box-sizing: border-box !important;
		overflow: visible !important;
	}

	/* Brand responsive */
	.nav-brand {
		max-width: calc(100vw - 80px) !important;
		gap: var(--space-sm) !important;
		z-index: 1000 !important;
		flex-shrink: 0 !important;
	}

	.brand-text {
		font-size: var(--text-lg) !important;
		max-width: 200px !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
	}

	.logo-animated {
		width: 40px !important;
		height: 40px !important;
		flex-shrink: 0 !important;
	}

	/* Menu mobile - Position et z-index critiques */
	.nav-menu {
		position: fixed !important;
		top: 0 !important;
		right: -100% !important;
		width: 85% !important;
		max-width: 350px !important;
		height: 100vh !important;
		height: 100dvh !important; /* Support moderne */
		background: #0a0a0a !important;
		border-left: 2px solid #7da8f5 !important;
		flex-direction: column !important;
		justify-content: center !important;
		align-items: center !important;
		padding: var(--space-xl) !important;
		box-shadow: -10px 0 30px rgba(0, 0, 0, 0.5) !important;
		transition: right 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) !important;
		z-index: 1001 !important; /* CRITIQUE - Au-dessus du héro */
		overflow-y: auto !important;
		box-sizing: border-box !important;
		-webkit-overflow-scrolling: touch !important;
	}

	.nav-menu.active {
		right: 0 !important;
	}

	/* Liens menu mobile */
	.nav-menu a {
		color: #f3f4f6 !important;
		font-size: var(--text-lg) !important;
		padding: var(--space-md) var(--space-lg) !important;
		margin: var(--space-xs) 0 !important;
		border-radius: var(--radius-lg) !important;
		transition: all var(--transition-base) !important;
		text-align: center !important;
		width: 100% !important;
		max-width: 100% !important;
		background: rgba(255, 255, 255, 0.05) !important;
		border: 1px solid rgba(255, 255, 255, 0.1) !important;
		box-sizing: border-box !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
		display: block !important;
		text-decoration: none !important;
	}

	.nav-menu a:hover {
		background: rgba(125, 168, 245, 0.1) !important;
		border-color: rgba(125, 168, 245, 0.3) !important;
		color: #a8c7ff !important;
		transform: translateX(10px) !important;
	}

	/* CTA menu mobile */
	.nav-menu .nav-cta {
		background: linear-gradient(135deg, #7da8f5, #c4b5fd) !important;
		color: #000000 !important;
		border: none !important;
		margin-top: var(--space-xl) !important;
		font-weight: var(--font-semibold) !important;
		box-shadow: 0 10px 30px rgba(125, 168, 245, 0.4) !important;
	}

	.nav-menu .nav-cta:hover {
		transform: translateY(-2px) !important;
		box-shadow: 0 15px 40px rgba(125, 168, 245, 0.6) !important;
		color: #000000 !important;
	}

	/* Overlay - z-index critique */
	.nav-overlay {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		width: 100vw !important;
		height: 100vh !important;
		background: rgba(0, 0, 0, 0.5) !important;
		backdrop-filter: blur(2px) !important;
		opacity: 0 !important;
		visibility: hidden !important;
		transition: all 0.3s ease !important;
		z-index: 99 !important; /* Sous le menu mais au-dessus du contenu */
	}

	.nav-overlay.active {
		opacity: 1 !important;
		visibility: visible !important;
	}

	/* Hero - z-index réduit pour navigation */
	.hero {
		z-index: 1 !important;
		position: relative !important;
	}

	/* Sections - z-index contrôlé */
	section {
		z-index: 1 !important;
		position: relative !important;
	}

	/* ============================= */
	/* RESTE DU RESPONSIVE MOBILE     */
	/* ============================= */

	/* Container padding */
	.container {
		padding: 0 var(--space-md);
	}

	/* Section spacing */
	section {
		padding: var(--space-3xl) 0;
	}

	/* Hero mobile */
	.hero {
		min-height: 90vh;
		min-height: 90dvh;
		padding-top: var(--space-4xl);
		padding-bottom: var(--space-2xl);
	}

	.hero-title {
		font-size: var(--text-4xl);
	}

	.hero-subtitle {
		font-size: var(--text-lg);
	}

	.hero-actions {
		flex-direction: column;
		width: 100%;
	}

	.hero-actions button {
		width: 100%;
	}

	.hero-metrics {
		gap: var(--space-xl);
	}

	.floating-card {
		display: none;
	}

	/* Process cards mobile */
	.process-cards {
		grid-template-columns: 1fr;
		gap: var(--space-lg);
	}

	.process-card {
		padding: var(--space-xl);
	}

	/* Portfolio mobile */
	.portfolio-grid {
		grid-template-columns: 1fr;
		gap: var(--space-lg);
	}

	.portfolio-card .card-image {
		height: 250px;
	}

	/* CTA mobile */
	.cta-content {
		padding: var(--space-2xl) 0;
	}

	.btn-glow {
		padding: var(--space-md) var(--space-xl);
		font-size: var(--text-base);
	}

	.tech-benefits {
		padding: var(--space-lg);
	}

	/* Contact form mobile */
	.contact-wrapper {
		grid-template-columns: 1fr;
	}

	/* Services mobile */
	.services-grid {
		grid-template-columns: 1fr;
	}

	/* Explications mobile */
	.explications-grid {
		grid-template-columns: 1fr;
	}

	.benefits-comparison {
		grid-template-columns: 1fr;
	}

	/* Process timeline mobile */
	.process-timeline::before {
		left: 30px;
	}

	.step-number {
		width: 40px;
		height: 40px;
		font-size: var(--text-lg);
	}

	/* About mobile */
	.about-content {
		grid-template-columns: 1fr;
	}

	.about-image {
		display: none;
	}

	/* Prévention scroll body quand menu ouvert */
	body.menu-open {
		overflow: hidden !important;
		position: fixed !important;
		width: 100% !important;
		height: 100% !important;
	}
}

/* === SMALL MOBILE (max-width: 480px) === */
@media (max-width: 480px) {
	/* Even smaller typography */
	:root {
		--text-7xl: 3rem;
		--text-6xl: 2.5rem;
		--text-5xl: 2rem;
		--text-4xl: 1.75rem;
		--text-3xl: 1.5rem;
	}

	/* Navigation encore plus responsive */
	.nav-toggle {
		width: 56px !important;
		height: 56px !important;
	}

	.nav-menu {
		width: 90% !important;
		max-width: 320px !important;
		padding: var(--space-lg) !important;
	}

	.nav-menu a {
		font-size: var(--text-base) !important;
		padding: var(--space-sm) var(--space-md) !important;
	}

	/* Hero adjustments */
	.hero-title {
		font-size: var(--text-3xl);
	}

	.hero-subtitle {
		font-size: var(--text-base);
	}

	.hero-metrics {
		gap: var(--space-lg);
	}

	.metric-value {
		font-size: var(--text-2xl);
	}

	/* Buttons */
	.btn-premium,
	.btn-glass {
		padding: var(--space-sm) var(--space-lg);
		font-size: var(--text-sm);
	}

	/* Cards */
	.process-card {
		padding: var(--space-lg);
	}

	.card-number {
		font-size: var(--text-3xl);
	}
}

/* === LARGE SCREENS (min-width: 1536px) === */
@media (min-width: 1536px) {
	.container {
		max-width: var(--container-2xl);
	}

	/* Scale up hero elements */
	.hero-3d-element {
		width: 500px;
		height: 500px;
	}

	.orbit-item {
		width: 100px;
		height: 100px;
	}
}

/* === HOVER EFFECTS (Desktop only) === */
@media (pointer: fine) {
	.btn-premium:hover::before {
		left: 100%;
	}

	.process-card:hover {
		transform: translateY(-8px);
	}

	.portfolio-card:hover {
		transform: translateY(-8px) scale(1.02);
	}
}

/* === ACCESSIBILITY === */

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	/* Keep essential mobile menu transitions */
	.nav-menu,
	.nav-overlay {
		transition-duration: 0.2s !important;
	}
}

/* High contrast support */
@media (prefers-contrast: high) {
	.nav-menu {
		border-left-width: 4px !important;
		background: #000000 !important;
	}

	.nav-menu a {
		border-width: 2px !important;
		font-weight: 600 !important;
	}

	.nav-toggle {
		border-width: 2px !important;
	}
}

/* Print styles */
@media print {
	.navbar,
	.hero-scroll-indicator,
	.btn-premium,
	.btn-glass,
	.btn-glow,
	.nav-toggle,
	.nav-menu,
	.nav-overlay {
		display: none !important;
	}

	body {
		font-size: 12pt;
		line-height: 1.5;
		color: #000;
		background: #fff;
		overflow: auto !important;
		position: static !important;
	}

	.hero {
		min-height: auto;
		padding: 20px 0;
	}

	section {
		page-break-inside: avoid;
	}
}

/* === FOOTER RESPONSIVE === */

/* Tablets (1024px et moins) */
@media (max-width: 1024px) {
	.footer-modern {
		padding: var(--space-2xl) 0 var(--space-lg);
	}

	.footer-links {
		gap: var(--space-xl);
	}

	.footer-content {
		gap: var(--space-xl);
	}
}

/* Tablets portrait (768px et moins) */
@media (max-width: 768px) {
	.footer-links {
		gap: var(--space-xl);
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		text-align: center;
	}

	.hero-scroll-indicator {
		display: none;
	}

	.footer-social {
		justify-content: center;
	}

	.footer-bottom {
		flex-direction: column;
		text-align: center;
		gap: var(--space-lg);
	}

	.footer-legal {
		justify-content: center;
		gap: var(--space-md);
	}

	.footer-phone {
		font-size: var(--text-base);
		justify-content: center !important;
	}
}

/* Mobiles (480px et moins) */
@media (max-width: 480px) {
	.footer-modern {
		padding: var(--space-xl) 0 var(--space-md);
	}

	.footer-content {
		gap: var(--space-xl);
	}

	.footer-links {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: var(--space-lg);
		text-align: center;
	}

	.footer-links h4 {
		font-size: var(--text-lg);
		margin-bottom: var(--space-sm);
	}

	.footer-phone {
		font-size: var(--text-base);
		justify-content: center !important;
	}

	.btn-sm {
		width: 100%;
		max-width: 200px;
		text-align: center;
	}

	.footer-legal {
		flex-direction: column;
		gap: var(--space-sm);
	}

	.footer-legal a {
		font-size: var(--text-xs);
	}

	.footer-bottom p {
		font-size: var(--text-xs);
	}
}

/* Très petits mobiles (360px et moins) */
@media (max-width: 360px) {
	.footer-modern {
		padding: var(--space-lg) 0 var(--space-sm);
	}

	.footer-content {
		padding-bottom: var(--space-lg);
	}

	.footer-links {
		gap: var(--space-md);
	}

	.footer-social a {
		width: 36px;
		height: 36px;
	}

	.footer-phone {
		flex-direction: column;
		gap: var(--space-xs);
		justify-content: center !important;
	}

	.nav-menu {
		width: 95% !important;
		max-width: 300px !important;
	}

	.nav-menu a {
		font-size: var(--text-sm) !important;
		padding: var(--space-xs) var(--space-sm) !important;
	}
}

/* === LANDSCAPE MOBILE SUPPORT === */
@media (max-width: 768px) and (orientation: landscape) {
	.nav-menu {
		height: 100vh !important;
		height: 100dvh !important;
		padding: var(--space-md) !important;
	}

	.nav-menu a {
		padding: var(--space-xs) var(--space-md) !important;
		margin: 2px 0 !important;
		font-size: var(--text-base) !important;
	}
}

/* === TOUCH DEVICE OPTIMIZATIONS === */
@media (pointer: coarse) {
	/* Larger touch targets */
	.nav-toggle {
		min-width: 48px !important;
		min-height: 48px !important;
	}

	.nav-menu a {
		min-height: 48px !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
	}

	/* Better scroll on iOS */
	.nav-menu {
		-webkit-overflow-scrolling: touch !important;
	}
}

/* === ANDROID SPECIFIC FIXES === */
@supports (-webkit-appearance: none) {
	@media (max-width: 768px) {
		.nav-menu {
			/* Fix for some Android browsers */
			transform: translateZ(0) !important;
		}
	}
}
