/* Tailwind Essential - Classes utilisées par les templates */

/* Layout */
.min-h-screen { min-height: 100vh; }
.container { max-width: 1200px; margin-left: auto; margin-right: auto; }
.mx-auto { margin-left: auto; margin-right: auto; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }

/* Background */
.bg-gray-50 { background-color: #f9fafb; }
.bg-white { background-color: #ffffff; }
.bg-accent { background-color: #FF7A1A; }

/* Typography */
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.font-serif { font-family: Georgia, Cambria, 'Times New Roman', Times, serif; }
.font-bold { font-weight: 700; }
.text-center { text-align: center; }
.text-gray-900 { color: #111827; }
.text-gray-700 { color: #374151; }
.text-accent { color: #FF7A1A; }
.text-white { color: #ffffff; }

/* Spacing */
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }
.mb-12 { margin-bottom: 3rem; }
.mt-12 { margin-top: 3rem; }
.mr-2 { margin-right: 0.5rem; }
.max-w-4xl { max-width: 56rem; }
.max-w-none { max-width: none; }

/* Borders & Shadows */
.rounded-2xl { border-radius: 1rem; }
.rounded-full { border-radius: 9999px; }
.shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); }

/* Flexbox */
.inline-flex { display: inline-flex; }
.items-center { align-items: center; }

/* Prose (contenu riche) */
.prose { max-width: 65ch; }
.prose p { margin-bottom: 1em; line-height: 1.75; }
.prose h2 { font-size: 1.5rem; font-weight: 700; margin-top: 2em; margin-bottom: 1em; }
.prose h3 { font-size: 1.25rem; font-weight: 600; margin-top: 1.5em; margin-bottom: 0.5em; }
.prose ul { list-style-type: disc; padding-left: 1.5em; margin-bottom: 1em; }
.prose li { margin-bottom: 0.5em; }

/* Transitions */
.transition { transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 300ms; }
.hover\:scale-105:hover { transform: scale(1.05); }
.hover\:bg-accent\/90:hover { background-color: rgba(255, 122, 26, 0.9); }
.hover\:text-accent\/80:hover { color: rgba(255, 122, 26, 0.8); }

/* Padding buttons */
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.px-8 { padding-left: 2rem; padding-right: 2rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.p-8 { padding: 2rem; }

/* Display */
.inline-block { display: inline-block; }

/* Text sizes for service template */
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-accent { color: #FF7A1A; }

/* Transform & transitions */
.transform { transform: translateX(0) translateY(0) rotate(0) skewX(0) skewY(0) scaleX(1) scaleY(1); }
.hover\:bg-accent\/90:hover { background-color: rgba(255, 122, 26, 0.9); }
.duration-300 { transition-duration: 300ms; }

/* Duration */
.duration-300 { transition-duration: 300ms; }

/* Padding top supplémentaire pour toutes les pages (header fixe) */
body:not(.home) main {
    padding-top: 6rem !important; /* 96px = 4rem + 25px compensation header */
}

/* Style élégant pour les titres d'articles dans le sommaire */
.article-title-link {
    color: #6B3A82;
    text-decoration: none;
    transition: all 0.3s ease;
}

.article-title-link:hover {
    color: #FF6B35;
}
