/* Session rows (components/session-row.js): the thumbnail, the words, the
   price and spots, the Learn More button, one hairline between rows. The date
   is the link, stretched over the row; the button sits above it. On hover the
   photo zooms and the date colors; the hairline holds still. */

.session-rows { margin-top: var(--lg); border-top: var(--hair); }

.session-row {
  position: relative;
  display: grid;
  grid-template-columns: 7rem 1fr auto auto;
  gap: var(--md);
  align-items: center;
  padding: var(--md) 0;
  border-bottom: var(--hair);
}

.session-row:hover .zoom img { transform: scale(1.05); }   /* the stretched link covers the photo, so the row is the hover target */
.session-row .zoom { display: block; }
.session-row .zoom img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

.session-words { display: block; min-width: 0; }
.session-when { display: block; color: var(--text); font-size: var(--h3); font-weight: var(--light); line-height: var(--compact); }
.session-when:hover { text-decoration: none; color: var(--accent); }
.session-when::after { content: ''; position: absolute; inset: 0; }
.session-when:focus-visible { outline: none; }
.session-row:has(.session-when:focus-visible) { outline: 2px solid var(--accent); outline-offset: 4px; }   /* the ring around the whole row, since the whole row is the link */
.session-where { display: block; color: var(--text-2); font-size: var(--small); margin-top: 0.2rem; }

.session-cost { display: block; text-align: right; }
.session-price { display: block; font-family: var(--mono); font-weight: var(--bold); letter-spacing: 0.06em; }
.spots { display: block; font-size: var(--tiny); color: var(--text-2); margin-top: 0.2rem; }

.session-row .button { position: relative; z-index: 1; }

/* Phones: two rows, the thumbnail beside the date and place, then price ·
   spots on the left and the button on the right */
@media (max-width: 700px) {
  .session-row {
    grid-template-columns: 5.5rem 1fr auto;
    grid-template-areas: 'thumb words words' 'cost cost button';
    gap: var(--sm);
    align-items: center;
  }
  .session-row .zoom { grid-area: thumb; }
  .session-words { grid-area: words; }
  .session-when { font-size: 1.2rem; }
  .session-cost { grid-area: cost; display: flex; align-items: baseline; gap: 0.6rem; text-align: left; }
  .spots { margin-top: 0; }
  .session-row .button { grid-area: button; justify-self: end; }
}

@media (prefers-reduced-motion: reduce) {
  .session-row:hover .zoom img { transform: none; }
}
