/* ===================================
   WIN MACHANCE CASINO - RESPONSIVE CSS
   Медиа-запросы для адаптивного дизайна
   =================================== */

/* ===================================
   DESKTOP LARGE (1400px+)
   =================================== */

@media (min-width: 1400px) {
  .container {
    max-width: 1320px;
  }
  
  h1 {
    font-size: 3rem;
  }
  
  .block-title {
    font-size: 2.75rem;
  }
}

/* ===================================
   TABLET (1024px and below)
   =================================== */

@media (max-width: 1024px) {
  html {
    font-size: 15px;
  }
  
  .container {
    padding: 0 1rem;
  }
  
  h1 {
    font-size: 2.25rem;
  }
  
  h2, .block-title {
    font-size: 1.875rem;
  }
  
  .block {
    padding: 3rem 0;
  }
  
  .col-4 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  
  .btn {
    padding: 0.75rem 1.5rem;
  }
  
  .btn-lg {
    padding: 1rem 2rem;
  }
}

/* ===================================
   TABLET SMALL (768px and below)
   =================================== */

@media (max-width: 768px) {
  html {
    font-size: 14px;
  }
  
  h1 {
    font-size: 2rem;
  }
  
  h2, .block-title {
    font-size: 1.75rem;
  }
  
  h3 {
    font-size: 1.5rem;
  }
  
  .block {
    padding: 2.5rem 0;
  }
  
  .block-title {
    margin-bottom: 2rem;
  }
  
  /* Grid становится одноколоночным */
  .col-2,
  .col-3,
  .col-4 {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 1.5rem;
  }
  
  .row {
    margin: 0 -0.5rem;
  }
  
  .col,
  .col-2,
  .col-3,
  .col-4 {
    padding: 0 0.5rem;
  }
  
  /* Buttons */
  .btn {
    padding: 0.75rem 1.25rem;
    font-size: 0.9375rem;
  }
  
  .btn-lg {
    padding: 0.875rem 1.75rem;
    font-size: 1rem;
  }
  
  .btn-block {
    width: 100%;
  }
  
  /* Cards */
  .card-body {
    padding: 1.25rem;
  }
  
  .game-card-img {
    height: 200px;
  }
  
  /* Tables */
  .table {
    font-size: 0.875rem;
  }
  
  .table th,
  .table td {
    padding: 0.75rem;
  }
  
  /* Tabs */
  .tabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  .tab {
    padding: 0.875rem 1.25rem;
    font-size: 0.9375rem;
  }
  
  /* Modals */
  .modal {
    width: 95%;
  }
  
  .modal-header,
  .modal-body,
  .modal-footer {
    padding: 1.25rem;
  }
  
  /* Forms */
  .form-control {
    padding: 0.75rem 0.875rem;
  }
}

/* ===================================
   MOBILE (640px and below)
   =================================== */

@media (max-width: 640px) {
  html {
    font-size: 14px;
  }
  
  body {
    font-size: 0.9375rem;
  }
  
  h1 {
    font-size: 1.75rem;
  }
  
  h2, .block-title {
    font-size: 1.5rem;
  }
  
  h3 {
    font-size: 1.25rem;
  }
  
  h4 {
    font-size: 1.125rem;
  }
  
  .container {
    padding: 0 0.875rem;
  }
  
  .block {
    padding: 2rem 0;
  }
  
  .block-title {
    margin-bottom: 1.5rem;
    font-size: 1.5rem;
  }
  
  .block-subtitle {
    font-size: 1rem;
    margin-bottom: 1.5rem;
  }
  
  /* Spacing */
  .gap-sm {
    gap: 0.75rem;
  }
  
  .gap-md {
    gap: 1.25rem;
  }
  
  .gap-lg {
    gap: 2rem;
  }
  
  /* Buttons */
  .btn {
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
  }
  
  .btn-lg {
    padding: 0.875rem 1.5rem;
    font-size: 0.9375rem;
  }
  
  .btn-sm {
    padding: 0.5rem 1rem;
    font-size: 0.8125rem;
  }
  
  /* Cards */
  .card-body {
    padding: 1rem;
  }
  
  .card-footer {
    padding: 0.875rem 1rem;
  }
  
  .game-card-img {
    height: 180px;
  }
  
  .game-card-overlay {
    padding: 1rem;
  }
  
  .game-card-title {
    font-size: 1rem;
  }
  
  /* Badges */
  .badge {
    padding: 0.3125rem 0.625rem;
    font-size: 0.6875rem;
  }
  
  /* Forms */
  .form-group {
    margin-bottom: 1.25rem;
  }
  
  .form-control {
    padding: 0.625rem 0.75rem;
    font-size: 0.9375rem;
  }
  
  /* Tabs */
  .tab {
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
  }
  
  /* Accordion */
  .accordion-header {
    padding: 1rem 1.25rem;
    font-size: 0.9375rem;
  }
  
  .accordion-body {
    padding: 0 1.25rem 1.25rem;
    font-size: 0.875rem;
  }
  
  /* Tables - становятся прокручиваемыми */
  .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  .table {
    font-size: 0.8125rem;
  }
  
  .table th,
  .table td {
    padding: 0.625rem 0.75rem;
    white-space: nowrap;
  }
  
  /* Modals */
  .modal {
    width: 100%;
    max-height: 100vh;
    border-radius: var(--radius-lg);
  }
  
  .modal-header,
  .modal-body,
  .modal-footer {
    padding: 1rem;
  }
  
  .modal-title {
    font-size: 1.25rem;
  }
  
  .modal-footer {
    flex-direction: column;
  }
  
  .modal-footer .btn {
    width: 100%;
  }
  
  /* Alerts */
  .alert {
    padding: 0.875rem 1rem;
    font-size: 0.875rem;
  }
  
  /* Rating */
  .rating-star {
    font-size: 1rem;
  }
  
  .rating-value {
    font-size: 0.875rem;
  }
  
  /* Pagination */
  .pagination-item {
    width: 36px;
    height: 36px;
    font-size: 0.875rem;
  }
  
  /* Breadcrumb */
  .breadcrumb {
    font-size: 0.8125rem;
    padding: 0.75rem 0;
  }
}

/* ===================================
   MOBILE SMALL (480px and below)
   =================================== */

@media (max-width: 480px) {
  html {
    font-size: 13px;
  }
  
  h1 {
    font-size: 1.5rem;
  }
  
  h2, .block-title {
    font-size: 1.375rem;
  }
  
  .container {
    padding: 0 0.75rem;
  }
  
  .block {
    padding: 1.75rem 0;
  }
  
  /* Buttons - полная ширина на очень маленьких экранах */
  .btn {
    padding: 0.75rem;
    width: 100%;
  }
  
  .btn-sm {
    padding: 0.625rem;
  }
  
  /* Cards */
  .card-body {
    padding: 0.875rem;
  }
  
  .game-card-img {
    height: 160px;
  }
  
  /* Forms */
  .form-control {
    padding: 0.625rem;
  }
  
  /* Tables */
  .table th,
  .table td {
    padding: 0.5rem;
    font-size: 0.75rem;
  }
}

/* ===================================
   LANDSCAPE ORIENTATION (для мобильных)
   =================================== */

@media (max-height: 500px) and (orientation: landscape) {
  .block {
    padding: 1.5rem 0;
  }
  
  .modal {
    max-height: 95vh;
  }
  
  .game-card-img {
    height: 150px;
  }
}

/* ===================================
   HIGH RESOLUTION DISPLAYS
   =================================== */

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  /* Улучшенная четкость для Retina дисплеев */
  body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
}

/* ===================================
   PRINT STYLES
   =================================== */

@media print {
  * {
    background: white !important;
    color: black !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  
  a,
  a:visited {
    text-decoration: underline;
  }
  
  a[href]::after {
    content: " (" attr(href) ")";
  }
  
  abbr[title]::after {
    content: " (" attr(title) ")";
  }
  
  .no-print {
    display: none !important;
  }
  
  .page-break {
    page-break-before: always;
  }
}

/* ===================================
   ACCESSIBILITY - REDUCED MOTION
   =================================== */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ===================================
   DARK MODE (дополнительно)
   =================================== */

@media (prefers-color-scheme: dark) {
  /* Уже используем темную тему по умолчанию */
  /* Но можно добавить дополнительные настройки */
}

/* ===================================
   TOUCH DEVICES
   =================================== */

@media (hover: none) and (pointer: coarse) {
  /* Убираем hover эффекты для тач-устройств */
  .btn:hover {
    transform: none;
  }
  
  .card:hover {
    transform: none;
  }
  
  /* Увеличиваем размеры кликабельных элементов */
  .btn,
  .tab,
  .accordion-header,
  .pagination-item {
    min-height: 44px;
  }
}
