/**
 * TIC INNOV — Design System
 * Inspiré de TicInnov (dark enterprise) adapté au thème Colibri/MagnusWP.
 * Conserve l'identité orange TIC INNOV comme accent secondaire.
 */

:root {
	/* Fonds */
	--tic-bg-primary: #0a0f1e;
	--tic-bg-secondary: #0d1325;
	--tic-bg-footer: #070b16;
	--tic-bg-light: #ffffff;

	/* Accents — sky (TicInnov) + orange (identité TIC INNOV) */
	--tic-accent: #0ea5e9;
	--tic-accent-hover: #0284c7;
	--tic-accent-light: #38bdf8;
	--tic-brand-gold: #d4a82a;
	--tic-brand-teal: #0d3d4d;
	--tic-brand: #f79007;
	--tic-brand-hover: #e07d00;
	--tic-violet: #8b5cf6;
	--tic-emerald: #10b981;

	/* Texte */
	--tic-text-primary: #f3f4f6;
	--tic-text-body: #9ca3af;
	--tic-text-muted: #6b7280;

	/* Glassmorphism */
	--tic-glass-bg: rgba(255, 255, 255, 0.05);
	--tic-glass-border: rgba(255, 255, 255, 0.1);
	--tic-glass-hover: rgba(255, 255, 255, 0.1);

	/* Surfaces & cartes (Dark par défaut) */
	--tic-surface-bg: rgba(255, 255, 255, 0.04);
	--tic-surface-border: rgba(255, 255, 255, 0.08);
	--tic-elevated-bg: rgba(13, 19, 37, 0.9);

	/* Layout */
	--tic-container-max: 1280px;
	--tic-section-padding: clamp(3rem, 6vw, 6rem);
	--tic-radius-card: 1rem;
	--tic-radius-button: 0.5rem;

	/* Typographie */
	--tic-font-sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--tic-font-family: var(--tic-font-sans);

	/* Remap Colibri vers la palette TicInnov */
	--colibri-color-1: var(--tic-accent);
	--colibri-color-1--variant-4: var(--tic-accent-hover);
	--colibri-color-2: var(--tic-brand);
	--colibri-color-2--variant-4: var(--tic-brand-hover);
	--colibri-color-3: var(--tic-emerald);
	--colibri-color-4: var(--tic-violet);

	/* Theme switch — variables de rendu (Dark par défaut) */
	--tic-theme-duration: 300ms;

	--tic-header-nav-bg: rgba(10, 15, 30, 0.9);
	--tic-header-nav-bg-scrolled: rgba(10, 15, 30, 0.96);
	--tic-header-nav-border: rgba(255, 255, 255, 0.05);
	--tic-header-nav-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);

	--tic-footer-bg: #070b16;
	--tic-footer-border: rgba(255, 255, 255, 0.05);

	--tic-theme-toggle-bg: rgba(255, 255, 255, 0.06);
	--tic-theme-toggle-border: rgba(255, 255, 255, 0.1);
	--tic-theme-toggle-color: var(--tic-text-primary);

	/* Séparateurs, liens, interactions */
	--tic-divider: rgba(255, 255, 255, 0.08);
	--tic-divider-subtle: rgba(255, 255, 255, 0.05);
	--tic-link: var(--tic-accent-light);
	--tic-link-hover: #7dd3fc;
	--tic-card-hover-border: rgba(255, 255, 255, 0.2);
	--tic-btn-outline-border: rgba(255, 255, 255, 0.2);
	--tic-btn-outline-hover-bg: rgba(255, 255, 255, 0.05);
	--tic-btn-outline-hover-border: rgba(255, 255, 255, 0.4);
	--tic-shadow-card: 0 8px 32px rgba(0, 0, 0, 0.25);
	--tic-shadow-card-hover: 0 12px 40px rgba(0, 0, 0, 0.35);
	--tic-input-bg: rgba(255, 255, 255, 0.04);
	--tic-input-border: rgba(255, 255, 255, 0.12);
	--tic-input-focus-ring: rgba(14, 165, 233, 0.15);
	--tic-icon-sky-bg: rgba(14, 165, 233, 0.15);
	--tic-icon-sky-border: rgba(14, 165, 233, 0.3);
	--tic-icon-sky-color: var(--tic-accent-light);
	--tic-icon-brand-bg: rgba(247, 144, 7, 0.15);
	--tic-icon-brand-border: rgba(247, 144, 7, 0.3);
	--tic-icon-brand-color: var(--tic-brand);
	--tic-icon-emerald-bg: rgba(16, 185, 129, 0.15);
	--tic-icon-emerald-border: rgba(16, 185, 129, 0.3);
	--tic-icon-emerald-color: var(--tic-emerald);
	--tic-icon-violet-bg: rgba(139, 92, 246, 0.15);
	--tic-icon-violet-border: rgba(139, 92, 246, 0.3);
	--tic-icon-violet-color: var(--tic-violet);
	--tic-nav-hover-bg: rgba(255, 255, 255, 0.05);
	--tic-nav-active-color: #ffffff;

	/* Thèmes projet — visuels & boutons démo */
	--tic-project-sky-visual: linear-gradient(145deg, rgba(14, 165, 233, 0.22), rgba(14, 165, 233, 0.04));
	--tic-project-brand-visual: linear-gradient(145deg, rgba(247, 144, 7, 0.22), rgba(247, 144, 7, 0.04));
	--tic-project-emerald-visual: linear-gradient(145deg, rgba(16, 185, 129, 0.22), rgba(16, 185, 129, 0.04));
	--tic-project-violet-visual: linear-gradient(145deg, rgba(139, 92, 246, 0.22), rgba(139, 92, 246, 0.04));
	--tic-project-sky-detail-visual: linear-gradient(145deg, rgba(14, 165, 233, 0.18), rgba(13, 19, 37, 0.9));
	--tic-project-brand-detail-visual: linear-gradient(145deg, rgba(247, 144, 7, 0.18), rgba(13, 19, 37, 0.9));
	--tic-project-emerald-detail-visual: linear-gradient(145deg, rgba(16, 185, 129, 0.18), rgba(13, 19, 37, 0.9));
	--tic-project-violet-detail-visual: linear-gradient(145deg, rgba(139, 92, 246, 0.18), rgba(13, 19, 37, 0.9));
	--tic-project-sky-demo: linear-gradient(90deg, var(--tic-accent), var(--tic-accent-light));
	--tic-project-sky-demo-hover: linear-gradient(90deg, var(--tic-accent-hover), var(--tic-accent));
	--tic-project-brand-demo: linear-gradient(90deg, var(--tic-brand), #f5c842);
	--tic-project-brand-demo-hover: linear-gradient(90deg, var(--tic-brand-hover), #e8b923);
	--tic-project-emerald-demo: linear-gradient(90deg, var(--tic-emerald), #34d399);
	--tic-project-emerald-demo-hover: linear-gradient(90deg, #059669, var(--tic-emerald));
	--tic-project-violet-demo: linear-gradient(90deg, var(--tic-violet), #a78bfa);
	--tic-project-violet-demo-hover: linear-gradient(90deg, #7c3aed, var(--tic-violet));
	--tic-project-demo-text-dark: var(--tic-bg-primary);
	--tic-project-demo-text-light: #ffffff;

	/* Effets premium — shimmer, glow, shine (parité dark/light) */
	--tic-shimmer-bg: linear-gradient(
		90deg,
		rgba(255, 255, 255, 0.04) 0%,
		rgba(255, 255, 255, 0.09) 42%,
		rgba(56, 189, 248, 0.14) 50%,
		rgba(255, 255, 255, 0.09) 58%,
		rgba(255, 255, 255, 0.04) 100%
	);
	--tic-shimmer-size: 200% 100%;
	--tic-shimmer-duration: 1.35s;
	--tic-shimmer-surface-bg: rgba(255, 255, 255, 0.02);
	--tic-shimmer-surface-border: rgba(255, 255, 255, 0.06);
	--tic-shimmer-avatar-bg: rgba(255, 255, 255, 0.06);
	--tic-shimmer-accent-border: rgba(56, 189, 248, 0.12);
	--tic-shimmer-network-border: rgba(139, 92, 246, 0.12);

	--tic-card-glow: linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, transparent 55%);
	--tic-inset-shine: inset 0 1px 0 rgba(255, 255, 255, 0.06);
	--tic-btn-shine: linear-gradient(105deg, transparent 42%, rgba(255, 255, 255, 0.28) 50%, transparent 58%);
	--tic-btn-inset-shine: inset 0 1px 0 rgba(255, 255, 255, 0.25);

	--tic-hero-glow-sky: rgba(14, 165, 233, 0.1);
	--tic-hero-glow-blue: rgba(37, 99, 235, 0.08);
	--tic-hero-grid-opacity: 0.7;
	--tic-hero-grid-stroke: rgba(56, 189, 248, 0.004);

	--tic-feature-card-bg: linear-gradient(155deg, rgba(255, 255, 255, 0.07) 0%, rgba(255, 255, 255, 0.02) 100%);
	--tic-feature-card-border: rgba(56, 189, 248, 0.2);
	--tic-feature-card-border-brand: rgba(247, 144, 7, 0.22);
	--tic-feature-card-shadow: 0 20px 50px rgba(0, 0, 0, 0.28);
	--tic-feature-glow: radial-gradient(circle, rgba(247, 144, 7, 0.14) 0%, transparent 70%);

	--tic-card-hover-shadow: 0 20px 48px rgba(0, 0, 0, 0.35);
	--tic-stat-glow: 0 0 24px rgba(56, 189, 248, 0.08);
	--tic-stat-glow-strong: 0 0 24px rgba(56, 189, 248, 0.08);

	/* Chips / tags (domaines expertise, etc.) */
	--tic-chip-bg: rgba(255, 255, 255, 0.04);
	--tic-chip-border: rgba(255, 255, 255, 0.1);
	--tic-chip-hover-bg: rgba(255, 255, 255, 0.07);
	--tic-chip-hover-border: rgba(56, 189, 248, 0.25);

	--tic-team-photo-border: rgba(255, 255, 255, 0.12);
	--tic-team-photo-shadow: 0 8px 24px rgba(0, 0, 0, 0.35), 0 0 0 4px rgba(0, 0, 0, 0.2);
}

/* Light Mode : variables cohérentes avec l'identité TIC INNOV */
html[data-theme="light"] {
	--tic-bg-primary: #F8FAFC;
	--tic-bg-secondary: #FFFFFF;
	--tic-bg-footer: #F8FAFC;

	--tic-text-primary: #0F172A;
	--tic-text-body: #475569;
	--tic-text-muted: #64748B;

	--tic-glass-bg: rgba(15, 23, 42, 0.04);
	--tic-glass-border: rgba(15, 23, 42, 0.12);
	--tic-glass-hover: rgba(15, 23, 42, 0.07);

	--tic-surface-bg: #ffffff;
	--tic-surface-border: #E2E8F0;
	--tic-elevated-bg: #ffffff;

	--tic-header-nav-bg: rgba(248, 250, 252, 0.92);
	--tic-header-nav-bg-scrolled: rgba(248, 250, 252, 0.98);
	--tic-header-nav-border: rgba(2, 132, 199, 0.18);
	--tic-header-nav-shadow: 0 4px 24px rgba(2, 6, 23, 0.10);

	--tic-footer-bg: #FFFFFF;
	--tic-footer-border: rgba(15, 23, 42, 0.08);

	--tic-theme-toggle-bg: rgba(15, 23, 42, 0.04);
	--tic-theme-toggle-border: rgba(15, 23, 42, 0.12);
	--tic-theme-toggle-color: #0F172A;

	--tic-accent-light: #0284C7;

	--tic-divider: #E2E8F0;
	--tic-divider-subtle: #F1F5F9;
	--tic-link: #2563EB;
	--tic-link-hover: #1D4ED8;
	--tic-card-hover-border: rgba(14, 165, 233, 0.35);
	--tic-btn-outline-border: #CBD5E1;
	--tic-btn-outline-hover-bg: rgba(15, 23, 42, 0.04);
	--tic-btn-outline-hover-border: #94A3B8;
	--tic-shadow-card: 0 4px 24px rgba(15, 23, 42, 0.06);
	--tic-shadow-card-hover: 0 8px 32px rgba(15, 23, 42, 0.10);
	--tic-input-bg: #FFFFFF;
	--tic-input-border: #CBD5E1;
	--tic-input-focus-ring: rgba(14, 165, 233, 0.18);
	--tic-icon-sky-bg: rgba(14, 165, 233, 0.10);
	--tic-icon-sky-border: rgba(14, 165, 233, 0.22);
	--tic-icon-sky-color: #0369A1;
	--tic-icon-brand-bg: rgba(247, 144, 7, 0.10);
	--tic-icon-brand-border: rgba(247, 144, 7, 0.25);
	--tic-icon-brand-color: #C2410C;
	--tic-icon-emerald-bg: rgba(16, 185, 129, 0.10);
	--tic-icon-emerald-border: rgba(16, 185, 129, 0.22);
	--tic-icon-emerald-color: #047857;
	--tic-icon-violet-bg: rgba(139, 92, 246, 0.10);
	--tic-icon-violet-border: rgba(139, 92, 246, 0.22);
	--tic-icon-violet-color: #6D28D9;
	--tic-nav-hover-bg: rgba(15, 23, 42, 0.05);
	--tic-nav-active-color: #0F172A;

	--tic-shimmer-bg: linear-gradient(
		90deg,
		#E8EDF4 0%,
		#F1F5F9 20%,
		#FFFFFF 42%,
		rgba(14, 165, 233, 0.18) 50%,
		#FFFFFF 58%,
		#F1F5F9 80%,
		#E8EDF4 100%
	);
	--tic-shimmer-size: 280% 100%;
	--tic-shimmer-duration: 1.6s;
	--tic-shimmer-surface-bg: rgba(255, 255, 255, 0.78);
	--tic-shimmer-surface-border: rgba(15, 23, 42, 0.08);
	--tic-shimmer-avatar-bg: linear-gradient(
		90deg,
		#E2E8F0 0%,
		#F8FAFC 42%,
		rgba(14, 165, 233, 0.12) 50%,
		#F8FAFC 58%,
		#E2E8F0 100%
	);
	--tic-shimmer-accent-border: rgba(14, 165, 233, 0.18);
	--tic-shimmer-network-border: rgba(139, 92, 246, 0.16);

	--tic-card-glow: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(14, 165, 233, 0.05) 38%, transparent 68%);
	--tic-inset-shine: inset 0 1px 0 rgba(255, 255, 255, 0.95);
	--tic-btn-shine: linear-gradient(105deg, transparent 38%, rgba(255, 255, 255, 0.58) 50%, transparent 62%);
	--tic-btn-inset-shine: inset 0 1px 0 rgba(255, 255, 255, 0.5);

	--tic-hero-glow-sky: rgba(14, 165, 233, 0.16);
	--tic-hero-glow-blue: rgba(37, 99, 235, 0.12);
	--tic-hero-grid-opacity: 0.5;
	--tic-hero-grid-stroke: rgba(14, 165, 233, 0.07);

	--tic-feature-card-bg: linear-gradient(155deg, #FFFFFF 0%, #F8FAFC 52%, #EFF6FF 100%);
	--tic-feature-card-border: rgba(14, 165, 233, 0.18);
	--tic-feature-card-border-brand: rgba(247, 144, 7, 0.22);
	--tic-feature-card-shadow: 0 20px 50px rgba(15, 23, 42, 0.08);
	--tic-feature-glow: radial-gradient(circle, rgba(247, 144, 7, 0.12) 0%, transparent 70%);

	--tic-card-hover-shadow: 0 20px 48px rgba(15, 23, 42, 0.10);
	--tic-stat-glow: 0 0 28px rgba(14, 165, 233, 0.10);
	--tic-stat-glow-strong: 0 0 32px rgba(14, 165, 233, 0.16);

	--tic-chip-bg: #FFFFFF;
	--tic-chip-border: #E2E8F0;
	--tic-chip-hover-bg: #FFFFFF;
	--tic-chip-hover-border: rgba(14, 165, 233, 0.28);

	--tic-team-photo-border: #FFFFFF;
	--tic-team-photo-shadow: 0 4px 20px rgba(15, 23, 42, 0.10), 0 0 0 3px rgba(14, 165, 233, 0.10);

	--tic-project-sky-visual: linear-gradient(145deg, rgba(14, 165, 233, 0.14), rgba(14, 165, 233, 0.04));
	--tic-project-brand-visual: linear-gradient(145deg, rgba(247, 144, 7, 0.14), rgba(247, 144, 7, 0.04));
	--tic-project-emerald-visual: linear-gradient(145deg, rgba(16, 185, 129, 0.14), rgba(16, 185, 129, 0.04));
	--tic-project-violet-visual: linear-gradient(145deg, rgba(139, 92, 246, 0.14), rgba(139, 92, 246, 0.04));
	--tic-project-sky-detail-visual: linear-gradient(145deg, rgba(14, 165, 233, 0.12), rgba(255, 255, 255, 0.95));
	--tic-project-brand-detail-visual: linear-gradient(145deg, rgba(247, 144, 7, 0.12), rgba(255, 255, 255, 0.95));
	--tic-project-emerald-detail-visual: linear-gradient(145deg, rgba(16, 185, 129, 0.12), rgba(255, 255, 255, 0.95));
	--tic-project-violet-detail-visual: linear-gradient(145deg, rgba(139, 92, 246, 0.12), rgba(255, 255, 255, 0.95));
	--tic-project-sky-detail-border: rgba(14, 165, 233, 0.18);
	--tic-project-brand-detail-border: rgba(247, 144, 7, 0.18);
	--tic-project-emerald-detail-border: rgba(16, 185, 129, 0.18);
	--tic-project-violet-detail-border: rgba(139, 92, 246, 0.18);
}

/* Transition thème : uniquement fond/couleur/bordure/ombre */
html,
body,
.tic-header-nav,
.tic-footer,
.tic-card,
.tic-btn,
.tic-section,
.tic-cta,
.tic-news-card,
.tic-news-article,
#tic-chatbot,
.tic-chatbot__panel {
	transition: background-color var(--tic-theme-duration) ease-in-out, color var(--tic-theme-duration) ease-in-out, border-color var(--tic-theme-duration) ease-in-out,
		box-shadow var(--tic-theme-duration) ease-in-out;
}

/* Typographie globale modernisée */
body.colibri-theme-magnuswp,
body.tic-has-custom-layout {
	font-family: var(--tic-font-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	scroll-behavior: smooth;
}

/* Surcharge Colibri / Forminator / plugins — Inter partout (sauf icônes) */
body.tic-has-custom-layout :where(
	.h-section,
	[class*="style-"],
	.h-heading,
	.h-lead,
	.h-text,
	.h-x-text,
	.h-button,
	.colibri-page-content,
	.tic-header-nav,
	.tic-footer,
	.tic-inner-page,
	.tic-section,
	.tic-cta,
	.tic-card,
	.forminator-ui,
	.forminator-ui .forminator-label,
	.forminator-ui .forminator-input,
	.forminator-ui .forminator-textarea,
	.forminator-ui .forminator-button,
	.forminator-ui .forminator-response-message,
	.gt_container--hich,
	.gt_float_switcher
) {
	font-family: var(--tic-font-sans) !important;
}

body.tic-has-custom-layout :where(
	h1, h2, h3, h4, h5, h6,
	p, a, span, li, label,
	input, textarea, select, button
) {
	font-family: inherit;
}

/* Préserver les polices d'icônes */
body.tic-has-custom-layout :where(
	.fa, .fas, .far, .fab, .fal,
	.dashicons,
	[class^="eicon-"],
	.material-icons
) {
	font-family: inherit !important;
}

@media (prefers-reduced-motion: reduce) {
	body.colibri-theme-magnuswp {
		scroll-behavior: auto;
	}
}

/* Scrollbar (inspirée TicInnov) */
body.colibri-theme-magnuswp::-webkit-scrollbar {
	width: 8px;
}

body.colibri-theme-magnuswp::-webkit-scrollbar-track {
	background: var(--tic-bg-primary);
}

body.colibri-theme-magnuswp::-webkit-scrollbar-thumb {
	background: var(--tic-accent);
	border-radius: 4px;
}

body.colibri-theme-magnuswp::-webkit-scrollbar-thumb:hover {
	background: var(--tic-accent-hover);
}

/* Conteneur custom */
.tic-container {
	width: 100%;
	max-width: var(--tic-container-max);
	margin-inline: auto;
	padding-inline: clamp(1rem, 3vw, 2rem);
}

/* Sections alternées */
.tic-section {
	padding-block: var(--tic-section-padding);
}

.tic-section--dark {
	background-color: var(--tic-bg-primary);
	color: var(--tic-text-primary);
}

.tic-section--dark-alt {
	background-color: var(--tic-bg-secondary);
	color: var(--tic-text-primary);
}

.tic-section--light {
	background-color: var(--tic-bg-light);
	color: #1f2937;
}

/* Grille décorative (TicInnov) */
.tic-bg-grid {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cpath d='M 60 0 L 0 0 0 60' fill='none' stroke='%2338bdf8' stroke-width='0.5' opacity='0.008'/%3E%3C/svg%3E");
}

body.tic-homepage .tic-section.tic-bg-grid {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cpath d='M 60 0 L 0 0 0 60' fill='none' stroke='%2338bdf8' stroke-width='0.5' opacity='0.004'/%3E%3C/svg%3E");
}

/* Boutons Colibri modernisés */
.h-button,
.wp-block-button__link,
.colibriwp-theme .h-button {
	border-radius: var(--tic-radius-button);
	font-family: var(--tic-font-sans);
	font-weight: 500;
	transition: all 0.25s ease;
}

.h-button:hover,
.wp-block-button__link:hover {
	transform: translateY(-1px);
}

/* Titres avec gradient (style TicInnov) */
.tic-gradient-text {
	background: linear-gradient(90deg, var(--tic-accent-light), #60a5fa, var(--tic-violet));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* Animations */
@keyframes tic-fade-in-up {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.tic-animate-in {
	opacity: 0;
}

.tic-animate-in.is-visible {
	/* backwards (pas both/forwards) : libère transform après l'entrée
	   pour que les hovers (ex. translateX(8px) services) fonctionnent */
	animation: tic-fade-in-up 0.6s ease-out backwards;
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.tic-animate-in,
	.tic-animate-in.is-visible {
		animation: none;
		opacity: 1;
		transform: none;
	}
}

/* --- Shimmer chargement page --- */
@keyframes tic-shimmer-slide {
	0% {
		background-position: 200% 0;
	}
	100% {
		background-position: -200% 0;
	}
}

.tic-shimmer-block {
	border-radius: 0.5rem;
	background: var(--tic-shimmer-bg);
	background-size: var(--tic-shimmer-size);
	animation: tic-shimmer-slide var(--tic-shimmer-duration) ease-in-out infinite;
}

/* Shimmer par bloc — actif tant que le contenu n'est pas prêt */
.tic-block-shimmer {
	position: relative;
	isolation: isolate;
}

.tic-block-shimmer.is-block-loading {
	min-height: 6rem;
}

.tic-block-shimmer.is-block-loading.tic-section {
	min-height: 10rem;
}

.tic-block-shimmer.is-block-loading > * {
	opacity: 0;
	pointer-events: none;
}

.tic-block-shimmer.is-block-loading::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 2;
	border-radius: inherit;
	background: var(--tic-shimmer-bg);
	background-size: var(--tic-shimmer-size);
	animation: tic-shimmer-slide var(--tic-shimmer-duration) ease-in-out infinite;
	pointer-events: none;
}

.tic-block-shimmer.is-block-ready > * {
	opacity: 1;
	pointer-events: auto;
	transition: opacity 0.35s ease;
}

.tic-block-shimmer.is-block-ready::after {
	display: none;
}

.tic-page-shimmer {
	position: fixed;
	top: 4rem;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9998;
	background: var(--tic-bg-primary);
	overflow: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	transition: opacity 0.45s ease, visibility 0.45s ease;
}

body.tic-homepage .tic-page-shimmer {
	top: 0;
	padding-top: 5.5rem;
}

body.tic-project-detail-page .tic-page-shimmer,
body.tic-team-member-page .tic-page-shimmer {
	top: 4.5rem;
}

body.tic-page-loading.admin-bar .tic-page-shimmer {
	top: calc(4rem + 32px);
}

body.tic-page-loading.tic-homepage.admin-bar .tic-page-shimmer {
	top: 32px;
	padding-top: 5.5rem;
}

body.tic-page-loading.tic-project-detail-page.admin-bar .tic-page-shimmer,
body.tic-page-loading.tic-team-member-page.admin-bar .tic-page-shimmer {
	top: calc(4.5rem + 32px);
}

@media screen and (max-width: 782px) {
	body.tic-page-loading.admin-bar .tic-page-shimmer {
		top: calc(4rem + 46px);
	}

	body.tic-page-loading.tic-homepage.admin-bar .tic-page-shimmer {
		top: 46px;
	}

	body.tic-page-loading.tic-project-detail-page.admin-bar .tic-page-shimmer,
	body.tic-page-loading.tic-team-member-page.admin-bar .tic-page-shimmer {
		top: calc(4.5rem + 46px);
	}
}

body.tic-page-loading.tic-page-loaded .tic-page-shimmer {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

body.tic-page-loading:not(.tic-page-loaded) #tic-homepage,
body.tic-page-loading:not(.tic-page-loaded) .tic-inner-page,
body.tic-page-loading:not(.tic-page-loaded) .tic-page-hero,
body.tic-page-loading:not(.tic-page-loaded) .tic-footer {
	visibility: hidden;
}

body.tic-page-loading.tic-page-loaded #tic-homepage,
body.tic-page-loading.tic-page-loaded .tic-inner-page,
body.tic-page-loading.tic-page-loaded .tic-page-hero,
body.tic-page-loading.tic-page-loaded .tic-footer {
	visibility: visible;
}

.tic-page-shimmer__inner {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
	max-width: var(--tic-container-max);
}

.tic-shimmer-block--badge {
	width: 11rem;
	height: 1.75rem;
	border-radius: 999px;
}

.tic-shimmer-block--title {
	width: min(100%, 28rem);
	height: 2.75rem;
	border-radius: 0.625rem;
}

.tic-shimmer-block--title-short {
	width: min(100%, 18rem);
	height: 2.75rem;
}

.tic-shimmer-block--page-title {
	width: min(100%, 20rem);
	height: 2.25rem;
	margin-bottom: 0.5rem;
}

.tic-shimmer-block--section-title {
	width: min(100%, 14rem);
	height: 1.5rem;
	margin-top: 1rem;
}

.tic-shimmer-block--line {
	width: 100%;
	height: 0.875rem;
}

.tic-shimmer-block--line-short {
	width: 72%;
}

.tic-shimmer-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 0.5rem;
}

.tic-shimmer-block--btn {
	width: 9.5rem;
	height: 2.75rem;
	border-radius: var(--tic-radius-button);
}

.tic-shimmer-block--btn-ghost {
	width: 11rem;
	opacity: 0.75;
}

.tic-shimmer-grid {
	display: grid;
	gap: 0.875rem;
	margin-top: 0.5rem;
}

.tic-shimmer-grid--stats {
	grid-template-columns: repeat(3, 1fr);
	margin-top: 1.25rem;
}

.tic-shimmer-grid--cards {
	grid-template-columns: repeat(3, 1fr);
}

.tic-shimmer-block--stat {
	height: 3.5rem;
	border-radius: 0.75rem;
}

.tic-shimmer-block--card {
	height: 7.5rem;
	border-radius: var(--tic-radius-card);
}

/* Présentation */
.tic-shimmer-about-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.875rem;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border-radius: calc(var(--tic-radius-card) * 1.25);
	border: 1px solid var(--tic-shimmer-accent-border);
	background: var(--tic-shimmer-surface-bg);
	margin-bottom: 0.5rem;
}

.tic-shimmer-block--badge-sm {
	width: 8rem;
	height: 1.5rem;
}

.tic-shimmer-block--title-md {
	width: min(100%, 22rem);
	height: 2.25rem;
}

.tic-shimmer-block--lead-box {
	width: 100%;
	height: 5rem;
	border-radius: 0.75rem;
}

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

.tic-shimmer-block--pillar {
	height: 12rem;
	border-radius: var(--tic-radius-card);
}

.tic-shimmer-grid--cards-3 {
	grid-template-columns: repeat(3, 1fr);
}

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

.tic-shimmer-grid--process {
	grid-template-columns: repeat(3, 1fr);
}

.tic-shimmer-block--process-step {
	height: 4.5rem;
	border-radius: 0.75rem;
}

.tic-shimmer-block--title-sm {
	width: min(100%, 16rem);
	height: 1.75rem;
}

.tic-shimmer-block--icon-sm {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 0.75rem;
	flex-shrink: 0;
}

.tic-shimmer-contact-hero {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.875rem;
	text-align: center;
	margin-bottom: 0.5rem;
}

.tic-shimmer-contact-panel {
	padding: clamp(1.5rem, 4vw, 2.75rem);
	border-radius: calc(var(--tic-radius-card) * 1.25);
	border: 1px solid rgba(255, 255, 255, 0.08);
	background: rgba(255, 255, 255, 0.02);
	margin-top: 0.25rem;
}

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

@media (min-width: 960px) {
	.tic-shimmer-contact-panel__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 0;
	}

	.tic-shimmer-block--contact-form {
		padding-left: 2rem;
		border-left: 1px solid rgba(255, 255, 255, 0.06);
	}
}

@media (max-width: 767px) {
	.tic-shimmer-contact-panel {
		padding: 1.25rem 1rem;
		border-radius: var(--tic-radius-card);
	}

	.tic-shimmer-about-card .tic-shimmer-grid--stats {
		grid-template-columns: 1fr;
	}
}

.tic-shimmer-block--contact-reach,
.tic-shimmer-block--contact-form {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 0;
	height: auto;
	background: transparent;
	border: none;
}

.tic-shimmer-block--contact-channel {
	height: 3.75rem;
	border-radius: 0.75rem;
}

.tic-shimmer-block--contact-domains {
	height: 8.5rem;
	border-radius: var(--tic-radius-card);
	margin-top: 0.25rem;
}

.tic-shimmer-block--form-field {
	height: 2.75rem;
	border-radius: 0.5rem;
}

.tic-shimmer-block--form-field-tall {
	height: 5.5rem;
}

.tic-shimmer-block--form-submit {
	width: 8rem;
	height: 2.5rem;
	border-radius: 0.5rem;
	margin-top: 0.25rem;
}

.tic-shimmer-network-card {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border-radius: calc(var(--tic-radius-card) * 1.25);
	border: 1px solid rgba(139, 92, 246, 0.12);
	background: rgba(255, 255, 255, 0.02);
	margin-top: 0.25rem;
}

.tic-shimmer-network-card__head {
	display: flex;
	align-items: center;
	justify-content: center;
}

.tic-shimmer-network-card__title-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
}

.tic-shimmer-block--highlight-box {
	width: min(100%, 18rem);
	height: 3.5rem;
	border-radius: 0.75rem;
}

.tic-shimmer-block--leader-card {
	height: 9.5rem;
	border-radius: var(--tic-radius-card);
}

.tic-shimmer-grid--team-showcase {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	margin-top: 0.5rem;
}

@media (min-width: 768px) {
	.tic-shimmer-grid--team-showcase {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1100px) {
	.tic-shimmer-grid--team-showcase {
		grid-template-columns: repeat(3, 1fr);
	}
}

.tic-shimmer-block--team-profile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	padding: 1.5rem 1.25rem;
	height: 15.5rem;
	border-radius: calc(var(--tic-radius-card) * 1.15);
}

.tic-shimmer-block--group-title {
	width: min(18rem, 70%);
	height: 1.125rem;
	margin: 2.5rem auto 0;
	border-radius: 0.375rem;
}

.tic-shimmer-block--team-profile::before {
	content: '';
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 50%;
	background: var(--tic-shimmer-avatar-bg);
	background-size: var(--tic-shimmer-size);
	animation: tic-shimmer-slide var(--tic-shimmer-duration) ease-in-out infinite;
}

.tic-shimmer-block--split-col {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 1.25rem;
	border-radius: var(--tic-radius-card);
	border: 1px solid var(--tic-shimmer-surface-border);
	background: var(--tic-shimmer-surface-bg);
	animation: none;
}

.tic-shimmer-block--split-col .tic-shimmer-block {
	width: 100%;
}

.tic-shimmer-block--network {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border-radius: calc(var(--tic-radius-card) * 1.25);
	border: 1px solid var(--tic-shimmer-network-border);
	background: var(--tic-shimmer-surface-bg);
	margin-top: 0.25rem;
	animation: none;
}

.tic-shimmer-grid--network-domains {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	width: 100%;
	gap: 0.75rem;
}

.tic-shimmer-block--domain {
	height: 3.5rem;
	border-radius: 0.875rem;
}

.tic-shimmer-block--cta {
	height: 8rem;
	border-radius: var(--tic-radius-card);
	margin-top: 0.5rem;
}

/* Contact */
.tic-shimmer-grid--split {
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}

.tic-shimmer-block--split-col {
	height: 10rem;
	border-radius: var(--tic-radius-card);
}

.tic-shimmer-block--form {
	height: 14rem;
	border-radius: var(--tic-radius-card);
	margin-top: 0.5rem;
}

.tic-shimmer-projects-hero {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.875rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	border-radius: calc(var(--tic-radius-card) * 1.15);
	border: 1px solid var(--tic-shimmer-accent-border);
	background: var(--tic-shimmer-surface-bg);
	margin-bottom: 1rem;
}

.tic-shimmer-grid--project-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 0.75rem;
}

.tic-shimmer-grid--projects-stats {
	margin-bottom: 0.5rem;
}

.tic-shimmer-block--project-card {
	height: 19rem;
	border-radius: calc(var(--tic-radius-card) * 1.15);
}

/* --- Fiches détail (projet / membre) --- */
.tic-shimmer-detail-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.875rem 1.25rem;
	margin-bottom: 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--tic-shimmer-surface-border);
}

.tic-shimmer-block--btn-sm {
	width: 9.5rem;
	height: 2.5rem;
}

.tic-shimmer-block--breadcrumb {
	width: min(100%, 16rem);
	height: 0.875rem;
	border-radius: 0.375rem;
}

.tic-shimmer-project-hero,
.tic-shimmer-member-hero {
	display: grid;
	grid-template-columns: minmax(12rem, 18rem) minmax(0, 1fr);
	gap: clamp(1.25rem, 3vw, 2.5rem);
	align-items: start;
	padding: clamp(1.25rem, 3vw, 2rem);
	border-radius: calc(var(--tic-radius-card) * 1.25);
	border: 1px solid var(--tic-shimmer-accent-border);
	background: var(--tic-shimmer-surface-bg);
	margin-bottom: 1rem;
}

.tic-shimmer-project-hero__visual {
	position: relative;
	min-width: 0;
}

.tic-shimmer-project-hero__content,
.tic-shimmer-member-hero__content {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	min-width: 0;
}

.tic-shimmer-block--project-visual {
	width: 100%;
	min-height: 14rem;
	aspect-ratio: 4 / 3;
	border-radius: 1rem;
}

.tic-shimmer-block--project-tag {
	position: absolute;
	top: 1rem;
	left: 1rem;
	width: 5.5rem;
	height: 1.35rem;
	border-radius: 999px;
}

.tic-shimmer-block--line-mid {
	width: min(100%, 72%);
}

.tic-shimmer-row--project-actions {
	margin-top: 0.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--tic-shimmer-surface-border);
}

.tic-shimmer-block--feature-list {
	height: 7.5rem;
	border-radius: var(--tic-radius-card);
	margin-bottom: 0.5rem;
}

.tic-shimmer-block--feature-list-sm {
	height: 5.5rem;
}

.tic-shimmer-block--project-cta {
	height: 6.5rem;
	border-radius: calc(var(--tic-radius-card) * 1.15);
	margin-top: 1rem;
}

.tic-shimmer-block--member-photo {
	width: min(100%, 17rem);
	aspect-ratio: 1;
	margin-inline: auto;
	border-radius: 1.5rem;
}

.tic-shimmer-row--tech {
	margin-top: 0.15rem;
}

.tic-shimmer-block--tech-tag {
	width: 4.5rem;
	height: 1.5rem;
	border-radius: 999px;
}

.tic-shimmer-block--share-bar {
	width: 9rem;
	height: 2.5rem;
	border-radius: 0.625rem;
}

.tic-shimmer-grid--project-body {
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr);
	gap: 1rem;
	margin-top: 0.25rem;
}

.tic-shimmer-block--prose {
	height: 10rem;
	border-radius: var(--tic-radius-card);
}

.tic-shimmer-block--prose-tall {
	height: 14rem;
	border-radius: var(--tic-radius-card);
}

.tic-shimmer-block--aside {
	height: 10rem;
	border-radius: var(--tic-radius-card);
}

.tic-shimmer-block--panel {
	height: 8.5rem;
	border-radius: calc(var(--tic-radius-card) * 1.15);
	margin-top: 0.5rem;
}

.tic-shimmer-grid--colleagues {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.75rem;
}

.tic-shimmer-block--colleague {
	height: 8.5rem;
	border-radius: 0.85rem;
}

/* --- Actualités --- */
.tic-shimmer-article-header {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
	margin-bottom: 0.5rem;
}

.tic-shimmer-row--meta,
.tic-shimmer-row--filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.tic-shimmer-block--meta-chip {
	width: 5.5rem;
	height: 1.25rem;
	border-radius: 999px;
}

.tic-shimmer-block--filter-pill {
	width: 6.5rem;
	height: 2.25rem;
	border-radius: 999px;
}

.tic-shimmer-block--article-cover {
	width: 100%;
	height: clamp(12rem, 32vw, 20rem);
	border-radius: calc(var(--tic-radius-card) * 1.15);
	margin: 0.5rem 0 0.75rem;
}

.tic-shimmer-block--share-panel {
	height: 4.5rem;
	border-radius: var(--tic-radius-card);
	margin-top: 0.75rem;
}

.tic-shimmer-grid--news-cards {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 0.75rem;
}

.tic-shimmer-block--news-card {
	height: 16rem;
	border-radius: calc(var(--tic-radius-card) * 1.1);
}

.tic-shimmer-about-card--legal {
	align-items: flex-start;
	text-align: left;
}

.tic-shimmer-block:nth-child(2) { animation-delay: 0.08s; }
.tic-shimmer-block:nth-child(3) { animation-delay: 0.16s; }
.tic-shimmer-block:nth-child(4) { animation-delay: 0.24s; }
.tic-shimmer-grid .tic-shimmer-block:nth-child(1) { animation-delay: 0.1s; }
.tic-shimmer-grid .tic-shimmer-block:nth-child(2) { animation-delay: 0.2s; }
.tic-shimmer-grid .tic-shimmer-block:nth-child(3) { animation-delay: 0.3s; }
.tic-shimmer-grid .tic-shimmer-block:nth-child(4) { animation-delay: 0.38s; }

@media (max-width: 1100px) {
	.tic-shimmer-grid--project-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.tic-shimmer-project-hero,
	.tic-shimmer-member-hero {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.tic-shimmer-project-hero__content,
	.tic-shimmer-member-hero__content {
		align-items: center;
	}

	.tic-shimmer-project-hero__visual {
		max-width: 22rem;
		margin-inline: auto;
	}

	.tic-shimmer-row--project-actions {
		justify-content: center;
	}

	.tic-shimmer-grid--project-body,
	.tic-shimmer-grid--colleagues,
	.tic-shimmer-grid--news-cards {
		grid-template-columns: 1fr;
	}

	.tic-shimmer-detail-nav {
		flex-direction: column;
		align-items: stretch;
	}
}

@media (max-width: 768px) {
	.tic-shimmer-grid--stats,
	.tic-shimmer-grid--cards,
	.tic-shimmer-grid--cards-3,
	.tic-shimmer-grid--cards-2,
	.tic-shimmer-grid--pillars,
	.tic-shimmer-grid--split,
	.tic-shimmer-contact-panel__grid,
	.tic-shimmer-grid--team-showcase,
	.tic-shimmer-grid--process,
	.tic-shimmer-grid--project-cards,
	.tic-shimmer-grid--network-domains,
	.tic-shimmer-grid--news-cards,
	.tic-shimmer-grid--colleagues {
		grid-template-columns: 1fr;
	}

	.tic-shimmer-block--card,
	.tic-shimmer-block--pillar {
		height: 5.5rem;
	}

	.tic-shimmer-block--pillar {
		height: 8rem;
	}

	.tic-shimmer-block--project-card,
	.tic-shimmer-block--news-card {
		height: 14rem;
	}

	.tic-shimmer-block--project-cta {
		height: 8rem;
	}

	.tic-page-shimmer__inner {
		padding-block: 0.75rem 1.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tic-shimmer-block {
		animation: none;
		background: rgba(255, 255, 255, 0.06);
	}

	.tic-block-shimmer.is-block-loading::after {
		animation: none;
		background: rgba(255, 255, 255, 0.06);
	}

	.tic-block-shimmer.is-block-loading > * {
		opacity: 1;
		pointer-events: auto;
	}

	body.tic-page-loading:not(.tic-page-loaded) #tic-homepage,
	body.tic-page-loading:not(.tic-page-loaded) .tic-inner-page,
	body.tic-page-loading:not(.tic-page-loaded) .tic-page-hero,
	body.tic-page-loading:not(.tic-page-loaded) .tic-footer {
		visibility: visible;
	}

	body.tic-page-loading .tic-page-shimmer {
		display: none;
	}

	body.tic-page-loading.tic-page-loaded #tic-homepage,
	body.tic-page-loading.tic-page-loaded .tic-inner-page,
	body.tic-page-loading.tic-page-loaded .tic-page-hero,
	body.tic-page-loading.tic-page-loaded .tic-footer {
		animation: none;
	}

	.tic-block-shimmer.is-block-ready > * {
		transition: none;
	}
}

/* Focus accessible */
.tic-container a:focus-visible,
.tic-container button:focus-visible,
.tic-card:focus-within {
	outline: 2px solid var(--tic-accent);
	outline-offset: 2px;
}
