@layer component.layout {
  .ticket {
    display: grid;
    align-items: center;
    grid-template: 
      '🎆 📄' 1fr / 
      1fr 2fr;
    @media (min-width: 801px) {
      gap: 2rem;
    }
  }
  @media (min-width: 801px) {
    .ticket--has-scheme:not(.ticket--flipped) {
      padding-right: 2rem;
    }
  }

  .ticket--flipped {
    grid-template: 
      '📄 🎆' 1fr / 
      2fr 1fr;
    @media (min-width: 801px) {
      &:where(.ticket--has-scheme) {
        padding-left: 2rem;
      }
    }
  }

  @media (max-width: 800px) {
    .ticket {
      grid-template: 
        '🎆' auto 
        '📄' 1fr / 
        1fr;
      > .ticket__body {
        padding-block: .1px;
        padding-inline: 2rem;
      } 
    }
  }

  .ticket__image img {
    width: 100%;
    display: block;
    object-fit: cover;
  }

  .ticket__image {
    grid-area: 🎆;
  }

  .ticket__overlay {
    padding: 2rem;
  }

  .ticket__body {
    grid-column: 📄;
    &::before {
      content: '';
      display: block;
      margin-bottom: 1em;
    }
    &::after {
      content: '';
      display: block;
      margin-top: 1em;
    }
  }
}
