.casino-nights-page {
  overflow: clip;
}

.casino-nights-page .section {
  position: relative;
}

.casino-hero__grid,
.casino-tone__benefits,
.casino-elements__cards,
.casino-formats__dossiers,
.casino-gallery__grid,
.casino-process__steps,
.casino-framework__cards,
.casino-quote__panel,
.casino-form-grid {
  display: grid;
  min-width: 0;
}

.casino-hero__grid {
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  column-gap: clamp(2rem, 5vw, 6rem);
  align-items: center;
}

.casino-hero__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.casino-hero__content > * {
  min-width: 0;
  margin: 0;
}

.casino-hero__content .eyebrow {
  margin-bottom: 0;
}

.casino-hero__content h1 {
  max-width: 12ch;
  font-size: clamp(3.5rem, 5.4vw, 4.5rem);
}

.casino-hero__content .intro {
  max-width: 43ch;
  margin-bottom: 0;
}

.casino-hero__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.casino-hero__actions > * {
  min-width: 0;
}

.casino-hero__note {
  max-width: 42ch;
  color: var(--color-muted-stone);
  font-size: var(--text-small);
  line-height: var(--leading-small);
}

.casino-hero__figure {
  width: 100%;
  min-width: 0;
  aspect-ratio: 4 / 3;
  margin: 0;
  border: var(--border-accent);
  background: var(--color-charcoal);
  overflow: hidden;
}

.casino-hero__figure img,
.casino-gallery__grid img {
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.84) contrast(1.08);
}

.casino-tone__heading,
.casino-elements__heading,
.casino-formats__heading,
.casino-process__heading,
.casino-framework__heading,
.casino-pathways__heading,
.casino-quote__heading {
  min-width: 0;
}

.casino-tone__heading {
  width: min(100%, 60ch);
  margin-bottom: var(--space-7);
}

.casino-tone__heading .intro {
  max-width: 60ch;
}

.casino-tone__benefits {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: var(--border-subtle);
}

.casino-tone__benefit {
  min-width: 0;
  padding: var(--space-6);
  border-right: var(--border-subtle);
  transition: border-color var(--transition-fast);
}

.casino-tone__benefit:first-child {
  border-left: var(--border-subtle);
}

.casino-tone__benefit:hover {
  border-color: var(--color-rose-gold);
}

.casino-tone__benefit h3,
.casino-component-card h3,
.casino-dossier h3,
.casino-framework-card h3,
.casino-step h3 {
  font-size: var(--text-card-title);
}

.casino-tone__benefit p:last-child {
  max-width: 30ch;
  margin-bottom: 0;
}

.casino-number,
.casino-dossier__number,
.casino-step__number,
.casino-pathway__number {
  margin: 0 0 var(--space-5);
  color: var(--color-rose-gold);
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
}

.casino-elements__heading {
  width: min(100%, 38rem);
  margin-bottom: var(--space-7);
}

.casino-elements__heading .intro {
  max-width: 52ch;
}

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

.casino-component-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  min-height: 100%;
  padding: var(--space-6);
  border: var(--border-subtle);
  border-radius: var(--radius-sm);
  background: var(--color-charcoal);
  transition: border-color var(--transition-fast);
}

.casino-component-card > * {
  min-width: 0;
  margin: 0;
}

.casino-component-card--raised {
  background: var(--color-charcoal-raised);
}

.casino-component-card--accent {
  border-color: var(--color-rose-gold);
}

.casino-component-card:hover {
  border-color: var(--color-rose-gold);
}

.casino-component-card p:not(.casino-number) {
  max-width: 34ch;
}

.casino-component-card .button {
  margin-top: auto;
}

.casino-elements__closing {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  width: min(100%, 52ch);
  margin-top: var(--space-6);
}

.casino-elements__closing > * {
  min-width: 0;
  margin: 0;
}

.casino-formats__heading {
  width: min(100%, 45rem);
  margin-bottom: var(--space-7);
}

.casino-formats__dossiers {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}

.casino-dossier {
  min-width: 0;
  padding: var(--space-7);
  border: var(--border-subtle);
  background: var(--color-charcoal);
}

.casino-dossier--raised {
  background: var(--color-charcoal-raised);
}

.casino-dossier p:last-child {
  max-width: 38ch;
  margin-bottom: 0;
}

.casino-formats__callout {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  margin-top: var(--space-5);
  padding: var(--space-6);
  border: var(--border-accent);
  background: var(--color-rose-tint);
}

.casino-formats__callout > * {
  min-width: 0;
  margin: 0;
}

.casino-formats__callout p {
  max-width: 70ch;
}

.casino-gallery__heading {
  width: min(100%, 55ch);
  margin-bottom: var(--space-6);
  padding-left: var(--space-4);
  border-left: 1px solid var(--color-rose-gold);
}

.casino-gallery__heading p:last-child {
  max-width: 55ch;
  margin-bottom: 0;
}

.casino-gallery__grid {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--space-5);
  align-items: end;
}

.casino-gallery__grid figure {
  min-width: 0;
  margin: 0;
}

.casino-gallery__dominant,
.casino-gallery__detail {
  width: 100%;
  overflow: hidden;
}

.casino-gallery__dominant img {
  aspect-ratio: 4 / 3;
}

.casino-gallery__detail img {
  aspect-ratio: 3 / 4;
}

.casino-gallery__link {
  margin-top: var(--space-5);
}

.casino-process__heading {
  width: min(100%, 58ch);
  margin-bottom: var(--space-7);
}

.casino-process__heading .intro {
  max-width: 58ch;
}

.casino-process__steps {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
}

.casino-step {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
  padding: var(--space-5);
  border: var(--border-subtle);
  background: var(--color-charcoal);
  transition: border-color var(--transition-fast);
}

.casino-step:hover {
  border-color: var(--color-rose-gold);
}

.casino-step--raised {
  background: var(--color-charcoal-raised);
}

.casino-step--final .casino-step__number {
  color: var(--color-copper);
}

.casino-step__number {
  margin-bottom: 0;
  font-size: 2.25rem;
}

.casino-step h3 {
  margin-bottom: var(--space-3);
}

.casino-step p:last-child {
  max-width: 29ch;
  margin-bottom: 0;
}

.casino-process__closing {
  width: min(100%, 50ch);
  margin-top: var(--space-6);
  margin-bottom: 0;
  color: var(--color-white-warm);
}

.casino-framework {
  background: var(--color-charcoal);
}

.casino-framework__heading {
  width: min(100%, 55ch);
  margin-bottom: var(--space-7);
}

.casino-framework__heading .intro {
  max-width: 55ch;
}

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

.casino-framework-card {
  min-width: 0;
  padding: var(--space-6);
  border: var(--border-subtle);
  background: var(--color-charcoal);
}

.casino-framework-card--raised {
  background: var(--color-charcoal-raised);
}

.casino-framework-card--accent {
  border-color: var(--color-rose-gold);
}

.casino-framework-card__mark {
  display: block;
  width: 1.75rem;
  height: 1px;
  margin-bottom: var(--space-5);
  background: var(--color-rose-gold);
}

.casino-framework-card p:last-child {
  max-width: 33ch;
  margin-bottom: 0;
}

.casino-framework__closing {
  width: 100%;
  margin: var(--space-5) 0 0;
  padding: var(--space-5);
  border: var(--border-subtle);
  background: var(--color-charcoal-raised);
  color: var(--color-white-warm);
}

.casino-pathways__heading {
  width: min(100%, 50ch);
  margin-bottom: var(--space-6);
}

.casino-pathways__heading .intro {
  max-width: 50ch;
}

.casino-pathways__links {
  border-top: var(--border-subtle);
}

.casino-pathway {
  display: grid;
  grid-template-columns: 4rem minmax(0, 1fr) 2rem;
  min-width: 0;
  align-items: center;
  column-gap: var(--space-5);
  padding: var(--space-5) 0;
  border-bottom: var(--border-subtle);
  color: var(--color-white);
  text-decoration: none;
}

.casino-pathway__number {
  margin: 0;
  font-size: 1.5rem;
}

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

.casino-pathway__content strong {
  font-family: var(--font-heading);
  font-size: var(--text-card-title);
  font-weight: 600;
}

.casino-pathway__content span {
  max-width: 30ch;
  color: var(--color-white-warm);
}

.casino-pathway__arrow {
  justify-self: end;
  color: var(--color-rose-gold);
  font-size: 1.5rem;
}

.casino-pathways__cta {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-5);
  margin-top: var(--space-6);
  padding: var(--space-5);
  border: 1px solid var(--color-copper);
  background: var(--color-charcoal);
}

.casino-pathways__cta > * {
  min-width: 0;
  margin: 0;
}

.casino-pathways__cta p {
  flex: 1 1 20rem;
  max-width: 35ch;
}

.casino-pathways__cta .button {
  flex: 0 0 auto;
}

.casino-faq__wrap {
  width: min(100%, 50rem);
  margin-inline: auto;
}

.casino-faq__heading {
  margin-bottom: var(--space-6);
}

.casino-faq__heading .intro {
  max-width: 55ch;
}

.casino-faq__items {
  border-top: var(--border-subtle);
}

.casino-faq-item {
  min-width: 0;
  border-bottom: var(--border-subtle);
}

.casino-faq-item h3 {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-base);
  letter-spacing: 0;
}

.casino-faq-item button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1.5rem;
  width: 100%;
  min-width: 0;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-5) 0;
  background: transparent;
  color: var(--color-white);
  font-weight: 700;
  line-height: var(--leading-body);
  text-align: left;
}

.casino-faq-item button span {
  justify-self: end;
  color: var(--color-rose-gold);
  font-size: 1.5rem;
  font-weight: 400;
  transition: transform var(--transition-fast);
}

.casino-faq-item button[aria-expanded="true"] span {
  transform: rotate(45deg);
}

.casino-faq-item__answer {
  max-width: 64ch;
  padding-bottom: var(--space-5);
}

.casino-faq-item__answer p {
  margin-bottom: 0;
}

.casino-faq__closing {
  max-width: 55ch;
  margin-top: var(--space-6);
  margin-bottom: var(--space-4);
}

.casino-quote__heading {
  width: min(100%, 58ch);
  margin-bottom: var(--space-6);
}

.casino-quote__heading .intro {
  max-width: 58ch;
}

.casino-quote__panel {
  grid-template-columns: minmax(0, 8fr) minmax(16rem, 4fr);
  grid-template-areas: "form summary";
  gap: var(--space-6);
  padding: var(--space-6);
}

.casino-quote__form {
  grid-area: form;
  min-width: 0;
}

.casino-quote__summary {
  grid-area: summary;
  min-width: 0;
  align-self: start;
  padding: var(--space-5);
  border: var(--border-accent);
  background: var(--color-rose-tint);
}

.casino-quote__summary h3 {
  font-size: var(--text-card-title);
}

.casino-quote__summary p:last-child {
  max-width: 34ch;
  margin-bottom: 0;
}

.casino-form-grid {
  gap: var(--space-4);
}

.casino-form-grid--event {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.casino-form-grid--contact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

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

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

.casino-quote__submit {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.casino-quote__submit > * {
  min-width: 0;
  margin: 0;
}

.casino-quote__status:not(:empty) {
  width: 100%;
  padding: var(--space-4);
  border: var(--border-subtle);
  background: var(--color-charcoal-raised);
}

.casino-nights-page input[aria-invalid="true"],
.casino-nights-page select[aria-invalid="true"],
.casino-nights-page textarea[aria-invalid="true"] {
  border-color: var(--color-rose-gold);
}

@media (max-width: 64rem) {
  .casino-hero__grid {
    grid-template-columns: minmax(0, 3fr) minmax(0, 4fr);
    gap: var(--space-5);
  }

  .casino-hero__content h1 {
    font-size: clamp(3rem, 5vw, 3.9rem);
  }

  .casino-elements__cards,
  .casino-framework__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .casino-elements__cards > :nth-child(3),
  .casino-framework__cards > :nth-child(3) {
    grid-column: 1 / -1;
  }

  .casino-process__steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .casino-step p:last-child {
    max-width: 36ch;
  }

  .casino-quote__panel {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "summary" "form";
  }

  .casino-quote__summary p:last-child {
    max-width: 55ch;
  }
}

@media (max-width: 58rem) {
  .casino-hero__grid {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--space-6);
  }

  .casino-hero__content {
    max-width: 42rem;
  }

  .casino-hero__figure {
    max-width: 46rem;
  }

  .casino-tone__benefits {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .casino-tone__benefit:nth-child(3) {
    grid-column: 1 / -1;
    border-left: var(--border-subtle);
  }

  .casino-tone__benefit:nth-child(2) {
    border-right: var(--border-subtle);
  }

  .casino-gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .casino-gallery__detail img {
    aspect-ratio: 4 / 3;
  }

  .casino-formats__dossiers {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 48rem) {
  .casino-hero__content h1 {
    max-width: 13ch;
    font-size: 2.625rem;
    line-height: 1.1;
  }

  .casino-hero__content .intro {
    max-width: 35ch;
  }

  .casino-hero__actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  .casino-hero__actions .button {
    width: 100%;
  }

  .casino-tone__heading,
  .casino-elements__heading,
  .casino-formats__heading,
  .casino-process__heading,
  .casino-framework__heading,
  .casino-pathways__heading,
  .casino-quote__heading {
    width: 100%;
    margin-bottom: var(--space-6);
  }

  .casino-tone__benefits,
  .casino-elements__cards,
  .casino-formats__dossiers,
  .casino-gallery__grid,
  .casino-process__steps,
  .casino-framework__cards,
  .casino-form-grid--event,
  .casino-form-grid--contact {
    grid-template-columns: minmax(0, 1fr);
  }

  .casino-tone__benefit,
  .casino-tone__benefit:first-child,
  .casino-tone__benefit:nth-child(2),
  .casino-tone__benefit:nth-child(3) {
    grid-column: auto;
    padding: var(--space-5) 0;
    border-right: 0;
    border-bottom: var(--border-subtle);
    border-left: 0;
  }

  .casino-tone__benefit:first-child {
    border-top: 0;
  }

  .casino-elements__cards > :nth-child(3),
  .casino-framework__cards > :nth-child(3) {
    grid-column: auto;
  }

  .casino-component-card,
  .casino-dossier,
  .casino-framework-card,
  .casino-step {
    padding: var(--space-5);
  }

  .casino-dossier {
    padding: var(--space-6);
  }

  .casino-gallery__detail img {
    aspect-ratio: 3 / 2;
  }

  .casino-process__steps {
    gap: var(--space-3);
  }

  .casino-step {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    align-items: start;
  }

  .casino-step__number {
    font-size: 2rem;
  }

  .casino-pathway {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--space-3);
    padding: var(--space-5) 0;
  }

  .casino-pathway__arrow {
    justify-self: start;
  }

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

  .casino-pathways__cta .button {
    width: 100%;
  }

  .casino-quote__panel {
    gap: var(--space-5);
    padding: var(--space-4);
  }

  .casino-quote__summary {
    padding: var(--space-5);
  }

  .casino-quote__submit,
  .casino-quote__submit .button {
    width: 100%;
  }

  .casino-quote fieldset {
    padding: var(--space-4);
  }
}
