/* Weather Page Specific Styles */


/* ===== AI Disclaimer Styles ===== */

/* Top disclaimer bar */
.ai-disclaimer-bar {
    background: linear-gradient(to bottom, #fef3c7, #fef9c3);
    border-bottom: 1px solid #fbbf24;
}

/* Footer disclaimer box */
.ai-disclaimer-footer {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

/* Disclaimer icon pulse */
@keyframes pulse-warning {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.8;
        transform: scale(1.05);
    }
}

.disclaimer-icon {
    animation: pulse-warning 3s ease-in-out infinite;
}

/* Disclaimer list styling */
.ai-disclaimer-footer ul li {
    padding-left: 0.5rem;
}

/* Make disclaimer text more readable */
.ai-disclaimer-footer p,
.ai-disclaimer-footer li {
    line-height: 1.6;
}

/* Responsive disclaimer */
@media (max-width: 768px) {
    .ai-disclaimer-footer {
        padding: 1rem;
    }
    
    .ai-disclaimer-footer h3 {
        font-size: 1rem;
    }
    
    .ai-disclaimer-footer p,
    .ai-disclaimer-footer li {
        font-size: 0.875rem;
    }
}

/* ===== End AI Disclaimer Styles ===== */

/* ===== Meteocons Animated SVG Icons ===== */

/* Weather icon container */
.weather-icon-container {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Smooth loading for weather icons */
.weather-icon-container img {
    transition: opacity 0.3s ease;
}

.weather-icon-container img[loading="lazy"] {
    opacity: 0;
}

.weather-icon-container img[loading="lazy"].loaded {
    opacity: 1;
}

/* Hover effect for weather cards */
.weather-card:hover .weather-icon-container img {
    transform: scale(1.1);
    transition: transform 0.3s ease;
}

/* Ensure SVG icons maintain aspect ratio */
.weather-icon-container img,
img[src*="/weather/"] {
    object-fit: contain;
    max-width: 100%;
    height: auto;
}

/* Animation for hero weather icon */
@keyframes floatWeather {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-8px);
    }
}

.hero-weather-icon img {
    animation: floatWeather 3s ease-in-out infinite;
}

/* ===== End Meteocons Styles ===== */

/* ===== Splide.js Custom Styles ===== */
/* ===== Splide.js Custom Styles (Fixed) ===== */

/* General Splide container */
.splide {
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}

/* City weather slider */
.city-weather-slider {
  width: 100%;
  overflow: hidden !important;
  max-width: 100%;
}

/* Splide track */
.city-weather-slider .splide__track {
  overflow: hidden !important; /* prevent extra scroll space */
}

/* Splide list */
.city-weather-slider .splide__list {
  display: flex;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible;
  will-change: transform;
}

/* Splide slide */
.city-weather-slider .splide__slide {
  flex-shrink: 0;
  box-sizing: border-box;
  min-width: 0; /* prevent overflow from flex-basis */
  height: auto;
  display: flex;
  justify-content: center;
  align-items: stretch;
}

.city-weather-slider .splide__slide > div {
  width: 100%;
}

/* Arrows */
.splide__arrow {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: white;
  border: 1px solid #d1d5db;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
}

.splide__arrow:hover {
  background: #f9fafb;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.splide__arrow:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

/* Default arrow positions */
.splide__arrow--prev {
  right: -16px;
}
.splide__arrow--next {
  left: -16px;
}

/* RTL arrow swap */
.splide[dir="rtl"] .splide__arrow--prev {
  right: auto;
  left: -16px;
}
.splide[dir="rtl"] .splide__arrow--next {
  left: auto;
  right: -16px;
}

/* Hide pagination dots */
.splide__pagination {
  display: none !important;
}

/* === MOBILE FIXES === */
@media (max-width: 768px) {
  /* Contain everything */
  html, body {
    overflow-x: hidden;
    max-width: 100%;
  }

  .weather-page,
  .city-weather-slider,
  .splide,
  .splide__track,
  .splide__list {
  }

  /* Remove negative margins that cause overflow */
  .splide {
    margin: 0;
    padding: 0 0.5rem;
  }

  /* Adjust arrow sizes and positions */
  .splide__arrow {
    width: 28px;
    height: 28px;
  }

  .splide__arrow--prev {
    right: -12px;
  }

  .splide__arrow--next {
    left: -12px;
  }

  .splide[dir="rtl"] .splide__arrow--prev {
    left: -12px;
    right: auto;
  }

  .splide[dir="rtl"] .splide__arrow--next {
    right: -12px;
    left: auto;
  }

  /* Prevent any flex overflow */
  .splide__slide {
    flex: 0 0 auto;
    min-width: 100%; /* 1 full slide per view */
  }

  /* Ensure internal elements respect bounds */
  .splide__slide > div,
  .weather-card {
    width: 100%;
    max-width: 100%;
  }
}

/* ===== End Splide Custom Styles ===== */

/* ===== Global Overflow & Container Fix ===== */


/* ===== End Overflow Fix ===== */

/* ===== End Splide Custom Styles ===== */

/* Smooth transitions for sliders */
.slider-track {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Custom scrollbar for horizontal scrolling fallback */
.city-weather-slider::-webkit-scrollbar {
    height: 6px;
}

.city-weather-slider::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

.city-weather-slider::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 10px;
}

.city-weather-slider::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* Weather card hover effects */
.weather-card {
    transition: all 0.3s ease;
}

.weather-card:hover {
    transform: translateY(-2px);
}

/* Icon animations */
@keyframes float {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-10px);
    }
}

.icon.sun,
.icon.cloud {
    animation: float 3s ease-in-out infinite;
}

/* Temperature bar animations */
@keyframes fillBar {
    from {
        width: 0%;
    }
    to {
        width: var(--bar-width);
    }
}

.temperature-bar {
    animation: fillBar 1s ease-out forwards;
}

/* FAQ accordion smooth transition */
details summary {
    transition: all 0.2s ease;
}

details[open] summary {
    margin-bottom: 1rem;
}

/* Gradient text effect */
.gradient-text {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Card shadow hover effect */
.hover-lift {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.hover-lift:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

/* Decorative blob animation */
@keyframes blob {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    25% {
        transform: translate(20px, -20px) scale(1.1);
    }
    50% {
        transform: translate(-20px, 20px) scale(0.9);
    }
    75% {
        transform: translate(20px, 20px) scale(1.05);
    }
}

.animate-blob {
    animation: blob 7s ease-in-out infinite;
}

/* Pulse animation for weather icons */
@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
}

.weather-icon-pulse {
    animation: pulse 2s ease-in-out infinite;
}

/* Skeleton loading animation */
@keyframes shimmer {
    0% {
        background-position: -1000px 0;
    }
    100% {
        background-position: 1000px 0;
    }
}

.skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 1000px 100%;
    animation: shimmer 2s infinite;
}

/* Responsive slider button positioning */
@media (max-width: 768px) {
    .slider-prev,
    .slider-next {
        width: 32px;
        height: 32px;
    }
}

/* Print styles */
@media print {
    .slider-prev,
    .slider-next {
        display: none !important;
    }
    
    .slider-track {
        transform: none !important;
        display: grid !important;
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 1rem;
    }
}

/* ===== Mobile Horizontal Scroll Fix ===== */

/* Prevent all horizontal overflow */
html, body {
    overflow-x: hidden;
    width: 100%;
    position: relative;
}

/* Ensure main container doesn't overflow */
.weather-page {
    overflow-x: hidden;
    max-width: 100vw;
}

/* Fix container overflow on mobile */
@media (max-width: 768px) {
    .container {
        overflow-x: hidden;
        padding-left: 1rem;
        padding-right: 1rem;
    }
    
    /* Ensure grid doesn't cause overflow */
    .grid {
        overflow-x: hidden;
    }
    
    /* Fix any potential overflow from cards */
    .rounded-2xl,
    .rounded-xl {
        max-width: 100%;
    }
    
    /* Prevent negative margins from causing overflow */
    * {
        max-width: 100%;
    }
}

/* Splide specific overflow fixes */
.splide__track {
    overflow: hidden !important;
}

.splide__list {
    overflow: visible;
}

/* Ensure slides don't cause horizontal scroll */
.splide__slide {
    min-width: 0; /* Allow flex shrinking */
}

/* ===== End Mobile Overflow Fix ===== */

/* Dark mode support (optional) */
@media (prefers-color-scheme: dark) {
    .weather-page {
        color-scheme: dark;
    }
}

/* Line clamp utility */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Backdrop blur support */
@supports (backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px)) {
    .backdrop-blur {
        -webkit-backdrop-filter: blur(10px);
        backdrop-filter: blur(10px);
    }
}

/* Focus styles for accessibility */
.slider-prev:focus,
.slider-next:focus,
details summary:focus {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

/* Smooth scroll behavior */
html {
    scroll-behavior: smooth;
}

/* Enhanced weather condition colors */
.weather-sunny {
    color: #f59e0b;
}

.weather-cloudy {
    color: #6b7280;
}

.weather-rainy {
    color: #3b82f6;
}

.weather-snowy {
    color: #93c5fd;
}

/* Chart styling */
.temperature-chart {
    position: relative;
}

.chart-bar {
    transition: all 0.3s ease;
}

.chart-bar:hover {
    opacity: 0.8;
}

/* Mobile optimizations */
@media (max-width: 640px) {
    .city-weather-slider .slider-track > div {
        min-width: 120px;
    }
    
    h1 {
        font-size: 1.5rem;
    }
    
    h2 {
        font-size: 1.25rem;
    }
}

/* Loading state */
.loading {
    pointer-events: none;
    opacity: 0.6;
}

.loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px;
    border: 2px solid #3b82f6;
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
}

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

/* Enhanced tooltip (optional) */
[data-tooltip] {
    position: relative;
}

[data-tooltip]::before {
    content: attr(data-tooltip);
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(-8px);
    padding: 0.5rem 0.75rem;
    background: rgba(0, 0, 0, 0.9);
    color: white;
    font-size: 0.875rem;
    border-radius: 0.375rem;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

[data-tooltip]:hover::before {
    opacity: 1;
}

@media (max-width: 640px) {
    .city-weather-slider .splide__track {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }
    
    .city-weather-slider .splide__list {
        display: flex;
        gap: 0.5rem;
    }
    
    .city-weather-slider .splide__slide {
        flex: 0 0 auto;
        width: 280px; /* Adjust as needed */
    }
}