/* ==========================================================================
   Shop 2026 — shop-cart.css (Stufe 1: Politur der Ticketseiten)
   Laeuft NUR, wenn die neue Shop-Shell aktiv ist (<html data-shop-theme>).
   Wird in der Minify-Gruppe "cssshop" NACH eventpage/static/theme/ticket-bridge.css
   gebuendelt: die Bridge mappt die --ep-*-Tokens auf Bootstrap-Primitive, diese
   Datei ergaenzt nur, was der Bridge fuer die Ticketauswahl/Kasse fehlt:
     - Ticketvarianten als Grid (Name/Beschreibung links, Preis + Stepper rechts)
     - Stepper-Reihenfolge/-Reset gegen Legacy-Absolutpositionen (style.css)
     - Kassenbox als Bestellpanel, Sticky-Spalte ab 992px (Klassen setzt shop-cart.js)
     - Zahlarten als waehlbare Karten mit Logo, Text und Radio-Indikator
     - Summentabelle als Definitionsliste auf dem Handy
     - Sticky-Mobile-Leiste .shop-cartbar (Markup erzeugt shop-cart.js)
   Grundregel: jede Regel ist unter [data-shop-theme] gescoped. !important nur dort,
   wo cart.php Inline-Styles setzt. IDs/Klassen aus cart.php bleiben unangetastet.
   ========================================================================== */

/* ---- Grundflaeche / Ueberlauf ---------------------------------------------- */
[data-shop-theme] .shop-legacy { min-width: 0; overflow-x: clip; }
[data-shop-theme] .shop-legacy .container { max-width: 100%; }
/* Event-Kopf (eheadblocksub): Titel, Datum, Ort, Kurztext, Veranstalter, Eventinfos-Button in einer ruhigen Skala */
/* Die Event-Karte ist ein .panel, direkt darin liegt eine Bootstrap-.row mit -15px Rand,
   die ueber die Kartenkante hinausragt (Ticketkarten klebten rechts am Rand). */
[data-shop-theme] .shop-legacy .panel > .row[itemscope] { margin-left: 0; margin-right: 0; }
[data-shop-theme] .shop-legacy .panel-bodyx > .col-xs-12[id^="e"] { padding: 16px 20px 20px; }
/* Das alte Skin gab .eventblock 15px Innenabstand + 4px-Balken; im Theme bekommt die
   ganze Info-Spalte eine eigene Flaeche, Bootstrap-Row/Col darin werden neutralisiert. */
[data-shop-theme] .shop-legacy .eheadblocksub { padding: 18px 20px 16px; margin-bottom: 0; border-bottom: var(--ep-border-w) solid var(--ep-line); }
[data-shop-theme] .shop-legacy .eheadblocksub > .row { margin-left: 0; margin-right: 0; }
[data-shop-theme] .shop-legacy .eheadblocksub > .row > .col-xs-12 { padding-left: 0; padding-right: 0; }
[data-shop-theme] .shop-legacy .eheadblocksub .eventblock { padding: 0; margin: 0; border: 0; }
[data-shop-theme] .shop-legacy .eheadblocksub .eventblock { display: flex; flex-direction: column; gap: 6px; }
[data-shop-theme] .shop-legacy h2.event { font-size: clamp(1.375rem, 3.2vw, 1.875rem); line-height: 1.15; letter-spacing: -.015em; margin: 0 0 4px; overflow-wrap: anywhere; hyphens: auto; }
[data-shop-theme] .shop-legacy .eventblock h3 { font-family: var(--ep-font-body); font-size: 1rem; font-weight: 600; letter-spacing: 0; color: var(--ep-text); line-height: 1.45; margin: 0; }
[data-shop-theme] .shop-legacy .eventblock h3 small { display: block; margin-top: 2px; white-space: normal; }
[data-shop-theme] .shop-legacy .eventblock h3 small, [data-shop-theme] .shop-legacy .eventblock h4 { font-family: var(--ep-font-body); color: var(--ep-muted); font-weight: 400; font-size: .9375rem; line-height: 1.5; letter-spacing: 0; margin: 0; }
[data-shop-theme] .shop-legacy .eventblock h4 { margin-top: 4px; }
[data-shop-theme] .shop-legacy .onbottom p.small { font-size: .875rem; line-height: 1.5; margin: 12px 0; padding: 0; }
[data-shop-theme] .shop-legacy .onbottom .btn.outline { margin-bottom: 4px; }
[data-shop-theme] .shop-legacy .softed { color: var(--ep-muted); }
[data-shop-theme] .shop-legacy hr { margin: calc(var(--ep-gap) * .9) 0; border-top: var(--ep-border-w) solid var(--ep-line); }

/* Ausklappbare Kurzbeschreibungen (cart.php setzt Hintergrund/Farbe inline) */
[data-shop-theme] .ticket-desc { background: var(--ep-surface-2) !important; color: var(--ep-text) !important; border-radius: var(--ep-radius-sm) !important; font-size: .875rem !important; line-height: 1.45; }
[data-shop-theme] .ticket-card-title .glyphicon-info-sign { cursor: pointer; }
[data-shop-theme] .ticket-card-title [role="button"]:focus-visible { outline: 3px solid var(--ep-focus, var(--ep-primary)); outline-offset: 2px; border-radius: 3px; }

/* ---- Ticketkarten: ruhige Panels, Varianten als Grid ----------------------- */
[data-shop-theme] .ticket-card { min-width: 0; padding: 18px 20px; margin-bottom: 14px; box-shadow: none; }
[data-shop-theme] .ticket-card:hover { box-shadow: var(--ep-shadow); }
[data-shop-theme] .ticket-card-title { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 1.0625rem; margin-bottom: 2px; }
[data-shop-theme] .ticket-card-info { font-size: .8125rem; margin-bottom: 8px; }
[data-shop-theme] .ticket-variant {
  display: grid;
  /* Desktop: eine Zeile — Name | Einzelpreis | Menge | Zeilensumme */
  grid-template-columns: minmax(0, 1fr) auto auto minmax(72px, auto);
  grid-template-areas: "label price qty sum";
  align-items: center; column-gap: 18px; row-gap: 2px;
  padding: 12px 0; border-bottom: var(--ep-border-w) solid var(--ep-line);
}
[data-shop-theme] .ticket-variant:last-child { border-bottom: 0; padding-bottom: 4px; }
[data-shop-theme] .ticket-variant .variant-label { grid-area: label; min-width: 0; flex: none; width: auto; font-size: .9375rem; font-weight: 500; line-height: 1.35; overflow-wrap: anywhere; }
[data-shop-theme] .ticket-variant .variant-label .ticket-desc { font-weight: 400; }
[data-shop-theme] .ticket-variant .variant-price { grid-area: price; width: auto; text-align: right; font-size: 1rem; font-weight: 600; color: var(--ep-text); font-variant-numeric: tabular-nums; white-space: nowrap; }
[data-shop-theme] .ticket-variant .variant-price s { color: var(--ep-muted); font-weight: 400; font-size: .875rem; }
[data-shop-theme] .ticket-variant .variant-qty { grid-area: qty; width: auto; display: block; }
[data-shop-theme] .ticket-variant .variant-qty::before { content: none; }
[data-shop-theme] .ticket-variant .variant-sum { grid-area: sum; width: auto; text-align: right; font-size: .8125rem; font-weight: 500; color: var(--ep-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
[data-shop-theme] .ticket-variant.is-combo .variant-label { padding-left: 14px; color: var(--ep-text); border-left: 2px solid var(--ep-line-strong); }
[data-shop-theme] .ticket-variant .ticket-unavailable { grid-column: price / -1; text-align: right; }

/* Nicht verfuegbar / bald: gedimmt, aber lesbar */
[data-shop-theme] .ticket-card .ticket-unavailable, [data-shop-theme] .ticket-card .ticket-upcoming { display: inline-block; padding: .3em .75em; border-radius: 999px; font-style: normal; font-size: .8125rem; font-weight: 600; background: var(--ep-surface-2); }
[data-shop-theme] .ticket-card .ticket-unavailable { color: var(--ep-muted); }
[data-shop-theme] .ticket-card:has(> .ticket-unavailable) { background: var(--ep-surface-2); border-style: dashed; box-shadow: none; }
[data-shop-theme] .ticket-card:has(> .ticket-unavailable) .ticket-card-title { color: var(--ep-muted); }
[data-shop-theme] .ticket-card:has(> .ticket-unavailable):hover { box-shadow: none; }
[data-shop-theme] .ticket-variant:has(> .ticket-unavailable) .variant-label { color: var(--ep-muted); }
[data-shop-theme] .ticket-variant .variant-price { color: var(--ep-text); font-weight: 500; }
[data-shop-theme] .ticket-variant .variant-sum { font-weight: 700; font-variant-numeric: tabular-nums; }

/* Bundle-Badges auf Tokens (cart.php setzt Pastellfarben inline im <style>) */
[data-shop-theme] .bundle-badge { background: var(--ep-primary-soft); color: var(--ep-text); border-left-color: var(--ep-primary); border-radius: var(--ep-radius-sm); }
[data-shop-theme] .bundle-badge-trigger { background: var(--ep-surface-2); border-left-color: var(--ep-accent); }
[data-shop-theme] .bundle-upsell { background: var(--ep-primary-soft); border-color: var(--ep-line); color: var(--ep-text); }

/* ---- Mengen-Stepper: 44x44 Tasten, 56px Eingabe, Legacy-Reste neutralisieren -- */
[data-shop-theme] .numbers-row { display: flex; align-items: stretch; justify-content: flex-end; gap: 0; width: 144px; max-width: 144px; height: auto; margin-left: auto; overflow: visible; }
[data-shop-theme] .numbers-row input.qty2 {
  order: 0; position: static; left: auto; top: auto; flex: 0 0 56px; width: 56px; min-width: 56px; height: 44px; min-height: 44px;
  padding: 0 2px; margin: 0; border-radius: 0; border-left-width: 0; border-right-width: 0;
  font-size: 16px; font-weight: 600; text-align: center; font-variant-numeric: tabular-nums; box-shadow: none;
}
[data-shop-theme] .numbers-row input.qty2:focus { border-color: var(--ep-primary); box-shadow: inset 0 0 0 2px var(--ep-primary-soft); outline: 0; z-index: 1; }
[data-shop-theme] .numbers-row input.qty2[readonly] { background: var(--ep-surface); }
[data-shop-theme] .numbers-row .button_inc {
  position: static; left: auto; right: auto; top: auto; z-index: auto; width: 44px; height: 44px; flex: 0 0 44px; margin: 0;
  background-image: none; text-indent: 0; font-size: 0; line-height: 42px; text-align: center; color: var(--ep-text); background-color: var(--ep-surface-2);
  border: var(--ep-border-w) solid var(--ep-line-strong); display: block; cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent;
  transition: background-color .15s, color .15s, border-color .15s;
}
/* DOM-Reihenfolge ist input, +, - (functions.js haengt "+" vor "-" an) -> visuell [-][n][+] */
[data-shop-theme] .numbers-row .button_inc.dec { order: -1; border-radius: var(--ep-radius-sm) 0 0 var(--ep-radius-sm); border-right-width: 0; }
[data-shop-theme] .numbers-row .button_inc.inc { order: 1; border-radius: 0 var(--ep-radius-sm) var(--ep-radius-sm) 0; border-left-width: 0; }
/* Wenn functions.js das Minus bei 0 per Inline-!important versteckt, bekommt die Eingabe die linke Kante */
[data-shop-theme] .numbers-row:has(> .dec[style*="display: none"]) input.qty2, [data-shop-theme] .numbers-row:not(:has(> .dec)) input.qty2 { border-left-width: var(--ep-border-w); border-radius: var(--ep-radius-sm) 0 0 var(--ep-radius-sm); }
/* functions.js schreibt display:block !important inline -> Glyphe ueber line-height/text-align zentrieren, nicht ueber grid */
[data-shop-theme] .numbers-row .button_inc::after { display: inline-block; vertical-align: top; font-size: 20px; line-height: 42px; font-weight: 600; }
/* Hover nur auf echten Zeigegeraeten — auf Touch bleibt :hover nach dem Tippen haengen (dauerhaft tuerkises Plus) */
@media (hover: hover) {
  [data-shop-theme] .numbers-row .button_inc:hover { background-color: var(--ep-primary); border-color: var(--ep-primary); color: var(--ep-on-primary); }
}
[data-shop-theme] .numbers-row .button_inc:focus-visible { background-color: var(--ep-primary); border-color: var(--ep-primary); color: var(--ep-on-primary); }
[data-shop-theme] .numbers-row .button_inc:focus-visible { outline: 3px solid var(--ep-focus, var(--ep-primary)); outline-offset: 2px; z-index: 1; }
[data-shop-theme] .numbers-row .button_inc:active { transform: translateY(1px); }
[data-shop-theme] .variant-qty .numbers-row { margin-left: auto; }
/* Sitzplan-Tabellen (Kategorie -> Tickettyp) */
[data-shop-theme] .cart-list .numbers-row { margin-left: 0; }
[data-shop-theme] .ticket-category-group { padding: 14px 16px !important; margin-bottom: 12px !important; }
[data-shop-theme] .cart-list > thead > tr > th { white-space: nowrap; }

/* ---- Optionen & Services ------------------------------------------------------ */
[data-shop-theme] #payoptions h4, [data-shop-theme] #showpayby h4 { font-size: 1.0625rem; font-weight: 600; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
[data-shop-theme] #payoptions h4 i, [data-shop-theme] #showpayby h4 i { color: var(--ep-primary); font-size: 1.25em; }
[data-shop-theme] .options_cart { background: var(--ep-surface); border: var(--ep-border-w) solid var(--ep-line); border-radius: var(--ep-radius); overflow: hidden; margin-bottom: 20px; }
[data-shop-theme] .options_cart > tbody > tr > td { border-top: 0; padding: 12px 14px; }
[data-shop-theme] .options_cart > tbody > tr:nth-of-type(odd) { background: transparent; }
[data-shop-theme] .options_cart > tbody > tr + tr > td { border-top: var(--ep-border-w) solid var(--ep-line); }
[data-shop-theme] .options_cart td u { text-decoration: none; font-weight: 600; }
[data-shop-theme] .options_cart td i { color: var(--ep-primary); font-size: 1.4em; }

/* ---- Zahlarten als waehlbare Karten ----------------------------------------- */
[data-shop-theme] .payby_headers { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; margin: 6px 0 14px; }
[data-shop-theme] .payby_headers::before, [data-shop-theme] .payby_headers::after { content: none; }
[data-shop-theme] .payby_headers .payby_header { float: none; width: auto; height: auto; min-height: 0; padding: 0; position: relative; }
[data-shop-theme] .payby_headers .payby_header > label {
  position: relative; display: flex; align-items: center; gap: 12px; width: 100%; height: auto; min-height: 60px; margin: 0; padding: 10px 44px 10px 12px;
  background: var(--ep-surface) none; border: var(--ep-border-w) solid var(--ep-line-strong); border-radius: var(--ep-radius-sm); box-shadow: none;
  color: var(--ep-text); font-weight: 600; font-size: .9375rem; line-height: 1.25; cursor: pointer; transition: border-color .15s, box-shadow .15s, background-color .15s;
}
[data-shop-theme] .payby_headers .payby_header > label:hover { border-color: var(--ep-text); background-color: var(--ep-surface); }
[data-shop-theme] .payby_headers .payby_header > label input.payby { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; opacity: 0; pointer-events: none; display: block; }
[data-shop-theme] .payby_headers .payby_header > label span { display: block; min-width: 0; }
/* Logo als Pseudo-Element (Legacy legt es als Hintergrund des Labels; die Bridge ueberschreibt background) */
[data-shop-theme] .payby_headers .payby_header > label::before { content: ""; flex: 0 0 52px; width: 52px; height: 30px; background: transparent no-repeat center / contain; position: static; border: 0; padding: 0; font-size: 0; }
[data-shop-theme] .payby_headers .payby_header > label.paypal::before      { background-image: url(/img/pay/paypal.png); }
[data-shop-theme] .payby_headers .payby_header > label.kreditkarte::before { background-image: url(/img/pay/kreditkarte.png); }
[data-shop-theme] .payby_headers .payby_header > label.barzahlen::before   { background-image: url(/img/pay/barzahlen.png); }
[data-shop-theme] .payby_headers .payby_header > label.giropay::before     { background-image: url(/img/pay/giropay.png); }
[data-shop-theme] .payby_headers .payby_header > label.vorkasse::before    { background-image: url(/img/pay/vorkasse.png); }
[data-shop-theme] .payby_headers .payby_header > label.sofort::before      { background-image: url(/img/pay/sofort.png); }
[data-shop-theme] .payby_headers .payby_header > label.klarna::before      { background-image: url(/img/pay/klarna.png); }
[data-shop-theme] .payby_headers .payby_header > label.promo::before       { background-image: url(/img/pay/promo.png); }
[data-shop-theme] .payby_headers .payby_header > label.lastschrift::before { background-image: url(/img/pay/lastschrift.png); }
/* Radio-Indikator rechts */
[data-shop-theme] .payby_headers .payby_header > label::after { content: ""; position: absolute; right: 12px; top: 50%; width: 20px; height: 20px; margin-top: -10px; border-radius: 50%; border: 2px solid var(--ep-line-strong); background: var(--ep-surface); box-sizing: border-box; transition: border-color .15s, box-shadow .15s; }
/* Gewaehlt: .checked setzt functions.js, .is-checked shop-cart.js, :has() als CSS-Weg */
[data-shop-theme] .payby_headers .payby_header > label.checked, [data-shop-theme] .payby_headers .payby_header > label.is-checked, [data-shop-theme] .payby_headers .payby_header > label:has(input:checked) { border-color: var(--ep-primary); background-color: var(--ep-surface); box-shadow: 0 0 0 3px var(--ep-primary-soft); }
[data-shop-theme] .payby_headers .payby_header > label.checked::after, [data-shop-theme] .payby_headers .payby_header > label.is-checked::after, [data-shop-theme] .payby_headers .payby_header > label:has(input:checked)::after { border-color: var(--ep-primary); border-width: 6px; }
[data-shop-theme] .payby_headers .payby_header > label:has(input:focus-visible) { outline: 3px solid var(--ep-focus, var(--ep-primary)); outline-offset: 2px; }
/* Kurzer Hinweis je Zahlart (Wann sind die Tickets da?) */
[data-shop-theme] .payby_headers .payby_header > label span::after { display: block; margin-top: 2px; font-size: .75rem; font-weight: 400; color: var(--ep-muted); }
[data-shop-theme] .payby_headers .payby_header > label.paypal span::after      { content: "Auch Lastschrift & Rechnung · sofort"; }
[data-shop-theme] .payby_headers .payby_header > label.kreditkarte span::after { content: "Visa, Mastercard, Apple/Google Pay · sofort"; }
[data-shop-theme] .payby_headers .payby_header > label.giropay span::after     { content: "Online-Banking · sofort"; }
[data-shop-theme] .payby_headers .payby_header > label.sofort span::after      { content: "Sofortüberweisung · sofort"; }
[data-shop-theme] .payby_headers .payby_header > label.klarna span::after      { content: "Sofortüberweisung via Klarna · sofort"; }
[data-shop-theme] .payby_headers .payby_header > label.barzahlen span::after   { content: "Im Supermarkt zahlen · nach Zahlungseingang"; }
[data-shop-theme] .payby_headers .payby_header > label.vorkasse span::after    { content: "Überweisung · nach Zahlungseingang"; }
[data-shop-theme] .payby_headers .payby_header > label.lastschrift span::after { content: "SEPA-Lastschrift"; }
/* Nur die Info zur gewaehlten Zahlart zeigen (Regel kam aus dem alten style.css; functions.js toggelt .infoshow) */
[data-shop-theme] .payby_cont > div { display: none; }
[data-shop-theme] .payby_cont > div.infoshow { display: block; }
[data-shop-theme] .payby_cont { float: none; width: auto; padding: 14px 16px; margin-bottom: 16px; font-size: .9375rem; }
[data-shop-theme] .payby_cont h4 { font-size: 1rem; margin: 0 0 8px; }
[data-shop-theme] .payby_cont p:last-child { margin-bottom: 0; }

/* ---- Kassenbox als Bestellpanel -------------------------------------------- */
[data-shop-theme] .shop-sidebar-col .box_style_1 { padding: 20px; margin-bottom: 20px; }
[data-shop-theme] .shop-sidebar-col .box_style_1 > h3.inner { margin: -20px -20px 16px; padding: 12px 18px; text-align: left; display: flex; align-items: center; gap: 8px; font-size: 1.0625rem; }
[data-shop-theme] .shop-sidebar-col .box_style_1 > h3.inner i { font-size: 1.15em; }
/* Summentabelle als Blockliste auf ALLEN Breiten (06.09.2026): als echte Tabelle mit festen Spalten
   liefen die Rabattcode-Zeile (eine Zelle) und die AGB-Zeile (Flex) am Desktop nur ueber die erste
   Spalte -> zweiter kurzer Strich unter der VVK-Gebuehr, AGB-Text links eingeklemmt. */
[data-shop-theme] .table.table_summary, [data-shop-theme] .table.table_summary > tbody { display: block; width: 100%; min-width: 0; }
[data-shop-theme] .table.table_summary > tbody > tr { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 9px 0; border-top: var(--ep-border-w) solid var(--ep-line); }
[data-shop-theme] .table.table_summary > tbody > tr:first-child { border-top: 0; }
[data-shop-theme] .table.table_summary > tbody > tr > td { display: block; flex: 1 1 auto; width: auto !important; padding: 0 !important; border: 0 !important; }
[data-shop-theme] .table.table_summary > tbody > tr > td.text-right { flex: 0 0 auto; margin-left: auto; text-align: right; }
[data-shop-theme] .table.table_summary > tbody > tr > td[colspan] { flex: 1 1 100%; }
[data-shop-theme] .table.table_summary > tbody > tr.total { padding: 12px 0; border-top: 2px solid var(--ep-text); border-bottom: var(--ep-border-w) solid var(--ep-line); align-items: center; }
[data-shop-theme] .table.table_summary > tbody > tr > td .switch-light { margin: 0; }
[data-shop-theme] .table.table_summary > tbody > tr > td.small { flex: 1 1 60%; }
[data-shop-theme] .table.table_summary td { font-size: .9375rem; color: var(--ep-text); overflow-wrap: anywhere; }
[data-shop-theme] .table.table_summary td.text-right { font-variant-numeric: tabular-nums; white-space: nowrap; }
[data-shop-theme] .table.table_summary td.rabatt { color: var(--ep-text); }
[data-shop-theme] .table.table_summary td.rabatt + td { color: #2e7d32; }
[data-scheme="dark"][data-shop-theme] .table.table_summary td.rabatt + td { color: #7bd88f; }
[data-shop-theme] .table.table_summary td small { color: var(--ep-muted) !important; font-size: .75rem; }
[data-shop-theme] .table.table_summary tr.total { color: inherit; text-transform: none; font-size: inherit; }
[data-shop-theme] .table.table_summary tr.total td { font-size: 1.25rem; font-weight: 700; color: var(--ep-text); }
[data-shop-theme] .table.table_summary tr.total td .inline { color: var(--ep-primary); }
[data-shop-theme] .table.table_summary td.small { font-size: .8125rem; color: var(--ep-muted); line-height: 1.4; }
[data-shop-theme] .table.table_summary td.small a { color: var(--ep-text); text-decoration: underline; text-underline-offset: 2px; }
[data-shop-theme] .table.table_summary #firmaHint td { color: var(--ep-muted) !important; }
/* Rabattcode: Eingabe + Ghost-Button */
[data-shop-theme] #rabattcodeRow > td { padding-top: 12px; padding-bottom: 6px; }
[data-shop-theme] #rabattcodeRow label { font-size: .8125rem; font-weight: 600; color: var(--ep-muted); text-transform: uppercase; letter-spacing: .04em; }
[data-shop-theme] #rabattcodeRow input#rabattcode { min-height: 44px; font-size: 16px; letter-spacing: .06em; }
[data-shop-theme] #applyRabattcode.btn { background: transparent; border: var(--ep-border-w) solid var(--ep-line-strong); color: var(--ep-text); min-width: 0; min-height: 44px; padding: .5em 1em; font-size: .9375rem; text-transform: none; letter-spacing: 0; box-shadow: none; }
[data-shop-theme] #applyRabattcode.btn:hover, [data-shop-theme] #applyRabattcode.btn:focus { background: var(--ep-surface-2); border-color: var(--ep-text); color: var(--ep-text); }
[data-shop-theme] #applyRabattcode.btn.btn-danger { background: transparent; border-color: #c62828; color: #c62828; }
[data-shop-theme] #applyRabattcode.btn.btn-danger:hover { background: rgba(198,40,40,.08); }
[data-shop-theme] #rabattcodeMessage { font-size: .8125rem !important; margin-top: 6px !important; }
/* Hauptaktion */
[data-shop-theme] #gotopay { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 52px; margin-top: 12px; font-size: 1.0625rem; font-weight: 700; }
[data-shop-theme] #gotopay .glyphicon { font-size: .85em; }
[data-shop-theme] #gotopay.clicked { opacity: .65; pointer-events: none; }
[data-shop-theme] #gotopay:focus-visible { outline: 3px solid var(--ep-focus, var(--ep-primary)); outline-offset: 3px; }
[data-shop-theme] .shop-sidebar-col .box_style_1 > p.small { color: var(--ep-muted); margin: 12px 0 0; line-height: 1.45; }
[data-shop-theme] .shop-sidebar-col .box_style_1 > p.small small { font-size: .8125rem; }
[data-shop-theme] .shop-sidebar-col .box_style_1 > p:empty { display: none; }
[data-shop-theme] .btn-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0; margin: 14px 0 0; list-style: none; }
[data-shop-theme] .btn-list li { margin: 0; }
[data-shop-theme] .btn-list .btn.outline { min-height: 40px; padding: .45em .6em; font-size: .8125rem; font-weight: 500; border-color: var(--ep-line); }
/* Login-Hinweis (Ein-Klick-Kauf) */
[data-shop-theme] .cart-login-box { padding: 12px 14px !important; font-size: .875rem !important; }
[data-shop-theme] .cart-login-box > div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px !important; }
[data-shop-theme] .cart-login-box #cartLoginEmail { flex: 1 1 160px; width: auto !important; max-width: none !important; margin: 0 !important; min-height: 44px; }
[data-shop-theme] .cart-login-box #cartLoginBtn { margin: 0 !important; min-height: 44px; }
[data-shop-theme] .cart-login-box small { display: block; margin-top: 6px; }

/* Sticky-Spalte ab 992px (Klassen shop-sidebar-row / shop-sidebar-col + is-sticky setzt shop-cart.js) */
@media (min-width: 768px) {
  [data-shop-theme] .shop-legacy .eheadblocksub { border-bottom: 0; border-right: var(--ep-border-w) solid var(--ep-line); margin-bottom: 0; padding-right: 24px; }
}
@media (min-width: 992px) {
  /* Event-Kopf bleibt beim Scrollen durch lange Ticketlisten sichtbar */
  [data-shop-theme] .shop-legacy .eheadblocksub { position: sticky; top: calc(var(--ep-header-h, 64px) + 16px); align-self: flex-start; }
  [data-shop-theme] .shop-sidebar-row { display: flex; align-items: flex-start; }
  [data-shop-theme] .shop-sidebar-row::before, [data-shop-theme] .shop-sidebar-row::after { content: none; }
  [data-shop-theme] .shop-sidebar-row > [class*="col-"] { float: none; }
  [data-shop-theme] .shop-sidebar-col.is-sticky { position: -webkit-sticky; position: sticky; top: 76px; }
}

/* ---- Formulare: 48px Felder, sichtbarer Fokus, ruhige Labels ---------------- */
[data-shop-theme] .shop-legacy .form-control, [data-shop-theme] .shop-legacy select.form-control { min-height: 48px; font-size: 16px; }
[data-shop-theme] .shop-legacy .form-control.input-sm { min-height: 40px; }
[data-shop-theme] .shop-legacy .numbers-row input.qty2.form-control { min-height: 44px; height: 44px; }
[data-shop-theme] .shop-legacy .form-control:focus { border-color: var(--ep-primary); box-shadow: 0 0 0 3px var(--ep-primary-soft); }
[data-shop-theme] .shop-legacy .form-control:focus-visible { outline: 0; }
[data-shop-theme] .shop-legacy .form-group > label, [data-shop-theme] .shop-legacy .control-label, [data-shop-theme] .shop-legacy .form-inline > label { font-size: .8125rem; font-weight: 700; color: var(--ep-text); margin-bottom: 4px; }
[data-shop-theme] .shop-legacy .help-block, [data-shop-theme] .shop-legacy .form-group small { color: var(--ep-muted); font-size: .8125rem; }
[data-shop-theme] .shop-legacy .form-inline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
[data-shop-theme] .shop-legacy .form-inline .btn { min-height: 40px; }
/* iOS-Schalter (jquery.switch): Fokusring, Groesse */
[data-shop-theme] .switch-light.switch-ios { margin: 0; }
/* jquery.switch legt die (unsichtbare) Checkbox absolut rechts neben das Label -> 13px Ueberlauf,
   der Kassenbox/Optionen seitlich scrollbar machte. Checkbox deckt jetzt das Label ab. */
[data-shop-theme] .switch-light > input.switch { left: 0; top: 0; width: 100%; height: 100%; margin: 0; }
[data-shop-theme] .switch-light.switch-ios:has(input:focus-visible) { outline: 3px solid var(--ep-focus, var(--ep-primary)); outline-offset: 3px; border-radius: 999px; }
/* iCheck-Boxen (falls auf der Seite) */
[data-shop-theme] .icheckbox_square-green.checked, [data-shop-theme] .iradio_square-green.checked { filter: hue-rotate(0); }
[data-shop-theme] .icheckbox_square-green.focus, [data-shop-theme] .iradio_square-green.focus { outline: 3px solid var(--ep-focus, var(--ep-primary)); outline-offset: 2px; }

/* ---- Countdown (Reservierung) als dezente Pille ----------------------------- */
[data-shop-theme] #countdown { display: inline-flex; align-items: center; gap: .35em; padding: .4em .9em; margin: 0 0 12px; border-radius: 999px; background: var(--ep-primary-soft); color: var(--ep-text); font-weight: 600; font-variant-numeric: tabular-nums; list-style: none; }
[data-shop-theme] #countdown li { display: inline-block; list-style: none; }
[data-shop-theme] #countdown li.alert { margin: 0; padding: .3em .8em; }

/* ---- Sticky-Mobile-Leiste (Markup erzeugt shop-cart.js) --------------------- */
[data-shop-theme] .shop-cartbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1040;
  display: none; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
  background: var(--ep-surface); color: var(--ep-text); border-top: var(--ep-border-w) solid var(--ep-line);
  box-shadow: 0 -8px 24px -12px rgba(0,0,0,.25);
  transform: translateY(110%); transition: transform .22s ease;
}
[data-shop-theme] .shop-cartbar.is-visible { display: flex; }
[data-shop-theme] .shop-cartbar.is-shown { transform: none; }
[data-shop-theme] .shop-cartbar-info { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
[data-shop-theme] .shop-cartbar-count { font-size: .8125rem; color: var(--ep-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
[data-shop-theme] .shop-cartbar-total { font-size: 1.125rem; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
[data-shop-theme] .shop-cartbar-btn {
  flex: 0 0 auto; min-height: 48px; padding: .6em 1.4em; border: var(--ep-border-w) solid var(--ep-primary); border-radius: var(--ep-radius-sm);
  background: var(--ep-primary); color: var(--ep-on-primary); font-family: var(--ep-font-display); font-weight: 700; font-size: 1rem; cursor: pointer;
  text-transform: var(--ep-display-transform); letter-spacing: var(--ep-display-tracking);
}
[data-shop-theme] .shop-cartbar-btn:hover { background: var(--ep-primary-hover); border-color: var(--ep-primary-hover); }
[data-shop-theme] .shop-cartbar-btn:focus-visible { outline: 3px solid var(--ep-focus, var(--ep-primary)); outline-offset: 2px; }
[data-shape="pill"][data-shop-theme] .shop-cartbar-btn { border-radius: 999px; }
[data-shop-theme] body.has-shop-cartbar { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
[data-shop-theme] body.has-shop-cartbar .cookie-bar, [data-shop-theme] body.has-shop-cartbar #cookie-bar { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
@media (min-width: 992px) {
  [data-shop-theme] .shop-cartbar { display: none !important; }
  [data-shop-theme] body.has-shop-cartbar { padding-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) {
  [data-shop-theme] .shop-cartbar { transition: none; }
}

/* ---- Handy: Varianten, Summentabelle als Definitionsliste ------------------ */
@media (max-width: 767px) {
  [data-shop-theme] .ticket-card { padding: 14px; }
  [data-shop-theme] .ticket-variant { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label price" "qty sum"; column-gap: 10px; row-gap: 8px; padding: 12px 0; }
  [data-shop-theme] .ticket-variant .variant-price, [data-shop-theme] .ticket-variant .variant-sum { display: block; }
  [data-shop-theme] .ticket-variant .variant-qty { display: block; width: auto; justify-self: start; }
  [data-shop-theme] .ticket-variant .variant-qty .numbers-row { margin-left: 0; }
  [data-shop-theme] .ticket-variant .variant-sum { align-self: center; font-size: .875rem; }
  [data-shop-theme] .ticket-variant .ticket-unavailable { grid-column: 1 / -1; text-align: left; }
  [data-shop-theme] .ticket-variant.is-combo .variant-label { padding-left: 10px; }
  /* Bootstrap setzt in .table-responsive unter 768px white-space:nowrap auf alle Zellen und
     overflow-x:auto: AGB-Text und Post-Option konnten nicht umbrechen, Boxen scrollten seitlich.
     Nur die Sitzplan-Tabellen (.cart-list, 4 Spalten) behalten den horizontalen Scroll. */
  [data-shop-theme] .table-responsive:not(:has(> .cart-list)) { overflow: visible; width: auto; }
  [data-shop-theme] .table-responsive > .table:not(.cart-list) > tbody > tr > td,
  [data-shop-theme] .table-responsive > .table:not(.cart-list) > tbody > tr > th { white-space: normal; }
  /* Summentabelle: Blockliste gilt inzwischen global (siehe oben). */
  [data-shop-theme] .options_cart > tbody > tr { display: flex; align-items: center; gap: 10px; }
  [data-shop-theme] .options_cart > tbody > tr > td { display: block; width: auto !important; flex: 1 1 auto; border-top: 0; }
  [data-shop-theme] .options_cart > tbody > tr > td:last-child { flex: 0 0 auto; }
  [data-shop-theme] .options_cart > tbody > tr > td.hidden-xs { display: none; }
  [data-shop-theme] .btn-list { grid-template-columns: 1fr 1fr; }
  [data-shop-theme] .payby_headers { grid-template-columns: 1fr; }
}
@media (max-width: 419px) {
  [data-shop-theme] .ticket-card { padding: 12px; }
  [data-shop-theme] .ticket-variant .variant-label { font-size: .875rem; }
  [data-shop-theme] .btn-list { grid-template-columns: 1fr; }
  [data-shop-theme] .cart-list > thead > tr > th, [data-shop-theme] .cart-list > tbody > tr > td { padding: 6px 4px; font-size: .8125rem; }
}
@media (min-width: 768px) and (max-width: 991px) {
  [data-shop-theme] .payby_headers { grid-template-columns: 1fr; }
  /* Tablet: Ticketspalte ist nur ~7/12 breit — Variantenzeile wie auf dem Handy stapeln */
  [data-shop-theme] .ticket-variant { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label price" "qty sum"; column-gap: 10px; row-gap: 8px; }
  [data-shop-theme] .ticket-variant .variant-qty { justify-self: start; }
  [data-shop-theme] .ticket-variant .variant-qty .numbers-row { margin-left: 0; }
  [data-shop-theme] .ticket-variant .variant-sum { align-self: center; font-size: .875rem; }
}

/* ---- Druck ------------------------------------------------------------------ */
@media print {
  [data-shop-theme] .shop-cartbar, [data-shop-theme] .btn-list, [data-shop-theme] .cart-login-box, [data-shop-theme] #showpayby .payby_cont,
  [data-shop-theme] #gotopay, [data-shop-theme] .numbers-row .button_inc, [data-shop-theme] #rabattcodeRow { display: none !important; }
  [data-shop-theme] .ticket-card, [data-shop-theme] .box_style_1 { box-shadow: none; break-inside: avoid; }
  [data-shop-theme] body.has-shop-cartbar { padding-bottom: 0; }
}

/* Bootstrap .form-horizontal gibt .form-group -15px Seitenrand — im schmalen
   Kassen-Panel schiebt das Label/Button ueber den Rand (Rabattcode-Zeile). */
[data-shop-theme] #kassenform .form-group,
[data-shop-theme] .box_style_1 .form-group { margin-left: 0; margin-right: 0; }
[data-shop-theme] #rabattcodeRow .form-group > div { display: flex; flex-wrap: wrap; gap: 8px; }
[data-shop-theme] #rabattcodeRow input#rabattcode { flex: 1 1 150px; min-width: 0; width: auto; }
[data-shop-theme] #applyRabattcode.btn { flex: 0 0 auto; }

/* ---- Bestellfortschritt (Tickets -> Deine Daten -> Bezahlen), Markup in head.php ---- */
[data-shop-theme] .shop-steps-wrap { background: var(--ep-surface); border-bottom: var(--ep-border-w) solid var(--ep-line); }
[data-shop-theme] .shop-steps { list-style: none; margin: 0 auto; padding: 10px var(--ep-gutter, 16px); display: flex; align-items: center; gap: 6px; counter-reset: none; overflow-x: auto; scrollbar-width: none; }
[data-shop-theme] .shop-steps::-webkit-scrollbar { display: none; }
[data-shop-theme] .shop-steps li { display: inline-flex; align-items: center; gap: 8px; font-size: .875rem; font-weight: 600; color: var(--ep-muted); white-space: nowrap; }
[data-shop-theme] .shop-steps li + li::before { content: ""; width: 22px; height: 2px; background: var(--ep-line-strong); margin: 0 4px; flex: none; }
[data-shop-theme] .shop-steps .shop-step-no { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--ep-line-strong); font-size: .8125rem; font-variant-numeric: tabular-nums; }
[data-shop-theme] .shop-steps li.is-current { color: var(--ep-text); }
[data-shop-theme] .shop-steps li.is-current .shop-step-no { background: var(--ep-primary); border-color: var(--ep-primary); color: var(--ep-on-primary); }
[data-shop-theme] .shop-steps li.is-done { color: var(--ep-text); }
[data-shop-theme] .shop-steps li.is-done .shop-step-no { background: var(--ep-primary-soft); border-color: var(--ep-primary); color: var(--ep-primary); }
[data-shop-theme] .shop-steps li.is-done + li::before { background: var(--ep-primary); }
@media (max-width: 419px) { [data-shop-theme] .shop-steps li:not(.is-current) .shop-step-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } [data-shop-theme] .shop-steps li + li::before { width: 14px; } }

/* ---- Datenseite (clickbuy): Newsletter-Schalter — .form-group enthaelt Switch (pull-right) + .switchlabel ---- */
[data-shop-theme] .shop-legacy .form-group:has(> .switchlabel) { display: flex; align-items: center; gap: 12px; margin: 6px 0 14px; padding: 10px 12px; background: var(--ep-surface-2); border-radius: var(--ep-radius-sm); }
[data-shop-theme] .shop-legacy .form-group:has(> .switchlabel) > .switchlabel { order: -1; flex: 1 1 auto; width: auto; padding: 0; float: none; font-size: .9375rem; line-height: 1.4; }
[data-shop-theme] .shop-legacy .form-group:has(> .switchlabel) > .switch-light { flex: 0 0 auto; float: none; margin: 0; }
[data-shop-theme] .shop-legacy h1.form_title { font-size: clamp(1.5rem, 3vw, 2rem); margin: 4px 0 8px; }
[data-shop-theme] .shop-legacy p.form_title { color: var(--ep-muted); margin-bottom: 18px; }
[data-shop-theme] .shop-legacy .step { margin-bottom: 8px; }
[data-shop-theme] .shop-legacy #countdown { list-style: none; margin: 0 0 14px; padding: 8px 12px; display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; background: var(--ep-primary-soft); border-radius: 999px; font-size: .9375rem; font-weight: 600; }
[data-shop-theme] .shop-legacy #countdown li { display: inline-flex; align-items: center; gap: 4px; }
[data-shop-theme] .shop-legacy #countdown .time-font { font-variant-numeric: tabular-nums; }

/* ==========================================================================
   Variante A "Aufraeumen im Bestand" (03.09.2026) — Ablauf unveraendert,
   Reihenfolge und Sichtbarkeit neu. Markup kommt aus shop/theme/cart/*.php,
   Verhalten aus shop-cart.js. Alle IDs des Legacy-Vertrags bleiben.
   ========================================================================== */

/* ---- Leerer Warenkorb: Zahlart, Optionen, Summe erst ab dem ersten Ticket ---- */
[data-shop-theme] .shop-kasse-empty { display: none; }
body.shop-cart-empty #payoptions, body.shop-cart-empty #showpayby { display: none; }
body.shop-cart-empty #kassenform .box_style_1:has(.table_summary) > :not(h3.inner):not(.shop-kasse-empty) { display: none; }
body.shop-cart-empty .shop-kasse-empty { display: block; padding: 6px 0 2px; color: var(--ep-muted); font-size: .9375rem; line-height: 1.5; }
body.shop-cart-empty .shop-kasse-empty strong { color: var(--ep-text); }
body.shop-cart-empty .shop-sidebar-col.is-sticky { position: static; }

/* ---- Zahlarten: Kurztext + aufklappbarer Originaltext ------------------------ */
[data-shop-theme] .payby_cont .shop-payby-short { margin: 0 0 6px; font-size: .9375rem; line-height: 1.5; color: var(--ep-text); }
[data-shop-theme] .payby_cont details.shop-payby-more { margin: 0; }
[data-shop-theme] .payby_cont details.shop-payby-more > summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 6px; font-size: .875rem; font-weight: 600; color: var(--ep-primary); padding: 4px 0; }
[data-shop-theme] .payby_cont details.shop-payby-more > summary::-webkit-details-marker { display: none; }
[data-shop-theme] .payby_cont details.shop-payby-more > summary::before { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform .15s; margin-top: -2px; }
[data-shop-theme] .payby_cont details.shop-payby-more[open] > summary::before { transform: rotate(45deg); margin-top: -4px; }
[data-shop-theme] .payby_cont details.shop-payby-more > h4 { font-size: .9375rem; margin: 10px 0 6px; }
[data-shop-theme] .payby_cont details.shop-payby-more > p { font-size: .875rem; color: var(--ep-muted); }

/* ---- AGB als Checkbox-Zeile (gleiches Feld #agb, andere Darstellung) ---------- */
[data-shop-theme] .table.table_summary > tbody > tr:has(#agb) { display: flex; flex-wrap: nowrap; align-items: flex-start; gap: 12px; padding: 12px 0; border-top: var(--ep-border-w) solid var(--ep-line); }
[data-shop-theme] .table.table_summary > tbody > tr:has(#agb) > td { display: block; padding: 0 !important; border: 0 !important; width: auto !important; }
[data-shop-theme] .table.table_summary > tbody > tr:has(#agb) > td.small { order: 1; flex: 1 1 0%; min-width: 0; font-size: .9375rem; color: var(--ep-text); line-height: 1.45; overflow-wrap: break-word; hyphens: manual; }
[data-shop-theme] .table.table_summary > tbody > tr:has(#agb) > td.text-right { order: 0; flex: 0 0 auto; }
[data-shop-theme] .table.table_summary > tbody > tr:has(#agb) label.switch-light { width: 26px; height: 26px; margin: 0; padding: 0; display: block; position: relative; overflow: visible; }
[data-shop-theme] .table.table_summary > tbody > tr:has(#agb) label.switch-light > span { display: none; }
[data-shop-theme] .table.table_summary > tbody > tr:has(#agb) label.switch-light > input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 2; }
[data-shop-theme] .table.table_summary > tbody > tr:has(#agb) label.switch-light > a { position: absolute; inset: 0; left: 0 !important; margin: 0 !important; width: 26px; height: 26px; border-radius: 7px; border: 2px solid var(--ep-line-strong); background: var(--ep-surface); box-shadow: none; transition: background-color .15s, border-color .15s; }
[data-shop-theme] .table.table_summary > tbody > tr:has(#agb) label.switch-light > input:checked ~ a { background: var(--ep-primary); border-color: var(--ep-primary); }
[data-shop-theme] .table.table_summary > tbody > tr:has(#agb) label.switch-light > input:checked ~ a::after { content: ""; position: absolute; left: 8px; top: 3px; width: 7px; height: 13px; border: solid var(--ep-on-primary); border-width: 0 2px 2px 0; transform: rotate(45deg); }
[data-shop-theme] .table.table_summary > tbody > tr:has(#agb) label.switch-light:has(input:focus-visible) > a { box-shadow: 0 0 0 3px var(--ep-primary-soft); }
[data-shop-theme] .table.table_summary > tbody > tr:has(#agb).shop-invalid label.switch-light > a { border-color: #c62828; }

/* ---- Inline-Hinweise (AGB, Zahlart, Pflichtfelder) --------------------------- */
[data-shop-theme] .shop-field-msg { display: block; margin: 6px 0 0; padding: 8px 10px; font-size: .875rem; line-height: 1.4; color: #7a1f1f; background: #fdecec; border: 1px solid #f3b9b9; border-radius: var(--ep-radius-sm); }
[data-shop-theme] .shop-invalid .form-control, [data-shop-theme] .form-control.shop-invalid { border-color: #c62828; box-shadow: 0 0 0 3px rgba(198, 40, 40, .12); }
[data-shop-theme] .form-group.shop-invalid > label { color: #7a1f1f; }
[data-shop-theme] .table.table_summary > tbody > tr.shop-msg-row { display: block; padding: 0 0 8px; border: 0; }

/* ---- Rabattcode erst auf Klick -------------------------------------------------- */
[data-shop-theme] #rabattcodeRow.shop-rabatt-collapsed { display: none !important; }
[data-shop-theme] .table.table_summary > tbody > tr.shop-rabatt-toggle { display: block; padding: 8px 0; border-top: var(--ep-border-w) solid var(--ep-line); }
[data-shop-theme] .shop-linkbtn { background: none; border: 0; padding: 0; font: inherit; font-size: .9375rem; font-weight: 600; color: var(--ep-primary); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
[data-shop-theme] .shop-linkbtn:hover { color: var(--ep-primary-hover); }

/* ---- Kassenfuss: Hinweis, Login-Zeile, Hilfe-Links ------------------------------ */
[data-shop-theme] .shop-kasse-hint { margin: 10px 0 0; color: var(--ep-muted); line-height: 1.45; }
[data-shop-theme] .shop-kasse-hint small { font-size: .8125rem; }
[data-shop-theme] .shop-login-line { margin: 14px 0 0; padding: 12px 14px; background: var(--ep-surface-2); border-radius: var(--ep-radius-sm); }
[data-shop-theme] .shop-login-line-text { font-size: .875rem; line-height: 1.45; margin-bottom: 8px; }
[data-shop-theme] .shop-login-line-form { display: flex; gap: 8px; }
[data-shop-theme] .shop-login-line-form .form-control { flex: 1 1 auto; min-width: 0; min-height: 42px; }
[data-shop-theme] .shop-login-line-form .btn { flex: 0 0 auto; min-height: 42px; padding: 0 14px; font-size: .9375rem; text-transform: none; letter-spacing: 0; box-shadow: none; }
[data-shop-theme] .shop-login-line small { display: block; margin-top: 6px; }
[data-shop-theme] .shop-help-links { margin: 14px 0 0; font-size: .8125rem; color: var(--ep-muted); line-height: 1.7; }
[data-shop-theme] .shop-help-links a { color: var(--ep-muted); text-decoration: underline; text-underline-offset: 2px; }
[data-shop-theme] .shop-help-links a:hover { color: var(--ep-text); }

/* ---- Datenseite (shop-checkout): Anschrift aufklappbar, ein Button, Fehler am Feld ---- */
[data-shop-theme] .shop-addr-toggle { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 10px 14px; background: var(--ep-surface); border: var(--ep-border-w) solid var(--ep-line-strong); border-radius: var(--ep-radius-sm); font: inherit; font-size: .9375rem; font-weight: 600; color: var(--ep-text); cursor: pointer; }
[data-shop-theme] .shop-addr-toggle small { font-weight: 400; color: var(--ep-muted); }
[data-shop-theme] .shop-addr-toggle::before { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); }
[data-shop-theme] .shop-addr.is-collapsed .shop-addr-fields, [data-shop-theme] .shop-addr.is-collapsed .form_title > p { display: none; }
[data-shop-theme] .shop-addr:not(.is-collapsed) .shop-addr-toggle::before { transform: rotate(45deg); }
[data-shop-theme] .shop-addr-note { margin: -4px 0 12px; padding: 8px 12px; font-size: .875rem; color: var(--ep-text); background: var(--ep-primary-soft); border-radius: var(--ep-radius-sm); }
[data-shop-theme] .shop-newsletter { margin: 6px 0 18px; }
[data-shop-theme] .shop-optional { font-weight: 400; color: var(--ep-muted); }
/* Zweiter Abschluss-Button unten (hidden-xs .toblock) nur behalten, wo er gebraucht wird: Vorkasse (Adresse pruefen) */
body.shop-checkout:not([data-payby="vorkasse"]):not([data-payby="barzahlen"]) .toblock:has(> #gotopay, > #gotopay2) { display: none !important; }
