:root {
  --color-bg: #faf4ec; --color-text: #2c2418; --color-heading: #1a140c;
  --color-muted: #6a5a48; --color-accent: #b45309; --color-surface: #f0e6d6;
  --color-border: rgba(26,20,12,.1); --nav-fg: #faf4ec; --nav-solid: rgba(250,244,236,.95);
  --nav-solid-fg: #1a140c; --btn-primary-fg: #faf4ec; --font-display: 'Playfair Display', serif;
  --font-body: 'Heebo', sans-serif; --footer-bg: #1a140c;
}

/* Make nav readable immediately on initial load (no scroll needed). */
.theme-rest .site-nav {
  background: var(--nav-solid, rgba(255,255,255,.96));
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 8px 30px rgba(0,0,0,.12);
}

.theme-rest .site-nav__logo,
.theme-rest .site-nav__links a {
  color: var(--nav-solid-fg, var(--color-heading, #111));
}

.theme-rest .site-nav__links a {
  opacity: 1;
}

.theme-rest .site-nav .nav-burger {
  color: var(--nav-solid-fg, var(--color-heading, #111));
}

body { font-family: var(--font-body); background: var(--color-bg); }
h1,h2,h3 { font-family: var(--font-display); font-weight: 400; }
.theme-rest .site-footer, .theme-rest .site-footer p, .theme-rest .site-footer a, .theme-rest .site-footer button, .theme-rest .site-footer h3 { color: #d9cbb8; }

/* Scroll offset for fixed nav */
section[id], h1[id], h2[id], h3[id] {
  scroll-margin-top: calc(var(--demo-h) + var(--nav-h) + 0.5rem);
}

/* HERO */
.rs-hero {
  position: relative;
  height: calc(100vh - (var(--demo-h) + var(--nav-h)));
  min-height: 60vh;
  display: grid;
}
@media (min-width: 800px) { .rs-hero { grid-template-columns: 1.3fr .7fr; } }
.rs-hero__a, .rs-hero__b { overflow: hidden; height: 100%; min-height: 0; }
.rs-hero img { width: 100%; height: 100%; object-fit: cover; }
.rs-hero__copy { position: absolute; bottom: 0; right: 0; left: 0; z-index: 2; padding: 4rem 8vw; color: #fff;
  background: linear-gradient(transparent, rgba(26,20,12,.75)); }
.rs-hero h1 { font-size: clamp(3rem, 8vw, 5.8rem); font-style: italic; }
.rs-hero__tagline { max-width: 36ch; margin: 1rem 0 1.6rem; font-size: clamp(1.05rem, 2.3vw, 1.35rem); line-height: 1.65; overflow-wrap: anywhere; }

/* CHEF */
.rs-chef { display: grid; align-items: center; }
@media (min-width: 800px) { .rs-chef { grid-template-columns: 1.12fr .88fr; } }
.rs-chef__content { padding: 4.2rem 8vw 4.2rem 6vw; }
.rs-chef__media { padding: 2.4rem 8vw 2.4rem 4vw; }
.rs-chef img { width: 100%; aspect-ratio: 4 / 5; height: auto; object-fit: cover; max-height: 520px; min-height: 320px; border-radius: 14px; }
.rs-chef h2 { font-size: clamp(2.2rem, 4.5vw, 3.4rem); line-height: 1.18; }
.rs-chef .rs-lede { max-width: 48ch; margin-top: 1.15rem; color: var(--color-muted); font-size: clamp(1.06rem, 1.55vw, 1.22rem); line-height: 2; }
@media (max-width: 799px) {
  .rs-chef__content { padding: 3rem 8vw 1.2rem; }
  .rs-chef__media { padding: 0 8vw 3rem; }
}

/* BELIEF */
.rs-belief { display: grid; background: #1a140c; color: #faf4ec; }
@media (min-width: 800px) { .rs-belief { grid-template-columns: 1.1fr .9fr; } }
.rs-belief blockquote { padding: 4rem 8vw; display: flex; flex-direction: column; justify-content: center; }
.rs-belief p { font-family: var(--font-display); font-size: clamp(1.3rem, 2.5vw, 1.9rem); font-style: italic; }
.rs-belief cite { font-style: normal; color: rgba(250,244,236,.9); font-size: 1rem; margin-top: 1.2rem; }
.rs-belief img { width: 100%; height: 100%; object-fit: cover; min-height: 360px; }

/* MENU SECTION (embedded single-page) */
.rs-menu-section {
  background: var(--color-bg);
  border-top: 1px solid var(--color-border);
}
.rs-menu-section__header {
  padding: 3.5rem 8vw 2rem;
  border-bottom: 1px solid var(--color-border);
  max-width: 980px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}
.rs-menu-section__header h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(2.2rem, 4.5vw, 3.4rem);
  font-style: italic;
  margin: .5rem 0 1rem;
}
.rs-menu-section__lede {
  max-width: 65ch;
  color: var(--color-muted);
  line-height: 1.75;
  font-size: 1.05rem;
}
.rs-menu-section__body {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 8vw 5.5rem;
  box-sizing: border-box;
}

/* Menu categories */
.rs-menu-cat {
  padding-top: 2.5rem;
  margin-top: 2.5rem;
  border-top: 1px solid var(--color-border);
}
.rs-menu-cat:first-child { border-top: none; margin-top: 0; }
.rs-menu-cat h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 1.85rem;
  margin: 0 0 1.1rem;
}
.rs-menu-items { display: grid; gap: 0.9rem; }
.rs-menu-item { padding: .3rem 0; }
.rs-menu-item header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.rs-menu-item header strong { font-size: 1.07rem; letter-spacing: -.01em; }
.rs-menu-item header span { color: var(--color-accent); font-family: var(--font-display); font-weight: 650; white-space: nowrap; }
.rs-menu-item p { color: var(--color-muted); margin-top: .35rem; line-height: 1.7; max-width: 64ch; overflow-wrap: anywhere; }

/* Wines */
.rs-wines { padding-top: 2.7rem; margin-top: 2.8rem; border-top: 1px solid var(--color-border); }
.rs-wines__title { font-family: var(--font-display); font-weight: 400; font-size: 1.85rem; margin: 0 0 1.4rem; }
.rs-wines__grid { display: grid; gap: 2.2rem; }
@media (min-width: 900px) { .rs-wines__grid { grid-template-columns: 1fr 1fr 1fr; } }
.rs-wines__col h4 { font-family: var(--font-display); font-weight: 400; font-size: 1.55rem; margin: 0 0 1rem; }
.rs-wine-list { display: grid; gap: 1.05rem; }
.rs-wine-item header { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.rs-wine-item header strong { font-size: 1.03rem; }
.rs-wine-item header span { color: var(--color-accent); font-family: var(--font-display); font-weight: 650; white-space: nowrap; }
.rs-wine-item p { margin-top: .35rem; color: var(--color-muted); line-height: 1.65; }

/* SERVICES */
.rs-svc { padding: 5rem 0; display: grid; gap: 14px; }
@media (min-width: 800px) { .rs-svc { grid-template-columns: 1fr 1fr; } }
.rs-svc__card { position: relative; min-height: 44vh; overflow: hidden; border: 1px solid var(--color-border); border-radius: 14px; }
.rs-svc__card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.35) brightness(.35); transform: scale(1.03); }
.rs-svc__card div { position: relative; z-index: 1; padding: 2.5rem; color: #fff; }
.rs-svc__card h3 { font-size: clamp(1.4rem, 2.5vw, 2rem); }
.rs-svc__card p { color: rgba(250,244,236,.88); font-size: .96rem; line-height: 1.65; max-width: 46ch; margin-top: .8rem; }

/* GALLERY */
.rs-gal { display: grid; grid-template-columns: repeat(4,1fr); gap: 6px; }
.rs-gal__item { margin: 0; position: relative; overflow: hidden; }
.rs-gal__item img { height: 30vh; width: 100%; object-fit: cover; display: block; }
.rs-gal__item figcaption { position: absolute; inset: auto 0 0 0; padding: .8rem .85rem; background: linear-gradient(transparent, rgba(26,20,12,.88)); color: #faf4ec; font-family: var(--font-display); font-size: .95rem; line-height: 1.25; overflow-wrap: anywhere; }

/* Mobile */
@media (max-width: 700px) {
  .rs-hero { grid-template-columns: 1fr; }
  .rs-hero__b { display: none; }
  .rs-gal { grid-template-columns: 1fr 1fr; }
  .rs-gal__item img { height: 22vh; }
  .rs-gal__item figcaption { font-size: .85rem; padding: .7rem .75rem; }
}

/* MENU PAGE: Text-only services cards */
.rs-svc--text .rs-svc__card { min-height: auto; background: var(--color-bg); }
.rs-svc--text .rs-svc__card div { padding: 2.2rem 2rem; color: var(--color-heading); }
.rs-svc--text .rs-svc__card h3 { color: var(--color-heading); }
.rs-svc--text .rs-svc__card p { color: var(--color-muted); }
