/* Every selector is scoped to a validated Gastrovo module. No theme selectors. */
:is(.gastrovo-structured-menu,.gastrovo-menu,.gastrovo-weekly-menu,.gastrovo-opening-hours,.gastrovo-announcements,.gastrovo-announcement-banner,.gastrovo-announcement-popup)[data-gastrovo-design] {
  color:var(--gastrovo-text-color); font-family:var(--gastrovo-body-font);
  --gvo-text:var(--gastrovo-text-color); --gvo-muted:var(--gastrovo-muted-text-color); --gvo-accent:var(--gastrovo-primary-color);
}
:is(.gastrovo-structured-menu,.gastrovo-menu,.gastrovo-weekly-menu,.gastrovo-opening-hours,.gastrovo-announcements,.gastrovo-announcement-banner,.gastrovo-announcement-popup)[data-gastrovo-design] :is(h2,h3,h4,.gastrovo-announcement__title) {
  font-family:var(--gastrovo-heading-font); color:var(--gastrovo-text-color); overflow-wrap:anywhere;
}
:is(.gastrovo-structured-menu,.gastrovo-weekly-menu,.gastrovo-announcements)[data-gastrovo-design] :is(p,small,.gastrovo-structured-menu__variants dt,.gastrovo-weekly-menu__header span) { color:var(--gastrovo-muted-text-color); }
.gastrovo-structured-menu[data-gastrovo-design] { background:var(--gastrovo-surface-color); padding:var(--gastrovo-space); }
.gastrovo-structured-menu[data-gastrovo-design] .gastrovo-structured-menu__items { grid-template-columns:1fr; gap:0; }
.gastrovo-structured-menu[data-gastrovo-design] .gastrovo-structured-menu__item { padding:var(--gastrovo-space) 0; }
.gastrovo-structured-menu[data-gastrovo-design] .gastrovo-structured-menu__nav a { color:var(--gastrovo-text-color); background:var(--gastrovo-surface-color); border-radius:var(--gastrovo-button-radius); }
.gastrovo-structured-menu[data-gastrovo-design="modern"] .gastrovo-structured-menu__items { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gastrovo-space); }
.gastrovo-structured-menu[data-gastrovo-design="modern"] .gastrovo-structured-menu__item { padding:var(--gastrovo-space); border:1px solid var(--gastrovo-muted-text-color); border-radius:var(--gastrovo-card-radius); box-shadow:var(--gastrovo-shadow); }
.gastrovo-structured-menu[data-gastrovo-design="elegant"]>header, .gastrovo-structured-menu[data-gastrovo-design="elegant"] .gastrovo-structured-menu__menu>header { text-align:center; padding:var(--gastrovo-space) 0; }
.gastrovo-structured-menu[data-gastrovo-design="elegant"] .gastrovo-structured-menu__category h3 { border-bottom:1px solid var(--gastrovo-secondary-color); font-weight:500; }
.gastrovo-weekly-menu[data-gastrovo-design] .gastrovo-weekly-menu__day { padding:var(--gastrovo-space); border-radius:var(--gastrovo-card-radius); background:var(--gastrovo-surface-color); box-shadow:var(--gastrovo-shadow); }
.gastrovo-weekly-menu[data-gastrovo-design="modern"] .gastrovo-weekly-menu__days { grid-template-columns:repeat(2,minmax(0,1fr)); }
.gastrovo-weekly-menu[data-gastrovo-design="elegant"] .gastrovo-weekly-menu__day { border-width:0 0 1px; }
.gastrovo-opening-hours[data-gastrovo-design] { padding:var(--gastrovo-space); background:var(--gastrovo-surface-color); border-radius:var(--gastrovo-card-radius); }
.gastrovo-opening-hours[data-gastrovo-design="modern"] .gastrovo-opening-hours__list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gastrovo-space); }
.gastrovo-opening-hours[data-gastrovo-design="modern"] .gastrovo-opening-hours__day { border-radius:var(--gastrovo-card-radius); padding:var(--gastrovo-space); border:1px solid var(--gastrovo-muted-text-color); }
.gastrovo-opening-hours[data-gastrovo-design="elegant"] .gastrovo-opening-hours__day { padding:var(--gastrovo-space) 0; }
.gastrovo-announcement-banner[data-gastrovo-design] { background:var(--gastrovo-surface-color); border-color:var(--gastrovo-secondary-color); padding:var(--gastrovo-space); }
.gastrovo-announcement-popup[data-gastrovo-design] .gastrovo-announcement-popup__card,
.gastrovo-announcements[data-gastrovo-design] .gastrovo-announcements__item { color:var(--gastrovo-text-color); background:var(--gastrovo-surface-color); border-radius:var(--gastrovo-card-radius); padding:var(--gastrovo-space); box-shadow:var(--gastrovo-shadow); }
.gastrovo-announcements[data-gastrovo-design="modern"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
.gastrovo-announcement-banner[data-gastrovo-design="modern"] .gastrovo-announcement-banner__inner { border-radius:var(--gastrovo-card-radius); padding:var(--gastrovo-space); border:1px solid var(--gastrovo-secondary-color); }
.gastrovo-announcement-popup[data-gastrovo-design="elegant"] .gastrovo-announcement-popup__card { padding:calc(var(--gastrovo-space) * 1.5); }
:is(.gastrovo-menu,.gastrovo-weekly-menu)[data-gastrovo-design] :is(.gastrovo-menu__button,.gastrovo-weekly-menu__pdf-button) { background:var(--gastrovo-primary-color); color:var(--gastrovo-on-primary)!important; border-radius:var(--gastrovo-button-radius); }
:is(.gastrovo-structured-menu,.gastrovo-menu,.gastrovo-weekly-menu,.gastrovo-opening-hours,.gastrovo-announcements,.gastrovo-announcement-banner,.gastrovo-announcement-popup)[data-gastrovo-design] :is(a,button):focus-visible { outline:2px solid var(--gastrovo-text-color); outline-offset:3px; }
@media(max-width:700px) {
  .gastrovo-structured-menu[data-gastrovo-design="modern"] .gastrovo-structured-menu__items,
  .gastrovo-weekly-menu[data-gastrovo-design="modern"] .gastrovo-weekly-menu__days,
  .gastrovo-opening-hours[data-gastrovo-design="modern"] .gastrovo-opening-hours__list,
  .gastrovo-announcements[data-gastrovo-design="modern"] { grid-template-columns:1fr; }
}
/* Editorial keeps the scanned site palette and typefaces. Without JS every category remains readable. */
.gastrovo-structured-menu[data-gastrovo-design="editorial"] { width:100%; max-width:none; box-sizing:border-box; padding:clamp(16px,2vw,32px); background:color-mix(in srgb,var(--gastrovo-muted-text-color) 7%,var(--gastrovo-surface-color)); container-type:inline-size; container-name:gastrovo-editorial; }
.gastrovo-structured-menu[data-gastrovo-design="editorial"] .gastrovo-structured-menu__menu { width:100%; min-width:0; }
.gastrovo-editorial { display:grid; grid-template-columns:clamp(180px,16%,240px) minmax(0,1fr); gap:clamp(24px,4vw,64px); width:100%; box-sizing:border-box; }
.gastrovo-editorial__nav button { width:100%; box-sizing:border-box; white-space:normal; overflow-wrap:anywhere; line-height:1.45; }
.gastrovo-editorial__content .gastrovo-structured-menu__item-main { flex:1; }
.gastrovo-editorial__content .gastrovo-structured-menu__price { flex-shrink:0; }

/* Elementor themes often constrain widgets to a narrow content column. On
 * desktop, let the editorial menu use nearly the full viewport instead. */
@media (min-width:1200px) {
  .gastrovo-structured-menu[data-gastrovo-design="editorial"] {
    position:relative;
    left:50%;
    width:min(2200px,92vw);
    margin-right:0;
    margin-left:0;
    transform:translateX(-50%);
  }
}
.gastrovo-editorial__nav { display:flex; flex-direction:column; align-self:start; position:sticky; top:24px; }
.gastrovo-editorial button { font:inherit; cursor:pointer; color:var(--gastrovo-text-color); background:transparent; border:0; border-bottom:1px solid var(--gastrovo-muted-text-color); padding:16px 12px; text-align:left; }
.gastrovo-editorial button:hover { background:color-mix(in srgb,var(--gastrovo-primary-color) 8%,transparent); }
.gastrovo-editorial button[aria-pressed="true"] { color:var(--gastrovo-primary-color); font-weight:700; box-shadow:inset 3px 0 var(--gastrovo-primary-color); }
.gastrovo-editorial button:focus-visible,.gastrovo-editorial select:focus-visible { outline:2px solid var(--gastrovo-primary-color); outline-offset:3px; }
.gastrovo-editorial button:disabled { opacity:.4; cursor:default; }
.gastrovo-editorial__content { min-width:0; box-sizing:border-box; padding:clamp(20px,3vw,40px); background:var(--gastrovo-surface-color); border:1px solid color-mix(in srgb,var(--gastrovo-muted-text-color) 20%,transparent); border-top:3px solid var(--gastrovo-primary-color); box-shadow:0 8px 28px color-mix(in srgb,var(--gastrovo-text-color) 5%,transparent); }
.gastrovo-editorial__content .gastrovo-structured-menu__category { margin-top:0; }
.gastrovo-editorial__content .gastrovo-structured-menu__category h3 { margin:0; border-bottom:1px solid color-mix(in srgb,var(--gastrovo-muted-text-color) 30%,transparent); }
.gastrovo-editorial__footer button { border:1px solid color-mix(in srgb,var(--gastrovo-muted-text-color) 30%,transparent); }
.gastrovo-editorial__content [hidden] { display:none!important; }
.gastrovo-editorial__content h3 { color:var(--gastrovo-primary-color); padding-bottom:20px; }
.gastrovo-editorial__content .gastrovo-structured-menu__item { padding:22px 0; border-bottom:1px solid color-mix(in srgb,var(--gastrovo-muted-text-color) 30%,transparent); }
.gastrovo-editorial__content h4 { font-family:var(--gastrovo-heading-font); }
.gastrovo-editorial__content .gastrovo-structured-menu__price { color:var(--gastrovo-primary-color); white-space:nowrap; }
.gastrovo-editorial__footer { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:20px; }
.gastrovo-editorial__select { display:none; }
@media(max-width:900px) { .gastrovo-editorial { grid-template-columns:1fr; gap:16px; } .gastrovo-editorial__nav { display:none; } .gastrovo-editorial__select { display:block; width:100%; min-width:0; box-sizing:border-box; font:inherit; padding:14px; color:var(--gastrovo-text-color); background:var(--gastrovo-surface-color); border:1px solid var(--gastrovo-muted-text-color); } }
@media print { .gastrovo-editorial { display:block; } .gastrovo-editorial__nav,.gastrovo-editorial__select,.gastrovo-editorial__footer { display:none; } .gastrovo-editorial__content [hidden] { display:block!important; } }
@container gastrovo-editorial (max-width:780px) { .gastrovo-editorial { grid-template-columns:1fr; gap:16px; } .gastrovo-editorial__nav { display:none; } .gastrovo-editorial__select { display:block; width:100%; min-width:0; box-sizing:border-box; font:inherit; padding:14px; color:var(--gastrovo-text-color); background:var(--gastrovo-surface-color); border:1px solid var(--gastrovo-muted-text-color); } .gastrovo-editorial__content { padding:20px; } }
/* Reference proportions; all palette and font values remain website-derived. */
.gastrovo-structured-menu[data-gastrovo-design="editorial"] > header h2 { font-size:clamp(26px,2.4vw,36px); font-weight:400; line-height:1.25; }
.gastrovo-structured-menu[data-gastrovo-design="editorial"] .gastrovo-editorial__heading h3 { font-size:clamp(24px,2vw,30px); font-weight:400; line-height:1.25; color:var(--gastrovo-primary-color); }
.gastrovo-structured-menu[data-gastrovo-design="editorial"] .gastrovo-editorial__nav button { font-size:14px; border-bottom-color:color-mix(in srgb,var(--gastrovo-muted-text-color) 25%,transparent); }
.gastrovo-structured-menu[data-gastrovo-design="editorial"] .gastrovo-editorial__nav button[aria-pressed="true"] { background:transparent; }
.gastrovo-structured-menu[data-gastrovo-design="editorial"] .gastrovo-editorial__content .gastrovo-structured-menu__item h4 { font-size:20px; font-weight:400; }
.gastrovo-editorial__nav button { display:flex; align-items:center; gap:12px; min-height:53px; padding:11px 0; font-size:16px; }
.gastrovo-editorial__number { font-size:11px; min-width:22px; flex-shrink:0; }
.gastrovo-editorial__nav button[aria-pressed="true"] { box-shadow:none; background:transparent; font-weight:600; }
.gastrovo-editorial__heading { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-bottom:23px; border-bottom:1px solid color-mix(in srgb,var(--gastrovo-text-color) 25%,transparent); }
.gastrovo-editorial__heading h3 { font-size:39px; font-weight:400; line-height:1.2; margin:0; padding:0; border:0; }
.gastrovo-editorial__heading span { font-size:12px; white-space:nowrap; }
.gastrovo-editorial__content .gastrovo-structured-menu__category>h3 { display:none; }
.gastrovo-editorial__content .gastrovo-structured-menu__item h4 { font-size:23px; font-weight:400; line-height:1.3; }
.gastrovo-editorial__content .gastrovo-structured-menu__item p { font-size:14px; line-height:1.6; margin-top:7px; }
.gastrovo-editorial__content .gastrovo-structured-menu__price { font-size:16px; font-weight:400; margin-top:3px; }
.gastrovo-editorial__footer button { width:46px; height:46px; padding:0; text-align:center; }
@container gastrovo-editorial (max-width:780px) { .gastrovo-editorial__heading h3 { font-size:32px; } .gastrovo-editorial__content .gastrovo-structured-menu__item h4 { font-size:22px; } .gastrovo-editorial__content .gastrovo-structured-menu__item p { font-size:15px; } }
