/* v0.4 – designgetreue Textausgabe: Der bestehende Divi-Hintergrund bleibt vollständig erhalten. */
/* Rubrik-Block verschwindet mitsamt Ueberschrift, wenn er nicht importiert wurde. */
.gsm-menu { background:transparent !important; border:0; box-shadow:none; padding:0; margin:0; width:100%; color:#fff; text-align:center; font-family:inherit; font-size:inherit; font-weight:inherit; }
.gsm-menu .gsm-category { background:none; margin:0; padding:0; }
.gsm-menu .gsm-category + .gsm-category { margin-top:2em; }
/* H2 ist dasselbe native HTML-Element wie die vorherigen Divi-Ueberschriften. */
.gsm-menu .gsm-section { color:#fff !important; text-align:center; padding:0; margin:1.25em 0 .7em; }
.gsm-menu .gsm-category:first-child .gsm-section { margin-top:0; }
.gsm-menu .gsm-entry { display:block; margin:0 0 1.1em; padding:0; border:0; background:transparent; }
.gsm-menu .gsm-dish, .gsm-menu .gsm-description, .gsm-menu .gsm-option { display:block; text-align:center; background:transparent; padding:0 !important; border:0; margin:0 !important; font-family:inherit; font-size:inherit; line-height:1.5; font-style:normal; }
.gsm-menu .gsm-dish { font-weight:normal; }
.gsm-menu .gsm-name { font-weight:700; color:#e09900 !important; }
.gsm-menu .gsm-price { color:#fff !important; font-weight:400; white-space:nowrap; }
.gsm-menu .gsm-description, .gsm-menu .gsm-option { color:#fff !important; font-weight:400; }
.gsm-menu .gsm-option-price { color:#fff; white-space:nowrap; }
.gsm-menu .gsm-note { color:#fff !important; margin:.9em 0 !important; text-align:center; font-weight:700; padding:0 !important; }
.gsm-menu .gsm-subtitle { color:#fff !important; font-style:normal; text-align:center; margin:0 0 1.2em !important; padding:0 !important; }
.gsm-menu .gsm-tag { width:auto; height:1em; max-width:3em; vertical-align:middle; display:inline-block; margin:0 .18em; }
/* Kein erzwungenes H2-Font-Family, damit das existierende Divi-H2-Design greift. */
/* Nur kundenseitiges Verwaltungsportal – getrennt vom öffentlichen Divi-Menü. */
.gsm-portal { max-width:950px; margin:1rem auto 3rem; font-family:inherit; }
.gsm-portal h1 { margin:0 0 1rem; }
.gsm-portal h2 { margin:2rem 0 .75rem; }
.gsm-portal form:not(.gsm-inline) { padding:1.25rem; border:1px solid #d4d4d4; border-radius:8px; }
.gsm-portal label { display:block; font-weight:600; margin-bottom:.4rem; }
.gsm-portal input[type=password], .gsm-portal input[type=file] { display:block; width:100%; max-width:620px; padding:.7rem; margin:0 0 1rem; border:1px solid #aaa; border-radius:4px; color:#333; background:white; }
.gsm-portal .gsm-modes { border:0; padding:0; margin:.7em 0 1.25em; }
.gsm-portal .gsm-modes legend { font-weight:600; margin-bottom:.6em; }
.gsm-portal .gsm-modes label { font-weight:400; margin:.5em 0; }
.gsm-portal .gsm-button { background:#353535; border:0; border-radius:4px; color:white; font-size:1rem; padding:.65rem 1rem; cursor:pointer; }
.gsm-portal .gsm-button:focus-visible { outline:3px solid #a5c7ec; outline-offset:2px; }
.gsm-portal .gsm-actions { display:flex; justify-content:flex-end; }
.gsm-portal .gsm-notice { padding:1rem; border-left:4px solid #38865a; background:#f1f7f2; }
.gsm-portal .gsm-error { border-color:#c63e3e; background:#fcf0f0; }
.gsm-portal .gsm-preview { border-top:2px solid #bbb; padding-top:1rem; margin-top:2rem; }
.gsm-portal .gsm-warning { padding:.8rem 1rem; border:1px solid #cda75c; background:#fff8e8; }
.gsm-portal .gsm-preview-content { border:1px solid #ddd; padding:1.5rem; margin:1rem 0; background:#1a1b1e; color:#fff; border-radius:4px; }
.gsm-portal .gsm-preview-content h2 { color:#fff; }
.gsm-portal .gsm-history-item { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.7rem; border-bottom:1px solid #ddd; padding:.7rem .2rem; }
.gsm-portal .gsm-inline { display:inline-flex; border:none; padding:0; margin:0; }
@media(max-width:600px){ .gsm-portal .gsm-preview-content {padding:.8rem;} }

.gsm-portal .gsm-replace-hint { background:#fff5df; color:#222; border-left:4px solid #d18b00; padding:.75rem 1rem; }
.gsm-portal .gsm-check-label { display:flex; gap:.55rem; align-items:flex-start; line-height:1.45; margin:1rem 0; color:inherit; }
.gsm-portal .gsm-check-label input { flex-shrink:0; margin:.27rem 0 0; }


/* v0.4.2: Kundenupload-Seite. Absichtlich NUR unter /neue-speisekarte/.
 * Die öffentliche Speisekarte (.gsm-menu außerhalb des Portals) bleibt unberührt.
 * Fallback falls Divi das page-layout Meta noch nicht berücksichtigt. */
body.gsm-upload-page #main-content { background: #f5f6f7 !important; }
body.gsm-upload-page #main-content #sidebar { display: none !important; }
body.gsm-upload-page #main-content .container:before { display: none !important; }
body.gsm-upload-page #main-content #left-area { float: none !important; width: 100% !important; padding-right: 0 !important; }
body.gsm-upload-page #main-content .container { max-width: 1080px; }
body.gsm-upload-page #main-content .container { padding-top: 46px !important; padding-bottom: 60px !important; }
/* Das Plugin hat bereits eine eigene aussagekräftige H1. */
body.gsm-upload-page #main-content article.page > h1.entry-title,
body.gsm-upload-page #main-content #left-area > article > h1.entry-title { display:none !important; }
body.gsm-upload-page .gsm-portal {
    box-sizing:border-box; width:100%; max-width:950px; margin:0 auto 24px;
    padding:clamp(20px,4vw,42px); border-radius:12px;
    background:#fff !important; color:#26313b !important;
    box-shadow:0 9px 34px rgba(15,25,35,.075);
    line-height:1.6;
}
body.gsm-upload-page .gsm-portal > h1,
body.gsm-upload-page .gsm-portal > h2,
body.gsm-upload-page .gsm-portal > p,
body.gsm-upload-page .gsm-portal > section > h2,
body.gsm-upload-page .gsm-portal form label,
body.gsm-upload-page .gsm-portal form legend,
body.gsm-upload-page .gsm-portal .gsm-history-item,
body.gsm-upload-page .gsm-portal .gsm-history-item span,
body.gsm-upload-page .gsm-portal .gsm-history-item strong { color:#26313b !important; }
body.gsm-upload-page .gsm-portal h1 { font-size:clamp(25px,3vw,34px); line-height:1.25; font-weight:700; }
body.gsm-upload-page .gsm-portal h2 { line-height:1.3; }
body.gsm-upload-page .gsm-portal form:not(.gsm-inline) { background:#fff; border-color:#dce2e6; }
body.gsm-upload-page .gsm-portal input[type=password],
body.gsm-upload-page .gsm-portal input[type=file] { box-sizing:border-box; color:#222 !important; background:#fff !important; }
body.gsm-upload-page .gsm-portal .gsm-button { color:#fff !important; background:#303840 !important; font-weight:600; }
body.gsm-upload-page .gsm-portal .gsm-button:hover { background:#1a2026 !important; }
body.gsm-upload-page .gsm-portal .gsm-notice { color:#1e4630 !important; }
body.gsm-upload-page .gsm-portal .gsm-error { color:#7e2222 !important; }
body.gsm-upload-page .gsm-portal .gsm-warning,
body.gsm-upload-page .gsm-portal .gsm-replace-hint { color:#393027 !important; }
/* In der Vorschau bleiben die weiß/goldenen Gerichtsangaben vor dunklem Hintergrund. */
body.gsm-upload-page .gsm-portal .gsm-preview-content,
body.gsm-upload-page .gsm-portal .gsm-preview-content .gsm-section,
body.gsm-upload-page .gsm-portal .gsm-preview-content .gsm-description,
body.gsm-upload-page .gsm-portal .gsm-preview-content .gsm-option,
body.gsm-upload-page .gsm-portal .gsm-preview-content .gsm-note,
body.gsm-upload-page .gsm-portal .gsm-preview-content .gsm-price { color:#fff !important; }
body.gsm-upload-page .gsm-portal .gsm-preview-content .gsm-name { color:#e09900 !important; }
@media(max-width:767px) {
    body.gsm-upload-page #main-content .container { width:92%; padding-top:22px !important; }
    body.gsm-upload-page .gsm-portal { padding:22px 18px; }
}


/* v0.4.3 – gestalterische Korrektur ohne Eingriff in Divi-Hintergrund/Texte */
/* Jede dynamische Rubrik ist im vorhandenen Divi-Textmodul ein eigener Shortcode. */
.scheune-speisekarte-dynamisch .gsm-menu.gsm-menu-fragment {
    margin-top: clamp(48px, 5vw, 72px) !important;
    margin-bottom: 0 !important;
}
/* Auch beim Ein-Shortcode-Modus optisch deutlicher Abstand zwischen Rubriken. */
.gsm-menu .gsm-category + .gsm-category {
    margin-top: clamp(48px, 5vw, 72px) !important;
}
.gsm-menu .gsm-category .gsm-section {
    padding-top: 0 !important;
    margin-bottom: .85em !important;
}
.gsm-menu .gsm-tag {
    width: 22px !important;
    height: 22px !important;
    max-width: none !important;
    vertical-align: middle !important;
    object-fit: contain !important;
    display: inline-block !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    filter: none !important;
    margin: 0 2px !important;
}
/* Eine einzige Legende hinter dem letzten vorhandenen Abschnitt. */
.gsm-menu .gsm-legend {
    display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
    gap: 9px 22px;
    margin: clamp(42px, 5vw, 70px) auto 24px !important;
    padding: 18px 0 4px !important;
    border-top:1px solid rgba(255,255,255,.25);
    max-width: 680px; width: min(100%, 680px);
    color: #fff !important;
    font-size: .95em;
    font-weight: 400;
    line-height: 1.5;
    text-align:center;
}
.gsm-menu .gsm-legend .gsm-legend-item {
    display:inline-flex; align-items:center; justify-content:center;
    gap: 5px; color: #fff !important;
    white-space:nowrap;
}
.gsm-menu .gsm-legend .gsm-tag { width:26px !important; height:26px !important; }
/* v0.4.2 konnte durch .gsm-menu {background:transparent!important} nicht greifen.
 * Deshalb hier die Vorschaufläche gezielt mit stärkerer Spezifität setzen. */
body.gsm-upload-page .gsm-portal .gsm-preview-content.gsm-menu,
.gsm-portal .gsm-preview-content.gsm-menu {
    background: #141619 !important;
    color: #fff !important;
    padding: clamp(20px,4vw,38px) !important;
    border: 1px solid #34373c !important;
    border-radius: 7px !important;
    overflow: hidden;
}
/* Die Vorschau ist keine Divi-Live-Seite; H2 eindeutig lesbar halten. */
.gsm-portal .gsm-preview-content.gsm-menu .gsm-section,
.gsm-portal .gsm-preview-content.gsm-menu .gsm-subtitle,
.gsm-portal .gsm-preview-content.gsm-menu .gsm-description,
.gsm-portal .gsm-preview-content.gsm-menu .gsm-option,
.gsm-portal .gsm-preview-content.gsm-menu .gsm-price {
    color: #fff !important;
}
.gsm-portal .gsm-preview-content.gsm-menu .gsm-name { color: #e09900 !important; }
@media (max-width: 767px) {
    .scheune-speisekarte-dynamisch .gsm-menu.gsm-menu-fragment,
    .gsm-menu .gsm-category + .gsm-category { margin-top: 44px !important; }
    .gsm-menu .gsm-legend { gap: 10px 15px; font-size:.88em; }
    .gsm-menu .gsm-legend .gsm-tag {width:24px!important;height:24px!important;}
}


/* v0.4.4 – Gerichts-Unterzeilen nicht fett; gilt für Live-Seite und Vorschau.
 * !important ist nur hier nötig, um globale Divi-Textmodul-Regeln zu übersteuern.
 * Gerichtsnamen, Preise, Rubriktitel und spezielle Hinweise bleiben unverändert. */
.gsm-menu p.gsm-description,
.gsm-menu p.gsm-option,
.gsm-portal .gsm-preview-content.gsm-menu p.gsm-description,
.gsm-portal .gsm-preview-content.gsm-menu p.gsm-option {
    font-weight: 400 !important;
    font-style: normal !important;
}
/* Auch von Themes evtl. injizierte Fettschrift in den Unterzeilen entschärfen. */
.gsm-menu p.gsm-description strong,
.gsm-menu p.gsm-description b,
.gsm-menu p.gsm-option strong,
.gsm-menu p.gsm-option b {
    font-weight: 400 !important;
}
/* Gleiche Bildboxen. Die PNGs wurden zusätzlich auf identische optische
 * Symbolhöhe normiert; dadurch ist glutenfrei nicht mehr deutlich kleiner. */
.gsm-menu img.gsm-tag {
    width: 22px !important;
    height: 22px !important;
    object-fit: contain !important;
}
.gsm-menu .gsm-legend img.gsm-tag {
    width: 26px !important;
    height: 26px !important;
}
@media (max-width: 767px) {
    .gsm-menu .gsm-legend img.gsm-tag {
        width: 24px !important;
        height: 24px !important;
    }
}


/* v0.4.5 – Die Namen hatten bereits dieselbe CSS-Grundgroesse wie die
 * Beschreibungen, wirken aber durch die goldene Farbe und den Glyphenschnitt
 * optisch kleiner. Nur die goldenen Gerichtsnamen optisch um 8% anheben.
 * Preise, weisse Beschreibungstexte, Icons und Divi-Ueberschriften bleiben gleich.
 * Gilt zugleich fuer Live-Karte und dunkle Importvorschau. */
.gsm-menu .gsm-dish .gsm-name {
    font-size: 1.08em !important;
}


/* v0.4.6: Gerichtsnamen nochmals 8 % groesser als in 0.4.5
 * (1.08 x 1.08 = 1.1664, bezogen auf die unveraenderte Grundgroesse).
 * Nur die Preise der Gerichte fett; Zusatzpreise in Unterzeilen bleiben normal.
 * Gilt fuer Vorschau und oeffentliche Speisekarte, ohne Layout- oder Iconaenderung. */
.gsm-menu .gsm-dish .gsm-name {
    font-size: 1.1664em !important;
}
.gsm-menu .gsm-dish .gsm-price {
    font-weight: 700 !important;
}
