/* Rochor Original Beancurd — the shop's own look, restored.

   Recovered from the archived OceanWP + Elementor site rather than designed:
   the palette, the type and the layout below are what rochororiginal.com.sg
   actually served, read out of its own stylesheets.

     #536b51  sage green — links, buttons, borders, headings. The brand colour,
              by a distance (34 occurrences); it is the green the banner
              lettering is set in.
     #eeba14  gold — the HOVER colour for every green thing, and the
              scroll-to-top button. Never a resting state.
     #232323 / #3c3c3c  body text.   #f2f2f2  section banding.

   Type: Roboto Slab throughout, with Allura for the script accents — both are
   fonts the original page loaded.

   Layout identity: LIGHT AND AIRY — a white ground, a full-width photographic
   banner, generous whitespace and centred section headings under a short
   script eyebrow. Deliberately not the dark menu-board this file used to hold,
   which was a house style imposed on a business that already had one. */
:root {
  --s-paper:      #ffffff;
  --s-surface:    #ffffff;
  --s-surface-2:  #f2f2f2;
  --s-ink:        #232323;
  --s-ink-soft:   #3c3c3c;
  --s-muted:      #6f736e;
  --s-line:       #e4e6e2;
  --s-line-soft:  #f2f2f2;
  --s-accent:     #536b51;   /* sage green: the brand */
  --s-accent-ink: #ffffff;
  --s-accent-2:   #eeba14;   /* gold: hover only */
  --s-display: "Roboto Slab", Georgia, serif;
  --s-body: "Roboto Slab", Georgia, serif;
  --s-script: "Allura", cursive;
  --s-radius: 3px;
  --s-card-ratio: 4 / 3;
  --s-wrap: 1200px;
}

body { background: var(--s-paper); color: var(--s-ink-soft); }
a { color: var(--s-accent); }
a:hover { color: var(--s-accent-2); }

/* Header — white, with the shop's own logo. The original header was light;
   a dark bar was the single biggest reason the rebuild read as a different
   business. */
.rb-header {
  background: #fff; border-bottom: 1px solid var(--s-line);
  box-shadow: 0 1px 6px rgba(0,0,0,.04);
}
.rb-header .sat-header-inner { padding: 14px 0; }
.rb-logo { display: inline-flex; align-items: center; text-decoration: none; }
.rb-logo img { height: 64px; width: auto; display: block; }
.sat-nav a {
  font-family: var(--s-body); font-size: .84rem; font-weight: 500;
  letter-spacing: .04em; text-transform: uppercase; color: var(--s-ink);
}
.sat-nav a:hover { color: var(--s-accent); }

/* Hero — the shop's own banner, full width, text already in the artwork. */
.rb-hero-banner { background: #fff; }
.rb-hero-banner img { width: 100%; height: auto; display: block; }
.rb-hero-intro { text-align: center; padding: 40px 0 8px; }
.rb-script {
  font-family: var(--s-script); color: var(--s-accent);
  font-size: clamp(1.9rem, 4.4vw, 2.9rem); line-height: 1.1; margin: 0 0 6px;
}
.rb-hero h1, .rb-hero-page h1 {
  font-family: var(--s-display); font-weight: 400; color: var(--s-ink);
  font-size: clamp(1.7rem, 3.6vw, 2.5rem); line-height: 1.22; margin: 0 0 16px;
}
.rb-hero-lede {
  font-size: 1.04rem; color: var(--s-ink-soft); line-height: 1.85;
  max-width: 62ch; margin-left: auto; margin-right: auto;
}
.rb-hero-page { padding: 46px 0 6px; text-align: center; }

/* Sections — centred heads under a script eyebrow, as the original had. */
.sat-section { padding: 54px 0; }
.sat-section-head { text-align: center; margin-bottom: 30px; }
.sat-section-head h2 {
  font-family: var(--s-display); font-weight: 400; color: var(--s-ink);
  font-size: clamp(1.45rem, 2.8vw, 2rem); margin: 0 0 10px;
}
.sat-section-head h2 a { color: inherit; text-decoration: none; }
.rb-eyebrow-script {
  font-family: var(--s-script); color: var(--s-accent);
  font-size: 1.7rem; line-height: 1; margin: 0 0 2px;
}
.rb-section-note { color: var(--s-muted); max-width: 62ch; margin: 0 auto; }
.rb-band { background: var(--s-surface-2); }

/* Buttons — green, gold on hover, exactly as the theme had them. */
.rb-cta-line { margin-top: 24px; display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.rb-btn {
  display: inline-block; padding: 13px 30px; background: var(--s-accent);
  color: #fff; text-decoration: none; font-size: .82rem; font-weight: 500;
  letter-spacing: .06em; text-transform: uppercase; border-radius: var(--s-radius);
  border: 1px solid var(--s-accent); transition: background .15s, border-color .15s;
}
.rb-btn:hover { background: var(--s-accent-2); border-color: var(--s-accent-2); color: #fff; }
.rb-btn-ghost { background: transparent; color: var(--s-accent); }
.rb-btn-ghost:hover { background: var(--s-accent-2); border-color: var(--s-accent-2); color: #fff; }

/* Menu — clean centred cards on white, the Elementor look, not a price board. */
.rb-menu {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 34px 26px;
}
.rb-menu-snacks { grid-template-columns: repeat(4, 1fr); }
.rb-item { text-align: center; }
.rb-item-head { display: block; }
.rb-item-name {
  font-family: var(--s-display); font-size: 1.02rem; font-weight: 500;
  margin: 0 0 4px; color: var(--s-ink);
}
.rb-price {
  display: block; font-family: var(--s-display); font-size: 1.02rem;
  font-weight: 700; color: var(--s-accent); margin-bottom: 8px;
}
.rb-native { margin: 0 0 6px; font-size: .84rem; color: var(--s-accent); }
.rb-note { margin: 0; font-size: .9rem; color: var(--s-muted); line-height: 1.65; }
.rb-unit { margin: 6px 0 0; font-size: .72rem; color: var(--s-muted);
  text-transform: uppercase; letter-spacing: .08em; }
.rb-recipe-link { margin: 10px 0 0; }
.rb-recipe-link a {
  font-size: .8rem; font-weight: 500; color: var(--s-accent);
  text-decoration: none; letter-spacing: .03em;
}
.rb-recipe-link a:hover { color: var(--s-accent-2); text-decoration: underline; }

/* Outlets */
.rb-outlets { list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; }
.rb-outlet {
  background: #fff; border: 1px solid var(--s-line); padding: 30px 26px;
  border-radius: var(--s-radius); text-align: center;
}
.rb-outlet-name { font-family: var(--s-display); font-weight: 500; margin: 0 0 12px;
  font-size: 1.2rem; color: var(--s-accent); }
.rb-address { font-style: normal; color: var(--s-ink-soft); line-height: 1.7; }
.rb-outlet-line { margin: 10px 0 0; font-weight: 500; }
.rb-outlet-hours { margin: 8px 0 0; color: var(--s-muted); font-size: .92rem; line-height: 1.6; }

/* Prose */
.rb-prose { max-width: 74ch; margin: 0 auto; }
.rb-prose h2 { font-family: var(--s-display); font-weight: 400; margin: 36px 0 14px;
  font-size: 1.45rem; color: var(--s-ink); }
.rb-prose h3 { font-family: var(--s-display); font-weight: 500; margin: 26px 0 10px;
  font-size: 1.12rem; color: var(--s-ink); }
.rb-prose p { line-height: 1.95; margin: 0 0 18px; }
.rb-figure { margin: 30px 0; }
.rb-figure img { width: 100%; height: auto; display: block; border-radius: var(--s-radius); }
.rb-quote { margin: 32px 0; padding: 22px 28px; border-left: 3px solid var(--s-accent-2);
  background: var(--s-surface-2); }
.rb-quote p { font-family: var(--s-script); font-size: 1.7rem; color: var(--s-accent);
  margin: 0; line-height: 1.35; }
.rb-steps, .rb-links { line-height: 1.95; padding-left: 20px; }
.rb-note-box { background: var(--s-surface-2); border: 1px solid var(--s-line);
  padding: 16px 20px; border-radius: var(--s-radius); }
.rb-more { font-weight: 500; color: var(--s-accent); text-decoration: none; }
.rb-more:hover { color: var(--s-accent-2); text-decoration: underline; }
.rb-story-teaser { text-align: center; }

/* Footer — the theme's dark footer, in the brand green rather than black. */
.rb-footer { background: var(--s-accent); color: #e9efe8; }
.rb-footer a { color: #e9efe8; }
.rb-footer a:hover { color: var(--s-accent-2); }
.rb-footer h2 {
  color: #fff; font-family: var(--s-display); font-weight: 500;
  font-size: .88rem; letter-spacing: .06em; text-transform: uppercase;
}
.rb-footer-logo img { height: 74px; width: auto; background: #fff;
  padding: 8px 12px; border-radius: var(--s-radius); }

@media (max-width: 1000px) { .rb-menu, .rb-menu-snacks { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 820px)  {
  .rb-menu, .rb-menu-snacks, .rb-outlets { grid-template-columns: 1fr; }
  .rb-logo img { height: 52px; }
}

/* The one deliberate off-brand link (see rochor/recipes/detail.html). Set as
   a quiet note rather than a call to action: it is a pointer for a reader who
   wants a second take, not something competing with the recipe. */
.rb-crosslink {
  margin: 28px 0 0; padding: 14px 18px;
  background: var(--s-surface-2); border-left: 3px solid var(--s-accent-2);
  border-radius: var(--s-radius);
  font-size: .93rem; color: var(--s-muted); line-height: 1.65;
}
.rb-crosslink a { color: var(--s-accent); font-weight: 500; }
.rb-crosslink a:hover { color: var(--s-accent-2); }
