/******************************************************************************
TIP: Ticket Stubs theme — "Admit two" landing page (design 6B)

Two rotated ticket cards on a warm cream frame. Content comes from the
settings.js links array (see layout/tickets.html) and footer object.
******************************************************************************/

/* Fonts loaded from Google Fonts in index.html */

:root {
  --brand-red: #e30613;
  --brand-blue: #344691;
  --color-ink: #111;
  --color-bg: #ececec;
  --color-cream: #fff3e0;
  --color-tagline: #7a6a52;
  --color-separator: #d9c6a8;
  --color-ticket-text: #fff;
  --font-family: "Archivo", Helvetica, sans-serif;
  --font-family-display: "Baloo 2", sans-serif;
  --font-family-mono: "Space Grotesk", monospace;
}

/* Page structure */
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-cream);
  font-family: var(--font-family);
}

/* Full-width flex item of body; centers the frame so its max-width
   resolves against the viewport, not the frame's own 1280px width */
main.ticket-page {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Neutralize the base link decoration from style.css */
main.ticket-page a:link,
main.ticket-page a:visited {
  text-decoration: none;
  border-bottom: none;
  color: var(--color-ink);
  transition: none;
}
main.ticket-page a:hover,
main.ticket-page a:active,
main.ticket-page a:focus {
  background: none;
}

/* The fixed design frame */
.ticket-frame {
  width: 1280px;
  max-width: 100%;
  min-width: 0; /* let the flex item shrink below its content's intrinsic width */
  min-height: 800px;
  background: var(--color-cream);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 28px;
  padding: 64px;
}

.ticket-logo {
  width: 400px;
  max-width: 100%;
  height: auto;
}

.ticket-tagline {
  margin: 0;
  font-family: var(--font-family-mono);
  font-size: 18px;
  color: var(--color-tagline);
  text-align: center;
}

/* Ticket cards */
.ticket-row {
  display: flex;
  gap: 44px;
  margin-top: 20px;
}

.ticket {
  /* The reference renders content-box tickets: 400px content + padding + border */
  box-sizing: content-box;
  width: 400px;
  border-radius: 24px;
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  border: 4px dashed rgba(255, 255, 255, 0.5);
  text-align: left;
  transition: transform 0.15s ease;
}
main.ticket-page .ticket:link,
main.ticket-page .ticket:visited {
  color: var(--color-ticket-text);
  transition: transform 0.15s ease;
}
.ticket--red {
  background: var(--brand-red);
  transform: rotate(-2.5deg);
}
.ticket--blue {
  background: var(--brand-blue);
  transform: rotate(2.5deg);
}
/* Keep the ticket fill on hover: both the base stylesheet's a:hover (white)
   and this theme's a:hover reset (none) would otherwise override it */
main.ticket-page .ticket--red:hover,
main.ticket-page .ticket--red:focus,
main.ticket-page .ticket--red:active {
  background: var(--brand-red);
}
main.ticket-page .ticket--blue:hover,
main.ticket-page .ticket--blue:focus,
main.ticket-page .ticket--blue:active {
  background: var(--brand-blue);
}
.ticket:hover,
.ticket:focus {
  transform: rotate(0deg) scale(1.02);
}

.ticket__eyebrow {
  font-family: var(--font-family-mono);
  font-size: 13px;
  letter-spacing: 0.24em;
  opacity: 0.85;
}
.ticket__title {
  font-family: var(--font-family-display);
  font-weight: 800;
  font-size: 44px;
  line-height: 1;
}
.ticket__description {
  font-size: 17px;
  opacity: 0.92;
  line-height: 1.5;
}
.ticket__url {
  font-weight: 700;
  font-size: 15px;
  margin-top: 8px;
}

/* Footer links */
.footer-links {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 24px;
}
.footer-link {
  font-weight: 600;
  font-size: 15px;
}
.footer-links__sep {
  color: var(--color-separator);
}
main.ticket-page .footer-link--youtube:hover,
main.ticket-page .footer-link--youtube:focus {
  color: var(--brand-red);
}
main.ticket-page .footer-link--email:hover,
main.ticket-page .footer-link--email:focus {
  color: var(--brand-blue);
}

/* Small screens: stack the tickets */
@media (max-width: 1023px) {
  .ticket-frame {
    padding: 48px 24px;
  }
  .ticket-row {
    flex-direction: column;
    gap: 28px;
  }
  .ticket {
    box-sizing: border-box;
    width: 100%;
    max-width: 480px;
    min-width: 0;
  }
  .ticket__title {
    font-size: clamp(24px, 8vw, 44px);
  }
  .ticket-logo {
    width: min(400px, 90%);
  }
}
