/* EllaWeb core */
.site-v2 {
--_brand-primary: var(--brand-primary, #211c17);
--_brand-secondary: var(--brand-secondary, #b3401f);
--_bg-main: var(--bg-main, #faf5ec);
--_bg-alt: var(--bg-alt, #f3ead9);
--_surface: var(--surface, #fffcf7);
--_text-primary: var(--text-primary, #211c17);
--_text-secondary: var(--text-secondary, #6b5f53);
--_accent: var(--accent, #b3401f);
--_accent-contrast: var(--accent-contrast, #fff);
--_line: var(--line, #ece1d1);
--_font-heading: var(--font-heading, Georgia, serif);
--_font-body: var(--font-body, system-ui, sans-serif);
--_weight-heading: var(--weight-heading, 600);
--_title-scale: var(--title-scale, 1);
--_ls-heading: var(--letter-spacing-heading, -0.01em);
--_button-radius: var(--button-radius, 999px);
--_card-radius: var(--card-radius, 18px);
--_input-radius: var(--input-radius, 12px);
--_image-radius: var(--image-radius, 14px);
--_button-height: var(--button-height, 48px);
--_container: var(--container-width, 1240px);
--_section-gap: var(--section-gap, 72px);
--_img-ratio: var(--product-image-ratio, 4 / 3);
--_shadow-card: var(--shadow-card, 0 12px 32px -20px rgba(33, 28, 23, 0.18));
--_shadow-hover: var(--shadow-hover, 0 20px 44px -22px rgba(33, 28, 23, 0.28));
--_overlay: var(--overlay-strength, 0.35);
--color-ink: var(--_text-primary);
--color-ink-soft: var(--_text-secondary);
--color-cream: var(--_bg-main);
--color-cream-card: var(--_surface);
--color-line: var(--_line);
--color-accent: var(--_accent);
--color-accent-dark: color-mix(in srgb, var(--_accent) 78%, #000);
--color-accent-soft: color-mix(in srgb, var(--_accent) 12%, var(--_surface));
--color-badge: var(--_accent);
background: var(--_bg-main);
color: var(--_text-primary);
font-family: var(--_font-body);
-webkit-font-smoothing: antialiased;
overflow-x: clip;
}
.site-v2 > * {
min-width: 0;
}
.site-v2 .font-display {
font-family: var(--_font-heading);
}
.site-v2 .bg-cream { background-color: var(--_bg-main); }
.site-v2 .bg-cream-card { background-color: var(--_surface); }
.site-v2 .text-ink { color: var(--_text-primary); }
.site-v2 .text-ink-soft { color: var(--_text-secondary); }
.site-v2 .border-line { border-color: var(--_line); }
.site-v2 .divide-line > * { border-color: var(--_line); }
.site-v2 .text-accent { color: var(--_accent); }
.site-v2 .bg-accent { background-color: var(--_accent); }
.site-v2 .ring-accent\/40 { --tw-ring-color: color-mix(in srgb, var(--_accent) 40%, transparent); }
.site-v2 h1,
.site-v2 h2,
.site-v2 h3,
.site-v2 .site-heading {
font-family: var(--_font-heading);
font-weight: var(--_weight-heading);
letter-spacing: var(--_ls-heading);
color: var(--_text-primary);
text-wrap: balance;
}
.site-v2[data-heading-case="uppercase"] h1,
.site-v2[data-heading-case="uppercase"] h2 {
text-transform: uppercase;
letter-spacing: 0.04em;
}
.site-container {
width: 100%;
max-width: var(--_container);
margin-inline: auto;
padding-inline: clamp(16px, 4vw, 40px);
}
.site-v2-page {
min-height: 55vh;
}
.site-v2-page:not(:has(.restaurant-hero)):not(:has(.restaurant-hero--slider)) {
max-width: var(--_container);
margin-inline: auto;
padding: clamp(22px, 4vw, 44px) clamp(16px, 4vw, 40px) clamp(60px, 10vw, 100px);
}
.restaurant-section {
padding-block: calc(var(--_section-gap) * 0.5);
}
.restaurant-section__title {
font-size: calc(1.7rem * var(--_title-scale));
line-height: 1.08;
margin: 0 0 1.2rem;
}
@media (min-width: 768px) {
.restaurant-section {
padding-block: calc(var(--_section-gap) * 0.62);
}
.restaurant-section__title {
font-size: calc(2.4rem * var(--_title-scale));
}
}
.restaurant-section__title em {
font-style: italic;
color: var(--_accent);
font-weight: inherit;
}
.restaurant-section__eyebrow {
display: flex;
align-items: center;
gap: 12px;
margin: 0 0 14px;
font-family: var(--_font-body);
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--_accent);
}
.restaurant-section__eyebrow::before {
content: "";
width: 28px;
height: 2px;
background: currentColor;
flex: none;
}
.site-v2 [data-section-tone="dark"] {
--_bg-main: var(--_brand-primary);
--_bg-alt: color-mix(in srgb, var(--_brand-primary) 84%, #fff);
--_surface: color-mix(in srgb, var(--_brand-primary) 90%, #fff);
--_text-primary: #f6f2ea;
--_text-secondary: color-mix(in srgb, #f6f2ea 66%, transparent);
--_line: color-mix(in srgb, #f6f2ea 15%, transparent);
background: var(--_brand-primary);
color: var(--_text-primary);
}
.site-v2 [data-section-tone="brand"] {
--_bg-main: var(--_accent);
--_bg-alt: color-mix(in srgb, var(--_accent) 86%, #000);
--_surface: color-mix(in srgb, var(--_accent) 88%, #000);
--_text-primary: var(--_accent-contrast);
--_text-secondary: color-mix(in srgb, var(--_accent-contrast) 78%, transparent);
--_line: color-mix(in srgb, var(--_accent-contrast) 22%, transparent);
background: var(--_accent);
color: var(--_text-primary);
}
.site-v2 [data-section-tone="light"] {
background: var(--_surface);
}
.site-v2 [data-section-tone="dark"] .restaurant-section__title,
.site-v2 [data-section-tone="brand"] .restaurant-section__title,
.site-v2 [data-section-tone] h2,
.site-v2 [data-section-tone] h3 {
color: var(--_text-primary);
}
.site-v2 [data-section-tone="brand"] .restaurant-section__eyebrow,
.site-v2 [data-section-tone="brand"] .restaurant-section__title em {
color: var(--_text-primary);
}
.restaurant-header {
position: relative;
z-index: 40;
background: var(--_surface);
border-bottom: 1px solid var(--_line);
}
.site-v2[data-header-sticky="true"] .restaurant-header {
position: sticky;
top: 0;
}
.restaurant-header__inner {
display: flex;
align-items: center;
gap: clamp(14px, 2.5vw, 32px);
min-height: 72px;
}
.restaurant-header__logo {
display: flex;
align-items: center;
gap: 12px;
flex: none;
text-decoration: none;
color: inherit;
}
.restaurant-header__logo img {
height: 46px;
width: auto;
max-width: 220px;
object-fit: contain;
}
.restaurant-header__logo-mark {
height: 44px;
width: 44px;
border-radius: 999px;
background: var(--_brand-primary);
color: var(--_bg-main);
display: flex;
align-items: center;
justify-content: center;
font-family: var(--_font-heading);
font-weight: 700;
}
.restaurant-header__logo-name {
font-family: var(--_font-heading);
font-weight: var(--_weight-heading);
font-size: 1.05rem;
}
.restaurant-navigation {
display: none;
align-items: center;
justify-content: center;
gap: clamp(14px, 1.8vw, 28px);
min-width: 0;
flex: 1 1 auto;
overflow-x: auto;
scrollbar-width: none;
}
.restaurant-navigation::-webkit-scrollbar {
display: none;
}
.restaurant-navigation a {
flex: none;
white-space: nowrap;
}
.site-v2[data-header-nav="categories"] .restaurant-navigation {
justify-content: flex-start;
-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent);
mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent);
}
@media (min-width: 1024px) {
.restaurant-navigation {
display: flex;
}
}
.restaurant-header__burger {
display: grid;
gap: 4px;
width: 42px;
height: 42px;
padding: 10px;
margin-left: auto;
border: 1px solid var(--_line);
border-radius: var(--_input-radius);
background: transparent;
cursor: pointer;
}
.restaurant-header__burger span {
height: 2px;
background: currentColor;
border-radius: 2px;
}
@media (min-width: 1024px) {
.restaurant-header__burger {
display: none;
}
}
.restaurant-navigation[data-open="true"] {
display: flex;
position: fixed;
inset: 68px 0 0;
z-index: 60;
flex-direction: column;
align-items: flex-start;
justify-content: flex-start;
gap: 26px;
padding: 36px clamp(20px, 6vw, 48px);
overflow-y: auto;
background: var(--_surface);
color: var(--_text-primary);
-webkit-mask-image: none;
mask-image: none;
font-size: 1.3rem;
}
.site-v2[data-header-style="overlay"] .restaurant-header.is-nav-open,
.site-v2[data-header-style="dark"] .restaurant-header.is-nav-open {
background: var(--_surface);
color: var(--_text-primary);
}
.restaurant-navigation a {
flex-shrink: 0;
white-space: nowrap;
text-decoration: none;
color: var(--_text-primary);
font-weight: 600;
font-size: 0.98rem;
padding-block: 4px;
border-bottom: 2px solid transparent;
transition: border-color 0.15s, color 0.15s;
}
.restaurant-navigation a:hover {
border-color: var(--_line);
}
.restaurant-navigation a[aria-current="page"],
.restaurant-navigation a.is-active {
color: var(--_accent);
border-color: var(--_accent);
}
.restaurant-header__actions {
display: flex;
align-items: center;
gap: 10px;
flex: none;
margin-left: auto;
}
.restaurant-header__actions > * {
white-space: nowrap;
}
.restaurant-navigation + .restaurant-header__actions {
margin-left: 0;
}
.restaurant-header__phone {
font-weight: 700;
font-size: 0.9rem;
text-decoration: none;
color: inherit;
padding-inline: 6px;
white-space: nowrap;
}
.restaurant-header__order {
font-weight: 700;
}
.restaurant-header__cart {
gap: 8px;
}
.restaurant-header__cart-icon {
position: relative;
display: inline-flex;
}
.restaurant-header__cart-count {
position: absolute;
top: -7px;
right: -9px;
min-width: 16px;
height: 16px;
padding: 0 3px;
display: grid;
place-items: center;
border-radius: 999px;
background: var(--_accent);
color: var(--_accent-contrast);
font-size: 0.62rem;
font-weight: 700;
line-height: 1;
}
.restaurant-header__cart-total {
font-weight: 700;
font-variant-numeric: tabular-nums;
}
.site-v2[data-header-style="overlay"] .restaurant-header {
position: absolute;
inset: 0 0 auto;
background: transparent;
border-bottom-color: transparent;
color: #fff;
}
.site-v2[data-header-style="overlay"] .restaurant-header.is-scrolled {
position: fixed;
background: var(--_surface);
border-bottom-color: var(--_line);
color: var(--_text-primary);
box-shadow: var(--_shadow-card);
}
.site-v2[data-header-style="overlay"] .restaurant-header:not(.is-scrolled):not([data-context="page"]) .restaurant-navigation a,
.site-v2[data-header-style="overlay"] .restaurant-header:not(.is-scrolled):not([data-context="page"]) .restaurant-header__logo-name {
color: #fff;
}
.site-v2 .restaurant-header[data-context="page"] {
position: sticky;
inset: 0 0 auto;
background: var(--_surface);
color: var(--_text-primary);
border-bottom-color: var(--_line);
backdrop-filter: none;
}
.site-v2 .restaurant-header[data-context="page"] .restaurant-navigation a,
.site-v2 .restaurant-header[data-context="page"] .restaurant-header__logo-name {
color: var(--_text-primary);
}
.site-v2 .restaurant-header[data-context="page"] .restaurant-header__logo img {
filter: none;
}
.site-v2[data-header-style="dark"] .restaurant-header {
background: var(--_brand-primary);
color: #fff;
border-bottom-color: rgba(255, 255, 255, 0.12);
}
.site-v2[data-header-style="dark"] .restaurant-navigation a,
.site-v2[data-header-style="dark"] .restaurant-header__logo-name {
color: #fff;
}
.site-v2[data-header-style="compact"] .restaurant-header__inner {
min-height: 56px;
}
.btn {
--btn-bg: var(--_accent);
--btn-fg: var(--_accent-contrast);
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
min-height: var(--_button-height);
padding-inline: 22px;
border-radius: var(--_button-radius);
background: var(--btn-bg);
color: var(--btn-fg);
border: 1px solid transparent;
font-family: var(--_font-body);
font-weight: 600;
font-size: 0.95rem;
line-height: 1;
cursor: pointer;
text-decoration: none;
transition: transform 0.12s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.btn:hover {
box-shadow: var(--_shadow-hover);
}
.btn:active {
transform: translateY(1px);
}
.btn:disabled {
opacity: 0.55;
cursor: not-allowed;
}
.btn--secondary {
--btn-bg: var(--_surface);
--btn-fg: var(--_text-primary);
border-color: var(--_line);
}
.btn--ghost {
--btn-bg: transparent;
--btn-fg: var(--_text-primary);
}
.btn--outline {
--btn-bg: transparent;
--btn-fg: var(--_accent);
border-color: currentColor;
}
.btn--lg {
min-height: calc(var(--_button-height) + 8px);
padding-inline: 30px;
font-size: 1rem;
}
.btn--sm {
min-height: 38px;
padding-inline: 14px;
font-size: 0.85rem;
}
.site-card {
background: var(--_surface);
border: 1px solid var(--_line);
border-radius: var(--_card-radius);
box-shadow: var(--_shadow-card);
}
.restaurant-hero {
position: relative;
isolation: isolate;
overflow: hidden;
background: var(--_brand-primary);
color: #fff;
}
.restaurant-hero[data-height="compact"] {
min-height: 44vh;
}
.restaurant-hero[data-height="large"] {
min-height: 66vh;
}
.restaurant-hero[data-height="fullscreen"] {
min-height: 88vh;
}
@media (max-width: 767px) {
.restaurant-hero[data-height="fullscreen"],
.restaurant-hero[data-height="large"] {
min-height: 72vh;
}
}
.restaurant-hero__media {
position: absolute;
inset: 0;
z-index: -2;
}
.restaurant-hero__media img {
width: 100%;
height: 100%;
object-fit: cover;
}
.restaurant-hero::after {
content: "";
position: absolute;
inset: 0;
z-index: -1;
background: linear-gradient(
to top,
rgba(0, 0, 0, calc(var(--_overlay) + 0.25)),
rgba(0, 0, 0, var(--_overlay)) 45%,
rgba(0, 0, 0, calc(var(--_overlay) * 0.5))
);
}
.restaurant-hero__inner {
position: relative;
min-height: inherit;
display: grid;
grid-template-columns: 1fr;
align-items: center;
gap: clamp(28px, 5vw, 56px);
padding-block: clamp(88px, 15vh, 176px);
}
.restaurant-hero__content {
position: relative;
display: flex;
flex-direction: column;
gap: 20px;
max-width: 42rem;
}
.restaurant-hero__content[data-align="center"] {
margin-inline: auto;
text-align: center;
align-items: center;
}
.restaurant-hero__eyebrow {
display: flex;
align-items: center;
gap: 12px;
font-family: var(--_font-body);
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--_accent);
}
.restaurant-hero__eyebrow::before {
content: "";
width: 28px;
height: 2px;
background: currentColor;
flex: none;
}
.restaurant-hero__content[data-align="center"] .restaurant-hero__eyebrow {
justify-content: center;
}
.restaurant-hero__title {
font-size: clamp(2.3rem, 1.4rem + 4.4vw, calc(4.4rem * var(--_title-scale)));
line-height: 1.03;
margin: 0;
color: #fff;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.28), 0 8px 40px rgba(0, 0, 0, 0.4);
}
.restaurant-hero__title em {
font-style: italic;
color: var(--_accent);
font-weight: inherit;
}
.restaurant-hero__subtitle {
font-size: clamp(1rem, 0.95rem + 0.4vw, 1.22rem);
color: rgba(255, 255, 255, 0.92);
max-width: 34rem;
margin: 0;
line-height: 1.6;
text-shadow: 0 1px 12px rgba(0, 0, 0, 0.4);
}
.restaurant-hero[data-hero-layout="c"] .restaurant-hero__title,
.restaurant-hero[data-hero-layout="c"] .restaurant-hero__subtitle,
.site-v2[data-hero-fit="contain"] .restaurant-hero__title,
.site-v2[data-hero-fit="contain"] .restaurant-hero__subtitle {
text-shadow: none;
}
.restaurant-hero__actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 6px;
}
.restaurant-hero__aside {
position: relative;
width: 100%;
}
.restaurant-hero__proof {
display: flex;
flex-wrap: wrap;
gap: 14px 22px;
margin-top: 30px;
font-size: 0.76rem;
font-weight: 700;
letter-spacing: 0.04em;
color: rgba(255, 255, 255, 0.78);
}
.restaurant-hero__proof span {
padding-left: 22px;
border-left: 1px solid rgba(255, 255, 255, 0.24);
}
.restaurant-hero__proof span:first-child {
padding-left: 0;
border-left: 0;
}
@media (min-width: 980px) {
.restaurant-hero[data-hero-layout="b"] .restaurant-hero__inner,
.restaurant-hero--slider .restaurant-hero__inner {
grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
}
.restaurant-hero[data-hero-layout="b"] .restaurant-hero__aside,
.restaurant-hero--slider .restaurant-hero__aside {
justify-self: end;
max-width: 400px;
}
}
.restaurant-hero[data-hero-layout="c"] {
background: var(--_surface);
color: var(--_text-primary);
}
.restaurant-hero[data-hero-layout="c"]::after {
display: none;
}
.restaurant-hero[data-hero-layout="c"] .restaurant-hero__title {
color: var(--_text-primary);
}
.restaurant-hero[data-hero-layout="c"] .restaurant-hero__subtitle {
color: var(--_text-secondary);
}
.restaurant-hero__media--split {
position: relative;
inset: auto;
z-index: 0;
border-radius: var(--_image-radius);
overflow: hidden;
align-self: stretch;
min-height: 340px;
}
@media (min-width: 900px) {
.restaurant-hero[data-hero-layout="c"] .restaurant-hero__inner {
grid-template-columns: 1fr 1fr;
}
}
.site-v2[data-hero-fit="contain"] .restaurant-hero {
display: flex;
flex-direction: column;
background: var(--_surface);
color: var(--_text-primary);
min-height: 0;
}
.site-v2[data-hero-fit="contain"] .restaurant-hero[data-height] {
min-height: 0;
}
.site-v2[data-hero-fit="contain"] .restaurant-hero::after {
display: none;
}
.site-v2[data-hero-fit="contain"] .restaurant-hero__media {
position: relative;
inset: auto;
z-index: 0;
width: 100%;
}
.site-v2[data-hero-fit="contain"] .restaurant-hero__media img {
display: block;
width: 100%;
height: auto;
object-fit: contain;
}
@media (min-width: 1100px) {
.site-v2[data-hero-fit="contain"] .restaurant-hero__media img {
max-height: 78vh;
object-fit: contain;
}
}
.site-v2[data-hero-fit="contain"] .restaurant-hero__inner {
display: block;
min-height: 0;
padding-block: clamp(20px, 4vw, 36px);
}
.site-v2[data-hero-fit="contain"] .restaurant-hero__content {
min-height: 0;
max-width: none;
align-items: center;
text-align: center;
}
.site-v2[data-hero-fit="contain"] .restaurant-hero__content:empty {
display: none;
}
.site-v2[data-hero-fit="contain"] .restaurant-hero__aside {
margin-top: 20px;
margin-inline: auto;
max-width: 400px;
}
.site-v2[data-hero-fit="contain"] .restaurant-hero__title {
color: var(--_text-primary);
}
.site-v2[data-hero-fit="contain"] .restaurant-hero__subtitle {
color: var(--_text-secondary);
}
.restaurant-hero--slider {
position: relative;
}
.restaurant-hero__slide {
position: absolute;
inset: 0;
opacity: 0;
transition: opacity 0.7s ease;
pointer-events: none;
}
.restaurant-hero__slide.is-active {
opacity: 1;
pointer-events: auto;
position: relative;
}
.restaurant-hero__dots {
position: absolute;
z-index: 3;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 8px;
}
.restaurant-hero__dots button {
width: 8px;
height: 8px;
border-radius: 999px;
border: none;
background: rgba(255, 255, 255, 0.4);
cursor: pointer;
transition: width 0.2s, background 0.2s;
}
.restaurant-hero__dots button.is-active {
width: 22px;
background: #fff;
}
.restaurant-hero__arrow {
position: absolute;
z-index: 3;
top: 50%;
transform: translateY(-50%);
width: 44px;
height: 44px;
border-radius: 999px;
border: none;
background: rgba(0, 0, 0, 0.3);
color: #fff;
cursor: pointer;
display: none;
}
@media (min-width: 768px) {
.restaurant-hero__arrow {
display: grid;
place-items: center;
}
}
.restaurant-hero__arrow--prev {
left: 16px;
}
.restaurant-hero__arrow--next {
right: 16px;
}
.ordering-widget {
background: var(--_surface);
color: var(--_text-primary);
border-radius: var(--_card-radius);
box-shadow: var(--_shadow-hover);
padding: 20px;
width: 100%;
max-width: 24rem;
}
.ordering-widget__methods {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 8px;
margin-bottom: 12px;
}
.ordering-widget__method {
border: 1px solid var(--_line);
border-radius: var(--_input-radius);
background: var(--_bg-alt);
padding: 10px 6px;
font-size: 0.82rem;
font-weight: 600;
cursor: pointer;
text-align: center;
transition: border-color 0.15s, background 0.15s;
}
.ordering-widget__method.is-active {
border-color: var(--_accent);
background: var(--_accent);
color: var(--_accent-contrast);
}
.ordering-widget select {
width: 100%;
min-height: 44px;
border-radius: var(--_input-radius);
border: 1px solid var(--_line);
background: var(--_surface);
padding-inline: 12px;
margin-bottom: 10px;
font: inherit;
color: inherit;
}
.ordering-widget__status {
display: flex;
gap: 10px;
align-items: flex-start;
margin: 4px 0 14px;
font-size: 0.82rem;
}
.ordering-widget__status-dot {
width: 8px;
height: 8px;
margin-top: 5px;
flex: none;
border-radius: 50%;
background: #7edf73;
box-shadow: 0 0 0 5px rgba(126, 223, 115, 0.14);
}
.ordering-widget__status strong {
display: block;
}
.ordering-widget__status small {
display: block;
margin-top: 2px;
color: var(--_text-secondary);
font-size: 0.76rem;
line-height: 1.4;
}
.ordering-widget__contact {
margin: 12px 0 0;
text-align: center;
font-size: 0.8rem;
color: var(--_text-secondary);
}
.ordering-widget__contact a {
color: inherit;
font-weight: 700;
white-space: nowrap;
}
.restaurant-infostrip {
position: relative;
z-index: 6;
}
.restaurant-infostrip__inner {
display: grid;
grid-template-columns: 1fr;
}
@media (min-width: 720px) {
.restaurant-infostrip__inner {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 1080px) {
.restaurant-infostrip__inner {
grid-template-columns: repeat(4, 1fr);
}
}
.restaurant-infostrip__cell {
padding: clamp(20px, 3vw, 30px) clamp(16px, 2.4vw, 28px);
border-bottom: 1px solid var(--_line);
}
@media (min-width: 1080px) {
.restaurant-infostrip__cell {
border-bottom: 0;
border-right: 1px solid var(--_line);
}
.restaurant-infostrip__cell:last-child {
border-right: 0;
}
}
.restaurant-infostrip__label {
display: block;
margin-bottom: 6px;
font-family: var(--_font-body);
font-size: 0.7rem;
font-weight: 800;
letter-spacing: 0.16em;
text-transform: uppercase;
opacity: 0.82;
}
.restaurant-infostrip__value {
font-family: var(--_font-heading);
font-size: 0.98rem;
line-height: 1.5;
}
.restaurant-infostrip__value a {
color: inherit;
text-decoration: underline;
text-underline-offset: 3px;
font-weight: 600;
}
.category-nav {
display: flex;
gap: 8px;
overflow-x: auto;
scrollbar-width: none;
padding-block: 12px;
}
.category-nav::-webkit-scrollbar {
display: none;
}
.site-v2[data-category-nav="sticky"] .category-nav,
.site-v2[data-category-nav="bar"] .category-nav {
position: sticky;
top: 68px;
z-index: 20;
background: var(--_bg-main);
border-bottom: 1px solid var(--_line);
}
.category-nav__item {
flex-shrink: 0;
white-space: nowrap;
padding: 9px 16px;
border-radius: var(--_button-radius);
border: 1px solid var(--_line);
background: var(--_surface);
color: var(--_text-secondary);
font-weight: 600;
font-size: 0.9rem;
cursor: pointer;
text-decoration: none;
transition: all 0.15s;
}
.category-nav__item.is-active {
background: var(--_brand-primary);
color: var(--_bg-main);
border-color: var(--_brand-primary);
}
.site-v2[data-category-nav="vertical"] .category-nav {
flex-direction: column;
overflow: visible;
}
@media (max-width: 1023px) {
.site-v2[data-category-nav="vertical"] .category-nav {
flex-direction: row;
overflow-x: auto;
}
}
.product-card-grid {
display: grid;
gap: 16px;
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}
.site-v2[data-product-card="compact"] .product-card-grid,
.site-v2[data-product-card="minimal"] .product-card-grid {
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}
.product-card {
display: flex;
flex-direction: column;
background: var(--_surface);
border: 1px solid var(--_line);
border-radius: var(--_card-radius);
overflow: hidden;
box-shadow: var(--_shadow-card);
transition: box-shadow 0.18s, transform 0.18s;
}
.product-card:hover {
box-shadow: var(--_shadow-hover);
transform: translateY(-2px);
}
.product-card__image {
aspect-ratio: var(--_img-ratio);
width: 100%;
object-fit: contain;
padding: 5%;
background: var(--_bg-alt);
}
.product-card__content {
display: flex;
flex-direction: column;
gap: 4px;
padding: 14px 16px 16px;
flex: 1;
}
.product-card__title {
font-family: var(--_font-heading);
font-weight: var(--_weight-heading);
font-size: 1rem;
margin: 0;
}
.product-card__description {
font-size: 0.85rem;
color: var(--_text-secondary);
margin: 0;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.product-card__footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin-top: auto;
padding-top: 8px;
}
.product-card__price {
font-weight: 700;
font-size: 1rem;
}
.product-card__price del {
color: var(--_text-secondary);
font-weight: 400;
margin-right: 6px;
}
.product-card__add {
display: inline-grid;
place-items: center;
width: 42px;
height: 42px;
flex: none;
border-radius: 999px;
border: 1px solid var(--_accent);
background: var(--_accent);
color: var(--_accent-contrast);
cursor: pointer;
transition: transform 0.14s ease, background 0.14s ease;
}
.product-card__add svg {
width: 18px;
height: 18px;
}
.product-card:hover .product-card__add {
transform: scale(1.08);
}
.site-v2[data-product-card="compact"] .product-card,
.site-v2[data-product-card="minimal"] .product-card {
flex-direction: row;
align-items: stretch;
}
.site-v2[data-product-card="compact"] .product-card__image,
.site-v2[data-product-card="minimal"] .product-card__image {
width: 108px;
aspect-ratio: 1;
flex-shrink: 0;
}
.site-v2[data-product-card="minimal"] .product-card {
border: none;
box-shadow: none;
border-bottom: 1px solid var(--_line);
border-radius: 0;
}
.product-card--nophoto .product-card__image {
display: none;
}
.product-card--nophoto .product-card__content {
padding: 18px 20px;
}
.product-card__badge {
position: absolute;
top: 10px;
left: 10px;
z-index: 2;
padding: 3px 9px;
border-radius: 999px;
background: var(--_accent);
color: var(--_accent-contrast);
font-size: 0.68rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.product-card {
position: relative;
}
.restaurant-footer {
background: var(--_brand-primary);
color: rgba(255, 255, 255, 0.75);
padding-block: 48px;
margin-top: var(--_section-gap);
}
.restaurant-footer a {
color: rgba(255, 255, 255, 0.9);
text-decoration: none;
}
.restaurant-footer a:hover {
color: #fff;
}
.restaurant-split {
display: grid;
gap: clamp(16px, 3vw, 28px);
}
@media (min-width: 860px) {
.restaurant-split {
grid-template-columns: 1fr 1fr;
}
}
.restaurant-split > div:empty {
display: none;
}
.restaurant-split > div {
display: flex;
}
.restaurant-split > div > * {
flex: 1;
}
.restaurant-info {
background: var(--_surface);
border: 1px solid var(--_line);
border-radius: var(--_card-radius);
box-shadow: var(--_shadow-card);
padding: clamp(18px, 3vw, 26px);
}
.restaurant-info__label {
font-family: var(--_font-heading);
font-weight: var(--_weight-heading);
font-size: 1.1rem;
margin: 0 0 14px;
}
.restaurant-info__value {
margin: 2px 0;
font-size: 0.94rem;
color: var(--_text-secondary);
}
.restaurant-info__value a {
color: inherit;
}
.restaurant-info .ordering-widget {
box-shadow: none;
border: none;
background: transparent;
padding: 0;
max-width: none;
}
.restaurant-hours {
list-style: none;
padding: 0;
margin: 0;
font-size: 0.92rem;
}
.restaurant-hours li {
display: flex;
justify-content: space-between;
gap: 16px;
padding: 6px 0;
border-bottom: 1px solid var(--_line);
color: var(--_text-secondary);
}
.restaurant-hours li:last-child {
border-bottom: none;
}
.restaurant-hours li.is-today {
color: var(--_text-primary);
font-weight: 600;
}
.gallery-strip {
display: grid;
grid-auto-flow: column;
grid-auto-columns: 44vw;
gap: 10px;
overflow-x: auto;
scrollbar-width: none;
padding-bottom: 4px;
scroll-snap-type: x mandatory;
}
.gallery-strip::-webkit-scrollbar {
display: none;
}
.gallery-strip img {
width: 100%;
aspect-ratio: 1 / 1;
object-fit: cover;
border-radius: var(--_image-radius);
background: var(--_bg-alt);
scroll-snap-align: start;
}
@media (min-width: 640px) {
.gallery-strip {
grid-auto-flow: row;
grid-template-columns: repeat(3, 1fr);
grid-auto-columns: auto;
overflow: visible;
gap: 12px;
}
}
@media (min-width: 1000px) {
.gallery-strip {
grid-template-columns: repeat(6, 1fr);
}
}
.restaurant-categories {
display: grid;
gap: clamp(10px, 2vw, 16px);
grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 640px) {
.restaurant-categories {
grid-template-columns: repeat(3, 1fr);
}
}
@media (min-width: 980px) {
.restaurant-categories {
grid-template-columns: repeat(4, 1fr);
}
}
.category-card {
position: relative;
display: flex;
align-items: flex-end;
min-height: 128px;
padding: 14px 16px;
border-radius: var(--_card-radius);
overflow: hidden;
background: var(--_bg-alt);
border: 1px solid var(--_line);
color: #fff;
text-decoration: none;
isolation: isolate;
transition: transform 0.16s ease, box-shadow 0.16s ease;
}
.category-card:hover {
transform: translateY(-2px);
box-shadow: var(--_shadow-hover);
}
.category-card img {
position: absolute;
inset: 0;
z-index: -2;
width: 100%;
height: 100%;
object-fit: cover;
}
.category-card::after {
content: "";
position: absolute;
inset: 0;
z-index: -1;
background: linear-gradient(to top, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.12) 60%, rgba(0, 0, 0, 0.05));
}
.category-card--plain {
color: var(--_text-primary);
background: var(--_surface);
}
.category-card--plain::after {
display: none;
}
.category-card__name {
font-family: var(--_font-heading);
font-weight: var(--_weight-heading);
font-size: 1.05rem;
line-height: 1.15;
}
.restaurant-about__grid {
display: grid;
gap: clamp(28px, 5vw, 64px);
align-items: center;
grid-template-columns: 1fr;
}
@media (min-width: 900px) {
.restaurant-about__grid {
grid-template-columns: minmax(0, 0.92fr) minmax(0, 1fr);
}
.restaurant-about[data-about-layout="media-right"] .restaurant-about__grid {
grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr);
}
.restaurant-about[data-about-layout="media-right"] .restaurant-about__media {
order: 2;
}
}
.restaurant-about[data-about-layout="stacked"] .restaurant-about__grid {
grid-template-columns: 1fr;
max-width: 46rem;
margin-inline: auto;
text-align: center;
}
.restaurant-about__media {
position: relative;
border-radius: var(--_image-radius);
overflow: hidden;
box-shadow: var(--_shadow-card);
aspect-ratio: 4 / 5;
background: var(--_bg-alt);
}
.restaurant-about__media img {
width: 100%;
height: 100%;
object-fit: cover;
}
.restaurant-about__badge {
position: absolute;
left: 0;
bottom: 22px;
background: var(--_accent);
color: var(--_accent-contrast);
padding: 12px 20px;
border-radius: 0 var(--_button-radius) var(--_button-radius) 0;
font-family: var(--_font-body);
font-weight: 800;
font-size: 0.8rem;
letter-spacing: 0.06em;
text-transform: uppercase;
box-shadow: var(--_shadow-card);
}
.restaurant-about__kicker {
font-size: 0.95rem;
font-weight: 600;
color: var(--_text-secondary);
margin: 0 0 10px;
}
.restaurant-about__title {
margin: 0 0 0.6rem;
}
.restaurant-about__text {
color: var(--_text-secondary);
line-height: 1.75;
font-size: 1.04rem;
margin: 0;
white-space: pre-line;
}
.restaurant-about__cta {
margin-top: 26px;
}
.restaurant-spotlight__grid {
display: grid;
gap: clamp(28px, 5vw, 68px);
align-items: center;
grid-template-columns: 1fr;
}
@media (min-width: 900px) {
.restaurant-spotlight__grid {
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
}
.restaurant-spotlight__media {
border-radius: var(--_image-radius);
overflow: hidden;
aspect-ratio: 1 / 1;
background: var(--_bg-alt);
box-shadow: var(--_shadow-card);
}
.restaurant-spotlight__media img {
width: 100%;
height: 100%;
object-fit: cover;
}
.restaurant-spotlight__content {
display: flex;
flex-direction: column;
gap: 14px;
align-items: flex-start;
}
.restaurant-spotlight__title {
font-size: clamp(2rem, 1.4rem + 3vw, calc(3.4rem * var(--_title-scale)));
line-height: 1.03;
margin: 0;
}
.restaurant-spotlight__lead {
color: var(--_accent);
font-weight: 600;
margin: 0;
}
.restaurant-spotlight__list {
list-style: none;
padding: 0;
margin: 4px 0;
display: grid;
gap: 6px;
color: var(--_text-secondary);
}
.restaurant-spotlight__list li {
position: relative;
padding-left: 18px;
}
.restaurant-spotlight__list li::before {
content: "•";
position: absolute;
left: 2px;
color: var(--_accent);
}
.restaurant-spotlight__price {
font-family: var(--_font-body);
font-size: 0.9rem;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--_text-secondary);
margin: 6px 0 0;
}
.restaurant-spotlight__price strong {
font-family: var(--_font-heading);
font-size: 1.9rem;
letter-spacing: 0;
text-transform: none;
color: var(--_text-primary);
margin-left: 8px;
}
.restaurant-spotlight__cta {
margin-top: 10px;
}
.restaurant-reviews {
display: grid;
gap: 16px;
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.review-card {
background: var(--_surface);
border: 1px solid var(--_line);
border-radius: var(--_card-radius);
box-shadow: var(--_shadow-card);
padding: 20px;
}
.review-card__stars {
margin: 0 0 8px;
color: #e5a300;
letter-spacing: 2px;
}
.review-card__text {
margin: 0 0 10px;
font-size: 0.92rem;
color: var(--_text-secondary);
line-height: 1.6;
}
.review-card__author {
margin: 0;
font-weight: 600;
font-size: 0.85rem;
}
.site-v2-page:has(.menu-page) {
max-width: none;
padding: 0;
}
.menu-page {
--menu-w: min(1360px, 100% - clamp(32px, 8vw, 96px));
padding-bottom: clamp(60px, 10vw, 110px);
}
.menu-body {
max-width: var(--menu-w);
margin: clamp(24px, 4vw, 40px) auto 0;
}
.menu-closed {
max-width: var(--menu-w);
margin: 16px auto 0;
padding: 12px 16px;
border-radius: var(--_input-radius);
background: color-mix(in srgb, var(--_accent) 8%, var(--_surface));
border: 1px solid var(--_line);
font-size: 0.9rem;
}
.menu-intro {
max-width: var(--menu-w);
margin: clamp(28px, 5vw, 56px) auto clamp(18px, 3vw, 28px);
text-align: center;
}
.menu-intro__eyebrow {
display: block;
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0.24em;
text-transform: uppercase;
color: var(--_accent);
}
.menu-intro__lead {
margin: 10px 0 0;
font-family: var(--_font-heading);
font-weight: var(--_weight-heading);
font-size: clamp(1.5rem, 1rem + 2vw, 2.4rem);
letter-spacing: var(--_ls-heading);
color: var(--_text-primary);
}
.menu-search {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 14px;
border: 1px solid var(--_line);
border-radius: 999px;
color: var(--_text-secondary);
background: var(--_surface);
}
.menu-search--intro {
margin-top: 16px;
width: min(320px, 100%);
}
.menu-search svg {
width: 15px;
height: 15px;
flex: none;
}
.menu-search input {
border: 0;
background: none;
outline: none;
font: inherit;
color: var(--_text-primary);
width: 100%;
min-width: 0;
}
.menu-nav {
position: sticky;
top: 0;
z-index: 30;
padding: 8px clamp(16px, 4vw, 48px);
background: color-mix(in srgb, var(--_bg-main) 92%, transparent);
backdrop-filter: blur(10px);
border-bottom: 1px solid var(--_line);
}
.menu-nav__inner {
display: flex;
gap: clamp(8px, 1.4vw, 22px);
max-width: var(--menu-w);
margin-inline: auto;
overflow-x: auto;
scrollbar-width: none;
}
.menu-nav__inner::-webkit-scrollbar {
display: none;
}
.menu-nav__item {
flex: none;
padding: 9px 2px;
font-size: 0.86rem;
font-weight: 600;
color: var(--_text-secondary);
white-space: nowrap;
border: 0;
border-bottom: 2px solid transparent;
background: none;
cursor: pointer;
transition: color 0.15s, border-color 0.15s;
}
.menu-nav__item:hover {
color: var(--_text-primary);
}
.menu-nav__item.is-active {
color: var(--_accent);
border-bottom-color: var(--_accent);
}
.menu-cats {
display: grid;
gap: clamp(14px, 2vw, 22px);
grid-template-columns: repeat(2, 1fr);
margin-top: clamp(8px, 2vw, 20px);
}
@media (min-width: 680px) {
.menu-cats {
grid-template-columns: repeat(3, 1fr);
}
}
@media (min-width: 1080px) {
.menu-cats {
grid-template-columns: repeat(4, 1fr);
}
}
.menu-cat {
position: relative;
display: flex;
align-items: flex-end;
aspect-ratio: 4 / 5;
padding: 16px;
overflow: hidden;
border: 0;
border-radius: var(--_image-radius);
background: color-mix(in srgb, var(--_bg-alt) 60%, var(--_surface));
color: #fff;
cursor: pointer;
isolation: isolate;
transition: transform 0.16s ease;
}
.menu-cat:hover {
transform: translateY(-2px);
}
.menu-cat img {
position: absolute;
inset: 0;
z-index: -2;
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.menu-cat:hover img {
transform: scale(1.05);
}
.menu-cat::after {
content: "";
position: absolute;
inset: 0;
z-index: -1;
background: linear-gradient(to top, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0.05) 60%);
}
.menu-cat--plain {
color: var(--_text-primary);
background: var(--_surface);
border: 1px solid var(--_line);
}
.menu-cat--plain::after {
display: none;
}
.menu-cat__name {
font-family: var(--_font-heading);
font-weight: var(--_weight-heading);
font-size: clamp(1rem, 0.85rem + 0.6vw, 1.25rem);
line-height: 1.15;
letter-spacing: var(--_ls-heading);
}
.menu-cathead {
margin: clamp(6px, 1.5vw, 14px) 0 clamp(22px, 3.5vw, 36px);
}
.menu-cathead__back {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 0;
border: 0;
background: none;
font-size: 0.85rem;
font-weight: 600;
color: var(--_text-secondary);
cursor: pointer;
}
.menu-cathead__back:hover {
color: var(--_accent);
}
.menu-cathead__crumbs {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
margin-top: 8px;
font-size: 0.8rem;
color: color-mix(in srgb, var(--_text-secondary) 80%, transparent);
}
.menu-cathead__crumbs button {
border: 0;
background: none;
color: inherit;
cursor: pointer;
}
.menu-cathead__crumbs button:hover {
color: var(--_text-primary);
}
.menu-cathead__crumbs b {
color: var(--_text-secondary);
}
.menu-cathead__title {
margin: 10px 0 0;
font-family: var(--_font-heading);
font-weight: var(--_weight-heading);
font-size: clamp(1.8rem, 1.1rem + 2.6vw, 3rem);
letter-spacing: var(--_ls-heading);
line-height: 1.05;
}
.menu-cathead__desc {
margin: 8px 0 0;
color: var(--_text-secondary);
max-width: 42rem;
}
.menu-subnav {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: clamp(18px, 3vw, 28px);
}
@media (max-width: 640px) {
.menu-subnav {
flex-wrap: nowrap;
overflow-x: auto;
scrollbar-width: none;
padding-bottom: 4px;
}
.menu-subnav::-webkit-scrollbar {
display: none;
}
}
.menu-subnav__item {
flex: none;
padding: 7px 14px;
font-size: 0.82rem;
font-weight: 600;
color: var(--_text-secondary);
background: var(--_surface);
border: 1px solid var(--_line);
border-radius: 999px;
cursor: pointer;
white-space: nowrap;
transition: all 0.15s;
}
.menu-subnav__item:hover {
color: var(--_text-primary);
}
.menu-subnav__item.is-active {
color: var(--_accent-contrast);
background: var(--_accent);
border-color: var(--_accent);
}
.menu-direct {
margin-top: clamp(28px, 4vw, 44px);
padding-top: clamp(20px, 3vw, 32px);
border-top: 1px solid var(--_line);
}
.menu-grid {
display: grid;
gap: clamp(22px, 3vw, 40px) clamp(16px, 2.5vw, 32px);
grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 720px) {
.menu-grid {
grid-template-columns: repeat(3, 1fr);
}
}
@media (min-width: 1180px) {
.menu-grid {
grid-template-columns: repeat(4, 1fr);
}
}
.menu-item {
display: flex;
flex-direction: column;
cursor: pointer;
border-radius: var(--_image-radius);
transition: background 0.18s;
}
.menu-item:hover {
background: color-mix(in srgb, var(--_accent) 5%, transparent);
}
.menu-item.is-out {
opacity: 0.55;
}
.menu-item__media {
aspect-ratio: 4 / 3;
display: grid;
place-items: center;
overflow: hidden;
border-radius: var(--_image-radius);
background: color-mix(in srgb, var(--_bg-alt) 50%, var(--_surface));
}
.menu-item__media img {
width: 100%;
height: 100%;
object-fit: contain;
padding: 6%;
transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.menu-item:hover .menu-item__media img {
transform: scale(1.05);
}
.menu-item__body {
display: flex;
flex-direction: column;
gap: 2px;
padding: 12px 6px 6px;
flex: 1;
}
.menu-item--text .menu-item__body {
padding: 16px;
border: 1px solid var(--_line);
border-radius: var(--_card-radius);
background: var(--_surface);
height: 100%;
}
.menu-item__name {
margin: 0;
font-family: var(--_font-heading);
font-weight: var(--_weight-heading);
font-size: 1.02rem;
line-height: 1.25;
letter-spacing: var(--_ls-heading);
}
.menu-item__meta {
margin: 2px 0 0;
font-size: 0.83rem;
color: var(--_text-secondary);
line-height: 1.45;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.menu-item__portion {
margin: 3px 0 0;
font-size: 0.76rem;
font-weight: 600;
letter-spacing: 0.03em;
color: color-mix(in srgb, var(--_text-secondary) 85%, transparent);
}
.menu-item__foot {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin-top: auto;
padding-top: 10px;
}
.menu-item__price {
font-weight: 700;
font-size: 0.98rem;
}
.menu-item__add {
display: grid;
place-items: center;
width: 38px;
height: 38px;
flex: none;
border-radius: 999px;
border: 1px solid var(--_accent);
background: transparent;
color: var(--_accent);
cursor: pointer;
opacity: 0.75;
transition: opacity 0.15s, background 0.15s, transform 0.15s;
}
.menu-item:hover .menu-item__add {
opacity: 1;
background: var(--_accent);
color: var(--_accent-contrast);
}
.menu-item__add:hover {
transform: scale(1.1);
}
.menu-item__add:disabled {
opacity: 0.3;
cursor: not-allowed;
}
.menu-item__add.is-added {
background: #2f9e6a;
border-color: #2f9e6a;
color: #fff;
opacity: 1;
}
.menu-item__add svg {
width: 17px;
height: 17px;
}
.menu-empty {
margin: clamp(30px, 6vw, 60px) auto;
text-align: center;
color: var(--_text-secondary);
}
.menu-empty .btn {
margin-top: 14px;
}
.menu-toast {
position: fixed;
left: 50%;
bottom: 84px;
z-index: 50;
transform: translateX(-50%);
padding: 10px 18px;
border-radius: 999px;
background: var(--_brand-primary);
color: #fff;
font-size: 0.86rem;
font-weight: 600;
box-shadow: var(--_shadow-hover);
animation: menu-toast-in 0.2s ease both;
}
@keyframes menu-toast-in {
from {
opacity: 0;
transform: translate(-50%, 8px);
}
}
.cart-bar {
position: fixed;
z-index: 45;
left: 12px;
right: 12px;
bottom: 12px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 13px 18px;
border-radius: var(--_card-radius);
background: var(--_accent);
color: var(--_accent-contrast);
text-decoration: none;
box-shadow: var(--_shadow-hover);
font-size: 0.9rem;
}
.cart-bar__cta {
font-weight: 700;
white-space: nowrap;
}
@media (min-width: 1024px) {
.cart-bar {
left: auto;
right: 20px;
bottom: 20px;
min-width: 280px;
}
}
.menu-sheet-backdrop {
position: fixed;
inset: 0;
z-index: 60;
display: grid;
place-items: center;
padding: clamp(8px, 3vw, 32px);
background: rgba(8, 15, 12, 0.55);
backdrop-filter: blur(3px);
animation: menu-toast-in 0.15s ease both;
}
.menu-sheet {
position: relative;
width: 100%;
max-width: 40rem;
max-height: 92vh;
overflow-y: auto;
border-radius: var(--_card-radius);
background: var(--_surface);
color: var(--_text-primary);
box-shadow: 0 30px 90px rgba(0, 0, 0, 0.4);
}
.menu-sheet__close {
position: absolute;
top: 12px;
right: 12px;
z-index: 2;
width: 34px;
height: 34px;
border-radius: 999px;
border: 0;
background: color-mix(in srgb, var(--_surface) 70%, transparent);
backdrop-filter: blur(6px);
color: var(--_text-primary);
cursor: pointer;
}
.menu-sheet__media {
aspect-ratio: 16 / 10;
background: color-mix(in srgb, var(--_bg-alt) 60%, var(--_surface));
display: grid;
place-items: center;
}
.menu-sheet__media img {
width: 100%;
height: 100%;
object-fit: contain;
padding: 3%;
}
.menu-sheet__body {
padding: clamp(18px, 4vw, 28px);
}
.menu-sheet__title {
margin: 0;
font-family: var(--_font-heading);
font-weight: var(--_weight-heading);
font-size: clamp(1.3rem, 1rem + 1.4vw, 1.8rem);
}
.menu-sheet__desc {
margin: 8px 0 0;
color: var(--_text-secondary);
white-space: pre-line;
}
.menu-sheet__fine {
margin: 6px 0 0;
font-size: 0.8rem;
color: var(--_text-secondary);
}
.menu-sheet__group {
margin-top: 20px;
}
.menu-sheet__group-label {
display: flex;
justify-content: space-between;
margin: 0 0 8px;
font-size: 0.76rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--_text-secondary);
}
.menu-sheet__count.is-unmet {
color: var(--_accent);
}
.menu-sheet__pills {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.menu-pill {
padding: 8px 14px;
border: 1px solid var(--_line);
border-radius: 999px;
background: var(--_surface);
color: var(--_text-primary);
font-size: 0.85rem;
cursor: pointer;
transition: all 0.15s;
}
.menu-pill.is-active {
background: var(--_accent);
border-color: var(--_accent);
color: var(--_accent-contrast);
}
.menu-sheet__rows {
display: grid;
gap: 8px;
}
.menu-sheet__row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 8px 12px;
border: 1px solid var(--_line);
border-radius: var(--_input-radius);
font-size: 0.88rem;
}
.menu-sheet__stepper {
display: inline-flex;
align-items: center;
gap: 10px;
}
.menu-sheet__stepper button {
width: 30px;
height: 30px;
border-radius: 999px;
border: 1px solid var(--_line);
background: var(--_surface);
color: var(--_text-primary);
cursor: pointer;
}
.menu-sheet__stepper button:disabled {
opacity: 0.3;
}
.menu-sheet__textarea {
width: 100%;
border: 1px solid var(--_line);
border-radius: var(--_input-radius);
background: var(--_surface);
padding: 10px 12px;
font: inherit;
color: inherit;
}
.menu-sheet__foot {
display: flex;
align-items: center;
gap: 12px;
margin-top: 24px;
}
.menu-sheet__add {
flex: 1;
}
.payment-grid {
display: grid;
gap: clamp(12px, 2vw, 20px);
grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 760px) {
.payment-grid {
grid-template-columns: repeat(4, 1fr);
}
}
.payment-method {
display: flex;
flex-direction: column;
gap: 4px;
padding: clamp(18px, 3vw, 26px);
text-align: center;
background: var(--_surface);
border: 1px solid var(--_line);
border-radius: var(--_card-radius);
}
.payment-method__title {
font-family: var(--_font-heading);
font-weight: var(--_weight-heading);
font-size: 1rem;
}
.payment-method__note {
font-size: 0.85rem;
color: var(--_text-secondary);
}
.restaurant-cart-empty {
max-width: 30rem;
margin: clamp(20px, 6vw, 60px) auto;
padding: clamp(28px, 5vw, 44px);
text-align: center;
background: var(--_surface);
border: 1px solid var(--_line);
border-radius: var(--_card-radius);
box-shadow: var(--_shadow-card);
}
.restaurant-cart-empty svg {
width: 48px;
height: 48px;
margin: 0 auto 16px;
color: var(--_accent);
}
.restaurant-cart-empty__title {
font-family: var(--_font-heading);
font-weight: var(--_weight-heading);
font-size: 1.5rem;
margin: 0 0 8px;
}
.restaurant-cart-empty__text {
color: var(--_text-secondary);
line-height: 1.6;
margin: 0 0 22px;
}
.open-badge {
display: inline-flex;
align-items: center;
gap: 7px;
padding: 5px 12px;
border-radius: 999px;
font-size: 0.82rem;
font-weight: 600;
background: rgba(255, 255, 255, 0.14);
color: #fff;
}
.open-badge__dot {
width: 7px;
height: 7px;
border-radius: 999px;
background: currentColor;
}
.open-badge.is-open {
color: #6ee7a8;
}
@media (prefers-reduced-motion: reduce) {
.site-v2 *,
.restaurant-hero__slide {
transition: none !important;
animation: none !important;
}
}
.reveal {
animation: reveal-up 0.5s ease both;
}
@keyframes reveal-up {
from {
opacity: 0;
transform: translateY(12px);
}
}
/* theme */
[data-theme="sushi"] {
--_accent-2: color-mix(in srgb, var(--_accent) 70%, #35d6a8);
--_ink: var(--_brand-primary);
}
[data-theme="sushi"] .restaurant-header__inner {
min-height: 80px;
}
[data-theme="sushi"] .restaurant-header.is-scrolled {
box-shadow: 0 2px 14px rgba(6, 17, 13, 0.07);
}
[data-theme="sushi"] .restaurant-navigation a {
font-size: 0.8rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
border-bottom-color: transparent;
}
[data-theme="sushi"] .restaurant-navigation a:hover,
[data-theme="sushi"] .restaurant-navigation a.is-active {
color: var(--_accent);
border-bottom-color: transparent;
}
[data-theme="sushi"] .restaurant-header__order {
border-radius: 999px;
border: 0;
background: linear-gradient(135deg, var(--_accent), var(--_accent-2));
box-shadow: 0 8px 22px color-mix(in srgb, var(--_accent) 24%, transparent);
font-weight: 800;
}
[data-theme="sushi"] .restaurant-hero {
background: var(--_ink);
}
[data-theme="sushi"] .restaurant-hero::after {
display: none;
}
[data-theme="sushi"] .restaurant-hero__media::after {
content: "";
position: absolute;
inset: 0;
background:
linear-gradient(
90deg,
rgba(6, 15, 12, 0.9) 0%,
rgba(6, 15, 12, 0.5) 44%,
rgba(6, 15, 12, 0.16) 72%,
rgba(6, 15, 12, 0.46) 100%
),
linear-gradient(0deg, rgba(4, 11, 9, 0.5), transparent 42%);
}
[data-theme="sushi"] .restaurant-hero__eyebrow {
color: color-mix(in srgb, var(--_accent-2) 82%, #fff);
letter-spacing: 0.26em;
font-size: 0.72rem;
}
[data-theme="sushi"] .restaurant-hero__eyebrow::before {
display: none;
}
[data-theme="sushi"] .restaurant-hero__title {
font-size: clamp(3rem, 1.4rem + 6vw, calc(6.4rem * var(--_title-scale)));
line-height: 0.94;
letter-spacing: -0.05em;
font-weight: var(--_weight-heading);
white-space: pre-line;
}
[data-theme="sushi"] .restaurant-hero__title em {
font-weight: 400;
color: color-mix(in srgb, var(--_accent-2) 75%, #fff);
}
[data-theme="sushi"] .restaurant-hero__subtitle {
font-size: 1.1rem;
line-height: 1.7;
color: rgba(255, 255, 255, 0.82);
max-width: 39rem;
}
[data-theme="sushi"] .restaurant-about__title,
[data-theme="sushi"] .restaurant-section__title {
white-space: pre-line;
}
[data-theme="sushi"] :where(.restaurant-hero__aside) .ordering-widget {
background: rgba(10, 16, 14, 0.8);
border: 1px solid rgba(255, 255, 255, 0.18);
border-radius: 20px;
padding: 26px;
color: #fff;
box-shadow: 0 28px 80px rgba(0, 0, 0, 0.42);
backdrop-filter: blur(18px);
}
[data-theme="sushi"] :where(.restaurant-hero__aside) .ordering-widget__method {
min-height: 72px;
border-radius: 11px;
border: 1px solid rgba(255, 255, 255, 0.15);
color: rgba(255, 255, 255, 0.72);
background: rgba(255, 255, 255, 0.04);
}
[data-theme="sushi"] :where(.restaurant-hero__aside) .ordering-widget__method.is-active {
color: #fff;
border-color: var(--_accent-2);
background: color-mix(in srgb, var(--_accent) 40%, transparent);
}
[data-theme="sushi"] :where(.restaurant-hero__aside) .ordering-widget select {
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.14);
color: #fff;
min-height: 48px;
}
[data-theme="sushi"] :where(.restaurant-hero__aside) .ordering-widget__status small,
[data-theme="sushi"] :where(.restaurant-hero__aside) .ordering-widget__contact {
color: rgba(255, 255, 255, 0.62);
}
[data-theme="sushi"] :where(.restaurant-hero__aside) .ordering-widget__contact a {
color: #fff;
}
[data-theme="sushi"] .restaurant-infostrip {
background: linear-gradient(
100deg,
color-mix(in srgb, var(--_accent) 78%, #000),
var(--_accent) 65%,
color-mix(in srgb, var(--_accent) 86%, #000)
);
color: #fff;
}
[data-theme="sushi"] .restaurant-infostrip__cell {
border-color: rgba(255, 255, 255, 0.16);
}
[data-theme="sushi"] .restaurant-infostrip__label {
color: rgba(255, 255, 255, 0.82);
opacity: 1;
}
[data-theme="sushi"] .restaurant-infostrip__value,
[data-theme="sushi"] .restaurant-infostrip__value a {
color: #fff;
font-family: var(--_font-heading);
}
[data-theme="sushi"] .restaurant-section__title:not(.restaurant-about__title):not(.restaurant-spotlight__title) {
text-align: center;
font-size: calc(2.9rem * var(--_title-scale));
line-height: 0.98;
}
[data-theme="sushi"] .restaurant-section[data-section="categories"] .restaurant-section__eyebrow,
[data-theme="sushi"] .restaurant-section[data-section="products"] .restaurant-section__eyebrow {
justify-content: center;
}
[data-theme="sushi"] .restaurant-section__eyebrow::before {
display: none;
}
[data-theme="sushi"] .restaurant-section[data-section="categories"] {
padding-block: clamp(80px, 10vw, 128px);
}
[data-theme="sushi"] .restaurant-categories {
grid-template-columns: repeat(4, 1fr);
gap: clamp(16px, 2vw, 24px);
}
@media (max-width: 900px) {
[data-theme="sushi"] .restaurant-categories {
grid-template-columns: repeat(2, 1fr);
}
}
[data-theme="sushi"] .category-card {
aspect-ratio: 3 / 4;
min-height: 0;
border: 0;
border-radius: 14px;
box-shadow: 0 12px 30px rgba(7, 27, 21, 0.12);
padding: 22px;
}
[data-theme="sushi"] .category-card::after {
background: linear-gradient(0deg, rgba(0, 0, 0, 0.82) 0%, rgba(0, 0, 0, 0.04) 58%);
}
[data-theme="sushi"] .category-card__name::after {
content: "";
display: block;
width: 34px;
height: 2px;
margin-top: 9px;
background: var(--_accent-2);
}
[data-theme="sushi"] .restaurant-about__grid {
gap: clamp(48px, 8vw, 110px);
}
[data-theme="sushi"] .restaurant-about__media img {
border-radius: 22px;
box-shadow: 0 22px 65px rgba(3, 27, 20, 0.18);
}
[data-theme="sushi"] .restaurant-about__badge {
border-radius: 12px;
left: 24px;
bottom: 24px;
padding: 16px 22px;
letter-spacing: 0.1em;
}
[data-theme="sushi"] .restaurant-about__title {
font-size: calc(2.6rem * var(--_title-scale));
}
[data-theme="sushi"] .restaurant-about__text {
line-height: 1.85;
}
[data-theme="sushi"] .restaurant-spotlight {
background:
radial-gradient(58% 80% at 82% 32%, color-mix(in srgb, var(--_accent) 30%, transparent), transparent 70%),
color-mix(in srgb, var(--_ink) 92%, #000);
}
[data-theme="sushi"] .restaurant-spotlight__grid {
gap: clamp(30px, 5vw, 70px);
}
[data-theme="sushi"] .restaurant-spotlight__media {
aspect-ratio: 4 / 5;
border-radius: 8px;
}
[data-theme="sushi"] .restaurant-spotlight__title {
font-size: calc(3.4rem * var(--_title-scale));
letter-spacing: -0.05em;
}
[data-theme="sushi"] .restaurant-spotlight__price strong {
font-size: 2.6rem;
font-weight: 400;
}
[data-theme="sushi"] .product-card {
border: 0;
border-radius: 18px;
box-shadow: 0 12px 42px rgba(17, 33, 27, 0.09);
}
[data-theme="sushi"] .product-card:hover {
transform: translateY(-3px);
}
[data-theme="sushi"] .product-card__content {
padding: 22px;
}
[data-theme="sushi"] .product-card__title {
font-size: 1.4rem;
font-weight: var(--_weight-heading);
}
[data-theme="sushi"] .product-card__price {
font-family: var(--_font-heading);
font-size: 1.28rem;
}
[data-theme="sushi"] .restaurant-footer {
background: var(--_ink);
padding-block: 72px 26px;
}
[data-theme="sushi"] .btn {
font-weight: 800;
}
[data-theme="sushi"] .btn:hover {
transform: translateY(-2px);
}
[data-theme="sushi"] .btn--lg {
border: 0;
background: linear-gradient(135deg, var(--_accent), var(--_accent-2));
box-shadow: 0 10px 28px color-mix(in srgb, var(--_accent) 26%, transparent);
color: #fff;
}
/* restaurant */
[data-restaurant="bonsai-sushi"]{--brand-primary:#06110d;--brand-secondary:#0d7b5e;--bg-main:#ffffff;--bg-alt:#f4f5f3;--surface:#ffffff;--text-primary:#171a18;--text-secondary:#68716d;--accent:#0d7b5e;--accent-contrast:#ffffff;--line:#e8e8e6;--font-heading:var(--font-fraunces), 'Iowan Old Style', Palatino, Georgia, serif;--font-body:var(--font-geist-sans), system-ui, sans-serif;--weight-heading:500;--title-scale:1.18;--letter-spacing-heading:-0.045em;--button-radius:10px;--card-radius:16px;--input-radius:12px;--image-radius:18px;--button-height:48px;--container-width:1240px;--section-gap:110px;--product-image-ratio:1 / 1;--shadow-card:0 1px 2px rgba(33,28,23,.05), 0 12px 32px -20px rgba(33,28,23,.18);--shadow-hover:0 2px 4px rgba(33,28,23,.06), 0 20px 44px -22px rgba(33,28,23,.28);--overlay-strength:0.5}

[data-restaurant="bonsai-sushi"]{
  --accent-2: #22a77f;
  --ink-green: #06110d;
}


[data-restaurant="bonsai-sushi"] .restaurant-header{
  background: #fff;
  border-bottom: 1px solid var(--_line);
  backdrop-filter: none;
}
[data-restaurant="bonsai-sushi"] .restaurant-header.is-scrolled{
  box-shadow: 0 2px 14px rgba(6,17,13,.07);
}
[data-restaurant="bonsai-sushi"] .restaurant-header__inner{ min-height: 80px; }

[data-restaurant="bonsai-sushi"] .restaurant-header__logo img{ height: 48px; }
[data-restaurant="bonsai-sushi"] .restaurant-navigation a{
  color: var(--ink-green);
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  border: 0;
}
[data-restaurant="bonsai-sushi"] .restaurant-navigation a:hover, [data-restaurant="bonsai-sushi"] .restaurant-navigation a.is-active{ color: var(--accent); border: 0; }

[data-restaurant="bonsai-sushi"] .restaurant-header__phone{ display: none; }

[data-restaurant="bonsai-sushi"] .restaurant-header__actions{ gap: 6px; }
[data-restaurant="bonsai-sushi"] .restaurant-header__actions .btn--ghost{ padding-inline: 8px; }
[data-restaurant="bonsai-sushi"] .restaurant-header__order{
  margin-left: 4px;
  border-radius: 999px;
  border: 0;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  box-shadow: 0 8px 22px rgba(13,123,94,.24);
  font-weight: 800;
}
[data-restaurant="bonsai-sushi"] .restaurant-header__burger{ border-color: var(--_line); color: var(--ink-green); }


[data-restaurant="bonsai-sushi"] .restaurant-hero[data-height], [data-restaurant="bonsai-sushi"] .restaurant-hero{ min-height: 90vh; background: var(--ink-green); }
[data-restaurant="bonsai-sushi"] .restaurant-hero::after{ display: none; }
[data-restaurant="bonsai-sushi"] .restaurant-hero__media::after{
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(4,13,10,.9) 0%, rgba(4,13,10,.52) 44%, rgba(4,13,10,.16) 72%, rgba(4,13,10,.46) 100%),
    linear-gradient(0deg, rgba(3,10,8,.5), transparent 42%);
}
[data-restaurant="bonsai-sushi"] .restaurant-hero__inner{ padding-block: clamp(56px, 9vh, 120px) 84px; }
[data-restaurant="bonsai-sushi"] .restaurant-hero__eyebrow{
  color: #62d7b3;
  letter-spacing: .26em;
  font-size: .72rem;
}
[data-restaurant="bonsai-sushi"] .restaurant-hero__eyebrow::before{ display: none; }
[data-restaurant="bonsai-sushi"] .restaurant-hero__title{
  font-size: clamp(3.3rem, 6.4vw, 6.6rem);
  line-height: .92;
  letter-spacing: -.055em;
  font-weight: 500;
  white-space: pre-line;
}
[data-restaurant="bonsai-sushi"] .restaurant-hero__title em{ font-weight: 400; color: #84e0c1; font-style: italic; }
[data-restaurant="bonsai-sushi"] .restaurant-about__title, [data-restaurant="bonsai-sushi"] .restaurant-section__title{ white-space: pre-line; }
[data-restaurant="bonsai-sushi"] .restaurant-hero__subtitle{
  font-size: 1.12rem;
  line-height: 1.7;
  color: rgba(255,255,255,.82);
  max-width: 39rem;
}


[data-restaurant="bonsai-sushi"] .ordering-widget{
  background: rgba(10,16,14,.8);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 20px;
  padding: 26px;
  color: #fff;
  box-shadow: 0 28px 80px rgba(0,0,0,.42);
  backdrop-filter: blur(18px);
  max-width: none;
}
[data-restaurant="bonsai-sushi"] .ordering-widget__title{ color: #fff; font-family: var(--_font-heading); font-size: 1.75rem; font-weight: 500; }
[data-restaurant="bonsai-sushi"] .ordering-widget__method{
  min-height: 78px;
  border-radius: 11px;
  border: 1px solid rgba(255,255,255,.15);
  color: rgba(255,255,255,.72);
  background: rgba(255,255,255,.04);
}
[data-restaurant="bonsai-sushi"] .ordering-widget__method.is-active{ color: #fff; border-color: #40c7a0; background: rgba(13,123,94,.4); }
[data-restaurant="bonsai-sushi"] .ordering-widget select, [data-restaurant="bonsai-sushi"] .ordering-widget__schedule{
  background: #242a28;
  border: 1px solid rgba(255,255,255,.14);
  color: #fff;
  min-height: 50px;
}
[data-restaurant="bonsai-sushi"] .ordering-widget__submit{
  border: 0;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  box-shadow: 0 12px 28px rgba(13,123,94,.3);
}
[data-restaurant="bonsai-sushi"] .ordering-widget__status small{ color: rgba(255,255,255,.6); }
[data-restaurant="bonsai-sushi"] .ordering-widget__contact{ color: rgba(255,255,255,.62); }
[data-restaurant="bonsai-sushi"] .ordering-widget__contact a{ color: #fff; }
[data-restaurant="bonsai-sushi"] .restaurant-hero__dots button.is-active{ background: #57d5ad; }


[data-restaurant="bonsai-sushi"] .restaurant-infostrip{
  background: linear-gradient(100deg, #07523f, #118267 65%, #0c6e58);
  color: #fff;
}
[data-restaurant="bonsai-sushi"] .restaurant-infostrip__cell{ border-color: rgba(255,255,255,.16); }
[data-restaurant="bonsai-sushi"] .restaurant-infostrip__label{ color: rgba(255,255,255,.82); opacity: 1; }
[data-restaurant="bonsai-sushi"] .restaurant-infostrip__value{ color: rgba(255,255,255,.92); font-family: var(--_font-heading); }
[data-restaurant="bonsai-sushi"] .restaurant-infostrip__value a{ color: #fff; }


[data-restaurant="bonsai-sushi"] .restaurant-section__title:not(.restaurant-about__title):not(.restaurant-spotlight__title){
  text-align: center;
  font-size: clamp(2.6rem, 5vw, 4.6rem);
  line-height: .98;
  font-weight: 500;
}
[data-restaurant="bonsai-sushi"] .restaurant-section[data-section="categories"] .restaurant-section__eyebrow, [data-restaurant="bonsai-sushi"] .restaurant-section[data-section="products"] .restaurant-section__eyebrow{
  justify-content: center;
}
[data-restaurant="bonsai-sushi"] .restaurant-section__eyebrow::before{ display: none; }


[data-restaurant="bonsai-sushi"] .restaurant-section[data-section="categories"]{ padding-block: clamp(80px, 10vw, 128px); }
[data-restaurant="bonsai-sushi"] .restaurant-section[data-section="categories"] .restaurant-section__title{ margin-bottom: 2.4rem; }
[data-restaurant="bonsai-sushi"] .restaurant-categories{
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(16px, 2vw, 24px);
}
@media (max-width: 900px){ [data-restaurant="bonsai-sushi"] .restaurant-categories{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){
  [data-restaurant="bonsai-sushi"] .restaurant-categories{
    grid-auto-flow: column;
    grid-auto-columns: 68vw;
    grid-template-columns: none;
    overflow-x: auto;
    margin-inline: -18px;
    padding: 4px 18px 14px;
    scroll-snap-type: x mandatory;
  }
  [data-restaurant="bonsai-sushi"] .category-card{ scroll-snap-align: start; }
}
[data-restaurant="bonsai-sushi"] .category-card{
  aspect-ratio: 3 / 4;
  min-height: 0;
  border: 0;
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(7,27,21,.12);
  padding: 22px;
  align-items: flex-end;
}
[data-restaurant="bonsai-sushi"] .category-card::after{ background: linear-gradient(0deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.04) 58%); }
[data-restaurant="bonsai-sushi"] .category-card img{ transition: transform .5s cubic-bezier(.2,.7,.2,1); }
[data-restaurant="bonsai-sushi"] .category-card:hover img{ transform: scale(1.06); }
[data-restaurant="bonsai-sushi"] .category-card__name{ font-size: clamp(1.15rem, 1vw + .8rem, 1.45rem); color: #fff; }
[data-restaurant="bonsai-sushi"] .category-card__name::after{
  content: "";
  display: block;
  width: 34px;
  height: 2px;
  margin-top: 9px;
  background: var(--accent-2);
}


[data-restaurant="bonsai-sushi"] .restaurant-about__grid{
  grid-template-columns: minmax(340px, 1fr) minmax(0, 1.15fr);
  gap: clamp(52px, 8vw, 120px);
}
[data-restaurant="bonsai-sushi"] .restaurant-about__media img{ border-radius: 22px; box-shadow: 0 22px 65px rgba(3,27,20,.18); }
[data-restaurant="bonsai-sushi"] .restaurant-about__badge{
  background: var(--accent);
  border-radius: 12px;
  left: 24px;
  bottom: 24px;
  padding: 16px 22px;
  font-size: .8rem;
  letter-spacing: .1em;
}
[data-restaurant="bonsai-sushi"] .restaurant-about__title{ font-size: clamp(2.4rem, 4.6vw, 4rem); font-weight: 500; }
[data-restaurant="bonsai-sushi"] .restaurant-about__text{ font-size: 1.05rem; line-height: 1.85; }
[data-restaurant="bonsai-sushi"] .restaurant-about__cta{
  border: 0;
  background: var(--ink-green);
  color: #fff;
}


[data-restaurant="bonsai-sushi"] .restaurant-spotlight{ background: #090d0b; }
[data-restaurant="bonsai-sushi"] .restaurant-spotlight::before{
  background: radial-gradient(58% 80% at 82% 32%, rgba(13,123,94,.32), transparent 70%);
}
[data-restaurant="bonsai-sushi"] .restaurant-spotlight__grid{ gap: clamp(30px, 5vw, 70px); align-items: center; }
[data-restaurant="bonsai-sushi"] .restaurant-spotlight__media{
  aspect-ratio: 4 / 5;
  border-radius: 8px;
  min-height: 520px;
}
[data-restaurant="bonsai-sushi"] .restaurant-spotlight__content{ position: relative; }
[data-restaurant="bonsai-sushi"] .restaurant-spotlight__content::after{
  content: "\7985";
  position: absolute;
  right: -1vw;
  bottom: -3vw;
  font-family: serif;
  font-size: 20vw;
  line-height: 1;
  color: rgba(255,255,255,.045);
  pointer-events: none;
}
[data-restaurant="bonsai-sushi"] .restaurant-spotlight__title{
  font-size: clamp(3rem, 5.6vw, 5.2rem);
  font-weight: 500;
  letter-spacing: -.05em;
}
[data-restaurant="bonsai-sushi"] .restaurant-spotlight__title em{ color: #50cba4; }
[data-restaurant="bonsai-sushi"] .restaurant-spotlight__lead{ color: #54cda8; font-weight: 700; }
[data-restaurant="bonsai-sushi"] .restaurant-spotlight__list li::before{ content: "\2713"; color: #47cba3; }
[data-restaurant="bonsai-sushi"] .restaurant-spotlight__price strong{ font-size: 2.7rem; color: #53cba6; font-weight: 400; }
[data-restaurant="bonsai-sushi"] .restaurant-spotlight__cta{
  border: 0;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  box-shadow: 0 12px 30px rgba(13,123,94,.3);
}


[data-restaurant="bonsai-sushi"] .product-card{
  border: 0;
  border-radius: 18px;
  box-shadow: 0 12px 42px rgba(17,33,27,.09);
}
[data-restaurant="bonsai-sushi"] .product-card:hover{ transform: translateY(-3px); }
[data-restaurant="bonsai-sushi"] .product-card__image{ aspect-ratio: 16 / 10; }
[data-restaurant="bonsai-sushi"] .product-card__content{ padding: 24px; }
[data-restaurant="bonsai-sushi"] .product-card__title{ font-size: 1.55rem; font-weight: 500; }
[data-restaurant="bonsai-sushi"] .product-card__price{ font-family: var(--_font-heading); font-size: 1.35rem; }
[data-restaurant="bonsai-sushi"] .product-card__add{
  width: 46px;
  height: 46px;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  font-size: 1.4rem;
  background: var(--accent);
}


[data-restaurant="bonsai-sushi"] .restaurant-footer{ background: var(--ink-green); padding-block: 72px 26px; }


[data-restaurant="bonsai-sushi"] .btn{ border-radius: 10px; font-weight: 800; }
[data-restaurant="bonsai-sushi"] .btn:hover{ transform: translateY(-2px); }
[data-restaurant="bonsai-sushi"] .btn--lg{
  border: 0;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  box-shadow: 0 10px 28px rgba(13,123,94,.26);
  color: #fff;
}
[data-restaurant="bonsai-sushi"] .btn--outline{
  color: #fff;
  border-color: rgba(255,255,255,.45);
  background: rgba(255,255,255,.05);
  backdrop-filter: blur(8px);
}


@media (max-width: 980px){
  [data-restaurant="bonsai-sushi"] .restaurant-hero--slider .restaurant-hero__inner, [data-restaurant="bonsai-sushi"] .restaurant-hero__inner{ grid-template-columns: 1fr; }
  [data-restaurant="bonsai-sushi"] .restaurant-hero__aside{ margin-top: 8px; }
  [data-restaurant="bonsai-sushi"] .restaurant-spotlight__grid{ grid-template-columns: 1fr; }
  [data-restaurant="bonsai-sushi"] .restaurant-about__grid{ grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce){
  [data-restaurant="bonsai-sushi"] .category-card img{ transition: none; }
}