/*
Theme Name: Cranelli's
Template: hello-elementor
Description: Child theme for Cranelli's Italian Restaurant, built from the October 2026 brand board. Header, footer, phone quick bar and menu shortcodes live here; page content is built in Elementor.
Author: Colorado Web Forge
Version: 1.0.0
Text Domain: cranellis
*/

/* Fonts. Copperplate CC is an SIL OFL revival of Goudy's Copperplate Gothic (assets/fonts/CopperplateCC-LICENSE.md). */
@font-face { font-family: 'Copperplate CC'; src: url('assets/fonts/copperplate-cc-heavy.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Copperplate CC'; src: url('assets/fonts/copperplate-cc-bold.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'EB Garamond'; src: url('assets/fonts/eb-garamond-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'EB Garamond'; src: url('assets/fonts/eb-garamond-latin-400-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Homemade Apple'; src: url('assets/fonts/homemade-apple-quotes.woff2') format('woff2'); font-weight: 400; font-display: swap; }

/* Tokens from the brand board: red, black and white from the logo, plus wood from the printed menus. No gold, no basil. */
:root {
  --cr-night: #0c0707;
  --cr-wine: #1a0e0f;
  --cr-cellar: #130a0a;
  --cr-line: #3a2a27;
  --cr-line-soft: #2a1c1a;
  --cr-red: #c13538;
  --cr-red-hover: #cf3d40;
  --cr-red-press: #a42c2f;
  --cr-wood: #5d4529;
  --cr-cream: #f4efe8;
  --cr-cream-soft: #e2d7cd;
  --cr-muted: #cdbfb6;
  --cr-paper: #f6efe3;
  --cr-ink: #2b1d13;
  --cr-ink-soft: #5d4529;

  --cr-display: 'Copperplate CC', 'Copperplate Gothic Bold', 'Copperplate', Georgia, serif;
  --cr-body: 'EB Garamond', Garamond, 'Times New Roman', serif;
  --cr-hand: 'Homemade Apple', 'Bradley Hand', cursive;

  --cr-s1: 4px; --cr-s2: 8px; --cr-s3: 12px; --cr-s4: 16px; --cr-s5: 24px; --cr-s6: 32px;
  --cr-s7: 48px; --cr-s8: 64px; --cr-s9: 96px; --cr-s10: 128px;
  --cr-r-sm: 4px; --cr-r-md: 8px; --cr-r-pill: 999px;
  --cr-shadow: 0 2px 4px rgba(0, 0, 0, 0.45), 0 24px 56px rgba(0, 0, 0, 0.6);
  --cr-wrap: 1400px;
  /* The grain texture is decorative; site.js turns it on once the page has loaded so it never competes with the first view. */
  --cr-grain: none;
  --cr-gutter: 24px;
  --cr-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

html.cr-grain { --cr-grain: url('assets/img/grain.png'); }

/* Base */
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 120px; }
body {
  margin: 0;
  background-color: var(--cr-night);
  background-image: var(--cr-grain);
  background-size: 256px 256px;
  color: var(--cr-cream);
  font-family: var(--cr-body);
  font-size: 1.25rem;
  line-height: 1.55;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}
body a { color: var(--cr-cream); text-underline-offset: 5px; text-decoration-thickness: 1px; }
body a:hover { color: var(--cr-cream-soft); }
:focus-visible { outline: 3px solid var(--cr-cream); outline-offset: 3px; }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 { margin: 0; color: var(--cr-cream); font-family: var(--cr-display); font-weight: 700; font-variant-caps: small-caps; letter-spacing: 0.02em; text-wrap: balance; }
p { margin: 0; }
.cr-wrap { width: 100%; max-width: var(--cr-wrap); margin-inline: auto; padding-inline: var(--cr-gutter); box-sizing: border-box; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cr-skip { position: absolute; left: 16px; top: -60px; z-index: 50; background: var(--cr-cream); color: var(--cr-night); padding: 10px 16px; border-radius: var(--cr-r-sm); }
.cr-skip:focus { top: 12px; color: var(--cr-night); }

/* Type helpers, usable as CSS classes on any Elementor widget */
.cr-cp, .cr-cp .elementor-heading-title { font-family: var(--cr-display); font-weight: 700; font-variant-caps: small-caps; letter-spacing: 0.02em; }
.cr-cpl { font-family: var(--cr-display); font-weight: 400; font-variant-caps: small-caps; letter-spacing: 0.06em; }
.cr-h1 .elementor-heading-title { font-size: clamp(2.75rem, 4.6vw, 4.25rem); line-height: 1.04; }
.cr-page-hero .cr-h1 .elementor-heading-title, .cr-page-intro .cr-h1 .elementor-heading-title { font-size: clamp(2.5rem, 4vw, 3.75rem); line-height: 1.06; }
.cr-h2 .elementor-heading-title { font-size: clamp(2.25rem, 4.4vw, 3.5rem); line-height: 1.08; }
.cr-h3 .elementor-heading-title { font-size: 1.625rem; line-height: 1.15; }
.cr-deck, .cr-deck p { font-style: italic; font-size: clamp(1.25rem, 1.8vw, 1.5rem); line-height: 1.45; color: var(--cr-cream-soft); max-width: 40ch; text-wrap: balance; }
.cr-center, .cr-center .elementor-heading-title, .cr-center p { text-align: center; margin-inline: auto; }
.cr-muted, .cr-muted p, .elementor-widget-text-editor.cr-muted { color: var(--cr-muted); font-style: italic; }
.cr-hand, .cr-hand p { font-family: var(--cr-hand); font-size: clamp(1.5rem, 2.5vw, 2.25rem); line-height: 1.95; color: var(--cr-cream); }
.cr-price, .cr-price p { font-family: var(--cr-display); font-weight: 700; font-size: 1.25rem; letter-spacing: 0.06em; font-variant-numeric: lining-nums tabular-nums; }

/* Elementor layout: our sections set their own spacing */
/* Elementor sets --display per container in its generated CSS; this keeps layout intact if that CSS is ever missing */
.elementor .e-con { --display: flex; }
.elementor .e-con { --container-default-padding-top: 0px; --container-default-padding-right: 0px; --container-default-padding-bottom: 0px; --container-default-padding-left: 0px; }
.elementor .e-con.cr-section { --padding-top: var(--cr-s9); --padding-bottom: var(--cr-s9); --padding-left: var(--cr-gutter); --padding-right: var(--cr-gutter); --gap: var(--cr-s7); }
/* Sections from the third down are laid out only as they near the screen, so their fonts and images stop competing with the first view. */
.elementor > .e-con.cr-section ~ .e-con.cr-section ~ .e-con.cr-section { content-visibility: auto; contain-intrinsic-size: auto 900px; }
.elementor .e-con.cr-band { background-color: var(--cr-cellar); background-image: var(--cr-grain); background-size: 256px 256px; }
.elementor .e-con.cr-band-wine { background-color: var(--cr-wine); }
.elementor .e-con.cr-section.cr-happy { --padding-top: 0px; }
.elementor .e-con.cr-row { --flex-direction: row; --gap: var(--cr-s7); --align-items: center; flex-wrap: nowrap; }
.elementor .e-con.cr-stack { --gap: var(--cr-s5); --align-items: flex-start; }
.elementor .e-con.cr-btns { --flex-direction: row; --gap: var(--cr-s3); flex-wrap: wrap; --align-items: center; }
.elementor .e-con.cr-btns.cr-center { --justify-content: center; }
.elementor .e-con.cr-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cr-s6); }
.elementor .elementor-widget { margin-block-end: 0; }
/* Flex children default to min-width: auto, so a wide swipe row (plaques, chips) would stretch its wrappers past the gutter */
.elementor .e-con-inner, .elementor .e-con > .elementor-element, .elementor .e-con-inner > .elementor-element { min-width: 0; }
.elementor-widget-heading .elementor-heading-title { color: var(--cr-cream); font-family: var(--cr-display); }
.elementor-widget-text-editor { color: inherit; }

/* Buttons: Elementor button widget with the cr-btn class */
.cr-btn .elementor-button, a.cr-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 32px; border-radius: var(--cr-r-pill); border: 1px solid transparent;
  font-family: var(--cr-display); font-weight: 700; font-variant-caps: small-caps;
  font-size: 1.1875rem; line-height: 1; letter-spacing: 0.08em; text-decoration: none; white-space: nowrap;
  background: var(--cr-red); color: var(--cr-cream);
  box-shadow: 0 10px 24px rgba(193, 53, 56, 0.22);
  transition: background-color 160ms var(--cr-ease), border-color 160ms var(--cr-ease);
}
.cr-btn .elementor-button:hover, a.cr-btn:hover { background: var(--cr-red-hover); color: var(--cr-cream); }
.cr-btn .elementor-button:active, a.cr-btn:active { background: var(--cr-red-press); }
.cr-btn-line .elementor-button, a.cr-btn.cr-btn-line { background: transparent; border-color: rgba(244, 239, 232, 0.6); box-shadow: none; }
.cr-btn-line .elementor-button:hover, a.cr-btn.cr-btn-line:hover { background: rgba(244, 239, 232, 0.08); border-color: var(--cr-cream); }
a.cr-btn-sm { min-height: 44px; padding: 0 22px; font-size: 1.0625rem; }

/* Photos: plain rectangles, 8px corners, soft shadow */
/* Elementor's reset (.elementor img) strips radius and shadow, so these match its specificity and come later */
.cr-photo img, img.cr-photo, .elementor .cr-photo img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: var(--cr-r-md); box-shadow: var(--cr-shadow); }
.cr-photo .elementor-widget-container { height: 100%; }

/* Header */
.cr-header { position: sticky; top: 0; z-index: 20; transition: transform 260ms var(--cr-ease); will-change: transform; }
html.cr-away .cr-header { transform: translateY(-110%); }
html.cr-away .cr-menubar { top: 0; }
.cr-menubar { transition: top 260ms var(--cr-ease); }
.admin-bar .cr-header { top: 32px; }
.cr-bar { background: #000; border-bottom: 1px solid var(--cr-line-soft); }
.cr-bar-row { min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: var(--cr-s4) var(--cr-s6); padding-block: var(--cr-s3); }
.cr-logo { flex: none; }
.cr-logo img, .cr-header .cr-logo img { height: 56px; width: auto; max-width: none; display: block; }
.cr-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 22px; align-items: center; }
.cr-nav a { color: var(--cr-cream); text-decoration: none; font-family: var(--cr-display); font-variant-caps: small-caps; font-size: 1.0625rem; letter-spacing: 0.08em; white-space: nowrap; }
.cr-nav a:hover, .cr-nav .current-menu-item > a, .cr-nav a[aria-current="page"] { color: var(--cr-cream-soft); text-decoration: underline; }
.cr-actions { display: flex; gap: 10px; align-items: center; }
.cr-burger { width: 48px; height: 48px; display: none; align-items: center; justify-content: center; background: none; border: 0; color: var(--cr-cream); padding: 0; cursor: pointer; }
.cr-mobile-nav { border-top: 1px solid var(--cr-line-soft); background: #000; padding-block: var(--cr-s5) var(--cr-s6); }
.cr-mobile-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--cr-s4); }
.cr-mobile-nav a { color: var(--cr-cream); text-decoration: none; font-family: var(--cr-display); font-weight: 700; font-variant-caps: small-caps; font-size: 1.5rem; }
.cr-mobile-nav .cr-btn { margin-top: var(--cr-s5); }
.cr-host { background: var(--cr-wine); border-bottom: 1px solid var(--cr-line); }
.cr-host-row { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: var(--cr-s4); font-size: 1.25rem; color: var(--cr-cream); }
.cr-host-row b { font-weight: 400; white-space: nowrap; }
.cr-host-row a { font-family: var(--cr-display); font-variant-caps: small-caps; letter-spacing: 0.06em; font-size: 1.0625rem; white-space: nowrap; }

/* Footer */
.cr-footer { background: #000; border-top: 1px solid var(--cr-line-soft); padding-block: var(--cr-s8) var(--cr-s6); font-size: 1.1875rem; }
.cr-footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: var(--cr-s7); }
.cr-footer-col { display: flex; flex-direction: column; gap: var(--cr-s3); align-items: flex-start; }
.cr-footer .cr-logo img { height: 64px; margin-bottom: var(--cr-s3); }
.cr-footer address { font-style: normal; }
.cr-footer address a, .cr-footer .cr-phone { text-decoration: none; }
.cr-footer h2 { font-size: 1.25rem; }
.cr-footer dl { margin: 0; display: flex; flex-direction: column; gap: var(--cr-s3); }
.cr-footer dt { color: var(--cr-muted); }
.cr-footer dd { margin: 0; line-height: 1.45; text-wrap: balance; }
.cr-footer-bottom { margin-top: var(--cr-s8); padding-top: var(--cr-s5); border-top: 1px solid var(--cr-line-soft); display: flex; flex-direction: column; gap: var(--cr-s4); }
.cr-footer-bottom ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--cr-s3) var(--cr-s5); }
.cr-footer-bottom ul a { color: var(--cr-cream-soft); text-decoration: none; font-family: var(--cr-display); font-variant-caps: small-caps; letter-spacing: 0.06em; font-size: 1.0625rem; }
.cr-fine { display: flex; flex-wrap: wrap; gap: var(--cr-s3) var(--cr-s6); font-size: 1.0625rem; color: var(--cr-cream-soft); }

/* Phone quick bar */
.cr-qbar { display: none; }

/* Award plaques */
.cr-plaques { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--cr-s4); }
.cr-plaque { position: relative; min-width: 0; padding: 40px 16px 28px; border: 1px solid var(--cr-line); border-radius: var(--cr-r-md); background: var(--cr-wine); box-shadow: var(--cr-shadow); display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; }
.cr-plaque-logo { height: 76px; width: 100%; display: flex; align-items: center; justify-content: center; margin-bottom: 6px; }
.cr-plaque .cr-plaque-logo img { height: 76px; width: auto; max-width: none; }
.cr-mask { background: var(--cr-cream); opacity: 0.92; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; max-width: 100%; }
.cr-plaque .cr-plaque-name { font-size: 1.3125rem; line-height: 1.2; }
.cr-plaque .cr-giver { font-style: italic; font-size: 1.1875rem; line-height: 1.35; color: var(--cr-cream-soft); }
.cr-plaque .cr-year { margin-top: auto; padding-top: 8px; font-family: var(--cr-display); font-weight: 700; font-size: 1.375rem; letter-spacing: 0.08em; }

/* Dish cards */
.cr-dish { text-align: center; }
.cr-dish .cr-photo img, .elementor .cr-dish .cr-photo img { aspect-ratio: 4 / 3; height: auto; }
.cr-dish p { font-style: italic; font-size: 1.1875rem; line-height: 1.45; color: var(--cr-cream-soft); max-width: 32ch; margin-inline: auto; }
.elementor .e-con.cr-dish { --gap: var(--cr-s3); --align-items: center; }

/* Happy hour band */
.cr-hh { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--cr-s6); padding: var(--cr-s7); border-radius: var(--cr-r-md); background: var(--cr-red); box-shadow: var(--cr-shadow); }
.cr-hh::before { content: ''; position: absolute; inset: 8px; border: 1px solid rgba(244, 239, 232, 0.4); border-radius: var(--cr-r-sm); pointer-events: none; }
.cr-hh.cr-hh-deals { justify-content: center; }
.cr-hh.cr-hh-deals ul { justify-content: center; }
.cr-hh-lead { display: flex; flex-direction: column; gap: var(--cr-s2); align-items: flex-start; }
.cr-hh h2 { font-size: clamp(2rem, 3.4vw, 2.75rem); line-height: 1.05; }
.cr-hh-lead p { font-style: italic; font-size: 1.25rem; }
.cr-hh-lead a.cr-btn { margin-top: var(--cr-s3); border-color: rgba(244, 239, 232, 0.8); }
.cr-hh ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.cr-hh li { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 var(--cr-s6); border-left: 1px solid rgba(244, 239, 232, 0.4); }
.cr-hh li:first-child { border-left: 0; }
.cr-hh .cr-big { font-family: var(--cr-display); font-weight: 700; font-variant-caps: small-caps; font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.1; }
.cr-hh li span:last-child { font-style: italic; font-size: 1.125rem; }

/* Printed menus (Lasinda's own files) */
.cr-printed img, .elementor .cr-printed img { display: block; width: 100%; height: auto; border-radius: 3px; box-shadow: var(--cr-shadow); }

/* Text menus, styled after the printed menus: cream torn paper on wood, brown Copperplate headings */
.cr-menu { background-color: var(--cr-wood); background-image: var(--cr-grain), linear-gradient(180deg, #7a5c39, var(--cr-wood) 30%, #3f2e1b); background-size: 256px, auto; padding: 16px; border-radius: 3px; box-shadow: var(--cr-shadow); }
.cr-menu-paper { background-color: var(--cr-paper); background-image: url('assets/img/paper.webp'); background-size: 320px; color: var(--cr-ink); padding: 40px 44px 36px; }
.cr-menu-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--cr-s4); flex-wrap: wrap; }
.cr-menu h2 { color: var(--cr-wood); font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1.05; }
.cr-menu .cr-menu-sub { font-style: italic; color: var(--cr-ink-soft); font-size: 1.25rem; }
.cr-menu ul { list-style: none; margin: var(--cr-s5) 0 0; padding: 0; display: grid; gap: 18px; }
.cr-menu.cr-two ul { display: block; columns: 2; column-gap: 40px; }
.cr-menu.cr-two li { break-inside: avoid; margin-bottom: 18px; }
.cr-menu .cr-item { display: flex; align-items: baseline; gap: 12px; }
.cr-menu .cr-name { font-family: var(--cr-display); font-weight: 700; font-variant-caps: small-caps; font-size: 1.1875rem; letter-spacing: 0.03em; color: var(--cr-wood); }
.cr-menu .cr-item-price { margin-left: auto; white-space: nowrap; flex: none; font-family: var(--cr-display); font-weight: 700; font-size: 1.1875rem; color: var(--cr-wood); }
.cr-menu .cr-desc { font-size: 1.0625rem; line-height: 1.4; color: var(--cr-ink); margin-top: 2px; }
.cr-menu .cr-gf { font-style: italic; color: var(--cr-red-press); margin-left: 6px; }
.cr-menu .cr-menu-note { margin-top: var(--cr-s5); font-style: italic; color: var(--cr-ink-soft); font-size: 1.0625rem; }

/* Reviews */
.cr-reviews { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: var(--cr-s6); }
.cr-reviews figure { margin: 0; display: flex; flex-direction: column; justify-content: flex-start; gap: var(--cr-s4); text-align: center; padding: 0 var(--cr-s4); }
.cr-reviews figure + figure { border-left: 1px solid var(--cr-line); }
.cr-reviews .cr-stars { font-size: 1.375rem; letter-spacing: 0.18em; line-height: 1; color: var(--cr-cream); }
.cr-reviews blockquote { margin: 0; font-style: italic; font-size: 1.375rem; line-height: 1.5; text-wrap: pretty; }
.cr-reviews figcaption { margin-top: auto; font-family: var(--cr-display); font-variant-caps: small-caps; letter-spacing: 0.06em; font-size: 1.0625rem; color: var(--cr-muted); }

/* Tiles */
.cr-tile .elementor-heading-title a { text-decoration: none; }
.cr-tile .cr-photo img, .elementor .cr-tile .cr-photo img { aspect-ratio: 4 / 3; height: auto; }
.elementor .e-con.cr-tile { --gap: var(--cr-s3); }

/* Hero */
.cr-hero-photo img, .elementor .cr-hero-photo img { aspect-ratio: 4 / 5; height: auto; object-position: 66% 50%; animation: cr-settle 1.2s var(--cr-ease) both; }
@keyframes cr-settle { from { transform: scale(1.04); } to { transform: scale(1); } }
.cr-quote-photo img, .elementor .cr-quote-photo img { aspect-ratio: 16 / 9; height: auto; object-position: 50% 28%; }

/* Inner page heroes: headline, deck and buttons beside one photo */
.cr-page-photo img, .elementor .cr-page-photo img { aspect-ratio: 4 / 3; height: auto; }
.cr-page-photo.cr-tall img, .elementor .cr-page-photo.cr-tall img { aspect-ratio: 4 / 5; }

.cr-page-intro .cr-plaques { margin-top: var(--cr-s6); }

/* Menu page */
.cr-menubar { position: sticky; top: 150px; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--cr-s3) var(--cr-s5); padding: var(--cr-s3) 0; margin-bottom: var(--cr-s6); background: var(--cr-night); border-bottom: 1px solid var(--cr-line-soft); }
.admin-bar .cr-menubar { top: 182px; }
.cr-chips { display: flex; gap: var(--cr-s2); overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.cr-chips::-webkit-scrollbar { display: none; }
.cr-chips a { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--cr-line); border-radius: var(--cr-r-pill); color: var(--cr-cream); text-decoration: none; font-family: var(--cr-display); font-variant-caps: small-caps; letter-spacing: 0.05em; font-size: 1.0625rem; white-space: nowrap; }
.cr-chips a:hover { border-color: var(--cr-cream-soft); }
.cr-chips a[aria-current] { background: var(--cr-cream); color: var(--cr-night); border-color: var(--cr-cream); }
.cr-gfswitch { position: relative; display: inline-flex; align-items: center; gap: var(--cr-s3); min-height: 44px; cursor: pointer; font-style: italic; font-size: 1.1875rem; }
.cr-gfswitch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cr-track { position: relative; flex: none; width: 46px; height: 26px; border-radius: var(--cr-r-pill); background: var(--cr-line); transition: background-color 160ms var(--cr-ease); }
.cr-track::after { content: ''; position: absolute; left: 3px; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: var(--cr-cream); transition: transform 160ms var(--cr-ease); }
.cr-gfswitch input:checked + .cr-track { background: var(--cr-red); }
.cr-gfswitch input:checked + .cr-track::after { transform: translateX(20px); }
.cr-gfswitch input:focus-visible + .cr-track { outline: 3px solid var(--cr-cream); outline-offset: 3px; }
.cr-menus { display: flex; flex-direction: column; gap: var(--cr-s7); }
.cr-menus .cr-menu { scroll-margin-top: 230px; }
.cr-menu.cr-gf-on .cr-menu-note { color: var(--cr-red-press); font-style: normal; }
.cr-menu li[hidden], .cr-menu[hidden], .cr-chips a[hidden] { display: none !important; }

/* Text version of a printed menu, folded away under one line */
.cr-textmenu summary { cursor: pointer; font-family: var(--cr-display); font-variant-caps: small-caps; letter-spacing: 0.06em; font-size: 1.125rem; min-height: 44px; display: flex; align-items: center; }
.cr-textmenu[open] summary { margin-bottom: var(--cr-s4); }
.cr-textmenu summary { list-style: none; gap: var(--cr-s3); }
.cr-textmenu summary::-webkit-details-marker { display: none; }
.cr-textmenu summary::before { content: '+'; font-family: var(--cr-body); font-size: 1.5rem; line-height: 1; width: 1ch; }
.cr-textmenu[open] summary::before { content: '\2212'; }
.elementor-widget-text-editor p + p, .cr-card p + p { margin-top: var(--cr-s3); }

/* Visit list and map */
.cr-visit { margin: 0; display: flex; flex-direction: column; gap: var(--cr-s4); }
.cr-visit dt { font-family: var(--cr-display); font-variant-caps: small-caps; letter-spacing: 0.06em; font-size: 1.0625rem; color: var(--cr-muted); }
.cr-visit dd { margin: 0; font-size: 1.25rem; line-height: 1.45; }
.cr-visit a { text-decoration: none; }
.cr-map { display: block; width: 100%; height: 420px; border: 1px solid var(--cr-line); border-radius: var(--cr-r-md); }

/* TV segments */
.cr-tv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cr-s7) var(--cr-s6); }
.cr-seg { display: flex; flex-direction: column; gap: var(--cr-s4); }
.cr-seg-lead { grid-column: 1 / -1; display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--cr-s7); align-items: center; }
.cr-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--cr-r-md); overflow: hidden; border: 1px solid var(--cr-line); box-shadow: var(--cr-shadow); background: radial-gradient(ellipse 80% 70% at 60% 40%, #4a3626 0%, #1a110c 75%); }
.cr-play { position: absolute; left: 50%; top: 50%; width: 76px; height: 76px; margin: -38px 0 0 -38px; border-radius: 50%; background: var(--cr-red); display: flex; align-items: center; justify-content: center; border: 0; padding: 0; cursor: pointer; box-shadow: 0 10px 26px rgba(0, 0, 0, 0.5); }
.cr-play:disabled { cursor: default; }
.cr-seg-meta { display: flex; gap: var(--cr-s4); align-items: flex-start; }
.cr-seg h3 { font-size: 1.5rem; line-height: 1.2; }
.cr-seg-lead h3 { font-size: clamp(1.75rem, 3vw, 2.375rem); }
.cr-seg-meta p { margin-top: 6px; font-style: italic; font-size: 1.1875rem; color: var(--cr-muted); }

/* Print and online press */
.cr-press { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cr-s7); align-items: start; }
.cr-feature { display: flex; flex-direction: column; gap: var(--cr-s4); padding: var(--cr-s5); border: 1px solid var(--cr-line); border-radius: var(--cr-r-md); background: var(--cr-wine); }
.cr-feature img.cr-feature-photo { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--cr-r-md); }
.cr-feature h3 { font-size: 1.625rem; line-height: 1.2; }
.cr-feature p, .cr-article p { font-style: italic; color: var(--cr-muted); font-size: 1.1875rem; }
.cr-mask-left { -webkit-mask-position: left center; mask-position: left center; }
.cr-article { display: flex; gap: var(--cr-s5); align-items: center; padding-block: var(--cr-s5); border-top: 1px dotted var(--cr-line); }
.cr-article:first-child { border-top: 0; padding-top: 0; }
.cr-article-logo { flex: 0 0 150px; display: flex; }
.cr-article h3 { font-size: 1.3125rem; line-height: 1.25; }

/* Cards and two-up grids */
.elementor .e-con.cr-card { --gap: var(--cr-s4); --padding-top: var(--cr-s7); --padding-bottom: var(--cr-s7); --padding-left: var(--cr-s6); --padding-right: var(--cr-s6); background: var(--cr-wine); border: 1px solid var(--cr-line); border-radius: var(--cr-r-md); box-shadow: var(--cr-shadow); }
.elementor .e-con.cr-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cr-s6); align-items: start; }

/* Story text */
.cr-story, .cr-story p { font-size: 1.375rem; line-height: 1.6; max-width: 62ch; }
.cr-story p + p { margin-top: var(--cr-s5); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

@media (max-width: 1100px) {
  .cr-nav ul { gap: 16px; }
  .cr-nav a { font-size: 1rem; letter-spacing: 0.05em; }
  .cr-plaques { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(-1 * var(--cr-gutter)); padding: 0 var(--cr-gutter) var(--cr-s3); scroll-padding-inline: var(--cr-gutter); }
  .cr-plaques::-webkit-scrollbar { display: none; }
  .cr-plaque { flex: 0 0 228px; scroll-snap-align: start; }
}
@media (max-width: 1200px) {
  .cr-nav { display: none; }
  .cr-burger { display: inline-flex; }
}
@media (max-width: 860px) {
  .elementor .e-con.cr-row { --flex-direction: column; --align-items: stretch; }
  .elementor .e-con.cr-grid3 { grid-template-columns: 1fr; gap: var(--cr-s7); }
  .cr-menu.cr-two ul { columns: 1; }
}
@media (max-width: 760px) {
  body { font-size: 1.1875rem; }
  .elementor .e-con.cr-section { --padding-top: var(--cr-s8); --padding-bottom: var(--cr-s9); }
  .cr-bar-row { min-height: 72px; }
  .cr-logo img { height: 40px; }
  .cr-hide-phone { display: none !important; }
  .cr-host-row { font-size: 1.0625rem; }
  .cr-host-row a { font-size: 1rem; }
  .cr-hero:not(.cr-page-hero) { --padding-top: 0px !important; }
  .elementor .e-con.cr-page-hero { --padding-top: var(--cr-s7); }
  .cr-hero .cr-hero-photo { order: -1; margin-inline: calc(-1 * var(--cr-gutter)); width: calc(100% + 2 * var(--cr-gutter)) !important; max-width: none !important; }
  .elementor .cr-hero .cr-hero-photo img { aspect-ratio: 5 / 4; border-radius: 0; }
  .cr-hero .cr-h1 .elementor-heading-title { font-size: 2.25rem; }
  .cr-hero .cr-btns { --flex-direction: column; --align-items: stretch; }
  .cr-hero .cr-btns .elementor-widget-button, .cr-hero .cr-btns .elementor-button { width: 100%; }
  .cr-hh { padding: var(--cr-s6) var(--cr-s5); }
  .cr-hh ul { width: 100%; flex-direction: column; }
  .cr-hh li { flex-direction: row; justify-content: space-between; align-items: baseline; gap: var(--cr-s4); text-align: right; padding: var(--cr-s3) 0; border-left: 0; border-top: 1px solid rgba(244, 239, 232, 0.4); }
  .cr-hh li:first-child { border-top: 0; padding-top: 0; }
  .cr-reviews figure + figure { border-left: 0; border-top: 1px solid var(--cr-line); padding-top: var(--cr-s6); }
  .cr-menu-paper { padding: 32px 24px 28px; }
  .cr-menubar { top: 0; margin-inline: calc(-1 * var(--cr-gutter)); padding-inline: var(--cr-gutter); }
  .cr-menus .cr-menu { scroll-margin-top: 130px; }
  .cr-tv, .cr-press, .elementor .e-con.cr-grid2 { grid-template-columns: 1fr; }
  .cr-seg-lead { grid-template-columns: 1fr; gap: var(--cr-s4); }
  .cr-article { flex-direction: column; align-items: flex-start; gap: var(--cr-s3); }
  .cr-article-logo { flex: none; }
  .cr-map { height: 320px; }
  .cr-qbar {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
    padding: 6px 8px calc(10px + env(safe-area-inset-bottom, 0px));
    background: #000; border-top: 1px solid var(--cr-line);
  }
  .cr-qbar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 56px; color: var(--cr-cream-soft); text-decoration: none; font-family: var(--cr-display); font-variant-caps: small-caps; letter-spacing: 0.06em; font-size: 0.9375rem; }
  .cr-footer { padding-bottom: calc(var(--cr-s10) + env(safe-area-inset-bottom, 0px)); }
}
@media (min-width: 761px) { .cr-only-phone { display: none !important; } }

/* Link strips between sibling pages (food, areas). */
.cr-links { display: flex; flex-wrap: wrap; gap: var(--cr-s3); justify-content: center; }
.cr-area-body p { max-width: 62ch; }

.cr-guides { list-style: none; padding: 0; margin: var(--cr-s5) 0 0; display: grid; gap: var(--cr-s3); }
.cr-guides a { font-size: 1.25rem; }

/* Polish pass, October 27 2026: one spacing rhythm, balanced two-column rows, steadier cards and menus. */

/* Two sections on the same background read as one: drop the second one's top padding so the gap stays one step, not two. */
.elementor > .e-con.cr-section:not(.cr-band):not(.cr-band-wine) + .e-con.cr-section:not(.cr-band):not(.cr-band-wine),
.elementor > .e-con.cr-section.cr-band + .e-con.cr-section.cr-band { --padding-top: 0px; }
.elementor .e-con.cr-hero { --padding-top: var(--cr-s8); }

/* Rows split evenly so a photo or printed menu never dwarfs its copy */
.elementor .e-con.cr-row > .e-con, .elementor .e-con.cr-row > .elementor-widget { flex: 1 1 0; --width: auto; width: auto; max-width: none; }
.elementor .e-con.cr-hero:not(.cr-page-hero) .cr-row > .cr-hero-photo { flex-grow: 1.05; }
.cr-hero:not(.cr-page-hero) .cr-h1 .elementor-heading-title { font-size: clamp(2.75rem, 4.2vw, 3.75rem); }
.cr-hero-photo img, .elementor .cr-hero-photo img { aspect-ratio: 5 / 4; }
.elementor .e-con.cr-page-hero .cr-row > .cr-stack { flex-grow: 1.35; }
.cr-page-photo.cr-tall img, .elementor .cr-page-photo.cr-tall img { aspect-ratio: 1 / 1; }

/* Dish cards: prices line up whatever the description length */
.elementor .e-con.cr-grid3 > .e-con { height: 100%; }
.elementor .e-con.cr-dish .cr-price { margin-top: auto; }

/* Menus: a single-column menu at full width runs in two columns so names stay near their prices */
@media (min-width: 861px) {
  .cr-menu ul { display: block; columns: 2; column-gap: 56px; }
  .cr-menu li { break-inside: avoid; margin-bottom: 18px; }
  .cr-grid2 .cr-menu ul { columns: 1; }
}

/* Links inside running copy are underlined, so they read as links */
.elementor-widget-text-editor a { color: #f2938d; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: rgba(242, 147, 141, 0.55); transition: color 200ms var(--cr-ease), text-decoration-color 200ms var(--cr-ease); }
.elementor-widget-text-editor a:hover { color: var(--cr-cream); text-decoration-color: currentColor; }
.elementor-widget-text-editor .cr-btn-line a.elementor-button, .elementor-widget-text-editor a.cr-btn { color: inherit; }

/* Long reading text sits in a centered column instead of hugging the left edge */
.cr-story { margin-inline: auto; }
.cr-section .cr-textmenu { width: 100%; max-width: 860px; margin-inline: auto; }
.cr-section .cr-textmenu summary { justify-content: center; }
.cr-section .cr-textmenu[open] summary { justify-content: flex-start; }

/* Guide and short note sections: one centered column, headings sized for reading */
.elementor .e-con.cr-article-body { --gap: var(--cr-s4); }
.elementor .e-con.cr-article-body > .e-con-inner, .elementor .e-con.cr-note > .e-con-inner { max-width: 760px; }
.cr-article-body .cr-h2 .elementor-heading-title { font-size: clamp(1.875rem, 3vw, 2.375rem); line-height: 1.1; }
.cr-article-body .cr-h2:not(:first-child) { margin-top: var(--cr-s6); }
.cr-article-body .elementor-widget-text-editor, .cr-area-body .elementor-widget-text-editor { max-width: 62ch; }
.elementor .e-con.cr-note { --align-items: center; text-align: center; --gap: var(--cr-s5); }
.cr-note .elementor-widget-text-editor p { max-width: 52ch; margin-inline: auto; text-wrap: balance; }

/* Area pages: what to expect beside the hours card */
.elementor .e-con.cr-area-grid { align-items: stretch; gap: var(--cr-s7); }
.elementor .e-con.cr-area-grid > .cr-stack { --gap: var(--cr-s5); }
.cr-area-grid .cr-h2 .elementor-heading-title { font-size: clamp(2rem, 3.4vw, 2.75rem); }

/* Blog: guides as photo tiles */
.elementor .e-con.cr-grid4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--cr-s6); }
.elementor .e-con.cr-feature-row { --gap: var(--cr-s7); }
.cr-feature-row .cr-photo img { aspect-ratio: 16 / 10; height: auto; }

/* Footer: the two action buttons share one width; the divider lines up with the columns */
.cr-footer-col:last-child { align-items: stretch; width: 100%; max-width: 280px; }
.cr-footer-col:last-child .cr-cpl { align-self: flex-start; }
.cr-footer-bottom { border-top: 0; background: linear-gradient(var(--cr-line-soft), var(--cr-line-soft)) no-repeat; background-size: calc(100% - 2 * var(--cr-gutter)) 1px; background-position: var(--cr-gutter) 0; }

@media (max-width: 860px) {
  .elementor .e-con.cr-row > .e-con, .elementor .e-con.cr-row > .elementor-widget { flex: none; width: 100%; }
  .elementor .e-con.cr-grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cr-s6) var(--cr-s4); }
}
@media (max-width: 760px) {
  .elementor .e-con.cr-hero.cr-page-hero { --padding-top: var(--cr-s7); }
  .cr-page-hero .cr-h1 .elementor-heading-title, .cr-page-intro .cr-h1 .elementor-heading-title { font-size: 2.25rem; }
  /* Section buttons stack full width on a phone, like the hero buttons */
  .elementor .e-con.cr-btns { --flex-direction: column; --align-items: stretch; }
  .elementor .e-con.cr-btns > .elementor-widget, .elementor .e-con.cr-btns .elementor-button { width: 100%; }
  /* Sibling links as an even two-column grid instead of a ragged centered pile */
  .cr-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cr-s2); }
  .cr-links a.cr-btn { padding: 0 6px; font-size: 0.9375rem; letter-spacing: 0.03em; white-space: normal; text-align: center; line-height: 1.15; }
  .elementor .e-con.cr-card { --padding-top: var(--cr-s6); --padding-bottom: var(--cr-s6); --padding-left: var(--cr-s5); --padding-right: var(--cr-s5); }
  .cr-visit dd { font-size: 1.1875rem; text-wrap: pretty; }
  .cr-links a.cr-btn:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .cr-footer-col:last-child { max-width: none; }
  .elementor .e-con.cr-grid4 { gap: var(--cr-s6) var(--cr-s4); }
  .cr-grid4 .cr-h3 .elementor-heading-title { font-size: 1.25rem; }
  .elementor .e-con.cr-feature-row { --gap: var(--cr-s4); }
}

/* Scrolling dish row on the home page. Works with touch and keyboard without JavaScript; arrows are added by site.js. */
.cr-dishes-wrap { position: relative; }
.cr-dishes { display: flex; gap: var(--cr-s6); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--cr-gutter); padding: 0 var(--cr-gutter) var(--cr-s4); margin-inline: calc(-1 * var(--cr-gutter)); scrollbar-width: thin; scrollbar-color: var(--cr-line) transparent; -webkit-overflow-scrolling: touch; }
.cr-dishes:focus-visible { outline: 2px solid var(--cr-cream); outline-offset: 4px; }
.cr-dish-card { flex: 0 0 min(340px, 80vw); scroll-snap-align: start; text-align: center; display: flex; flex-direction: column; gap: var(--cr-s3); }
.cr-dish-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--cr-r-md); box-shadow: var(--cr-shadow); }
.cr-dish-card h3 { font-family: var(--cr-display); font-size: 1.5rem; line-height: 1.2; }
.cr-dish-card p { font-style: italic; font-size: 1.1875rem; line-height: 1.45; color: var(--cr-cream-soft); margin: 0 auto; max-width: 32ch; }
.cr-dish-card .cr-price { margin-top: auto; font-style: normal; }
.cr-dishes-nav { display: flex; justify-content: center; gap: var(--cr-s3); margin-top: var(--cr-s4); }
.cr-dishes-nav[hidden] { display: none; }
.cr-dishes-nav button { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--cr-line); background: transparent; color: var(--cr-cream); font-size: 1.75rem; line-height: 1; cursor: pointer; }
.cr-dishes-nav button:hover, .cr-dishes-nav button:focus-visible { background: var(--cr-red); border-color: var(--cr-red); }

/* Owners photo: larger, in a quiet double-line frame with small corner brackets in a weathered wood tone. */

/* Owners photo: aged wood slip, gilt inner line, scrolled corners. */
.elementor .elementor-widget.cr-quote-photo { position: relative; width: min(880px, 100%); align-self: center; margin-inline: auto; padding: 30px; border: 0; outline: 0; border-radius: 4px;
  background: repeating-linear-gradient(92deg, rgba(255, 235, 200, 0.025) 0 1px, transparent 1px 7px), linear-gradient(145deg, #3b261b 0%, #26170f 48%, #32201a 100%);
  box-shadow: 0 0 0 1px #7a5d39, 0 0 0 5px #170d09, 0 0 0 6px rgba(201, 164, 106, 0.6), inset 0 0 0 1px rgba(201, 164, 106, 0.55), inset 0 3px 10px rgba(0, 0, 0, 0.65), 0 28px 54px rgba(0, 0, 0, 0.55); }
.elementor .elementor-widget.cr-quote-photo::before { content: ''; position: absolute; inset: 4px; z-index: 2; pointer-events: none; width: auto; height: auto; border: 0;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2064%2064%27%20width%3D%2764%27%20height%3D%2764%27%3E%3Cg%20transform%3D%27%27%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23c9a46a%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2058V17C3%209%209%203%2017%203H58%22%2F%3E%3Cpath%20d%3D%22M10%2046V20C10%2014.5%2014.5%2010%2020%2010H46%22%2F%3E%3Cpath%20d%3D%22M20%2021c8%200%2013.500%205%2013.500%2011.500%200%205.500-4%209-9%209s-7.800-3.300-7.800-7.200c0-3.300%202.800-5.600%205.600-5.600%202.200%200%203.900%201.700%203.900%203.700%22%2F%3E%3Cpath%20d%3D%22M38%2020c4.500%200%208-2.200%2010-5.500%22%2F%3E%3Cpath%20d%3D%22M20%2038c0%204.500-2.200%208-5.500%2010%22%2F%3E%3Cpath%20d%3D%22M26%2010c1.500-3%203.500-4.500%207-5%22%2F%3E%3Cpath%20d%3D%22M10%2026c-3%201.500-4.500%203.500-5%207%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22%23c9a46a%22%3E%3Ccircle%20cx%3D%226.500%22%20cy%3D%226.500%22%20r%3D%222.300%22%2F%3E%3Cpath%20d%3D%22M58%203l2.600%202.600-2.600%202.600-2.600-2.600zM3%2058l2.600%202.600L3%2063.200.4%2060.600z%22%20transform%3D%22translate(0%20-0.0)%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"), url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2064%2064%27%20width%3D%2764%27%20height%3D%2764%27%3E%3Cg%20transform%3D%27translate(64%200)%20scale(-1%201)%27%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23c9a46a%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2058V17C3%209%209%203%2017%203H58%22%2F%3E%3Cpath%20d%3D%22M10%2046V20C10%2014.5%2014.5%2010%2020%2010H46%22%2F%3E%3Cpath%20d%3D%22M20%2021c8%200%2013.500%205%2013.500%2011.500%200%205.500-4%209-9%209s-7.800-3.300-7.800-7.200c0-3.300%202.800-5.600%205.600-5.600%202.200%200%203.900%201.700%203.900%203.700%22%2F%3E%3Cpath%20d%3D%22M38%2020c4.500%200%208-2.200%2010-5.500%22%2F%3E%3Cpath%20d%3D%22M20%2038c0%204.500-2.200%208-5.500%2010%22%2F%3E%3Cpath%20d%3D%22M26%2010c1.500-3%203.500-4.500%207-5%22%2F%3E%3Cpath%20d%3D%22M10%2026c-3%201.500-4.500%203.500-5%207%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22%23c9a46a%22%3E%3Ccircle%20cx%3D%226.500%22%20cy%3D%226.500%22%20r%3D%222.300%22%2F%3E%3Cpath%20d%3D%22M58%203l2.600%202.600-2.600%202.600-2.600-2.600zM3%2058l2.600%202.600L3%2063.200.4%2060.600z%22%20transform%3D%22translate(0%20-0.0)%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"), url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2064%2064%27%20width%3D%2764%27%20height%3D%2764%27%3E%3Cg%20transform%3D%27translate(0%2064)%20scale(1%20-1)%27%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23c9a46a%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2058V17C3%209%209%203%2017%203H58%22%2F%3E%3Cpath%20d%3D%22M10%2046V20C10%2014.5%2014.5%2010%2020%2010H46%22%2F%3E%3Cpath%20d%3D%22M20%2021c8%200%2013.500%205%2013.500%2011.500%200%205.500-4%209-9%209s-7.800-3.300-7.800-7.200c0-3.300%202.800-5.600%205.600-5.600%202.200%200%203.900%201.700%203.900%203.700%22%2F%3E%3Cpath%20d%3D%22M38%2020c4.500%200%208-2.200%2010-5.500%22%2F%3E%3Cpath%20d%3D%22M20%2038c0%204.500-2.200%208-5.500%2010%22%2F%3E%3Cpath%20d%3D%22M26%2010c1.500-3%203.500-4.500%207-5%22%2F%3E%3Cpath%20d%3D%22M10%2026c-3%201.500-4.500%203.500-5%207%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22%23c9a46a%22%3E%3Ccircle%20cx%3D%226.500%22%20cy%3D%226.500%22%20r%3D%222.300%22%2F%3E%3Cpath%20d%3D%22M58%203l2.600%202.600-2.600%202.600-2.600-2.600zM3%2058l2.600%202.600L3%2063.200.4%2060.600z%22%20transform%3D%22translate(0%20-0.0)%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"), url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2064%2064%27%20width%3D%2764%27%20height%3D%2764%27%3E%3Cg%20transform%3D%27translate(64%2064)%20scale(-1%20-1)%27%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23c9a46a%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2058V17C3%209%209%203%2017%203H58%22%2F%3E%3Cpath%20d%3D%22M10%2046V20C10%2014.5%2014.5%2010%2020%2010H46%22%2F%3E%3Cpath%20d%3D%22M20%2021c8%200%2013.500%205%2013.500%2011.500%200%205.500-4%209-9%209s-7.800-3.300-7.800-7.200c0-3.300%202.800-5.600%205.600-5.600%202.200%200%203.900%201.700%203.900%203.700%22%2F%3E%3Cpath%20d%3D%22M38%2020c4.500%200%208-2.200%2010-5.500%22%2F%3E%3Cpath%20d%3D%22M20%2038c0%204.500-2.200%208-5.500%2010%22%2F%3E%3Cpath%20d%3D%22M26%2010c1.500-3%203.500-4.500%207-5%22%2F%3E%3Cpath%20d%3D%22M10%2026c-3%201.500-4.500%203.500-5%207%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22%23c9a46a%22%3E%3Ccircle%20cx%3D%226.500%22%20cy%3D%226.500%22%20r%3D%222.300%22%2F%3E%3Cpath%20d%3D%22M58%203l2.600%202.600-2.600%202.600-2.600-2.600zM3%2058l2.600%202.600L3%2063.200.4%2060.600z%22%20transform%3D%22translate(0%20-0.0)%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-size: 52px 52px; background-position: left top, right top, left bottom, right bottom; }
.elementor .elementor-widget.cr-quote-photo::after { content: ''; position: absolute; inset: 17px; z-index: 1; pointer-events: none; width: auto; height: auto; border: 1px solid rgba(201, 164, 106, 0.55); border-radius: 2px; box-shadow: inset 0 0 0 4px rgba(0, 0, 0, 0.25); }
.elementor .cr-quote-photo img { aspect-ratio: 3 / 2; object-position: 50% 30%; border: 0; border-radius: 0; outline: 1px solid rgba(201, 164, 106, 0.4); outline-offset: 0; box-shadow: 0 0 0 7px #120a07, 0 6px 18px rgba(0, 0, 0, 0.6); position: relative; }
@media (max-width: 760px) { .elementor .elementor-widget.cr-quote-photo { padding: 22px; } .elementor .elementor-widget.cr-quote-photo::before { background-size: 40px 40px; } .elementor .elementor-widget.cr-quote-photo::after { inset: 12px; } }

/* Dish row, final: no scrollbar, arrows sit on the sides of the photos. */
.cr-dishes { scrollbar-width: none; }
.cr-dishes::-webkit-scrollbar { display: none; }
.cr-dishes-nav { position: absolute; inset: 0 0 auto 0; height: calc(min(340px, 80vw) * 0.75); margin: 0; justify-content: space-between; align-items: center; padding: 0 var(--cr-s2); pointer-events: none; }
.cr-dishes-nav button { pointer-events: auto; background: rgba(12, 7, 7, 0.72); border-color: rgba(244, 239, 232, 0.55); backdrop-filter: blur(2px); }

/* Page copy sections written in build/copy/*.md: one readable column, questions as small headings. */
.elementor .e-con.cr-copy .elementor-widget-text-editor, .elementor .e-con.cr-copy .elementor-widget-heading { max-width: 68ch; }
.elementor .e-con.cr-copy { --gap: var(--cr-s4); }
.cr-copy ul { margin: var(--cr-s3) 0 0; padding-left: 1.25em; }
.cr-copy li + li { margin-top: var(--cr-s2); }
.cr-copy .cr-q { font-size: 1.375rem; margin-top: var(--cr-s4); }

/* Main menu dropdowns (Menu, Food, Catering, Events, Areas, About) */
.cr-nav li { position: relative; }
.cr-nav li.menu-item-has-children { display: flex; align-items: center; padding-block: 18px; }
.cr-sub-toggle { width: 22px; height: 30px; padding: 0; margin-left: 1px; background: none; border: 0; color: var(--cr-cream-soft); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.cr-sub-toggle::before { content: ''; width: 6px; height: 6px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: translateY(-2px) rotate(45deg); transition: transform 160ms var(--cr-ease); }
.cr-nav li.is-open > .cr-sub-toggle::before { transform: translateY(1px) rotate(225deg); }
.cr-sub-toggle:focus-visible { outline: 2px solid var(--cr-cream); outline-offset: 2px; border-radius: 4px; }
.cr-nav .sub-menu { display: none; position: absolute; top: 100%; left: -18px; z-index: 30; min-width: 250px; margin: 0; padding: 10px 0; flex-direction: column; align-items: stretch; gap: 0; background: #000; border: 1px solid var(--cr-line); border-radius: var(--cr-r-md); box-shadow: 0 20px 44px rgba(0, 0, 0, 0.65); }
.cr-nav .sub-menu a { display: block; padding: 10px 22px; text-decoration: none; }
.cr-nav .sub-menu a:hover, .cr-nav .sub-menu a:focus-visible { background: rgba(244, 239, 232, 0.08); text-decoration: none; color: var(--cr-cream); }
.cr-nav > ul > li:nth-last-child(-n+2) > .sub-menu { left: auto; right: -18px; }
.cr-nav li.is-open > .sub-menu, .cr-nav li:focus-within > .sub-menu { display: flex; }
@media (hover: hover) { .cr-nav li:hover > .sub-menu { display: flex; } }

/* Phone menu: every group open, pages indented under it */
.cr-mobile-nav .sub-menu { margin-top: var(--cr-s3); padding-left: var(--cr-s5); gap: var(--cr-s3); border-left: 1px solid var(--cr-line); }
.cr-mobile-nav .sub-menu a { font-weight: 400; font-size: 1.25rem; }

/* Footer sitemap: one column per group */
.cr-footer-bottom nav > ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--cr-s6) var(--cr-s5); align-items: start; }
.cr-footer-bottom nav > ul > li > a { display: inline-block; margin-bottom: var(--cr-s3); color: var(--cr-cream); font-size: 1.1875rem; }
.cr-footer-bottom .sub-menu { display: flex; flex-direction: column; flex-wrap: nowrap; gap: var(--cr-s2); }
.cr-footer-bottom .sub-menu a { font-size: 1rem; letter-spacing: 0.04em; }

/* Dish row arrows: small, thin, centered on the photo. No red fill, so a tap never leaves a pink circle behind. */
.cr-dishes-nav button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; font-size: 0; border: 1px solid rgba(244, 239, 232, 0.3); background: rgba(12, 7, 7, 0.55); color: var(--cr-cream); transition: background-color 160ms var(--cr-ease), border-color 160ms var(--cr-ease), transform 160ms var(--cr-ease); }
.cr-dishes-nav button svg { display: block; }
.cr-dishes-nav button:hover, .cr-dishes-nav button:focus-visible { background: rgba(12, 7, 7, 0.55); border-color: rgba(244, 239, 232, 0.3); }
@media (hover: hover) { .cr-dishes-nav button:hover { background: rgba(12, 7, 7, 0.82); border-color: rgba(244, 239, 232, 0.7); } }
.cr-dishes-nav button:active { transform: scale(0.94); }
.cr-dishes-nav button:focus-visible { outline: 2px solid var(--cr-cream); outline-offset: 2px; border-color: rgba(244, 239, 232, 0.7); }

/* Awards strip: one row that drifts left very slowly, loops, and can be swiped or dragged. Logos turn to their brand color on hover. */
.cr-plaques { display: flex; gap: var(--cr-s4); overflow-x: auto; scroll-snap-type: none; scrollbar-width: none; margin-inline: calc(-1 * var(--cr-gutter)); padding: 0 var(--cr-gutter) var(--cr-s3); -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.cr-plaques::-webkit-scrollbar { display: none; }
.cr-plaque { flex: 0 0 248px; scroll-snap-align: none; }
.cr-mask { transition: background-color 400ms var(--cr-ease), opacity 400ms var(--cr-ease); }
.cr-plaque .cr-plaque-logo img { filter: grayscale(1) brightness(1.25); opacity: 0.9; transition: filter 400ms var(--cr-ease), opacity 400ms var(--cr-ease); }
@media (hover: hover) {
  .cr-plaque:hover .cr-mask { background: var(--cr-brand, var(--cr-cream)); opacity: 1; }
  .cr-plaque:hover .cr-plaque-logo img { filter: none; opacity: 1; }
}
.cr-plaque.cr-hover .cr-mask { background: var(--cr-brand, var(--cr-cream)); opacity: 1; }
.cr-plaque.cr-hover .cr-plaque-logo img { filter: none; opacity: 1; }
/* Touch screens: site.js sets --cr-c (0 to 1) from how close a plaque is to the middle of the strip, so color fades in
   as it arrives and back out as it leaves. No transition, the scroll itself is the animation. */
@media (hover: none) {
  .cr-plaque { --cr-c: 0; }
  .cr-plaque .cr-mask { background: color-mix(in srgb, var(--cr-brand, var(--cr-cream)) calc(var(--cr-c) * 100%), var(--cr-cream)); opacity: calc(0.92 + 0.08 * var(--cr-c)); transition: none; }
  .cr-plaque .cr-plaque-logo img { filter: grayscale(calc(1 - var(--cr-c))) brightness(calc(1.25 - 0.25 * var(--cr-c))); opacity: calc(0.9 + 0.1 * var(--cr-c)); transition: none; }
}

/* Copy sections with a photo: text on one side, one photo on the other, swapping sides each section. */
.elementor .e-con.cr-copy-row { --display: grid; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); --gap: var(--cr-s7); gap: var(--cr-s7); align-items: center; }
.elementor .e-con.cr-copy-row.cr-flip { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
.elementor .e-con.cr-copy-row.cr-flip > .cr-copy-photo { order: -1; }
.elementor .e-con.cr-copy-col { --gap: var(--cr-s4); min-width: 0; }
.elementor .cr-copy-photo { width: 100%; align-self: center; }
.cr-copy-photo img, .elementor .cr-copy-photo img { aspect-ratio: 4 / 3; width: 100%; height: auto; object-fit: cover; }
@media (max-width: 860px) {
  .elementor .e-con.cr-copy-row, .elementor .e-con.cr-copy-row.cr-flip { grid-template-columns: minmax(0, 1fr); gap: var(--cr-s5); }
  .elementor .e-con.cr-copy-row > .cr-copy-photo, .elementor .e-con.cr-copy-row.cr-flip > .cr-copy-photo { order: -1; }
}

/* Reviews: where each rating and review comes from, with stars. */
.cr-reviews-wrap { display: flex; flex-direction: column; gap: var(--cr-s6); }
.cr-ratings { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--cr-s4) var(--cr-s7); }
.cr-ratings a { display: inline-flex; align-items: center; gap: var(--cr-s3); text-decoration: none; color: var(--cr-cream); min-height: 44px; }
.cr-ratings a:hover .cr-rate-num { text-decoration: underline; }
.cr-rate-num { font-family: var(--cr-display); font-weight: 700; font-size: 2rem; line-height: 1; }
.cr-rate-meta { display: flex; flex-direction: column; gap: 2px; font-size: 1.0625rem; line-height: 1.2; color: var(--cr-cream-soft); }
.cr-rate-stars { letter-spacing: 0.14em; color: var(--cr-cream); font-size: 1rem; }
.cr-reviews { grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: var(--cr-s5); }
.cr-reviews figure.cr-review { padding: var(--cr-s5); text-align: left; align-items: stretch; gap: var(--cr-s3); border: 1px solid var(--cr-line); border-radius: var(--cr-r-md); background: var(--cr-wine); box-shadow: var(--cr-shadow); }
.cr-reviews figure + figure.cr-review { border-left: 1px solid var(--cr-line); }
.cr-review-top { display: flex; align-items: center; gap: var(--cr-s3); }
.cr-review-top svg { flex: none; }
.cr-reviews .cr-review blockquote { font-size: 1.1875rem; line-height: 1.5; }
.cr-reviews .cr-review figcaption { margin-top: auto; padding-top: var(--cr-s3); font-size: 1rem; letter-spacing: 0.04em; display: flex; flex-wrap: wrap; gap: 2px 6px; align-items: baseline; }
.cr-reviews .cr-review figcaption a { margin-left: auto; color: var(--cr-cream-soft); font-size: 0.9375rem; }
.cr-reviews-asof { margin: 0; text-align: center; color: var(--cr-muted); font-size: 1rem; }
@media (max-width: 860px) { .cr-reviews figure + figure.cr-review { border-left: 1px solid var(--cr-line); border-top: 1px solid var(--cr-line); padding-top: var(--cr-s5); } }

.cr-price-note { font-family: var(--cr-body); font-style: italic; font-weight: 400; letter-spacing: 0; font-size: 0.9375rem; color: var(--cr-cream-soft); }

/* Three photo treatments for the copy sections, rotating so no two neighbors look alike. */
.elementor .cr-copy-photo.cr-ph-0 { padding: 14px; }
.elementor .cr-copy-photo.cr-ph-0 img { border-radius: 4px; outline: 1px solid rgba(176, 141, 92, 0.75); outline-offset: 12px; box-shadow: 0 18px 34px rgba(0, 0, 0, 0.5); }
.elementor .cr-copy-photo.cr-ph-1 img { border-radius: 999px 999px 10px 10px; aspect-ratio: 4 / 4.2; box-shadow: 0 0 0 1px rgba(176, 141, 92, 0.6), 0 0 0 9px #140b0a, 0 0 0 10px rgba(176, 141, 92, 0.45), 0 22px 40px rgba(0, 0, 0, 0.5); }
.elementor .cr-copy-photo.cr-ph-1 { padding: 12px; }
.elementor .cr-copy-photo.cr-ph-2 { padding: 10px; }
.elementor .cr-copy-photo.cr-ph-2 img { box-sizing: border-box; border: 10px solid #efe6d6; border-bottom-width: 36px; border-radius: 2px; transform: rotate(-1.6deg); box-shadow: 0 16px 30px rgba(0, 0, 0, 0.55); background: #efe6d6; }
.elementor .e-con.cr-copy-row.cr-flip .cr-copy-photo.cr-ph-2 img { transform: rotate(1.6deg); }
@media (max-width: 860px) { .elementor .cr-copy-photo.cr-ph-1 img { aspect-ratio: 4 / 3; border-radius: 999px 999px 10px 10px; } .elementor .cr-copy-photo.cr-ph-0 { padding: 12px; } }

/* Rating line under the home hero buttons */
.cr-hero-rating { display: inline-flex; align-items: center; gap: var(--cr-s3); margin-top: var(--cr-s4); text-decoration: none; color: var(--cr-cream); min-height: 44px; }
.cr-hero-rating:hover .cr-rate-num { text-decoration: underline; }

/* Phones: the dish cards sit centered with an equal peek of the neighbors on both sides, instead of hugging the left edge. */
@media (max-width: 760px) {
  .cr-dishes { padding-inline: calc((100vw - min(340px, 80vw)) / 2); scroll-padding-inline: 0; }
  .cr-dish-card { scroll-snap-align: center; }
}

/* Phones: each happy hour deal is one tidy row, the amount in a fixed left column and the description beside it. */
@media (max-width: 760px) {
  .cr-hh li { display: grid; grid-template-columns: 8.25rem minmax(0, 1fr); align-items: baseline; column-gap: var(--cr-s4); text-align: left; }
  .cr-hh .cr-big { white-space: nowrap; text-align: left; }
  .cr-hh li span:last-child { text-align: right; }
  .cr-hh-lead, .cr-hh-lead p { text-align: left; }
}

/* Home tiles (brunch, catering, events): each photo and its title and line read as one centered card, with clear space between cards. */
.elementor .e-con.cr-tile { text-align: center; align-items: center; --gap: var(--cr-s2); }
.cr-tile .elementor-widget { margin: 0; width: 100%; }
.cr-tile .elementor-heading-title { margin: var(--cr-s2) 0 0; }
.cr-tile .cr-muted p { margin: 0; }
@media (max-width: 860px) {
  .elementor .e-con.cr-grid3:has(> .cr-tile) { gap: var(--cr-s8); }
}

/* Sections flow into one another: the alternate bands fade in and out of the page color instead of starting on a hard line. */
.elementor .e-con.cr-band { background-color: transparent; background-image: linear-gradient(180deg, rgba(19, 10, 10, 0) 0, rgba(19, 10, 10, 0.55) 40px, var(--cr-cellar) 130px, var(--cr-cellar) calc(100% - 130px), rgba(19, 10, 10, 0.55) calc(100% - 40px), rgba(19, 10, 10, 0) 100%), var(--cr-grain); background-size: 100% 100%, 256px 256px; }
.elementor .e-con.cr-band-wine { background-color: transparent; background-image: linear-gradient(180deg, rgba(26, 14, 15, 0) 0, rgba(26, 14, 15, 0.55) 40px, var(--cr-wine) 130px, var(--cr-wine) calc(100% - 130px), rgba(26, 14, 15, 0.55) calc(100% - 40px), rgba(26, 14, 15, 0) 100%); }

/* Sideways rows (awards, dishes) fade softly at both ends instead of being sliced off. */
.cr-plaques, .cr-dishes { -webkit-mask-image: linear-gradient(90deg, transparent 0, rgba(0, 0, 0, 0.35) 3%, #000 11%, #000 89%, rgba(0, 0, 0, 0.35) 97%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, rgba(0, 0, 0, 0.35) 3%, #000 11%, #000 89%, rgba(0, 0, 0, 0.35) 97%, transparent 100%); }

/* Party package cards: bronze frame, the price up front, what is included as a short list, an order button on each. */
.elementor .e-con.cr-card.cr-pack { --gap: var(--cr-s4); align-items: center; text-align: center; background: linear-gradient(180deg, #241415 0%, var(--cr-wine) 70%); border: 1px solid rgba(176, 141, 92, 0.9); box-shadow: 0 0 0 6px #120909, 0 0 0 7px rgba(176, 141, 92, 0.5), var(--cr-shadow); }
.cr-pack .cr-pack-price .elementor-heading-title { font-family: var(--cr-display); font-weight: 700; font-size: clamp(2.75rem, 5vw, 3.75rem); line-height: 1; color: var(--cr-cream); margin: 0; }
.cr-pack .cr-pack-price { padding-bottom: var(--cr-s4); border-bottom: 1px solid rgba(176, 141, 92, 0.5); width: 100%; }
.cr-pack-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--cr-s3); text-align: left; max-width: 22rem; margin-inline: auto; }
.cr-pack-list li { position: relative; padding-left: 1.75rem; font-size: 1.1875rem; line-height: 1.35; }
.cr-pack-list li::before { content: ''; position: absolute; left: 2px; top: 0.5em; width: 0.7rem; height: 0.38rem; border-left: 2px solid #b08d5c; border-bottom: 2px solid #b08d5c; transform: rotate(-45deg); }
.cr-pack-list .cr-pack-serves { font-family: var(--cr-display); font-variant-caps: small-caps; letter-spacing: 0.06em; font-size: 1.25rem; }
.cr-pack .cr-btn { margin-top: auto; }
.cr-pack .elementor-widget-button { width: 100%; }
.cr-pack .elementor-button, .cr-pack a.cr-btn { width: 100%; max-width: 100%; box-sizing: border-box; white-space: normal; justify-content: center; text-align: center; }

/* Public events: the two cards match in height, with their buttons on the same line. */
.elementor .e-con.cr-grid2:has(> .cr-card) { align-items: stretch; }
.elementor .e-con.cr-grid2 > .cr-card .elementor-widget-button { margin-top: auto; }

/* A thin bronze line around every photo so it does not melt into the dark background. */
.cr-photo img, img.cr-photo, .elementor .cr-photo img, .cr-dish-card img { box-shadow: 0 0 0 1px rgba(176, 141, 92, 0.75), var(--cr-shadow); }

/* Press: the whole row or card opens the article, and the TV play button is a link. */
.cr-article, .cr-feature { position: relative; }
.cr-article .cr-cpl::after, .cr-feature .cr-cpl::after { content: ''; position: absolute; inset: 0; }
.cr-article:hover h3, .cr-feature:hover h3 { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
a.cr-play { display: grid; place-items: center; text-decoration: none; }
.cr-seg h3 a { color: inherit; text-decoration: none; }
.cr-seg h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Home hero, cinematic: a full-bleed photo that melts into the page on the left, a slow push-in, and the headline rising over it. */
.elementor .e-con.cr-hero.cr-hero-cine { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: clamp(560px, 80vh, 780px); --padding-top: var(--cr-s9); --padding-bottom: var(--cr-s9); background: #050303; }
.cr-hero-cine .cr-row { position: static; width: 100%; }
.cr-hero-cine .cr-row > .cr-stack { position: relative; z-index: 2; max-width: min(640px, 100%); }
.elementor .cr-hero-cine .cr-hero-photo { position: absolute !important; inset: 0; z-index: -2; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; flex: none !important; }
.cr-hero-cine .cr-hero-photo .elementor-widget-container { height: 100%; }
.elementor .cr-hero-cine .cr-hero-photo img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 60% 50%; border-radius: 0; box-shadow: none; transform-origin: 70% 50%; animation: cr-push 30s ease-in-out infinite alternate; }
.elementor .e-con.cr-hero.cr-hero-cine::before { content: ''; display: block; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 1; width: auto; height: auto; background: linear-gradient(90deg, rgba(5, 3, 3, 0.8) 0%, rgba(5, 3, 3, 0.55) 26%, rgba(5, 3, 3, 0.16) 48%, rgba(5, 3, 3, 0) 64%), linear-gradient(0deg, var(--cr-night) 0%, rgba(12, 7, 7, 0) 12%); }
.elementor .e-con.cr-hero.cr-hero-cine::after { content: ''; display: block; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: none; }
.elementor .cr-hero-cine .cr-h1 .elementor-heading-title { font-size: clamp(2.9rem, 5.6vw, 5.4rem); line-height: 1.02; text-shadow: 0 2px 30px rgba(0, 0, 0, 0.6); }
.cr-hero-cine .cr-deck, .cr-hero-cine .cr-deck p { font-size: clamp(1.25rem, 1.7vw, 1.6rem); line-height: 1.45; max-width: 34ch; text-shadow: 0 1px 18px rgba(0, 0, 0, 0.7); }
.cr-hero-cine .cr-row > .cr-stack > * { animation: cr-rise 900ms var(--cr-ease) both; }
.cr-hero-cine .cr-row > .cr-stack > :nth-child(2) { animation-delay: 140ms; }
.cr-hero-cine .cr-row > .cr-stack > :nth-child(3) { animation-delay: 280ms; }
.cr-hero-cine .cr-row > .cr-stack > :nth-child(4) { animation-delay: 420ms; }
@keyframes cr-push { from { transform: scale(1); } to { transform: scale(1.07) translate3d(-1%, 0, 0); } }
@keyframes cr-rise { from { opacity: 0; transform: translate3d(0, 22px, 0); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .elementor .cr-hero-cine .cr-hero-photo img, .cr-hero-cine .cr-row > .cr-stack > * { animation: none; } }
@media (max-width: 860px) {
  .elementor .e-con.cr-hero.cr-hero-cine { align-items: flex-end; min-height: min(92vh, 720px); padding-top: 0 !important; padding-bottom: var(--cr-s8) !important; --padding-top: 0px !important; }
  .elementor .cr-hero-cine .cr-hero-photo { order: 0; }
  .elementor .cr-hero-cine .cr-hero-photo img { object-position: 62% 30%; }
  .elementor .e-con.cr-hero.cr-hero-cine { min-height: 0; align-items: flex-start; }
  .elementor .e-con.cr-hero.cr-hero-cine::before { inset: 0 0 auto 0; height: 440px; background: linear-gradient(180deg, rgba(5, 3, 3, 0.2) 0%, rgba(5, 3, 3, 0) 30%, rgba(5, 3, 3, 0.6) 62%, #050303 92%); }
  .elementor .e-con.cr-hero.cr-hero-cine::after { display: none; }
  .cr-hero-cine .elementor-widget-shortcode:has(.cr-hero-slides) { inset: 0 0 auto 0 !important; height: 440px; }
  .cr-hero-cine .cr-row > .cr-stack { padding-top: 330px; }
  .elementor .cr-hero-cine .cr-hero-slides .cr-slide { object-position: 58% 50%; }
  .elementor .cr-hero-cine .cr-h1 .elementor-heading-title { font-size: 2.6rem; }
}

/* Every star is gold. */
.cr-stars, .cr-rate-stars, .cr-reviews .cr-stars { color: #e8b84b; text-shadow: 0 0 14px rgba(232, 184, 75, 0.35); }

.cr-hero-cine .cr-hero-rating { margin-top: var(--cr-s5); text-shadow: 0 1px 14px rgba(0, 0, 0, 0.8); }
.cr-hero-cine .cr-rate-num { font-size: 2.5rem; }
.cr-hero-cine .cr-rate-stars { font-size: 1.3rem; letter-spacing: 0.12em; }
.cr-hero-cine .cr-rate-meta { color: var(--cr-cream); font-size: 1.125rem; }

/* Hero slideshow: full-bleed, each photo fades in over the last and drifts slowly. */
.cr-hero-cine .elementor-widget-shortcode:has(.cr-hero-slides) { position: absolute !important; inset: 0; z-index: -2; margin: 0 !important; width: 100% !important; max-width: none !important; }
.cr-hero-cine .elementor-widget-container { height: 100%; }
.cr-hero-slides { position: absolute; inset: 0; background: #050303; }
.cr-hero-slides .cr-slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 96% 50%; opacity: 0; transition: opacity 1600ms ease-in-out; transform: scale(1); }
.cr-hero-slides .cr-slide.is-on { opacity: 1; animation: cr-push 9s ease-out both; }
@media (prefers-reduced-motion: reduce) { .cr-hero-slides .cr-slide.is-on { animation: none; } }

/* No see-through buttons: the secondary button is solid cream. */
.cr-btn-line .elementor-button, a.cr-btn.cr-btn-line, .elementor .cr-btn-line .elementor-button { background: var(--cr-cream) !important; color: #1a0e0f !important; border-color: var(--cr-cream) !important; box-shadow: 0 6px 22px rgba(0, 0, 0, 0.4); }
.cr-btn-line .elementor-button:hover, a.cr-btn.cr-btn-line:hover { background: #fff !important; border-color: #fff !important; color: #1a0e0f !important; }
.cr-hh-lead a.cr-btn { background: var(--cr-cream); color: #1a0e0f; border-color: var(--cr-cream); }

.cr-hero-cine .elementor-widget-shortcode:has(.cr-hero-slides) .elementor-shortcode { position: absolute; inset: 0; height: 100%; }

/* Quick-info cards that sit across the bottom edge of the hero. */
.elementor .e-con.cr-quickbar { --padding-top: 0px; --padding-bottom: var(--cr-s6); position: relative; z-index: 4; margin-top: -64px; }
.cr-quick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cr-s4); }
.cr-quick-card { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: var(--cr-s4); align-items: center; padding: var(--cr-s5) var(--cr-s6); text-decoration: none; color: var(--cr-cream); background: rgba(22, 12, 12, 0.92); border: 1px solid rgba(176, 141, 92, 0.7); border-radius: var(--cr-r-md); box-shadow: 0 18px 44px rgba(0, 0, 0, 0.55), inset 0 0 0 4px rgba(12, 7, 7, 0.9), inset 0 0 0 5px rgba(176, 141, 92, 0.28); backdrop-filter: blur(6px); transition: transform 220ms var(--cr-ease), border-color 220ms var(--cr-ease); }
.cr-quick-card:hover { transform: translateY(-3px); border-color: rgba(232, 184, 75, 0.95); }
.cr-quick-ico { grid-row: 1 / 3; color: #e8b84b; display: grid; place-items: center; }
.cr-quick-t { font-family: var(--cr-display); font-variant-caps: small-caps; letter-spacing: 0.07em; font-size: 1.375rem; line-height: 1.1; }
.cr-quick-s { font-style: italic; font-size: 1.125rem; color: var(--cr-cream-soft); }
@media (max-width: 860px) { .elementor .e-con.cr-quickbar { margin-top: -24px; } .cr-quick { grid-template-columns: 1fr; } .cr-quick-card { padding: var(--cr-s4) var(--cr-s5); } }

/* Home hero keeps one clear action: a solid Order online button, with Reserve as a quiet text link beside it. */
.cr-hero-cine .cr-btns { --align-items: center; --gap: var(--cr-s5); }
.cr-btn-text .elementor-button, .elementor .cr-btn-text .elementor-button { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; min-height: 0 !important; color: var(--cr-cream) !important; font-size: 1.125rem; letter-spacing: 0.08em; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; text-decoration-color: rgba(201, 164, 105, 0.8); text-shadow: 0 1px 14px rgba(0, 0, 0, 0.85); }
.cr-btn-text .elementor-button:hover { text-decoration-color: var(--cr-cream); }

.elementor .cr-hero-cine .cr-h1 .elementor-heading-title { text-shadow: 0 2px 4px rgba(0, 0, 0, 0.55), 0 4px 34px rgba(0, 0, 0, 0.75); }
.cr-hero-cine .cr-deck, .cr-hero-cine .cr-deck p { text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7), 0 2px 22px rgba(0, 0, 0, 0.85); }
/* Home, October 30 2026: the dish photos sit on the right and melt into the dark on the left, so the headline reads on
   dark ground while the food stays bright. Sections meet without a seam. */
.elementor .e-con.cr-hero.cr-hero-cine { min-height: clamp(600px, calc(100svh - 150px), 820px); --padding-top: var(--cr-s7); --padding-bottom: var(--cr-s8); background-color: #050303; background-image: linear-gradient(180deg, rgba(12, 7, 7, 0) 72%, var(--cr-night) 100%); background-size: 100% 100%; }
.elementor .e-con.cr-hero.cr-hero-cine::before { background: radial-gradient(ellipse 46% 62% at 22% 52%, rgba(5, 3, 3, 0.55) 0%, rgba(5, 3, 3, 0) 100%); }
.cr-hero-cine .cr-hero-slides { background: transparent; }
.cr-slides-pics { position: absolute; top: 0; bottom: 0; right: 0; left: 22%; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.22) 12%, rgba(0, 0, 0, 0.7) 26%, #000 40%, #000 95%, rgba(0, 0, 0, 0.65) 100%), linear-gradient(0deg, transparent 0%, rgba(0, 0, 0, 0.6) 12%, #000 26%, #000 93%, rgba(0, 0, 0, 0.7) 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.22) 12%, rgba(0, 0, 0, 0.7) 26%, #000 40%, #000 95%, rgba(0, 0, 0, 0.65) 100%), linear-gradient(0deg, transparent 0%, rgba(0, 0, 0, 0.6) 12%, #000 26%, #000 93%, rgba(0, 0, 0, 0.7) 100%);
  mask-composite: intersect; }
.cr-hero-slides .cr-slide { object-position: 50% 50%; }
.cr-hero-slides .cr-slide[data-name="Lasagna"] { object-position: 38% 40%; }
.cr-hero-slides .cr-slide[data-name="Pepperoni pizza"] { object-position: 50% 30%; }
.cr-hero-cine .cr-row > .cr-stack { --gap: 20px; max-width: min(660px, 100%); }
.cr-hero-cine .cr-deck, .cr-hero-cine .cr-deck p { max-width: 36ch; }
.cr-hero-cine .cr-hero-rating { margin-top: var(--cr-s3); }

/* The dish name and one gold tick per photo, quietly in the corner. */
.cr-slides-cap { position: absolute; z-index: 2; right: max(var(--cr-gutter), calc((100% - var(--cr-wrap)) / 2 + var(--cr-gutter))); bottom: var(--cr-s7); margin: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; color: var(--cr-cream); text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), 0 2px 16px rgba(0, 0, 0, 0.9); pointer-events: none; }
.cr-cap-name { font-family: var(--cr-display); font-weight: 700; font-variant-caps: small-caps; letter-spacing: 0.14em; font-size: 1.0625rem; line-height: 1; transition: opacity 500ms var(--cr-ease), transform 500ms var(--cr-ease); }
.cr-cap-name.is-out { opacity: 0; transform: translateY(4px); }
.cr-ticks { display: flex; gap: 6px; }
.cr-ticks i { position: relative; width: 30px; height: 2px; border-radius: 2px; overflow: hidden; background: rgba(176, 141, 92, 0.45); box-shadow: 0 1px 6px rgba(0, 0, 0, 0.6); }
.cr-ticks i::after { content: ''; position: absolute; inset: 0; background: #e8b84b; transform: scaleX(0); transform-origin: left center; }
.cr-ticks i.is-done::after { transform: scaleX(1); }
.cr-ticks i.is-on::after { animation: cr-tick 6s linear forwards; }
@keyframes cr-tick { to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) { .cr-ticks i.is-on::after { transform: scaleX(1); } }

@media (max-width: 860px) {
  .elementor .e-con.cr-hero.cr-hero-cine { --cr-hero-ph: clamp(230px, 35svh, 420px); min-height: 0; padding-bottom: var(--cr-s7) !important; }
  .elementor .e-con.cr-hero.cr-hero-cine::before { display: none; }
  .cr-hero-cine .elementor-widget-shortcode:has(.cr-hero-slides) { height: var(--cr-hero-ph); }
  .cr-slides-pics { left: 0;
    -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0%, #000 8%, #000 50%, rgba(0, 0, 0, 0.55) 72%, rgba(0, 0, 0, 0.15) 88%, transparent 100%); -webkit-mask-composite: source-over;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0%, #000 8%, #000 50%, rgba(0, 0, 0, 0.55) 72%, rgba(0, 0, 0, 0.15) 88%, transparent 100%); mask-composite: add; }
  .elementor .cr-hero-cine .cr-hero-slides .cr-slide { object-position: 50% 50%; }
  .elementor .cr-hero-cine .cr-hero-slides .cr-slide[data-name="Lasagna"] { object-position: 30% 40%; }
  .cr-hero-cine .cr-row > .cr-stack { padding-top: calc(var(--cr-hero-ph) - 100px); --gap: 14px; }
  .elementor .cr-hero-cine .cr-h1 .elementor-heading-title { font-size: 2.45rem; }
  .cr-hero-cine .cr-deck, .cr-hero-cine .cr-deck p { font-size: 1.1875rem; line-height: 1.42; }
  .cr-slides-cap { display: none; }
}

/* Bands fade in and out of the page color with no texture of their own, so no grain seam shows where they start. */
.elementor .e-con.cr-band { background-image: linear-gradient(180deg, rgba(19, 10, 10, 0) 0, rgba(19, 10, 10, 0.55) 60px, var(--cr-cellar) 160px, var(--cr-cellar) calc(100% - 160px), rgba(19, 10, 10, 0.55) calc(100% - 60px), rgba(19, 10, 10, 0) 100%); background-size: 100% 100%; }

/* The brand fleuron above each centered home heading, so one section hands off to the next. */
.home .elementor-widget-heading.cr-h2.cr-center::before { content: ''; display: block; width: 200px; height: 13px; margin: 0 auto var(--cr-s4); background: url('assets/img/fleuron.svg') no-repeat center / contain; opacity: 0.9; }

/* Happy hour: lit from the top left like a warm room, with a deep soft shadow instead of a flat slab. */
.cr-hh { background: radial-gradient(ellipse 70% 130% at 22% 0%, #d4423f 0%, var(--cr-red) 42%, #96272a 100%); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4), 0 34px 70px rgba(0, 0, 0, 0.6), 0 0 120px rgba(193, 53, 56, 0.14); }
.cr-hh::before { border-color: rgba(244, 239, 232, 0.32); }

/* Dish cards read like a menu line: the price sits right under the name instead of floating far below. */
.cr-dish-card h3 { order: 1; }
.cr-dish-card .cr-price { order: 2; margin-top: -4px; color: #d9bd8c; font-size: 1.125rem; }
.cr-dish-card p:not(.cr-price) { order: 3; }
.cr-dish-card img { order: 0; margin-bottom: var(--cr-s2); }

/* Home reviews: three in one even row instead of a wall of six; each card lit softly from the top. */
.home .cr-reviews figure.cr-review:nth-child(n+4) { display: none; }
.cr-reviews figure.cr-review { background: linear-gradient(180deg, #221315 0%, var(--cr-wine) 55%, #150b0c 100%); border-color: rgba(176, 141, 92, 0.32); }

/* The film grain lies over the whole page in one fixed layer, so it never starts or stops at a section edge. */
body { background-image: none; }
body::before { content: ''; position: fixed; inset: 0; z-index: 15; pointer-events: none; background-image: var(--cr-grain); background-size: 256px 256px; }

/* The footer darkens out of the page instead of starting on a ruled line. */
.cr-footer { border-top: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0.7) 70px, #000 160px); }

/* Home: the hero already offers Reserve, so the host line just gives tonight's hours. Fewer competing links in the first view. */
.home .cr-host-row > a { display: none; }

/* Hero lockup: a fine engraved gold rule between the intro and the buttons, in the dark column only. The photo starts
   past it on every width, and the dish name with its gold ticks sits low in the same column, off the photo. */
.cr-slides-pics { left: max(22%, calc((100% - 1192px) / 2 + 200px)); }
.cr-hero-cine .cr-deck { position: relative; }
.elementor .cr-hero-cine .cr-deck.elementor-widget:not(:last-child) { margin-block-end: 14px; }
.cr-hero-cine .cr-deck::after { content: ''; position: absolute; left: 0; top: calc(100% + 12px); width: 220px; height: 10px; background: url('assets/img/rule-gold.svg') no-repeat left center / contain; filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.8)); pointer-events: none; }
.cr-slides-cap { left: max(var(--cr-gutter), calc((100% - 1192px) / 2)); right: auto; bottom: var(--cr-s6); align-items: flex-start; }
@media (max-width: 860px) {
  .cr-slides-pics { left: 0; }
  .cr-hero-cine .cr-row > .cr-stack { padding-top: calc(var(--cr-hero-ph) - 110px); }
  .elementor .cr-hero-cine .cr-deck.elementor-widget:not(:last-child) { margin-block-end: 10px; }
  .cr-hero-cine .cr-deck::after { top: calc(100% + 7px); width: 150px; }
}

/* Site-wide polish, October 30 2026 ---------------------------------------------------------------------------- */

/* Scroll motion: set up by site.js only for content below the first screen. */
.cr-rv { opacity: 0; transform: translate3d(0, 22px, 0); transition: opacity 900ms var(--cr-ease), transform 900ms var(--cr-ease); }
.cr-rv.is-in { opacity: 1; transform: none; }

/* Inner page heroes: the photo sits on the right and melts into the dark, the headline reads on dark ground beside it,
   the same way as the home hero. The photo keeps no frame line because it has no edge to frame. */
.elementor .e-con.cr-page-hero:has(.cr-row > .cr-page-photo) { position: relative; isolation: isolate; overflow: hidden; min-height: clamp(520px, 70vh, 680px); --padding-top: var(--cr-s8); --padding-bottom: var(--cr-s8); --justify-content: center; background: linear-gradient(180deg, #050303 0%, #050303 72%, rgba(12, 7, 7, 0) 100%); }
.elementor .cr-page-hero .cr-row > .cr-page-photo { position: absolute !important; z-index: -1; top: 0; bottom: 0; right: 0; left: max(40%, calc((100% - 1192px) / 2 + 520px)); width: auto !important; max-width: none !important; margin: 0 !important; flex: none !important;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.3) 14%, rgba(0, 0, 0, 0.8) 30%, #000 44%), linear-gradient(0deg, transparent 0%, rgba(0, 0, 0, 0.6) 14%, #000 30%, #000 92%, rgba(0, 0, 0, 0.75) 100%); -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.3) 14%, rgba(0, 0, 0, 0.8) 30%, #000 44%), linear-gradient(0deg, transparent 0%, rgba(0, 0, 0, 0.6) 14%, #000 30%, #000 92%, rgba(0, 0, 0, 0.75) 100%); mask-composite: intersect; }
.cr-page-hero .cr-row > .cr-page-photo .elementor-widget-container, .cr-page-hero .cr-row > .cr-page-photo a { display: block; height: 100%; }
.elementor .cr-page-hero .cr-row > .cr-page-photo img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; border-radius: 0; box-shadow: none; animation: cr-settle 1.6s var(--cr-ease) both; }
.elementor .cr-page-hero:has(.cr-row > .cr-page-photo) .cr-row > .cr-stack { position: relative; z-index: 1; flex: 0 1 auto; width: 100%; max-width: 560px; }
.cr-page-hero:has(.cr-row > .cr-page-photo) .cr-h1 .elementor-heading-title { text-shadow: 0 2px 4px rgba(0, 0, 0, 0.55), 0 4px 30px rgba(0, 0, 0, 0.7); }
.cr-page-hero:has(.cr-row > .cr-page-photo) .cr-deck, .cr-page-hero:has(.cr-row > .cr-page-photo) .cr-deck p { text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7), 0 2px 18px rgba(0, 0, 0, 0.8); }
.cr-page-hero .cr-row > .cr-stack > * { animation: cr-rise 900ms var(--cr-ease) both; }
.cr-page-hero .cr-row > .cr-stack > :nth-child(2) { animation-delay: 120ms; }
.cr-page-hero .cr-row > .cr-stack > :nth-child(3) { animation-delay: 240ms; }
/* The same engraved gold rule as the home hero, between the intro and the buttons, on the dark side only. */
.cr-page-hero .cr-row > .cr-stack > .cr-deck { position: relative; }
.elementor .cr-page-hero .cr-row > .cr-stack > .cr-deck.elementor-widget:not(:last-child) { margin-block-end: 14px; }
.cr-page-hero .cr-row > .cr-stack > .cr-deck:not(:last-child)::after { content: ''; position: absolute; left: 0; top: calc(100% + 12px); width: 200px; height: 10px; background: url('assets/img/rule-gold.svg') no-repeat left center / contain; filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.8)); pointer-events: none; }
@media (max-width: 860px) {
  .elementor .e-con.cr-page-hero:has(.cr-row > .cr-page-photo) { --cr-ph: clamp(230px, 36svh, 340px); min-height: 0; --padding-top: 0px; padding-top: 0 !important; --padding-bottom: var(--cr-s7); }
  .elementor .cr-page-hero .cr-row > .cr-page-photo { left: 0; bottom: auto; height: var(--cr-ph); order: 0;
    -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.85) 0%, #000 8%, #000 50%, rgba(0, 0, 0, 0.5) 74%, rgba(0, 0, 0, 0.12) 90%, transparent 100%); -webkit-mask-composite: source-over;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.85) 0%, #000 8%, #000 50%, rgba(0, 0, 0, 0.5) 74%, rgba(0, 0, 0, 0.12) 90%, transparent 100%); mask-composite: add; }
  .elementor .cr-page-hero:has(.cr-row > .cr-page-photo) .cr-row > .cr-stack { max-width: none; padding-top: calc(var(--cr-ph) - 84px); }
  .cr-page-hero .cr-row > .cr-stack > .cr-deck:not(:last-child)::after { width: 150px; }
}

/* Engraved details off the photos: the brand fleuron above every centered heading, and a short gold rule above the
   left-aligned headings in the reading sections. */
.elementor-widget-heading.cr-h2.cr-center::before { content: ''; display: block; width: 200px; height: 13px; margin: 0 auto var(--cr-s4); background: url('assets/img/fleuron.svg') no-repeat center / contain; opacity: 0.9; }
.cr-copy .elementor-widget-heading.cr-h2:not(.cr-center)::before, .cr-article-body .elementor-widget-heading.cr-h2:not(.cr-center)::before { content: ''; display: block; width: 130px; height: 10px; margin: 0 0 var(--cr-s4); background: url('assets/img/rule-gold.svg') no-repeat left center / contain; }

/* Cards share one warm, lit-from-above finish with a fine bronze edge, and lift a little when they are links. */
.cr-plaque, .elementor .e-con.cr-card, .cr-feature { background: linear-gradient(180deg, #221315 0%, var(--cr-wine) 55%, #150b0c 100%); border-color: rgba(176, 141, 92, 0.32); }
.elementor .e-con.cr-card.cr-pack { background: linear-gradient(180deg, #2a1718 0%, var(--cr-wine) 60%, #150b0c 100%); }
.cr-plaque, .cr-feature, .cr-quick-card { transition: transform 300ms var(--cr-ease), box-shadow 300ms var(--cr-ease), border-color 300ms var(--cr-ease); }
@media (hover: hover) {
  .cr-plaque:hover, .cr-feature:hover { transform: translateY(-4px); border-color: rgba(176, 141, 92, 0.6); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.45), 0 30px 60px rgba(0, 0, 0, 0.65); }
  .cr-tile .cr-photo img, .cr-dish-card img { transition: transform 600ms var(--cr-ease), box-shadow 600ms var(--cr-ease); }
  .cr-tile:hover .cr-photo img, .cr-dish-card:hover img { transform: scale(1.025); }
}

/* The map gets the same fine bronze edge as the photos instead of a ruled border. */
.cr-map { border: 0; box-shadow: 0 0 0 1px rgba(176, 141, 92, 0.6), var(--cr-shadow); }
/* Elementor makes every container a positioning box; the hero photo has to size to the whole section, not its row. */
.elementor .e-con.cr-page-hero:has(.cr-row > .cr-page-photo) > .e-con-inner, .elementor .cr-page-hero:has(.cr-row > .cr-page-photo) .e-con.cr-row { position: static; }
/* Phones: a long button label wraps inside the pill instead of running past the screen edge. */
@media (max-width: 760px) {
  .cr-btns .elementor-button { white-space: normal; text-align: center; line-height: 1.15; padding-block: 10px; }
  .cr-btns .elementor-button .elementor-button-text { white-space: normal; }
}
/* Home dessert row: the printed menu sits like a paper menu on the table, smaller, so the copy beside it is not marooned. */
@media (min-width: 861px) {
  .home .cr-row > .cr-printed { flex: 0 1 440px !important; max-width: 440px !important; }
  .home .cr-row > .cr-printed img { transform: rotate(1.4deg); box-shadow: 0 0 0 1px rgba(176, 141, 92, 0.5), 0 30px 60px rgba(0, 0, 0, 0.65); }
  .home .cr-row:has(> .cr-printed) { --justify-content: center; --gap: var(--cr-s9); }
  .home .cr-row:has(> .cr-printed) > .cr-stack { flex: 0 1 460px !important; }
}

/* Intro heroes without a photo (menu, awards, blog): a warm candle-glow behind the headline instead of flat black,
   the same rise-in and the same gold rule under the intro. */
.elementor .e-con.cr-page-intro { background: radial-gradient(900px 520px at 22% 0, rgba(120, 46, 36, 0.28) 0%, rgba(120, 46, 36, 0) 70%), radial-gradient(700px 420px at 90% 0, rgba(176, 141, 92, 0.08) 0%, rgba(176, 141, 92, 0) 70%); background-repeat: no-repeat; }
.cr-menubar { background: linear-gradient(180deg, var(--cr-night) 70%, rgba(12, 7, 7, 0.96)); border-bottom-color: rgba(58, 42, 39, 0.5); }
.cr-page-intro > .e-con-inner > .cr-h1, .cr-page-intro > .cr-h1, .cr-page-intro > .e-con-inner > .cr-deck, .cr-page-intro > .cr-deck, .cr-page-intro > .e-con-inner > .cr-btns, .cr-page-intro > .cr-btns { animation: cr-rise 900ms var(--cr-ease) both; }
.cr-page-intro .cr-deck { position: relative; }
.elementor .cr-page-intro .cr-deck.elementor-widget:has(+ .cr-btns) { margin-block-end: 14px; }
.cr-page-intro .cr-deck:has(+ .cr-btns)::after { content: ''; position: absolute; left: 0; top: calc(100% + 12px); width: 200px; height: 10px; background: url('assets/img/rule-gold.svg') no-repeat left center / contain; pointer-events: none; }
.cr-page-intro .cr-h1 .elementor-heading-title { font-size: clamp(2.75rem, 5vw, 4.5rem); }
@media (max-width: 760px) { .cr-page-intro .cr-h1 .elementor-heading-title { font-size: 2.5rem; } }

/* Home page, full pass ------------------------------------------------------------------------------------------ */

/* One tighter rhythm: sections breathe without dead bands of black between them. */
.home .elementor > .e-con.cr-section:not(.cr-hero) { --padding-top: 88px; --padding-bottom: 88px; }
.home .elementor > .e-con.cr-section.cr-happy { --padding-top: 0px; --padding-bottom: 24px; }
.home .elementor .e-con.cr-section:not(.cr-hero) { --gap: 40px; }
@media (max-width: 760px) {
  .home .elementor > .e-con.cr-section:not(.cr-hero) { --padding-top: 56px; --padding-bottom: 56px; }
  .home .elementor .e-con.cr-section:not(.cr-hero) { --gap: 28px; }
}

/* Awards: the years read in soft gold, the strip sits in a low warm glow, the link under it is quiet gold small caps. */
.home .e-con.cr-band:has(.cr-plaques) { background-image: radial-gradient(1100px 380px at 50% 58%, rgba(120, 46, 36, 0.2), rgba(120, 46, 36, 0) 70%), linear-gradient(180deg, rgba(19, 10, 10, 0) 0, rgba(19, 10, 10, 0.55) 60px, var(--cr-cellar) 160px, var(--cr-cellar) calc(100% - 160px), rgba(19, 10, 10, 0.55) calc(100% - 60px), rgba(19, 10, 10, 0) 100%); }
.cr-plaque .cr-year { color: #d9bd8c; }
.home .cr-cpl.cr-center a { color: #d9bd8c; text-decoration-color: rgba(217, 189, 140, 0.45); }
.home .cr-cpl.cr-center a:hover { color: var(--cr-cream); }
@media (max-width: 760px) {
  .cr-plaque { flex-basis: 220px; padding: 28px 14px 22px; gap: 8px; }
  .cr-plaque-logo, .cr-plaque .cr-plaque-logo img { height: 60px; }
}

/* From the kitchen: a soft warm pool of light behind the dish row, and the buttons sit closer to the cards. */
.home .e-con.cr-section:has(.cr-dishes) { background: radial-gradient(1000px 420px at 50% 46%, rgba(176, 141, 92, 0.07), rgba(176, 141, 92, 0) 70%); }
.home .e-con.cr-section:has(.cr-dishes) > .e-con-inner > .cr-btns { margin-top: -8px; }

/* Brunch, catering and events: poster cards. The photo fills the card and the title and line sit on a soft dark fade
   at its foot, so the three read as one confident row instead of thumbnails with captions. */
.home .elementor .e-con.cr-tile { display: grid; grid-template-columns: 100%; grid-template-rows: 1fr auto auto; gap: 0; position: relative; isolation: isolate; border-radius: var(--cr-r-md); overflow: hidden; box-shadow: 0 0 0 1px rgba(176, 141, 92, 0.6), var(--cr-shadow); text-align: left; align-items: end; }
.home .cr-tile > .elementor-widget { grid-column: 1; min-width: 0; }
.home .cr-tile > .cr-photo { grid-row: 1 / 4; height: 100%; }
.home .elementor .cr-tile .cr-photo img { aspect-ratio: 4 / 5; height: 100%; border-radius: 0; box-shadow: none; }
.home .cr-tile::after { content: ''; grid-row: 1 / 4; grid-column: 1; align-self: stretch; z-index: 1; pointer-events: none; background: linear-gradient(0deg, rgba(8, 4, 4, 0.95) 0%, rgba(8, 4, 4, 0.82) 24%, rgba(8, 4, 4, 0.35) 46%, rgba(8, 4, 4, 0) 62%); }
.home .cr-tile > .elementor-widget-heading, .home .cr-tile > .elementor-widget-text-editor { grid-row: auto; z-index: 2; padding-inline: 28px; }
.home .cr-tile > .elementor-widget-heading { grid-row: 2; margin: 0; }
.home .cr-tile > .elementor-widget-text-editor { grid-row: 3; padding-bottom: 26px; padding-top: 6px; }
.home .cr-tile .elementor-heading-title { text-align: left; font-size: 1.75rem; text-shadow: 0 2px 14px rgba(0, 0, 0, 0.8); margin: 0; }
.home .cr-tile .cr-muted, .home .cr-tile .cr-muted p { color: var(--cr-cream-soft); text-align: left; font-size: 1.125rem; line-height: 1.4; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.9); }
.home .cr-tile .elementor-heading-title a::after { content: ''; position: absolute; inset: 0; z-index: 3; }
@media (hover: hover) {
  .home .cr-tile .cr-photo img { transition: transform 900ms var(--cr-ease); }
  .home .cr-tile:hover .cr-photo img { transform: scale(1.04); }
}
@media (max-width: 860px) {
  .home .elementor .e-con.cr-grid3:has(> .cr-tile) { gap: var(--cr-s5); }
  .home .elementor .cr-tile .cr-photo img { aspect-ratio: 5 / 4; }
  .home .cr-tile > .elementor-widget-heading, .home .cr-tile > .elementor-widget-text-editor { padding-inline: 20px; }
  .home .cr-tile .elementor-heading-title { font-size: 1.5rem; }
}

/* Reviews: each card carries a large, faint engraved opening quote in gold, and the row sits in a low warm glow. */
.home .e-con.cr-band:has(.cr-reviews) { background-image: radial-gradient(1100px 460px at 50% 62%, rgba(120, 46, 36, 0.18), rgba(120, 46, 36, 0) 70%), linear-gradient(180deg, rgba(19, 10, 10, 0) 0, rgba(19, 10, 10, 0.55) 60px, var(--cr-cellar) 160px, var(--cr-cellar) calc(100% - 160px), rgba(19, 10, 10, 0.55) calc(100% - 60px), rgba(19, 10, 10, 0) 100%); }
.cr-reviews figure.cr-review { position: relative; overflow: hidden; }
.cr-reviews figure.cr-review::before { content: '\201C'; position: absolute; right: 18px; top: -18px; font-family: var(--cr-body); font-size: 9rem; line-height: 1; color: rgba(217, 189, 140, 0.12); pointer-events: none; }
.cr-reviews .cr-review blockquote { position: relative; font-size: 1.25rem; }

/* Questions: one centered reading column, each question set off by a fine gold hairline that fades at both ends. */
.home .e-con.cr-copy:has(.cr-q) > .e-con-inner { max-width: 860px; }
.home .e-con.cr-copy:has(.cr-q) .elementor-widget { max-width: none; width: 100%; }
.home .cr-copy .cr-q { position: relative; padding-top: var(--cr-s5); margin-top: var(--cr-s3); }
.home .cr-copy .cr-q::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, rgba(176, 141, 92, 0) 0%, rgba(176, 141, 92, 0.45) 30%, rgba(176, 141, 92, 0.45) 70%, rgba(176, 141, 92, 0) 100%); }
.home .cr-copy .cr-h2 + .cr-q { margin-top: var(--cr-s2); }

/* Owners: the quote and their names sit centered under the framed photo, like a caption on a family portrait. */
.home .e-con.cr-band-wine > .e-con-inner { align-items: center; }
.home .cr-band-wine .cr-hand, .home .cr-band-wine .cr-hand p { text-align: center; }
.home .cr-band-wine .cr-hand { margin-top: var(--cr-s3); }
.home .cr-band-wine .cr-h3 .elementor-heading-title { text-align: center; color: #d9bd8c; letter-spacing: 0.08em; }
.home .cr-band-wine .cr-h3::before { content: ''; display: block; width: 200px; height: 13px; margin: 0 auto var(--cr-s4); background: url('assets/img/fleuron.svg') no-repeat center / contain; }

/* Footer: the divider above the sitemap is a gold hairline that fades out at both ends, not a ruled line. */
.cr-footer-bottom { background: linear-gradient(90deg, rgba(176, 141, 92, 0) 0%, rgba(176, 141, 92, 0.4) 25%, rgba(176, 141, 92, 0.4) 75%, rgba(176, 141, 92, 0) 100%) no-repeat; background-size: calc(100% - 2 * var(--cr-gutter)) 1px; background-position: var(--cr-gutter) 0; }
.cr-footer h2 { color: #d9bd8c; }
/* Tile titles line up across the row whatever the length of the line under them. */
@media (min-width: 861px) { .home .cr-tile > .elementor-widget-text-editor { min-height: calc(3 * 1.4em + 32px); } }
/* Phones: the footer sitemap runs in two columns, so the footer is half as long. */
@media (max-width: 760px) { .cr-footer-bottom nav > ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cr-s5) var(--cr-s4); } }
/* Tablets and small laptops: the text column is a larger share of the width, so the photo starts further right and the
   intro keeps dark ground under it. */
@media (min-width: 861px) and (max-width: 1279px) {
  .cr-slides-pics { left: 36%; }
  .elementor .cr-page-hero .cr-row > .cr-page-photo { left: 46%; }
}

/* Home refinement ----------------------------------------------------------------------------------------------- */

/* Even rhythm: every home section keeps the same padding top and bottom, including two neighbors on the same
   background, so the space between one block and the next is the same all the way down. */
.home .elementor > .e-con.cr-section:not(.cr-hero),
.home .elementor > .e-con.cr-section:not(.cr-band):not(.cr-band-wine) + .e-con.cr-section:not(.cr-band):not(.cr-band-wine):not(.cr-hero),
.home .elementor > .e-con.cr-section.cr-band + .e-con.cr-section.cr-band,
.home .elementor > .e-con.cr-section.cr-happy { --padding-top: 64px; --padding-bottom: 64px; }
.home .elementor .e-con.cr-hero.cr-hero-cine { --padding-bottom: var(--cr-s7); }
@media (max-width: 760px) {
  .home .elementor > .e-con.cr-section:not(.cr-hero),
  .home .elementor > .e-con.cr-section:not(.cr-band):not(.cr-band-wine) + .e-con.cr-section:not(.cr-band):not(.cr-band-wine):not(.cr-hero),
  .home .elementor > .e-con.cr-section.cr-band + .e-con.cr-section.cr-band,
  .home .elementor > .e-con.cr-section.cr-happy { --padding-top: 48px; --padding-bottom: 48px; }
  .home .elementor .e-con.cr-hero.cr-hero-cine { padding-bottom: var(--cr-s5) !important; }
}

/* Text and photo sections (food, seating, give-back): one steady treatment. Every photo is a 4:3 rectangle with the
   thin bronze edge, the copy starts right under its heading, and the photo lines up with the top of the copy. */
.home .elementor .cr-copy-photo.cr-ph-0, .home .elementor .cr-copy-photo.cr-ph-1, .home .elementor .cr-copy-photo.cr-ph-2 { padding: 0; }
.home .elementor .cr-copy-photo img, .home .elementor .e-con.cr-copy-row.cr-flip .cr-copy-photo img { aspect-ratio: 4 / 3; border: 0; border-radius: var(--cr-r-md); outline: 0; transform: none; background: none; box-shadow: 0 0 0 1px rgba(176, 141, 92, 0.75), var(--cr-shadow); }
.home .elementor .e-con.cr-copy-row { align-items: start; }
.home .elementor .e-con.cr-copy:has(.cr-copy-row) { --gap: var(--cr-s5); }
@media (min-width: 861px) { .home .elementor .cr-copy-photo { margin-top: 6px; } }

/* Questions keep the same left edge as the sections above them; the hairlines stay. */
.home .e-con.cr-copy:has(.cr-q) > .e-con-inner { max-width: min(100%, 1192px); }
.home .e-con.cr-copy:has(.cr-q) .elementor-widget { max-width: 860px; }

/* The happy hour card sits in the same rhythm as the cards around it. */
.home .cr-hh { margin-block: 0; }


/* Inner pages get the home page finish ------------------------------------------------------------------------- */

/* Even rhythm on every page: the same padding on every section below the hero, same-background neighbors included. */
.elementor > .e-con.cr-section:not(.cr-hero):not(.cr-page-intro),
.elementor > .e-con.cr-section:not(.cr-band):not(.cr-band-wine) + .e-con.cr-section:not(.cr-band):not(.cr-band-wine):not(.cr-hero):not(.cr-page-intro),
.elementor > .e-con.cr-section.cr-band + .e-con.cr-section.cr-band { --padding-top: 64px; --padding-bottom: 64px; }
.elementor .e-con.cr-section:not(.cr-hero) { --gap: 40px; }
.elementor .e-con.cr-page-intro { --padding-bottom: 64px; }
@media (max-width: 760px) {
  .elementor > .e-con.cr-section:not(.cr-hero):not(.cr-page-intro),
  .elementor > .e-con.cr-section:not(.cr-band):not(.cr-band-wine) + .e-con.cr-section:not(.cr-band):not(.cr-band-wine):not(.cr-hero):not(.cr-page-intro),
  .elementor > .e-con.cr-section.cr-band + .e-con.cr-section.cr-band { --padding-top: 48px; --padding-bottom: 48px; }
  .elementor .e-con.cr-section:not(.cr-hero) { --gap: 28px; }
  .elementor .e-con.cr-page-intro { --padding-bottom: 48px; }
}

/* Text and photo sections: one steady photo treatment everywhere, copy under its heading, photo top-aligned. */
.elementor .cr-copy-photo.cr-ph-0, .elementor .cr-copy-photo.cr-ph-1, .elementor .cr-copy-photo.cr-ph-2 { padding: 0; }
.elementor .cr-copy-photo img, .elementor .e-con.cr-copy-row.cr-flip .cr-copy-photo img, .elementor .cr-copy-photo.cr-ph-1 img { aspect-ratio: 4 / 3; border: 0; border-radius: var(--cr-r-md); outline: 0; transform: none; background: none; box-shadow: 0 0 0 1px rgba(176, 141, 92, 0.75), var(--cr-shadow); }
.elementor .e-con.cr-copy-row { align-items: start; }
.elementor .e-con.cr-copy:has(.cr-copy-row) { --gap: var(--cr-s5); }
@media (min-width: 861px) { .elementor .cr-copy-photo { margin-top: 6px; } }

/* Questions: gold hairlines that fade at both ends between questions, in a reading width. */
.e-con.cr-copy:has(.cr-q) .elementor-widget { max-width: 860px; width: 100%; }
.cr-copy .cr-q { position: relative; padding-top: var(--cr-s5); margin-top: var(--cr-s3); }
.cr-copy .cr-q::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, rgba(176, 141, 92, 0) 0%, rgba(176, 141, 92, 0.45) 30%, rgba(176, 141, 92, 0.45) 70%, rgba(176, 141, 92, 0) 100%); }
.cr-copy .cr-h2 + .cr-q { margin-top: var(--cr-s2); }

/* Owners quote on inner pages: centered under the framed photo, the fleuron above their names in soft gold. */
.e-con.cr-band-wine:has(.cr-quote-photo) > .e-con-inner { align-items: center; }
.cr-band-wine .cr-hand, .cr-band-wine .cr-hand p { text-align: center; }
.cr-band-wine:has(.cr-quote-photo) .cr-h3 .elementor-heading-title { text-align: center; color: #d9bd8c; letter-spacing: 0.08em; }
.cr-band-wine:has(.cr-quote-photo) .cr-h3::before { content: ''; display: block; width: 200px; height: 13px; margin: 0 auto var(--cr-s4); background: url('assets/img/fleuron.svg') no-repeat center / contain; }

/* Awards and reviews bands glow warmly on every page, like the home page. */
.e-con.cr-band:has(.cr-plaques), .e-con.cr-band:has(.cr-reviews), .e-con.cr-band:has(.cr-pack) { background-image: radial-gradient(1100px 420px at 50% 58%, rgba(120, 46, 36, 0.18), rgba(120, 46, 36, 0) 70%), linear-gradient(180deg, rgba(19, 10, 10, 0) 0, rgba(19, 10, 10, 0.55) 60px, var(--cr-cellar) 160px, var(--cr-cellar) calc(100% - 160px), rgba(19, 10, 10, 0.55) calc(100% - 60px), rgba(19, 10, 10, 0) 100%); }
/* Phones: any button, in a row or a card, keeps its label inside the pill. */
@media (max-width: 760px) {
  .elementor .elementor-button { max-width: 100%; box-sizing: border-box; white-space: normal; text-align: center; line-height: 1.15; padding-block: 10px; }
  .elementor .elementor-button .elementor-button-text { white-space: normal; }
}
/* The older rotating photo styles (offset outline, arch, snapshot) are more specific; this retires them everywhere. */
.elementor .e-con .cr-copy-photo[class*="cr-ph-"] img, .elementor .e-con.cr-copy-row.cr-flip .cr-copy-photo[class*="cr-ph-"] img { aspect-ratio: 4 / 3; border: 0; border-radius: var(--cr-r-md); outline: 0; outline-offset: 0; transform: none; background: none; box-shadow: 0 0 0 1px rgba(176, 141, 92, 0.75), var(--cr-shadow); }
.elementor .e-con .cr-copy-photo[class*="cr-ph-"] { padding: 0; }

/* Awards strip: a sideways scroller clips vertically too, so it gets room above and below for the card shadows and
   the hover lift to fade out fully. Negative margins give the room back, so the layout does not move. */
.cr-plaques { padding-top: 16px; padding-bottom: 72px; margin-top: -16px; margin-bottom: -60px; }
.e-con.cr-band:has(.cr-plaques) .cr-cpl { position: relative; z-index: 1; }

/* Ornaments, used sparingly ------------------------------------------------------------------------------------- */
/* Nothing sits above a heading any more, and the inner pages carry no ornaments. */
.elementor-widget-heading.cr-h2::before, .home .elementor-widget-heading.cr-h2.cr-center::before,
.cr-copy .elementor-widget-heading.cr-h2::before, .cr-article-body .elementor-widget-heading.cr-h2::before,
.cr-band-wine .cr-h3::before, .home .cr-band-wine .cr-h3::before { content: none; display: none; }
.cr-page-hero .cr-row > .cr-stack > .cr-deck:not(:last-child)::after, .cr-page-intro .cr-deck:has(+ .cr-btns)::after { content: none; display: none; }
.elementor .cr-page-hero .cr-row > .cr-stack > .cr-deck.elementor-widget:not(:last-child), .elementor .cr-page-intro .cr-deck.elementor-widget:has(+ .cr-btns) { margin-block-end: 0; }
/* The brand fleuron sits centered under three key home headings only, one per screen: awards, the kitchen, guests. */
.home .e-con.cr-band:has(.cr-plaques) .cr-h2.cr-center::after,
.home .e-con:has(.cr-dishes) .cr-h2.cr-center::after,
.home .e-con.cr-band:has(.cr-reviews) .cr-h2.cr-center::after { content: ''; display: block; width: 180px; height: 12px; margin: 16px auto 0; background: url('assets/img/fleuron.svg') no-repeat center / contain; opacity: 0.85; }
.home .e-con.cr-band:has(.cr-plaques) .cr-h2.cr-center, .home .e-con:has(.cr-dishes) .cr-h2.cr-center, .home .e-con.cr-band:has(.cr-reviews) .cr-h2.cr-center { margin-bottom: -8px; }

/* Review marks: one 22px square each, centered on the number beside them. */
.cr-mark { display: block; flex: none; width: 22px; height: 22px; }
.cr-ratings a, .cr-hero-rating, .cr-review-top { align-items: center; }
.elementor-widget-heading.cr-h2::before, .cr-band-wine .cr-h3::before { content: none !important; display: none !important; }

/* Phone menu sheet ---------------------------------------------------------------------------------------------- */
/* The open menu fills the screen between the header bar and the bottom action bar, scrolls on its own, and the page
   behind it is locked. The header stays in place while it is open. */
:root { --cr-nav-top: 72px; --cr-qbar-h: 0px; }
@media (max-width: 760px) { :root { --cr-qbar-h: calc(72px + env(safe-area-inset-bottom, 0px)); } }
/* Only the root is locked: a locked body would become the sticky header's scroller and strand it off-screen. */
html.cr-menu-open { overflow: hidden; overscroll-behavior: none; }
html.cr-menu-open .cr-header { transform: none !important; }
.cr-mobile-nav { height: calc(100vh - var(--cr-nav-top) - var(--cr-qbar-h)); height: calc(100dvh - var(--cr-nav-top) - var(--cr-qbar-h)); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; box-sizing: border-box; padding-block: var(--cr-s3) var(--cr-s7); border-top: 0; background: linear-gradient(180deg, #000 0%, #0c0707 100%); box-shadow: 0 30px 60px rgba(0, 0, 0, 0.6); }
.cr-mobile-nav > .cr-wrap > ul { gap: 0; }
.cr-mobile-nav > .cr-wrap > ul > li { display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid rgba(176, 141, 92, 0.18); }
.cr-mobile-nav > .cr-wrap > ul > li > a { flex: 1; display: flex; align-items: center; min-height: 56px; font-size: 1.5rem; }
.cr-mobile-nav .sub-menu { display: none; width: 100%; margin: 0 0 var(--cr-s4); padding-left: var(--cr-s5); gap: 0; border-left: 1px solid rgba(176, 141, 92, 0.45); }
.cr-mobile-nav li.is-open > .sub-menu { display: flex; }
.cr-mobile-nav .sub-menu a { display: flex; align-items: center; min-height: 48px; font-weight: 400; font-size: 1.25rem; color: var(--cr-cream-soft); }
.cr-mtoggle { flex: none; width: 56px; height: 56px; margin: 0 -12px 0 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: #d9bd8c; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.cr-mtoggle::before { content: ''; width: 10px; height: 10px; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-3px) rotate(45deg); transition: transform 200ms var(--cr-ease); }
.cr-mobile-nav li.is-open > .cr-mtoggle::before { transform: translateY(2px) rotate(225deg); }
.cr-mobile-btns { display: grid; gap: var(--cr-s3); margin-top: var(--cr-s6); }
.cr-mobile-btns .cr-btn, .cr-mobile-nav .cr-mobile-btns .cr-btn { margin: 0; width: 100%; box-sizing: border-box; font-size: 1.1875rem; }

/* Hello Elementor paints every button pink on hover and focus. Our plain buttons stay transparent in every state,
   with only a quiet ring for keyboard focus. */
.cr-burger, .cr-burger:hover, .cr-burger:focus, .cr-burger:active, .cr-burger[aria-expanded="true"],
.cr-mtoggle, .cr-mtoggle:hover, .cr-mtoggle:focus, .cr-mtoggle:active,
.cr-sub-toggle, .cr-sub-toggle:hover, .cr-sub-toggle:focus, .cr-sub-toggle:active { background: transparent !important; border: 0 !important; box-shadow: none !important; -webkit-tap-highlight-color: transparent; }
.cr-burger, .cr-burger:hover, .cr-burger:focus, .cr-burger:active { color: var(--cr-cream) !important; }
.cr-mtoggle:hover, .cr-mtoggle:focus, .cr-mtoggle:active { color: #d9bd8c !important; }
.cr-sub-toggle:hover, .cr-sub-toggle:focus { color: var(--cr-cream-soft) !important; }
.cr-burger:focus-visible, .cr-mtoggle:focus-visible { outline: 2px solid rgba(217, 189, 140, 0.8) !important; outline-offset: -4px; border-radius: 8px; }
/* The TV play buttons keep their own red on hover instead of the theme pink. */
.cr-play:hover, .cr-play:focus { background: var(--cr-red-hover) !important; color: var(--cr-cream) !important; border: 0 !important; }

/* Phones: every standalone link is at least 44px tall to tap, without changing how it looks. */
@media (max-width: 760px) {
  .cr-footer a.cr-phone, .cr-footer-col > a.cr-cpl, .cr-footer-bottom nav a, .cr-feature a.cr-cpl, .cr-article a.cr-cpl, .cr-hero-cine .cr-btn-text .elementor-button { display: inline-flex !important; align-items: center; min-height: 44px; }
  .cr-footer-bottom nav > ul > li > a { margin-bottom: 0; }
  .cr-footer-bottom .sub-menu { gap: 0; }
  .cr-footer-bottom nav > ul { gap: var(--cr-s4) var(--cr-s4); }
}
@media (max-width: 760px) { .elementor .cr-hero-cine .cr-btn-text .elementor-button { min-height: 44px !important; } }

/* Every photo carries the same thin bronze edge. The dish row scrolls sideways, which also clips it top and bottom,
   so it gets a little room above (and the negative margin gives that room back to the layout). */
.cr-dishes { padding-top: 6px; margin-top: -6px; }
.cr-dish-card img, .elementor .cr-dish-card img, .cr-feature img.cr-feature-photo { border-radius: var(--cr-r-md); box-shadow: 0 0 0 1px rgba(176, 141, 92, 0.75), 0 2px 4px rgba(0, 0, 0, 0.45), 0 18px 40px rgba(0, 0, 0, 0.55) !important; }

/* Hero slideshow, smooth: the incoming photo fades in over the outgoing one, which stays fully visible underneath until
   the fade ends, so the frame never dips to the dark. Each photo drifts in one continuous move from the moment it
   starts fading in until it is hidden; the drift keeps running while it is the outgoing photo. Only opacity and
   transform change, each slide on its own layer. */
.cr-hero-slides .cr-slide { opacity: 0; z-index: 0; transition: none; animation: none; transform: translateZ(0) scale(1.02); will-change: opacity, transform; backface-visibility: hidden; }
.cr-hero-slides .cr-slide.is-on { opacity: 1; z-index: 2; transition: opacity 2200ms cubic-bezier(0.45, 0, 0.55, 1); }
.cr-hero-slides .cr-slide.is-leaving { opacity: 1; z-index: 1; }
.cr-hero-slides .cr-slide.is-on, .cr-hero-slides .cr-slide.is-leaving { animation: cr-drift 9s linear both; }
.cr-hero-slides .cr-slide.is-first.is-on { transition: none; }
@keyframes cr-drift { from { transform: translateZ(0) scale(1.02); } to { transform: translateZ(0) scale(1.09) translate3d(-1.2%, 0, 0); } }
.cr-slides-pics { contain: paint; isolation: isolate; }
.cr-cap-name { transition: opacity 700ms cubic-bezier(0.45, 0, 0.55, 1), transform 700ms cubic-bezier(0.45, 0, 0.55, 1); }
@media (prefers-reduced-motion: reduce) { .cr-hero-slides .cr-slide.is-on, .cr-hero-slides .cr-slide.is-leaving { animation: none; transform: none; } }

/* Reviews carousel ---------------------------------------------------------------------------------------------- */
/* One row of cards, three in view on a desktop and about one and a bit on a phone, so the next card peeks. The row
   reaches a little past the text column on each side and fades out there, like the awards strip. */
.cr-rev-strip { --rv-gap: 24px; --rv-bleed: clamp(24px, calc((100vw - 1192px) / 2), 96px); position: relative; }
.cr-reviews.cr-rev-row { display: flex; grid-template-columns: none; gap: var(--rv-gap); overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  margin: -10px calc(-1 * var(--rv-bleed)) -50px; padding: 10px var(--rv-bleed) 50px; scroll-padding-inline: var(--rv-bleed);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--rv-bleed), #000 calc(100% - var(--rv-bleed)), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 var(--rv-bleed), #000 calc(100% - var(--rv-bleed)), transparent 100%); }
.cr-rev-row::-webkit-scrollbar { display: none; }
.cr-rev-row.is-held { scroll-snap-type: none; }
.cr-rev-row:focus-visible { outline: none; }
.cr-rev-strip:has(.cr-rev-row:focus-visible) { outline: 2px solid rgba(217, 189, 140, 0.7); outline-offset: 6px; border-radius: 10px; }
.home .cr-reviews.cr-rev-row figure.cr-review, .cr-reviews.cr-rev-row figure.cr-review { display: flex; flex: 0 0 calc((100% - 2 * var(--rv-gap)) / 3); box-sizing: border-box; scroll-snap-align: start; border-left: 1px solid rgba(176, 141, 92, 0.32); border-top: 1px solid rgba(176, 141, 92, 0.32); padding-top: var(--cr-s5); }
.cr-rev-row .cr-review blockquote { font-size: 1.1875rem; }
.cr-rev-row .cr-review.cr-rev-short blockquote { font-size: 1.4375rem; line-height: 1.42; }
.cr-rev-row .cr-review.cr-rev-long blockquote { font-size: 1.0625rem; line-height: 1.5; }
@media (max-width: 860px) {
  .cr-rev-strip { --rv-gap: 16px; --rv-bleed: 24px; }
  .home .cr-reviews.cr-rev-row figure.cr-review, .cr-reviews.cr-rev-row figure.cr-review { flex-basis: calc((100% - var(--rv-gap)) / 1.15); }
  .cr-rev-row .cr-review.cr-rev-short blockquote { font-size: 1.3125rem; }
}
/* Arrows: the same small round buttons as the dish row, centered on the cards at each end. */
.cr-rev-nav { position: absolute; inset: 0 0 0 0; display: flex; justify-content: space-between; align-items: center; pointer-events: none; margin-inline: calc(-1 * var(--rv-bleed) + 8px); }
.cr-rev-nav[hidden] { display: none; }
.cr-rev-nav button { pointer-events: auto; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border-radius: 50%; border: 1px solid rgba(244, 239, 232, 0.3); background: rgba(12, 7, 7, 0.7); color: var(--cr-cream); cursor: pointer; -webkit-tap-highlight-color: transparent; transition: background-color 160ms var(--cr-ease), border-color 160ms var(--cr-ease), transform 160ms var(--cr-ease); }
.cr-rev-nav button:hover, .cr-rev-nav button:focus { background: rgba(12, 7, 7, 0.7) !important; color: var(--cr-cream) !important; border-color: rgba(244, 239, 232, 0.3) !important; }
@media (hover: hover) { .cr-rev-nav button:hover { background: rgba(12, 7, 7, 0.9) !important; border-color: rgba(244, 239, 232, 0.7) !important; } }
.cr-rev-nav button:active { transform: scale(0.94); }
.cr-rev-nav button:focus-visible { outline: 2px solid var(--cr-cream); outline-offset: 2px; }
@media (max-width: 860px) { .cr-rev-nav { margin-inline: 2px; } .cr-rev-nav button { width: 44px; height: 44px; } }

/* Awards strip: the plaque nearest the middle grows a little and settles back as it moves on. --cr-c (0 to 1) comes
   from site.js on every scroll frame; a short transition smooths it. Transform only, so nothing else moves. */
.cr-plaques .cr-plaque { --cr-c: 0; --cr-lift: 0px; position: relative; z-index: calc(1 + var(--cr-c) * 10); transform: translateY(var(--cr-lift)) scale(calc(1 + 0.09 * var(--cr-c))); transform-origin: 50% 50%; transition: transform 260ms cubic-bezier(0.25, 0.1, 0.25, 1), box-shadow 300ms var(--cr-ease), border-color 300ms var(--cr-ease); will-change: transform; }
@media (hover: hover) { .cr-plaques .cr-plaque:hover { --cr-lift: -4px; transform: translateY(var(--cr-lift)) scale(calc(1 + 0.09 * var(--cr-c))); } }
.cr-plaques { padding-top: 24px; margin-top: -24px; }
@media (prefers-reduced-motion: reduce) { .cr-plaques .cr-plaque, .cr-plaques .cr-plaque:hover { transform: none !important; } }
/* The strip keeps its 24px of headroom for the growing card inside its own box, so the card clears the ornament under
   the heading; the heading and its ornament draw above the strip. */
.cr-plaques { margin-top: 0; }
.e-con:has(> .e-con-inner > .elementor-widget-shortcode .cr-plaques) .cr-h2, .e-con:has(.cr-plaques) .elementor-widget-heading { position: relative; z-index: 3; }
.cr-plaques { padding-top: 32px; }
.home .e-con.cr-band:has(.cr-plaques) .cr-h2.cr-center { margin-bottom: 0; }

/* Awards strip, lit at the front: the plaque nearest the middle comes up to full brand color with a soft warm light,
   and the rest sit a little darker in greyscale. Driven by --cr-c (0 to 1) from site.js on every screen. The title on
   the darkest card stays well above comfortable contrast (cream at 84% on the dark card). */
.cr-plaques .cr-plaque { filter: brightness(calc(0.84 + 0.16 * var(--cr-c)));
  border-color: color-mix(in srgb, rgba(212, 176, 112, 0.85) calc(var(--cr-c) * 100%), rgba(176, 141, 92, 0.22));
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.45), 0 24px 56px rgba(0, 0, 0, 0.6), 0 0 calc(44px * var(--cr-c)) rgba(232, 184, 75, calc(0.16 * var(--cr-c))), inset 0 0 70px rgba(232, 184, 75, calc(0.09 * var(--cr-c)));
  transition: transform 260ms cubic-bezier(0.25, 0.1, 0.25, 1), filter 260ms linear, box-shadow 260ms linear, border-color 260ms linear; }
.cr-plaques .cr-plaque .cr-mask { background: color-mix(in srgb, var(--cr-brand, var(--cr-cream)) calc(var(--cr-c) * 100%), #bdb5ad); opacity: calc(0.78 + 0.22 * var(--cr-c)); transition: background-color 200ms linear, opacity 200ms linear; }
.cr-plaques .cr-plaque .cr-plaque-logo img { filter: grayscale(calc(1 - var(--cr-c))) brightness(calc(0.95 + 0.05 * var(--cr-c))); opacity: calc(0.78 + 0.22 * var(--cr-c)); transition: filter 200ms linear, opacity 200ms linear; }
.cr-plaques .cr-plaque .cr-year { color: color-mix(in srgb, #e8c98f calc(var(--cr-c) * 100%), #b9a27a); }
/* Pointing at a plaque on a desktop lights it fully, the same as being at the front. */
@media (hover: hover) { .cr-plaques .cr-plaque:hover { --cr-c: 1 !important; } }

/* The sign photo is a wide 3:1 shot: center the sign in the frame and bring the bright wall down a touch so the
   headline beside it stays easy to read. */
.cr-hero-slides .cr-slide[data-name="Cranelli's"] { object-position: 50% 58%; filter: brightness(0.8) saturate(1.05); }
@media (max-width: 860px) { .elementor .cr-hero-cine .cr-hero-slides .cr-slide[data-name="Cranelli's"] { object-position: 50% 60%; } }
/* The sign is wider than the clear part of the hero at full height, so this one slide sits a little shorter, anchored
   at the top with its own soft fade at the foot, which brings the whole sign into the clear area. */
@media (min-width: 861px) {
  .cr-hero-slides .cr-slide[data-name="Cranelli's"] { top: 0; bottom: auto; height: 85%; object-position: 35% 50%; -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%); mask-image: linear-gradient(180deg, #000 72%, transparent 100%); }
}
@media (min-width: 861px) and (max-width: 1279px) {
  .cr-hero-slides .cr-slide[data-name="Cranelli's"] { height: 62%; object-position: 35% 50%; }
}
@media (max-width: 860px) {
  .elementor .cr-hero-cine .cr-hero-slides .cr-slide[data-name="Cranelli's"] { top: -25%; bottom: auto; height: 110%; object-position: 50% 50%; }
}
@media (max-width: 860px) {
  .elementor .cr-hero-cine .cr-hero-slides .cr-slide[data-name="Cranelli's"] { top: -20%; height: 100%; }
}
/* A gentler drift for the sign, centered on it, so no letter slides out of view while it zooms. */
.cr-hero-slides .cr-slide[data-name="Cranelli's"].is-on, .cr-hero-slides .cr-slide[data-name="Cranelli's"].is-leaving { animation-name: cr-drift-sign; transform-origin: 68% 45%; }
@keyframes cr-drift-sign { from { transform: translateZ(0) scale(1); } to { transform: translateZ(0) scale(1.045); } }
@media (prefers-reduced-motion: reduce) { .cr-hero-slides .cr-slide[data-name="Cranelli's"].is-on { animation: none; } }

/* Drag to scroll with a mouse: the rows show a hand, and while dragging nothing snaps, selects or drags as an image. */
@media (hover: hover) and (pointer: fine) {
  .cr-dishes, .cr-plaques, .cr-rev-row { cursor: grab; }
  .cr-dishes a, .cr-plaques a, .cr-rev-row a { cursor: pointer; }
}
.cr-dishes.is-dragging, .cr-plaques.is-dragging, .cr-rev-row.is-dragging { cursor: grabbing; scroll-snap-type: none !important; scroll-behavior: auto !important; user-select: none; -webkit-user-select: none; }
.cr-dishes.is-dragging *, .cr-plaques.is-dragging *, .cr-rev-row.is-dragging * { cursor: grabbing !important; }
.cr-dishes img, .cr-plaques img, .cr-rev-row img { -webkit-user-drag: none; user-select: none; }

/* Letter spacing, a touch more open (November 1). One set of values for all display type: big headings get the
   smallest step, smaller headings a little more, small-caps labels the most. Body paragraphs are unchanged. */
:root { --cr-ls-head: 0.035em; --cr-ls-sub: 0.045em; --cr-ls-btn: 0.1em; --cr-ls-label: 0.085em; --cr-ls-nav: 0.1em; }
h1, h2, .cr-h1 .elementor-heading-title, .cr-h2 .elementor-heading-title, .elementor-widget-heading .elementor-heading-title, .cr-cp, .cr-cp .elementor-heading-title, .cr-hh h2 { letter-spacing: var(--cr-ls-head); }
h3, h4, .cr-h3 .elementor-heading-title, .cr-q .elementor-heading-title, .cr-dish-card h3, .cr-plaque .cr-plaque-name, .cr-seg h3, .cr-feature h3, .cr-article h3, .cr-footer h2, .cr-menu h2 { letter-spacing: var(--cr-ls-sub); }
.cr-btn .elementor-button, a.cr-btn, .elementor .elementor-button, .cr-btn-text .elementor-button, .elementor .cr-btn-text .elementor-button { letter-spacing: var(--cr-ls-btn) !important; }
.cr-nav a { letter-spacing: var(--cr-ls-nav); }
.cr-cpl, .cr-host-row a, .cr-footer-bottom ul a, .cr-footer-bottom nav > ul > li > a, .cr-chips a, .cr-visit dt, .cr-reviews figcaption, .cr-reviews .cr-review figcaption, .cr-quick-t, .cr-price, .cr-pack-list .cr-pack-serves, .cr-textmenu summary, .cr-menu .cr-name { letter-spacing: var(--cr-ls-label); }
.cr-plaque .cr-year, .cr-qbar a { letter-spacing: 0.1em; }
.cr-mobile-nav a { letter-spacing: 0.06em; }
@media (max-width: 1100px) { .cr-nav a { letter-spacing: 0.07em; } }
@media (max-width: 760px) { .cr-links a.cr-btn { letter-spacing: 0.05em !important; } .cr-qbar a { letter-spacing: 0.08em; } }
.cr-menu .cr-name { letter-spacing: 0.05em; }

/* Owners frame, depth only (November 1). Same design, sizes, colors, corners and wood band; this adds a lifted shadow,
   a faint bevel on the wood, gold lines that catch light at the top, and a darker keyline so the photo sits slightly recessed. */
.elementor .elementor-widget.cr-quote-photo {
  background: linear-gradient(160deg, rgba(255, 236, 205, 0.07) 0%, rgba(255, 236, 205, 0) 38%, rgba(0, 0, 0, 0) 62%, rgba(0, 0, 0, 0.2) 100%), repeating-linear-gradient(92deg, rgba(255, 235, 200, 0.025) 0 1px, transparent 1px 7px), linear-gradient(145deg, #3b261b 0%, #26170f 48%, #32201a 100%);
  box-shadow: 0 0 0 1px #7a5d39, 0 0 0 5px #170d09, 0 0 0 6px rgba(201, 164, 106, 0.6),
    inset 0 0 0 1px rgba(201, 164, 106, 0.55), inset 1px 2px 0 1px rgba(255, 228, 180, 0.07), inset -1px -2px 0 1px rgba(0, 0, 0, 0.3), inset 0 3px 10px rgba(0, 0, 0, 0.65),
    0 2px 3px rgba(0, 0, 0, 0.55), 0 12px 24px rgba(0, 0, 0, 0.35), 0 34px 70px rgba(0, 0, 0, 0.5), 0 60px 120px rgba(0, 0, 0, 0.25);
}
.elementor .elementor-widget.cr-quote-photo::after { border: 1px solid transparent; border-image: linear-gradient(180deg, rgba(236, 206, 150, 0.8), rgba(201, 164, 106, 0.55) 50%, rgba(150, 112, 62, 0.5)) 1; box-shadow: inset 0 0 0 4px rgba(0, 0, 0, 0.25), 0 -1px 3px rgba(255, 220, 160, 0.1); }
.elementor .cr-quote-photo img { display: block; box-shadow: 0 0 0 7px #120a07, 0 0 0 8px rgba(0, 0, 0, 0.6), 0 6px 18px rgba(0, 0, 0, 0.6); }
@media (max-width: 760px) {
  .elementor .elementor-widget.cr-quote-photo { box-shadow: 0 0 0 1px #7a5d39, 0 0 0 5px #170d09, 0 0 0 6px rgba(201, 164, 106, 0.6),
    inset 0 0 0 1px rgba(201, 164, 106, 0.55), inset 1px 1px 0 1px rgba(255, 228, 180, 0.07), inset -1px -1px 0 1px rgba(0, 0, 0, 0.3), inset 0 2px 6px rgba(0, 0, 0, 0.6),
    0 1px 2px rgba(0, 0, 0, 0.5), 0 8px 16px rgba(0, 0, 0, 0.35), 0 20px 40px rgba(0, 0, 0, 0.45); }
}

/* Awards strip scrolls like the dish row: snaps with a plaque centered, the same round arrows on the sides. The gap is
   wide enough that the grown center plaque never touches its neighbors; on phones one plaque sits in the middle with a
   slim, faded peek of the next on each side, and it grows less. */
.cr-plaques-wrap { position: relative; }
.cr-plaques { scroll-snap-type: x mandatory; gap: 28px; }
.cr-plaques .cr-plaque { scroll-snap-align: center; scroll-snap-stop: always; }
.cr-plaques.is-dragging { scroll-snap-type: none; }
.cr-plaques-wrap .cr-dishes-nav.cr-plaques-nav { position: absolute; inset: 32px 0 12px 0; height: auto; margin: 0; padding: 0 var(--cr-s2); display: flex; justify-content: space-between; align-items: center; pointer-events: none; z-index: 20; }
@media (max-width: 760px) {
  .cr-plaques { gap: 22px; padding-inline: 0; margin-inline: calc(-1 * var(--cr-gutter)); }
  .cr-plaques .cr-plaque { flex: 0 0 68vw; transform: translateY(var(--cr-lift)) scale(calc(1 + 0.04 * var(--cr-c))); }
  .cr-plaques { -webkit-mask-image: linear-gradient(90deg, transparent 0, rgba(0, 0, 0, 0.25) 4%, #000 15%, #000 85%, rgba(0, 0, 0, 0.25) 96%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, rgba(0, 0, 0, 0.25) 4%, #000 15%, #000 85%, rgba(0, 0, 0, 0.25) 96%, transparent 100%); }
  .cr-plaques-wrap .cr-dishes-nav.cr-plaques-nav { padding: 0 2px; }
}
/* More room inside the strip for the center plaque's glow and shadow, given back with negative margins so the plaques
   and the clearance under the heading ornament stay exactly where they were. */
.cr-plaques { padding-top: 72px; margin-top: -40px; padding-bottom: 104px; margin-bottom: -92px; }
.cr-plaques-wrap .cr-dishes-nav.cr-plaques-nav { top: 72px; }
.cr-plaques.is-drifting { scroll-snap-type: none; }
/* Six hero actions: a two-column grid. Order online and Reserve a table lead as full-size pills, the four quieter links follow as matching smaller outline pills. */
.elementor .cr-hero-cine .cr-btns { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; max-width: 500px; align-items: stretch; }
.elementor .cr-hero-cine .cr-btns > .elementor-widget { width: auto !important; max-width: none; margin: 0 !important; }
.elementor .cr-hero-cine .cr-btns .elementor-button-wrapper { height: 100%; }
.elementor .cr-hero-cine .cr-btns .elementor-button { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; padding: 0 12px; text-align: center; white-space: nowrap; text-transform: none; }
.elementor .cr-hero-cine .cr-btns .cr-hbtn .elementor-button { min-height: 54px; font-variant-caps: small-caps; font-weight: 600; letter-spacing: 0.05em !important; border-radius: 999px; border: 1px solid rgba(201, 164, 105, 0.55); background: rgba(16, 9, 9, 0.5); backdrop-filter: blur(6px); color: var(--cr-cream); font-family: var(--cr-display); font-size: 1.0625rem; line-height: 1.15; box-shadow: none; text-decoration: none; transition: background-color 160ms var(--cr-ease), border-color 160ms var(--cr-ease); }
.elementor .cr-hero-cine .cr-btns .cr-hbtn .elementor-button:hover, .elementor .cr-hero-cine .cr-btns .cr-hbtn .elementor-button:focus-visible { background: rgba(201, 164, 105, 0.16); border-color: var(--cr-gold, #c9a469); color: #fff; }
.elementor .cr-hero-cine .cr-btns .cr-hbtn-sm .elementor-button { min-height: 44px; font-size: 1.0625rem; border-color: rgba(244, 239, 232, 0.28); }
.elementor .cr-hero-cine .cr-btns .cr-btn .elementor-button { min-height: 54px; padding: 0 12px; }
@media (max-width: 760px) { .elementor .cr-hero-cine .cr-btns { max-width: none; gap: 10px; } .elementor .cr-hero-cine .cr-btns .cr-btn .elementor-button { font-size: 1.0625rem; } .elementor .cr-hero-cine .cr-btns .cr-hbtn .elementor-button { font-size: 1rem; } .elementor .cr-hero-cine .cr-btns .cr-hbtn-sm .elementor-button { font-size: 0.9375rem; letter-spacing: 0.03em !important; padding: 0 6px; } }

/* Bigger, airier headings for a more luxurious feel: about 12% larger type, wider tracking, a touch more room around them. */
:root { --cr-ls-head: 0.05em; --cr-ls-sub: 0.06em; }
.cr-h1 .elementor-heading-title { font-size: clamp(3rem, 5.2vw, 4.8rem); line-height: 1.08; }
.cr-hero:not(.cr-page-hero) .cr-h1 .elementor-heading-title { font-size: clamp(3rem, 4.8vw, 4.2rem); }
.cr-page-hero .cr-h1 .elementor-heading-title, .cr-page-intro .cr-h1 .elementor-heading-title { font-size: clamp(2.8rem, 4.5vw, 4.2rem); line-height: 1.1; }
.cr-page-intro .cr-h1 .elementor-heading-title { font-size: clamp(3rem, 5.5vw, 5rem); }
.elementor .cr-hero-cine .cr-h1 .elementor-heading-title { font-size: clamp(3.1rem, 6.2vw, 6rem); line-height: 1.06; }
.cr-h2 .elementor-heading-title { font-size: clamp(2.5rem, 4.9vw, 3.9rem); line-height: 1.13; }
.cr-h3 .elementor-heading-title { font-size: 1.85rem; line-height: 1.2; }
.cr-grid4 .cr-h3 .elementor-heading-title { font-size: 1.4rem; }
.cr-hh h2, .cr-menu h2, .cr-area-grid .cr-h2 .elementor-heading-title { font-size: clamp(2.25rem, 3.8vw, 3.1rem); line-height: 1.1; }
.cr-article-body .cr-h2 .elementor-heading-title { font-size: clamp(2.1rem, 3.3vw, 2.65rem); line-height: 1.15; }
.cr-seg h3 { font-size: 1.7rem; line-height: 1.25; }
.cr-seg-lead h3 { font-size: clamp(2rem, 3.3vw, 2.65rem); }
.cr-feature h3 { font-size: 1.85rem; line-height: 1.25; }
.cr-article h3 { font-size: 1.45rem; line-height: 1.3; }
.cr-dish-card h3 { font-size: 1.7rem; line-height: 1.25; }
.cr-footer h2 { font-size: 1.35rem; }
.elementor .e-con.cr-section { --gap: 56px; }
.home .elementor > .e-con.cr-section:not(.cr-hero) { --padding-top: 100px; --padding-bottom: 100px; }
.home .elementor .e-con.cr-section:not(.cr-hero) { --gap: 52px; }
.home .elementor-widget-heading.cr-h2.cr-center::before { margin-bottom: var(--cr-s5); }
@media (max-width: 860px) {
  .elementor .e-con.cr-section { --gap: 40px; }
  .home .elementor > .e-con.cr-section:not(.cr-hero) { --padding-top: 64px; --padding-bottom: 64px; }
  .home .elementor .e-con.cr-section:not(.cr-hero) { --gap: 34px; }
}
@media (max-width: 760px) {
  .cr-page-hero .cr-h1 .elementor-heading-title, .cr-page-intro .cr-h1 .elementor-heading-title { font-size: 2.5rem; }
  .elementor .cr-hero-cine .cr-h1 .elementor-heading-title { font-size: 2.85rem; }
  .cr-h2 .elementor-heading-title { font-size: 2.4rem; }
}
@media (max-width: 400px) { .elementor .cr-hero-cine .cr-h1 .elementor-heading-title { font-size: 2.7rem; } }

/* Lasinda's Nov 2 notes: hero buttons two to a row, a one-line italic tagline, her menu's sizes, a parking card and the party pack popup. */
.elementor .cr-hero-cine .cr-btns { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 500px; }
.elementor .cr-hero-cine .cr-deck, .elementor .cr-hero-cine .cr-deck p { white-space: nowrap; font-style: italic; font-size: clamp(0.95rem, 3.9vw, 1.5rem); }
.cr-item-price { text-align: right; }
.cr-sizes { display: block; font-family: var(--cr-body); font-style: italic; font-weight: 400; font-size: 0.8125rem; letter-spacing: 0.02em; color: var(--cr-cream-soft); text-transform: none; }
.cr-menu-note.cr-raw { margin-top: 28px; text-align: center; font-size: 0.875rem; }
.cr-parking { max-width: 780px; margin: 0 auto; padding: 36px 40px; border-radius: var(--cr-r-md); background: rgba(193, 53, 56, 0.14); border: 1px solid rgba(193, 53, 56, 0.55); }
.cr-parking h2 { margin: 0 0 18px; font-size: clamp(2rem, 4vw, 2.75rem); }
.cr-parking ul { margin: 0; padding-left: 1.3em; display: grid; gap: 12px; font-size: 1.1875rem; line-height: 1.5; }
.cr-parking li::marker { color: var(--cr-red); }
@media (max-width: 760px) { .cr-parking { padding: 26px 22px; } .cr-parking ul { font-size: 1.0625rem; } }
.cr-pop[hidden] { display: none; }
.cr-pop { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(6, 3, 3, 0.78); }
.cr-pop-card { position: relative; width: 100%; max-width: 520px; max-height: calc(100vh - 40px); overflow: auto; border-radius: var(--cr-r-md); background: #1b0d0e; border: 1px solid rgba(201, 164, 105, 0.4); box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6); color: var(--cr-cream); }
.cr-pop-photo { display: block; width: 100%; height: 150px; object-fit: cover; border-radius: var(--cr-r-md) var(--cr-r-md) 0 0; }
.cr-pop-body { padding: 28px 32px 30px; text-align: center; }
.cr-pop-body h2 { margin: 0 0 8px; font-size: clamp(1.9rem, 5vw, 2.4rem); }
.cr-pop-body p { margin: 0 0 18px; }
.cr-pop-packs { list-style: none; margin: 0 0 14px; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.cr-pop-packs li { display: grid; gap: 4px; padding: 14px 6px; border-radius: 12px; border: 1px solid rgba(244, 239, 232, 0.22); }
.cr-pop-packs span { font-size: 0.9375rem; color: var(--cr-cream-soft); }
.cr-pop-packs strong { font-family: var(--cr-display); font-size: 1.5rem; }
.cr-pop-body .cr-pop-note { margin-bottom: 20px; font-size: 0.9375rem; color: var(--cr-cream-soft); }
.cr-pop-skip { display: block; margin: 14px auto 0; padding: 8px 12px; background: none; border: 0; color: var(--cr-cream-soft); font: inherit; font-size: 0.9375rem; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.cr-pop-x { position: absolute; top: 10px; right: 10px; z-index: 1; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; border: 0; background: rgba(12, 7, 7, 0.7); color: var(--cr-cream); cursor: pointer; }
.cr-pop-x { padding: 0; line-height: 0; transition: background 160ms ease; }
.cr-pop-x svg { display: block; }
.cr-pop-x:hover { background: var(--cr-red); }
.cr-pop-x:focus-visible { background: rgba(12, 7, 7, 0.85); outline: 2px solid var(--cr-cream); outline-offset: 2px; }
.cr-pop-card:focus, .cr-pop-card:focus-visible { outline: 0; }
.cr-menu .cr-item { align-items: baseline; }
.cr-menu .cr-item-price { white-space: nowrap; }
.cr-menu .cr-sizes { display: inline; margin-left: 8px; color: #7a5c35; font-size: 0.875rem; }
@media (max-width: 760px) { .cr-menu .cr-sizes { display: block; margin: 0; text-align: right; } }
@media (max-width: 760px) { .cr-menu .cr-item { flex-wrap: wrap; row-gap: 2px; } .cr-menu .cr-item .cr-name { min-width: 0; } }

/* Inner page heroes: the buttons line up under each other, like the home hero. */
.elementor .e-con.cr-page-hero .cr-btns { --flex-direction: column; --align-items: stretch; max-width: 320px; }
.elementor .e-con.cr-page-hero .cr-btns .elementor-widget-button, .elementor .e-con.cr-page-hero .cr-btns .elementor-button { width: 100%; }

/* TV segment thumbnails behind the play button. */
.cr-video .cr-thumb { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.cr-video:has(.cr-thumb)::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(12, 7, 7, 0.08) 0%, rgba(12, 7, 7, 0.45) 100%); }
.cr-video .cr-play { z-index: 1; }

/* Email list signup right under the hero buttons: centered, warm glow, gold rule, one clear button to Toast. */

/* Desktop: roomier home hero. */
@media (min-width: 761px) {
  .elementor .e-con.cr-hero.cr-hero-cine { min-height: clamp(780px, calc(100svh - 96px), 1200px); --padding-top: var(--cr-s8); --padding-bottom: 104px; }
  .home .elementor .e-con.cr-hero.cr-hero-cine { --padding-bottom: 104px; }
  .cr-hero-cine .cr-row > .cr-stack { --gap: 30px; }
  .elementor .cr-hero-cine .cr-deck.elementor-widget:not(:last-child) { margin-block-end: 22px; }
  .elementor .cr-hero-cine .cr-btns { gap: 14px 16px; max-width: 540px; margin-top: 8px; }
  .elementor .cr-hero-cine .cr-btns .cr-btn .elementor-button { min-height: 58px; }
  .elementor .cr-hero-cine .cr-btns .cr-hbtn-sm .elementor-button { min-height: 50px; }
  .cr-slides-cap { bottom: var(--cr-s6); }
}
@media (max-width: 760px) { .elementor .cr-hero-cine .cr-btns { gap: 12px; margin-top: 6px; } .cr-hero-cine .cr-row > .cr-stack { --gap: 18px; } }
.cr-dish-card .cr-gf-tag { order: 1; align-self: center; margin-top: -6px; padding: 3px 12px; border: 1px solid rgba(201, 164, 105, 0.7); border-radius: 999px; font-family: var(--cr-display); font-size: 0.8125rem; font-variant-caps: small-caps; letter-spacing: 0.08em; line-height: 1.3; color: #d9bd8c; }

.elementor .e-con.cr-parkinfo { --padding-top: var(--cr-s8); --padding-bottom: var(--cr-s8); }
.cr-plaque .cr-year + .cr-count { margin-top: 2px; font-style: italic; font-size: 1.125rem; line-height: 1.3; color: var(--cr-cream-soft); }

/* Toppings: styled like the happy hour band, so it stands out from the paper menus. */
.cr-menu#toppings { position: relative; padding: 0; border-radius: var(--cr-r-md); background: radial-gradient(ellipse 70% 130% at 22% 0%, #d4423f 0%, var(--cr-red) 42%, #96272a 100%); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4), 0 34px 70px rgba(0, 0, 0, 0.6), 0 0 120px rgba(193, 53, 56, 0.14); margin-block: var(--cr-s5); }
.cr-menu#toppings::before { content: ''; position: absolute; inset: 8px; border: 1px solid rgba(244, 239, 232, 0.32); border-radius: var(--cr-r-sm); pointer-events: none; }
.cr-menu#toppings .cr-menu-paper { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--cr-s7); align-items: center; padding: var(--cr-s7); background: none; color: var(--cr-cream); }
.cr-menu#toppings h2 { color: #fff; font-size: clamp(2rem, 3.4vw, 2.75rem); line-height: 1.05; }
.cr-menu#toppings .cr-menu-sub { display: none; }
.cr-menu#toppings ul { display: grid; grid-template-columns: 1fr 1.6fr; columns: auto; column-gap: 0; gap: 0; margin: 0; }
.cr-menu#toppings li { display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 0; padding: 0 var(--cr-s6); text-align: center; border-left: 1px solid rgba(244, 239, 232, 0.4); break-inside: auto; }
.cr-menu#toppings li:first-child { border-left: 0; }
.cr-menu#toppings .cr-item { justify-content: center; }
.cr-menu#toppings .cr-name { color: #fff; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.1; letter-spacing: 0.05em; }
.cr-menu#toppings .cr-desc { margin: 0; color: var(--cr-cream); font-style: italic; font-size: 1.1875rem; line-height: 1.45; }
@media (max-width: 860px) {
  .cr-menu#toppings .cr-menu-paper { grid-template-columns: minmax(0, 1fr); gap: var(--cr-s5); padding: var(--cr-s6) var(--cr-s5); }
  .cr-menu#toppings .cr-menu-head { justify-content: center; text-align: center; }
  .cr-menu#toppings ul { grid-template-columns: minmax(0, 1fr); gap: var(--cr-s5); }
  .cr-menu#toppings li { padding: 0; border-left: 0; }
  .cr-menu#toppings li + li { padding-top: var(--cr-s5); border-top: 1px solid rgba(244, 239, 232, 0.4); }
}

/* About us box: wide, in the Copperplate display face. */
.elementor .e-con.cr-about { --padding-top: var(--cr-s7); --padding-bottom: var(--cr-s7); }
.cr-about-box { width: 100%; max-width: 1192px; margin-inline: auto; padding: var(--cr-s7) var(--cr-s8); border: 1px solid rgba(201, 164, 105, 0.6); border-radius: var(--cr-r-md, 12px); background: linear-gradient(180deg, rgba(26, 14, 15, 0.75), rgba(12, 7, 7, 0.75)); box-shadow: 0 0 0 6px rgba(12, 7, 7, 0.9), 0 0 0 7px rgba(201, 164, 105, 0.25), var(--cr-shadow); text-align: center; font-family: var(--cr-display); }
.cr-about-box h2 { margin: 0 0 var(--cr-s5); font-family: var(--cr-display); font-weight: 700; font-size: clamp(1.75rem, 3vw, 2.5rem); letter-spacing: 0.08em; text-transform: uppercase; color: var(--cr-cream); }
.cr-about-box p { margin: 0 auto var(--cr-s4); max-width: 100ch; font-family: var(--cr-display); font-size: clamp(1rem, 1.35vw, 1.1875rem); line-height: 1.8; letter-spacing: 0.02em; font-style: normal; color: var(--cr-cream); }
.cr-about-box p:last-child { margin-bottom: 0; }
@media (max-width: 760px) { .cr-about-box { padding: var(--cr-s6) var(--cr-s4); } .cr-about-box p { text-align: left; line-height: 1.7; } .cr-about-box h2 { text-align: center; } }

/* Polish pass: buttons, slideshow, dish tags, scrolling. Motion respects prefers-reduced-motion. */
::selection { background: rgba(201, 164, 105, 0.35); color: #fff; }
html { scroll-padding-top: 120px; }
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .cr-btn .elementor-button, a.cr-btn, .elementor .cr-hero-cine .cr-btns .cr-hbtn .elementor-button { transition: background-color 180ms var(--cr-ease), border-color 180ms var(--cr-ease), color 180ms var(--cr-ease), transform 220ms var(--cr-ease), box-shadow 220ms var(--cr-ease); }
  .cr-btn .elementor-button:active, a.cr-btn:active, .elementor .cr-hero-cine .cr-btns .cr-hbtn .elementor-button:active { transform: translateY(0) scale(0.985); transition-duration: 80ms; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .cr-btn .elementor-button:hover, a.cr-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(193, 53, 56, 0.34); }
  .cr-btn-line .elementor-button:hover, a.cr-btn.cr-btn-line:hover { box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35); }
  .elementor .cr-hero-cine .cr-btns .cr-hbtn .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.45); }
}
/* Hero slideshow: a gentler drift, a slightly deeper scrim behind the words, and the bright wood-table photo toned down so the heading stays readable. */
@keyframes cr-drift { from { transform: translateZ(0) scale(1.02); } to { transform: translateZ(0) scale(1.07) translate3d(-0.8%, 0, 0); } }
.cr-hero-slides .cr-slide[data-name="Tomato basil"] { filter: brightness(0.86) saturate(1.05); }
.elementor .e-con.cr-hero.cr-hero-cine::before { background: radial-gradient(ellipse 54% 72% at 20% 52%, rgba(5, 3, 3, 0.64) 0%, rgba(5, 3, 3, 0.2) 62%, rgba(5, 3, 3, 0) 100%); }
.cr-cap-name { transition: opacity 600ms cubic-bezier(0.45, 0, 0.55, 1), transform 600ms cubic-bezier(0.45, 0, 0.55, 1); }
.cr-cap-name.is-out { transform: translateY(6px); }
.cr-ticks i::after { transition: transform 400ms var(--cr-ease); }
/* Dish tags sit on the photo, so every price lines up across the row. */
.cr-dish-card { position: relative; }
.cr-dish-card .cr-gf-tag { position: absolute; top: 12px; left: 12px; order: 0; margin: 0; align-self: auto; padding: 4px 12px; background: rgba(12, 7, 7, 0.78); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); color: #f1dcae; }
/* About box: a little tighter tracking for the long all-caps text. */
.cr-about-box p { letter-spacing: 0.01em; }

/* Hero buttons: every one the same size. Order online stays red as the main action. */
.elementor .cr-hero-cine .cr-btns .cr-btn .elementor-button, .elementor .cr-hero-cine .cr-btns .cr-hbtn .elementor-button, .elementor .cr-hero-cine .cr-btns .cr-hbtn-sm .elementor-button { min-height: 56px; font-size: 1.0625rem; letter-spacing: 0.05em; padding: 0 14px; }
@media (min-width: 761px) { .elementor .cr-hero-cine .cr-btns .cr-btn .elementor-button, .elementor .cr-hero-cine .cr-btns .cr-hbtn .elementor-button, .elementor .cr-hero-cine .cr-btns .cr-hbtn-sm .elementor-button { min-height: 56px; } }
@media (max-width: 760px) { .elementor .cr-hero-cine .cr-btns .cr-btn .elementor-button, .elementor .cr-hero-cine .cr-btns .cr-hbtn .elementor-button, .elementor .cr-hero-cine .cr-btns .cr-hbtn-sm .elementor-button { min-height: 52px; font-size: 0.9375rem; letter-spacing: 0.03em !important; padding: 0 6px; } }

/* Popup photo: Jimmy with the lasagna, a portrait cropped from the top so his face stays in view. */
.cr-pop-photo { height: 260px; object-position: 50% 12%; }
@media (max-width: 560px) { .cr-pop-photo { height: 200px; } }

/* Blog cards on the home page: four across, two by two on tablets, one column on phones. */
.cr-blog-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--cr-s5); }
.cr-blog-card { position: relative; display: flex; flex-direction: column; gap: var(--cr-s3); min-width: 0; padding-bottom: var(--cr-s4); border: 1px solid var(--cr-line); border-radius: var(--cr-r-md); background: var(--cr-wine); overflow: hidden; text-decoration: none; color: var(--cr-cream); box-shadow: var(--cr-shadow); transition: border-color 300ms var(--cr-ease), transform 300ms var(--cr-ease); }
.cr-blog-card img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; box-shadow: none; }
.cr-blog-card h3 { margin: 0; padding: 0 var(--cr-s4); font-size: 1.3125rem; line-height: 1.2; }
.cr-blog-card p { margin: 0; padding: 0 var(--cr-s4); font-style: italic; font-size: 1.0625rem; line-height: 1.45; color: var(--cr-cream-soft); }
.cr-blog-soon { position: absolute; top: 12px; left: 12px; padding: 4px 12px; border: 1px solid rgba(201, 164, 105, 0.7); border-radius: 999px; background: rgba(12, 7, 7, 0.78); font-family: var(--cr-display); font-size: 0.8125rem; font-variant-caps: small-caps; letter-spacing: 0.08em; line-height: 1.3; color: #f1dcae; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .cr-blog-card:hover { border-color: rgba(201, 164, 105, 0.6); transform: translateY(-3px); } }
@media (max-width: 1000px) { .cr-blog-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cr-blog-cards { grid-template-columns: minmax(0, 1fr); } }
/* About box with five paragraphs: slightly smaller type, easier line length. */
.cr-about-box p { font-size: clamp(0.9375rem, 1.2vw, 1.0625rem); line-height: 1.75; max-width: 96ch; }

/* Party pack popup, compact: the photo sits beside the text on desktop, and nothing scrolls. */
.cr-pop-card { max-width: 700px; max-height: none; overflow: visible; display: grid; grid-template-columns: 230px minmax(0, 1fr); align-items: stretch; }
.cr-pop-card .cr-pop-photo { grid-column: 1; grid-row: 1; width: 100%; height: 100%; min-height: 100%; object-fit: cover; object-position: 50% 30%; border-radius: var(--cr-r-md) 0 0 var(--cr-r-md); }
.cr-pop-card .cr-pop-body { grid-column: 2; padding: 22px 26px 20px; display: flex; flex-direction: column; justify-content: center; }
.cr-pop-body h2 { font-size: clamp(1.6rem, 3.2vw, 2rem); margin-bottom: 6px; }
.cr-pop-body p { margin-bottom: 12px; font-size: 1.0625rem; line-height: 1.4; }
.cr-pop-packs { margin-bottom: 10px; gap: 8px; }
.cr-pop-packs li { padding: 10px 4px; }
.cr-pop-packs strong { font-size: 1.3rem; }
.cr-pop-body .cr-pop-note { margin-bottom: 14px; font-size: 0.875rem; }
.cr-pop-skip { margin-top: 8px; padding: 4px 10px; }
@media (max-width: 600px) {
  .cr-pop { padding: 14px; }
  .cr-pop-card { grid-template-columns: 96px minmax(0, 1fr); max-width: 420px; }
  .cr-pop-card .cr-pop-body { padding: 16px 14px 14px; }
  .cr-pop-body h2 { font-size: 1.35rem; }
  .cr-pop-body p { font-size: 0.9375rem; margin-bottom: 8px; }
  .cr-pop-packs { grid-template-columns: repeat(3, 1fr); gap: 6px; }
  .cr-pop-packs li { padding: 8px 2px; }
  .cr-pop-packs span { font-size: 0.75rem; }
  .cr-pop-packs strong { font-size: 1.05rem; }
}

/* Parking guide: centered like the old cranellis.com, with an underlined heading per section. */
.elementor .e-con.cr-parkinfo { --padding-top: var(--cr-s8); --padding-bottom: var(--cr-s8); }
.cr-parkguide { width: 100%; max-width: 860px; margin-inline: auto; text-align: center; color: #fff; }
.cr-parkguide h2, .cr-parkguide h3 { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 0; font-family: var(--cr-body); font-weight: 700; letter-spacing: normal; font-variant-caps: normal; text-transform: none; }
.cr-parkguide h2 { font-size: clamp(1.9rem, 3.8vw, 2.4rem); line-height: 1.2; color: #fff; }
.cr-parkguide h2 span, .cr-parkguide h3 span { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
.cr-parkguide h3 { margin-top: var(--cr-s5); font-size: 1.8rem; line-height: 1.25; color: #fff; }
.cr-parkguide .cr-park-ico { flex: none; color: #d9bd8c; }
.cr-parkguide h2 .cr-park-ico { color: #d9bd8c; width: 40px; height: 40px; }
.cr-parkguide-lead { margin: 8px auto 0; font-family: var(--cr-body); font-size: 1.25rem; line-height: 1.4; font-weight: 700; color: #fff; }
.cr-parkguide ul { list-style: none; margin: 6px 0 0; padding: 0; }
.cr-parkguide li { margin: 2px 0; font-family: var(--cr-body); font-size: 1.25rem; line-height: 1.45; font-weight: 700; color: #fff; }
.cr-parkguide li::before { content: '\2022\00a0'; }
@media (max-width: 760px) { .cr-parkguide h3 { font-size: 1.5rem; } .cr-parkguide-lead, .cr-parkguide li { font-size: 1.0625rem; } }

/* Payment policy box under the About box */
.cr-surcharge { width: 100%; max-width: 1192px; margin: var(--cr-s6) auto 0; padding: var(--cr-s5) var(--cr-s6); border: 1px solid rgba(201, 164, 105, 0.6); border-radius: var(--cr-r-md, 12px); background: linear-gradient(180deg, rgba(26, 14, 15, 0.75), rgba(12, 7, 7, 0.75)); box-shadow: 0 0 0 6px rgba(12, 7, 7, 0.9), 0 0 0 7px rgba(201, 164, 105, 0.25), var(--cr-shadow); text-align: center; font-family: var(--cr-display); }
.cr-surcharge h2 { margin: 0 0 var(--cr-s3); font-family: var(--cr-display); font-weight: 700; font-size: clamp(1.25rem, 2vw, 1.625rem); letter-spacing: 0.08em; text-transform: uppercase; color: var(--cr-cream); }
.cr-surcharge p { margin: 0; font-family: var(--cr-display); font-size: clamp(1rem, 1.35vw, 1.1875rem); line-height: 1.7; letter-spacing: 0.02em; color: var(--cr-cream); }
@media (max-width: 760px) { .cr-surcharge { padding: var(--cr-s5) var(--cr-s4); } }

/* Header sign in link (Toast guest sign in) and footer newsletter */
.cr-signin { display: inline-flex; align-items: center; gap: 6px; padding: 8px 10px; color: var(--cr-cream); font-family: var(--cr-display); font-size: 0.8125rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; border-radius: 999px; transition: color .2s ease, background-color .2s ease; }
.cr-signin:hover, .cr-signin:focus-visible { color: #fff; background: rgba(201, 164, 105, 0.18); }
.cr-signin svg { flex: none; }
.cr-news { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--cr-s6); align-items: center; margin-bottom: var(--cr-s7); padding: var(--cr-s6); border: 1px solid rgba(201, 164, 105, 0.5); border-radius: var(--cr-r-md, 12px); background: linear-gradient(180deg, rgba(26, 14, 15, 0.75), rgba(12, 7, 7, 0.75)); }
.cr-news h2 { margin: 0 0 var(--cr-s3); font-family: var(--cr-display); font-size: clamp(1.5rem, 2.6vw, 2rem); letter-spacing: 0.06em; text-transform: uppercase; color: var(--cr-cream); }
.cr-news p { margin: 0 0 var(--cr-s3); color: var(--cr-cream); line-height: 1.7; }
.cr-news-alt { color: var(--cr-cream); font-size: 0.875rem; text-decoration: underline; text-underline-offset: 3px; }
.cr-news-frame { display: block; width: 100%; height: 430px; border: 0; border-radius: 10px; background: #fff; }
@media (max-width: 860px) { .cr-news { grid-template-columns: 1fr; padding: var(--cr-s5) var(--cr-s4); } .cr-news-frame { height: 480px; } }

/* Awards strip: --cr-c is already set on every scroll frame by site.js, so the size and light follow the scroll one to
   one. A CSS transition on top of that made every plaque ease a second time, behind the drag, and look choppy. No
   transitions on anything --cr-c drives; only the pointer hover gets a short one. */
.cr-plaques .cr-plaque, .cr-plaques .cr-plaque .cr-mask, .cr-plaques .cr-plaque .cr-plaque-logo img { transition: none; will-change: transform, filter; }
@media (hover: hover) { .cr-plaques:not(.is-dragging) .cr-plaque:hover { transition: transform 160ms ease-out, filter 160ms linear, box-shadow 160ms linear, border-color 160ms linear; } .cr-plaques:not(.is-dragging) .cr-plaque:hover .cr-mask, .cr-plaques:not(.is-dragging) .cr-plaque:hover .cr-plaque-logo img { transition: background-color 160ms linear, opacity 160ms linear, filter 160ms linear; } }

/* Menu pills: arrows at either end of the row when it scrolls */
.cr-chips-wrap { position: relative; flex: 1 1 0; min-width: 0; max-width: 100%; }
.cr-chips-wrap .cr-chips { scroll-behavior: smooth; padding-inline: 2px; }
.cr-chips-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 40px; height: 40px; display: grid; place-items: center; padding: 0; border-radius: 50%; border: 1px solid rgba(244, 239, 232, 0.55); background: rgba(12, 7, 7, 0.88); color: var(--cr-cream); cursor: pointer; box-shadow: 0 0 14px 10px rgba(12, 7, 7, 0.85); transition: background-color 200ms linear, border-color 200ms linear; }
.cr-chips-arrow[hidden] { display: none; }
.cr-chips-arrow:hover, .cr-chips-arrow:focus-visible { background: var(--cr-red); border-color: var(--cr-red); }
.cr-chips-prev { left: 0; }
.cr-chips-next { right: 0; }
@media (prefers-reduced-motion: reduce) { .cr-chips-wrap .cr-chips { scroll-behavior: auto; } }

.cr-fine-note { margin: var(--cr-s3) 0 0; font-size: 0.9375rem; line-height: 1.6; max-width: 90ch; }

.cr-fine-note { margin: var(--cr-s3) 0 0; font-size: 0.9375rem; line-height: 1.6; max-width: 90ch; }

/* Privacy and accessibility pages */
.cr-legal-body { max-width: 72ch; margin-inline: auto; text-align: left; }
.cr-legal-body h2 { margin: var(--cr-s6) 0 var(--cr-s3); font-family: var(--cr-display); font-size: clamp(1.25rem, 2vw, 1.5rem); color: var(--cr-cream); }
.cr-legal-body p, .cr-legal-body li { line-height: 1.75; color: var(--cr-cream); }
.cr-legal-body ul { padding-left: 1.25em; }
.cr-legal-body li { margin-bottom: var(--cr-s2); }
.cr-legal-body a { color: var(--cr-cream); text-decoration: underline; text-underline-offset: 3px; }
