/* ===== HOME PAGE STYLES ===== */

/* Hero Section */
.hero {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  overflow: hidden;
  background-color: #0A0A0C;
}

.hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(10,10,12,0.7), rgba(10,10,12,0.4));
  z-index: 1;
}

.hero__panel {
  position: relative;
  z-index: 2;
  max-width: 500px;
  margin: 32px;
  padding: 32px;
  background-color: #16161A;
  border: 1px solid #2A2A2E;
  border-radius: 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  display: flex;
  flex-direction: column;
  gap: 16px;
  animation: heroFadeUp 0.8s ease-out both;
}

@keyframes heroFadeUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.hero__micro {
  font-size: 0.875rem;
  letter-spacing: 0.04em;
  color: #FF8C42;
  text-transform: uppercase;
  margin: 0;
}

.hero__panel h1 {
  font-size: clamp(2rem, 5vw, 3rem);
  margin: 0;
  color: #D1C7BD;
  max-width: 18ch;
}

.hero__lead {
  font-size: 1rem;
  line-height: 1.6;
  max-width: 45ch;
  margin: 0;
}

.hero__details {
  margin: 0;
  max-width: 45ch;
}

.hero__details li {
  font-size: 0.95rem;
}

.hero__address {
  font-size: 0.875rem;
  color: rgba(209, 199, 189, 0.8);
  margin: 0;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 8px;
}

/* Introduction Section */
.intro {
  padding-block: 64px;
}

.intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 32px;
  align-items: center;
}

.intro__text {
  min-width: 0;
}

.intro__text h2 {
  margin-bottom: 16px;
}

.intro__lead {
  max-width: 65ch;
  margin-bottom: 16px;
}

.intro__text .content-list {
  max-width: 65ch;
  margin-bottom: 16px;
}

.intro__note {
  max-width: 65ch;
  font-size: 0.95rem;
  color: #FF8C42;
}

.intro__media {
  min-width: 0;
}

.intro__frame {
  aspect-ratio: 4 / 3;
  width: 100%;
}

.intro__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.intro__frame:hover img {
  transform: scale(1.02);
}

/* Featured Dishes */
.dishes {
  padding-block: 64px;
}

.dishes__heading {
  margin-bottom: 32px;
}

.dishes__heading h2 {
  margin-bottom: 8px;
}

.dishes__intro {
  max-width: 65ch;
  margin-bottom: 0;
}

.dishes__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.dish-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.dish-card:hover {
  box-shadow: 0 12px 32px rgba(0,0,0,0.7);
  transform: translateY(-4px);
}

.dish-card__media {
  aspect-ratio: 4 / 3;
  width: 100%;
  overflow: hidden;
  border-radius: 4px 4px 0 0;
}

.dish-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.dish-card:hover .dish-card__media img {
  transform: scale(1.02);
}

.dish-card__body {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dish-card__body h3 {
  margin: 0;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
}

.dish-card__body p {
  margin: 0;
  font-size: 0.95rem;
  max-width: 45ch;
}

/* Atmosphere Section */
.atmosphere {
  padding-block: 64px;
}

.atmosphere__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
  align-items: center;
}

.atmosphere__panel {
  min-width: 0;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.atmosphere__panel h2 {
  margin: 0;
}

.atmosphere__panel p {
  margin: 0;
  max-width: 60ch;
}

.atmosphere__panel .content-list {
  margin: 0;
  max-width: 60ch;
}

.atmosphere__note {
  font-size: 0.95rem;
  color: #FF8C42;
}

.atmosphere__media {
  min-width: 0;
}

.atmosphere__frame {
  aspect-ratio: 16 / 9;
  width: 100%;
}

.atmosphere__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Story Section */
.story {
  padding-block: 64px;
  text-align: center;
}

.story__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.story__inner h2 {
  margin: 0;
}

.story__inner p {
  margin: 0 auto;
  max-width: 55ch;
  text-align: center;
}

.story__inner .divider {
  margin-block: 0;
}

/* Gallery Preview */
.gallery-preview {
  padding-block: 64px;
}

.gallery-preview__heading {
  margin-bottom: 32px;
}

.gallery-preview__heading h2 {
  margin-bottom: 8px;
}

.gallery-preview__heading p {
  max-width: 60ch;
  margin-bottom: 0;
}

.gallery-preview__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.gallery-preview__item {
  display: block;
  min-width: 0;
  text-decoration: none;
  color: #D1C7BD;
  transition: color 0.2s ease-in-out;
}

.gallery-preview__item:hover {
  color: #FF8C42;
}

.gallery-preview__frame {
  aspect-ratio: 4 / 3;
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
}

.gallery-preview__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.gallery-preview__item:hover .gallery-preview__frame img {
  transform: scale(1.03);
}

.gallery-preview__caption {
  display: block;
  margin-top: 8px;
  font-size: 0.875rem;
  text-align: center;
}

.gallery-preview__link {
  text-align: center;
}

/* Events Section */
.events {
  padding-block: 64px;
}

.events__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.events__inner h2 {
  margin: 0;
}

.events__lead {
  max-width: 65ch;
  margin: 0;
}

.events__list {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.events__item {
  padding-bottom: 24px;
  border-bottom: 1px solid #2A2A2E;
}

.events__item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.events__item h3 {
  margin: 0 0 8px 0;
  color: #FF8C42;
}

.events__item p {
  margin: 0;
  max-width: 65ch;
}

.events__note {
  font-size: 0.95rem;
  color: rgba(209, 199, 189, 0.8);
  margin: 0;
}

/* Testimonials */
.testimonials {
  padding-block: 64px;
}

.testimonials__heading {
  margin-bottom: 32px;
}

.testimonials__heading h2 {
  margin-bottom: 8px;
}

.testimonials__heading p {
  max-width: 60ch;
  margin-bottom: 0;
}

.testimonials__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.testimonial-card {
  margin: 0;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.testimonial-card:hover {
  box-shadow: 0 12px 32px rgba(0,0,0,0.7);
  transform: translateY(-4px);
}

.testimonial-card p {
  margin: 0;
  font-style: italic;
  font-size: 1rem;
  max-width: 45ch;
}

.testimonial-card__author {
  font-size: 0.875rem;
  color: #FF8C42;
  font-style: normal;
  font-weight: 600;
}

/* Reservation Section */
.reservation {
  padding-block: 64px;
  text-align: center;
}

.reservation__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: center;
}

.reservation__inner h2 {
  margin: 0;
}

.reservation__inner p {
  margin: 0 auto;
  max-width: 55ch;
  text-align: center;
}

.reservation__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
}

.reservation__contacts {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.reservation__contacts li {
  font-size: 1rem;
}

.reservation__contacts a {
  color: #FF5500;
  text-decoration: none;
}

.reservation__contacts a:hover {
  color: #FF8C42;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
  .hero {
    min-height: 70vh;
  }

  .hero__panel {
    max-width: 450px;
    margin: 24px;
  }

  .intro__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .intro__media {
    order: 2;
  }

  .intro__text {
    order: 1;
  }

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

  .atmosphere__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .atmosphere__media {
    order: 1;
  }

  .atmosphere__panel {
    order: 2;
  }

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

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

@media (max-width: 768px) {
  .hero {
    min-height: 60vh;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-end;
  }

  .hero__media {
    position: relative;
    height: 60vh;
    width: 100%;
  }

  .hero__panel {
    position: relative;
    max-width: 100%;
    margin: 0;
    padding: 16px;
    border-radius: 0;
    box-shadow: none;
    border-left: none;
    border-right: none;
    border-bottom: none;
  }

  .hero__panel h1 {
    font-size: clamp(1.75rem, 7vw, 2.5rem);
  }

  .hero__lead,
  .hero__details {
    max-width: 100%;
  }

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

  .hero__actions .btn {
    width: 100%;
  }

  .intro,
  .dishes,
  .atmosphere,
  .story,
  .gallery-preview,
  .events,
  .testimonials,
  .reservation {
    padding-block: 32px;
  }

  .dishes__grid,
  .gallery-preview__grid,
  .testimonials__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .dish-card__body,
  .testimonial-card {
    padding: 16px;
  }

  .atmosphere__panel {
    padding: 16px;
  }

  .reservation__actions {
    flex-direction: column;
    width: 100%;
  }

  .reservation__actions .btn {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .hero__media {
    height: 50vh;
  }

  .hero__panel {
    padding: 12px;
  }

  .hero__micro {
    font-size: 0.75rem;
  }

  .hero__lead {
    font-size: 0.95rem;
  }

  .intro__grid,
  .atmosphere__grid {
    gap: 16px;
  }

  .story__inner p,
  .reservation__inner p {
    max-width: 100%;
  }

  .events__item h3 {
    font-size: 1.25rem;
  }
}
