/* ==========================================================================
   Responsive layer — breakpoints tested at 360 / 390 / 430 / 768 / 1024 / 1440 / 1920
   ========================================================================== */

/* ---------- Small phones (≤ 380px) ---------- */
@media (max-width: 380px) {
  .burger__label { display: none; }
  .hero__actions .btn { flex: 1 1 100%; }
  .dish__head { flex-wrap: wrap; }
  .dish__leader { display: none; }
  .dish__price { margin-left: auto; }
  .location__actions .btn { flex: 1 1 100%; }
}

/* ---------- Phones: hero status sits inside the flow ---------- */
@media (max-width: 767px) {
  .hero__status { position: static; order: -1; margin: 0 var(--gutter) 1rem; align-self: flex-start; }
  .hero { padding-bottom: 3.5rem; }
  .hero__media img { object-position: 62% 60%; }
}

/* ---------- Tablet (≥ 768px) ---------- */
@media (min-width: 768px) {

  .hero__bottom { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  .hero__title .line--indent { padding-left: 0.9em; }

  .about__grid { grid-template-columns: repeat(12, 1fr); column-gap: clamp(1rem, 2vw, 2rem); row-gap: 0; }
  .about__head { grid-column: 1 / -1; }
  .about__img--main { grid-column: 1 / 7; grid-row: 2 / 4; }
  .about__text { grid-column: 8 / 13; grid-row: 2; align-self: start; padding-top: 2rem; }
  .about__img--small { grid-column: 8 / 12; grid-row: 3; width: 100%; margin-top: 3rem; justify-self: stretch; border: 0; }

  .moment { width: min(56vw, 440px); }

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

  .hours__grid { grid-template-columns: repeat(12, 1fr); column-gap: 2rem; }
  .hours__head { grid-column: 1 / -1; }
  .hours__table { grid-column: 1 / 8; }
  .notice { grid-column: 8 / 13; }
  .hours__row { grid-template-columns: 1fr auto; align-items: end; }
  .hours__row dd { justify-items: end; text-align: right; }

  .location__grid { grid-template-columns: repeat(12, 1fr); column-gap: 2rem; }
  .location__head { grid-column: 1 / -1; }
  .location__info { grid-column: 1 / 6; }
  .map-consent { grid-column: 6 / 13; }

  .contact__item { grid-template-columns: 9rem 1fr; align-items: baseline; }

  .footer__top { grid-template-columns: auto 1fr; align-items: end; }
  .footer__claim { justify-self: end; text-align: right; }
  .footer__cols { grid-template-columns: repeat(4, 1fr); }
  .footer__col--top { justify-content: flex-end; }

  .carta__foot { grid-template-columns: 1fr auto; }
  .legend__body { grid-template-columns: 1fr 1fr; }
  .legend__hint { grid-column: 1 / -1; }

  .atmos__content { grid-template-columns: repeat(12, 1fr); align-items: end; }
  .atmos__title { grid-column: 1 / 9; grid-row: 1; }
  .atmos__inset { grid-column: 9 / 13; grid-row: 1 / 3; width: 100%; align-self: center; }
  .atmos__quote { grid-column: 2 / 8; grid-row: 2; }
}

/* ---------- Desktop (≥ 1024px) ---------- */
@media (min-width: 1024px) {
  .nav__links { display: flex; }
  .nav__cta { display: inline-flex; }
  .burger { display: none; }
  .mobile-menu { display: none !important; }

  .hero__title { max-width: none; }

  /* Horizontal pinned track — GSAP drives translateX; native scroll disabled */
  .moments__pin { overflow: visible; scroll-snap-type: none; }
  .moments.is-pinned .moments__pin { height: 100vh; display: flex; align-items: center; margin-top: 0; }
  .moments.is-pinned { padding-bottom: 0; }
  .moments__track { gap: clamp(2rem, 4vw, 4rem); }
  .moment { width: clamp(400px, 34vw, 560px); }
  .moment:nth-child(even) { margin-top: 12vh; }
  .moment:nth-child(even) .moment__img { aspect-ratio: 1 / 1; }
  .moments__intro { grid-template-columns: 1fr 1fr; align-items: end; }

  .specials__grid { grid-template-columns: 5fr 6fr; gap: clamp(3rem, 6vw, 7rem); align-items: start; }
  .specials__stage { display: block; position: sticky; top: 7rem; }
  .specials__frame { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--espresso-3); }
  .specials__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .special__mobile-img { display: none; }
  .special__name { font-size: var(--step-3); }
  .special__detail-inner .special__it { padding-bottom: 1.4rem; }

  .philosophy__grid { grid-template-columns: 4fr 8fr; gap: 4rem; align-items: start; }
  .philosophy__head { position: sticky; top: 8rem; }
  .value { grid-template-columns: 1fr 15rem; align-items: end; gap: 2rem; }

  .cursor {
    display: block; position: fixed; left: 0; top: 0; z-index: var(--z-cursor); pointer-events: none;
    width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%;
    border: 1px solid var(--gold); mix-blend-mode: difference;
    transition: width 0.4s var(--ease-out), height 0.4s var(--ease-out), margin 0.4s var(--ease-out), background-color 0.4s, opacity 0.3s;
    opacity: 0;
  }
  .cursor.is-visible { opacity: 1; }
  .cursor.is-hover { width: 54px; height: 54px; margin: -27px 0 0 -27px; background: rgba(196, 160, 106, 0.18); }
  .cursor.has-label { width: 86px; height: 86px; margin: -43px 0 0 -43px; background: var(--gold); mix-blend-mode: normal; border-color: var(--gold); }
  .cursor__label { position: absolute; inset: 0; display: grid; place-items: center; font-size: 0.75rem; letter-spacing: 0.04em; color: var(--espresso); opacity: 0; transition: opacity 0.3s; }
  .cursor.has-label .cursor__label { opacity: 1; }

  .location__info { grid-column: 1 / 6; }
}

/* Hide custom cursor on touch / coarse pointers */
@media (hover: none), (pointer: coarse) {
  .cursor { display: none !important; }
}

/* ---------- Large (≥ 1440px) ---------- */
@media (min-width: 1440px) {
  .dishes { column-gap: 6rem; }
  .hero__content { padding-bottom: 1rem; }
}

/* ---------- XL (≥ 1920px) ---------- */
@media (min-width: 1920px) {
  :root { --max: 1680px; }
}

/* ---------- Print: a clean menu ---------- */
@media print {
  .site-header, .preloader, .scroll-progress, .cursor, .mobile-menu, .hero__embers, .to-top, .map-consent, .menu__tabs-wrap, .cookie-banner { display: none !important; }
  body { background: #fff; color: #000; }
  .carta, .section { padding: 1rem 0; }
  .dish { break-inside: avoid; }
}

@media (min-width: 1280px) {
  .scroll-cue { display: flex; }
}

/* Pinned track: keep every card inside the viewport */
@media (min-width: 1024px) {
  .moments.is-pinned .moment { width: clamp(340px, 30vw, 500px); }
  .moments.is-pinned .moment__img { aspect-ratio: auto; height: 52vh; }
  .moments.is-pinned .moment:nth-child(even) { margin-top: 8vh; }
  .moments.is-pinned .moment:nth-child(even) .moment__img { aspect-ratio: auto; height: 42vh; }
  .moments.is-pinned .moments__track { align-items: flex-start; padding-right: 12vw; }
}

@media (min-width: 1024px) {
  .philosophy__head .section-head__title { font-size: var(--step-3); }
}
