/*
Theme Name: Flatsome Child
…
Template: flatsome
Version: 3.0
*/

/*************** ADD CUSTOM CSS HERE.   ***************/


@media only screen and (max-width: 48em) {
/*************** ADD MOBILE ONLY CSS HERE  ***************/


}

/* ==========================================================================
   Rosemary's — site styles (moved from the "Rosemary's Site" plugin)
   Paste at the END of the child theme's style.css (below the theme header).
   Part 1: global, header, footer, homepage.  Part 2: inner pages.
   ========================================================================== */
/* ==========================================================================
   Rosemary's on Flatsome
   Ported from the original site's tokens.css + component styles.

   How this file is organised
   1. Fonts
   2. Design tokens (--rm-*) and Flatsome colour variables
   3. Base typography and page ground (texture)
   4. Buttons (Flatsome [button] with class "rm-btn", and .btn links in text)
   5. Layout system: rows with class "rm-row" (content width 1104px = 72rem
      minus 24px gutters, exactly as the original .wrap)
   6. Homepage sections (rm-hero, rm-doors, rm-story, ...)
   7. Header (Flatsome header builder markup)
   8. Footer (UX Block "rm-footer")
   9. Mobile action bar (UX Block "rm-mobile-action-bar")

   Specificity notes
   - Flatsome prints Customizer CSS inline after this file with plain element
     selectors (h1, body, a). Base rules here use "body h1" etc. so they win
     without !important.
   - Flatsome writes section padding and image widths as #id rules in inline
     <style> tags. Sections therefore get padding="0px" in the shortcode and
     spacing is set on .section-content here; image wrappers use !important
     on width only.
   ========================================================================== */

/* 1. Fonts: loaded from the Media Library by functions.php (rmc_fonts_and_texture) */

/* 2. Tokens ---------------------------------------------------------------- */
:root {
  --rm-green: #587365;
  --rm-green-deep: #334d29;
  --rm-green-soft: #a3aea8;
  --rm-gold: #b2704b;
  --rm-white: #ffffff;
  --rm-paper: #ffffff;
  --rm-ink: #334d29;
  --rm-ink-soft: #587365;
  --rm-line: rgba(88, 115, 101, 0.24);
  --rm-line-strong: rgba(88, 115, 101, 0.8);
  --rm-green-wash: rgba(88, 115, 101, 0.08);
  --rm-paper-glass: rgba(255, 255, 255, 0.96);
  --rm-paper-tint-strong: rgba(255, 255, 255, 0.92);
  --rm-paper-tint: rgba(255, 255, 255, 0.5);
  --rm-paper-tint-faint: rgba(255, 255, 255, 0.25);
  --rm-scrim: rgba(51, 77, 41, 0.66);
  --rm-scrim-light: rgba(51, 77, 41, 0.45);

  --rm-font-display: 'Bebas Neue', 'Oswald', 'Arial Narrow', sans-serif;
  --rm-font-body: 'Noticia Text', Georgia, 'Times New Roman', serif;
  --rm-font-ui: 'Figtree', 'Segoe UI', Helvetica, Arial, sans-serif;

  --rm-ts: 0.88;
  --rm-text-xs: 0.8125rem;
  --rm-text-sm: 0.9375rem;
  --rm-text-base: calc(1.0625rem * var(--rm-ts));
  --rm-text-lg: calc(1.1875rem * var(--rm-ts));
  --rm-text-xl: calc(1.625rem * var(--rm-ts));
  --rm-text-2xl: calc(2.125rem * var(--rm-ts));
  --rm-text-3xl: clamp(calc(2.1rem * var(--rm-ts)), calc((1.6rem + 2.2vw) * var(--rm-ts)), calc(3rem * var(--rm-ts)));
  --rm-text-4xl: clamp(calc(2.6rem * var(--rm-ts)), calc((2rem + 3vw) * var(--rm-ts)), calc(3.75rem * var(--rm-ts)));
  --rm-text-hero: clamp(calc(2.8rem * var(--rm-ts)), calc(5vw * var(--rm-ts)), calc(3.9rem * var(--rm-ts)));
  --rm-text-poster: clamp(calc(3.25rem * var(--rm-ts)), calc((2.2rem + 5vw) * var(--rm-ts)), calc(6.4rem * var(--rm-ts)));

  --rm-space-1: 0.25rem;
  --rm-space-2: 0.5rem;
  --rm-space-3: 0.75rem;
  --rm-space-4: 1rem;
  --rm-space-5: 1.5rem;
  --rm-space-6: 2rem;
  --rm-space-8: 3rem;
  --rm-space-10: 4rem;
  --rm-space-12: 5.5rem;

  --rm-radius: 4px;
  --rm-shadow: 0 10px 30px -12px rgba(51, 77, 41, 0.35);
  --rm-wrap: 72rem;          /* outer width incl. gutters (1152px) */
  --rm-gutter: max(var(--rm-space-5), env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px));
  --rm-header-h: 80px;
  --rm-bar-h: 64px;
  --rm-safe-bottom: env(safe-area-inset-bottom, 0px);
  color-scheme: light;
}
@media (max-width: 1180px) {
  :root { --rm-header-h: 64px; }
}

/* Flatsome's own colour variables, so any stock Flatsome element (links,
   forms, blog, pagination) also picks up the brand. html:root outranks the
   :root rule Flatsome prints from the Customizer. */
html:root {
  --primary-color: #587365;
  --fs-color-primary: #587365;
  --fs-color-secondary: #b2704b;
  --fs-color-success: #587365;
  --fs-experimental-link-color: #587365;
  --fs-experimental-link-color-hover: #334d29;
}

/* 3. Base ------------------------------------------------------------------ */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body *, body *::before, body *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

html body {
  font-family: var(--rm-font-body);
  font-size: var(--rm-text-base);
  line-height: 1.65;
  color: var(--rm-ink);
  background-color: var(--rm-paper);
  /* paper texture image: set by functions.php from the Media Library */
  background-size: 900px auto;
  -webkit-font-smoothing: antialiased;
}
/* Let the paper texture show through Flatsome's wrappers */
body #wrapper,
body #main,
body .page-wrapper { background-color: transparent; }
/* The original keeps short pages from collapsing */
body main#main { min-height: 60vh; }

body h1, body h2, body h3 {
  font-family: var(--rm-font-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.035em;
  line-height: 1;
  color: var(--rm-green);
  margin: 0 0 var(--rm-space-4);
  text-wrap: balance;
  width: auto;
}
body h3 { line-height: 1.08; }
body h1 { font-size: var(--rm-text-4xl); }
body h2 { font-size: var(--rm-text-3xl); }
body h3 { font-size: var(--rm-text-2xl); }
body h4, body h5, body h6 {
  font-family: var(--rm-font-ui);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: var(--rm-text-sm);
  color: var(--rm-ink);
  margin: 0 0 var(--rm-space-3);
}
body .accent-title { color: var(--rm-gold); font-size: max(var(--rm-text-2xl), 1.5rem); }

:where(#main, .rm-footer) p { margin: 0 0 var(--rm-space-4); max-width: 70ch; text-wrap: pretty; }
body .sub { margin-left: auto; margin-right: auto; }

body a {
  color: var(--rm-green);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
  transition: color 0.18s ease;
}
body a:hover { color: var(--rm-green-deep); }
/* Flatsome removes link underlines; the original keeps them in page copy and the footer */
:where(#main, .rm-footer) a { text-decoration: underline; }

:where(#main, .rm-footer) img { max-width: 100%; height: auto; display: block; }
/* Section background photos always cover their section (Flatsome's
   bg image must not pick up the height:auto above). */
body .section > .section-bg { overflow: hidden; }
body .section > .section-bg img,
body .section > .section-bg .bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 50% 50%;
  background-size: cover;
  background-position: 50% 50%;
}

::selection { background: var(--rm-green); color: var(--rm-paper); }
body :focus-visible {
  outline: 2px solid var(--rm-gold);
  outline-offset: 2px;
  box-shadow: 0 0 0 2px var(--rm-paper);
  border-radius: 2px;
}
body button, body input, body select, body textarea, body label, body time, body dt { font-family: var(--rm-font-ui); }

.rm-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); border: 0;
}

/* Text blocks: the last child never adds space; spacing between blocks is
   set on the containers below, matching the original layout exactly. */
.rm-sec .text > :last-child,
.rm-footer .text > :last-child,
.rm-sec .col-inner > :last-child { margin-bottom: 0; }

/* Text + buttons columns ---------------------------------------------------
   Columns that stack text above a row of buttons (hero, tout, reserve band,
   page heads, private-dining box). The rules key off the structure, not the
   Text element, so the layout holds whether the copy is in a Text element
   (with or without its class) or loose in the column after a UX Builder save.
   - text before the buttons | line break | buttons side by side | line break | text after
   - buttons keep 12px between them, also when they wrap onto two lines
   - --rm-tb-before / --rm-tb-after: space above and below the button row */
body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) > .col-inner {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  column-gap: var(--rm-space-3);
  row-gap: 0;
}
body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) > .col-inner::before,
body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) > .col-inner::after { content: ""; display: block; flex: 0 0 100%; height: 0; margin: 0; }
body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) > .col-inner::before { order: 1; }
body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) > .col-inner::after { order: 3; }
body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) .col-inner > :not(.button) { flex: 0 0 100%; }
body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) .col-inner > .button { order: 2; margin-top: var(--rm-space-3); }
body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) .col-inner > .button ~ :not(.button) { order: 4; }
body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) .col-inner > .text:has(+ .button) > :last-child { margin-bottom: 0; }
body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) .col-inner > .button + .text > :first-child { margin-top: 0; }
html body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) .col-inner > :not(.button):not(#rm):has(+ .button) {
  margin-bottom: calc(var(--rm-tb-before, 24px) - var(--rm-space-3));
}
html body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) .col-inner > .button + :not(.button):not(#rm) { margin-top: var(--rm-tb-after, 12px); }
/* Loose paragraphs span their line; their original measure becomes padding */
html body :is(.rm-hero-panel, .rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head, .events-teaser) .col-inner > p:not(#rm) {
  max-width: none;
  padding-right: max(0px, calc(100% - var(--rm-mw, 70ch)));
}
html body :is(.rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head) .col-inner > p:not(#rm) {
  padding-left: max(0px, calc((100% - var(--rm-mw, 70ch)) / 2));
  padding-right: max(0px, calc((100% - var(--rm-mw, 70ch)) / 2));
}
html body :is(.rm-tout-panel, .rm-band-col, .loc-head, .menu-head, .ev-head) .col-inner > p.poster:not(#rm) { --rm-mw: 100%; }
html body .rm-tout-panel .col-inner > p:not(#rm) { --rm-mw: 54ch; }
html body .rm-band-col .col-inner > p.sub:not(#rm) { --rm-mw: 52ch; }
html body .rm-band-col .col-inner > p.group-line:not(#rm) { --rm-mw: 46ch; }
html body .loc-head .col-inner > p.blurb:not(#rm) { --rm-mw: 56ch; }
html body .menu-head .col-inner > p.sub:not(#rm) { --rm-mw: 52ch; }
html body .menu-head .col-inner > p.party-line:not(#rm) { --rm-mw: 46ch; }
html body .ev-head .col-inner > p:not(#rm) { --rm-mw: 62ch; }

/* Inline links styled as "Read more →" */
body .rm-more { font-size: var(--rm-text-sm); font-weight: 600; display: inline-block; }
body .rm-sec p:has(> .rm-more:only-child) { font-size: var(--rm-text-base); }

/* 4. Buttons ---------------------------------------------------------------- */
/* Flatsome [button class="rm-btn ..."] */
body .button.rm-btn,
body a.btn,
body button.btn {
  display: inline-block;
  font-family: var(--rm-font-ui);
  font-size: var(--rm-text-sm);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.65;
  text-transform: uppercase;
  text-decoration: none;
  text-align: center;
  text-shadow: none;
  white-space: nowrap;
  vertical-align: middle;
  min-height: 0;
  max-width: 100%;
  margin: 0;
  padding: 0.8em 1.9em;
  border: 1.5px solid var(--rm-green);
  border-radius: var(--rm-radius);
  background: transparent;
  color: var(--rm-green);
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}
body .button.rm-btn span { line-height: inherit; display: inline; }
body .button.rm-btn:hover { box-shadow: none; outline: none; }

body .button.rm-btn.rm-btn-primary,
body a.btn.btn-primary { background: var(--rm-green); border-color: var(--rm-green); color: var(--rm-white); }
body .button.rm-btn.rm-btn-primary:hover,
body a.btn.btn-primary:hover { background: var(--rm-green-deep); border-color: var(--rm-green-deep); color: var(--rm-white); transform: translateY(-1px); }

body .button.rm-btn.rm-btn-outline,
body a.btn.btn-outline { background: transparent; border-color: var(--rm-green); color: var(--rm-green); }
body .button.rm-btn.rm-btn-outline:hover,
body a.btn.btn-outline:hover { background: var(--rm-green); border-color: var(--rm-green); color: var(--rm-white); }

body .button.rm-btn.rm-btn-lg { font-size: var(--rm-text-base); padding: 0.95em 2.4em; white-space: normal; text-wrap: balance; }
body .button.rm-btn.rm-arrow::after { content: " \2192"; }

@media (max-width: 400px) {
  body .button.rm-btn, body a.btn, body button.btn { white-space: normal; }
}

/* 5. Layout: rm-row ---------------------------------------------------------- */
/* Every content row: 1104px max (the original 72rem wrap minus 24px gutters),
   24px from the viewport edge below that. Columns lose Flatsome's 15px/30px
   padding; gaps are set per row. */
body .row.rm-row {
  width: calc(100% - 2 * var(--rm-gutter));
  max-width: calc(var(--rm-wrap) - 2 * var(--rm-space-5));
  margin-left: auto;
  margin-right: auto;
  padding: 0;
}
body .row.rm-row > .col,
body .row.rm-doors > .col {
  padding: 0;
  max-width: none;
  flex: 1 1 100%;
  width: 100%;
}
body .row.rm-row > .col > .col-inner { margin: 0; }
body .section.rm-sec,
body .section.rm-footer { display: flex; align-items: center; min-height: 0; }
body .section.rm-sec > .section-content,
body .section.rm-footer > .section-content { width: 100%; }

/* 6. Homepage ----------------------------------------------------------------- */

/* Hero */
body .section.rm-hero { min-height: min(78vh, 720px); }
body .row.rm-row.rm-hero-row {
  width: 100%;
  max-width: none;
  display: flex;
  padding: 0 var(--rm-space-5) 0 max(var(--rm-space-5), env(safe-area-inset-left, 0px), calc((100vw - var(--rm-wrap)) / 2));
}
body .row.rm-hero-row > .col.rm-hero-panel {
  flex: 0 1 36rem;
  max-width: 36rem;
  margin: var(--rm-space-10) 0;
}
body .rm-hero-panel > .col-inner {
  --rm-tb-before: var(--rm-space-5);
  background: var(--rm-paper-glass);
  border-radius: var(--rm-radius);
  box-shadow: var(--rm-shadow);
  padding: var(--rm-space-8) var(--rm-space-6);
  animation: rm-rise 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes rm-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
body .rm-hero-panel h1 { font-size: var(--rm-text-hero); margin-bottom: var(--rm-space-3); }
body .rm-hero .hero-sub { font-size: var(--rm-text-lg); color: var(--rm-ink-soft); }
@media (max-width: 760px) {
  body .section.rm-hero { min-height: 0; }
  body .row.rm-row.rm-hero-row { padding: 0 var(--rm-space-4); }
  body .row.rm-hero-row > .col.rm-hero-panel { flex-basis: 100%; margin: 42vw 0 var(--rm-space-6); }
  body .rm-hero-panel > .col-inner { padding: var(--rm-space-6) var(--rm-space-5); }
  body .rm-hero-panel .button.rm-btn { flex: 1 1 100%; }
}

/* Location doors (overlap the hero's foot) */
body .section.rm-doors-sec { position: relative; z-index: 2; margin-top: calc(-1 * var(--rm-space-8)); overflow: visible; }
body .row.rm-doors {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--rm-space-5);
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0 var(--rm-space-5);
}
body .row.rm-doors > .col.rm-door { flex: 0 0 auto; width: auto; }
body .rm-door > .col-inner {
  height: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--rm-space-1);
  background: var(--rm-paper);
  border: 1px solid var(--rm-line);
  border-top: 3px solid var(--rm-green);
  border-radius: var(--rm-radius);
  box-shadow: var(--rm-shadow);
  padding: var(--rm-space-4) var(--rm-space-5) var(--rm-space-3);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
body .rm-door > .col-inner:hover { transform: translateY(-4px); }
body .rm-door .rm-door-img { width: auto !important; margin: 0; }
body .rm-door .rm-door-img img {
  object-fit: contain;
  width: clamp(120px, 15vw, 180px);
  height: clamp(90px, 11.3vw, 134px);
}
body .rm-door.flagship .rm-door-img img { width: clamp(136px, 17vw, 200px); }
body .rm-door .col-inner { text-align: center; }
body .rm-door :is(.door-name, .door-est) { margin: 0; max-width: none; }
body .rm-door .door-name a {
  font-family: var(--rm-font-display);
  font-size: max(var(--rm-text-xl), 1.5rem);
  text-transform: uppercase;
  letter-spacing: 0.035em;
  color: var(--rm-gold);
  text-decoration: none;
}
/* The whole card is clickable, as in the original */
body .rm-door .door-name a::after { content: ""; position: absolute; inset: 0; }
body .rm-door .door-est {
  font-family: var(--rm-font-ui);
  font-size: var(--rm-text-xs);
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--rm-ink-soft);
  margin-top: var(--rm-space-1);
}
body .rm-door .col-inner > .door-est { margin-top: 0; } /* loose in the column: the card's 4px gap already applies */
@media (max-width: 640px) {
  body .section.rm-doors-sec { margin-top: calc(-1 * var(--rm-space-5)); }
  body .row.rm-doors { flex-direction: column; align-items: stretch; gap: var(--rm-space-3); padding: 0 var(--rm-space-4); }
  body .rm-door > .col-inner { flex-direction: row; justify-content: flex-start; gap: var(--rm-space-4); padding: var(--rm-space-2) var(--rm-space-4); }
  body .rm-door .rm-door-img { flex: none; }
  body .rm-door .rm-door-img img { width: 96px; height: 64px; }
  body .rm-door.flagship .rm-door-img img { height: 64px; } /* the original keeps the flagship illustration wider here */
  body .rm-door .col-inner > .text { display: flex; align-items: center; gap: var(--rm-space-4); }
  body .rm-door .col-inner { text-align: left; }
  body .rm-door .door-est { margin-top: 0; }
}

/* Our story */
body .rm-story-sec > .section-content { padding: var(--rm-space-12) 0 var(--rm-space-6); }
body .row.rm-story {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--rm-space-6) var(--rm-space-10);
  align-items: start;
}
body .rm-story h2 { margin-bottom: 0; }
body .rm-story p { font-size: var(--rm-text-lg); max-width: 62ch; }
body .rm-story p .rm-more { font-size: var(--rm-text-sm); }
@media (max-width: 860px) {
  body .rm-story-sec > .section-content { padding-top: var(--rm-space-10); }
  body .row.rm-story { grid-template-columns: 1fr; gap: var(--rm-space-4); }
}

/* Pillars */
body .rm-pillars-sec > .section-content { padding: var(--rm-space-8) 0 var(--rm-space-4); text-align: center; }
body .row.rm-pillars-head { margin-bottom: var(--rm-space-6); }
body .row.rm-pillars {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--rm-space-10);
  text-align: left;
}
body .row.rm-pillars > .col { border-top: 1px solid var(--rm-line); padding: var(--rm-space-5) 0 var(--rm-space-4); }
body .rm-pillars h3 { font-size: var(--rm-text-xl); margin-bottom: var(--rm-space-2); }
body .rm-pillars p { max-width: 52ch; margin: 0; }
@media (max-width: 760px) {
  body .row.rm-pillars { grid-template-columns: 1fr; }
}

/* Locations */
body .rm-locations-sec > .section-content { padding: var(--rm-space-10) 0; text-align: center; }
body .row.rm-locations-head { margin-bottom: var(--rm-space-8); }
body .rm-locations-head .locations-intro { margin: 0 auto; max-width: 62ch; font-size: var(--rm-text-lg); }
body .row.rm-loc-grid { display: grid; grid-template-columns: 1fr 1.12fr 1fr; gap: var(--rm-space-8); }
@media (max-width: 860px) {
  body .row.rm-loc-grid { grid-template-columns: 1fr; gap: var(--rm-space-10); }
}

/* Location card: image / text / [Reserve][Menu] / more-link.
   Row 2 absorbs spare height so the buttons line up across the three cards. */
body .rm-loc-card > .col-inner {
  height: 100%;
  display: grid;
  grid-template-columns: 1fr auto auto 1fr;
  grid-template-rows: auto 1fr auto auto;
  column-gap: var(--rm-space-3);
  row-gap: var(--rm-space-2);
  justify-items: center;
  text-align: center;
}
/* everything except the two buttons spans the card; the buttons share a row */
body .rm-loc-card > .col-inner > :not(.button) { grid-column: 1 / -1; }
body .rm-loc-card > .col-inner > a.button:nth-of-type(1) { grid-column: 2; margin-top: var(--rm-space-3); }
body .rm-loc-card > .col-inner > a.button:nth-of-type(2) { grid-column: 3; margin-top: var(--rm-space-3); }
/* with the copy in a Text element, pin rows so the buttons line up across cards */
body .rm-loc-card > .col-inner:has(> .text + a.button) > .img { grid-row: 1; }
body .rm-loc-card > .col-inner:has(> .text + a.button) > .text:has(+ a.button) { grid-row: 2; align-self: start; }
body .rm-loc-card > .col-inner:has(> .text + a.button) > a.button { grid-row: 3; }
body .rm-loc-card > .col-inner:has(> .text + a.button) > .text:last-child { grid-row: 4; }
body .rm-loc-card > .col-inner:not(:has(> .text + a.button)) { grid-template-rows: none; align-content: start; }

body .rm-loc-illo { width: auto !important; margin: 0; }
body .rm-loc-illo a { display: block; transition: transform 0.25s ease; }
body .rm-loc-illo a:hover { transform: translateY(-4px); }
body .rm-loc-illo img { aspect-ratio: 3 / 2; object-fit: contain; width: min(300px, 76vw); }
body .rm-loc-card.flagship .rm-loc-illo img { width: min(330px, 80vw); }
@media (min-width: 861px) {
  body .rm-loc-illo { display: grid; place-items: center; min-height: 220px; }
}
body .rm-loc-card .col-inner > .text:has(+ a.button) { display: flex; flex-direction: column; align-items: center; gap: var(--rm-space-2); }
body .rm-loc-card .col-inner > .text > *,
body .rm-loc-card .col-inner > :is(h3, p) { margin: 0; }
body .rm-loc-card .col-inner h3.accent-title { margin: var(--rm-space-2) 0 0; }
body .rm-loc-card .est {
  font-family: var(--rm-font-ui);
  font-size: var(--rm-text-xs);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rm-ink-soft);
  min-height: 1.3em;
}
body .rm-loc-card .col-inner p.blurb { font-size: var(--rm-text-base); color: var(--rm-ink); max-width: 36ch; margin-bottom: var(--rm-space-1); }
body .rm-loc-card .addr,
body .rm-loc-card .hours { font-size: var(--rm-text-sm); color: var(--rm-ink-soft); }
body .rm-loc-card .hours {
  font-family: var(--rm-font-ui);
  font-size: var(--rm-text-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
body .rm-loc-card .col-inner > .text:last-child p,
body .rm-loc-card .col-inner > p:last-child { margin: var(--rm-space-1) 0 0; }
body .rm-loc-card .col-inner > :last-child .rm-more,
body .rm-loc-card .col-inner > p:last-child .rm-more { display: inline; }

/* Brunch, lunch & dinner band */
body .section.rm-meals {
  background: var(--rm-white);
  border-top: 3px solid var(--rm-green);
  border-bottom: 1px solid var(--rm-line);
}
body .rm-meals > .section-content { padding: var(--rm-space-10) 0; text-align: center; }
body .rm-meals h2 { margin-bottom: var(--rm-space-4); }
body .rm-meals p { max-width: 62ch; font-size: var(--rm-text-lg); margin-left: auto; margin-right: auto; }
body .rm-meals p .rm-more { font-size: var(--rm-text-sm); }

/* Private events & catering tout (photo + green scrim) */
body .section.rm-tout { min-height: min(64vh, 560px); margin-top: var(--rm-space-10); }
body .rm-tout > .section-content { padding: var(--rm-space-8) var(--rm-space-6); }
body .row.rm-row.rm-tout-row { width: 100%; max-width: none; }
body .rm-tout-panel > .col-inner { --rm-tb-before: var(--rm-space-5); justify-content: center; text-align: center; }
body .rm-tout-panel h2 { color: var(--rm-paper); font-size: var(--rm-text-3xl); margin-bottom: var(--rm-space-2); }
body .rm-tout-panel p { color: var(--rm-paper); max-width: 54ch; margin-left: auto; margin-right: auto; }
body .button.rm-btn.rm-btn-alt { border-color: var(--rm-paper); color: var(--rm-paper); background: var(--rm-scrim-light); }
body .button.rm-btn.rm-btn-alt:hover { background: var(--rm-paper); border-color: var(--rm-paper); color: var(--rm-green); }

/* Community */
body .rm-community > .section-content { padding-top: var(--rm-space-10); text-align: center; }
body .rm-community h2 { margin-bottom: var(--rm-space-4); }
body .rm-community p { max-width: 62ch; font-size: var(--rm-text-lg); margin: 0 auto; }

/* Closing reserve band */
body .section.rm-band {
  background: var(--rm-white);
  border-top: 3px solid var(--rm-green);
  border-bottom: 1px solid var(--rm-line);
  margin-top: var(--rm-space-12);
}
body .rm-band > .section-content { padding: var(--rm-space-12) 0; text-align: center; }
body .rm-band-col > .col-inner { --rm-tb-before: var(--rm-space-6); --rm-tb-after: var(--rm-space-4); justify-content: center; }
body .rm-band .poster {
  font-family: var(--rm-font-display);
  font-size: var(--rm-text-poster);
  line-height: 0.95;
  letter-spacing: 0.035em;
  text-transform: uppercase;
  color: var(--rm-green);
  text-wrap: balance;
  max-width: none;
  margin: 0 0 var(--rm-space-3);
}
body .rm-band .sub { font-size: var(--rm-text-lg); color: var(--rm-ink-soft); max-width: 52ch; margin: 0 auto; }
body .rm-band .tertiary { font-size: var(--rm-text-sm); font-weight: 600; margin: 0 auto; }
@media (max-width: 560px) {
  body .rm-band .button.rm-btn.rm-btn-lg { flex: 1 1 100%; padding-left: var(--rm-space-5); padding-right: var(--rm-space-5); }
}

/* 7. Header (Flatsome Header Builder) --------------------------------------- */
#header .header-main {
  height: calc(var(--rm-header-h) - 1px);
  border-bottom: 1px solid var(--rm-line);
}
#header .header-bg-color { background-color: var(--rm-paper-glass); }
#header .header-bg-container { -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
/* Edge-to-edge bar like the original, not the 1104px container */
#header .header-main .header-inner {
  max-width: none;
  padding-left: max(clamp(1rem, 2.5vw, 2.5rem), env(safe-area-inset-left, 0px));
  padding-right: max(clamp(1rem, 2.5vw, 2.5rem), env(safe-area-inset-right, 0px));
}
#header #logo { width: 300px; }
#header #logo img { max-height: none; width: 100%; height: auto; }

#header .header-nav-main > li { margin: 0 12px; }
#header .header-nav-main > li:last-child { margin-right: 0; }
#header .header-nav-main > li > a {
  font-family: var(--rm-font-ui);
  font-size: var(--rm-text-sm);
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.65;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--rm-green);
  padding: 0.4em 0;
  border-bottom: 2px solid transparent;
  transition: border-color 0.18s ease;
}
#header .header-nav-main > li > a::before { display: none; } /* Flatsome's own nav-line effects */
#header .header-nav-main > li > a:hover,
#header .header-nav-main > li.active > a,
#header .header-nav-main > li.current-menu-item > a,
#header .header-nav-main > li.current-menu-ancestor > a { color: var(--rm-green); border-bottom-color: var(--rm-green); }
#header .header-nav-main > li > a i { font-size: 0.8em; margin-left: 0.35em; opacity: 0.9; }

/* Dropdowns: white panel, centred under the item */
#header .nav-dropdown {
  background: var(--rm-white);
  border: 1px solid var(--rm-line);
  border-radius: 0 0 var(--rm-radius) var(--rm-radius);
  box-shadow: var(--rm-shadow);
  min-width: 11rem;
  padding: var(--rm-space-2) 0;
}
#header .nav > li:hover > .nav-dropdown,
#header .nav > li.current-dropdown > .nav-dropdown { left: 50%; transform: translateX(-50%); }
#header .nav-dropdown-has-arrow li.has-dropdown::before,
#header .nav-dropdown-has-arrow li.has-dropdown::after { display: none; }
#header .nav-dropdown > li > a {
  display: block;
  margin: 0;
  padding: 0.55em 1.2em;
  border-bottom: 0;
  font-family: var(--rm-font-ui);
  font-size: var(--rm-text-sm);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--rm-green);
}
#header .nav-dropdown > li > a:hover { background: var(--rm-green-wash); color: var(--rm-green); }

/* "Reserve a Table": Flatsome header button, or a menu item linking to /reserve/ */
#header .header-button .button,
#header .header-nav-main > li > a[href*="/reserve"] {
  font-family: var(--rm-font-ui);
  font-size: var(--rm-text-sm);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.65;
  text-transform: uppercase;
  padding: 0.8em 1.9em;
  min-height: 0;
  margin: 0;
  border: 1.5px solid var(--rm-green);
  border-radius: var(--rm-radius);
  background: var(--rm-green);
  color: var(--rm-white);
  box-shadow: none;
  transition: background-color 0.18s ease, transform 0.18s ease;
}
#header .header-button .button span { line-height: inherit; }
#header .header-button .button:hover,
#header .header-nav-main > li > a[href*="/reserve"]:hover {
  background: var(--rm-green-deep);
  border-color: var(--rm-green-deep);
  color: var(--rm-white);
  box-shadow: none;
  transform: translateY(-1px);
}

@media (min-width: 1440px) and (max-width: 1520px) {
  #header .header-nav-main > li { margin: 0 10px; }
}
@media (min-width: 1181px) and (max-width: 1439px) {
  #header .header-nav-main > li { margin: 0 8px; }
  #header .header-nav-main > li > a:not([href*="/reserve"]) { font-size: var(--rm-text-xs); }
  #header #logo { width: 260px; }
}
@media (max-width: 1180px) {
  #header #logo { width: 230px; }
}
@media (max-width: 400px) {
  #header #logo { width: 200px; }
}
/* The original switches to the mobile menu at 1180px; Flatsome at 849px.
   Between 850 and 1180px, show Flatsome's mobile header instead of the
   desktop nav so both sites break at the same width. */
@media (min-width: 850px) and (max-width: 1180px) {
  #header .header-main .hide-for-medium { display: none !important; }
  #header .header-main .show-for-medium { display: flex !important; }
}
/* Mobile off-canvas menu */
.off-canvas .nav-vertical > li > a,
.mobile-sidebar .nav > li > a {
  font-family: var(--rm-font-ui);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--rm-green);
}

/* 8. Footer (UX Block "rm-footer") ------------------------------------------- */
.footer-wrapper:has(.rm-footer) { background: transparent; }
.footer-wrapper:has(.rm-footer) .absolute-footer { display: none; }
body .section.rm-footer {
  background: var(--rm-green);
  color: var(--rm-paper);
  margin-top: var(--rm-space-12);
}
body .rm-footer > .section-content {
  padding: var(--rm-space-10) 0 calc(var(--rm-space-8) + var(--rm-bar-h) + var(--rm-safe-bottom));
}
@media (min-width: 1181px) {
  body .rm-footer > .section-content { padding-bottom: calc(var(--rm-space-8) + var(--rm-safe-bottom)); }
}
body .row.rm-foot-top { margin-bottom: var(--rm-space-8); }
body .rm-foot-logo { width: auto !important; margin: 0; line-height: 1.65; }
body .rm-foot-logo > a { display: inline-block; } /* sits on the text baseline, as in the original */
body .rm-foot-logo img { width: 220px; height: auto; }

body .row.rm-foot-locs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--rm-space-8);
  padding-bottom: var(--rm-space-8);
  border-bottom: 1px solid var(--rm-paper-tint-faint);
}
body .rm-footer h2.loc-name {
  font-family: var(--rm-font-display);
  font-size: var(--rm-text-2xl);
  color: var(--rm-paper);
  margin-bottom: var(--rm-space-3);
}
body .rm-footer h2.loc-name::after {
  content: "";
  display: block;
  width: 44px;
  height: 2px;
  background: var(--rm-paper-tint);
  margin-top: var(--rm-space-2);
}
body .rm-foot-locs p { margin-bottom: var(--rm-space-2); font-size: var(--rm-text-sm); }
body .rm-footer .rm-foot-locs a { color: var(--rm-paper); }
body .rm-footer .rm-foot-locs a:hover { text-decoration-thickness: 2px; }
body .rm-footer .rm-foot-locs p.loc-actions { margin-bottom: var(--rm-space-2); }
body .rm-foot-locs .loc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rm-space-4); margin-top: var(--rm-space-3); }
body .rm-footer a.btn.btn-footer,
body .rm-footer button.btn.btn-footer {
  background: var(--rm-paper);
  border-color: var(--rm-paper);
  color: var(--rm-green);
  padding: 0.6em 1.3em;
}
body .rm-footer a.btn.btn-footer:hover,
body .rm-footer button.btn.btn-footer:hover {
  background: var(--rm-paper-tint-strong);
  border-color: var(--rm-paper-tint-strong);
  color: var(--rm-green);
  transform: translateY(-1px);
}
body .rm-footer .link-plain {
  font-family: var(--rm-font-ui);
  font-size: var(--rm-text-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
body .rm-footer .tel-inline { display: none; }

body .row.rm-foot-mid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--rm-space-8);
  padding: var(--rm-space-6) 0;
  border-bottom: 1px solid var(--rm-paper-tint-faint);
}
body .row.rm-foot-mid > .col,
body .row.rm-foot-base > .col { flex: 0 1 auto; width: auto; }
body .row.rm-foot-mid > .col.rm-foot-newscol { flex: 1 1 20rem; max-width: 26rem; }
body .rm-footer .foot-nav {
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: var(--rm-space-2) var(--rm-space-6);
  margin: 0;
  max-width: none;
}
body .rm-footer .foot-nav a {
  font-family: var(--rm-font-ui);
  font-size: var(--rm-text-xs);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--rm-paper);
}
body .rm-footer .foot-nav a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
body .rm-footer h2.news-heading {
  font-family: var(--rm-font-display);
  font-size: var(--rm-text-xl);
  color: var(--rm-paper);
  margin-bottom: var(--rm-space-1);
}
body .rm-foot-newscol .col-inner > .text { margin-bottom: var(--rm-space-3); }
body .rm-footer .news-sub { font-size: var(--rm-text-xs); color: var(--rm-paper); margin-bottom: var(--rm-space-3); }
body .rm-newsletter-form { margin: 0; }
body .rm-newsletter-form .news-row { display: flex; gap: var(--rm-space-2); }
body .rm-newsletter-form input[type="email"] {
  flex: 0 1 auto;
  width: 100%;
  height: auto;
  min-height: 44px;
  margin: 0;
  padding: 0.65em 0.9em;
  font-family: var(--rm-font-ui);
  font-size: max(var(--rm-text-base), 1rem);
  color: var(--rm-ink);
  background: var(--rm-white);
  border: 1px solid var(--rm-paper-tint);
  border-radius: var(--rm-radius);
  box-shadow: none;
}
body .rm-newsletter-form input[type="email"]:focus-visible { outline: 2px solid var(--rm-paper); outline-offset: 2px; }
body .rm-newsletter-form button.btn.btn-footer { min-height: 44px; line-height: normal; }
body .rm-newsletter-form .rm-hp { position: absolute; left: -9999px; width: 1px; height: 1px; }
body .rm-newsletter-msg { font-family: var(--rm-font-ui); font-size: var(--rm-text-sm); font-weight: 700; margin: var(--rm-space-2) 0 0; }

body .row.rm-foot-base {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--rm-space-5);
  padding-top: var(--rm-space-5);
}
body .rm-footer .social { display: flex; gap: var(--rm-space-4); margin: 0; }
body .rm-footer .social a {
  font-family: var(--rm-font-ui);
  font-size: var(--rm-text-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rm-paper);
}
body .rm-footer .fine { font-size: var(--rm-text-xs); color: var(--rm-paper); margin: 0; }
body .rm-footer .fine a { color: var(--rm-paper); }

@media (max-width: 760px) {
  body .section.rm-footer { margin-top: var(--rm-space-10); }
  body .rm-footer > .section-content { padding-top: var(--rm-space-8); padding-bottom: calc(var(--rm-space-5) + var(--rm-bar-h) + var(--rm-safe-bottom)); }
  body .row.rm-foot-top { margin-bottom: var(--rm-space-5); }
  body .rm-foot-logo img { width: 160px; }
  body .row.rm-foot-locs { grid-template-columns: 1fr; gap: var(--rm-space-4); padding-bottom: var(--rm-space-4); }
  body .rm-footer h2.loc-name { font-size: var(--rm-text-xl); margin-bottom: var(--rm-space-1); }
  body .rm-footer h2.loc-name::after { display: none; }
  body .rm-foot-locs p,
  body .rm-footer .rm-foot-locs p.loc-actions { margin-bottom: 0; }
  body .rm-foot-locs .loc-address br,
  body .rm-foot-locs .loc-phone,
  body .rm-foot-locs .loc-actions .btn-footer { display: none; }
  body .rm-footer .tel-inline { display: inline-flex; }
  body .rm-foot-locs .loc-actions { gap: 0 var(--rm-space-5); margin-top: 0; }
  body .rm-foot-locs .loc-actions a { display: inline-flex; align-items: center; min-height: 44px; }
  body .row.rm-foot-mid { gap: var(--rm-space-4); padding: var(--rm-space-4) 0; }
  body .row.rm-foot-mid > .col { width: 100%; }
  body .rm-footer .foot-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--rm-space-5); width: 100%; }
  body .rm-footer .foot-nav a { display: flex; align-items: center; min-height: 36px; }
  body .row.rm-foot-base { padding-top: var(--rm-space-3); }
}

/* 9. Mobile action bar ---------------------------------------------------- */
.rm-sticky-bar { display: none; }
@media (max-width: 1180px) {
  .rm-sticky-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 60;
    display: flex;
    align-items: stretch;
    gap: var(--rm-space-3);
    background: var(--rm-green);
    border-top: 1px solid var(--rm-paper-tint);
    padding-top: var(--rm-space-2);
    padding-bottom: calc(var(--rm-space-2) + var(--rm-safe-bottom));
    padding-left: max(var(--rm-space-3), env(safe-area-inset-left, 0px), calc((100% - 34rem) / 2));
    padding-right: max(var(--rm-space-3), env(safe-area-inset-right, 0px), calc((100% - 34rem) / 2));
  }
  /* Flatsome's block wrapper, if any, must not break the flex row */
  .rm-sticky-bar > :not(a) { display: contents; }
  body .rm-sticky-bar .button.rm-btn.rm-act {
    flex: 1 1 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(var(--rm-bar-h) - 1px - 2 * var(--rm-space-2));
    padding: 0 var(--rm-space-3);
    line-height: 1;
  }
  body .rm-sticky-bar .button.rm-btn.rm-act-reserve { background: var(--rm-paper); border-color: var(--rm-paper); color: var(--rm-green); flex-grow: 1.6; }
  body .rm-sticky-bar .button.rm-btn.rm-act-reserve:hover { background: var(--rm-paper-tint-strong); border-color: var(--rm-paper-tint-strong); color: var(--rm-green); }
  body .rm-sticky-bar .button.rm-btn.rm-act-order { background: transparent; border-color: var(--rm-paper); color: var(--rm-paper); }
  body .rm-sticky-bar .button.rm-btn.rm-act-order:hover { background: var(--rm-paper); color: var(--rm-green); }
  /* Keep Flatsome's back-to-top button above the bar */
  .back-to-top { bottom: calc(var(--rm-bar-h) + var(--rm-safe-bottom) + 12px) !important; }
}
@media (min-width: 641px) and (max-width: 1180px) {
  /* "Reserve" reads "Reserve a Table" where there is room, as in the original */
  body .rm-sticky-bar .button.rm-act-reserve span::after { content: " a Table"; }
}
@media print {
  .rm-sticky-bar { display: none; }
}


/* ======================= Part 2: inner pages ======================= */
/* ==========================================================================
   Rosemary's — inner pages
   Each page's rules are scoped with its body class (added by the plugin,
   e.g. .rm-page-about) and :where(#main), so they never touch the header
   or footer and add no ID weight.
   Rules are the original site's, adapted where Flatsome adds wrappers:
   - a card's layout rules sit on its .col-inner
   - text blocks inside a card space their children like the original card
   - nothing depends on a Text element being present or keeping its class,
     so re-saving a page in UX Builder cannot break a layout
   ========================================================================== */

/* Shared page primitives ------------------------------------------------- */
body .section.rm-psec { display: block; min-height: 0; }
body .section.rm-psec > .section-content { width: 100%; }
body .row.rm-row.narrow { max-width: calc(46rem - 2 * var(--rm-space-5)); }
body .row.rm-full { width: 100%; max-width: none; margin: 0; padding: 0; }
body .row.rm-full > .col { padding: 0; max-width: none; flex: 1 1 100%; }
body .rm-psec .col-inner > .img { width: auto !important; margin: 0; }
/* Text inside a card column behaves like the original card's children, with or
   without its class (and loose content already does, being direct children) */
body .rm-stack,
body :is(.hub-card, .res-card, .card, .lp-card) > .col-inner > .text { display: flex; flex-direction: column; align-items: inherit; gap: inherit; align-self: stretch; }
/* Inline content pre-wrapped for WordPress's auto-paragraphs; no box of its own */
body p.rm-a { display: contents; }
body .sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); border: 0;
}
body .hp, body .rm-hp { position: absolute; left: -9999px; width: 1px; height: 1px; }
body .rm-form-msg { font-family: var(--rm-font-ui); font-size: var(--rm-text-sm); font-weight: 700; color: var(--rm-gold); margin: var(--rm-space-3) 0 0; }

/* Reserve band: optional "Booking for eight or more?" line */
body .rm-band .group-line { font-size: var(--rm-text-sm); color: var(--rm-ink-soft); max-width: 46ch; margin: 0 auto; }

/* Party-size router (Large Parties, location pages) */
body .party-panel {
  width: 100%;
  max-width: 34rem;
  margin: var(--rm-space-5) auto 0;
  background: var(--rm-white);
  border: 1px solid var(--rm-line);
  border-top: 3px solid var(--rm-green);
  border-radius: var(--rm-radius);
  padding: var(--rm-space-4) var(--rm-space-5) var(--rm-space-3);
  text-align: left;
  container-type: inline-size;
}
body .party-panel .ps-head {
  font-family: var(--rm-font-ui); font-size: var(--rm-text-xs); font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--rm-ink);
  margin: 0 0 var(--rm-space-2);
}
body .party-panel .ps-tiers { margin: 0; padding: 0; list-style: none; }
body .party-panel .ps-tiers li {
  display: grid; grid-template-columns: 7.5rem 1fr; align-items: baseline;
  gap: var(--rm-space-1) var(--rm-space-4); padding: var(--rm-space-3) 0;
  border-top: 1px solid var(--rm-line); margin: 0;
}
body .party-panel .ps-range {
  font-family: var(--rm-font-ui); font-size: var(--rm-text-xs); font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--rm-green);
  font-variant-numeric: tabular-nums;
}
body .party-panel .ps-link {
  display: inline-block; font-family: var(--rm-font-ui); font-size: var(--rm-text-sm);
  font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; text-decoration: none;
}
body .party-panel .ps-link::after { content: " \2192"; }
body .party-panel .ps-link:hover { text-decoration: underline; text-underline-offset: 0.2em; }
body .party-panel .ps-note { display: block; font-size: var(--rm-text-sm); color: var(--rm-ink-soft); }
body .party-panel .ps-alt { display: block; font-size: var(--rm-text-sm); margin-top: var(--rm-space-1); }
@container (max-width: 26rem) { body .party-panel .ps-tiers li { grid-template-columns: 1fr; gap: var(--rm-space-1); } }
@media (max-width: 480px) { body .party-panel .ps-tiers li { grid-template-columns: 1fr; gap: var(--rm-space-1); } }
body .party-line { padding-top: var(--rm-space-3); max-width: 46ch; font-size: var(--rm-text-sm); color: var(--rm-ink-soft); margin: auto auto 0; }

/* Location-card pieces reused on inner pages */
body :where(.rm-psec) .est {
  font-family: var(--rm-font-ui); font-size: var(--rm-text-xs); font-weight: 700;
  line-height: 1.3; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--rm-ink-soft); min-height: 1.3em; margin: 0;
}

/* About ------------------------------------------------------------------- */
.rm-page-about :where(#main) h1 { text-align: center; padding-top: var(--rm-space-8); margin-bottom: 0; }
.rm-page-about :where(#main) .split {
  display: grid; grid-template-columns: 1fr 1fr; align-items: center;
  gap: var(--rm-space-8); margin-top: var(--rm-space-8); margin-bottom: var(--rm-space-8);
}
.rm-page-about :where(#main) .split.flip > .figure { order: 2; }
@media (max-width: 820px) {
  .rm-page-about :where(#main) .split { grid-template-columns: 1fr; gap: var(--rm-space-5); }
  .rm-page-about :where(#main) .split.flip > .figure { order: 0; }
}
.rm-page-about :where(#main) .figure img {
  aspect-ratio: 4 / 3; object-fit: cover; width: 100%;
  border-radius: var(--rm-radius); box-shadow: var(--rm-shadow);
}
.rm-page-about :where(#main) .copy p { font-size: var(--rm-text-lg); }
.rm-page-about :where(#main) .copy .sig { font-family: var(--rm-font-display); font-size: var(--rm-text-2xl); color: var(--rm-green); line-height: 1.2; }
.rm-page-about :where(#main) .copy .sig span {
  font-family: var(--rm-font-body); font-size: var(--rm-text-sm); color: var(--rm-ink-soft);
  letter-spacing: 0.06em; text-transform: uppercase;
}
.rm-page-about :where(#main) .section.partners {
  background: var(--rm-white); border-top: 3px solid var(--rm-green); border-bottom: 1px solid var(--rm-line);
  text-align: center; margin-top: var(--rm-space-10);
}
.rm-page-about :where(#main) .partners > .section-content { padding: var(--rm-space-10) 0; }
.rm-page-about :where(#main) .partners h2 { margin-bottom: var(--rm-space-4); }
.rm-page-about :where(#main) .partners p { max-width: 66ch; margin-left: auto; margin-right: auto; }
.rm-page-about :where(#main) .logos {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: var(--rm-space-8); margin: var(--rm-space-8) 0 0; padding: 0; list-style: none;
}
.rm-page-about :where(#main) .logos li { margin: 0; }
.rm-page-about :where(#main) .logos img { object-fit: contain; width: auto; max-width: 220px; max-height: 72px; }

/* Menus hub ---------------------------------------------------------------- */
.rm-page-menus :where(#main) .section.rm-psec:first-of-type > .section-content > .row:first-child > .col > .col-inner { text-align: center; padding: var(--rm-space-8) 0; }
.rm-page-menus :where(#main) .section.rm-psec:first-of-type > .section-content > .row:first-child > .col > .col-inner h1 { margin-bottom: var(--rm-space-3); }
.rm-page-menus :where(#main) .section.rm-psec:first-of-type > .section-content > .row:first-child > .col > .col-inner .sub { color: var(--rm-ink-soft); max-width: 58ch; font-size: var(--rm-text-lg); margin: 0 auto; }
.rm-page-menus :where(#main) .hub-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--rm-space-8); }
@media (max-width: 860px) { .rm-page-menus :where(#main) .hub-grid { grid-template-columns: 1fr; gap: var(--rm-space-10); } }
.rm-page-menus :where(#main) .hub-card > .col-inner { display: flex; flex-direction: column; align-items: center; gap: var(--rm-space-2); text-align: center; }
.rm-page-menus :where(#main) .hub-card .illo a { display: block; }
.rm-page-menus :where(#main) .hub-card .illo img { aspect-ratio: 3 / 2; object-fit: contain; width: min(300px, 76vw); transition: transform 0.25s; }
.rm-page-menus :where(#main) .hub-card .illo:hover img { transform: translateY(-4px); }
.rm-page-menus :where(#main) .hub-card h2 { font-size: var(--rm-text-2xl); margin: var(--rm-space-2) 0 0; }
.rm-page-menus :where(#main) .addr { font-size: var(--rm-text-sm); color: var(--rm-ink-soft); margin: 0 0 var(--rm-space-3); }
.rm-page-menus :where(#main) .courses {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 0 var(--rm-space-2);
  max-width: 22rem; margin: var(--rm-space-2) 0 0; padding: 0; list-style: none;
}
.rm-page-menus :where(#main) .courses li { margin: 0; }
.rm-page-menus :where(#main) .courses a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 0.5em;
  font-family: var(--rm-font-ui); font-size: var(--rm-text-xs); font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none;
}
.rm-page-menus :where(#main) .courses a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.rm-page-menus :where(#main) .hub-card .more { font-size: var(--rm-text-sm); font-weight: 600; margin-top: var(--rm-space-1); }
.rm-page-menus :where(#main) .hub-note { text-align: center; max-width: 60ch; margin: var(--rm-space-10) auto 0; color: var(--rm-ink-soft); }

/* Reserve hub -------------------------------------------------------------- */
.rm-page-reserve :where(#main) .section.rm-psec:first-of-type > .section-content > .row:first-child > .col > .col-inner { text-align: center; padding: var(--rm-space-8) 0 var(--rm-space-6); }
.rm-page-reserve :where(#main) .section.rm-psec:first-of-type > .section-content > .row:first-child > .col > .col-inner p { max-width: 56ch; font-size: var(--rm-text-lg); margin: 0 auto; }
.rm-page-reserve :where(#main) .res-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--rm-space-6); }
@media (max-width: 900px) { .rm-page-reserve :where(#main) .res-grid { grid-template-columns: minmax(0, 1fr); } }
.rm-page-reserve :where(#main) .res-card > .col-inner {
  height: 100%; display: flex; flex-direction: column; align-items: center; text-align: center;
  background: var(--rm-white); border: 1px solid var(--rm-line); border-radius: var(--rm-radius); padding: var(--rm-space-6);
}
.rm-page-reserve :where(#main) .res-card .col-inner > .text:last-child { flex: 1 0 auto; }
.rm-page-reserve :where(#main) .res-card img { aspect-ratio: 3 / 2; object-fit: contain; width: min(220px, 60vw); margin-bottom: var(--rm-space-2); }
.rm-page-reserve :where(#main) .res-card h2 { font-size: var(--rm-text-2xl); margin-bottom: var(--rm-space-1); }
.rm-page-reserve :where(#main) .est { margin: 0 0 var(--rm-space-1); }
.rm-page-reserve :where(#main) .addr { font-size: var(--rm-text-sm); color: var(--rm-ink-soft); margin-bottom: var(--rm-space-3); }
.rm-page-reserve :where(#main) .hours {
  width: 100%; margin-bottom: var(--rm-space-5); text-align: left;
  border-top: 1px solid var(--rm-line); border-bottom: 1px solid var(--rm-line);
}
.rm-page-reserve :where(#main) .hours summary {
  display: flex; justify-content: space-between; align-items: center; cursor: pointer; list-style: none;
  padding: 0.75em 0.1em; font-family: var(--rm-font-ui); font-size: var(--rm-text-xs); font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--rm-green);
}
.rm-page-reserve :where(#main) .hours summary::-webkit-details-marker { display: none; }
.rm-page-reserve :where(#main) .hours summary::after {
  content: ""; width: 0.5em; height: 0.5em; margin: 0 0.25em 0.2em 0;
  border-right: 1.5px solid; border-bottom: 1.5px solid; transform: rotate(45deg); transition: transform 0.18s;
}
.rm-page-reserve :where(#main) .hours[open] summary::after { margin-bottom: -0.2em; transform: rotate(-135deg); }
.rm-page-reserve :where(#main) .hours summary:hover { color: var(--rm-green-deep); }
.rm-page-reserve :where(#main) .hours dl { margin: 0; padding: 0 0 var(--rm-space-2); }
.rm-page-reserve :where(#main) .hrs-row {
  display: grid; grid-template-columns: 6.5rem 1fr; gap: var(--rm-space-2);
  padding: var(--rm-space-1) 0; border-top: 1px solid var(--rm-line);
}
.rm-page-reserve :where(#main) .hrs-row dt { font-weight: 700; font-size: var(--rm-text-xs); text-transform: uppercase; letter-spacing: 0.04em; color: var(--rm-green); }
.rm-page-reserve :where(#main) .hrs-row dd { font-size: var(--rm-text-xs); margin: 0; }
.rm-page-reserve :where(#main) .res-card .button.rm-btn { white-space: normal; width: 100%; }
.rm-page-reserve :where(#main) .alt-line { font-size: var(--rm-text-sm); margin: var(--rm-space-3) 0 0; text-wrap: balance; }
.rm-page-reserve :where(#main) .section.more { text-align: center; }
.rm-page-reserve :where(#main) .more > .section-content { padding-top: var(--rm-space-10); }
.rm-page-reserve :where(#main) .more h2 { margin-bottom: var(--rm-space-5); }
.rm-page-reserve :where(#main) .more-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--rm-space-5); }
@media (max-width: 760px) { .rm-page-reserve :where(#main) .more-grid { grid-template-columns: 1fr; } }
.rm-page-reserve :where(#main) .more-grid .text,
.rm-page-reserve :where(#main) .more-grid .col-inner { height: 100%; }
.rm-page-reserve :where(#main) .more-card {
  position: relative; display: block; height: 100%; padding: var(--rm-space-5); background: var(--rm-white);
  border: 1px solid var(--rm-line); border-radius: var(--rm-radius); text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s;
}
.rm-page-reserve :where(#main) .more-card:hover { box-shadow: var(--rm-shadow); transform: translateY(-3px); }
.rm-page-reserve :where(#main) .more-card h3 { font-size: var(--rm-text-xl); margin-bottom: var(--rm-space-1); }
.rm-page-reserve :where(#main) .more-card h3 a { color: inherit; text-decoration: none; }
.rm-page-reserve :where(#main) .more-card h3 a::after { content: ""; position: absolute; inset: 0; } /* whole card clickable */
.rm-page-reserve :where(#main) .more-card p { font-size: var(--rm-text-sm); color: var(--rm-ink-soft); margin: 0; }

/* Gift cards ---------------------------------------------------------------- */
.rm-page-gift-cards :where(#main) h1 { text-align: center; padding-top: var(--rm-space-8); }
.rm-page-gift-cards :where(#main) .sub { text-align: center; color: var(--rm-ink-soft); max-width: 52ch; margin: 0 auto var(--rm-space-8); }
.rm-page-gift-cards :where(#main) .cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--rm-space-6); }
@media (max-width: 860px) { .rm-page-gift-cards :where(#main) .cards { grid-template-columns: 1fr; } }
.rm-page-gift-cards :where(#main) .card > .col-inner {
  display: flex; flex-direction: column; align-items: center; gap: var(--rm-space-3); text-align: center;
  background: var(--rm-white); border: 1px solid var(--rm-line); border-radius: var(--rm-radius); padding: var(--rm-space-6);
}
.rm-page-gift-cards :where(#main) .card img { aspect-ratio: 3 / 2; object-fit: contain; width: min(260px, 60vw); }
.rm-page-gift-cards :where(#main) .card h2 { font-size: var(--rm-text-2xl); margin: 0; }
.rm-page-gift-cards :where(#main) .est { margin: 0 0 var(--rm-space-3); }

/* Press --------------------------------------------------------------------- */
.rm-page-press :where(#main) h1 { text-align: center; padding-top: var(--rm-space-8); }
.rm-page-press :where(#main) .sub { text-align: center; color: var(--rm-ink-soft); margin-bottom: var(--rm-space-8); }
.rm-page-press :where(#main) .press-list { margin: 0; padding: 0; list-style: none; }
.rm-page-press :where(#main) .press-list li { border-bottom: 1px solid var(--rm-line); margin: 0; }
.rm-page-press :where(#main) .press-list a {
  display: grid; grid-template-columns: 1fr auto; grid-template-areas: "outlet year" "title title";
  gap: 0 var(--rm-space-4); padding: var(--rm-space-4) var(--rm-space-2); text-decoration: none;
  transition: background-color 0.15s;
}
.rm-page-press :where(#main) .press-list a:hover { background: var(--rm-green-wash); }
.rm-page-press :where(#main) .outlet { grid-area: outlet; font-family: var(--rm-font-display); font-size: var(--rm-text-xl); color: var(--rm-green); }
.rm-page-press :where(#main) .title { grid-area: title; color: var(--rm-ink); font-size: var(--rm-text-base); margin-top: var(--rm-space-1); }
.rm-page-press :where(#main) .year { grid-area: year; align-self: center; font-size: var(--rm-text-xs); color: var(--rm-ink-soft); font-variant-numeric: tabular-nums; }

/* Accessibility --------------------------------------------------------------- */
.rm-page-accessibility :where(#main) .rm-row.narrow { padding-top: var(--rm-space-8); padding-bottom: var(--rm-space-8); }
.rm-page-accessibility :where(#main) h1 { text-align: center; }
.rm-page-accessibility :where(#main) ul { padding-left: 1.2em; margin: 0 0 var(--rm-space-4); }
.rm-page-accessibility :where(#main) li { margin-bottom: var(--rm-space-2); }

/* Contact --------------------------------------------------------------------- */
.rm-page-contact :where(#main) h1 { text-align: center; padding-top: var(--rm-space-8); }
.rm-page-contact :where(#main) .sub { text-align: center; color: var(--rm-ink-soft); }
.rm-page-contact :where(#main) .quick {
  display: flex; flex-wrap: wrap; justify-content: center; gap: var(--rm-space-2) var(--rm-space-6);
  margin: var(--rm-space-4) 0 var(--rm-space-8); padding: 0; list-style: none; font-size: var(--rm-text-sm);
}
.rm-page-contact :where(#main) .quick li { margin: 0; }

/* Contact + Email sign-up forms */
:is(.rm-page-contact, .rm-page-email-sign-up) :where(#main) :is(.rm-contact-form, .rm-signup-form) {
  background: var(--rm-white); border: 1px solid var(--rm-line); border-radius: var(--rm-radius);
  padding: var(--rm-space-6); margin: 0;
}
:is(.rm-page-contact, .rm-page-email-sign-up) :where(#main) form .grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--rm-space-4); margin-bottom: var(--rm-space-4);
}
@media (max-width: 640px) { .rm-page-contact :where(#main) form .grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .rm-page-email-sign-up :where(#main) form .grid { grid-template-columns: 1fr; } }
:is(.rm-page-contact, .rm-page-email-sign-up) :where(#main) form label {
  display: block; margin: 0 0 var(--rm-space-1); font-family: var(--rm-font-ui);
  font-size: var(--rm-text-xs); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rm-ink);
}
:is(.rm-page-contact, .rm-page-email-sign-up) :where(#main) form :is(input:not([type="hidden"]):not(.rm-hp), select, textarea) {
  display: block; width: 100%; max-width: none; height: auto; min-height: 0; margin: 0;
  padding: 0.65em 0.9em; font-family: var(--rm-font-ui); font-size: max(var(--rm-text-base), 1rem); line-height: normal;
  color: var(--rm-ink); background: var(--rm-white); border: 1px solid var(--rm-line-strong);
  border-radius: var(--rm-radius); box-shadow: none; caret-color: var(--rm-green);
}
:is(.rm-page-contact, .rm-page-email-sign-up) :where(#main) form select { -webkit-appearance: auto; appearance: auto; background-image: none; }
:is(.rm-page-contact, .rm-page-email-sign-up) :where(#main) form :is(input, select, textarea):focus {
  outline: 2px solid var(--rm-green); outline-offset: 1px; border-color: var(--rm-green);
}
.rm-page-contact :where(#main) form .opt { color: var(--rm-ink-soft); font-weight: 400; }
body.rm-page-contact :where(#main) form textarea#c-message { display: inline-block; vertical-align: baseline; margin-bottom: var(--rm-space-5); resize: vertical; }
body.rm-page-email-sign-up :where(#main) form input#n-email { display: inline-block; margin-bottom: var(--rm-space-5); }
:is(.rm-page-contact, .rm-page-email-sign-up) :where(#main) form button.btn { line-height: normal; }

/* Email sign-up ------------------------------------------------------------------ */
body.rm-page-email-sign-up :where(#main) .row.rm-row.narrow { max-width: calc(34rem - 2 * var(--rm-space-5)); }
.rm-page-email-sign-up :where(#main) h1 { text-align: center; padding-top: var(--rm-space-8); }
.rm-page-email-sign-up :where(#main) .sub { text-align: center; color: var(--rm-ink-soft); margin-bottom: var(--rm-space-6); }

/* Thank-you pages ---------------------------------------------------------------- */
:is(.rm-page-contact-thanks, .rm-page-email-sign-up-thanks) :where(#main) .rm-row:is(.thanks, .thanks-ctas) {
  max-width: calc(46rem - 2 * var(--rm-space-5)); text-align: center;
}
:is(.rm-page-contact-thanks, .rm-page-email-sign-up-thanks) :where(#main) .rm-row.thanks { padding-top: var(--rm-space-12); }
:is(.rm-page-contact-thanks, .rm-page-email-sign-up-thanks) :where(#main) .rm-row.thanks :is(.text, .col-inner) > :last-child { margin-bottom: 0; }
:is(.rm-page-contact-thanks, .rm-page-email-sign-up-thanks) :where(#main) .rm-row.thanks-ctas { margin-top: var(--rm-space-6); padding-bottom: var(--rm-space-12); }
/* The original's button row is a paragraph (70ch wide), so the buttons centre on 70ch */
body:is(.rm-page-contact-thanks, .rm-page-email-sign-up-thanks) :where(#main) .rm-row.thanks-ctas > .col.ctas { flex: 0 1 70ch; max-width: 70ch; }
:is(.rm-page-contact-thanks, .rm-page-email-sign-up-thanks) :where(#main) .ctas > .col-inner {
  display: flex; flex-wrap: wrap; justify-content: center; gap: var(--rm-space-3);
}
:is(.rm-page-contact-thanks, .rm-page-email-sign-up-thanks) :where(#main) h1 { font-size: var(--rm-text-hero); }

/* Catering ------------------------------------------------------------------------ */
.rm-page-catering :where(#main) .cat-hero-img img { object-fit: cover; width: 100%; height: min(52vh, 480px); }
.rm-page-catering :where(#main) .cat-hero .col-inner > .img { width: 100% !important; }
.rm-page-catering :where(#main) h1 { text-align: center; }
.rm-page-catering :where(#main) .rm-row.narrow:first-child { padding-top: var(--rm-space-8); }
.rm-page-catering :where(#main) .rm-row.narrow:first-child p { font-size: var(--rm-text-lg); }
.rm-page-catering :where(#main) .rm-row.narrow:first-child :is(.text, .col-inner) > :last-child { margin-bottom: 0; }
.rm-page-catering :where(#main) .cta-row { text-align: center; margin-top: var(--rm-space-6); margin-bottom: var(--rm-space-10); }
/* the original's button sits in a 70ch paragraph */
body.rm-page-catering :where(#main) .row.cta-row > .col { flex: 0 1 70ch; max-width: 70ch; font-size: var(--rm-text-lg); }
.rm-page-catering :where(#main) .hosted > :last-child { margin-bottom: 0; }
.rm-page-catering :where(#main) .menus-block { text-align: center; margin-bottom: var(--rm-space-10); }
.rm-page-catering :where(#main) .menus-block h2 { font-size: var(--rm-text-2xl); }
.rm-page-catering :where(#main) .menu-links {
  display: flex; flex-wrap: wrap; justify-content: center; gap: var(--rm-space-3);
  margin: 0 0 var(--rm-space-4); padding: 0; list-style: none;
}
.rm-page-catering :where(#main) .menu-links li { margin: 0; }
.rm-page-catering :where(#main) .menu-links .btn { white-space: normal; max-width: 100%; }
.rm-page-catering :where(#main) .contact-line { font-size: var(--rm-text-sm); color: var(--rm-ink-soft); margin: 0 auto; }
.rm-page-catering :where(#main) .hosted { border-top: 1px solid var(--rm-line); padding-top: var(--rm-space-6); }
.rm-page-catering :where(#main) .hosted h2 { font-size: var(--rm-text-2xl); }
.rm-page-catering :where(#main) .hosted ul { padding: 0; margin: 0 0 var(--rm-space-4); list-style: none; }
.rm-page-catering :where(#main) .hosted li { padding: var(--rm-space-2) 0; border-bottom: 1px solid var(--rm-line); margin: 0; }
.rm-page-catering :where(#main) .hosted li:last-child { border-bottom: 0; }

/* Large parties --------------------------------------------------------------------- */
.rm-page-large-parties :where(#main) .section.rm-psec:first-of-type > .section-content > .row:first-child > .col > .col-inner { text-align: center; padding: var(--rm-space-8) 0 var(--rm-space-6); }
.rm-page-large-parties :where(#main) .section.rm-psec:first-of-type > .section-content > .row:first-child > .col > .col-inner p { max-width: 62ch; font-size: var(--rm-text-lg); margin: 0 auto; }
.rm-page-large-parties :where(#main) .lp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--rm-space-6); }
@media (max-width: 900px) { .rm-page-large-parties :where(#main) .lp-grid { grid-template-columns: 1fr; } }
.rm-page-large-parties :where(#main) .lp-card > .col-inner { display: flex; flex-direction: column; align-items: center; text-align: center; }
.rm-page-large-parties :where(#main) .lp-card h2 { margin-bottom: var(--rm-space-1); }
.rm-page-large-parties :where(#main) .addr { font-size: var(--rm-text-sm); color: var(--rm-ink-soft); margin: 0; }
.rm-page-large-parties :where(#main) .tel { font-size: var(--rm-text-sm); margin: var(--rm-space-3) 0 0; }
.rm-page-large-parties :where(#main) .rooms > .col-inner { padding: var(--rm-space-10) 0 0; }
.rm-page-large-parties :where(#main) .rooms h2 { text-align: center; margin-bottom: var(--rm-space-6); }
.rm-page-large-parties :where(#main) .rooms-loc { margin-bottom: var(--rm-space-8); }
.rm-page-large-parties :where(#main) .rooms-loc h3 { font-size: var(--rm-text-xl); margin-bottom: var(--rm-space-2); }
.rm-page-large-parties :where(#main) .rooms-loc ul { margin: 0 0 var(--rm-space-3); padding: 0; list-style: none; border-top: 1px solid var(--rm-line); }
.rm-page-large-parties :where(#main) .rooms-loc li {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--rm-space-2) var(--rm-space-4);
  padding: var(--rm-space-2) 0; margin: 0; border-bottom: 1px solid var(--rm-line);
}
.rm-page-large-parties :where(#main) .rooms-loc li > a {
  flex: 0 0 14rem; font-family: var(--rm-font-ui); font-size: var(--rm-text-sm); font-weight: 700;
  letter-spacing: 0.05em; text-transform: uppercase; text-decoration: none;
}
.rm-page-large-parties :where(#main) .rooms-loc li > a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.rm-page-large-parties :where(#main) .cap { font-size: var(--rm-text-sm); color: var(--rm-ink-soft); }
.rm-page-large-parties :where(#main) .rooms-loc .more { font-size: var(--rm-text-sm); font-weight: 600; }
.rm-page-large-parties :where(#main) .help > .col-inner {
  background: var(--rm-white); border: 1px solid var(--rm-line); border-radius: var(--rm-radius);
  padding: var(--rm-space-6); text-align: center;
}
.rm-page-large-parties :where(#main) .help h2 { font-size: var(--rm-text-2xl); }
.rm-page-large-parties :where(#main) .help p { max-width: 56ch; margin: 0 auto var(--rm-space-5); }
.rm-page-large-parties :where(#main) .help-list { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--rm-space-5); margin: 0; padding: 0; list-style: none; }
.rm-page-large-parties :where(#main) .help-list li { display: flex; flex-direction: column; align-items: center; gap: var(--rm-space-2); margin: 0; }
.rm-page-large-parties :where(#main) .tel-plain { font-size: var(--rm-text-sm); }
@media (max-width: 560px) { .rm-page-large-parties :where(#main) .rooms-loc li > a { flex: 100%; } }

/* ==========================================================================
   Location templates (shared by West Village, East Side, Midtown)
   ========================================================================== */

/* Centred page heads: text, a row of buttons, more text. Layout comes from the
   shared "text + buttons" rules in rosemarys.css; only spacing is set here. */
body :is(.loc-head, .menu-head, .ev-head) > .col-inner { justify-content: center; text-align: center; }

/* Overview ------------------------------------------------------------------ */
.rm-tpl-location :where(#main) .loc-head > .col-inner { --rm-tb-before: var(--rm-space-5); --rm-tb-after: var(--rm-space-5); padding: var(--rm-space-8) 0 var(--rm-space-6); }
body.rm-tpl-location :where(#main) .loc-head .col-inner > .img.illo { margin: 0 0 var(--rm-space-3); }
.rm-tpl-location :where(#main) .loc-head .illo img { width: min(260px, 60vw); height: auto; margin: 0 auto; }
.rm-tpl-location :where(#main) .loc-head h1 { font-size: var(--rm-text-4xl); margin-bottom: var(--rm-space-3); }
.rm-tpl-location :where(#main) .loc-head .blurb { max-width: 56ch; margin: 0 auto var(--rm-space-5); font-size: var(--rm-text-lg); }

body.rm-tpl-location :where(#main) .row.info {
  display: grid; grid-template-columns: minmax(18rem, 1fr) 1.6fr; align-items: start;
  gap: var(--rm-space-8); padding: var(--rm-space-8) 0;
}
@media (max-width: 860px) { body.rm-tpl-location :where(#main) .row.info { grid-template-columns: 1fr; } }
.rm-tpl-location :where(#main) .hours h2 { font-size: var(--rm-text-2xl); }
.rm-tpl-location :where(#main) .hours .addr { font-size: var(--rm-text-lg); }
.rm-tpl-location :where(#main) .hours .addr a { text-decoration: none; }
.rm-tpl-location :where(#main) .hours .addr a:hover { text-decoration: underline; }
.rm-tpl-location :where(#main) .hours dl { margin: var(--rm-space-4) 0 var(--rm-space-5); border-top: 1px solid var(--rm-line); }
.rm-tpl-location :where(#main) .hrs-row {
  display: grid; grid-template-columns: 7rem 1fr; gap: var(--rm-space-3);
  padding: var(--rm-space-2) 0; border-bottom: 1px solid var(--rm-line);
}
.rm-tpl-location :where(#main) .hrs-row dt { font-weight: 700; font-size: var(--rm-text-sm); letter-spacing: 0.04em; text-transform: uppercase; color: var(--rm-green); }
.rm-tpl-location :where(#main) .hrs-row dd { font-size: var(--rm-text-sm); margin: 0; }
.rm-tpl-location :where(#main) .hrs-row .note { color: var(--rm-ink-soft); font-style: italic; }

/* Photo gallery: six native images on a dense grid */
.rm-tpl-location :where(#main) .gallery-side > .col-inner {
  display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 220px; grid-auto-flow: dense; gap: var(--rm-space-3);
}
.rm-tpl-location :where(#main) .gallery-side .gal { border-radius: var(--rm-radius); overflow: hidden; }
.rm-tpl-location :where(#main) .gallery-side .gal.tall { grid-row: span 2; }
.rm-tpl-location :where(#main) .gallery-side .gal.wide { grid-column: span 2; }
.rm-tpl-location :where(#main) .gallery-side .gal :is(a, .img-inner) { display: block; height: 100%; }
.rm-tpl-location :where(#main) .gallery-side .gal img { object-fit: cover; width: 100%; height: 100%; transition: transform 0.3s; }
.rm-tpl-location :where(#main) .gallery-side .gal:hover img { transform: scale(1.03); }
@media (max-width: 760px) {
  .rm-tpl-location :where(#main) .gallery-side > .col-inner { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 160px; }
  .rm-tpl-location :where(#main) .gallery-side .gal.tall { grid-row: auto; }
  .rm-tpl-location :where(#main) .gallery-side .gal.wide { grid-column: auto; }
}

body.rm-tpl-location :where(#main) .events-teaser > .col-inner {
  --rm-tb-before: var(--rm-space-5);
  background: var(--rm-white); border: 1px solid var(--rm-line); border-radius: var(--rm-radius);
  padding: var(--rm-space-6);
}
body.rm-tpl-location :where(#main) .row.rm-row > .col.events-teaser { margin-top: var(--rm-space-6); }
.rm-tpl-location :where(#main) .events-teaser h2 { font-size: var(--rm-text-2xl); }
.rm-tpl-location :where(#main) .events-teaser ul { margin: 0 0 var(--rm-space-5); padding: 0; list-style: none; }
.rm-tpl-location :where(#main) .events-teaser li { padding: var(--rm-space-2) 0; margin: 0; border-bottom: 1px solid var(--rm-line); font-size: var(--rm-text-sm); }
.rm-tpl-location :where(#main) .events-teaser li:last-child { border-bottom: 0; }

/* Menu pages ------------------------------------------------------------------- */
.rm-tpl-menu :where(#main) .menu-head > .col-inner { --rm-tb-before: var(--rm-space-5); --rm-tb-after: var(--rm-space-3); padding: var(--rm-space-8) 0 var(--rm-space-5); }
.rm-tpl-menu :where(#main) .menu-head h1 { margin-bottom: var(--rm-space-2); }
.rm-tpl-menu :where(#main) .menu-head .sub { color: var(--rm-ink-soft); max-width: 52ch; margin: 0 auto var(--rm-space-5); }
.rm-tpl-menu :where(#main) .menu-head .hours-line { font-size: var(--rm-text-sm); color: var(--rm-ink-soft); margin-left: auto; margin-right: auto; }

/* Flatsome Tabs styled as the original tab bar */
.rm-tpl-menu :where(#main) .rm-menu-tabs > .nav {
  position: sticky; top: var(--rm-header-h); z-index: 10;
  display: flex; flex-wrap: wrap; justify-content: center; gap: var(--rm-space-1) var(--rm-space-5);
  margin: 0 0 var(--rm-space-8); padding: var(--rm-space-3) 0;
  background: var(--rm-paper); border-bottom: 1px solid var(--rm-line);
}
@media (min-width: 783px) { .admin-bar.rm-tpl-menu :where(#main) .rm-menu-tabs > .nav { top: calc(var(--rm-header-h) + 32px); } }
.rm-tpl-menu :where(#main) .rm-menu-tabs > .nav > li { margin: 0; padding: 0; }
.rm-tpl-menu :where(#main) .rm-menu-tabs > .nav > li > a {
  display: inline-block; padding: 0.5em 0.2em; margin: 0;
  font-family: var(--rm-font-ui); font-size: var(--rm-text-sm); font-weight: 600; line-height: normal;
  letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none;
  color: var(--rm-ink-soft); background: none; border: 0; border-bottom: 2px solid transparent;
  transition: color 0.18s, border-color 0.18s;
}
.rm-tpl-menu :where(#main) .rm-menu-tabs > .nav > li > a::before { display: none; }
.rm-tpl-menu :where(#main) .rm-menu-tabs > .nav > li > a:hover { color: var(--rm-green-deep); }
.rm-tpl-menu :where(#main) .rm-menu-tabs > .nav > li.active > a { color: var(--rm-green); border-bottom-color: var(--rm-green); }
.rm-tpl-menu :where(#main) .rm-menu-tabs > .tab-panels { padding: 0; margin: 0; border: 0; }
.rm-tpl-menu :where(#main) .rm-menu-tabs > .tab-panels > .panel { max-width: 46rem; margin: 0 auto; padding: 0; }
/* the last menu's bottom margin merges into the reserve band's, as in the original */
.rm-tpl-menu :where(#main) .rm-menu-tabs .panel > :last-child > :last-child,
.rm-tpl-menu :where(#main) .rm-menu-tabs .panel > :last-child:not(.text) { margin-bottom: 0; }
.rm-tpl-menu :where(#main) .panel-title { text-align: center; font-size: var(--rm-text-2xl); }
.rm-tpl-menu :where(#main) .tab-note { text-align: center; color: var(--rm-ink-soft); font-size: var(--rm-text-sm); margin: calc(-1 * var(--rm-space-3)) auto var(--rm-space-6); }
.rm-tpl-menu :where(#main) .tab-pdf { text-align: center; margin: 0 0 var(--rm-space-6); max-width: none; }
.rm-tpl-menu :where(#main) .tab-live { text-align: center; font-size: var(--rm-text-sm); font-weight: 600; margin: calc(-1 * var(--rm-space-4)) auto var(--rm-space-8); }
.rm-tpl-menu :where(#main) .menu-section { margin-bottom: var(--rm-space-8); }
.rm-tpl-menu :where(#main) .menu-section h3 { text-align: center; font-size: var(--rm-text-2xl); margin-bottom: var(--rm-space-2); }
.rm-tpl-menu :where(#main) .section-note {
  text-align: center; font-family: var(--rm-font-ui); font-size: var(--rm-text-xs); font-weight: 500;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--rm-ink-soft); margin: 0 auto var(--rm-space-4);
}
.rm-tpl-menu :where(#main) .menu-section ul { margin: 0; padding: 0; list-style: none; }
.rm-tpl-menu :where(#main) .menu-section li { padding: var(--rm-space-3) 0; margin: 0; border-bottom: 1px solid var(--rm-line); }
.rm-tpl-menu :where(#main) .menu-section li:last-child { border-bottom: 0; }
.rm-tpl-menu :where(#main) .menu-section .line { display: flex; justify-content: space-between; align-items: baseline; gap: var(--rm-space-4); }
.rm-tpl-menu :where(#main) .menu-section .name { font-family: var(--rm-font-ui); font-weight: 700; font-size: var(--rm-text-sm); letter-spacing: 0.05em; text-transform: uppercase; }
.rm-tpl-menu :where(#main) .menu-section .price {
  font-family: var(--rm-font-ui); font-weight: 700; font-size: var(--rm-text-sm); letter-spacing: 0.04em;
  text-transform: uppercase; color: var(--rm-green); white-space: nowrap; font-variant-numeric: tabular-nums;
}
.rm-tpl-menu :where(#main) .menu-section .desc { font-size: var(--rm-text-sm); color: var(--rm-ink-soft); margin: var(--rm-space-1) 0 0; }

/* Private events pages ------------------------------------------------------------ */
.rm-tpl-events :where(#main) .ev-hero-img img { object-fit: cover; width: 100%; height: min(52vh, 480px); }
body.rm-tpl-events :where(#main) .ev-hero .col-inner > .img { width: 100% !important; }
.rm-tpl-events :where(#main) .ev-head > .col-inner { --rm-tb-before: var(--rm-space-5); --rm-tb-after: var(--rm-space-5); padding: var(--rm-space-6) 0 var(--rm-space-4); }
.rm-tpl-events :where(#main) .ev-head h1 { margin-bottom: var(--rm-space-4); }
.rm-tpl-events :where(#main) .ev-head p { max-width: 62ch; margin-left: auto; margin-right: auto; }
body.rm-tpl-events :where(#main) .row.space {
  display: grid; grid-template-columns: 1fr 1.1fr; align-items: center;
  gap: var(--rm-space-8); margin-top: var(--rm-space-10); margin-bottom: var(--rm-space-10);
}
.rm-tpl-events :where(#main) .space.flip > .sp-text { order: 2; }
.rm-tpl-events :where(#main) .space.flip > .sp-media { order: 1; }
@media (max-width: 820px) {
  body.rm-tpl-events :where(#main) .row.space { grid-template-columns: 1fr; gap: var(--rm-space-5); margin-top: var(--rm-space-8); margin-bottom: var(--rm-space-8); }
  .rm-tpl-events :where(#main) .space.flip > .sp-text { order: 1; }
  .rm-tpl-events :where(#main) .space.flip > .sp-media { order: 2; }
}
.rm-tpl-events :where(#main) .space h2 { font-size: var(--rm-text-2xl); scroll-margin-top: calc(var(--rm-header-h) + var(--rm-space-5)); }
.rm-tpl-events :where(#main) .space ul { margin: 0 0 var(--rm-space-5); padding: 0; list-style: none; }
.rm-tpl-events :where(#main) .space li { padding: var(--rm-space-2) 0; margin: 0; border-bottom: 1px solid var(--rm-line); font-size: var(--rm-text-base); }
.rm-tpl-events :where(#main) .space li:last-child { border-bottom: 0; }
.rm-tpl-events :where(#main) .space .media img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; border-radius: var(--rm-radius); box-shadow: var(--rm-shadow); }
.rm-tpl-events :where(#main) .other-locs > .col-inner { text-align: center; border-top: 1px solid var(--rm-line); padding-top: var(--rm-space-8); }
.rm-tpl-events :where(#main) .other-locs h2 { font-size: var(--rm-text-2xl); }
.rm-tpl-events :where(#main) .other-locs p { max-width: 60ch; margin: 0 auto; }

/* ==========================================================================
   Blog
   ========================================================================== */
.rm-page-blog :where(#main) h1 { text-align: center; padding-top: var(--rm-space-8); }
.rm-page-blog :where(#main) .sub { text-align: center; color: var(--rm-ink-soft); margin-bottom: var(--rm-space-8); }
body .rm-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--rm-space-6); }
@media (max-width: 960px) { body .rm-blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { body .rm-blog-grid { grid-template-columns: 1fr; } }
body .rm-blog-grid .card {
  display: block; overflow: hidden; color: var(--rm-ink); text-decoration: none;
  background: var(--rm-white); border: 1px solid var(--rm-line); border-radius: var(--rm-radius);
  transition: transform 0.2s, box-shadow 0.2s;
}
body .rm-blog-grid .card:hover { box-shadow: var(--rm-shadow); transform: translateY(-3px); color: var(--rm-ink); }
body .rm-blog-grid .card img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; height: auto; display: block; }
body .rm-blog-grid .body { padding: var(--rm-space-5); }
body .rm-blog-grid time { font-size: var(--rm-text-xs); color: var(--rm-ink-soft); letter-spacing: 0.04em; text-transform: uppercase; }
body .rm-blog-grid h2 { font-size: var(--rm-text-xl); margin: var(--rm-space-2) 0; }
body .rm-blog-grid .body p { font-size: var(--rm-text-sm); color: var(--rm-ink-soft); margin: 0; }

/* Single post (templates/single-post.php) */
body .rm-article {
  width: calc(100% - 2 * var(--rm-gutter)); max-width: calc(46rem - 2 * var(--rm-space-5));
  margin: 0 auto; padding: var(--rm-space-8) 0 0;
}
body .rm-article .rm-article-head { text-align: center; margin-bottom: var(--rm-space-6); }
body .rm-article .rm-article-head time { font-size: var(--rm-text-xs); color: var(--rm-ink-soft); letter-spacing: 0.05em; text-transform: uppercase; }
body .rm-article .rm-article-head h1 { margin-top: var(--rm-space-2); }
body .rm-article img.hero {
  display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover;
  border-radius: var(--rm-radius); box-shadow: var(--rm-shadow); margin-bottom: var(--rm-space-6);
}
body .rm-article .prose h2 { font-size: var(--rm-text-2xl); margin-top: var(--rm-space-8); }
body .rm-article .prose h3 { font-size: var(--rm-text-xl); margin-top: var(--rm-space-6); }
body .rm-article .prose p { font-size: var(--rm-text-lg); }
body .rm-article .prose :is(ul, ol) { margin: 0 0 var(--rm-space-4); padding-left: 1.3em; }
body .rm-article .prose li { margin-bottom: var(--rm-space-2); }
body .rm-article .prose img { border-radius: var(--rm-radius); margin: var(--rm-space-5) 0; }
body .rm-article .back { margin-top: var(--rm-space-8); font-weight: 600; }