/* ==========================================================================
   responsive.css - Grundlage der Handy-Optimierung, angelegt 2026-07-25
   ==========================================================================
   Wird in index.php als LETZTE Template-Datei geladen. Ihre Regeln
   ueberschreiben daher position.css, layout.css, general.css und das
   aktive Farbschema nature.css.

   Warum eine eigene Datei: layout.css, position.css und general.css
   enthalten zusammen keine einzige Media Query. Die vorhandenen stecken
   in den Farbschemata und in vm-ltr-site.css. Bestehende Regeln umzubauen
   waere riskant und schwer nachvollziehbar - ergaenzen ist sauberer.

   Alle Werte unten sind im Browser gemessen (Chrome DevTools, 390x844,
   Geraetefaktor 3), nicht geschaetzt.
   ========================================================================== */


/* --------------------------------------------------------------------------
   Aus dem Markup hierher verschoben
   --------------------------------------------------------------------------
   In index.php standen feste Pixelhoehen als style="..." direkt im HTML.
   Inline-Stile schlagen jede Media Query - sie waren das eigentliche
   Hindernis fuer eine anpassbare Darstellung. Von den vier Hoehen wurden
   drei an Elementen gesetzt, die gar nicht gerendert werden (#line und
   #fontsize erscheinen nur bei aktiver Schriftgroessen-Wahl oder einem
   Modul in position-0 - beides ist nicht der Fall).
   -------------------------------------------------------------------------- */
#header {
	height: 60px;
}


/* --------------------------------------------------------------------------
   Sicherheitsnetz: nichts darf breiter werden als das Geraet
   -------------------------------------------------------------------------- */
img {
	max-width: 100%;
	height: auto;
}


/* --------------------------------------------------------------------------
   Lauftext ueberlagert den Menuepunkt "Event" - betrifft nur PC/breite
   Fenster, deshalb ausserhalb der Media Query
   --------------------------------------------------------------------------
   Ursache ist KEIN Float-Problem (erster Versuch mit Clearfix hat nicht
   gewirkt) - "ul.menu" innerhalb von "#menuwrapper" ist "position:absolute;
   top:0; left:0" (hide.js/nature.css, fuer die Handy-Aufklapplogik gedacht).
   Absolut positionierte Elemente tragen NICHTS zur Hoehe ihres Elters bei,
   "#menuwrapper" bleibt deshalb 0px hoch, und der danach folgende Lauftext
   ".headlineMarquee" (layout.css: margin-left:40%) beginnt an derselben
   Y-Position wie das Menu, statt darunter. Gemessen bei 800px: "Event"
   bei left 401-474/top 0-49, das gesamte "ul.menu" bei left 0-774 (Box-
   Breite, nicht Inhaltsbreite - die 5 Menuepunkte fuellen nur ca. 474px).
   Robuste Lösung waere JS-Messung der tatsaechlichen Menu-Breite; hier
   pragmatisch ein fester Wert etwas ueber den gemessenen 474px - bei
   Aenderungen an der Menuepunkt-Anzahl/-Laenge nachmessen und anpassen. */
.headlineMarquee {
	margin-left: 500px;
}


/* --------------------------------------------------------------------------
   "Kontakt"-Button: Text unsichtbar (PC und Handy)
   --------------------------------------------------------------------------
   Der Link steckt direkt im Modul-Inhalt mit einem Tippfehler:
   style="color: ffffff" - ohne "#" ist das kein gueltiger Farbwert, der
   Browser ignoriert die ganze Angabe und faellt auf die dunkle Linkfarbe
   (#272d34) zurueck, die auf dem ebenfalls dunklen Knopf unsichtbar ist.
   Nicht im Template behebbar (Inhalt, keine Vorlage) - deshalb hier per
   CSS auf die schon verwendete helle Schriftfarbe gesetzt. */
#nav .button a {
	color: #f7f5d4 !important;
}


/* --------------------------------------------------------------------------
   ExtraWatch-Link: ueberall aus, nicht nur auf dem Handy
   --------------------------------------------------------------------------
   Tracking soll laut User weiterlaufen (Auswertung im Backend), nur die
   sichtbare Verlinkung zu extrawatch.com soll verschwinden - auf JEDER
   Bildschirmbreite, deshalb bewusst ausserhalb der Media Query. */
img[alt="Real time web analytics, Heat map tracking"],
a[href="http://www.extrawatch.com"] {
	display: none;
}


/* --------------------------------------------------------------------------
   Kategorie-Leiste (#pvmc-wrap/#pvmc-menu) ueberlagert nachfolgenden Inhalt,
   wenn sie umbricht - betrifft PC UND Handy, deshalb ausserhalb der Media
   Query
   --------------------------------------------------------------------------
   Fremdmodul mod_phoca_vm_category ist ein Flex-Menu mit "flex-wrap:wrap",
   aber fest auf "height:43px" gesetzt - passend fuer GENAU EINE Zeile.
   Sobald die Kategorienamen in mehr als eine Zeile umbrechen (auf dem Handy
   schon bei wenigen Eintraegen, am PC gemessen bei 1280px Fensterbreite und
   der vollen Kategorienliste: 5 statt 1 Zeile), bleibt die Box trotzdem
   43px hoch (overflow:visible) - die zusaetzlichen Zeilen haengen sichtbar
   ueber der "Zurueck zur Kategorie"-Zeile und der Artikelueberschrift der
   Produktdetailseite, statt sie nach unten zu verdraengen. Urspruenglich nur
   fuer das Handy behoben (Fund auf /home/100/100), User meldete den PC-Fall
   am 2026-07-28 auf der Produktdetailseite.
   !important noetig: das Modul registriert seine eigene style.css erst beim
   Rendern der Modulposition, dadurch landet sie im <head> HINTER
   responsive.css, obwohl responsive.css als letzte Template-Datei
   eingebunden wird - bei gleicher Spezifitaet (beides ID-Selektoren) gewinnt
   sonst die spaeter geladene Modul-Regel. */
#pvmc-wrap,
#pvmc-menu {
	height: auto !important;
}


/* --------------------------------------------------------------------------
   Shopname-Text und Icon-Leiste: nur auf dem Handy sichtbar
   --------------------------------------------------------------------------
   Beide sind PHP/HTML-seitig immer vorhanden (fuer Suchmaschinen bzw. weil
   die Icon-Leiste sonst gar nicht existieren wuerde), sollen aber laut User
   nur auf dem Handy ANGEZEIGT werden - am PC sass der Shopname-Text sonst
   ungestylt ueber dem Kopfbild, und die Icon-Leiste hatte keine Desktop-
   Gestaltung. Standardmaessig ausgeblendet, in der Media Query weiter unten
   wieder eingeschaltet. */
.logoheader .header1,
.icon-toolbar {
	display: none !important;
}


/* --------------------------------------------------------------------------
   Klickflaeche der Auf-/Zuklapp-Ueberschriften (Warenkorb, Aktion, ...)
   --------------------------------------------------------------------------
   Betrifft PC UND Handy gleichermassen, deshalb bewusst AUSSERHALB der
   Media Query. layout.css (Zeile 962-966) positioniert den eigentlichen
   Link "a.opencloselink" nur mit right:0/top:0 - er deckt deshalb nur das
   kleine Plus/Minus-Symbol ab, nicht die ganze dunkle Balkenflaeche.
   Der Text "Warenkorb"/"Aktion" selbst steht als reiner Text direkt in der
   <h3> und hat gar keinen Klick-Handler - nur ein Antippen des kleinen
   Symbols oeffnet das Modul. left:0/bottom:0 ergaenzt (h3 hat bereits
   position:relative aus layout.css), das Symbol bleibt per Flexbox rechts
   verankert, sieht optisch also unveraendert aus. */
h3.js_heading a.opencloselink {
	left: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding-right: 10px;
	box-sizing: border-box;
}


/* --------------------------------------------------------------------------
   Handy und schmale Fenster
   -------------------------------------------------------------------------- */
/* 2026-07-26 spaetabends: Schwelle von 900px auf 640px gesenkt. Bei 900px
   griff das Handy-Layout (Shopname/Icon-Leiste/Menue-Reihenfolge/versteckter
   ExtraWatch-Link etc.) auch in einem normalen, nicht maximierten PC-
   Browserfenster - vom User am Desktop beobachtet. 640px liegt sicher ueber
   allen getesteten Handy-Breiten (390px) und sicher unter ueblichen Desktop-
   Fensterbreiten. */
@media screen and (max-width: 640px) {

	/* WICHTIGSTE REGEL.
	   #header ist position:fixed und liegt ueber dem Inhalt - #all, #back
	   und #contentarea beginnen alle bei 0, es gibt keinen Ausgleich. Auf
	   dem Desktop faellt das nicht auf: der Kopf ist 60px hoch und
	   durchsichtig. Auf einem 390px-Bildschirm wird daraus ein 370px hoher
	   Deckel, der die halbe Seite verdeckt (gemessen).

	   !important ist hier leider noetig: nature.css setzt
	       #header { position: fixed !important; }
	   Genau daran scheitert auch die HANDY-REGEL IN NATURE.CSS SELBST -
	   dort steht zwei Bloecke weiter unten
	       @media only screen and (max-width: 480px) { #header { position: relative; } }
	   ohne !important, und sie hat deshalb noch nie gewirkt. Der Versuch,
	   dieses Template handytauglich zu machen, ist an einer einzigen Zeile
	   gescheitert. Sauberer waere, das !important in nature.css zu
	   entfernen - das aendert aber auch die Desktop-Ansicht und gehoert
	   geprueft, nicht nebenbei erledigt. */
	#header {
		position: static !important;
		height: auto !important;
		min-height: 0;
	}

	/* nature.css setzt fuer den Handy-Breakpoint "#header{padding-top:3em}"
	   (siehe eigener Block dort) - das war Luft ueber dem Menuepunkt, als
	   dieser noch das erste sichtbare Element war. Jetzt steht der Shopname
	   zuerst, der Abstand ist nur noch ungenutzte Leerflaeche. */
	#header {
		padding-top: 0;
	}

	/* #mobile_select h2 hat "margin-top:-17px" (nature.css) - zog den Button
	   frueher unauffaellig nach oben, weil ueber ihm nur der leere Abstand
	   von eben stand. Jetzt steht die Bildwerbung darueber, und der negative
	   Abstand zieht den Button 17px in das Bild hinein. */
	#mobile_select h2 {
		margin-top: 0;
	}

	/* Das aufgeklappte Menue nutzt am Desktop bereits unsere Farben (nature.css
	   Zeile 182-201: Text/Rahmen #272d34, bei :hover Hintergrund #272d34 mit
	   cremefarbenem Text #f7f5d4). Der eigene Handy-Block in nature.css
	   (Zeile 502-513) ueberschreibt das aber auf neutrales Hellgrau/Weiss
	   (#fff, #eee, #444, #ccc) - passt nicht zum uebrigen dunklen Kopfbereich.
	   Hier die bereits etablierten Farben zurückgeholt statt neue erfunden. */
	#menuwrapper {
		background: #272d34;
	}
	#header ul.menu li a:link,
	#header ul.menu li a:visited {
		background: #272d34;
		color: #f7f5d4;
		border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	}
	#header ul.menu li a:hover,
	#header ul.menu li a:active,
	#header ul.menu li a:focus {
		background: #f7f5d4;
		color: #272d34;
	}

	/* Lauftext darf auf dem Handy links anfangen - die Navigation ist
	   ohnehin hinter dem Menue-Button versteckt, das margin-left:40% aus
	   layout.css (fuer die PC-Navigation gedacht) wird nicht gebraucht. */
	.headlineMarquee {
		margin-left: 0;
		width: 100%;
	}

	/* Grüner Verlauf (#004746 -> #f6f1e5) ist die Farbe des unbenutzten
	   "nature"-Farbschemas von Beez3, nicht die Schop-Farben. #272d34 ist
	   KEINE neue Farbe - dasselbe Dunkelanthrazit tragen schon die Buttons
	   "Suche" und "Anmelden" (nature.css, Zeile ~218), hier nur konsequent
	   auch fuer Kopfbereich, Namensbox und Menu-Button verwendet. */
	#header {
		background: #272d34;
	}
	.logoheader {
		background: #272d34;
	}
	#mobile_select h2 {
		background: #272d34;
		text-align: center;
	}

	/* Echter Fehler in nature.css (Zeile 139-142): eine Aufzaehlung von
	   :hover/:active/:focus-Regeln fuer Buttons vergisst ausgerechnet bei
	   "#mobile_select h2 a" das ":hover" - der Button zeigt deshalb DAUERHAFT
	   die Maus-ueber-Farbe (hsl(165,27%,27%), ein Gruenton) statt der
	   normalen Button-Farbe #272d34 aus Zeile 215-225. Hier zurueckgesetzt,
	   nature.css selbst bewusst nicht angefasst (Desktop-Wirkung ungeprueft). */
	#mobile_select h2 a {
		background-color: #272d34;
		background-image: none;
		border-color: #272d34;
	}

	/* Feste Breiten, die groesser sind als das Geraet: gemessen 445px
	   (.logoheader), 425px (#logo) und 415px (.header1) bei 390px Schirm.
	   Der negative Aussenabstand stammt aus nature.css
	   (margin: -15px 100px 0 auto). Bewusst nur max-width statt width:auto -
	   seit das Logo-Bild raus ist, hat .logoheader keinen eigenen Inhalt
	   mehr und wuerde sonst auf 20px zusammenfallen. */
	.logoheader,
	#logo,
	.header1 {
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
		box-sizing: border-box;
	}

	/* #logo traegt eigenes Padding (position.css: "padding: 1em 20px 20px 10px"),
	   .header1 zusaetzlich "padding-left: 55px" (Platz fuer das entfernte Logo-
	   Bild). Im Content-Box-Modell (Browser-Vorgabe) wird Padding zur Breite
	   ADDIERT statt eingerechnet - max-width:100% allein reichte deshalb nicht,
	   #logo blieb bei gemessenen 410px (390 + 20px rechtes Padding). Mit
	   border-box zaehlt das Padding zur Breite dazu, die Box passt exakt. */

	/* #wrapper2 ist die Zwei-Spalten-Aufteilung fuer Inhalt (71%) + Randspalte
	   (position.css). Auf 390px ergibt das keinen Sinn - beide Spalten muessen
	   volle Breite bekommen und untereinander stehen statt nebeneinander.
	   Gemessen: #wrapper2 blieb bei 385px + 20px linkem Versatz = 405px. */
	#wrapper,
	#wrapper2 {
		width: 100% !important;
		max-width: 100% !important;
		float: none !important;
	}

	/* Das Suchformular des Filtermoduls (mod_cf_search) ist ein <form> im
	   #header - und layout.css hat eine Regel "#header form", die fuer ein
	   ganz anderes Dropdown gedacht ist (Login-/Newsletter-Popup):
	       #header form { position: absolute; top: 150%; left: 83%;
	           transform: translate(-50%, -50%); margin-right: -50%;
	           border-style: solid; border-bottom-width: thick; ... }
	   Die ID-Selektor-Regel (Spezifitaet 101) schlaegt die alte, praefix-
	   basierte Fassung dieser Regel (Spezifitaet 11) unabhaengig von der
	   Ladereihenfolge - deshalb wirkte "position: static" hier bisher NICHT.
	   Gemessen (390px Breite): computed position blieb "absolute", left blieb
	   bei 83% = 323.7px, die Suche ragte 133px ueber den Bildschirmrand
	   hinaus und war die alleinige Ursache des horizontalen Scrollens.
	   transform wirkt unabhaengig von position und muss separat zurueckgesetzt
	   werden - sonst verschiebt translate(-50%,-50%) das Feld weiterhin. */
	form[id^="cf_form_"],
	div[id^="cf_wrapp_all_"] {
		position: static !important;
		top: auto !important;
		left: auto !important;
		transform: none !important;
		margin-right: 0 !important;
		border: none !important;
		width: auto;
		max-width: 100%;
		box-sizing: border-box;
	}

	form[id^="cf_form_"] input[type="text"],
	form[id^="cf_form_"] input[id^="q_"] {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	/* .logoheader ist hier dunkel (nature.css, Zeile ~484: background:#004746),
	   der Text aber schwarz (nature.css .logoheader{color:#000}) - auf dem
	   Desktop stand da noch das Logo-Bild darueber, auf dem Handy waere der
	   jetzt sichtbare Seitenname unlesbar. padding-left:55px auf .header1
	   war Platz fuer das inzwischen entfernte Logo-Bild und wird nicht mehr
	   gebraucht. */
	.logoheader,
	.logoheader .header1 {
		color: #fff;
	}
	#logo span.header1 {
		padding-left: 10px;
	}

	/* Der Menu-Button (aus hide.js: #mobile_select > h2 > a#menuopener) wird
	   von nature.css als volle Kopfzeile gerendert: "#mobile_select h2 {
	   background:#004746; text-align:right}" - ohne eigene Hoehen-/Zeilen-
	   angabe, deshalb zieht die H2 die Vorgabe des Browsers (~1.5em) und
	   wirkt aufgeblaeht. Kompakte Ausmasse, Position rechts wie im Original
	   beibehalten - eine Verschiebung nach links (wie bei whisky.de) ist ein
	   eigener naechster Schritt, kein Bugfix. */
	#mobile_select h2 {
		line-height: normal;
	}
	#mobile_select h2 a {
		font-size: 0.95em;
		padding: 8px 14px;
	}

	/* Die Hoehen-Korrektur fuer #pvmc-wrap/#pvmc-menu ist jetzt UNIVERSAL
	   (ausserhalb der Media Query, siehe oben) - sie trat auch am PC auf,
	   siehe dortiger Kommentar. Hier nur noch die mobile Zentrierung. */
	#pvmc-menu {
		justify-content: center !important;
	}

	/* .pvmc-submenu (Desktop-Hover-Dropdown fuer "Whisky & Whiskey" etc.) ist
	   per Default weit ausserhalb des Bildschirms positioniert (links negativ,
	   sichtbar erst bei :hover mit "left:-1px"), aber gleichzeitig extrem
	   breit (~19000px) - der RECHTE Rand ragt dadurch trotzdem ins Bild
	   hinein und ueberlagert die folgenden Kategorie-Buttons. Auf dem Handy
	   gibt es kein Hover, das Untermenue kann also ohnehin nicht bedient
	   werden - deshalb komplett ausgeblendet statt die Positionsrechnung zu
	   reparieren. Tippen auf "Whisky & Whiskey" fuehrt weiterhin direkt zur
	   Kategorieseite, nur der Untermenue-Sprung zu einzelnen Unterkategorien
	   entfaellt auf dem Handy. */
	#pvmc-menu .pvmc-submenu {
		display: none !important;
	}

	/* Icon-Leiste (Suche/Konto/Warenkorb), an whisky.de angelehnt - eigene
	   SVG-Symbole, siehe index.php. Sitzt zwischen Namensbox und Menu,
	   zentriert, dieselbe dunkle Farbe wie Kopfbereich/Namensbox/Menu-Button
	   fuer einen einheitlichen Kopfbereich. */
	.icon-toolbar {
		display: flex !important;
		width: 100%;
		justify-content: center;
		gap: 48px;
		background: #272d34;
		padding: 14px 0;
		box-sizing: border-box;
	}
	.icon-toolbar a {
		color: #fff;
		display: block;
		line-height: 0;
	}

	/* Buttons in der Seitenspalte (#nav, Newsletter/Widerruf) haben ganz
	   unterschiedliche Breiten: "Abonnieren" und "Widerruf anmelden" tragen
	   dieselben Klassen, sind aber prozentual berechnet und landen bei
	   verschiedenen Elternbreiten auf 334px bzw. 189px; "Abbestellen" hat
	   gar keine Breitenregel und faellt auf seine Textbreite (79px) zurueck.
	   Alle auf volle Breite vereinheitlicht - passt zu "Suche"/"Anmelden"
	   und den Warenkorb-Buttons, die schon volle Breite haben. */
	#nav .button {
		width: 100% !important;
		box-sizing: border-box !important;
		display: block !important;
	}

	/* Rahmen bei Newsletter-Spalte (#nav) und Inhalts-/Kategoriebereich
	   (#main) weg, Hintergrund stattdessen ueber die volle Breite (User-
	   Wunsch, sieht auf dem Handy besser aus als die "schwebende Karte").
	   Beide teilen dieselben Werte (border:2.67px outset, radius:15px,
	   Hintergrund #f7f5d4/rgb(247,245,212)) - vermutlich ein gemeinsames
	   "Karten"-Muster. #contentarea hat "padding:0 20px !important"
	   (position.css) - negativer Aussenabstand hebt das fuer diese beiden
	   Elemente auf, ein passendes Innenpolster haelt den Text trotzdem auf
	   Abstand vom Bildschirmrand. */
	#nav,
	#main {
		border: none !important;
		border-radius: 0 !important;
		background: #f7f5d4;
		margin-left: -20px !important;
		margin-right: -20px !important;
		margin-top: 0 !important;
		width: calc(100% + 40px) !important;
		padding-left: 20px;
		padding-right: 20px;
		box-sizing: border-box;
	}

	/* Shopname mittig statt linksbuendig, UND wieder sichtbar (Standard-Regel
	   weiter oben blendet .logoheader .header1 fuer den PC aus - hier mit
	   mindestens derselben Selektor-Spezifitaet zurueckgeholt). */
	.logoheader .header1 {
		display: block !important;
		text-align: center;
	}

	/* Produkte auf Handy zweispaltig statt einspaltig (User-Wunsch 2026-07-27).
	   vm-ltr-site.css bringt dafuer schon Ansaetze mit (Zeile ~1512-1564),
	   die sich aber gegenseitig aushebeln: "div.product{width:49%}" (480px)
	   wird von "div[class*=\"vm-col-\"]{width:100%}" (ebenfalls 480px, aber
	   spaeter in der Datei) mit gleicher Spezifitaet zurueckgeworfen - reine
	   Quellreihenfolge entscheidet. Gemessen: tatsaechliche Klasse pro
	   Produkt ist "product vm-col vm-col-4" (4 Produkte pro PHP-Zeile,
	   sublayouts/products.php), macht bei 2 Spalten also saubere 2x2-Bloecke
	   ohne einzelnen Rest. "!important" hier noetig, um unabhaengig von der
	   Ladereihenfolge sicher zu gewinnen; ".row" ist bereits
	   "display:flex;flex-wrap:wrap" (vm-ltr-site.css Zeile 1434), das
	   Umbrechen auf 2 pro Zeile passiert dadurch automatisch.
	   "min-width:0" zusaetzlich noetig: "div.product{min-width:220px}"
	   (vm-ltr-site.css Zeile 1312) gewinnt sonst gegen "width:50%" (bei
	   390px Schirm sind 50% nur 175px, unter dem Mindestmass) - erster
	   Versuch ohne dieses Reset wirkte optisch wie gar keine Aenderung
	   (Elemente blieben 220px breit, wieder nur eines pro Zeile). */
	div.product.vm-col {
		width: 50% !important;
		min-width: 0 !important;
		box-sizing: border-box;
	}

	/* Preis auf der Produktkachel viel zu gross, ueberlagerte sich mit dem
	   Nachbarprodukt (User-Meldung 2026-07-28). Ursache: vm-ltr-common.css
	   setzt "font-size:150%" pauschal auf JEDES <span> innerhalb einer
	   Produktkachel (".browse-view .row .product .spacer span") - eine
	   PC-Regel, die den Preis dort optisch hervorheben sollte. Alle anderen
	   betroffenen Texte (Alkoholgehalt/Inhalt/Herkunftsland etc.) haben
	   bereits eine eigene, kleinere Schriftgroesse und werden dadurch nicht
	   auffaellig - nur "Preis:" und der Preiswert selbst haben keine
	   spezifischere Regel und blieben bei 150% (gemessen 28.8px bei 19.2px
	   Basisschrift). Bei den jetzt 175px breiten Spalten (zweispaltig,
	   siehe oben) reichte das nicht mehr fuer eine Zeile - "18,00" und "€"
	   rissen auseinander und beruehrten die Nachbarspalte. Zurueck auf
	   100% (= normale Basisschrift der Kachel), nur auf dem Handy. */
	.browse-view .row .product .spacer span.vm-price-desc,
	.browse-view .row .product .spacer span.PricesalesPrice {
		font-size: 100% !important;
	}

	/* Produktdetails-Reiter als Akkordeon statt Tab-Leiste (Plugin "Regular
	   Labs Tabs" - media/tabs/css/style.css, Klassen rl_tabs/nn_tabs, NICHT
	   template-eigen, deshalb hier statt dort ueberschrieben). Die
	   Original-Reiterleiste (".nav-tabs") wird versteckt, die eigenen
	   Kopfzeilen kommen aus mobile-reorder.js (".mobile-tab-heading").
	   Sichtbarkeit der Inhalte laeuft komplett ueber die eigene Klasse
	   ".mobile-tab-open" statt ueber ".active" - unabhaengig davon, was das
	   Plugin selbst an Klassen setzt oder nicht (dessen eigene Klick-Logik
	   greift nach dem Verstecken der Reiterleiste ohnehin nicht mehr). */
	/* "!important" noetig: ".rl_tabs.align_justify > ul.nav-tabs{display:table}"
	   (media/tabs/css/style.css) hat dieselbe Spezifitaet (zwei Klassen) und
	   wird von einem Joomla-Systemplugin per addStyleSheet eingebunden - laedt
	   dadurch unabhaengig von der eigentlichen Dateireihenfolge oft NACH
	   responsive.css (dasselbe Muster wie schon bei mod_phoca_vm_category). */
	.rl_tabs > ul.nav-tabs {
		display: none !important;
	}
	.rl_tabs .tab-pane {
		display: none !important;
	}
	.rl_tabs .tab-pane.mobile-tab-open {
		display: block !important;
	}

	/* Gleicher dunkler Button-Stil wie die Warenkorb/Aktion-Kopfzeilen
	   (h3.js_heading, nature.css Zeile ~215-224: #272d34/#f7f5d4) - passt zum
	   uebrigen Kopfbereich statt eine dritte Akkordeon-Optik einzufuehren. */
	.mobile-tab-heading {
		display: block;
		width: 100%;
		box-sizing: border-box;
		text-align: left;
		background-color: #272d34;
		color: #f7f5d4;
		border: none;
		border-top: 1px solid rgba(255, 255, 255, 0.15);
		padding: 12px 40px 12px 16px;
		font-size: 1em;
		font-weight: bold;
		position: relative;
	}
	.mobile-tab-heading:first-of-type {
		border-top: none;
	}
	.mobile-tab-heading::after {
		content: "+";
		position: absolute;
		right: 16px;
		top: 50%;
		transform: translateY(-50%);
	}
	.mobile-tab-heading[aria-expanded="true"]::after {
		content: "\2013";
	}

	/* Zwei-Spalten-Tabelle im "Uebersicht"-Reiter der Produktdetailseite
	   (productdetails/default.php Zeile 137: Bild links/Details rechts, fest
	   im Template, kein Produktinhalt) sprengt auf dem Handy die Breite -
	   Tabellen-Auto-Layout weicht "width:95%" auf, sobald der Inhalt (Bild,
	   Warenkorb-Formular) von sich aus breiter ist. Tabellen-Semantik
	   komplett abschalten (display:block auf allen drei Ebenen) macht daraus
	   einen normalen, gestapelten Block - robuster als die Prozentbreiten zu
	   reparieren. Eigene Klasse ergaenzt, das inline style bleibt fuer den
	   PC unangetastet (dort wirkungslos: "left"/"clear" greifen nur bei
	   position:relative/absolute/fixed, eine Tabelle ist "position:static"). */
	.vm-product-overview-table,
	.vm-product-overview-table tbody,
	.vm-product-overview-table tr,
	.vm-product-overview-table td {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	/* Versandarten-/Zahlungsarten-Icons (dieselbe Datei, Zeile 175) sind per
	   "position:absolute; right:74.5%; bottom:7.5%" auf eine ganz bestimmte
	   Stelle der PC-Zwei-Spalten-Tabelle gepinnt - auf dem Handy (Tabelle
	   jetzt gestapelt statt zweispaltig) landen die Prozentwerte irgendwo
	   mitten im Text und ueberlappen ihn. Zurueck in den normalen Textfluss
	   geholt. */
	.vm-shipping-payment-icons {
		position: static !important;
		justify-content: center;
	}

	/* Warenkorb-Tabelle (cart/default_pricelist.php): eine feste 8-spaltige
	   Tabelle (Name/Artikelnummer/Netto/Brutto/Menge/USt/leer/Summe), viele
	   Zeilen nutzen "colspan" quer ueber mehrere Spalten fuer eine Beschriftung
	   und lassen den eigentlichen Wert in einer schmalen Restspalte stehen
	   (User-Meldung 2026-07-28: "Rechnungsfuss sieht chaotisch aus" - Beispiel
	   "Brutto Summe:" / Wert lag beim Kopieren durch die Spaltenaufteilung
	   augenscheinlich in der falschen Reihenfolge). Bei 390px reicht die
	   Breite fuer 8 Spalten nicht, die rechten Spalten (die Preise!) liegen
	   ausserhalb des Bildschirms. Gleiches Prinzip wie bei der Zwei-Spalten-
	   Tabelle der Produktdetailseite gestern: Tabellen-Semantik abschalten,
	   jede Zelle wird ein normaler gestapelter Block - Beschriftung und Preis
	   stehen dann direkt untereinander statt in unsichtbaren Spalten.
	   Echte Leerzellen (nur Gitter-Fuellung, kein "&nbsp;") ausgeblendet,
	   sonst blieben pro Zeile 2-3 leere Zeilen uebrig. */
	.cart-summary,
	.cart-summary tbody,
	.cart-summary tr,
	.cart-summary th,
	.cart-summary td {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
		text-align: left !important;
	}
	.cart-summary td:empty,
	.cart-summary th:empty {
		display: none !important;
	}
	.cart-summary .cart-images {
		display: inline-block;
		max-width: 120px;
	}

	/* Der neue Rechnungsfuss (.cart-total-summary, vm-ltr-site.css) ist auf dem
	   PC bewusst nur 50%/420px breit. Auf dem Handy ist daneben kein Platz fuer
	   eine zweite Spalte - volle Breite nutzen, sonst quetschen sich Label und
	   Preis auf 420px zusammen, obwohl der ganze Bildschirm zur Verfuegung steht. */
	.cart-total-summary {
		width: 100%;
		max-width: 100%;
	}

	/* body#shadow in layout.css setzt background-attachment: fixed.
	   Auf Mobilgeraeten ein bekannter Problemfall: iOS Safari rendert es
	   zusammen mit background-size: cover falsch, und jedes Scrollen
	   kostet Rechenzeit, weil der Hintergrund neu gezeichnet wird. */
	body#shadow {
		background-attachment: scroll;
	}
}


/* --------------------------------------------------------------------------
   Handys: Kopfbild ganz abschalten
   --------------------------------------------------------------------------
   layout.css laedt big-market-whisky-10-big.jpg (603 KB) als Hintergrund von
   body#shadow. Auf dem Handy deckt der dunkle Kopfbereich + die gestapelten
   Inhalte ohnehin fast die ganze Breite ab - das Bild ist praktisch nicht
   sichtbar (User-Rueckmeldung 2026-07-26). Frueher wurde hier stattdessen
   eine verkleinerte Fassung geladen (big-market-whisky-10-mobile.jpg,
   133 KB, per PHP-GD erzeugt) - die Datei bleibt auf dem Server, wird aber
   nicht mehr referenziert. Ganz weg spart mehr als eine kleinere Fassung. */
@media screen and (max-width: 640px) {
	body#shadow {
		background-image: none;
	}
}
