/* RESTAURANT PAGE (separate file: only /restaurant loads it).
   The banner, .about-media photos, .btn-outline and .sr-only come from site.css. */
/* Facts card: overlaps the photo, like the enquiry bar on the home page */
.rest-facts { position: relative; z-index: 3; margin-top: -2rem; padding: 0 .75rem; background: linear-gradient(transparent 2rem, #fff 2rem); }
.rest-facts-card {
  max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: .875rem 1rem; padding: 1rem;
  background: var(--cream); box-shadow: 0 8px 22px rgba(0, 0, 0, .12);
}
.rest-facts dt { margin: 0 0 2px; font-size: .8125rem; color: var(--muted); }
.rest-facts dd { margin: 0; font: 400 1.125rem/1.3 var(--font-head); color: var(--green-dark); }
.rest-facts dd a { display: inline-block; margin: -.5rem 0; padding: .5rem 0; text-decoration: none; }
.rest-facts dd a:hover { color: var(--green); text-decoration: underline; }

/* Intro: reuses the overlapping photo pair from the About section */
.rest-intro { padding: 2.25rem 0; background: #fff; }
.rest-intro-inner { display: grid; gap: 1.5rem; max-width: 1320px; margin: 0 auto; padding: 0 1.25rem; }
.rest-intro h2 { margin: 0 0 .75rem; font: 400 clamp(1.75rem, 6vw, 3.25rem)/1.15 var(--font-head); }
.rest-copy { margin: 0 0 1rem; max-width: 34em; font-size: 1rem; line-height: 1.7; color: #4b5148; }
.rest-points { display: grid; gap: .4rem; margin: 0 0 1.25rem; }
.rest-points li { display: flex; align-items: center; gap: .6rem; font-size: .9375rem; }
.rest-points svg { flex: none; fill: none; stroke: var(--gold-dark); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Ways to eat: terrace, room service, package */
.rest-ways { padding: 2.25rem 1.25rem; background: var(--green-night); color: #fff; scroll-margin-top: var(--header-h); }
.rest-ways-inner { max-width: 1100px; margin: 0 auto; }
.rest-ways h2 { margin: 0 0 1rem; font: 400 clamp(1.75rem, 6vw, 3rem)/1.15 var(--font-head); text-align: center; }
.ways-list { display: grid; gap: 1.25rem; }
.ways-list li { padding-top: 1rem; border-top: 1px solid var(--gold-light); scroll-margin-top: var(--header-h); }
.ways-list h3 { margin: 0 0 .35rem; font: 400 1.5rem/1.2 var(--font-head); }
.ways-list p { margin: 0; max-width: 28em; line-height: 1.65; color: rgba(255, 255, 255, .92); }

/* Menu */
.rest-menu { --veg: #2e7d32; --nonveg: var(--error); padding: 2.25rem 0 2rem; background: var(--cream); scroll-margin-top: var(--header-h); }
.rest-menu-head { max-width: 42em; margin: 0 auto 1.5rem; padding: 0 1.25rem; text-align: center; }
.rest-menu .eyebrow { color: var(--green); }
.rest-menu h2 { margin: 0 0 .5rem; font: 400 clamp(1.75rem, 6vw, 3.25rem)/1.15 var(--font-head); }
.rest-menu-intro { margin: 0 0 .75rem; line-height: 1.6; color: #4b5148; }
.menu-legend { display: flex; justify-content: center; gap: 1.25rem; margin: 0; font-size: .875rem; color: var(--muted); }
.menu-legend span { display: inline-flex; align-items: center; gap: .4rem; }

.menu-grid { display: grid; gap: 1.75rem; max-width: 1100px; margin: 0 auto; padding: 0 1.25rem; }
.menu-group h3 {
  margin: 0 0 .25rem; padding-bottom: .5rem; border-bottom: 1px solid var(--gold);
  font: 400 1.625rem/1.2 var(--font-head); color: var(--green-dark);
}
.menu-item { padding: .6rem 0; }
.menu-row { display: flex; align-items: baseline; gap: .5rem; }
.menu-name { font-size: 1.0625rem; font-weight: 500; }
.menu-dots { flex: 1; min-width: 1rem; border-bottom: 1px dotted #a39b88; transform: translateY(-.3em); }
.menu-price { font-weight: 500; white-space: nowrap; }
.menu-desc { margin: .15rem 0 0 calc(14px + .5rem); font-size: .9375rem; line-height: 1.5; color: #4b5148; }
.menu-note { margin: 1.5rem 0 0; padding: 0 1.25rem; text-align: center; font-size: .8125rem; color: var(--muted); }

/* Veg / non-veg marker (the square-with-dot used on Indian menus) */
.veg { flex: none; align-self: center; display: grid; place-items: center; width: 14px; height: 14px; border: 1.5px solid; }
.veg::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.veg-yes { color: var(--veg); }
.veg-no { color: var(--nonveg); }

/* Booking */
.rest-cta { padding: 2.25rem 1.25rem; background: var(--green-night); color: #fff; text-align: center; }
.rest-cta h2 { margin: 0 0 .5rem; font: 400 clamp(1.75rem, 6vw, 3rem)/1.15 var(--font-head); }
.rest-cta p { max-width: 32em; margin: 0 auto 1.25rem; line-height: 1.65; color: rgba(255, 255, 255, .92); }
.rest-cta-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }

@media (min-width: 768px) {
  .ways-list { grid-template-columns: repeat(3, 1fr); gap: 2rem; }
  .rest-facts { margin-top: -3rem; padding: 0 1.5rem; background: linear-gradient(transparent 3rem, #fff 3rem); }
  .rest-facts-card { grid-template-columns: repeat(4, 1fr); gap: 0; padding: 1.25rem 0; }
  .rest-facts-card > div { padding: 0 1.5rem; }
  .rest-facts-card > div + div { border-left: 1px solid #e0d9c8; }
  .menu-grid { grid-template-columns: 1fr 1fr; gap: 2rem 4rem; }
}
@media (min-width: 992px) {
  .rest-intro { padding: 3.5rem 0; }
  .rest-intro-inner { grid-template-columns: 1fr 1fr; align-items: center; gap: 4rem; padding: 0 2rem; }
  .rest-menu { padding: 3.5rem 0 3rem; }
  .rest-cta { padding: 3.5rem 2rem; }
  .rest-ways { padding: 3.5rem 2rem; }
}
