/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/* Custom styles for Laumi Sushi */

/* Tailwind-like utilities if TailwindCSS not fully loaded */
.container {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

/* Custom color scheme */
:root {
  --color-primary: #e84e0f;
  --color-primary-dark: #b01f00;
  --color-secondary: #5be80f;
}

/* Smooth transitions */
a {
  transition: color 0.2s ease;
}

/* Cart badge */
.cart-badge.show {
  display: flex !important;
}

/* Mobile menu transitions */
.mobile-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.mobile-menu.show {
  max-height: 300px;
}

/* Hero section background - image set via inline style in view */
.hero-bg {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

/* Product cards hover effect */
.product-card {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.product-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

/* Button styles */
.btn-primary {
  background-color: var(--color-primary);
  color: white;
  padding: 0.75rem 1.5rem;
  border-radius: 0.5rem;
  font-weight: 600;
  transition: background-color 0.2s ease;
}

.btn-primary:hover {
  background-color: var(--color-primary-dark);
}

/* Loading spinner */
.spinner {
  border: 3px solid rgba(0, 0, 0, 0.1);
  border-left-color: var(--color-primary);
  border-radius: 50%;
  width: 24px;
  height: 24px;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Modal styles */
.modal-overlay {
  animation: fadeIn 0.2s ease;
}

.modal-content {
  animation: slideUp 0.3s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slideUp {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* Prevent body scroll when modal is open */
body:has(.modal-overlay) {
  overflow: hidden;
}
