/* Responsive Design - Mobile First */

/* Mobile (0px - 767px) - Default styles in other files */

/* Tablet (768px - 1023px) */
@media (min-width: 768px) {
  .container {
    padding: 0 var(--spacing-lg);
  }
  
  .section {
    padding: var(--spacing-xl) 0;
  }
}

/* Desktop (1024px - 1439px) */
@media (min-width: 1024px) {
  .container {
    padding: 0 var(--spacing-xl);
  }
  
  .section {
    padding: 4rem 0;
  }
  
}

/* Wide (1440px+) */
@media (min-width: 1440px) {
  .container {
    max-width: 1400px;
  }
}

/* Touch-friendly tap targets on mobile */
@media (max-width: 768px) {
  .btn,
  .card-link,
  .theme-toggle {
    min-width: 44px;
    min-height: 44px;
  }
}

/* Content flow on smaller screens (keep hero untouched) */
@media (max-width: 768px) {
  .section:not(#hero-section) {
    align-items: stretch;
    justify-content: flex-start;
  }

  .section:not(#hero-section) .container {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .section-title {
    letter-spacing: 0.12em;
  }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  
  .card:hover {
    transform: none !important;
  }
  
  .theme-toggle:hover {
    transform: none !important;
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .glass,
  .glass-strong {
    border-width: 2px;
  }
  
  .btn::before {
    opacity: 1;
  }
}

/* Print-friendly layout and clean page breaks */
@media print {
  @page {
    margin: 1.25cm;
  }

  html,
  body {
    background: #ffffff !important;
    color: #000000 !important;
    height: auto;
  }

  body {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  * {
    box-shadow: none !important;
    text-shadow: none !important;
  }

  .hero-background {
    display: none !important;
  }

  #hero-section {
    min-height: auto;
    height: auto;
    padding: 1.25rem 0;
    border-bottom: none;
  }

  #hero-section .hero-title {
    color: #000000;
  }

  .hero-nav {
    position: static;
    width: auto;
    margin-top: 0.75rem;
  }

  .section {
    min-height: auto;
    padding: 1.25rem 0;
    display: block;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .section + .section {
    break-before: page;
    page-break-before: always;
  }

  .section-title,
  .month-header {
    color: #000000 !important;
    background: none !important;
    -webkit-text-fill-color: #000000 !important;
  }

  .calendar-wrapper {
    max-height: none;
    overflow: visible;
    background: #ffffff;
    border: 1px solid #000000;
  }

  .calendar-cell {
    background: #ffffff;
    border-color: #000000;
  }

  .calendar-cell.today {
    background: #f0f0f0;
    border-color: #000000;
  }

  .cell-event {
    background: #e8e8e8;
    color: #000000;
    border-left-color: #000000;
  }

  .btn,
  .card-link {
    background: #ffffff;
    color: #000000;
    border: 1px solid #000000;
  }

  .btn::before,
  .btn::after,
  .card-link::before,
  .card-link::after {
    display: none !important;
  }

  .calendar-month + .calendar-month {
    break-before: page;
    page-break-before: always;
  }
}
