/* KLO Taxi & Mietwagen Theme */

/* Tailwind-Style Utility Classes */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }

body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: #111;
    background: #fff;
    overflow-x: hidden;
}

::selection { background: #FFC107; color: #111; }

.font-display { font-family: 'DM Serif Display', Georgia, serif; }

.container-narrow { max-width: 1280px; margin: 0 auto; }

@keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; } }
@keyframes pulseSoft { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } }
@keyframes slideUp { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } }

.animate-fade-in { animation: fadeIn 0.6s ease-out forwards; }
.animate-pulse-soft { animation: pulseSoft 2s ease-in-out infinite; }
.animate-slide-up { animation: slideUp 0.6s ease-out forwards; opacity: 0; }

/* Prose for legal pages */
.prose { max-width: 65ch; line-height: 1.75; }
.prose h2 { font-family: 'DM Serif Display', Georgia, serif; font-size: 1.5rem; margin-top: 2rem; margin-bottom: 0.75rem; }
.prose h3 { font-size: 1.125rem; font-weight: 700; margin-top: 1.5rem; margin-bottom: 0.5rem; }
.prose p { margin-bottom: 1rem; color: #4B5563; }
.prose strong { color: #111; }

/* Mobile menu */
#mobile-menu { display: none; }
#mobile-menu.open { display: block; }

@media (max-width: 767px) {
    .container-narrow { padding-left: 1rem; padding-right: 1rem; }
}

@media (min-width: 768px) {
    .container-narrow { padding-left: 1.5rem; padding-right: 1.5rem; }
}

@media (min-width: 1024px) {
    .container-narrow { padding-left: 2rem; padding-right: 2rem; }
}
