/* EatMenuGuide — "Narrative" editorial style (loaded last; delete this file + its <link> to revert).
   Grey canvas, light serif headings, Inter body, lime accent, navy CTA band, hairline-topped cards. */
body.ts-body {
  --ts-bg: #e1e2e1;
  --ts-bg-alt: #e1e2e1;
  --ts-dark: #14171d;
  --ts-text: #3b3f46;
  --ts-text-light: #5b5f66;
  --ts-lime: #e4f97f;
  --ts-navy: #262d38;
  --ts-border-light: rgba(20, 23, 29, 0.14);
  --ts-radius: 8px;
  --ts-radius-lg: 12px;
  --ts-radius-xl: 12px;
  --ts-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ts-serif: "Newsreader", "Fraunces", Georgia, serif;
  background: var(--ts-bg);
}
body.ts-body:not(.ts-venue-page) { --ts-header-h: 0px; }
body.ts-venue-page { --ts-header-h: 60px; }

/* Announcement bar + sticky header (header returns to normal flow, so page offsets are 0) */
.ts-announce { background: var(--ts-lime); color: var(--ts-dark); text-align: center; font-size: .75rem; padding: .55rem 1rem; font-weight: 500; }
.ts-announce a { color: inherit; text-decoration: none; }
.ts-announce a:hover { text-decoration: underline; }
body.ts-body:not(.ts-venue-page) .ts-header { position: sticky; top: 0; }
body.ts-body .ts-header { height: 60px; background: #fff !important; border-bottom: 0; box-shadow: none !important; }
body.ts-body .ts-header .ts-container { max-width: 1280px; position: relative; }
body.ts-body .ts-logo-text { font-family: var(--ts-serif); font-weight: 400; font-size: 1.45rem; letter-spacing: -.01em; color: var(--ts-dark) !important; }
body.ts-body .ts-nav-desktop { position: absolute; left: 50%; transform: translateX(-50%); }
body.ts-body .ts-header .ts-nav > li > a { font-family: var(--ts-sans); font-size: .8rem; font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--ts-dark) !important; }
body.ts-body .ts-header .ts-nav > li > a::after { display: none; }
body.ts-body .ts-header .ts-nav > li > a.active { text-decoration: underline; text-underline-offset: 6px; }
body.ts-body .ts-nav-toggle { color: var(--ts-dark) !important; }
/* sticky sidebars that used the old header offset */
body.ts-body:not(.ts-venue-page) [class*="sticky"] { scroll-margin-top: 80px; }

/* Headings */
body.ts-body h1,
body.ts-body h2,
body.ts-body h3,
body.ts-body .ts-section-title { font-family: var(--ts-serif); font-weight: 300; letter-spacing: -.02em; color: var(--ts-dark); }
body.ts-body .ts-section-title { font-size: clamp(1.9rem, 4vw, 2.75rem); line-height: 1.1; }
.ts-section-label, .ts-hero-home__eyebrow, .ts-directory__chips-label, .ts-hero-home__cities-label { font-family: var(--ts-sans); font-weight: 500; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ts-text-light); }
.ts-section-header.text-center { text-align: left !important; max-width: none; border-top: 2px solid var(--ts-dark); padding-top: 1.25rem; }
.ts-section-header.text-center .ts-section-subtitle { margin-left: 0; margin-right: 0; }

/* Buttons: soft-rounded, ink + lime */
.btn-ts-primary, .btn-ts-outline { border-radius: 8px; font-family: var(--ts-sans); font-size: .85rem; font-weight: 500; letter-spacing: 0; text-transform: none; box-shadow: none !important; }
.btn-ts-primary { background: var(--ts-dark); border-color: var(--ts-dark); color: #fff; }
.btn-ts-primary:hover { background: #2b303a; border-color: #2b303a; color: #fff; }
.btn-ts-primary.btn-lime { background: var(--ts-lime); border-color: var(--ts-lime); color: var(--ts-dark); }
.btn-ts-primary.btn-lime:hover { background: #d8ee6b; border-color: #d8ee6b; color: var(--ts-dark); }
.btn-ts-outline { background: transparent !important; color: var(--ts-dark); border: 1px solid var(--ts-dark); }
.btn-ts-outline:hover { background: var(--ts-dark) !important; color: #fff; }

/* Home hero: centred, big light serif */
.ts-hero-narrative { padding: 3.5rem 0 3rem; text-align: center; border-bottom: 1px solid var(--ts-border-light); background: var(--ts-bg); }
.ts-hero-narrative h1 { font-size: clamp(2.6rem, 6.5vw, 4.4rem); line-height: 1.05; max-width: 14ch; margin: 0 auto 1.25rem; }
.ts-hero-narrative .ts-hero-home__lead { max-width: 34rem; margin: 0 auto 1.75rem; color: var(--ts-text-light); }
.ts-hero-narrative .ts-hero-home__actions { justify-content: center; display: flex; gap: .75rem; flex-wrap: wrap; }
.ts-hero-narrative .btn-ts-primary { padding: .8rem 1.4rem; }
.ts-hero-note { margin: 1.25rem 0 0; font-size: .72rem; color: var(--ts-text-light); }

/* Editorial grid: featured card + 2-column list */
.ts-editorial { padding: 3rem 0 4rem; }
.ts-editorial .ts-container { max-width: 1280px; }
.ts-place-card { display: grid; grid-template-columns: 146px 1fr; gap: 1rem; align-items: start; border: 0; border-radius: 0; background: transparent; box-shadow: none !important; transform: none !important; overflow: visible; height: auto; }
.ts-place-card-img { aspect-ratio: 1 / 1; border-radius: 10px; }
.ts-place-card-img img { width: 100%; height: 100%; }
.ts-place-card-badges { display: none; }
.ts-place-card-body { padding: .6rem 0 0; border-top: 2px solid var(--ts-dark); }
.ts-place-card-title { font-family: var(--ts-serif); font-weight: 400; font-size: 1.1rem; line-height: 1.25; letter-spacing: -.01em; margin-bottom: .4rem; }
.ts-place-card:hover .ts-place-card-title { text-decoration: underline; text-underline-offset: 3px; }
.ts-place-card-address { font-size: .72rem; line-height: 1.5; color: var(--ts-text-light); margin-bottom: .55rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ts-place-card-meta { display: flex; gap: .4rem; flex-wrap: wrap; margin: 0; }
.ts-stock-tag { position: absolute; left: .5rem; bottom: .5rem; z-index: 2; padding: .15rem .5rem; border-radius: 999px; background: rgba(20, 23, 29, .65); color: #fff; font-size: .6rem; font-weight: 500; }
.ts-chip { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .6rem; border-radius: 999px; font-size: .68rem; font-weight: 500; color: var(--ts-dark); background: rgba(255, 255, 255, .5); }
.ts-chip i { color: var(--ts-star); font-size: .62rem; }
.ts-editorial-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2.25rem 2.5rem; margin-top: 2.5rem; }
.ts-place-card--feature { grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: center; }
.ts-place-card--feature .ts-place-card-img { aspect-ratio: 16 / 9; }
.ts-place-card--feature .ts-place-card-body { padding-top: 1.25rem; }
.ts-place-card--feature .ts-place-card-title { font-size: clamp(1.8rem, 3vw, 2.4rem); line-height: 1.1; margin-bottom: .75rem; }
.ts-place-card--feature .ts-place-card-address { font-size: .85rem; -webkit-line-clamp: 4; }

/* Sections / cards */
.section-padding { padding: 4.5rem 0; }
.section-alt { background: transparent; }
.ts-why-card { background: transparent; border: 0; border-top: 2px solid var(--ts-dark); border-radius: 0; box-shadow: none; padding: 1.25rem 0 0; }
.ts-why-icon { background: transparent; color: var(--ts-dark); padding: 0; }
.ts-hero-home__chip { border-radius: 999px; background: rgba(255, 255, 255, .5); border: 0; color: var(--ts-dark); font-size: .75rem; font-weight: 500; }
.ts-hero-home__chip:hover { background: var(--ts-dark); color: #fff; transform: none; }
.ts-cities-home__item { border-radius: 0; background: transparent; border: 0; border-top: 2px solid var(--ts-dark); box-shadow: none; }
.ts-cities-home__item:hover { background: rgba(255, 255, 255, .5); color: var(--ts-dark); }
.ts-cities-home__name { font-family: var(--ts-serif); font-weight: 400; font-size: 1.3rem; }
.ts-breadcrumbs ol { font-size: .72rem; }
.ts-directory__head .ts-section-title { font-size: clamp(2.2rem, 5.5vw, 4rem); line-height: 1.02; max-width: 16ch; }

/* Navy CTA band */
.ts-cta-band { background: var(--ts-navy); color: #fff; border-radius: 0; padding: 5rem 0; text-align: left; }
.ts-cta-band__inner { max-width: 1280px; display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: center; }
.ts-place-card--feature .ts-place-card-img { aspect-ratio: 16 / 9; }
body.ts-body .ts-cta-band .ts-section-title { color: #fff; margin: 0; max-width: 18ch; }
.ts-cta-band__action p { margin: .9rem 0 0; font-size: .85rem; color: rgba(255, 255, 255, .65); }

/* Footer: grey, big serif wordmark */
.ts-footer { background: var(--ts-bg); color: var(--ts-text-light); padding: 5rem 0 2.5rem; border-top: 0; }
.ts-footer-logo { font-family: var(--ts-serif); font-weight: 300; font-size: clamp(2.6rem, 5vw, 3.6rem); color: var(--ts-dark) !important; letter-spacing: -.02em; line-height: 1; }
.ts-footer h5 { font-family: var(--ts-serif); font-weight: 300; font-size: 1.35rem; letter-spacing: 0; text-transform: none; color: var(--ts-dark); margin-bottom: 1rem; }
.ts-footer a { color: var(--ts-text-light); }
.ts-footer a:hover { color: var(--ts-dark); }
.ts-footer a[href^="mailto:"] { color: var(--ts-dark); font-weight: 500; }
.ts-footer-links a { font-size: .85rem; }
.ts-footer-bottom { border-top: 1px solid var(--ts-border-light); margin-top: 3rem; padding-top: 1.5rem; font-size: .75rem; color: var(--ts-text-light); }

.ts-consent { border-radius: 8px; }

@media (max-width: 991.98px) {
  body.ts-body .ts-header { height: 56px; }
  body.ts-venue-page { --ts-header-h: 56px; }
  .ts-editorial { padding: 3rem 0; }
  .ts-editorial-grid { grid-template-columns: 1fr; gap: 1.5rem; margin-top: 2rem; }
  .ts-place-card--feature { grid-template-columns: 1fr; gap: 1rem; }
  .ts-place-card--feature .ts-place-card-img { aspect-ratio: 16 / 10; }
  .ts-hero-narrative { padding: 3rem 0; }
  .ts-cta-band { padding: 3.5rem 0; }
  .ts-cta-band__inner { grid-template-columns: 1fr; gap: 1.75rem; }
}

/* ---------- Venue (detail) pages ---------- */
body.ts-venue-page {
  --ts-primary: #14171d;
  --ts-primary-hover: #2b303a;
  --ts-primary-dark: #14171d;
  --ts-primary-light: rgba(255, 255, 255, .55);
  --ts-accent-light: rgba(255, 255, 255, .55);
  --ts-bg-warm: #d4d6d4;
}
body.ts-venue-page .ts-header { position: fixed; background: #fff !important; box-shadow: none !important; backdrop-filter: none; }
body.ts-venue-page .ts-photo-grid { border-radius: 0; background: var(--ts-bg-warm); }
body.ts-venue-page .ts-place-info { background: var(--ts-bg); border-bottom: 0; padding: 2rem 0 1.5rem; }
body.ts-venue-page .ts-place-info h1 { font-family: var(--ts-serif); font-weight: 300; font-size: clamp(2rem, 4.2vw, 3rem); line-height: 1.08; letter-spacing: -.025em; margin-bottom: .75rem; }
body.ts-venue-page .ts-place-info-tags .ts-badge,
body.ts-venue-page .ts-place-info-tags [class*="badge"] { border-radius: 999px; background: rgba(255, 255, 255, .55); border: 0; color: var(--ts-dark); font-weight: 500; }
body.ts-venue-page .ts-place-info-actions .btn-ts-primary { background: var(--ts-lime); border-color: var(--ts-lime); color: var(--ts-dark); }
body.ts-venue-page .ts-place-info-actions .btn-ts-primary:hover { background: #d8ee6b; border-color: #d8ee6b; }
body.ts-venue-page .ts-place-info-actions .btn-ts-outline { background: rgba(255, 255, 255, .55) !important; border: 0; }
body.ts-venue-page .ts-place-info-actions .btn-ts-outline:hover { background: var(--ts-dark) !important; color: #fff; }
body.ts-venue-page .ts-tab-nav { background: var(--ts-bg); border-bottom: 1px solid var(--ts-border-light); }
body.ts-venue-page .ts-tab-nav-link { font-size: .85rem; font-weight: 500; color: var(--ts-text-light); }
body.ts-venue-page .ts-tab-nav-link:hover,
body.ts-venue-page .ts-tab-nav-link.active { color: var(--ts-dark); border-bottom-color: var(--ts-dark); }
body.ts-venue-page .ts-venue-section { border-bottom: 0; border-top: 2px solid var(--ts-dark); padding: 1.25rem 0 0; margin-bottom: 3rem; }
body.ts-venue-page .ts-venue-section h2,
body.ts-venue-page .ts-venue-heading { font-family: var(--ts-serif); font-weight: 300; font-size: clamp(1.6rem, 3vw, 2.1rem); letter-spacing: -.02em; border-left: 0; padding-left: 0; }
body.ts-venue-page .ts-venue-section p,
body.ts-venue-page .ts-venue-section li { font-size: .95rem; color: var(--ts-text); }
body.ts-venue-page .ts-sidebar-card { background: transparent; border: 0; border-top: 2px solid var(--ts-dark); border-radius: 0; box-shadow: none; padding: 1rem 0 0; }
body.ts-venue-page .ts-sidebar-card h3 { font-family: var(--ts-serif); font-weight: 300; font-size: 1.35rem; letter-spacing: 0; text-transform: none; color: var(--ts-dark); }
body.ts-venue-page .ts-review-card,
body.ts-venue-page .ts-menu-highlight-card,
body.ts-venue-page .ts-related-card { background: rgba(255, 255, 255, .55); border: 0; border-radius: 12px; box-shadow: none; }
body.ts-venue-page .ts-amenity-pills > * { border-radius: 999px; background: rgba(255, 255, 255, .55); border: 0; color: var(--ts-dark); }
body.ts-venue-page .ts-related-section { background: transparent; }

/* Venue footer = main footer */
.ts-venue-footer { background: var(--ts-bg); color: var(--ts-text-light); border-top: 1px solid var(--ts-border-light); padding: 4rem 0 2rem; }
.ts-venue-footer-logo img { display: none; }
.ts-venue-footer-logo, .ts-venue-footer-place { font-family: var(--ts-serif); font-weight: 300; font-size: 2rem; color: var(--ts-dark) !important; letter-spacing: -.02em; }
.ts-venue-footer-logo--compact { font-size: 1.35rem; }
.ts-venue-footer h3 { font-family: var(--ts-serif); font-weight: 300; font-size: 1.35rem; letter-spacing: 0; text-transform: none; color: var(--ts-dark); }
.ts-venue-footer a { color: var(--ts-text-light); }
.ts-venue-footer a:hover { color: var(--ts-dark); }
.ts-venue-footer-bottom { border-top: 1px solid var(--ts-border-light); font-size: .75rem; color: var(--ts-text-light); }
body.ts-venue-page .pj-prose-content h2,
body.ts-venue-page .pj-prose-content h3,
body.ts-venue-page .ts-venue-section .pj-prose-content :is(h2, h3, h4) { font-family: var(--ts-serif) !important; font-weight: 300 !important; letter-spacing: -.02em; color: var(--ts-dark); }
body.ts-venue-page .pj-prose-content h2 { font-size: clamp(1.5rem, 2.6vw, 1.9rem); margin: 2rem 0 .75rem; }
body.ts-venue-page .pj-prose-content h3 { font-size: 1.35rem; }
