/* ══ Kartenweg: Kartenseite, Produktseite eines Abends, Kasse ══════════
   Laedt nach style.css (functions.php). Aufbau nach den Vorbildern in
   werkzeuge/divi/VORBILDER-KARTENWEG.md. Rot, Nacht und Licht: Logo-Rot
   nur fuer Handlungen, kein Gold auf Hell, Schatten im Weinrot des Logos.
   Knopf-Effekte (Vorhang, Rampenlicht, Ticket-Symbol) stehen in
   css/knoepfe.css und werden hier nicht beruehrt. */

:root{
	--ehc-schatten-karte: 0 1px 2px rgba(130,0,0,.06), 0 24px 48px -30px rgba(130,0,0,.32);
	--ehc-schatten-hoch:  0 2px 4px rgba(130,0,0,.08), 0 30px 56px -28px rgba(130,0,0,.42);
	--ehc-stummel: 58px; /* Hoehe des Abrisses an der Eintrittskarte */
}

/* Fusszeile immer unten, auch auf kurzen Seiten (Produkt, Kasse) */
#page-container{ min-height:100vh; display:flex; flex-direction:column; }
#et-main-area{ flex:1 0 auto; display:flex; flex-direction:column; }
#main-content{ flex:1 0 auto; }

/* ════ 1. Kartenseite (/karten/, werkzeuge/divi/karten.mjs) ════ */

/* Kino-Muster: Plakat links schmal und mitlaufend, rechts Stueck und Abende.
   Die Spalten sind in Divi 1/2 + 1/2, hier 38 : 62. */
.ehc-karten-kopf{ position:relative; overflow:clip; }
/* Rampenlicht sitzt hinter dem mitlaufenden Plakat und laeuft mit */
.ehc-karten-kino__plakat::before{ content:""; position:absolute; inset:-18% -30% -10% -30%; z-index:-1; pointer-events:none;
	background:radial-gradient(ellipse 50% 50% at 50% 45%, rgba(130,0,0,.11), rgba(130,0,0,.04) 50%, transparent 74%); }
.ehc-karten-kopf .et_pb_row{ position:relative; z-index:1; }
.ehc-karten-kino{ align-items:flex-start; }
.ehc-karten-kino > .ehc-karten-kino__plakat{ flex:0 0 calc(38% - 32px) !important; width:calc(38% - 32px) !important; max-width:calc(38% - 32px) !important;
	position:sticky; top:118px; align-self:flex-start; }
.ehc-karten-kino > .ehc-karten-kino__inhalt{ flex:1 1 0 !important; width:auto !important; max-width:none !important; min-width:0; }
.ehc-karten-plakat, .ehc-karten-plakat .et_pb_image_wrap{ display:block; width:100%; margin-bottom:18px !important; }
.ehc-karten-plakat img{ display:block; width:100%; height:auto; border-radius:6px; box-shadow:0 1px 2px rgba(130,0,0,.10), 0 34px 60px -26px rgba(130,0,0,.45); }
.ehc-karten-kopf .ehc-titel h1{ font-size:clamp(3rem,5.4vw,4.75rem) !important; }
.ehc-karten-kino__h2 h2{ font-size:clamp(2.1rem,3.6vw,2.9rem) !important; }

/* Eckdaten: wie .ehc-fakten (Spielort), zweispaltig, Dauer ueber die ganze Breite */
.ehc-eckdaten.ehc-fakten{ grid-template-columns:repeat(2, minmax(0,1fr)); column-gap:28px; }
.ehc-eckdaten.ehc-fakten > div{ display:block; padding:14px 0; border-top:1px solid var(--gh-linie); border-bottom:0; }
.ehc-eckdaten.ehc-fakten > div:last-child{ grid-column:1 / -1; border-bottom:1px solid var(--gh-linie); }
.ehc-eckdaten dt{ margin-bottom:4px; padding-top:0; font-size:1rem; letter-spacing:0; text-transform:none; color:var(--gh-grau); }
.ehc-eckdaten dd{ font-size:1.08rem; line-height:1.45; }
.ehc-eckdaten dd a{ color:var(--gh-akzent); text-decoration:underline; text-underline-offset:.15em; }
.ehc-eckdaten dd .ehc-todo{ margin:0 !important; }

/* Abschnittskopf: Ueberschrift links, Einleitung rechts, unten buendig */
.ehc-karten-zeile{ align-items:flex-end; margin-bottom:44px !important; }

/* Bestellung: beide Spalten oben buendig */
.ehc-kartenbereich .et_pb_row{ align-items:flex-start; }

/* Tribuene in der Bestellung */
.ehc-karten-tribuene, .ehc-karten-tribuene .et_pb_image_wrap{ display:block; width:100%; margin-bottom:12px !important; }
.ehc-karten-tribuene img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; object-position:50% 60%; border-radius:var(--gh-radius);
	box-shadow:0 2px 4px rgba(130,0,0,.08), 0 36px 64px -34px rgba(130,0,0,.40); }
.ehc-karten-tribuene__text a{ color:var(--gh-akzent); text-decoration:underline; text-underline-offset:.15em; }

/* Die Abende als Eintrittskarten: weisse Karte, unten ein Abriss mit
   Lochung links und rechts. Drei nebeneinander, Tablet zwei, Handy eine.
   Nur auf der Kartenseite, die Startseite behaelt ihre Liste. */
.ehc-karten-abende .ehc-abendliste{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:22px; }
.ehc-karten-abende .ehc-abendliste li,
.ehc-karten-abende .ehc-abendliste li:has(> .ehc-abendliste__link){ position:relative; display:flex; flex-direction:column; padding:0 !important;
	background:#fff; border-radius:var(--gh-radius); box-shadow:var(--ehc-schatten-karte); transition:transform .25s cubic-bezier(.23,1,.32,1), box-shadow .25s ease; }
/* Lochung: zwei Halbkreise in der Farbe des Abschnitts auf Hoehe der Abrisslinie */
.ehc-karten-abende .ehc-abendliste li::before,
.ehc-karten-abende .ehc-abendliste li::after{ content:""; position:absolute; bottom:calc(var(--ehc-stummel) - 11px); width:22px; height:22px; border-radius:50%; background:var(--gh-grund-hell); z-index:1; }
.ehc-karten-abende .ehc-abendliste li::before{ left:-11px; }
.ehc-karten-abende .ehc-abendliste li::after{ right:-11px; }
.ehc-karten-abende .ehc-abendliste li{ align-items:stretch; }
.ehc-karten-abende .ehc-abendliste__link{ display:flex; flex-direction:column; align-items:stretch; flex:1 1 auto; padding:0; gap:0; border-radius:var(--gh-radius); }
.ehc-karten-abende .ehc-abendliste__link:hover{ background:transparent; }
.ehc-karten-abende .ehc-abendliste__link:focus-visible{ outline:3px solid var(--gh-akzent); outline-offset:3px; }
.ehc-karten-abende .ehc-abendliste__tag{ display:block; padding:26px 28px 0; font-size:2.1rem; line-height:1.1; color:var(--gh-text); }
.ehc-karten-abende .ehc-abendliste .ehc-balken{ margin:16px 28px 0; }
.ehc-karten-abende .ehc-abendliste__frei{ display:block; padding:12px 28px 24px; text-align:left; font-size:1.05rem; }
/* Abriss: gestrichelte Linie, darunter die Handlung */
.ehc-karten-abende .ehc-abendliste__link::after{ content:"Karten für diesen Abend"; display:flex; align-items:center; margin-top:auto; min-height:var(--ehc-stummel);
	padding:0 28px; border-top:2px dashed var(--gh-linie); color:var(--gh-akzent); font-weight:700; font-size:1.05rem; }
/* Ausverkauft: kein Link, der Abriss sagt es */
.ehc-karten-abende .ehc-abendliste li.ist-aus{ background:#fff; box-shadow:inset 0 0 0 1px var(--gh-linie); }
.ehc-karten-abende .ehc-abendliste li.ist-aus .ehc-abendliste__tag{ color:#6f675f; }
.ehc-karten-abende .ehc-abendliste li.ist-aus .ehc-abendliste__frei{ display:flex; align-items:center; margin-top:auto; min-height:var(--ehc-stummel); padding:0 28px;
	margin-top:auto; border-top:2px dashed var(--gh-linie); font-weight:700; text-transform:none; }
.ehc-karten-abende .ehc-abendliste li.ist-aus .ehc-balken{ margin-bottom:22px; }
@media (hover:hover) and (pointer:fine){
	.ehc-karten-abende .ehc-abendliste li:has(> .ehc-abendliste__link:hover){ transform:translateY(-4px); box-shadow:var(--ehc-schatten-hoch); }
	.ehc-karten-abende .ehc-abendliste__link:hover::after{ text-decoration:underline; text-underline-offset:.18em; }
}
@media (prefers-reduced-motion: reduce){
	.ehc-karten-abende .ehc-abendliste li{ transition:none; }
	.ehc-karten-abende .ehc-abendliste li:has(> .ehc-abendliste__link:hover){ transform:none; }
}

/* Preise in der Bestellung: zwei Zeilen auf weisser Flaeche */
.ehc-preis.ehc-preis--liste{ background:#fff; padding:6px 28px !important; box-shadow:var(--ehc-schatten-karte); }
.ehc-preis.ehc-preis--liste p{ padding:16px 0 !important; border-bottom:1px solid var(--gh-linie); flex-wrap:nowrap; }
.ehc-preis.ehc-preis--liste p:last-child{ border-bottom:0; }
.ehc-preis.ehc-preis--liste strong{ flex:none; min-width:3.3em; font-size:2.6rem; }

/* Vor dem Kauf: zwei weisse Flaechen auf Papier */
.ehc-karten-hinweis{ background:#fff; border-radius:var(--gh-radius); padding:36px 36px 32px !important; box-shadow:var(--ehc-schatten-karte); }
.ehc-karten-hinweis .et_pb_text_inner a{ color:var(--gh-akzent); text-decoration:underline; text-underline-offset:.15em; }

/* ════ 2. Kasse und Produktseite (inc/kasse.php) ════
   Fuer Menschen, die selten online kaufen: grosse Schrift, grosse Felder,
   eine Spalte, ein deutlicher Knopf. */
.woocommerce-checkout #main-content, .single-product #main-content{ font-size:19px; }
.woocommerce form .form-row label{ font-size:1.05rem; font-weight:600; margin-bottom:6px; }
.woocommerce form .form-row input.input-text{ font-size:1.15rem; min-height:56px; padding:12px 16px !important; border:1.5px solid #8a7f70 !important; border-radius:10px; background:#fff !important; color:var(--gh-text) !important; }
.woocommerce form .form-row input.input-text:focus{ border-color:var(--gh-akzent) !important; outline:3px solid var(--gh-akzent); outline-offset:1px; }
.woocommerce form .form-row .description{ font-size:1rem; color:var(--gh-grau); margin-top:6px; }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2{ width:100%; float:none; }
.woocommerce-checkout h3, #order_review_heading{ font-family:var(--gh-schrift-titel); font-style:italic; font-weight:500; font-size:2rem; margin:32px 0 16px; }
.woocommerce #payment #place_order, .woocommerce button.button.alt, .woocommerce .single_add_to_cart_button{ background:var(--gh-akzent) !important; color:#fff !important; font-size:1.2rem !important; font-weight:700; padding:18px 32px !important; border-radius:999px !important; width:100%; }
.woocommerce #payment #place_order:hover, .woocommerce .single_add_to_cart_button:hover{ background:var(--gh-akzent-dunkel) !important; }
.woocommerce #payment ul.payment_methods li{ font-size:1.1rem; padding:14px 0; }
.woocommerce .quantity .qty{ width:5.5em; min-height:56px; font-size:1.25rem; border-radius:10px; }
.woocommerce-checkout #left-area, .woocommerce-cart #left-area{ width:100%; max-width:none; margin:0; float:none; padding-right:0; }
.woocommerce-checkout #main-content .container{ width:90%; max-width:1180px; }
/* Desktop: links Angaben und Bezahlen, rechts "Ihre Karten" (laeuft mit).
   #order_review wird per display:contents aufgeloest, damit Tabelle und
   Zahlung eigene Rasterzellen bekommen; WooCommerce ersetzt beide weiter
   per Ajax ueber ihre Klassen. Erst ab 981 px, darunter eine Spalte. */
@media (min-width: 981px){
	.woocommerce-checkout form.checkout{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,460px); column-gap:64px; align-items:start; }
	.woocommerce-checkout form.checkout > *{ grid-column:1; }
	.woocommerce-checkout form.checkout #order_review{ display:contents; }
	.woocommerce-checkout form.checkout #customer_details{ grid-column:1; grid-row:1; }
	.woocommerce-checkout form.checkout #order_review_heading{ grid-column:2; grid-row:1; margin-top:0; }
	.woocommerce-checkout form.checkout .woocommerce-checkout-review-order-table{ grid-column:2; grid-row:1 / span 2; margin-top:64px !important; position:sticky; top:118px; }
	.woocommerce-checkout form.checkout #payment{ grid-column:1; grid-row:2; margin-top:12px; }
	.woocommerce-checkout #customer_details h3{ margin-top:0; }
}
.woocommerce-checkout #main-content .container::before{ display:none; }
.woocommerce-checkout #main-content .container{ padding-top:56px; padding-bottom:96px; }
.woocommerce-checkout .entry-title, .woocommerce-checkout .main_title{ font-family:var(--gh-schrift-titel); font-style:italic; font-weight:500; font-size:clamp(2.6rem,5vw,4rem); }
.ehc-kasse-schritte{ list-style:none !important; counter-reset:k; display:flex; gap:10px; flex-wrap:wrap; margin:0 0 28px !important; padding:0 !important; }
.ehc-kasse-schritte li{ counter-increment:k; display:flex; align-items:center; gap:10px; min-height:48px; padding:9px 18px 9px 9px !important; border-radius:999px; background:var(--gh-grund-hell); font-weight:600; font-size:1rem; line-height:1.2; color:var(--gh-grau); }
.ehc-kasse-schritte li::before{ content:counter(k); display:grid; place-items:center; flex:none; width:30px; height:30px; border-radius:50%; background:#fff; color:var(--gh-text); font-weight:700; line-height:1; }
.ehc-kasse-schritte li.ist-erledigt::before{ content:"✓"; background:var(--gh-akzent); color:#fff; }
.ehc-kasse-schritte li.ist-aktuell{ background:var(--gh-akzent); color:#fff; }
.ehc-kasse-schritte li.ist-aktuell::before{ background:#fff; color:var(--gh-akzent); }
.woocommerce table.shop_table{ border:0; border-radius:var(--gh-radius); overflow:hidden; background:#fff; font-size:1.05rem; box-shadow:var(--ehc-schatten-karte); }
.woocommerce table.shop_table th{ background:transparent !important; color:var(--gh-text) !important; font-weight:700; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th{ border-top:1px solid var(--gh-linie) !important; padding:14px 18px !important; color:var(--gh-text); }
.woocommerce table.shop_table thead th{ border-top:0 !important; font-size:1rem; font-weight:600; color:var(--gh-grau) !important; }
.woocommerce table.shop_table .product-name{ font-weight:600; }
.woocommerce table.shop_table .product-quantity{ font-weight:700; color:var(--gh-text); }
.woocommerce table.shop_table .order-total td, .woocommerce table.shop_table .order-total th{ font-size:1.25rem; }
.woocommerce-checkout #payment{ background:var(--gh-grund-hell) !important; border-radius:var(--gh-radius); }
.woocommerce-checkout #payment div.payment_box{ background:#fff !important; color:var(--gh-text) !important; font-size:1rem; border-radius:10px; }
.woocommerce-checkout #payment div.payment_box::before{ border-bottom-color:#fff !important; }
/* Meldungen in der Kasse: ruhig auf Papier, Rot nur als Rand */
.woocommerce-checkout #payment .woocommerce-info, .woocommerce-checkout #payment .woocommerce-notice{ background:#fff !important; color:var(--gh-text) !important; box-shadow:inset 0 0 0 1.5px var(--gh-akzent); border-radius:10px; padding:16px 20px !important; font-size:1.05rem; line-height:1.5; }
.woocommerce-checkout #payment .woocommerce-info::before{ display:none; }

/* Kasse: Haekchen gross genug, Aendern/Entfernen, Hinweis Widerruf */
.woocommerce-checkout input[type="checkbox"]{ width:24px; height:24px; margin-right:10px; vertical-align:middle; accent-color:var(--gh-akzent); }
.woocommerce-terms-and-conditions-wrapper label{ font-size:1.05rem; line-height:1.5; }
.ehc-kasse-aendern{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 22px; margin-top:10px; font-size:1rem; font-weight:400; }
.ehc-kasse-aendern a{ color:var(--gh-akzent); display:inline-flex; align-items:center; gap:8px; min-height:44px; font-weight:600; }
.ehc-kasse-aendern__anzahl{ text-decoration:underline; text-underline-offset:.15em; }
/* Entfernen: deutlicher Umrissknopf, 44 px hoch */
.ehc-kasse-aendern a.ehc-kasse-aendern__weg{ white-space:nowrap; min-height:48px; padding:0 18px; border-radius:999px; box-shadow:inset 0 0 0 1.5px var(--gh-akzent); text-decoration:none; transition:background-color .15s ease, color .15s ease; }
.ehc-kasse-aendern__weg span{ font-size:1.35em; line-height:1; }
.ehc-kasse-aendern a.ehc-kasse-aendern__weg:hover{ background:var(--gh-akzent); color:#fff; }
.ehc-kasse-aendern a:focus-visible{ outline:3px solid var(--gh-akzent); outline-offset:2px; border-radius:999px; }
/* Hinweis auf der Kartenseite (leerer Warenkorb) */
.ehc-karten-meldung{ width:90%; max-width:1180px; margin:28px auto 0; }
.ehc-karten-meldung :is(.woocommerce-message, .woocommerce-info, .woocommerce-error){ margin:0 !important; padding:16px 20px !important; border-radius:10px; background:#fff !important; color:var(--gh-text) !important;
	box-shadow:inset 0 0 0 1.5px var(--gh-akzent); font-size:1.1rem; list-style:none; }
.ehc-karten-meldung :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before{ display:none; }
.ehc-kasse-hinweis{ font-size:1rem; color:var(--gh-grau); margin:0 0 14px !important; }

/* ════ 3. Produktseite eines Abends ════
   Bild und Kaufkasten nebeneinander, gleich hoch. Der Kasten ist eine
   weisse Karte; darin das Datum als Kalenderblatt. */
.single-product #main-content .container{ width:90%; max-width:1180px; padding-top:36px; padding-bottom:104px; }
.single-product #main-content .container::before{ display:none; }
.single-product #left-area{ width:100%; float:none; padding:0 !important; margin:0; }
.single-product .woocommerce-breadcrumb{ display:none; }
.ehc-produkt-zurueck{ margin:0 0 18px !important; padding:0 !important; }
.ehc-produkt-zurueck a{ display:inline-flex; align-items:center; gap:10px; min-height:44px; font-weight:600; font-size:1.05rem; color:var(--gh-akzent); text-decoration:none; }
.ehc-produkt-zurueck a::before{ content:"←"; font-size:1.2em; line-height:1; transition:transform .2s ease; }
.ehc-produkt-zurueck a:hover{ text-decoration:underline; text-underline-offset:.18em; }
@media (hover:hover){ .ehc-produkt-zurueck a:hover::before{ transform:translateX(-3px); } }

.single-product div.product > .clearfix{ display:grid; grid-template-columns:minmax(0,1.06fr) minmax(0,1fr); gap:48px; align-items:start; }
.single-product div.product > .clearfix::before, .single-product div.product > .clearfix::after{ display:none; }
/* Bild: 4:5 oben buendig mit dem Kaufkasten, laeuft beim Scrollen mit. Kein Zoom, keine Lupe */
.single-product div.product div.images{ float:none !important; width:100% !important; margin:0 !important; opacity:1 !important; position:sticky !important; top:118px; }
.single-product div.product div.images .woocommerce-product-gallery__wrapper,
.single-product div.product div.images .woocommerce-product-gallery__image{ height:100%; margin:0; }
.single-product div.product div.images img{ display:block; width:100%; height:auto !important; aspect-ratio:4/5; object-fit:cover; object-position:50% 58%;
	border-radius:var(--gh-radius); box-shadow:0 2px 4px rgba(130,0,0,.08), 0 36px 64px -34px rgba(130,0,0,.42); }
.single-product .woocommerce-product-gallery__trigger, .single-product .flex-control-nav{ display:none !important; }

/* Kaufkasten */
.single-product div.product div.summary{ float:none; width:100%; margin:0 !important; padding:40px 44px 36px; background:#fff; border-radius:var(--gh-radius); box-shadow:var(--ehc-schatten-karte); }
.ehc-produkt-marke{ margin:0 0 8px !important; padding:0 !important; font-size:.8rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gh-akzent); }
.single-product .product_title{ font-family:var(--gh-schrift-titel); font-style:italic; font-weight:500; font-size:clamp(2.4rem,3.6vw,3.4rem); line-height:1; margin:0 0 26px !important; padding:0 !important; }

/* Datum als Kalenderblatt: Wochentag, grosse Zahl, Monat. Bricht nicht um. */
.ehc-produkt-termin{ display:flex; align-items:center; gap:24px; margin:0 0 22px; padding:0 0 24px; border-bottom:1px solid var(--gh-linie); }
.ehc-produkt-termin p{ margin:0 !important; padding:0 !important; }
.ehc-produkt-termin__blatt{ flex:none; display:flex; flex-direction:column; align-items:center; width:116px; border-radius:12px; overflow:hidden;
	background:var(--gh-grund-hell); box-shadow:inset 0 0 0 1px var(--gh-linie); text-align:center; }
.ehc-produkt-termin__wochentag{ align-self:stretch; padding:7px 4px 6px; background:var(--gh-nacht); color:#fff; font-size:1rem; font-weight:700; letter-spacing:.02em; line-height:1.2; }
.ehc-produkt-termin__tag{ padding-top:8px; font-family:var(--gh-schrift-titel); font-style:italic; font-weight:500; font-size:3.7rem; line-height:1; color:var(--gh-text); }
.ehc-produkt-termin__monat{ padding:2px 6px 11px; font-size:1rem; font-weight:600; line-height:1.2; color:var(--gh-grau); white-space:nowrap; }
.ehc-produkt-termin__mehr{ min-width:0; font-size:1.08rem; line-height:1.45; color:var(--gh-grau); }
.ehc-produkt-termin__mehr .ehc-produkt-termin__zeit{ margin-bottom:6px !important; font-family:var(--gh-schrift-titel); font-style:italic; font-weight:500; font-size:2.3rem; line-height:1; color:var(--gh-text); }

/* Preise: beide Kartenarten als Zeilen */
.ehc-produkt-preise{ margin:0 0 18px; }
.ehc-produkt-preise__zeile{ display:flex; justify-content:space-between; align-items:baseline; gap:8px 20px; flex-wrap:wrap; margin:0 !important; padding:11px 0 !important; border-bottom:1px solid var(--gh-linie); font-size:1.08rem; line-height:1.35; }
.ehc-produkt-preise__zeile > span{ flex:1 1 14em; font-weight:600; min-width:0; }
.ehc-produkt-preise__zeile strong{ white-space:nowrap; font-weight:700; }
.ehc-produkt-preise__zeile .woocommerce-Price-amount{ font-size:1.3rem; font-weight:700; color:var(--gh-text); }
.ehc-produkt-preise__zeile small{ font-size:1rem; font-weight:400; color:var(--gh-grau); }
.ehc-produkt-preise .ehc-todo{ margin:12px 0 0 !important; }

.single-product .stock{ margin:0 !important; font-size:1.1rem; font-weight:700; color:var(--gh-text) !important; }
.single-product .stock.out-of-stock{ color:var(--gh-akzent) !important; }

/* Anzahl und Summe in einer Zeile, darunter der Knopf mit Abstand */
.single-product form.cart:not(.variations_form), .single-product .woocommerce-variation-add-to-cart{ display:grid !important; grid-template-columns:auto minmax(0,1fr); align-items:center; column-gap:20px; margin:0 !important; }
.single-product form.cart:not(.variations_form) > *, .single-product .woocommerce-variation-add-to-cart > *{ grid-column:1 / -1; }
.single-product form.cart:not(.variations_form) > .quantity, .single-product .woocommerce-variation-add-to-cart > .quantity{ grid-column:1; }
.single-product form.cart:not(.variations_form) > .ehc-anzahl-summe, .single-product .woocommerce-variation-add-to-cart > .ehc-anzahl-summe{ grid-column:2; justify-self:end; text-align:right; }
.ehc-anzahl-titel{ margin:20px 0 10px !important; padding:0 !important; font-weight:700; font-size:1.05rem; }
.ehc-anzahl-summe{ margin:0 !important; padding:0 !important; line-height:1.2; }
.ehc-anzahl-summe span{ display:block; font-size:1rem; color:var(--gh-grau); }
.ehc-anzahl-summe strong, .ehc-anzahl-summe .woocommerce-Price-amount{ font-size:1.6rem; font-weight:700; color:var(--gh-text); }
.woocommerce .quantity.ehc-anzahl{ display:inline-flex; align-items:center; gap:10px; margin:0 !important; float:none; }
.woocommerce .quantity.ehc-anzahl .qty{ width:3.2em; min-height:56px; height:56px; padding:0 !important; font-size:1.5rem; font-weight:700; text-align:center;
	color:var(--gh-text) !important; -webkit-text-fill-color:var(--gh-text); opacity:1; border:1.5px solid #8a7f70; border-radius:12px; background:#fff; -moz-appearance:textfield; appearance:textfield; }
.woocommerce .quantity.ehc-anzahl .qty::-webkit-inner-spin-button, .woocommerce .quantity.ehc-anzahl .qty::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
.woocommerce .quantity.ehc-anzahl .qty:focus-visible{ outline:3px solid var(--gh-akzent); outline-offset:2px; }
.ehc-anzahl-knopf{ display:grid; place-items:center; flex:none; width:56px; height:56px; padding:0; border-radius:50%; border:1.5px solid var(--gh-akzent); background:#fff; color:var(--gh-akzent);
	font-family:var(--gh-schrift-text); font-size:1.75rem; font-weight:600; line-height:1; cursor:pointer; transition:background-color .15s ease, color .15s ease, border-color .15s ease, transform .12s ease-out; }
.ehc-anzahl-knopf span{ display:block; line-height:1; }
.ehc-anzahl-knopf:hover:not(:disabled){ background:var(--gh-akzent); color:#fff; }
.ehc-anzahl-knopf:active:not(:disabled){ transform:scale(.95); }
/* Am Rand angekommen: ruhig, aber erkennbar (kein blasses Rosa) */
.ehc-anzahl-knopf:disabled{ border-color:#d8cfc2; color:#b5aca2; background:var(--gh-grund); cursor:default; opacity:1; }
.ehc-anzahl-knopf:focus-visible{ outline:3px solid var(--gh-akzent); outline-offset:2px; }
.single-product form.cart .single_add_to_cart_button{ float:none; display:flex; justify-content:center; width:100%; margin:24px 0 0 !important; }
.ehc-produkt-weiter{ margin:14px 0 0 !important; padding:0 !important; font-size:1rem; line-height:1.5; color:var(--gh-grau); }
/* Variantenformular von WooCommerce: Kartenart als grosse Auswahl */
.single-product form.variations_form{ display:block !important; }
.single-product table.variations{ width:100%; margin:20px 0 0 !important; border:0 !important; border-collapse:collapse; }
.single-product table.variations tr, .single-product table.variations th, .single-product table.variations td{ display:block; width:100%; padding:0 !important; border:0 !important; background:none !important; text-align:left; }
.single-product table.variations th.label label{ display:block; margin:0 0 10px; font-size:1.05rem; font-weight:700; color:var(--gh-text); }
.single-product.woocommerce div.product form.cart table.variations td select{ width:100%; min-height:56px; padding:12px 44px 12px 16px; border:1.5px solid #8a7f70; border-radius:12px; background-color:#fff; color:var(--gh-text);
	font-family:var(--gh-schrift-text); font-size:18px; font-weight:600; line-height:1.3; cursor:pointer; }
.single-product.woocommerce div.product form.cart table.variations td select:focus-visible{ outline:3px solid var(--gh-akzent); outline-offset:2px; border-color:var(--gh-akzent); }
.single-product .reset_variations{ display:none !important; }
/* Preis und Bestand je Variante stehen schon oben im Kasten */
.single-product .woocommerce-variation-price, .single-product .woocommerce-variation-availability, .single-product .woocommerce-variation-description{ display:none !important; }
.single-product .single_variation_wrap .woocommerce-variation{ margin:0; }
.single-product .single_add_to_cart_button.disabled{ opacity:.5; cursor:not-allowed; }
.ehc-produkt-weiter--art{ font-weight:600; color:var(--gh-text) !important; }
.ehc-produkt-preise__zeile span small{ display:block; margin-top:2px; font-size:1rem; font-weight:400; color:var(--gh-grau); }
.single-product .woocommerce-notices-wrapper .woocommerce-message, .single-product .woocommerce-notices-wrapper .woocommerce-info, .single-product .woocommerce-notices-wrapper .woocommerce-error{
	margin:0 0 24px !important; padding:16px 20px !important; border-radius:10px; background:#fff !important; color:var(--gh-text) !important; box-shadow:inset 0 0 0 1.5px var(--gh-akzent); font-size:1.08rem; list-style:none; }
.single-product .woocommerce-notices-wrapper :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before{ display:none; }
/* Kasse: Kartenart gross, der Abend darunter */
.ehc-kasse-art{ display:block; font-size:1.15rem; font-weight:700; }
.ehc-kasse-menge{ font-weight:700; white-space:nowrap; }
/* Merkmal "Kartenart: ..." steht schon als Zeilentitel */
.woocommerce-checkout .shop_table dl.variation{ display:none; }
.woocommerce table.shop_table tbody tr, .woocommerce table.shop_table tbody td, .woocommerce table.shop_table tfoot td, .woocommerce table.shop_table tfoot th{ background:#fff !important; }
.woocommerce table.shop_table td.product-total{ vertical-align:top; padding-top:18px !important; white-space:nowrap; }
.ehc-kasse-abend{ display:block; font-size:1rem; font-weight:400; color:var(--gh-grau); }

/* PayPal-Knoepfe des Plugins hier nicht: ein Kaufknopf, die Zahlung kommt in der Kasse */
.single-product .ppc-button-wrapper{ display:none !important; }

/* Gut zu wissen: vier Rubriken unter dem Kauf */
.ehc-produkt-h2{ font-family:var(--gh-schrift-titel) !important; font-style:italic; font-weight:500 !important; font-size:clamp(2.1rem,3.6vw,3rem) !important; line-height:1.05 !important; margin:0 0 28px !important; padding:0 !important; }
.ehc-produkt-wissen{ margin-top:88px; }
.ehc-produkt-infos{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px; }
.ehc-produkt-info{ padding:28px 26px 22px; border-radius:var(--gh-radius); background:var(--gh-grund-hell); }
.ehc-produkt-info h3{ margin:0 0 10px !important; padding:0 !important; font-family:var(--gh-schrift-titel); font-style:italic; font-weight:500; font-size:1.75rem; line-height:1.1; }
.ehc-produkt-info p{ margin:0 0 10px !important; padding:0 !important; font-size:1.05rem; line-height:1.6; }
.ehc-produkt-info p:last-child{ margin-bottom:0 !important; }
.ehc-produkt-info a{ color:var(--gh-akzent); font-weight:600; text-decoration:underline; text-underline-offset:.15em; display:inline-flex; align-items:center; min-height:44px; }

/* Die anderen Abende: eine Reihe, je Abend ein Feld */
.ehc-produkt-andere{ margin-top:72px; }
.ehc-andere{ list-style:none !important; margin:0 !important; padding:0 !important; display:grid; gap:14px; }
.ehc-andere--1{ grid-template-columns:minmax(0,1fr); max-width:380px; }
.ehc-andere--2{ grid-template-columns:repeat(2, minmax(0,1fr)); }
.ehc-andere--3{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.ehc-andere--4{ grid-template-columns:repeat(4, minmax(0,1fr)); }
.ehc-andere--5{ grid-template-columns:repeat(5, minmax(0,1fr)); }
.ehc-andere--6{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.ehc-andere li{ margin:0 !important; padding:0 !important; list-style:none !important; }
.ehc-andere__eintrag{ display:flex; flex-direction:column; gap:4px; height:100%; padding:18px 20px; border-radius:12px; background:#fff; color:var(--gh-text) !important;
	text-decoration:none; box-shadow:var(--ehc-schatten-karte); transition:box-shadow .2s ease, transform .2s cubic-bezier(.23,1,.32,1); }
a.ehc-andere__eintrag:focus-visible{ outline:3px solid var(--gh-akzent); outline-offset:3px; }
.ehc-andere__tag{ font-family:var(--gh-schrift-titel); font-style:italic; font-weight:500; font-size:1.55rem; line-height:1.1; }
.ehc-andere__frei{ font-size:1rem; font-weight:600; color:var(--gh-grau); }
.ehc-andere li.ist-knapp .ehc-andere__frei{ color:var(--gh-akzent); }
.ehc-andere li.ist-aus .ehc-andere__eintrag{ background:transparent; box-shadow:inset 0 0 0 1px var(--gh-linie); color:#6f675f !important; }
@media (hover:hover) and (pointer:fine){
	a.ehc-andere__eintrag:hover{ transform:translateY(-3px); box-shadow:var(--ehc-schatten-hoch); }
	a.ehc-andere__eintrag:hover .ehc-andere__tag{ color:var(--gh-akzent); }
}
@media (prefers-reduced-motion: reduce){
	a.ehc-andere__eintrag, a.ehc-andere__eintrag:hover{ transition:none; transform:none; }
}

/* ════ 4. Media-Queries: hinter den Grundregeln ════ */
@media (max-width: 980px){
	.ehc-karten-zeile{ margin-bottom:32px !important; }
	/* Plakat oben, kleiner, laeuft nicht mit */
	.ehc-karten-kino > .ehc-karten-kino__plakat{ position:relative; flex:0 0 100% !important; width:100% !important; max-width:100% !important; }
	.ehc-karten-plakat{ max-width:300px; }
	.ehc-karten-plakat__todo{ max-width:420px; }
	.ehc-karten-kino > .ehc-karten-kino__inhalt{ flex:0 0 100% !important; width:100% !important; margin-top:8px !important; }
	.ehc-karten-kino{ row-gap:28px !important; }
	/* Handy und Tablet: die Abende frueh, die Eckdaten danach */
	.ehc-karten-kino__inhalt > .ehc-karten-kino__h2{ order:4; }
	.ehc-karten-kino__inhalt > .ehc-karten-kino__h2 + .et_pb_text{ order:5; }
	.ehc-karten-kino__inhalt > .ehc-karten-tickets{ order:6; }
	.ehc-karten-kino__inhalt > .ehc-karten-kino__fakten{ order:7; margin-top:24px !important; }
	.ehc-karten-kino__inhalt > .ehc-karten-kino__todo{ order:8; margin-bottom:24px !important; }
	.ehc-karten-kino__inhalt > .et_pb_button_module_wrapper{ order:9; }

	.single-product div.product > .clearfix{ grid-template-columns:minmax(0,1fr); gap:28px; }
	.single-product div.product div.images{ position:relative !important; top:auto; }
	.single-product div.product div.images img{ height:auto !important; min-height:0; aspect-ratio:16/10; }
	.ehc-produkt-infos{ grid-template-columns:repeat(2, minmax(0,1fr)); }
	.ehc-andere[class*="ehc-andere--"]{ grid-template-columns:minmax(0,1fr); max-width:none; gap:10px; }
	.ehc-andere__eintrag{ flex-direction:row; justify-content:space-between; align-items:center; gap:16px; padding:14px 20px; min-height:60px; }
	.ehc-andere__frei{ text-align:right; }
}
/* Kasse mobil: die Tabelle "Ihre Karten" hat nur zwei Spalten (Abend, Preis)
   und passt auch bei 320 px. Sie bleibt Tabelle, die allgemeine Regel
   "jede Zeile ein Block" (style.css, Datentabellen mobil) gilt hier nicht. */
@media (max-width: 767px){
	.woocommerce-checkout .entry-content table.shop_table{ display:table; width:100%; table-layout:auto; }
	.woocommerce-checkout .entry-content table.shop_table thead{ display:table-header-group; }
	.woocommerce-checkout .entry-content table.shop_table tbody{ display:table-row-group; }
	.woocommerce-checkout .entry-content table.shop_table tfoot{ display:table-footer-group; }
	.woocommerce-checkout .entry-content table.shop_table tr{ display:table-row; margin:0; border:0; border-radius:0; padding:0; background:#fff; }
	.woocommerce-checkout .entry-content table.shop_table td, .woocommerce-checkout .entry-content table.shop_table th{ display:table-cell; width:auto; padding:14px 14px !important; }
	.woocommerce-checkout .entry-content table.shop_table td::before{ content:none !important; }
	.woocommerce-checkout .entry-content table.shop_table td.product-total, .woocommerce-checkout .entry-content table.shop_table tfoot td{ text-align:right; }
	.woocommerce-checkout .entry-content table.shop_table thead th:last-child{ text-align:right; }
}
@media (max-width: 600px){
	.ehc-karten-abende .ehc-abendliste{ grid-template-columns:minmax(0,1fr); gap:18px; }
	.ehc-karten-abende .ehc-abendliste__tag{ font-size:1.9rem; padding:22px 24px 0; }
	.ehc-karten-abende .ehc-abendliste .ehc-balken{ margin:14px 24px 0; }
	.ehc-karten-abende .ehc-abendliste__frei{ padding:10px 24px 20px; }
	.ehc-karten-abende .ehc-abendliste__link::after, .ehc-karten-abende .ehc-abendliste li.ist-aus .ehc-abendliste__frei{ padding:0 24px; }
	.ehc-karten-plakat{ max-width:180px; }
	.ehc-karten-kopf .ehc-lead p{ font-size:18px !important; }
	.ehc-eckdaten.ehc-fakten{ grid-template-columns:minmax(0,1fr); }
	.ehc-preis.ehc-preis--liste{ padding:4px 22px !important; }
	.ehc-preis.ehc-preis--liste p{ flex-wrap:wrap; gap:4px 16px; }
	.ehc-preis.ehc-preis--liste strong{ font-size:2.3rem; }
	.ehc-karten-hinweis{ padding:28px 24px 24px !important; }

	.single-product #main-content .container{ padding-top:20px; padding-bottom:72px; }
	.single-product div.product div.images img{ aspect-ratio:4/3; }
	.single-product div.product div.summary{ padding:28px 22px 26px; }
	.ehc-produkt-termin{ gap:18px; }
	.ehc-produkt-termin__blatt{ width:100px; }
	.ehc-produkt-termin__tag{ font-size:3.2rem; }
	.ehc-produkt-termin__mehr .ehc-produkt-termin__zeit{ font-size:2rem; }
	.ehc-produkt-infos{ grid-template-columns:minmax(0,1fr); gap:16px; }
	.ehc-produkt-wissen{ margin-top:64px; }
	.ehc-produkt-andere{ margin-top:56px; }
	.ehc-kasse-schritte li{ font-size:1rem; padding-right:14px !important; }
}
@media (max-width: 360px){
	.single-product form.cart{ column-gap:12px; }
	.woocommerce .quantity.ehc-anzahl{ gap:6px; }
	.ehc-anzahl-knopf{ width:52px; height:52px; }
	.woocommerce .quantity.ehc-anzahl .qty{ width:2.6em; }
}

/* ── Pruefrunde 3 ── */
/* Ohne Zahlart kein leerer Streifen unter dem Hinweis */
.woocommerce-checkout #payment ul.payment_methods:has(> li.woocommerce-notice:only-child),
.woocommerce-checkout #payment ul.payment_methods:has(> li.woocommerce-info:only-child){ margin-bottom:0 !important; padding-bottom:0 !important; border-bottom:0 !important; }
/* Bestelltabelle: nie breiter als die Spalte (320 px) */
@media (max-width: 480px){
	.woocommerce-checkout .woocommerce-checkout-review-order-table{ table-layout:fixed !important; width:100% !important; }
	.woocommerce-checkout .woocommerce-checkout-review-order-table th:last-child,
	.woocommerce-checkout .woocommerce-checkout-review-order-table td:last-child{ width:8.5em; text-align:right; }
	.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name{ overflow-wrap:anywhere; }
	.ehc-kasse-aendern a.ehc-kasse-aendern__weg{ white-space:nowrap; overflow-wrap:normal; }
	.woocommerce table.shop_table td, .woocommerce table.shop_table th{ padding:12px 12px !important; }
	/* "Zahlungspflichtig bestellen" in einer Zeile */
	html body #page-container .woocommerce #payment #place_order{ padding-left:16px !important; padding-right:16px !important; font-size:1.05rem !important; letter-spacing:0; white-space:nowrap; }
}
@media (max-width: 360px){
	html body #page-container .woocommerce #payment #place_order{ padding-left:12px !important; padding-right:12px !important; font-size:1rem !important; }
}

/* Produkt bei schmalen Handys: "Zusammen" unter die Anzahl statt daneben */
@media (max-width: 400px){
	.single-product form.cart:not(.variations_form) > .ehc-anzahl-summe, .single-product .woocommerce-variation-add-to-cart > .ehc-anzahl-summe{ grid-column:1 / -1; justify-self:start; text-align:left; margin-top:12px !important; }
	.ehc-anzahl-summe span{ display:inline; margin-right:.4em; }
}
/* Spielzeit-Tafel mobil: quer statt Plakatformat, volle Breite, kein Sticky-Versatz */
@media (max-width: 980px){
	.ehc-karten-kino > .ehc-karten-kino__plakat{ top:auto !important; }
	.ehc-karten-plakat:has(.ehc-spielzeit-tafel){ max-width:none !important; }
}

/* Schrittanzeige der Kasse: auf dem Handy untereinander, nie 1 + 2 */
@media (max-width: 480px){
	.ehc-kasse-schritte{ flex-direction:column; align-items:flex-start; flex-wrap:nowrap; }
}
