/* Custom styles to complement Tailwind CSS */

/* Reset some basic styles */
* {
  box-sizing: border-box;
}

/* Form styling for contact form */
.cForm {
  background: white !important;
}

.cForm table {
  border: none !important;
}

.cForm td, .cForm th {
  border: none !important;
  padding: 0.75rem !important;
}

.cForm input, .cForm textarea, .cForm select {
  border: 1px solid #d1d5db !important;
  border-radius: 0.375rem !important;
  padding: 0.75rem !important;
  background: white !important;
  font-family: Inter, system-ui, sans-serif !important;
}

.cForm input:focus, .cForm textarea:focus, .cForm select:focus {
  outline: none !important;
  border-color: #2D5A27 !important;
  box-shadow: 0 0 0 3px rgba(45, 90, 39, 0.1) !important;
}

/* Legacy support for existing JavaScript */
.obal_papirky2.fixed {
  position: fixed !important;
  top: 2rem !important;
  z-index: 50 !important;
}

/* Smooth transitions */
* {
  transition: all 0.2s ease-in-out;
}

/* Custom shadows */
.custom-shadow {
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.custom-shadow-lg {
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

/* Hover effects */
.hover-lift:hover {
  transform: translateY(-2px);
}

/* Gradient backgrounds */
.bg-gradient-hero {
  background: linear-gradient(135deg, #2D5A27 0%, #D4A574 100%);
}

.bg-gradient-section {
  background: linear-gradient(to bottom, #f8faf8 0%, #ffffff 100%);
}

/* Typography improvements */
.text-shadow {
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Map container */
#mojeMapa {
  border-radius: 0.5rem;
  overflow: hidden;
}

/* File download buttons */
.file-download-btn {
  transition: all 0.3s ease;
}

.file-download-btn:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

/* Responsive utilities */
@media (max-width: 768px) {
  .mobile-full {
    width: 100% !important;
  }
  
  .mobile-text-center {
    text-align: center !important;
  }
  
  .mobile-hidden {
    display: none !important;
  }
  
  /* Mobile form optimizations */
  .modern-form {
    padding: 1.5rem !important;
    margin: 0 !important;
  }
  
  /* Ensure pricing cards stack properly on mobile */
  .pricing-card {
    transform: none !important;
    margin-bottom: 1rem;
  }
  
  /* Optimize text sizes for mobile */
  .hero-title {
    font-size: 2.25rem !important;
  }
  
  .hero-subtitle {
    font-size: 1.125rem !important;
  }
  
  /* Mobile padding adjustments */
  .mobile-py-8 {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
}

/* Small mobile devices */
@media (max-width: 480px) {
  /* Smaller padding for very small screens */
  .modern-form {
    padding: 1rem !important;
  }
  
  /* Ensure buttons are touch-friendly */
  .btn-primary, .btn-secondary, .btn-outline {
    padding: 0.875rem 1.5rem !important;
    font-size: 0.875rem !important;
  }
  
  /* Optimize contact cards for small screens */
  .contact-card {
    padding: 1rem !important;
  }
}

/* Custom buttons with modern styling */
.btn-primary {
  @apply bg-orange hover:bg-orange/90 text-white font-semibold py-3 px-6 rounded-lg transition-all duration-200 hover:shadow-lg hover:-translate-y-0.5;
}

.btn-secondary {
  @apply bg-forest hover:bg-forest/90 text-white font-semibold py-3 px-6 rounded-lg transition-all duration-200 hover:shadow-lg hover:-translate-y-0.5;
}

.btn-outline {
  @apply border-2 border-forest text-forest hover:bg-forest hover:text-white font-semibold py-3 px-6 rounded-lg transition-all duration-200;
}

/* Modern pricing card effects */
.pricing-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

/* Modern form styling */
.modern-form {
  @apply bg-white rounded-xl shadow-lg p-8;
}

.modern-form .form-group {
  @apply mb-6;
}

.modern-form label {
  @apply block text-sm font-medium text-gray-700 mb-2;
}

.modern-form input, .modern-form textarea, .modern-form select {
  @apply w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-forest/20 focus:border-forest transition-colors;
}

.modern-form .required {
  @apply text-red-500;
}

/* Icon styling */
.icon-box {
  @apply w-16 h-16 mx-auto mb-4 rounded-full flex items-center justify-center text-2xl;
}

.icon-box.primary {
  @apply bg-forest text-white;
}

.icon-box.secondary {
  @apply bg-gold text-white;
}

.icon-box.accent {
  @apply bg-orange text-white;
}

/* Process steps styling */
.process-step {
  @apply relative;
}

.process-step::after {
  content: '';
  @apply absolute top-8 left-8 w-0.5 h-full bg-gray-200 -z-10;
}

.process-step:last-child::after {
  display: none;
}

/* Stats section */
.stat-number {
  @apply text-4xl font-bold text-forest mb-2;
}

.stat-label {
  @apply text-gray-600 text-sm;
}

/* FAQ accordion */
.faq-item {
  @apply border-b border-gray-200 last:border-b-0;
}

.faq-question {
  @apply w-full text-left py-4 px-0 flex justify-between items-center font-medium hover:text-forest transition-colors;
}

.faq-answer {
  @apply pb-4 text-gray-600 leading-relaxed;
}

/* Service cards */
.service-card {
  @apply bg-white rounded-xl p-6 shadow-lg hover:shadow-xl transition-all duration-300 hover:-translate-y-1;
}

/* Mobile menu styles */
.mobile-menu {
  transform: translateX(100%);
  transition: transform 0.3s ease-in-out;
  will-change: transform;
}

.mobile-menu.open {
  transform: translateX(0);
}

.mobile-menu.closed {
  transform: translateX(100%);
}

/* Mobile menu overlay */
.mobile-overlay {
  transition: opacity 0.3s ease-in-out;
}

/* Custom animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-in-up {
  animation: fadeInUp 0.6s ease-out;
}

/* Utility classes */
.text-balance {
  text-wrap: balance;
}

/* Print styles */
@media print {
  .no-print {
    display: none !important;
  }
}

/* Optional form information */
.optional-info {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}