/* Page-owned styles for the home page */
.home-main {
  overflow-x: hidden;
}

.section-entry {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 400ms ease-out, transform 400ms ease-out;
}

.section-entry.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Hero */
.home-hero {
  position: relative;
  background: var(--color-obsidian-caviar);
  padding-block: var(--space-3xl);
}

.home-hero__container {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: start;
}

.home-hero__text {
  grid-column: 1 / span 5;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  align-items: flex-start;
  min-width: 0;
}

.home-hero__overline {
  margin-block-end: 0;
}

.home-hero__title {
  max-width: 55ch;
  margin-block-end: 0;
}

.home-hero__manifesto {
  max-width: 55ch;
  color: var(--color-muted-cashmere-slate);
  margin-block-end: 0;
}

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  align-items: center;
  min-width: 0;
}

.home-hero__actions .btn {
  min-width: 0;
  flex-shrink: 1;
}

.home-hero__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
  width: 100%;
  min-width: 0;
  margin-block-start: var(--space-md);
}

.home-hero__stat {
  border-left: 1px solid var(--color-delicate-amber-wire);
  padding-left: var(--space-md);
  min-width: 0;
}

.home-hero__stat dt {
  margin-block-end: var(--space-2xs);
  max-width: 30ch;
}

.home-hero__stat dd {
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  line-height: 1.1;
  color: var(--color-pure-alabaster);
  margin: 0;
}

.home-hero__mosaic {
  grid-column: 7 / span 6;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
  align-items: start;
  min-width: 0;
}

.home-hero__image-wrap {
  position: relative;
  width: 100%;
  min-width: 0;
  border: 1px solid var(--color-delicate-amber-wire);
  border-radius: 0;
  overflow: hidden;
  background-color: var(--color-smoked-truffle-slate);
}

.home-hero__image-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10, 12, 16, 0.8) 0%, rgba(10, 12, 16, 0) 60%);
  pointer-events: none;
}

.home-hero__image-wrap--gaming::after {
  background: linear-gradient(to top, rgba(10, 12, 16, 0.8) 0%, rgba(142, 27, 44, 0.15) 60%, rgba(10, 12, 16, 0) 100%);
}

.home-hero__image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  aspect-ratio: 4 / 5;
}

/* Dual Concept */
.home-dual-concept {
  padding-block: var(--space-3xl);
  background: var(--color-obsidian-caviar);
}

.home-dual-concept h2 {
  margin-block-end: var(--space-xl);
}

.home-dual-concept__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-xl) var(--space-lg);
}

.home-dual-concept__item {
  grid-column: span 5;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.home-dual-concept__item h3 {
  margin-block-end: 0;
}

.home-dual-concept__item p {
  max-width: 65ch;
  margin-block-end: 0;
}

.home-dual-concept__list {
  margin-block-start: var(--space-sm);
}

.home-dual-concept__list li {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

/* Degustation */
.home-degustation {
  padding-block: var(--space-3xl);
  background: var(--color-obsidian-caviar);
}

.home-degustation h2 {
  margin-block-end: var(--space-xl);
}

.home-degustation__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  margin-block-end: var(--space-xl);
}

.home-degustation__card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.home-degustation__card h3 {
  margin-block-end: 0;
}

.home-degustation__card p {
  max-width: 55ch;
  margin-block-end: 0;
}

.home-chef-reserve {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-lg);
  background: var(--color-midnight-malachite);
  border: 1px solid var(--color-delicate-amber-wire);
  border-radius: 0;
  padding: var(--space-xl);
}

.home-chef-reserve__text {
  grid-column: 1 / span 7;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.home-chef-reserve__text h3 {
  margin-block-end: 0;
}

.home-chef-reserve__text p {
  max-width: 55ch;
  margin-block-end: 0;
}

.home-chef-reserve__quote {
  grid-column: 8 / span 5;
  align-self: center;
  margin-block-end: 0;
  min-width: 0;
}

/* Gaming */
.home-gaming {
  padding-block: var(--space-3xl);
  background: var(--color-midnight-malachite);
}

.home-gaming h2 {
  margin-block-end: var(--space-xl);
}

.home-gaming__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
  margin-block-end: var(--space-xl);
}

.home-gaming__card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  border-color: rgba(142, 27, 44, 0.15);
}

.home-gaming__card h3 {
  margin-block-end: 0;
}

.home-gaming__card p {
  max-width: 55ch;
  margin-block-end: 0;
}

.home-gaming__list {
  margin-block-start: var(--space-sm);
}

.home-gaming__list li {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.home-gaming__amenities {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.home-gaming__amenities h3 {
  margin-block-end: 0;
}

.home-gaming__amenities-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
}

.home-gaming__amenities-list li {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  border-bottom: none;
  padding-block: 0;
}

/* Testimonials */
.home-testimonials {
  padding-block: var(--space-3xl);
  background: var(--color-obsidian-caviar);
}

.home-testimonials h2 {
  margin-block-end: var(--space-xl);
}

.home-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
}

.home-testimonial {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.home-testimonial blockquote {
  margin-block-end: 0;
  border-left: 2px solid var(--color-liquid-cognac-gold);
  padding-left: var(--space-lg);
}

.home-testimonial blockquote p {
  max-width: 50ch;
  margin-block-end: 0;
}

.home-testimonial figcaption {
  margin-block-start: auto;
}

/* Booking */
.home-booking {
  padding-block: var(--space-3xl);
  background: var(--color-obsidian-caviar);
}

.home-booking__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-xl) var(--space-lg);
}

.home-booking__info {
  grid-column: 1 / span 4;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xl);
}

.home-booking__info h2 {
  margin-block-end: 0;
}

.home-booking__hours,
.home-booking__dress-code {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.home-booking__hours h3,
.home-booking__dress-code h3 {
  margin-block-end: 0;
}

.home-booking__hours p,
.home-booking__dress-code p {
  max-width: 55ch;
  margin-block-end: 0;
}

.home-booking__hours .content-list li {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.home-booking__form-panel {
  grid-column: 6 / span 6;
  min-width: 0;
  background: var(--color-smoked-truffle-slate);
  border: 1px solid var(--color-delicate-amber-wire);
  border-radius: 0;
  padding: var(--space-xl);
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.home-booking__form-panel h3 {
  margin-block-end: 0;
}

.home-booking__form-panel p {
  max-width: 55ch;
  margin-block-end: 0;
}

.home-booking__form {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.home-booking__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 0;
}

.home-booking__field label {
  margin-block-end: 0;
}

.home-booking__field input,
.home-booking__field select {
  min-width: 0;
  width: 100%;
}

.home-booking__error {
  margin-block-end: 0;
}

.home-booking__submit {
  align-self: flex-start;
  min-width: 0;
}

.home-booking__confirmation {
  color: var(--color-liquid-cognac-gold);
  margin-block-end: 0;
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1023px) {
  .home-hero__container {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .home-hero__text {
    grid-column: 1 / span 6;
  }
  .home-hero__mosaic {
    grid-column: 1 / span 6;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-dual-concept__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .home-dual-concept__item {
    grid-column: span 3;
  }
  .home-degustation__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-degustation__card:last-child {
    grid-column: 1 / -1;
  }
  .home-chef-reserve {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .home-chef-reserve__text {
    grid-column: 1 / span 6;
  }
  .home-chef-reserve__quote {
    grid-column: 1 / span 6;
  }
  .home-gaming__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-gaming__amenities-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-testimonials__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-testimonial:last-child {
    grid-column: 1 / -1;
  }
  .home-booking__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .home-booking__info {
    grid-column: 1 / span 6;
  }
  .home-booking__form-panel {
    grid-column: 1 / span 6;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .home-hero {
    padding-block: var(--space-xl);
  }
  .home-hero__container {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }
  .home-hero__text {
    grid-column: 1;
    gap: var(--space-md);
  }
  .home-hero__stats {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
  .home-hero__stat {
    border-left: none;
    border-bottom: 1px solid var(--color-delicate-amber-wire);
    padding-left: 0;
    padding-bottom: var(--space-sm);
  }
  .home-hero__mosaic {
    grid-column: 1;
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
  .home-hero__image-wrap img {
    aspect-ratio: 4 / 3;
  }
  .home-dual-concept,
  .home-degustation,
  .home-gaming,
  .home-testimonials,
  .home-booking {
    padding-block: var(--space-xl);
  }
  .home-dual-concept__grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }
  .home-dual-concept__item {
    grid-column: 1;
  }
  .home-degustation__grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
  .home-degustation__card {
    grid-column: 1;
  }
  .home-chef-reserve {
    grid-template-columns: 1fr;
    padding: var(--space-lg);
    gap: var(--space-lg);
  }
  .home-chef-reserve__text,
  .home-chef-reserve__quote {
    grid-column: 1;
  }
  .home-gaming__grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
  .home-gaming__card {
    grid-column: 1;
  }
  .home-gaming__amenities-list {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
  .home-testimonials__grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
  .home-testimonial {
    grid-column: 1;
  }
  .home-booking__grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }
  .home-booking__info,
  .home-booking__form-panel {
    grid-column: 1;
  }
  .home-booking__form-panel {
    padding: var(--space-lg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .section-entry {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
