/* Agent context note: Responsive and reduced-motion adaptations for the theme; verify mobile/tablet widths in Playground and update after layout changes. */
@media (max-width: 1020px) {
  :root {
    --shell: min(100% - 42px, 920px);
  }

  .nav-toggle {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 13px;
    padding: 10px 0;
  }

  .nav-toggle__label {
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .nav-toggle__lines,
  .nav-toggle__lines::before,
  .nav-toggle__lines::after {
    background: var(--ink);
    display: block;
    height: 1px;
    transition: transform 180ms ease;
    width: 24px;
  }

  .nav-toggle__lines {
    position: relative;
  }

  .nav-toggle__lines::before,
  .nav-toggle__lines::after {
    content: "";
    left: 0;
    position: absolute;
  }

  .nav-toggle__lines::before { top: -7px; }
  .nav-toggle__lines::after { top: 7px; }

  .nav-toggle[aria-expanded="true"] .nav-toggle__lines { background: transparent; }
  .nav-toggle[aria-expanded="true"] .nav-toggle__lines::before { top: 0; transform: rotate(45deg); }
  .nav-toggle[aria-expanded="true"] .nav-toggle__lines::after { top: 0; transform: rotate(-45deg); }

  .primary-nav {
    align-items: stretch;
    background: var(--ivory-soft);
    border-top: 1px solid var(--line);
    display: none;
    flex-direction: column;
    gap: 22px;
    left: 0;
    min-height: calc(100vh - 92px);
    padding: 30px 21px 60px;
    position: absolute;
    right: 0;
    top: 92px;
  }

  .primary-nav.is-open { display: flex; }

  .primary-nav__list {
    align-items: stretch;
    flex-direction: column;
    gap: 0;
  }

  .primary-nav__list a {
    border-bottom: 1px solid var(--line);
    display: block;
    font-family: var(--serif);
    font-size: 2.15rem;
    padding: 10px 0;
  }

  .primary-nav__list a::after { display: none; }

  .primary-nav .button { align-self: flex-start; }

  .hero {
    min-height: 650px;
  }

  .hero__media {
    background-image: linear-gradient(90deg, rgba(251, 247, 239, 0.95), rgba(251, 247, 239, 0.48) 48%, rgba(251, 247, 239, 0.05) 76%), var(--hero-photo);
    background-position: 58% center;
  }

  .hero__copy { width: 62%; }

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

  .offering-card__image { height: 220px; }

  .event-detail__layout {
    gap: 50px;
    grid-template-columns: 1.3fr 0.85fr;
  }
}

@media (max-width: 760px) {
  :root {
    --shell: calc(100% - 32px);
  }

  body { font-size: 15px; }

  h1 { font-size: clamp(3rem, 14vw, 4.6rem); }

  .site-header__inner { height: 78px; }
  .brand { gap: 10px; }
  .brand__mark { background-position-y: -24px; background-size: 118px auto; flex-basis: 42px; height: 42px; width: 42px; }
  .brand__name { font-size: 1.14rem; letter-spacing: 0.21em; }
  .primary-nav { min-height: calc(100vh - 78px); top: 78px; }

  .hero {
    min-height: 760px;
  }

  .hero__media {
    background-image: linear-gradient(180deg, rgba(251, 247, 239, 0.99) 0%, rgba(251, 247, 239, 0.91) 41%, rgba(251, 247, 239, 0.1) 71%), var(--hero-photo);
    background-position: 68% bottom;
  }

  .hero__inner {
    align-items: flex-start;
  }

  .hero__copy {
    padding-top: 75px;
    width: 100%;
  }

  .hero__copy > p:not(.eyebrow) br { display: none; }
  .hero__copy > p:not(.eyebrow) { max-width: 390px; }

  .section { padding: 78px 0; }
  .section-heading { margin-bottom: 34px; }
  .section-heading--split { align-items: flex-start; gap: 25px; }

  .offering-grid,
  .event-grid,
  .event-grid--archive,
  .connected__grid,
  .journal-grid {
    grid-template-columns: 1fr;
  }

  .offering-card__image { height: 235px; }
  .event-card { min-height: 270px; }

  .newsletter {
    align-items: stretch;
    flex-direction: column;
  }

  .newsletter input { min-height: 51px; }

  .site-footer__grid {
    gap: 40px 25px;
    grid-template-columns: repeat(2, 1fr);
  }

  .site-footer__brand { grid-column: 1 / -1; }

  .event-detail__layout {
    grid-template-columns: 1fr;
    padding-block: 65px 90px;
  }

  .booking-panel { position: static; }
  .page-hero { padding: 90px 0 70px; }
}

@media (max-width: 480px) {
  .nav-toggle__label { display: none; }
  .hero { min-height: 690px; }
  .hero__copy { padding-top: 55px; }
  .section-heading--split { display: block; }
  .section-heading--split .text-link { display: inline-block; margin-top: 16px; }
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
  .site-footer__base { align-items: flex-start; gap: 22px; }
}

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