/* Signature Dishes – page-owned styles */

.signature-dishes-page {
  --sd-section-gap: var(--space-3xl);
  display: flex;
  flex-direction: column;
  gap: var(--sd-section-gap);
  background-color: var(--color-cream);
}

/* ---------- Shared page elements ---------- */
.sd-eyebrow {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-brick-red);
  margin-block-end: var(--space-sm);
}

.sd-eyebrow--light {
  color: var(--color-petrol);
}

.sd-eyebrow--dark {
  color: var(--color-brick-red);
}

.sd-table-number {
  font-family: var(--font-heading);
  font-weight: 700;
  color: rgba(255, 253, 208, 0.12);
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

/* ---------- Hero ---------- */
.sd-hero {
  background-color: var(--color-graphite);
  background-image:
    linear-gradient(135deg, rgba(0, 128, 128, 0.12) 0%, rgba(0, 128, 128, 0) 40%),
    radial-gradient(circle at 20% 20%, rgba(178, 34, 34, 0.18) 0%, rgba(178, 34, 34, 0) 55%),
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.025) 0, rgba(255, 255, 255, 0.025) 2px, transparent 2px, transparent 10px);
  color: var(--color-cream);
  padding-block: var(--space-3xl) var(--space-2xl);
  position: relative;
  overflow: hidden;
}

.sd-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: var(--space-2xl);
  align-items: center;
  position: relative;
}

.sd-hero__copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.sd-hero__title {
  color: var(--color-cream);
  font-size: var(--text-display);
  line-height: var(--leading-display);
  margin-block-end: 0;
}

.sd-hero__lead {
  font-size: var(--text-h4);
  line-height: var(--leading-h4);
  color: var(--color-cream);
  max-width: 56ch;
  margin-block-end: 0;
}

.sd-hero__support {
  color: rgba(255, 253, 208, 0.82);
  max-width: 52ch;
  margin-block-end: 0;
}

.sd-hero__cta {
  margin-block-start: var(--space-sm);
}

.sd-hero__media {
  position: relative;
  min-width: 0;
  display: flex;
  justify-content: flex-end;
}

.sd-hero__image {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  clip-path: polygon(0 0, calc(100% - 48px) 0, 100% 48px, 100% 100%, 0 100%);
  border-radius: var(--radius-md);
  display: block;
}

.sd-table-number--hero {
  position: absolute;
  right: -8px;
  bottom: -20px;
  font-size: clamp(5rem, 12vw, 9rem);
  z-index: 1;
}

/* ---------- Philosophy ---------- */
.sd-philosophy {
  background-color: var(--color-cream);
  padding-block: var(--space-2xl);
}

.sd-philosophy__inner {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
  gap: var(--space-xl);
  align-items: center;
}

.sd-philosophy__copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.sd-philosophy__title {
  color: var(--color-graphite);
  margin-block-end: 0;
}

.sd-philosophy__lead {
  font-size: var(--text-h4);
  line-height: var(--leading-h4);
  color: var(--color-graphite);
  max-width: 58ch;
  margin-block-end: 0;
}

.sd-philosophy__text {
  color: var(--color-graphite);
  max-width: 62ch;
  margin-block-end: 0;
}

.sd-philosophy__list {
  list-style: none;
  margin-block-end: 0;
  padding-inline-start: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.sd-philosophy__list li {
  position: relative;
  padding-inline-start: var(--space-lg);
  color: var(--color-graphite);
}

.sd-philosophy__list li::before {
  content: "♦";
  position: absolute;
  left: 0;
  color: var(--color-petrol);
  font-size: var(--text-small);
}

.sd-philosophy__motif {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  justify-content: center;
  align-items: center;
  min-width: 0;
}

.sd-card-motif {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 96px;
  background-color: var(--color-white);
  border: 1px solid var(--color-petrol);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  font-size: 2rem;
  color: var(--color-petrol);
  transform: rotate(-6deg);
}

.sd-card-motif--spade,
.sd-card-motif--club {
  color: var(--color-graphite);
}

.sd-card-motif--diamond,
.sd-card-motif--heart {
  color: var(--color-brick-red);
  transform: rotate(5deg);
}

/* ---------- Dishes ---------- */
.sd-dishes {
  background-color: var(--color-cream);
  padding-block: var(--space-2xl);
}

.sd-dishes__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xl);
}

.sd-dish {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-xl);
  align-items: center;
  background-color: var(--color-white);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: var(--space-lg);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.sd-dish:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.sd-dish--beef,
.sd-dish--dessert {
  background-color: var(--color-graphite);
  color: var(--color-cream);
}

.sd-dish--risotto {
  background-color: var(--color-white);
  color: var(--color-graphite);
}

.sd-dish__media {
  position: relative;
  min-width: 0;
  display: flex;
}

.sd-dish__image {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--radius-md);
  display: block;
}

.sd-dish--beef .sd-dish__image {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 48px 100%, 0 calc(100% - 48px));
}

.sd-dish--risotto .sd-dish__image {
  clip-path: polygon(0 0, calc(100% - 48px) 0, 100% 48px, 100% 100%, 0 100%);
}

.sd-dish--dessert .sd-dish__image {
  clip-path: polygon(0 48px, 48px 0, 100% 0, 100% 100%, 0 100%);
}

.sd-dish__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.sd-dish__title {
  margin-block-end: 0;
}

.sd-dish--beef .sd-dish__title,
.sd-dish--dessert .sd-dish__title {
  color: var(--color-cream);
}

.sd-dish--risotto .sd-dish__title {
  color: var(--color-graphite);
}

.sd-dish__description {
  max-width: 52ch;
  margin-block-end: 0;
}

.sd-dish--beef .sd-dish__description,
.sd-dish--dessert .sd-dish__description {
  color: rgba(255, 253, 208, 0.88);
}

.sd-dish__details {
  list-style: none;
  margin-block-end: 0;
  padding-inline-start: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.sd-dish__details li {
  position: relative;
  padding-inline-start: var(--space-lg);
}

.sd-dish--beef .sd-dish__details li,
.sd-dish--dessert .sd-dish__details li {
  color: rgba(255, 253, 208, 0.82);
}

.sd-dish--risotto .sd-dish__details li {
  color: var(--color-graphite);
}

.sd-dish__details li::before {
  content: "▪";
  position: absolute;
  left: 0;
  color: var(--color-petrol);
}

.sd-dish--beef .sd-dish__details li::before,
.sd-dish--dessert .sd-dish__details li::before {
  color: var(--color-brick-red);
}

.sd-table-number--dish {
  position: absolute;
  left: -12px;
  bottom: -16px;
  font-size: clamp(4rem, 8vw, 6rem);
  color: rgba(54, 69, 79, 0.14);
}

.sd-dish--beef .sd-table-number--dish,
.sd-dish--dessert .sd-table-number--dish {
  color: rgba(255, 253, 208, 0.12);
}

/* ---------- Casino Night ---------- */
.sd-casino-night {
  background-color: var(--color-graphite);
  background-image:
    radial-gradient(circle at 80% 20%, rgba(0, 128, 128, 0.2) 0%, rgba(0, 128, 128, 0) 50%),
    repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.03) 0, rgba(255, 255, 255, 0.03) 2px, transparent 2px, transparent 12px);
  color: var(--color-cream);
  padding-block: var(--space-3xl);
  position: relative;
  overflow: hidden;
}

.sd-casino-night__inner {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
  gap: var(--space-xl);
  align-items: center;
}

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

.sd-casino-night__title {
  color: var(--color-cream);
  margin-block-end: 0;
}

.sd-casino-night__lead {
  font-size: var(--text-h4);
  line-height: var(--leading-h4);
  color: var(--color-cream);
  max-width: 58ch;
  margin-block-end: 0;
}

.sd-casino-night__text {
  color: rgba(255, 253, 208, 0.82);
  max-width: 62ch;
  margin-block-end: 0;
}

.sd-casino-night__list {
  list-style: none;
  margin-block-end: 0;
  padding-inline-start: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.sd-casino-night__list li {
  position: relative;
  padding-inline-start: var(--space-lg);
  color: rgba(255, 253, 208, 0.82);
}

.sd-casino-night__list li::before {
  content: "♠";
  position: absolute;
  left: 0;
  color: var(--color-brick-red);
}

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

.sd-roulette-wheel {
  width: clamp(160px, 22vw, 240px);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background:
    conic-gradient(
      var(--color-brick-red) 0deg 30deg,
      var(--color-graphite-light) 30deg 60deg,
      var(--color-brick-red) 60deg 90deg,
      var(--color-graphite-light) 90deg 120deg,
      var(--color-brick-red) 120deg 150deg,
      var(--color-graphite-light) 150deg 180deg,
      var(--color-brick-red) 180deg 210deg,
      var(--color-graphite-light) 210deg 240deg,
      var(--color-brick-red) 240deg 270deg,
      var(--color-graphite-light) 270deg 300deg,
      var(--color-brick-red) 300deg 330deg,
      var(--color-graphite-light) 330deg 360deg
    );
  border: 6px solid var(--color-cream);
  box-shadow: 0 0 0 2px var(--color-petrol), var(--shadow-card);
  position: relative;
  animation: sd-roulette-spin 1.2s ease-out 0.3s both;
}

.sd-roulette-wheel__center {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 22%;
  aspect-ratio: 1 / 1;
  background-color: var(--color-cream);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  border: 2px solid var(--color-petrol);
}

@keyframes sd-roulette-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(720deg);
  }
}

/* ---------- CTA ---------- */
.sd-cta {
  background-color: var(--color-cream);
  padding-block: var(--space-3xl);
  position: relative;
  overflow: hidden;
}

.sd-cta__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
  position: relative;
}

.sd-cta__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: center;
  text-align: center;
  max-width: 60%;
  margin-inline: auto;
  min-width: 0;
}

.sd-cta__title {
  color: var(--color-graphite);
  margin-block-end: 0;
}

.sd-cta__text {
  color: var(--color-graphite);
  margin-block-end: 0;
}

.sd-cta__text a {
  color: var(--color-petrol);
  font-weight: 500;
}

.sd-cta__text a:hover {
  color: var(--color-brick-red);
}

.sd-cta__button {
  margin-block-start: var(--space-sm);
}

.sd-table-number--cta {
  position: absolute;
  left: 8%;
  top: 50%;
  transform: translateY(-50%);
  font-size: clamp(6rem, 18vw, 12rem);
  color: rgba(54, 69, 79, 0.08);
  z-index: 0;
}

.sd-cta__content {
  position: relative;
  z-index: 1;
}

/* ---------- Scroll reveal ---------- */
.sd-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.sd-reveal.sd-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ---------- Tablet ---------- */
@media (max-width: 1024px) {
  .sd-hero__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--space-xl);
  }

  .sd-philosophy__inner,
  .sd-casino-night__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--space-lg);
  }

  .sd-dish {
    gap: var(--space-lg);
    padding: var(--space-md);
  }

  .sd-cta__content {
    max-width: 75%;
  }
}

/* ---------- Mobile ---------- */
@media (max-width: 768px) {
  .signature-dishes-page {
    --sd-section-gap: var(--space-2xl);
  }

  .sd-hero {
    padding-block: var(--space-2xl) var(--space-xl);
  }

  .sd-hero__inner {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .sd-hero__copy {
    align-items: flex-start;
  }

  .sd-hero__media {
    justify-content: center;
  }

  .sd-hero__image {
    clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%);
  }

  .sd-table-number--hero {
    right: 0;
    bottom: -12px;
    font-size: 4rem;
  }

  .sd-philosophy,
  .sd-dishes,
  .sd-casino-night,
  .sd-cta {
    padding-block: var(--space-xl);
  }

  .sd-philosophy__inner,
  .sd-casino-night__inner {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .sd-philosophy__motif {
    order: -1;
    justify-content: flex-start;
    gap: var(--space-sm);
  }

  .sd-card-motif {
    width: 56px;
    height: 76px;
    font-size: 1.5rem;
  }

  .sd-dish {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .sd-dish__media {
    order: -1;
  }

  .sd-dish__image {
    aspect-ratio: 4 / 3;
  }

  .sd-dish--beef .sd-dish__image {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 24px 100%, 0 calc(100% - 24px));
  }

  .sd-dish--risotto .sd-dish__image {
    clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%);
  }

  .sd-dish--dessert .sd-dish__image {
    clip-path: polygon(0 24px, 24px 0, 100% 0, 100% 100%, 0 100%);
  }

  .sd-table-number--dish {
    left: -6px;
    bottom: -10px;
    font-size: 3rem;
  }

  .sd-casino-night__roulette {
    justify-content: center;
  }

  .sd-roulette-wheel {
    width: 160px;
  }

  .sd-cta__content {
    max-width: 100%;
  }

  .sd-table-number--cta {
    left: 4%;
    font-size: 5rem;
  }
}

@media (max-width: 480px) {
  .sd-hero__title {
    font-size: var(--text-h1);
    line-height: var(--leading-h1);
  }

  .sd-hero__lead,
  .sd-philosophy__lead,
  .sd-casino-night__lead {
    font-size: var(--text-h4);
    line-height: var(--leading-h4);
  }

  .sd-philosophy__motif {
    justify-content: center;
  }

  .sd-card-motif {
    width: 48px;
    height: 64px;
    font-size: 1.25rem;
  }

  .sd-cta__text {
    font-size: var(--text-body);
  }
}
