/* CruiseNavi Japan Custom Styling */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Noto+Sans+JP:wght@300;400;500;600;700;800&display=swap');

:root {
  --ocean-deep: #0b192c;
  --ocean-navy: #1e3e62;
  --ocean-blue: #008170;
  --gold-accent: #f8b400;
  --gold-light: #fff3cd;
}

body {
  font-family: 'Noto Sans JP', 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  -webkit-tap-highlight-color: transparent;
}

/* Glassmorphism Cards */
.glass-card {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(226, 232, 240, 0.8);
}

.glass-dark {
  background: rgba(15, 23, 42, 0.88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.glass-nav {
  background: rgba(11, 25, 44, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* Oceanic Gradient Backgrounds */
.bg-ocean-gradient {
  background: linear-gradient(135deg, #0b192c 0%, #1e3e62 50%, #003c43 100%);
}

.bg-sea-header {
  background: linear-gradient(135deg, #0f2027 0%, #203a43 50%, #2c5364 100%);
}

.bg-card-gradient {
  background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
}

/* Subtle Shimmer Effect */
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.animate-shimmer {
  background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.2) 50%, rgba(255,255,255,0) 100%);
  background-size: 200% 100%;
  animation: shimmer 2.5s infinite;
}

/* Timeline Styling */
.timeline-line::before {
  content: '';
  position: absolute;
  top: 2rem;
  bottom: 2rem;
  left: 1.5rem;
  width: 3px;
  background: linear-gradient(to bottom, #3b82f6, #0284c7, #06b6d4, #10b981);
  border-radius: 9999px;
}

@media (min-width: 768px) {
  .timeline-line::before {
    left: 2rem;
  }
}

/* Wave Animation */
.wave-bar {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M321.39,56.44c58-10.79,114.16-30.13,172-41.86,82.39-16.72,168.19-17.73,250.45-.39C823.78,31,906.67,72,985.66,92.83c70.05,18.48,146.53,26.09,214.34,3V0H0V27.35A600.21,600.21,0,0,0,321.39,56.44Z' fill='%23ffffff' fill-opacity='0.1'%3E%3C/path%3E%3C/svg%3E");
  background-size: cover;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: #f1f5f9;
}

::-webkit-scrollbar-thumb {
  background: #94a3b8;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #64748b;
}

/* Leaflet Map Styles */
#map {
  min-height: 380px;
  border-radius: 0.75rem;
  z-index: 10;
}

.leaflet-popup-content-wrapper {
  border-radius: 0.75rem;
  padding: 0;
  overflow: hidden;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.2);
}

.leaflet-popup-content {
  margin: 0;
  line-height: 1.5;
}

/* Print Styles */
@media print {
  body {
    background: white !important;
    color: black !important;
  }
  
  .no-print {
    display: none !important;
  }
  
  .print-only {
    display: block !important;
  }
  
  .glass-card {
    border: 1px solid #ccc !important;
    box-shadow: none !important;
    break-inside: avoid;
  }
  
  #map {
    height: 300px !important;
    break-inside: avoid;
  }
}
