/* Casino Nights page styles */
.casino-nights-main {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--space-2xs);
  padding-block: var(--space-sm);
}

/* Hero */
.casino-hero-ticket {
  background-color: var(--color-charcoal);
  border-color: var(--color-charcoal);
  color: var(--color-warm-white);
  padding: var(--space-md);
  position: relative;
  overflow: hidden;
}

.casino-hero-ticket::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(45deg, rgba(62, 180, 137, 0.08) 0, rgba(62, 180, 137, 0.08) 2px, transparent 2px, transparent 12px),
    repeating-linear-gradient(-45deg, rgba(62, 180, 137, 0.08) 0, rgba(62, 180, 137, 0.08) 2px, transparent 2px, transparent 12px);
  pointer-events: none;
}

.casino-hero-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-xs);
}

.casino-hero-title {
  color: var(--color-warm-white);
  font-size: clamp(32px, 5vw, 48px);
  margin-block-end: 0;
}

.casino-hero-intro {
  max-width: 600px;
  margin-inline: auto;
  color: var(--color-warm-white);
  font-size: 20px;
  line-height: 1.6;
}

.casino-hero-points {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-2xs);
}

.casino-hero-points li {
  color: var(--color-warm-white);
  background-color: rgba(253, 248, 245, 0.08);
  padding: var(--space-3xs) var(--space-2xs);
  border: 1px solid var(--color-steel-gray);
  border-radius: var(--radius-button);
  font-size: 14px;
}

.casino-hero-note {
  color: var(--color-warm-white);
  text-decoration-color: var(--color-mint-green);
}

.casino-hero-cta {
  margin-block-start: var(--space-3xs);
}

/* Concept */
.casino-concept-ticket {
  border-color: var(--color-mint-green);
  padding: var(--space-sm);
}

.casino-concept-grid {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: var(--space-sm);
  align-items: start;
}

.casino-concept-text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.casino-concept-unit {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.casino-concept-copy {
  max-width: 65ch;
}

.casino-concept-list {
  margin-block-end: 0;
}

.casino-concept-note {
  margin-block-start: var(--space-3xs);
}

.casino-concept-media {
  min-width: 0;
}

.casino-concept-image {
  width: 100%;
  height: auto;
  border: var(--border-width) solid var(--color-charcoal);
  filter: grayscale(100%);
  transition: filter 0.3s ease;
}

.casino-concept-image:hover {
  filter: grayscale(0%) sepia(0.2);
}

/* Poker */
.casino-poker-ticket {
  background-color: var(--color-charcoal);
  border-color: var(--color-charcoal);
  color: var(--color-warm-white);
  padding: var(--space-sm);
  position: relative;
  overflow: hidden;
}

.casino-poker-ticket::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 20% 30%, rgba(226, 59, 46, 0.12) 0, transparent 30%),
    radial-gradient(circle at 80% 70%, rgba(62, 180, 137, 0.12) 0, transparent 30%);
  pointer-events: none;
}

.casino-poker-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.casino-section-title-dark {
  color: var(--color-warm-white);
}

.casino-poker-content {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.casino-poker-text,
.casino-poker-room {
  min-width: 0;
}

.casino-poker-room {
  position: relative;
}

.casino-poker-copy {
  color: var(--color-warm-white);
  max-width: 70ch;
}

.casino-poker-list {
  color: var(--color-warm-white);
  margin-block-end: 0;
}

.casino-poker-thumb {
  width: 200px;
  max-width: 100%;
  height: auto;
  float: right;
  margin-inline-start: var(--space-2xs);
  margin-block-end: var(--space-2xs);
  border: var(--border-width) solid var(--color-steel-gray);
  filter: grayscale(100%);
  transition: filter 0.3s ease;
}

.casino-poker-thumb:hover {
  filter: grayscale(0%) sepia(0.2);
}

/* Roulette */
.casino-roulette-ticket {
  border-color: var(--color-mint-green);
  padding: var(--space-sm);
}

.casino-roulette-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-sm);
  align-items: center;
}

.casino-roulette-text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.casino-roulette-copy {
  max-width: 65ch;
}

.casino-roulette-list {
  margin-block-end: 0;
}

.casino-roulette-graphic {
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.casino-roulette-wheel {
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: conic-gradient(
    var(--color-tomato-red) 0deg 30deg,
    var(--color-charcoal) 30deg 60deg,
    var(--color-tomato-red) 60deg 90deg,
    var(--color-charcoal) 90deg 120deg,
    var(--color-tomato-red) 120deg 150deg,
    var(--color-charcoal) 150deg 180deg,
    var(--color-tomato-red) 180deg 210deg,
    var(--color-charcoal) 210deg 240deg,
    var(--color-tomato-red) 240deg 270deg,
    var(--color-charcoal) 270deg 300deg,
    var(--color-tomato-red) 300deg 330deg,
    var(--color-charcoal) 330deg 360deg
  );
  border: 4px solid var(--color-steel-gray);
  position: relative;
  transition: transform 1.5s ease-in-out;
}

.casino-roulette-wheel:hover {
  transform: rotate(360deg);
}

.casino-roulette-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: var(--color-warm-white);
  border: 2px solid var(--color-charcoal);
}

.casino-roulette-callout {
  margin-block-start: var(--space-sm);
  padding: var(--space-xs);
  border: var(--border-width) dashed var(--color-mint-green);
  background-color: rgba(62, 180, 137, 0.05);
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.casino-roulette-callout-copy {
  margin-block-end: 0;
}

.casino-roulette-note {
  margin-block-start: var(--space-3xs);
}

/* Blackjack */
.casino-blackjack-ticket {
  background-color: var(--color-charcoal);
  border-color: var(--color-charcoal);
  color: var(--color-warm-white);
  padding: var(--space-sm);
  position: relative;
  overflow: hidden;
}

.casino-blackjack-ticket::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(0deg, rgba(226, 59, 46, 0.06) 0, rgba(226, 59, 46, 0.06) 2px, transparent 2px, transparent 16px),
    repeating-linear-gradient(90deg, rgba(62, 180, 137, 0.06) 0, rgba(62, 180, 137, 0.06) 2px, transparent 2px, transparent 16px);
  pointer-events: none;
}

.casino-blackjack-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.casino-blackjack-content {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.casino-blackjack-unit {
  min-width: 0;
}

.casino-blackjack-copy {
  color: var(--color-warm-white);
  max-width: 70ch;
}

.casino-blackjack-list {
  color: var(--color-warm-white);
  margin-block-end: 0;
}

.casino-blackjack-image {
  width: 100%;
  height: auto;
  border: var(--border-width) solid var(--color-steel-gray);
  filter: grayscale(100%);
  transition: filter 0.3s ease;
}

.casino-blackjack-image:hover {
  filter: grayscale(0%) sepia(0.2);
}

/* Food and Drinks */
.casino-food-ticket {
  border-color: var(--color-mint-green);
  padding: var(--space-sm);
}

.casino-food-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-sm);
  align-items: start;
}

.casino-food-column {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.casino-food-copy {
  max-width: 65ch;
}

.casino-food-list {
  margin-block-end: 0;
}

.casino-food-note {
  margin-block-start: var(--space-3xs);
}

/* Practical Info */
.casino-practical-ticket {
  background-color: var(--color-charcoal);
  border-color: var(--color-charcoal);
  color: var(--color-warm-white);
  padding: var(--space-sm);
}

.casino-practical-inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.casino-practical-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-xs);
}

.casino-practical-column {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  padding: var(--space-2xs);
  background-color: rgba(253, 248, 245, 0.04);
  border: 1px solid var(--color-steel-gray);
  border-radius: var(--radius-ticket-top) var(--radius-ticket-top) 0 0;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.casino-practical-column:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-hover);
}

.casino-practical-copy {
  color: var(--color-warm-white);
  max-width: 70ch;
}

.casino-practical-list {
  color: var(--color-warm-white);
  margin-block-end: 0;
}

.casino-practical-cta {
  align-self: flex-start;
}

.casino-timeline {
  display: flex;
  align-items: center;
  gap: var(--space-3xs);
  margin-block-start: var(--space-3xs);
}

.casino-timeline-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: var(--color-tomato-red);
  flex: 0 0 auto;
}

.casino-practical-note {
  color: var(--color-warm-white);
  text-decoration-color: var(--color-mint-green);
}

/* Reservation CTA */
.casino-reservation-ticket {
  border-color: var(--color-mint-green);
  padding: var(--space-sm);
}

.casino-reservation-inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.casino-reservation-intro {
  max-width: 65ch;
}

.casino-reservation-list {
  margin-block-end: 0;
}

.casino-reservation-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  margin-block-start: var(--space-3xs);
}

.casino-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2xs);
}

.casino-form-field {
  min-width: 0;
}

.casino-form-field-full {
  grid-column: 1 / -1;
}

.casino-reservation-submit {
  align-self: center;
  min-width: 220px;
}

/* Responsive */
@media (max-width: 900px) {
  .casino-concept-grid,
  .casino-roulette-grid,
  .casino-food-grid {
    grid-template-columns: 1fr;
  }

  .casino-practical-grid {
    grid-template-columns: 1fr;
  }

  .casino-poker-thumb {
    float: none;
    width: 100%;
    margin-inline-start: 0;
    margin-block-end: var(--space-2xs);
  }

  .casino-form-grid {
    grid-template-columns: 1fr;
  }

  .casino-form-field-full {
    grid-column: auto;
  }
}

@media (max-width: 768px) {
  .casino-nights-main {
    padding-inline: var(--space-2xs);
    padding-block: var(--space-xs);
  }

  .casino-hero-ticket,
  .casino-concept-ticket,
  .casino-poker-ticket,
  .casino-roulette-ticket,
  .casino-blackjack-ticket,
  .casino-food-ticket,
  .casino-practical-ticket,
  .casino-reservation-ticket {
    padding: var(--space-2xs);
  }

  .casino-hero-intro {
    font-size: 16px;
  }

  .casino-roulette-wheel {
    width: 180px;
    height: 180px;
  }

  .casino-reservation-submit {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .casino-nights-main {
    padding-inline: var(--space-3xs);
  }

  .casino-hero-points {
    flex-direction: column;
    align-items: stretch;
  }

  .casino-hero-points li {
    text-align: center;
  }

  .casino-practical-column {
    padding: var(--space-2xs);
  }
}
