/* Venue-specific public art direction. Dashboard and POS keep their app layout. */
.site-shell {
  --night: oklch(16% .006 55);
  --ivory: oklch(95% .015 80);
  --paper: oklch(98% .009 80);
  --red: oklch(50% .19 27);
  --gold: oklch(75% .09 80);
  --line: oklch(83% .02 80);
  background: var(--ivory);
  color: var(--night);
}
.site-shell h1,.site-shell h2 { font-weight:400; letter-spacing:-.025em; }
.site-shell .button { background:var(--red); color:var(--paper); border-radius:2px; padding:14px 24px; font-weight:600; }
.site-shell .button:hover { background:oklch(43% .16 27); }
.site-shell .eyebrow { color:var(--red); font-size:12px; letter-spacing:.16em; }
.site-shell .site-header { position:relative; padding:14px 5%; min-height:108px; background:var(--night); border-bottom:1px solid oklch(30% .01 55); }
.site-shell .brand img { width:265px; max-width:265px; max-height:none; mix-blend-mode:lighten; }
.site-shell .site-nav { gap:22px; }
.site-shell .site-nav>a:not(.button) { font-size:12px; }
.site-shell .owner-login { opacity:.65; }
.site-shell .button--nav { min-height:44px; padding:11px 18px; }
.site-shell .language-toggle { min-width:42px; min-height:42px; }
.site-shell .hero { display:grid; grid-template-columns:44% 56%; height:auto; min-height:640px; max-height:none; background:var(--night); color:var(--ivory); padding:65px 0 64px 7%; align-items:center; }
#siteShell .hero-copy { position:relative; inset:auto; z-index:2; width:auto; max-width:570px; padding-right:20px; }
#siteShell .hero h1 { font-size:clamp(44px,4.65vw,74px); line-height:1.09; max-width:12ch; overflow-wrap:normal; }
.site-shell .hero .eyebrow { color:var(--gold); margin-bottom:25px; }
.site-shell .hero-description { max-width:34ch; color:oklch(82% .015 80); font-size:18px; margin:25px 0; }
.site-shell .hero-media { position:relative; inset:auto; width:100%; height:auto; grid-column:2; grid-row:1; align-self:center; }
.site-shell .hero-media img { position:static; width:100%; height:auto; display:block; object-fit:contain; mix-blend-mode:lighten; }
.site-shell .hero-wash { display:none; }
.site-shell .hero-actions { display:flex; flex-wrap:wrap; gap:24px; align-items:center; margin-top:30px; }
.site-shell .hero-actions .text-link { color:var(--ivory); margin:0; border-bottom:1px solid var(--gold); padding-bottom:5px; }
.site-shell .scroll-cue { bottom:20px; right:5%; color:var(--gold); }
.site-shell .reservation-bar { padding:32px 7%; background:oklch(23% .009 55); gap:24px 40px; grid-template-columns:1fr 2.4fr; }
.site-shell .reservation-bar .eyebrow { color:var(--gold); }
.site-shell .reservation-bar h2 { font-size:29px; }
.site-shell .booking-form { gap:12px; align-items:end; }
.site-shell .booking-form label { color:oklch(85% .01 80); }
.site-shell .booking-form input,.site-shell .booking-form select { background:var(--paper); min-height:50px; border-radius:2px; }
.site-shell .booking-form .button { min-height:50px; padding:11px 16px; }
.site-shell .form-note:empty { display:none; }
.site-shell .reviews { display:flex; justify-content:space-between; gap:24px; padding:24px 7%; background:var(--ivory); border-bottom:1px solid var(--line); }
.site-shell .review-summary { display:flex; align-items:center; gap:20px; }
.site-shell .review-summary .eyebrow { margin:0; color:var(--night); }
.site-shell .review-summary h2 { display:none; }
.site-shell .review-list { display:flex; }
.site-shell .reviews-aggregate { color:var(--night); font:500 16px var(--font-body); margin:0; }
.site-shell .story { grid-template-columns:.85fr 1.15fr; padding:100px 7%; gap:7%; background:var(--ivory); }
.site-shell .story h2 { font-size:clamp(35px,3.8vw,56px); line-height:1.13; max-width:13ch; }
.site-shell .story-copy>p:not(.eyebrow) { color:oklch(42% .015 65); line-height:1.75; }
.site-shell .story-image img { height:auto; aspect-ratio:1.45; object-fit:cover; }
.site-shell .story-image figcaption { letter-spacing:.07em; color:oklch(42% .015 65); }
.site-shell .text-link { color:var(--red); }
.site-shell .sushi-gallery { background:var(--night); color:var(--ivory); padding:75px 7% 65px; }
.site-shell .gallery-heading { display:flex; align-items:end; justify-content:space-between; gap:25px; }
.site-shell .gallery-heading .eyebrow { color:var(--gold); }
.site-shell .gallery-heading h2 { font-size:clamp(34px,4vw,55px); margin:0; line-height:1.15; }
.site-shell .gallery-heading>a { color:var(--ivory); border-bottom:1px solid var(--gold); padding-bottom:6px; white-space:nowrap; }
.site-shell .food-gallery { display:grid; grid-template-columns:1fr 1fr 1fr; gap:35px; margin-top:40px; }
.site-shell .food-gallery figure { margin:0; min-width:0; }
.site-shell .food-gallery img { width:100%; height:210px; object-fit:contain; mix-blend-mode:lighten; }
.site-shell .food-gallery figcaption { margin-top:14px; font:25px var(--font-heading); border-top:1px solid oklch(35% .015 70); padding-top:18px; }
.site-shell .food-gallery figcaption span { color:var(--gold); font:12px var(--font-body); margin-right:14px; }
.site-shell .menu-section { padding:85px 7% 95px; }
.site-shell .section-intro { max-width:750px; }
.site-shell .section-intro h2 { font-size:clamp(38px,4vw,58px); }
.site-shell .section-intro p:not(.eyebrow) { max-width:60ch; color:oklch(42% .015 65); }
.site-shell .menu-tabs { margin-top:35px; }
.site-shell .menu-content { display:block; }
.site-shell .menu-group--interactive { display:grid; grid-template-columns:1fr 1fr; gap:0 50px; }
.site-shell .menu-group h3 { grid-column:1/-1; font-size:22px; margin-bottom:12px; }
.site-shell .menu-dish { border-color:var(--line); }
.site-shell .menu-dish-trigger { padding:22px 0; color:var(--night); }
.site-shell .menu-dish-trigger strong { font-size:18px; }
.site-shell .menu-dish-trigger small { color:oklch(42% .015 65); font-size:15px; line-height:1.6; }
.site-shell .menu-dish-price { color:var(--red); }
.site-shell .menu-source { margin-top:30px; }
.site-shell .visit { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:45px; padding:65px 7%; background:oklch(88% .028 80); }
.site-shell .visit h2 { font-size:clamp(36px,4vw,55px); margin:0 0 18px; line-height:1.15; }
.site-shell .visit p { max-width:45ch; }
.site-shell .visit-actions { display:flex; flex-direction:column; align-items:flex-start; gap:20px; }
.site-shell .visit-actions .text-link { margin:0; }
.site-shell footer { background:var(--night); color:var(--ivory); padding:55px 7%; grid-template-columns:1.1fr 1fr auto; }
.site-shell footer address { color:oklch(84% .014 80); }
.site-shell .footer-logo { width:280px; max-width:100%; mix-blend-mode:lighten; }
.site-shell .footer-actions .button { border:1px solid var(--gold); background:transparent; }
.site-shell .booking-experience { color:var(--night); }
.site-shell .reveal { opacity:1; transform:none; }
@media (min-width:1600px) { .site-shell .hero { min-height:720px; } }
@media (max-width:1100px) {
  .site-shell .site-nav { gap:13px; }
  .site-shell .brand img { width:220px; }
  .site-shell .site-nav .map-cta { display:none; }
  .site-shell .hero { min-height:530px; }
  .site-shell .reservation-bar { grid-template-columns:1fr; }
  .site-shell .food-gallery img { height:165px; }
}
@media (max-width:760px) {
  .site-shell .site-header { min-height:85px; padding:10px 22px; }
  .site-shell .brand img { width:205px; }
  .site-shell .nav-toggle { display:block; }
  .site-shell .site-nav { display:none; position:absolute; inset:100% 0 auto; padding:22px; background:var(--night); grid-template-columns:1fr; }
  .site-shell .site-nav.open { display:grid; }
  .site-shell .site-nav a { min-height:40px; }
  .site-shell .site-nav .map-cta { display:block; }
  .site-shell .hero { grid-template-columns:1fr; min-height:0; padding:38px 0 26px; gap:20px; }
  #siteShell .hero-copy { padding:0 24px; }
  #siteShell .hero h1 { font-size:clamp(40px,9vw,62px); max-width:14ch; }
  .site-shell .hero .eyebrow { margin-bottom:18px; font-size:10px; }
  .site-shell .hero-description { font-size:16px; max-width:33ch; margin:20px 0; }
  .site-shell .hero-actions { margin-top:22px; gap:20px; }
  .site-shell .hero-media { grid-column:1; grid-row:2; padding-left:12px; }
  .site-shell .hero-media img { max-height:350px; }
  .site-shell .scroll-cue { display:none; }
  .site-shell .reservation-bar { padding:28px 24px; }
  .site-shell .booking-form { grid-template-columns:1fr 1fr; }
  .site-shell .booking-form label { grid-column:auto; }
  .site-shell .booking-form label:first-child { grid-column:1/-1; }
  .site-shell .booking-form label:last-of-type { grid-column:auto; }
  .site-shell .booking-form .button { grid-column:1/-1; }
  .site-shell .reviews { padding:20px 24px; gap:10px; flex-wrap:wrap; }
  .site-shell .review-summary .eyebrow { font-size:10px; }
  .site-shell .reviews-aggregate { font-size:14px; }
  .site-shell .story { grid-template-columns:1fr; padding:60px 24px; gap:30px; }
  .site-shell .story h2 { max-width:17ch; }
  .site-shell .sushi-gallery { padding:50px 24px; }
  .site-shell .gallery-heading { display:block; }
  .site-shell .gallery-heading>a { display:inline-block; margin-top:22px; }
  .site-shell .food-gallery { grid-template-columns:1fr; gap:35px; margin-top:22px; }
  .site-shell .food-gallery img { height:210px; max-width:500px; display:block; margin:auto; }
  .site-shell .food-gallery figcaption { font-size:23px; padding-top:14px; margin-top:0; }
  .site-shell .menu-section { padding:55px 24px; }
  .site-shell .menu-group--interactive { grid-template-columns:1fr; }
  .site-shell .visit { grid-template-columns:1fr; padding:45px 24px; gap:20px; }
  .site-shell footer { grid-template-columns:1fr; padding:40px 24px; }
  .site-shell .footer-actions { align-items:flex-start; }
}
