/* ==========================================================================
   Responsive adjustments (desktop-first, tested 320px to 1920px)
   ========================================================================== */

@media (min-width: 1680px) {
  :root { --container: 1440px; }
}

@media (max-width: 1280px) {
  .site-nav__list { gap: 1.35rem; }
  .reflections li { padding-right: 1.25rem; }
  .reflections li + li { padding-left: 1.25rem; }
}

/* Tablet landscape: switch to the menu overlay ----------------------------- */
@media (max-width: 1100px) {
  .site-nav { display: none; }
  .menu-toggle { display: inline-flex; }
  .reflections { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2.5rem; }
  .reflections li:nth-child(4) { border-left: 0; padding-left: 0; }
  .site-footer__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .site-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 1024px) {
  .hero__title { max-width: 12ch; }
  .themes__row { grid-template-columns: 3.5rem minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; }
  .credentials__row { grid-template-columns: 9rem minmax(0, 1fr); }
}

/* Stack two-column layouts ------------------------------------------------- */
@media (max-width: 900px) {
  :root { --header-h: 72px; }

  .hero { min-height: 0; }
  .hero__grid { grid-template-columns: minmax(0, 1fr); gap: 3.5rem; padding-block: 2rem 4rem; }
  .hero__title { max-width: 13ch; }
  .hero__visual { min-height: 0; padding-block: 1.5rem 2.5rem; }
  .hero__plate { height: 100%; width: min(84%, 24rem); }
  .book3d--hero { --w: clamp(210px, 52vw, 320px); }
  .hero__ghost { font-size: 40vw; bottom: auto; top: 46%; }

  .intro__body { grid-template-columns: minmax(0, 1fr); align-items: start; }

  .about-teaser__grid,
  .showcase__grid,
  .cta-book__inner,
  .contact__grid,
  .contact-page .contact__grid,
  .why__grid,
  .synopsis__grid,
  .page-hero__grid,
  .book-hero .page-hero__grid,
  .author-mini__grid { grid-template-columns: minmax(0, 1fr); }

  .about-teaser .portrait { max-width: 34rem; }
  .book3d--showcase, .book3d--page { --w: clamp(210px, 52vw, 320px); }
  .showcase__visual { padding-block: 0 1rem; }
  .why__intro, .synopsis__head { position: static; }
  .cta-book__jacket figcaption { text-align: left; }

  .page-hero__portrait { margin-left: 0; max-width: 26rem; }
  .author-mini .portrait { max-width: 22rem; }

  /* Timeline becomes a single column with the track on the left */
  .timeline__track { left: 0.45rem; }
  .timeline__item {
    grid-template-columns: minmax(0, 1fr);
    padding: 0 0 3.5rem 2.75rem;
  }
  .timeline__dot { left: 0.45rem; top: 0.6rem; }
  .timeline__item:nth-child(n) .timeline__num,
  .timeline__item:nth-child(n) .timeline__card {
    grid-column: 1; grid-row: auto;
    text-align: left; justify-self: start;
  }
  .timeline__num { font-size: clamp(3.5rem, 12vw, 5rem); margin-bottom: 1rem; }

  .chapter { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .chapter__sticky { position: static; display: flex; align-items: baseline; gap: 1.25rem; }
  .chapter__num { margin-bottom: 0; }

  .band__inner { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 768px) {
  .themes__row { grid-template-columns: 2.5rem minmax(0, 1fr); gap: 0.5rem 1rem; }
  .themes__text { grid-column: 2; }

  .credentials__row { grid-template-columns: minmax(0, 1fr); gap: 0.35rem; }
  .credentials dt { padding-top: 0; }

  .reflections { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reflections li:nth-child(n) { border-left: 0; padding: 1.75rem 1rem 0 0; margin: 0; }
  .reflections li:nth-child(even) { border-left: 1px solid var(--line-light); padding-left: 1.25rem; }

  .reviews__mark { left: -0.5rem; top: -0.5em; font-size: 8rem; }
  .reviews__controls { gap: 1.25rem; }

  .site-footer__bottom { flex-direction: column; align-items: flex-start; }

  .contact-form__foot { flex-direction: column-reverse; align-items: stretch; }
  .contact-form__submit { width: 100%; }
  .contact-form__note { max-width: none; }
}

@media (max-width: 600px) {
  .site-header__cta { display: none; }
  .hero__foot { flex-direction: column; align-items: flex-start; gap: 1rem; }
  .hero__scroll { display: none; }
  .hero .btn-row .btn, .page-hero .btn-row .btn, .cta-book .btn-row .btn, .confirm .btn-row .btn { flex: 1 1 100%; }
  .hero__author { margin-top: 2.25rem; }

  .contact-form__grid { grid-template-columns: minmax(0, 1fr); }

  .reflections { grid-template-columns: minmax(0, 1fr); }
  .reflections li:nth-child(n) { border-left: 0; padding: 1.5rem 0 0; }
  .reflections li + li { border-top: 1px solid var(--line-light); margin-top: 1.5rem; }

  .places__item { gap: 1rem; }
  .places__num { min-width: 1.75rem; }

  .reviews__progress { display: none; }
  .reviews__controls { justify-content: space-between; }

  .site-footer__top { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .site-footer__legal { flex-wrap: wrap; gap: 0.5rem 1.5rem; }

  .facts { gap: 0 1.75rem; }
  .portrait::before { transform: translate(0.75rem, 0.75rem); }
}

@media (max-width: 380px) {
  .brand__name { font-size: 1.4rem; }
  .brand__tag { font-size: 0.625rem; }
  .menu-toggle__label { display: none; }
  .btn { padding-left: 1.25rem; letter-spacing: 0.1em; }
  .eyebrow { letter-spacing: 0.12em; font-size: 0.75rem; }
  .eyebrow::before { width: 1.5rem; }
  .hero__themes { letter-spacing: 0.1em; }
  .credentials dd strong { font-size: 1.35rem; }
}
