@layer page {
  .notre-carte-main {
    overflow-x: hidden;
  }

  .carte-hero {
    background-color: var(--saffron);
    color: var(--charcoal);
    padding-block: var(--space-96);
    position: relative;
  }

  .carte-hero-inner {
    max-width: 720px;
    margin-inline: auto;
    padding-inline: var(--page-margin-mobile);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-16);
  }

  .carte-hero-overline {
    color: var(--charcoal);
  }

  .carte-hero h1 {
    font-size: var(--text-h1);
    line-height: var(--leading-h1);
    letter-spacing: var(--tracking-h1);
    font-weight: 700;
    margin-block-end: 0;
    color: var(--charcoal);
  }

  .carte-hero-dek {
    font-size: var(--text-body-large);
    line-height: var(--leading-body-large);
    color: var(--charcoal);
    margin-block-end: 0;
  }

  .carte-hero-cards {
    display: flex;
    gap: var(--space-8);
    margin-block-start: var(--space-8);
  }

  .carte-hero-card {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 60px;
    background-color: var(--chalk);
    border: 2px solid var(--charcoal);
    border-radius: var(--radius-control);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--charcoal);
    transform: rotate(-3deg);
  }

  .carte-hero-card:nth-child(2) {
    transform: rotate(2deg);
    color: var(--tomato);
  }

  .carte-hero-card:nth-child(3) {
    transform: rotate(-1deg);
    color: var(--cobalt);
  }

  .carte-hero .checkerboard {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
  }

  .carte-section {
    padding-block: var(--space-64);
  }

  .carte-section-chalk {
    background-color: var(--chalk);
    color: var(--charcoal);
  }

  .carte-section-cobalt {
    background-color: var(--cobalt);
    color: var(--chalk);
  }

  .carte-section-oak {
    background-color: var(--oak);
    color: var(--charcoal);
  }

  .carte-container {
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--page-margin-mobile);
  }

  .carte-section-heading {
    margin-block-end: var(--space-32);
  }

  .carte-section-heading-centered {
    text-align: center;
    max-width: 720px;
    margin-inline: auto;
  }

  .carte-section-heading .overline {
    color: var(--ink-soft);
    margin-block-end: var(--space-8);
  }

  .carte-section-heading-light .overline {
    color: var(--chalk);
    opacity: 0.85;
  }

  .carte-section-heading h2 {
    margin-block-end: var(--space-8);
    color: inherit;
  }

  .carte-section-intro {
    font-size: var(--text-body-large);
    line-height: var(--leading-body-large);
    color: inherit;
    margin-block-end: 0;
  }

  .carte-section-cobalt .carte-section-intro,
  .carte-section-cobalt .carte-section-heading h2,
  .carte-section-cobalt .carte-section-heading .overline {
    color: var(--chalk);
  }

  .carte-dish-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-24);
  }

  .carte-dish-card {
    background-color: var(--chalk);
    border: var(--border-subtle);
    border-radius: var(--radius-card);
    padding: var(--space-24);
    box-shadow: var(--shadow-card);
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
    min-width: 0;
  }

  .carte-dish-card h3 {
    font-size: var(--text-h4);
    line-height: var(--leading-h4);
    font-family: var(--font-body);
    font-weight: 600;
    margin-block-end: 0;
    color: var(--charcoal);
  }

  .carte-dish-card p {
    margin-block-end: 0;
    color: var(--charcoal);
  }

  .carte-dish-details,
  .carte-formule-list,
  .carte-drinks-list {
    list-style: disc;
    padding-inline-start: var(--space-24);
    margin-block-end: 0;
    color: inherit;
  }

  .carte-dish-details li,
  .carte-formule-list li,
  .carte-drinks-list li {
    margin-block-end: var(--space-4);
  }

  .carte-dish-details li:last-child,
  .carte-formule-list li:last-child,
  .carte-drinks-list li:last-child {
    margin-block-end: 0;
  }

  .carte-price {
    font-family: var(--font-body);
    font-size: var(--text-overline);
    line-height: var(--leading-overline);
    letter-spacing: var(--tracking-overline);
    font-weight: 600;
    text-transform: uppercase;
    color: var(--charcoal);
    margin-block-start: auto;
    padding-block-start: var(--space-8);
    border-block-start: 1px solid rgba(43, 43, 43, 0.15);
  }

  .carte-price-light {
    color: var(--chalk);
    border-block-start-color: rgba(247, 244, 238, 0.3);
  }

  .carte-dish-grid-accent .carte-dish-card {
    border-inline-start: 4px solid var(--saffron);
  }

  .carte-drinks-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-24);
  }

  .carte-drinks-column {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
  }

  .carte-drinks-column h3 {
    font-size: var(--text-h4);
    line-height: var(--leading-h4);
    font-family: var(--font-body);
    font-weight: 600;
    margin-block-end: 0;
    color: var(--chalk);
  }

  .carte-drinks-column p {
    margin-block-end: 0;
    color: var(--chalk);
  }

  .carte-drinks-list {
    color: var(--chalk);
  }

  .carte-formules-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-24);
  }

  .carte-formule-card {
    background-color: var(--chalk);
    border: 2px solid var(--charcoal);
    border-radius: var(--radius-card);
    padding: var(--space-24);
    box-shadow: var(--shadow-card);
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
    min-width: 0;
  }

  .carte-formule-card h3 {
    font-size: var(--text-h4);
    line-height: var(--leading-h4);
    font-family: var(--font-body);
    font-weight: 600;
    margin-block-end: 0;
    color: var(--charcoal);
  }

  .carte-formule-card p {
    margin-block-end: 0;
    color: var(--charcoal);
  }

  .carte-formule-list {
    color: var(--charcoal);
  }

  .carte-gallery-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-24);
    margin-block-start: var(--space-32);
  }

  .carte-gallery-item {
    margin-block-end: 0;
    min-width: 0;
  }

  .carte-gallery-item img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border: 4px solid var(--oak);
    border-radius: var(--radius-image-inset);
    display: block;
  }

  .carte-gallery-item figcaption {
    margin-block-start: var(--space-8);
    text-align: center;
  }

  .carte-infos-container {
    display: flex;
    justify-content: center;
  }

  .carte-infos-box {
    background-color: var(--saffron);
    color: var(--charcoal);
    border-radius: var(--radius-card);
    padding: var(--space-32);
    max-width: 720px;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: var(--space-16);
    align-items: flex-start;
  }

  .carte-infos-box .overline {
    color: var(--charcoal);
  }

  .carte-infos-box h2 {
    color: var(--charcoal);
    margin-block-end: 0;
  }

  .carte-infos-box p {
    margin-block-end: 0;
    color: var(--charcoal);
  }

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

  .carte-infos-list li {
    color: var(--charcoal);
  }

  .carte-infos-list a {
    color: var(--charcoal);
    text-decoration: underline;
    text-decoration-color: var(--charcoal);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
  }

  .carte-infos-list a:hover {
    color: var(--cobalt);
    text-decoration-color: var(--cobalt);
  }

  .carte-reservation-btn {
    margin-block-start: var(--space-8);
  }

  @media (min-width: 768px) {
    .carte-hero {
      padding-block: var(--space-128);
    }

    .carte-hero-inner {
      padding-inline: var(--page-margin-tablet);
    }

    .carte-container {
      padding-inline: var(--page-margin-tablet);
    }

    .carte-dish-grid,
    .carte-drinks-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

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

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

  @media (min-width: 1024px) {
    .carte-hero-inner {
      padding-inline: var(--page-margin-desktop);
    }

    .carte-container {
      padding-inline: var(--page-margin-desktop);
    }
  }

  @media (max-width: 767px) {
    .carte-hero {
      padding-block: var(--space-48);
    }

    .carte-hero h1 {
      font-size: 1.75rem;
      line-height: 1.15;
    }

    .carte-hero-dek {
      font-size: var(--text-body);
      line-height: var(--leading-body);
    }

    .carte-section {
      padding-block: var(--space-48);
    }

    .carte-infos-box {
      padding: var(--space-24);
    }

    .carte-reservation-btn {
      width: 100%;
      justify-content: center;
    }
  }
}
