/* 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));
}
.restaurant-reviews > * {
height: 100%;
}
.review-card {
background: var(--_surface);
border: 1px solid var(--_line);
border-radius: var(--_card-radius);
box-shadow: var(--_shadow-card);
padding: 20px;
display: flex;
flex-direction: column;
gap: 8px;
}
.review-card__head {
display: flex;
align-items: center;
gap: 10px;
}
.review-card__avatar {
width: 38px;
height: 38px;
flex: 0 0 38px;
border-radius: 999px;
object-fit: cover;
background: var(--_surface-alt, rgba(128, 128, 128, 0.12));
}
.review-card__avatar--fallback {
display: inline-flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 0.95rem;
color: var(--_text-secondary);
}
.review-card__meta {
min-width: 0;
}
.review-card__date {
margin: 2px 0 0;
font-size: 0.78rem;
color: var(--_text-secondary);
}
.review-card__stars {
margin: 0;
color: #e5a300;
letter-spacing: 2px;
}
.review-card__text {
margin: 0;
font-size: 0.92rem;
color: var(--_text-secondary);
line-height: 1.6;
white-space: pre-line;
}
.review-card__text[data-clamped] {
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.review-card__more {
align-self: flex-start;
margin: 0;
padding: 0;
background: none;
border: 0;
font: inherit;
font-size: 0.82rem;
font-weight: 600;
color: var(--_accent, var(--_text-primary));
cursor: pointer;
text-decoration: underline;
text-underline-offset: 2px;
}
.review-card__reply {
margin-top: auto;
padding: 10px 12px;
border-radius: calc(var(--_card-radius) / 2);
background: var(--_surface-alt, rgba(128, 128, 128, 0.08));
border-left: 3px solid var(--_accent, var(--_line));
}
.review-card__reply-label {
margin: 0 0 3px;
font-size: 0.72rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
color: var(--_text-secondary);
}
.review-card__reply-text {
margin: 0;
font-size: 0.86rem;
line-height: 1.55;
color: var(--_text-secondary);
white-space: pre-line;
}
.review-card__author {
margin: 0;
font-weight: 600;
font-size: 0.85rem;
}
.reviews-footer {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-top: 18px;
}
.reviews-attribution {
margin: 0;
font-size: 0.78rem;
color: var(--_text-secondary);
}
.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="pizzeria"] {
--_olive: var(--_brand-secondary);
--_crust: color-mix(in srgb, var(--_accent) 24%, #e8a13a);
}
[data-theme="pizzeria"] .restaurant-header {
background: var(--_surface);
border-bottom: 2px solid color-mix(in srgb, var(--_accent) 18%, var(--_line));
}
[data-theme="pizzeria"] .restaurant-header__inner {
min-height: 76px;
}
[data-theme="pizzeria"] .restaurant-navigation a {
font-weight: 700;
font-size: 0.92rem;
}
[data-theme="pizzeria"] .restaurant-navigation a:hover,
[data-theme="pizzeria"] .restaurant-navigation a.is-active {
color: var(--_accent);
border-bottom-color: var(--_accent);
}
[data-theme="pizzeria"] .restaurant-header__order {
font-weight: 800;
box-shadow: 0 8px 20px color-mix(in srgb, var(--_accent) 26%, transparent);
}
[data-theme="pizzeria"] .restaurant-hero {
background: var(--_brand-primary);
}
[data-theme="pizzeria"] .restaurant-hero::after {
background: linear-gradient(
to top,
rgba(20, 12, 8, 0.82),
rgba(20, 12, 8, 0.34) 55%,
rgba(20, 12, 8, 0.12)
);
}
[data-theme="pizzeria"] .restaurant-hero__eyebrow {
color: var(--_crust);
letter-spacing: 0.18em;
}
[data-theme="pizzeria"] .restaurant-hero__eyebrow::before {
background: var(--_crust);
width: 22px;
}
[data-theme="pizzeria"] .restaurant-hero__title {
font-size: clamp(2.8rem, 1.4rem + 5.4vw, calc(5.4rem * var(--_title-scale)));
line-height: 1;
}
[data-theme="pizzeria"] .restaurant-hero__title em {
color: var(--_crust);
font-style: normal;
}
[data-theme="pizzeria"] .restaurant-hero__aside .ordering-widget {
border-radius: 22px;
border: 2px solid color-mix(in srgb, var(--_accent) 30%, #fff);
box-shadow: 0 30px 70px rgba(20, 12, 8, 0.4);
}
[data-theme="pizzeria"] .restaurant-infostrip {
background: var(--_accent);
color: var(--_accent-contrast);
}
[data-theme="pizzeria"] .restaurant-infostrip__cell {
border-color: color-mix(in srgb, var(--_accent-contrast) 22%, transparent);
}
[data-theme="pizzeria"] .restaurant-infostrip__label {
color: color-mix(in srgb, var(--_accent-contrast) 82%, transparent);
opacity: 1;
}
[data-theme="pizzeria"] .restaurant-infostrip__value,
[data-theme="pizzeria"] .restaurant-infostrip__value a {
color: var(--_accent-contrast);
}
[data-theme="pizzeria"] .restaurant-section__eyebrow {
color: var(--_olive);
}
[data-theme="pizzeria"] .restaurant-section__eyebrow::before {
background: var(--_olive);
}
[data-theme="pizzeria"] .restaurant-section__title em {
color: var(--_accent);
font-style: normal;
}
[data-theme="pizzeria"] .category-card {
border-radius: 20px;
border: 0;
box-shadow: 0 14px 32px rgba(43, 35, 32, 0.16);
}
[data-theme="pizzeria"] .category-card::after {
background: linear-gradient(to top, rgba(28, 18, 12, 0.86), rgba(28, 18, 12, 0.05) 62%);
}
[data-theme="pizzeria"] .category-card__name {
font-size: clamp(1.05rem, 0.85rem + 0.7vw, 1.35rem);
}
[data-theme="pizzeria"] .product-card {
border: 0;
border-radius: 18px;
box-shadow: 0 12px 34px rgba(43, 35, 32, 0.12);
}
[data-theme="pizzeria"] .product-card:hover {
transform: translateY(-3px);
box-shadow: 0 20px 46px rgba(43, 35, 32, 0.2);
}
[data-theme="pizzeria"] .product-card__image {
aspect-ratio: 3 / 2;
}
[data-theme="pizzeria"] .product-card__content {
padding: 18px 20px 20px;
gap: 6px;
}
[data-theme="pizzeria"] .product-card__title {
font-size: 1.22rem;
font-weight: 700;
}
[data-theme="pizzeria"] .product-card__price {
font-family: var(--_font-heading);
font-size: 1.25rem;
color: var(--_accent);
}
[data-theme="pizzeria"] .product-card__add {
width: 46px;
height: 46px;
}
[data-theme="pizzeria"] .menu-item__portion {
color: var(--_accent);
font-weight: 700;
}
[data-theme="pizzeria"] .menu-item__price {
color: var(--_accent);
font-family: var(--_font-heading);
}
[data-theme="pizzeria"] .restaurant-about__badge {
background: var(--_olive);
border-radius: 999px 999px 999px 0;
}
[data-theme="pizzeria"] .restaurant-spotlight {
background:
radial-gradient(70% 60% at 20% 0%, color-mix(in srgb, var(--_crust) 26%, transparent), transparent 60%),
color-mix(in srgb, var(--_brand-primary) 96%, #000);
}
[data-theme="pizzeria"] .restaurant-spotlight__lead {
color: var(--_crust);
}
[data-theme="pizzeria"] .btn {
font-weight: 800;
letter-spacing: 0.01em;
}
[data-theme="pizzeria"] .btn--lg {
min-height: calc(var(--_button-height) + 12px);
padding-inline: 34px;
font-size: 1.05rem;
box-shadow: 0 12px 28px color-mix(in srgb, var(--_accent) 30%, transparent);
}
[data-theme="pizzeria"] .restaurant-footer {
background: var(--_brand-primary);
}
/* design */
.site-design { background: var(--d-bg); color: var(--d-primary); overflow-x: clip; }
.site-design .dz-main { display: block; min-height: 60vh; }
.site-design h1, .site-design h2, .site-design h3 { color: inherit; font-family: inherit; letter-spacing: inherit; text-transform: none; }
:where(.site-design) img { max-width: 100%; height: auto; display: block; }
.site-design .dz-img--empty { display: block; background: color-mix(in srgb, var(--d-primary) 8%, transparent); aspect-ratio: 4 / 3; }
:where(.site-design) a { color: inherit; }
.site-design :focus-visible { outline: 3px solid var(--d-accent); outline-offset: 3px; }
:where(.site-design) button { font: inherit; cursor: pointer; }
.site-design button:disabled { cursor: not-allowed; opacity: .45; }
.site-design .dz-toast {
position: fixed; left: 50%; bottom: calc(84px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%);
z-index: 80; background: var(--d-primary); color: var(--d-bg); padding: 12px 18px; border-radius: 999px;
font-size: 14px; box-shadow: 0 10px 30px rgba(0,0,0,.25); max-width: calc(100vw - 32px);
}
.site-design .dz-demo { font-size: 12px; opacity: .75; margin: 24px 0 0; }
.site-design .dz-cart__count { font-variant-numeric: tabular-nums; }
.site-design .dz-cartpanel ul { list-style: none; margin: 0; padding: 0; }
@media (prefers-reduced-motion: reduce) {
.site-design *, .site-design *::before, .site-design *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
:where(.site-design) .dz-em { font-style: italic; color: var(--d-accent); }
.site-design .dz-map { display: grid; justify-items: center; gap: 10px; text-align: center; padding: 56px 24px; background: color-mix(in srgb, var(--d-primary) 5%, var(--d-bg)); }
.site-design .dz-map__pin { font-size: 34px; color: var(--d-accent); }
.site-design .dz-map p { margin: 0; font-size: 18px; }
.site-design .dz-map a { font-weight: 600; color: var(--d-accent); }
.site-design .dz-preview { margin: 0; padding: 8px 16px; background: #111; color: #fff; font: 600 13px/1.4 system-ui, sans-serif; text-align: center; }
.site-design .dz-preview a { color: #ffd84d; }
.site-design .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.site-design .dz-drawer { position: fixed; inset: 0; z-index: 95; }
.site-design .dz-drawer__backdrop { position: absolute; inset: 0; border: 0; background: rgba(0,0,0,.45); }
.site-design .dz-drawer__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 100vw); overflow-y: auto; padding: 28px 24px; background: var(--d-bg); color: var(--d-primary); box-shadow: -20px 0 50px rgba(0,0,0,.25); animation: dz-slide .3s ease both; }
@keyframes dz-slide { from { transform: translateX(40px); opacity: .4; } to { transform: none; opacity: 1; } }
.site-design .dz-drawer__close { position: absolute; top: 12px; right: 14px; width: 44px; height: 44px; border: 0; background: transparent; color: inherit; font-size: 28px; }
.site-design .dz-cartpanel h2 { margin: 0 0 18px; font-size: 22px; }
.site-design .dz-cartpanel li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid color-mix(in srgb, var(--d-primary) 12%, transparent); font-size: 15px; }
.site-design .dz-cartpanel__qty { display: inline-flex; align-items: center; gap: 10px; font-variant-numeric: tabular-nums; }
.site-design .dz-cartpanel__qty button { width: 36px; height: 36px; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--d-primary) 30%, transparent); background: transparent; color: inherit; font-size: 18px; }
.site-design .dz-cartpanel__total { display: flex; justify-content: space-between; margin: 18px 0; font-size: 16px; }
.site-design .dz-cartpanel__cta { display: block; text-align: center; padding: 15px; background: var(--d-accent); color: var(--d-bg); text-decoration: none; font-weight: 700; border-radius: var(--d-radius, 0); }
.site-design .dz-cartpanel__empty { opacity: .7; }
[data-design="italian-trattoria"] { --it-serif: var(--dz-f-dmserif), Georgia, serif; --it-sans: var(--dz-f-nunitosans), system-ui, sans-serif; --it-ink: var(--d-primary); --it-r: var(--d-radius, 999px); font-family: var(--it-sans); }
[data-design="italian-trattoria"] .it-script { font-family: var(--it-serif); font-style: italic; color: var(--d-accent); font-size: 1.15em; margin: 0; }
[data-design="italian-trattoria"] .it-h2 { text-align: center; font-family: var(--it-serif); font-weight: 400; font-size: clamp(30px, 4vw, 46px); margin: 0 0 36px; }
[data-design="italian-trattoria"] .it-h2::after { content: "~ ✿ ~"; display: block; font-size: 14px; letter-spacing: .4em; color: var(--d-primary); opacity: .5; margin-top: 6px; }
.it-header { position: relative; background: var(--d-bg); border-bottom: 3px double color-mix(in srgb, var(--d-primary) 35%, transparent); }
.it-header__band { display: flex; justify-content: center; gap: 24px; padding: 8px 16px; background: var(--d-primary); color: var(--d-bg); font-size: 13px; letter-spacing: .04em; }
.it-header__band a { text-decoration: none; font-weight: 700; }
.it-header__main { display: flex; justify-content: center; padding: 22px 16px 8px; }
.it-header__mark { display: inline-flex; align-items: center; gap: 18px; text-decoration: none; }
.it-header__mark b { display: block; font-family: var(--it-serif); font-weight: 400; font-style: italic; font-size: clamp(30px, 4.4vw, 48px); line-height: 1; text-align: center; color: var(--d-primary); }
.it-header__mark small { display: block; text-align: center; font-size: 11px; letter-spacing: .35em; text-transform: uppercase; color: var(--d-accent); margin-top: 6px; }
.it-header__laurel { font-size: 26px; color: var(--d-accent); }
.it-header__laurel--r { transform: scaleX(-1); }
.it-header__nav { display: flex; justify-content: center; gap: 6px; padding: 10px 16px 14px; overflow-x: auto; scrollbar-width: none; }
.it-header__nav a { text-decoration: none; padding: 8px 16px; border-radius: 999px; font-weight: 700; font-size: 14px; white-space: nowrap; }
.it-header__nav a:hover { background: color-mix(in srgb, var(--d-accent) 14%, transparent); color: var(--d-accent); }
.it-cart { position: fixed; right: 22px; bottom: 26px; z-index: 60; display: inline-flex; align-items: center; gap: 12px; padding: 12px 14px 12px 22px; border-radius: 999px; background: var(--d-accent); color: #fff; text-decoration: none; font-weight: 800; box-shadow: 0 14px 34px color-mix(in srgb, var(--d-accent) 40%, transparent); }
.it-cart .dz-cart__count { display: grid; place-items: center; min-width: 28px; height: 28px; border-radius: 50%; background: #fff; color: var(--d-accent); font-size: 13px; }
.it-hero { position: relative; display: grid; place-items: center; min-height: min(78vh, 720px); padding: 48px 16px; overflow: hidden; }
.it-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.it-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.35)); z-index: 1; }
.it-hero__card { position: relative; z-index: 2; max-width: 560px; text-align: center; background: var(--d-bg); padding: 40px 44px 36px; border-radius: 28px; box-shadow: 0 30px 60px rgba(0,0,0,.25); outline: 2px dashed color-mix(in srgb, var(--d-accent) 55%, transparent); outline-offset: -12px; }
.it-hero__card h1 { font-family: var(--it-serif); font-weight: 400; font-size: clamp(34px, 5vw, 60px); line-height: 1.05; margin: 8px 0 14px; color: var(--d-primary); }
.it-hero__card > p:not(.it-script) { margin: 0 auto; max-width: 42ch; line-height: 1.6; opacity: .85; }
.it-hero__actions { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.it-btn { display: inline-flex; align-items: center; padding: 14px 26px; border-radius: var(--it-r); background: var(--d-accent); color: #fff; text-decoration: none; font-weight: 800; }
.it-btn--ghost { background: transparent; color: var(--d-primary); border: 2px solid var(--d-primary); }
.it-promos { padding: 80px max(16px, 6vw) 40px; }
.it-promos ul { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 22px; max-width: 1100px; }
.it-ticket { position: relative; display: grid; background: var(--d-primary); color: var(--d-bg); border-radius: 18px; padding: 26px 26px 20px; gap: 16px;
-webkit-mask: radial-gradient(circle 14px at 0 62%, transparent 98%, #000) , radial-gradient(circle 14px at 100% 62%, transparent 98%, #000); -webkit-mask-composite: source-in; mask: radial-gradient(circle 14px at 0 62%, transparent 98%, #000), radial-gradient(circle 14px at 100% 62%, transparent 98%, #000); mask-composite: intersect; }
.it-ticket__body { display: grid; gap: 6px; cursor: pointer; }
.it-ticket__name { font-family: var(--it-serif); font-size: 28px; line-height: 1.1; }
.it-ticket__desc { font-size: 14px; opacity: .8; line-height: 1.5; }
.it-ticket__price { font-family: var(--it-serif); font-size: 40px; color: color-mix(in srgb, var(--d-accent) 70%, #fff); border-top: 2px dashed color-mix(in srgb, var(--d-bg) 35%, transparent); padding-top: 12px; margin-top: 8px; }
.it-ticket__add { justify-self: start; padding: 11px 20px; border-radius: 999px; border: 0; background: var(--d-accent); color: #fff; font-weight: 800; }
.it-featured { padding: 70px max(16px, 6vw); }
.it-pizzas { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 44px 28px; max-width: 1180px; }
.it-pizza { display: grid; justify-items: center; text-align: center; gap: 10px; align-content: start; }
.it-pizza__open { display: grid; justify-items: center; gap: 6px; cursor: pointer; position: relative; }
.it-pizza__plate { display: block; width: 210px; aspect-ratio: 1; border-radius: 50%; padding: 10px; background: #fff; box-shadow: 0 0 0 1px color-mix(in srgb, var(--d-primary) 12%, transparent), 0 18px 40px rgba(60,40,20,.18); transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.it-pizza__plate img, .it-pizza__plate .dz-img--empty { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; aspect-ratio: 1; }
.it-pizza__open:hover .it-pizza__plate { transform: rotate(-8deg) scale(1.03); }
.it-pizza__name { font-family: var(--it-serif); font-size: 24px; margin-top: 8px; }
.it-pizza__desc { font-size: 14px; opacity: .72; line-height: 1.5; max-width: 30ch; }
.it-pizza__price { font-weight: 800; color: var(--d-accent); }
.it-badge { position: absolute; top: 6px; right: 6px; background: var(--d-accent); color: #fff; font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 999px; font-style: normal; text-transform: uppercase; letter-spacing: .05em; }
.it-sizes { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.it-sizes button { display: grid; min-width: 62px; min-height: 48px; place-items: center; padding: 4px 10px; border-radius: 14px; border: 2px solid color-mix(in srgb, var(--d-primary) 22%, transparent); background: #fff; color: var(--d-primary); font-size: 12px; line-height: 1.2; }
.it-sizes button b { font-size: 15px; }
.it-sizes button:hover:not(:disabled), .it-sizes button[data-added] { border-color: var(--d-accent); background: var(--d-accent); color: #fff; }
.it-add { padding: 11px 22px; border-radius: var(--it-r); border: 2px solid var(--d-primary); background: transparent; color: var(--d-primary); font-weight: 800; }
.it-add:hover:not(:disabled), .it-add[data-added] { background: var(--d-primary); color: var(--d-bg); }
.it-pizza:has(.it-sizes) > .it-add { display: none; }
.it-pizza .it-sizes { flex-wrap: nowrap; }
.it-pizza .it-sizes button { min-width: 0; flex: 1; padding: 4px 6px; }
.it-story { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 6vw; align-items: center; padding: 80px max(16px, 7vw); background: color-mix(in srgb, var(--d-primary) 7%, var(--d-bg)); }
.it-story__img img, .it-story__img .dz-img--empty { border-radius: 200px 200px 24px 24px; aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.it-story__text h2 { font-family: var(--it-serif); font-weight: 400; font-size: clamp(30px, 3.8vw, 48px); line-height: 1.1; margin: 10px 0 18px; }
.it-story__text p:not(.it-script) { line-height: 1.85; opacity: .85; margin: 0; }
.it-cats { padding: 70px max(16px, 6vw); }
.it-cats ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.it-cats a { display: grid; grid-template-columns: 56px auto; grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 8px 22px 8px 8px; border-radius: 999px; background: #fff; text-decoration: none; box-shadow: 0 6px 18px rgba(60,40,20,.1); }
.it-cats img, .it-cats .dz-img--empty { grid-row: span 2; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; aspect-ratio: 1; }
.it-cats span { font-family: var(--it-serif); font-size: 19px; }
.it-cats small { font-size: 12px; opacity: .6; }
.it-gallery { display: flex; justify-content: center; gap: 22px; padding: 40px 16px 80px; flex-wrap: wrap; }
.it-polaroid { width: 230px; aspect-ratio: 1; object-fit: cover; background: #fff; padding: 10px 10px 34px; box-shadow: 0 14px 30px rgba(0,0,0,.15); transform: rotate(-3deg); }
.it-polaroid--r { transform: rotate(3deg) translateY(16px); }
.it-info { display: grid; grid-template-columns: 1fr 1fr; gap: 6vw; padding: 70px max(16px, 8vw); align-items: center; }
.it-info .it-h2 { text-align: left; }
.it-info .it-h2::after { display: none; }
.it-info p { margin: 0 0 6px; font-size: 17px; }
.it-hours { margin: 0; display: grid; gap: 8px; }
.it-hours div { display: flex; justify-content: space-between; gap: 18px; border-bottom: 1px dashed color-mix(in srgb, currentColor 30%, transparent); padding-bottom: 6px; }
.it-hours dt { font-weight: 700; }
.it-hours dd { margin: 0; text-align: right; }
.it-hours [data-today] { color: var(--d-accent); }
.it-hours--light { background: #fff; padding: 26px; border-radius: 22px; }
.it-map { border-radius: 26px; margin: 0 max(16px, 6vw) 60px; }
.it-reviews { padding: 60px max(16px, 6vw); }
.it-reviews ul { list-style: none; margin: 0 auto; padding: 0; max-width: 1100px; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.it-reviews li { background: #fff; padding: 24px; border-radius: 22px; }
.it-reviews p { font-family: var(--it-serif); font-style: italic; font-size: 18px; margin: 0 0 10px; }
.it-reviews cite { font-style: normal; font-size: 13px; color: var(--d-accent); }
.it-footer { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 40px; padding: 60px max(16px, 6vw) 120px; background: var(--d-primary); color: var(--d-bg); }
.it-footer__slate { background: #232a22; color: #f3efe4; border: 10px solid #8a5a35; border-radius: 6px; padding: 28px 30px; box-shadow: inset 0 0 40px rgba(0,0,0,.4); font-family: var(--it-serif); }
.it-footer__slate h2 { font-weight: 400; font-style: italic; font-size: 32px; margin: 0 0 16px; text-align: center; }
.it-footer__slate .it-hours [data-today] { color: #ffd38a; }
.it-footer__side { display: grid; gap: 8px; align-content: start; }
.it-footer__side a { color: inherit; }
.it-footer__mark { font-family: var(--it-serif); font-style: italic; font-size: 32px; margin: 0 0 8px; }
.it-catalog { max-width: 980px; margin: 0 auto; padding: 50px 16px 140px; }
.it-catalog__head { text-align: center; margin-bottom: 30px; }
.it-catalog__head h1 { font-family: var(--it-serif); font-weight: 400; font-size: clamp(48px, 7vw, 80px); margin: 0; line-height: 1; }
.it-catalog__closed { margin: 14px 0 0; color: var(--d-accent); font-weight: 700; }
.it-catalog__head nav { position: sticky; top: 0; z-index: 5; display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-top: 24px; padding: 10px 0; background: var(--d-bg); }
.it-catalog__head nav a { padding: 8px 16px; border-radius: 999px; border: 2px solid color-mix(in srgb, var(--d-primary) 18%, transparent); text-decoration: none; font-weight: 700; font-size: 14px; }
.it-catalog__section { margin-top: 56px; scroll-margin-top: 70px; }
.it-catalog__section h2 { display: flex; align-items: center; gap: 18px; font-family: var(--it-serif); font-weight: 400; font-style: italic; font-size: 36px; color: var(--d-accent); margin: 0 0 18px; }
.it-catalog__section h2::before, .it-catalog__section h2::after { content: ""; flex: 1; height: 2px; background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--d-primary) 30%, transparent) 0 8px, transparent 8px 14px); }
.it-catalog__section ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.it-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px 14px; padding: 14px 0; border-bottom: 1px solid color-mix(in srgb, var(--d-primary) 10%, transparent); }
.it-row__open { display: grid; grid-template-columns: 74px 1fr auto; gap: 16px; align-items: center; cursor: pointer; }
.it-row__thumb img, .it-row__thumb .dz-img--empty { width: 74px; height: 74px; border-radius: 50%; object-fit: cover; aspect-ratio: 1; }
.it-row__name { display: flex; align-items: center; gap: 10px; font-family: var(--it-serif); font-size: 21px; }
.it-row__name .it-badge { position: static; }
.it-row__desc { display: block; font-size: 14px; opacity: .7; line-height: 1.5; margin-top: 2px; }
.it-row__price { font-weight: 800; color: var(--d-accent); white-space: nowrap; }
.it-sizes--row { grid-column: 1 / -1; justify-content: flex-start; padding-left: 90px; }
.it-add--row { width: 44px; height: 44px; padding: 0; border-radius: 50%; font-size: 20px; }
.it-row:has(.it-sizes) .it-add--row { display: none; }
.it-row:has(.it-sizes) .it-row__price { display: none; }
@media (max-width: 860px) {
.it-header__band { justify-content: space-between; font-size: 12px; }
.it-cart { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); right: 14px; }
.it-hero { min-height: 0; padding: 0 0 24px; display: block; }
.it-hero__img { position: static; aspect-ratio: 4 / 3; }
.it-hero::before { display: none; }
.it-hero__card { margin: -60px 14px 0; padding: 30px 22px; }
.it-story, .it-info, .it-footer { grid-template-columns: 1fr; }
.it-pizzas { grid-template-columns: 1fr 1fr; gap: 30px 12px; }
.it-pizza__plate { width: 100%; max-width: 160px; }
.it-pizza__name { font-size: 19px; }
.it-pizza__desc { display: none; }
.it-polaroid { width: 44%; }
.it-row__open { grid-template-columns: 58px 1fr auto; gap: 12px; }
.it-row__thumb img, .it-row__thumb .dz-img--empty { width: 58px; height: 58px; }
.it-sizes--row { padding-left: 0; }
.it-footer { padding-bottom: 150px; }
}
/* restaurant */
[data-restaurant="demo-pizzeria"]{--brand-primary:#2b2320;--brand-secondary:#6b7040;--bg-main:#faf5ea;--bg-alt:#f1e7d4;--surface:#fffdf8;--text-primary:#2b2320;--text-secondary:#6f645a;--accent:#b3312a;--accent-contrast:#fff8f0;--line:#e7dcc6;--font-heading:var(--font-bricolage), 'Trebuchet MS', system-ui, sans-serif;--font-body:var(--font-geist-sans), system-ui, sans-serif;--weight-heading:700;--title-scale:1.06;--letter-spacing-heading:-0.01em;--button-radius:999px;--card-radius:18px;--input-radius:12px;--image-radius:16px;--button-height:48px;--container-width:1240px;--section-gap:84px;--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.44;--d-primary:#3f4a28;--d-accent:#c4522d;--d-bg:#f7efe1;--d-radius:999px;--d-density:1}