/**
 * Onepager – einheitliches unsichtbares Raster (7 % Seitenrand, 5 % Abstände)
 * Gilt für .onepager-wrapper und #live-preview (Editor-Vorschau)
 */
:root,
[class$="-editor-shell"],
.onepager-wrapper,
#live-preview,
#pb-einleitung-preview {
    --op-inset: 7%;
    --op-grid-gap: 5%;
    --op-block-gap: 48px;
    --op-column-gap: var(--op-grid-gap);
    --op-content-max: 1000px;
    --op-stack-gap: 5%;
    --op-global-text: #336699;
    --op-editor-label-before: 24px;
    --op-editor-label-after: 10px;
}

/* ── Editor: einheitliche Label-Abstände (alle Onepager & Artikel) ── */
[class$="-editor-shell"] #onepager-form label:not(:has(input[type="checkbox"])):not(:has(input[type="radio"])):not([style*="margin-right"]) {
    display: block;
    margin-bottom: 10px !important;
}

[class$="-editor-shell"] #onepager-form label:not(:has(input[type="checkbox"])):not(:has(input[type="radio"])):not([style*="margin-right"]):not([style*="margin-top"]) {
    margin-top: 24px !important;
}

[class$="-editor-shell"] #onepager-form > label:first-of-type:not([style*="margin-top"]) {
    margin-top: 0 !important;
}

[class$="-editor-shell"] .block-settings > label,
[class$="-editor-shell"] .block-settings label:not(:has(input)) {
    display: block;
    margin-top: 24px !important;
    margin-bottom: 10px !important;
    color: #fff;
}

[class$="-editor-shell"] .block-settings > label:first-child {
    margin-top: 0 !important;
}

[class$="-editor-shell"] .onepager-editor-field-label {
    display: block;
    margin-top: 24px;
    margin-bottom: 10px;
    color: #fff;
}

/* Kapitel: Speichername + URL */
[class$="-editor-shell"] .onepager-editor-chapter--name-url {
    margin: 8px 0 28px;
    padding: 0;
    box-sizing: border-box;
}
[class$="-editor-shell"] .onepager-editor-chapter__title {
    margin: 0 0 14px;
    font-size: 1.05rem;
    font-weight: 400;
    line-height: 1.25;
    color: #D4272A;
}
[class$="-editor-shell"] .onepager-editor-chapter--name-url > label {
    display: block;
    margin: 12px 0 6px;
    color: #fff;
}
[class$="-editor-shell"] .onepager-editor-chapter--name-url > input[type="text"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
[class$="-editor-shell"] .onepager-editor-chapter__hint {
    font-size: 0.85em;
    color: rgba(255, 255, 255, 0.88);
    margin-top: 6px;
    line-height: 1.4;
}

[class$="-editor-shell"] .onepager-editor-publish-box {
    max-width: none;
    width: auto;
    margin: 30px 0 24px;
    padding: 22px 24px;
    border: 1px solid rgba(212, 39, 42, 0.45);
    border-radius: 0;
    text-align: left;
    color: #0b3f72;
    background: rgba(212, 39, 42, 0.06);
    box-sizing: border-box;
}

[class$="-editor-shell"] .onepager-editor-publish-box__title {
    margin: 0 0 16px;
    color: #fff;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1.3;
}

[class$="-editor-shell"] .onepager-editor-publish-box h4 + .onepager-editor-publish-text .onepager-editor-field-label,
[class$="-editor-shell"] .onepager-editor-publish-box h4 + .onepager-editor-field-label,
[class$="-editor-shell"] .onepager-editor-publish-box__title + .onepager-editor-publish-text .onepager-editor-field-label {
    margin-top: 0;
}

[class$="-editor-shell"] .onepager-editor-label-body {
    display: block;
    margin-top: 4px;
    font-weight: 400;
}

[class$="-editor-shell"] .onepager-editor-publish-text {
    margin: 0 0 14px;
    font-size: 0.95em;
    line-height: 1.5;
    font-weight: 400;
}

[class$="-editor-shell"] .onepager-editor-publish-text:last-child {
    margin-bottom: 0;
}

[class$="-editor-shell"] .onepager-editor-publish-text--hint,
[class$="-editor-shell"] .onepager-editor-publish-text--pflicht {
    font-size: 0.95em;
    color: #0b3f72;
}

[class$="-editor-shell"] .onepager-editor-publish-text--pflicht {
    padding-left: 12px;
    border-left: 3px solid #99ff46;
}

[class$="-editor-shell"] .onepager-editor-field-label--plain,
[class$="-editor-shell"] .onepager-editor-publish-text .onepager-editor-field-label {
    display: block;
    margin: 0 0 6px;
    color: #99ff46;
    font-size: 1.05em;
    font-weight: 400;
    letter-spacing: normal;
    font-stretch: normal;
}

[class$="-editor-shell"] .onepager-editor-publish-box .onepager-editor-label-body {
    color: #0b3f72;
}

[class$="-editor-shell"] #onepager-form > label:has(input[type="checkbox"]),
[class$="-editor-shell"] #onepager-form > label:has(input[type="radio"]),
[class$="-editor-shell"] .ausrichtung-radios label {
    margin-top: 16px !important;
    margin-bottom: 8px !important;
}

/* Header-Hinweis über Block-Buttons (alle Onepager-Editoren) */
[class$="-editor-shell"] .add-block-btn-header-wrap {
    flex: 1 1 100%;
    margin: 0 10px 6px;
}
[class$="-editor-shell"] .add-block-btn--header-status {
    display: block;
    width: 100%;
    margin: 0 0 10px;
    text-align: center;
    cursor: default;
    pointer-events: none;
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.38) !important;
    color: rgba(255, 255, 255, 0.72) !important;
    opacity: 0.92;
    box-shadow: none;
}
[class$="-editor-shell"] .add-block-btn-header-hint {
    margin: 8px 0 4px;
    text-align: center;
    font-size: 0.92em;
    line-height: 1.4;
    color: rgba(255, 255, 255, 0.72);
    opacity: 0.92;
}

[class$="-editor-shell"] .add-block-btn--header-status:hover {
    background: transparent !important;
    border-color: rgba(255, 255, 255, 0.38) !important;
    color: rgba(255, 255, 255, 0.72) !important;
}

[class$="-editor-shell"] .add-block-btn-header-wrap .add-block-btn--teaser-jump {
    display: block;
    width: 100%;
    margin: 0 0 10px;
    text-align: center;
}

[class$="-editor-shell"] .add-block-btn--teaser-jump.is-active {
    outline: 2px solid rgba(153, 255, 70, 0.75);
    outline-offset: 2px;
}

[class$="-editor-shell"] .op-teaser-panel--modul,
[class$="-editor-shell"] .op-editor-modul-panel {
    border: 1px solid #ddd;
    padding: 50px;
    margin: 30px 0;
    box-sizing: border-box;
    max-width: 100%;
    overflow: hidden;
}

[class$="-editor-shell"] .op-teaser-panel--modul.is-hidden {
    display: none;
}

[class$="-editor-shell"] .op-vorschau-heading {
    margin-top: 32px;
    margin-bottom: 16px;
    font-size: 1.85rem;
    font-weight: 400;
    line-height: 1.25;
    color: #D4272A;
}



.vf-shell-fields > label {
    display: block;
    margin-top: var(--op-editor-label-before);
    margin-bottom: var(--op-editor-label-after);
    clear: both;
}

.vf-shell-fields > label:first-child {
    margin-top: 0;
}

.vf-shell-title-row label {
    display: block;
    margin-top: 0;
    margin-bottom: var(--op-editor-label-after);
}

.artikel-editor-main label:not(:has(input[type="checkbox"])):not(:has(input[type="radio"])) {
    display: block;
    margin-top: var(--op-editor-label-before);
    margin-bottom: var(--op-editor-label-after);
}

.artikel-editor-main > label:first-of-type,
.artikel-editor-main > form > label:first-of-type,
.artikel-editor-main fieldset > label:first-of-type {
    margin-top: 0;
}

.pb-rezept-block label,
.pb-rezept-meta label {
    display: block;
    margin-top: var(--op-editor-label-before);
    margin-bottom: var(--op-editor-label-after);
}

.pb-rezept-block label:first-of-type {
    margin-top: 0;
}

/* Editor-Vorschau: globale Textfarbe schlägt layout.css (h3 = weiß) */
#live-preview .preview-block .op-text-panel,
#live-preview .preview-block .preview-text,
#live-preview .preview-block .text-column,
#pb-einleitung-preview .preview-block .op-text-panel,
#pb-einleitung-preview .preview-block .preview-text,
#pb-einleitung-preview .preview-block .text-column {
    color: var(--op-global-text) !important;
}

#live-preview .preview-block .op-text-panel h2,
#live-preview .preview-block .op-text-panel h3,
#live-preview .preview-block .op-text-panel p,
#live-preview .preview-block .preview-text > h2,
#live-preview .preview-block .preview-text .editable-headline,
#live-preview .preview-block .text-column h3,
#live-preview .preview-block .text-column p,
#live-preview .preview-block .editable-subline,
#live-preview .preview-block .editable-text,
#live-preview .preview-block .op-subline,
#pb-einleitung-preview .preview-block .op-text-panel h2,
#pb-einleitung-preview .preview-block .op-text-panel p,
#pb-einleitung-preview .preview-block .editable-subline,
#pb-einleitung-preview .preview-block .editable-text,
#pb-einleitung-preview .preview-block .op-subline {
    color: var(--op-global-text) !important;
}

/* Headline → Unterzeile enger; Unterzeile → Lauftext weiter */
.onepager-wrapper .op-text-panel .editable-headline,
.onepager-wrapper .op-text-panel > h2,
#live-preview .op-text-panel .editable-headline,
#live-preview .op-text-panel > h2,
#pb-einleitung-preview .op-text-panel .editable-headline,
#pb-einleitung-preview .op-text-panel > h2 {
    margin: 0 0 0.42em !important;
}

.onepager-wrapper .op-subline,
.onepager-wrapper .editable-subline.op-subline,
.onepager-wrapper .text-column h3,
.onepager-wrapper .text-column .op-subline,
.onepager-wrapper .op-text-panel h3.op-subline,
#live-preview .preview-block .op-subline,
#live-preview .preview-block .editable-subline.op-subline,
#live-preview .text-column h3,
#live-preview .text-column .op-subline,
#pb-einleitung-preview .preview-block .op-subline,
#pb-einleitung-preview .preview-block .editable-subline.op-subline {
    font-family: titling-gothic-fb-extended, sans-serif;
    font-weight: 400;
    opacity: 0.95;
    margin: 0 0 0.95em !important;
    line-height: 1.35;
}

.onepager-wrapper .text-column h3,
.onepager-wrapper .text-column .op-subline,
#live-preview .text-column h3,
#live-preview .text-column .op-subline {
    font-size: 1.48em;
}

.onepager-wrapper .op-text-panel .editable-text,
.onepager-wrapper .op-text-panel > p,
.onepager-wrapper .text-column p,
.onepager-wrapper .text-column .editable-text,
#live-preview .op-text-panel .editable-text,
#live-preview .op-text-panel > p,
#live-preview .text-column p,
#live-preview .text-column .editable-text,
#pb-einleitung-preview .op-text-panel .editable-text,
#pb-einleitung-preview .op-text-panel > p {
    margin: 0 !important;
    font-size: 1.08em;
    line-height: 1.68;
}

/* ── Header ── */
.onepager-wrapper .header-preview,
#live-preview .header-preview {
    width: 100%;
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
}

.onepager-wrapper .header-content,
#live-preview .header-content {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: var(--op-inset);
    display: flex;
    gap: var(--op-stack-gap);
    box-sizing: border-box;
}

.onepager-wrapper .header-text,
#live-preview .header-text,
#live-preview .header-content .header-text {
    font-family: titling-gothic-fb-extended, sans-serif;
    font-style: normal;
}

.onepager-wrapper .header-text h1,
#live-preview .header-content h1,
#live-preview .header-text h1 {
    font-family: inherit;
    font-size: clamp(2.8rem, 6vw, 4.0rem);
    font-weight: 400;
    margin: 0;
    line-height: 1.08;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.7);
}

.onepager-wrapper .header-text h2,
#live-preview .header-content h2,
#live-preview .header-text h2 {
    font-family: inherit;
    font-size: clamp(1.7rem, 4.6vw, 2.7rem);
    font-weight: 400;
    margin: 0.35em 0 0;
    line-height: 1.12;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.7);
}

/* Nur Slogan sichtbar (Firmenname im Header ausgeblendet) */
.onepager-wrapper .header-text.is-slogan-only h2,
#live-preview .header-text.is-slogan-only h2 {
    font-size: clamp(2.15rem, 4.8vw, 2.8rem);
    margin: 0;
    line-height: 1.12;
}

/* ── Teaser ── */
.onepager-wrapper .teaser,
#live-preview .teaser {
    width: 100%;
    padding: var(--op-block-gap) var(--op-inset);
    margin: 0 auto var(--op-block-gap);
    max-width: var(--op-content-max);
    font-size: 1.35em;
    line-height: 1.6;
    box-sizing: border-box;
}

.onepager-wrapper .header-text,
#live-preview .header-text {
    width: 100%;
    box-sizing: border-box;
}

/* ── Text-Block ── */
.onepager-wrapper .preview-text,
#live-preview .preview-text {
    margin: var(--op-block-gap) 0;
    padding: var(--op-block-gap) var(--op-inset);
    background: transparent;
    box-sizing: border-box;
    border-radius: 0;
}

.onepager-wrapper .preview-text > h2,
.onepager-wrapper .preview-text > .op-text-headline,
#live-preview .preview-text > h2,
#live-preview .preview-text > .op-text-headline,
#live-preview .preview-text > .editable-headline {
    font-size: 2em;
    text-align: center;
    margin: 0 0 var(--op-grid-gap);
}

.onepager-wrapper .op-columns,
#live-preview .op-columns,
#live-preview .spalten-container {
    display: flex;
    gap: var(--op-column-gap);
    flex-wrap: wrap;
}

.onepager-wrapper .text-column,
#live-preview .text-column {
    flex: 1;
    min-width: min(280px, 100%);
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

/* Gespeicherte View: Unterzeilen (h3) erben globale Textfarbe statt layout.css-Weiß */
.onepager-wrapper .op-text-panel h3,
.onepager-wrapper .preview-text h3,
.onepager-wrapper .text-bild-container h3,
.onepager-wrapper .op-subline,
.onepager-wrapper .text-column h3 {
    color: inherit !important;
}


/* ── Hero / Vollbild ── */
.onepager-wrapper .hero-container,
#live-preview .hero-container,
#live-preview .op-hero-wrap {
    position: relative;
    aspect-ratio: 16 / 9;
    width: 100%;
    margin: var(--op-block-gap) 0;
    padding: var(--op-inset);
    background-size: cover;
    background-position: center;
    overflow: hidden;
    box-sizing: border-box;
    border-radius: 0;
    box-shadow: none;
}

.onepager-wrapper .hero-text,
#live-preview .hero-text,
#live-preview .op-hero-text {
    position: absolute;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.7);
}

.onepager-wrapper .hero-text h1,
.onepager-wrapper .hero-text h2,
#live-preview .op-hero-text h2 {
    margin: 0;
    font-size: clamp(2rem, 5vw, 3em);
}

/* ── Text-Bild / Bild-Text (gleicher Innenabstand wie Text-Block) ── */
.onepager-wrapper .text-bild-container,
#live-preview .text-bild-container {
    display: flex;
    gap: var(--op-column-gap);
    align-items: center;
    margin: var(--op-block-gap) 0;
    padding: var(--op-block-gap) var(--op-inset);
    box-sizing: border-box;
    background: transparent;
}
/* Media steht im DOM zuerst; Text/Bild = Bild rechts */
.onepager-wrapper .text-bild-container--text-bild,
#live-preview .text-bild-container--text-bild {
    flex-direction: row-reverse;
}

.onepager-wrapper .text-bild-container .op-text-panel,
#live-preview .text-bild-container .op-text-panel {
    flex: 1;
    padding: 0;
    margin: 0;
    min-width: 0;
}

.onepager-wrapper .text-bild-container .op-media-panel {
    flex: 1 1 0;
    min-width: 0;
    width: 100%;
    aspect-ratio: 4 / 3;
    height: auto;
    min-height: 0;
    background-size: cover;
    background-position: center;
}

#live-preview .text-bild-container .op-media-panel {
    flex: 1 1 0;
    min-width: 0;
    width: 100%;
    aspect-ratio: 4 / 3;
    height: auto;
    min-height: 0;
    max-height: none;
    position: relative;
    overflow: hidden;
    background: #ddd;
    background-size: cover;
    background-position: center;
}

#live-preview .text-bild-container .op-media-panel.is-empty {
    background: #ddd;
}

#live-preview .text-bild-container .op-media-panel-img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* ── Slider (Vollbreite) ── */
.onepager-wrapper .slider-preview-container,
#live-preview .slider-preview-container {
    position: relative;
    aspect-ratio: 16 / 9;
    width: 100%;
    margin: var(--op-block-gap) 0;
    padding: 0;
    background: #000;
    overflow: hidden;
    border-radius: 0;
    box-shadow: none;
}

.onepager-wrapper .slider-prev,
#live-preview .slider-prev {
    left: var(--op-inset);
}

.onepager-wrapper .slider-next,
#live-preview .slider-next {
    right: var(--op-inset);
}

.onepager-wrapper .slider-dots,
#live-preview .slider-dots {
    position: absolute;
    bottom: 15px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
}

/* ── Kontakt ── */
.onepager-wrapper .onepager-kontakt,
#live-preview .onepager-kontakt {
    margin: var(--op-block-gap) 0;
    padding: var(--op-block-gap) var(--op-inset);
    text-align: center;
    background: transparent;
    box-sizing: border-box;
    border-radius: 0;
}

.onepager-wrapper .onepager-kontakt h3,
#live-preview .onepager-kontakt h3 {
    margin: 0 0 var(--op-grid-gap);
}

.onepager-wrapper .onepager-kontakt p,
#live-preview .onepager-kontakt p {
    margin: 0 0 0.75em;
}

/* ── Impressum (gesetzlich, unten) ── */
.onepager-wrapper .onepager-impressum,
#live-preview .onepager-impressum {
    margin: var(--op-block-gap) 0 0;
    padding: calc(var(--op-block-gap) * 0.7) var(--op-inset) var(--op-block-gap);
    text-align: center;
    box-sizing: border-box;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
    font-size: 0.92em;
    line-height: 1.5;
}

.onepager-wrapper .onepager-impressum h3,
#live-preview .onepager-impressum h3 {
    margin: 0 0 0.6em;
    font-size: 1.15em;
    font-weight: 600;
}

.onepager-wrapper .onepager-impressum address,
#live-preview .onepager-impressum address {
    font-style: normal;
    margin: 0 0 1em;
}

.onepager-wrapper .onepager-impressum p,
#live-preview .onepager-impressum p {
    margin: 0 0 0.7em;
}

.onepager-wrapper .onepager-impressum a,
#live-preview .onepager-impressum a {
    color: inherit;
    text-decoration: underline;
}

.onepager-wrapper .onepager-impressum-warn,
#live-preview .onepager-impressum-warn {
    color: #b42318;
}

/* ── Kollektion (nutzt gleiche Tokens) ── */
.onepager-wrapper .onepager-kollektion-wrap,
#live-preview .onepager-kollektion-wrap {
    --onepager-inset: var(--op-inset);
    --onepager-grid-gap: var(--op-grid-gap);
    width: 100%;
    margin: var(--op-block-gap) 0;
    box-sizing: border-box;
}

.onepager-wrapper .onepager-kollektion-grid,
#live-preview .onepager-kollektion-grid {
    display: grid;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.onepager-wrapper .onepager-kollektion-grid[data-cols="2"],
#live-preview .onepager-kollektion-grid[data-cols="2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.onepager-wrapper .onepager-kollektion-grid[data-cols="3"],
#live-preview .onepager-kollektion-grid[data-cols="3"] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.onepager-wrapper .onepager-kollektion-wrap.is-mit-abstand,
#live-preview .onepager-kollektion-wrap.is-mit-abstand {
    padding: 0 var(--op-inset);
}

.onepager-wrapper .onepager-kollektion-wrap.is-mit-abstand .onepager-kollektion-grid,
#live-preview .onepager-kollektion-wrap.is-mit-abstand .onepager-kollektion-grid {
    column-gap: var(--op-grid-gap);
    row-gap: var(--op-grid-gap);
}

.onepager-wrapper .onepager-kollektion-wrap.is-streifen,
#live-preview .onepager-kollektion-wrap.is-streifen {
    padding: 0;
}

.onepager-wrapper .onepager-kollektion-wrap.is-streifen .onepager-kollektion-headline,
#live-preview .onepager-kollektion-wrap.is-streifen .onepager-kollektion-headline {
    padding: 0 var(--op-inset);
}

.onepager-wrapper .onepager-kollektion-wrap.is-streifen .onepager-kollektion-grid,
#live-preview .onepager-kollektion-wrap.is-streifen .onepager-kollektion-grid {
    column-gap: 0;
    row-gap: var(--op-grid-gap);
}

.onepager-wrapper .onepager-kollektion-headline,
#live-preview .onepager-kollektion-headline {
    text-align: center;
    font-size: 1.75em;
    margin: 0 0 1.25em;
}

.onepager-wrapper .onepager-kollektion-card,
#live-preview .onepager-kollektion-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.2s;
}

.onepager-wrapper a.onepager-kollektion-card:hover,
#live-preview a.onepager-kollektion-card:hover {
    opacity: 0.88;
}

.onepager-wrapper .onepager-kollektion-media,
#live-preview .onepager-kollektion-media {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    margin: 0;
    border-radius: 0;
    background: transparent;
}

.onepager-wrapper .onepager-kollektion-media img,
#live-preview .onepager-kollektion-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 0;
}

.onepager-wrapper .onepager-kollektion-name,
#live-preview .onepager-kollektion-name {
    font-weight: 600;
    font-size: 1.05em;
    padding: 10px 0 2px;
    line-height: 1.3;
}

.onepager-wrapper .onepager-kollektion-preis,
#live-preview .onepager-kollektion-preis {
    padding: 0 0 8px;
    font-size: 0.95em;
    opacity: 0.88;
    font-weight: 600;
}

@media (max-width: 768px) {
    .onepager-wrapper .onepager-kollektion-grid[data-cols="3"],
    #live-preview .onepager-kollektion-grid[data-cols="3"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .onepager-wrapper .onepager-kollektion-grid,
    #live-preview .onepager-kollektion-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ── Speisekarte & Tagesangebote ── */
.onepager-wrapper .onepager-speisekarte-wrap,
#live-preview .onepager-speisekarte-wrap {
    width: 100%;
    margin: var(--op-block-gap) 0;
    padding: 0 var(--op-inset);
    box-sizing: border-box;
}

.onepager-wrapper .onepager-speisekarte-headline,
#live-preview .onepager-speisekarte-headline {
    text-align: center;
    font-size: 1.75em;
    margin: 0 0 0.85em;
}

.onepager-wrapper .onepager-speisekarte-kategorie + .onepager-speisekarte-kategorie,
#live-preview .onepager-speisekarte-kategorie + .onepager-speisekarte-kategorie {
    margin-top: 2rem;
}

.onepager-wrapper .onepager-speisekarte-kategorie .onepager-speisekarte-headline,
#live-preview .onepager-speisekarte-kategorie .onepager-speisekarte-headline {
    margin-top: 0;
}

.onepager-wrapper .onepager-speisekarte-list,
#live-preview .onepager-speisekarte-list {
    max-width: 720px;
    margin: 0 auto;
}

.onepager-wrapper .onepager-speisekarte-row,
#live-preview .onepager-speisekarte-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.65rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.onepager-wrapper .onepager-speisekarte-row:last-child,
#live-preview .onepager-speisekarte-row:last-child {
    border-bottom: none;
}

.onepager-wrapper .onepager-speisekarte-main,
#live-preview .onepager-speisekarte-main {
    flex: 1 1 auto;
    min-width: 0;
}

.onepager-wrapper .onepager-speisekarte-name,
#live-preview .onepager-speisekarte-name {
    display: block;
    font-weight: 400;
    line-height: 1.35;
}

.onepager-wrapper .onepager-speisekarte-beschreibung,
#live-preview .onepager-speisekarte-beschreibung {
    display: block;
    margin-top: 0.15em;
    font-size: 0.92em;
    opacity: 0.82;
    line-height: 1.35;
}

.onepager-wrapper .onepager-speisekarte-preis-wrap,
#live-preview .onepager-speisekarte-preis-wrap {
    flex: 0 0 auto;
    text-align: right;
}

.onepager-wrapper .onepager-speisekarte-preis,
#live-preview .onepager-speisekarte-preis {
    font-weight: 400;
    white-space: nowrap;
}

/* ── Karte (OpenStreetMap) ── */
.onepager-wrapper .onepager-karte-wrap,
#live-preview .onepager-karte-wrap {
    height: 450px;
    margin: var(--op-block-gap) 0;
    padding: 0 var(--op-inset);
    box-sizing: border-box;
}

.onepager-wrapper .onepager-karte-map,
#live-preview .onepager-karte-map {
    height: 100%;
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
    background: #eef2f5;
}

@media (max-width: 768px) {
    .onepager-wrapper .op-columns,
    #live-preview .op-columns,
    #live-preview .spalten-container {
        flex-direction: column;
    }
}

/* ── View: Owner-Aktionsleiste (nur eingeloggter Ersteller) ── */
.onepager-view-owner-bar {
    margin: var(--op-block-gap) var(--op-inset) calc(var(--op-block-gap) + 12px);
    padding: 28px 32px;
    border-top: 2px solid rgba(51, 102, 153, 0.15);
    background: #f7f9fc;
    border-radius: 12px;
    text-align: center;
    box-sizing: border-box;
}

.onepager-view-owner-flash {
    margin: 0 0 16px;
    padding: 10px 14px;
    background: #e8f5e9;
    color: #2e7d32;
    border-radius: 8px;
    font-size: 0.95em;
}

.onepager-view-owner-title {
    margin: 0 0 8px;
    font-size: 1.35em;
    font-weight: 600;
    color: inherit;
}

.onepager-view-owner-lead {
    margin: 0 auto 18px;
    max-width: 520px;
    font-size: 0.98em;
    line-height: 1.55;
    opacity: 0.88;
}

.onepager-view-owner-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 24px;
    margin-bottom: 22px;
}

.onepager-view-owner-link {
    display: inline-block;
    color: #336699;
    font-weight: 600;
    text-decoration: none;
    padding: 6px 12px;
    border-radius: 4px;
}

.onepager-view-owner-link:hover,
.onepager-view-owner-link:focus {
    text-decoration: none;
    color: #fff !important;
    background: rgb(26 150 173 / 62%);
}

.onepager-view-owner-form {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.onepager-view-owner-laufzeit {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.95em;
}

.onepager-view-owner-laufzeit input {
    width: 72px;
    padding: 8px 10px;
    border: 1px solid #ccd6e0;
    border-radius: 6px;
    font-size: 1em;
}

.onepager-view-owner-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    margin-top: 4px;
    clear: both;
}

.onepager-view-owner-price {
    display: block;
    margin: 0;
    padding: 0 12px;
    max-width: 36em;
    font-size: 0.92em;
    line-height: 1.45;
    opacity: 0.85;
    position: relative;
    z-index: 0;
}

.onepager-view-owner-note {
    margin: 0;
    font-size: 0.92em;
    opacity: 0.85;
}

.onepager-view-owner-btn {
    display: inline-block;
    position: relative;
    z-index: 1;
    margin: 0;
    padding: 14px 32px;
    border: none;
    border-radius: 8px;
    font-size: 1.05em;
    font-weight: 600;
    cursor: pointer;
    color: #fff;
    text-decoration: none;
    box-sizing: border-box;
    max-width: 100%;
}

.onepager-view-owner-btn.is-cart {
    background: #D4272A;
}

.onepager-view-owner-btn.is-cart:hover {
    background: #b52023;
}

.onepager-view-owner-btn.is-publish {
    background: #2e7d32;
}

.onepager-view-owner-btn.is-publish:hover {
    background: #256628;
}

/* ── Veranstalter: Alle Kurse über der Adresse ── */
.onepager-wrapper .onepager-kurse-accordion,
#live-preview .onepager-kurse-accordion {
    margin: var(--op-block-gap) 0 0;
    padding: 0 var(--op-inset);
    box-sizing: border-box;
}

.onepager-wrapper .onepager-kurse-toggle,
#live-preview .onepager-kurse-toggle {
    display: block;
    width: 100%;
    padding: 16px 20px;
    border: 1px solid currentColor;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 1.15em;
    text-align: center;
    cursor: pointer;
}

.onepager-wrapper .onepager-kurse-toggle:hover,
#live-preview .onepager-kurse-toggle:hover,
.onepager-wrapper .onepager-kurse-accordion.is-open .onepager-kurse-toggle,
#live-preview .onepager-kurse-accordion.is-open .onepager-kurse-toggle {
    background: rgba(51, 102, 153, 0.08);
}

.onepager-wrapper .onepager-kurse-toggle-count,
#live-preview .onepager-kurse-toggle-count {
    opacity: 0.75;
    font-size: 0.9em;
}

.onepager-wrapper .onepager-kurse-panel,
#live-preview .onepager-kurse-panel {
    padding: 18px 0 8px;
    border-bottom: 1px solid rgba(51, 102, 153, 0.18);
}

.onepager-wrapper .onepager-kurse-filters,
#live-preview .onepager-kurse-filters {
    margin: 0 0 16px;
}

.onepager-wrapper .onepager-kurse-art,
#live-preview .onepager-kurse-art {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 14px;
}

.onepager-wrapper .onepager-kurse-art-btn,
#live-preview .onepager-kurse-art-btn,
.onepager-wrapper .onepager-kurse-alter-reset,
#live-preview .onepager-kurse-alter-reset {
    padding: 8px 14px;
    border: 1px solid currentColor;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 0.92em;
    cursor: pointer;
}

.onepager-wrapper .onepager-kurse-art-btn.is-active,
#live-preview .onepager-kurse-art-btn.is-active {
    background: rgba(51, 102, 153, 0.12);
    font-weight: 600;
}

.onepager-wrapper .onepager-kurse-alter,
#live-preview .onepager-kurse-alter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin: 0 0 10px;
}

.onepager-wrapper .onepager-kurse-alter input[type="number"],
#live-preview .onepager-kurse-alter input[type="number"],
.onepager-wrapper .onepager-kurse-alter select,
#live-preview .onepager-kurse-alter select {
    padding: 8px 10px;
    border: 1px solid currentColor;
    background: #fff;
    color: inherit;
    font: inherit;
}

.onepager-wrapper .onepager-kurse-alter input[type="number"],
#live-preview .onepager-kurse-alter input[type="number"] {
    width: 72px;
}

.onepager-wrapper .onepager-kurse-hint,
#live-preview .onepager-kurse-hint,
.onepager-wrapper .onepager-kurse-empty,
#live-preview .onepager-kurse-empty {
    margin: 0 0 12px;
    font-size: 0.92em;
    opacity: 0.88;
}

.onepager-wrapper .onepager-kurse-list,
#live-preview .onepager-kurse-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.onepager-wrapper .onepager-kurs-item,
#live-preview .onepager-kurs-item {
    padding: 14px 0;
    border-top: 1px solid rgba(51, 102, 153, 0.16);
}

.onepager-wrapper .onepager-kurs-item-toggle,
#live-preview .onepager-kurs-item-toggle {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    font-size: 1.12em;
    text-align: left;
    cursor: pointer;
}

.onepager-wrapper .onepager-kurs-item-toggle:hover .onepager-kurs-item-title,
#live-preview .onepager-kurs-item-toggle:hover .onepager-kurs-item-title {
    text-decoration: underline;
}

.onepager-wrapper .onepager-kurs-item-meta,
#live-preview .onepager-kurs-item-meta {
    margin-top: 6px;
    font-size: 0.92em;
    opacity: 0.88;
    line-height: 1.45;
}

.onepager-wrapper .onepager-kurs-item-teaser,
#live-preview .onepager-kurs-item-teaser,
.onepager-wrapper .onepager-kurs-item-full,
#live-preview .onepager-kurs-item-full {
    margin: 8px 0 0;
    line-height: 1.5;
}

