/* ==========================================================
   Tienda — bonos regalo como billetes con matriz troquelada
   ========================================================== */
.hero-down { margin-top: 48px; }

.ticket-list { display: grid; gap: 22px; }
.ticket {
  --notch: 14px;
  position: relative;
  display: grid; grid-template-columns: 1fr 240px;
  background: var(--paper); color: var(--text);
  box-shadow: 0 30px 60px -40px rgba(21,32,42,.45);
  /* muescas del troquel a la altura de la matriz */
  -webkit-mask:
    radial-gradient(circle var(--notch) at calc(100% - 240px) 0, transparent 98%, #000) top / 100% 51% no-repeat,
    radial-gradient(circle var(--notch) at calc(100% - 240px) 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
          mask:
    radial-gradient(circle var(--notch) at calc(100% - 240px) 0, transparent 98%, #000) top / 100% 51% no-repeat,
    radial-gradient(circle var(--notch) at calc(100% - 240px) 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
  transition: transform .6s var(--ease-out);
}
.ticket:hover { transform: translateY(-4px); }
.ticket-feature { grid-template-columns: 1.1fr 1fr 240px; }
.ticket-photo { overflow: hidden; }
.ticket-photo img { width: 100%; height: 100%; object-fit: cover; min-height: 320px; }

.ticket-body { padding: clamp(28px, 3.4vw, 52px); }
.ticket-kind { font-size: 10px; letter-spacing: .34em; text-transform: uppercase; color: #b8862a; margin-bottom: 14px; }
.ticket h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(28px, 3vw, 44px); line-height: 1.05; margin-bottom: 16px; }
.ticket-body > p:not(.ticket-kind) { max-width: 56ch; color: var(--text-soft); }
.ticket-terms { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 6px 26px; }
.ticket-terms li { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--text); }
.ticket-terms li::before { content: "✦"; color: #b8862a; font-size: 8px; margin-right: 10px; vertical-align: 2px; }

.ticket-stub {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px;
  padding: 30px 24px;
  border-left: 1px dashed rgba(21,32,42,.25);
  background: var(--cream-2);
  text-align: center;
}
.ticket-price { font-family: var(--serif); font-size: clamp(48px, 4.6vw, 68px); line-height: 1; color: var(--text); }
.ticket-price small { display: block; margin-top: 6px; font-family: var(--sans); font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: var(--text-soft); }
.ticket-stub .btn-gold { min-height: 48px; padding: 0 30px; }

.shop-link { margin-top: 56px; text-align: center; }

@media (max-width: 1000px) {
  .ticket-feature { grid-template-columns: 1fr 240px; }
  .ticket-feature .ticket-photo { grid-column: 1 / -1; }
  .ticket-feature { -webkit-mask: none; mask: none; }
}
@media (max-width: 700px) {
  .ticket, .ticket-feature { grid-template-columns: 1fr; -webkit-mask: none; mask: none; }
  .ticket-stub { flex-direction: row; justify-content: space-between; border-left: 0; border-top: 1px dashed rgba(21,32,42,.25); padding: 20px 24px; }
  .ticket-photo img { min-height: 220px; }
}
