/* ============================================================
   responsive.css — Адаптивность (медиа-запросы)
   ComicVerse — проект про комиксы
   ============================================================ */

/* ---------- Большой десктоп (1920px и выше) ---------- */
@media (min-width: 1441px) {
  :root {
    --container-max: 1400px;
    --fs-h1: 4rem;
    --fs-h2: 2.8rem;
    --fs-h3: 2rem;
  }

  .hero__title {
    font-size: 5rem;
  }

  .catalog__grid {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--spacing-2xl);
  }
}

/* ---------- Десктоп (до 1440px) ---------- */
@media (max-width: 1440px) {
  :root {
    --container-max: 1200px;
  }
}

/* ---------- Планшет (до 1024px) ---------- */
@media (max-width: 1024px) {
  :root {
    --fs-h1: 2.8rem;
    --fs-h2: 2rem;
    --fs-h3: 1.5rem;
  }

  .detail__content {
    grid-template-columns: 250px 1fr;
    gap: var(--spacing-xl);
  }

  .catalog__grid {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  }
}

/* ---------- Планшет (до 768px) ---------- */
@media (max-width: 768px) {
  :root {
    --fs-h1: 2.2rem;
    --fs-h2: 1.75rem;
    --fs-h3: 1.35rem;
    --fs-h4: 1.1rem;
    --spacing-3xl: 2.5rem;
  }

  /* Шапка */
  .header__burger {
    display: flex;
  }

  .nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: var(--color-blue);
    border-bottom: var(--border-width) solid var(--color-yellow);
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-base);
    z-index: 99;
  }

  .nav--open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
  }

  .nav__list {
    flex-direction: column;
    padding: var(--spacing-md);
    gap: var(--spacing-xs);
  }

  .nav__item--favorite {
    margin-left: 0;
    width: 100%;
  }

  .nav__link--favorite {
    justify-content: center;
  }

  /* Hero */
  .hero__inner {
    flex-direction: column;
    text-align: center;
  }

  .hero__title {
    font-size: 3rem;
  }

  /* Фильтры */
  .filters {
    top: 0;
    position: relative;
  }

  .filters__inner {
    flex-direction: column;
    gap: var(--spacing-sm);
  }

  .filters__group {
    flex: 1 1 auto;
    min-width: 0;
  }

  .filters__group--grow {
    min-width: 0;
  }

  /* Сетка карточек */
  .catalog__grid {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--spacing-lg);
  }

  /* Детальная страница */
  .detail__content {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }

  .detail__cover-wrapper {
    max-width: 250px;
    margin: 0 auto;
  }

  .detail__title {
    font-size: var(--fs-h2);
    text-align: center;
  }

  .detail__meta {
    grid-template-columns: 1fr;
    gap: var(--spacing-xs) 0;
  }

  .detail__meta dt {
    margin-top: var(--spacing-sm);
  }

  /* Подвал */
  .footer__inner {
    flex-direction: column;
    text-align: center;
  }

  /* Пагинация */
  .pagination__btn {
    width: 100%;
    padding: var(--spacing-md);
    font-size: var(--fs-h4);
  }

  /* Скелетон на планшете */
  .skeleton-grid {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--spacing-lg);
  }
}

/* ---------- Телефон (до 480px) ---------- */
@media (max-width: 480px) {
  :root {
    --fs-h1: 1.8rem;
    --fs-h2: 1.4rem;
    --fs-h3: 1.15rem;
    --fs-h4: 1rem;
    --fs-body: 0.9rem;
    --spacing-3xl: 2rem;
    --spacing-2xl: 1.5rem;
    --spacing-xl: 1.2rem;
    --spacing-lg: 1rem;
  }

  .header__logo-text {
    font-size: var(--fs-h4);
  }

  .header__logo-icon {
    font-size: 1.2rem;
  }

  .hero {
    padding: var(--spacing-2xl) 0;
  }

  .hero__title {
    font-size: 2.2rem;
    text-shadow: 3px 3px 0 var(--color-black);
  }

  .hero__subtitle {
    font-size: var(--fs-h4);
  }

  .catalog__grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-md);
    padding: var(--spacing-lg) 0;
  }

  .card {
    flex-direction: row;
  }

  .card__cover-wrapper {
    width: 120px;
    min-height: 180px;
    flex-shrink: 0;
  }

  .card__body {
    padding: var(--spacing-sm);
  }

  .card__title {
    font-size: var(--fs-h4);
  }

  .card__meta {
    font-size: var(--fs-tiny);
    flex-wrap: wrap;
  }

  .card__favorite-text {
    display: none;
  }

  .detail__cover-wrapper {
    max-width: 200px;
  }

  .similar__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .pagination__btn {
    font-size: 1rem;
  }

  /* Скелетон на телефоне */
  .skeleton-grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-md);
  }

  .skeleton-card {
    flex-direction: row;
  }

  .skeleton-card__cover {
    width: 120px;
    min-height: 180px;
    flex-shrink: 0;
  }

  .skeleton-card__body {
    padding: var(--spacing-sm);
  }
}

/* ---------- Телефон 375px ---------- */
@media (max-width: 375px) {
  :root {
    --fs-h1: 1.6rem;
    --fs-h2: 1.3rem;
    --fs-h3: 1.05rem;
    --fs-h4: 0.95rem;
    --spacing-xl: 1rem;
    --spacing-lg: 0.75rem;
  }

  .header__inner {
    padding-top: var(--spacing-sm);
    padding-bottom: var(--spacing-sm);
  }

  .header__logo {
    font-size: 1rem;
  }

  .header__logo-icon {
    font-size: 1rem;
  }

  .hero__title {
    font-size: 1.8rem;
    text-shadow: 2px 2px 0 var(--color-black);
  }

  .hero__subtitle {
    font-size: 1rem;
  }

  .card__cover-wrapper {
    width: 100px;
    min-height: 150px;
  }

  .card__title {
    font-size: 0.9rem;
  }

  .card__meta {
    font-size: 0.65rem;
  }

  .card__status {
    font-size: 0.6rem;
    padding: 1px 6px;
  }

  .filters__inner {
    gap: var(--spacing-xs);
  }

  .filters__select,
  .filters__search {
    padding: var(--spacing-xs) var(--spacing-sm);
    font-size: var(--fs-tiny);
  }

  .filters__search {
    padding-left: 32px;
  }

  .filters__search-icon {
    width: 14px;
    height: 14px;
    left: 10px;
  }

  .detail__cover-wrapper {
    max-width: 160px;
  }

  .similar__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-sm);
  }

  .similar__item img {
    max-width: 100px;
  }

  .similar__item span {
    font-size: var(--fs-tiny);
  }

  .skeleton-card__cover {
    width: 100px;
    min-height: 150px;
  }

  /* Подвал на 375px */
  .footer__inner {
    padding-top: var(--spacing-lg);
    padding-bottom: var(--spacing-lg);
  }

  .footer__text {
    font-size: var(--fs-tiny);
  }

  .footer__github {
    font-size: var(--fs-tiny);
    padding: var(--spacing-xs) var(--spacing-sm);
  }

  .footer__github-icon {
    width: 18px;
    height: 18px;
  }
}

/* ---------- Минимальная ширина 320px ---------- */
@media (max-width: 320px) {
  :root {
    --fs-h1: 1.4rem;
    --fs-h2: 1.15rem;
    --fs-h3: 1rem;
    --fs-h4: 0.85rem;
    --fs-body: 0.8rem;
    --fs-small: 0.7rem;
    --fs-tiny: 0.6rem;
    --spacing-lg: 0.5rem;
    --spacing-md: 0.5rem;
    --spacing-sm: 0.25rem;
    --spacing-xl: 0.75rem;
    --spacing-2xl: 1rem;
    --spacing-3xl: 1.5rem;
  }

  .card {
    flex-direction: column;
  }

  .card__cover-wrapper {
    width: 100%;
    min-height: auto;
    aspect-ratio: 2 / 3;
  }

  .card__title {
    font-size: 0.85rem;
  }

  .similar__grid {
    grid-template-columns: 1fr 1fr;
  }

  .similar__item img {
    max-width: 80px;
  }

  .hero {
    padding: var(--spacing-xl) 0;
  }

  .hero__title {
    font-size: 1.5rem;
    text-shadow: 2px 2px 0 var(--color-black);
  }

  .hero__subtitle {
    font-size: 0.9rem;
  }

  .hero__description {
    font-size: var(--fs-tiny);
  }

  .filters {
    padding: var(--spacing-sm) 0;
  }

  .filters__label {
    font-size: 0.55rem;
  }

  .filters__select,
  .filters__search {
    font-size: 0.6rem;
    padding: 2px 6px;
  }

  .filters__search {
    padding-left: 26px;
  }

  .filters__search-icon {
    width: 12px;
    height: 12px;
    left: 8px;
  }

  .filters__select-wrapper::after {
    right: 8px;
    font-size: 0.6rem;
  }

  .detail__cover-wrapper {
    max-width: 120px;
  }

  .detail__title {
    font-size: var(--fs-h2);
  }

  .detail__description {
    font-size: var(--fs-small);
  }

  .detail__meta dt,
  .detail__meta dd {
    font-size: var(--fs-tiny);
  }

  .pagination__btn {
    font-size: 0.85rem;
    padding: var(--spacing-sm) var(--spacing-md);
  }

  .skeleton-card {
    flex-direction: column;
  }

  .skeleton-card__cover {
    width: 100%;
    min-height: auto;
    aspect-ratio: 2 / 3;
  }

  .btn {
    font-size: var(--fs-small);
    padding: var(--spacing-xs) var(--spacing-sm);
  }
}

/* ---------- Retina-дисплеи ---------- */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .card__cover,
  .detail__cover,
  .similar__item img {
    image-rendering: auto;
  }
}

/* ---------- Уменьшение анимации для пользователей с настройками доступности ---------- */
@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;
  }

  .card:hover {
    transform: none;
  }

  .card:hover .card__cover {
    transform: none;
  }

  .pagination__btn:hover:not(:disabled) {
    transform: none;
  }

  .btn--primary:hover {
    transform: none;
  }
}
