/* ==========================================================================
   gewichtreduces5 — modernes Joomla-5-Template (weiß + blau)
   Vanilla CSS, kein Bootstrap/Tailwind. Self-hosted Fonts (GDPR-freundlich).
   ========================================================================== */

/* ---------- Fonts (self-hosted: Nunito + Poppins, latin & latin-ext) ---------- */
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 400; font-display: swap;
	src: url('../fonts/nunito-400-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 400; font-display: swap;
	src: url('../fonts/nunito-400-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 600; font-display: swap;
	src: url('../fonts/nunito-600-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 600; font-display: swap;
	src: url('../fonts/nunito-600-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 700; font-display: swap;
	src: url('../fonts/nunito-700-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 700; font-display: swap;
	src: url('../fonts/nunito-700-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 800; font-display: swap;
	src: url('../fonts/nunito-800-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 800; font-display: swap;
	src: url('../fonts/nunito-800-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap;
	src: url('../fonts/poppins-600-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap;
	src: url('../fonts/poppins-600-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap;
	src: url('../fonts/poppins-700-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap;
	src: url('../fonts/poppins-700-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---------- Design-Tokens (GewichtReduce: weich, freundlich, vertrauensvoll) ---------- */
:root {
	--gwr-bg: #ffffff;
	--gwr-surface: #F4FAFD;
	--gwr-border: #E2EDF3;
	--gwr-text: #2B3A44;
	--gwr-muted: #6C8291;
	--gwr-primary: #1F8FC4;
	--gwr-primary-hover: #16749F;
	--gwr-primary-soft: #EAF5FB;
	--gwr-green: #7CC24A;
	--gwr-green-hover: #5FA332;
	--gwr-green-soft: #EEF7E3;
	--gwr-gold: #F5B301;
	--gwr-footer-bg: #2B3A44;
	--gwr-footer-text: #C7D4DC;

	--gwr-font-sans: 'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--gwr-font-display: 'Poppins', 'Nunito', sans-serif;
	--gwr-font-logo: 'Poppins', sans-serif;

	--gwr-radius-sm: .625rem;
	--gwr-radius: 1rem;
	--gwr-radius-lg: 1.375rem;        /* 22px, weiche Karten */
	--gwr-radius-pill: 999px;
	--gwr-shadow-sm: 0 2px 8px rgba(43, 58, 68, .05);
	--gwr-shadow: 0 10px 30px rgba(43, 58, 68, .08);
	--gwr-shadow-lg: 0 6px 20px rgba(31, 143, 196, .10);
	--gwr-ring: 0 0 0 3px rgba(31, 143, 196, .22);
	--gwr-ease: cubic-bezier(.4, 0, .2, 1);
	--gwr-container: 75rem;           /* 1200px, wie der Entwurf */
	--gwr-header-h: 4.5rem;
}

/* ---------- Basis ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--gwr-bg);
	color: var(--gwr-text);
	font-family: var(--gwr-font-sans);
	font-size: 1rem;
	line-height: 1.6;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

img { max-width: 100%; height: auto; }

a {
	color: var(--gwr-primary);
	text-decoration: none;
	transition: color .15s var(--gwr-ease);
}
a:hover { color: var(--gwr-primary-hover); }

h1, h2, h3, h4 {
	font-family: var(--gwr-font-display);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0;
	margin: 0 0 .75rem;
}

p { margin: 0 0 1rem; }

::selection { background: var(--gwr-primary); color: #fff; }

.gwr-container {
	width: 100%;
	max-width: var(--gwr-container);
	margin-inline: auto;
	padding-inline: 1rem;
}
@media (min-width: 640px) { .gwr-container { padding-inline: 1.5rem; } }
@media (min-width: 1024px) { .gwr-container { padding-inline: 2rem; } }

.gwr-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--gwr-primary);
	color: #fff;
	padding: .5rem 1rem;
	z-index: 100;
	border-radius: 0 0 var(--gwr-radius-sm) 0;
}
.gwr-skip:focus { left: 0; color: #fff; }

/* ---------- Buttons ---------- */
.gwr-btn,
.btn,
button,
input[type="submit"],
input[type="button"],
.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .65rem 1.35rem;
	font-family: var(--gwr-font-sans);
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.25;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-pill);
	background: #fff;
	color: var(--gwr-text);
	cursor: pointer;
	text-decoration: none;
	transition: all .15s var(--gwr-ease);
	white-space: nowrap;
}
.gwr-btn:hover,
.btn:hover,
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
.button:hover {
	border-color: var(--gwr-primary);
	color: var(--gwr-primary);
	transform: translateY(-1px);
}

.gwr-btn--primary,
.btn-primary,
.btn-success,
.btn-buy,
input.btn-success,
input.btn-primary {
	background: var(--gwr-primary);
	border-color: var(--gwr-primary);
	color: #fff;
}
.gwr-btn--primary:hover,
.btn-primary:hover,
.btn-success:hover,
.btn-buy:hover,
input.btn-success:hover,
input.btn-primary:hover {
	background: var(--gwr-primary-hover);
	border-color: var(--gwr-primary-hover);
	color: #fff;
	box-shadow: var(--gwr-shadow-lg);
}

.btn-secondary { background: var(--gwr-surface); color: var(--gwr-text); }

/* Grüner Primary-Button (CTAs im Entwurf) */
.gwr-btn--green,
.btn-buy {
	background: var(--gwr-green);
	border-color: var(--gwr-green);
	color: #fff;
	box-shadow: 0 8px 20px rgba(124, 194, 74, .35);
}
.gwr-btn--green:hover,
.btn-buy:hover {
	background: var(--gwr-green-hover);
	border-color: var(--gwr-green-hover);
	color: #fff;
	box-shadow: 0 8px 20px rgba(124, 194, 74, .45);
}

/* Blauer Ghost-Button (Outline-Pill) */
.gwr-btn--ghost {
	background: #fff;
	border: 2px solid var(--gwr-primary);
	color: var(--gwr-primary-hover);
}
.gwr-btn--ghost:hover {
	background: var(--gwr-primary-soft);
	border-color: var(--gwr-primary);
	color: var(--gwr-primary-hover);
}

/* ---------- Formulare ---------- */
input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="date"],
select,
textarea,
.form-control,
.form-select,
.inputbox {
	width: 100%;
	padding: .6rem .9rem;
	font: inherit;
	font-size: .9rem;
	color: var(--gwr-text);
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius);
	transition: border-color .15s var(--gwr-ease), box-shadow .15s var(--gwr-ease);
}
input:focus-visible, select:focus-visible, textarea:focus-visible {
	outline: none;
	border-color: var(--gwr-primary);
	box-shadow: var(--gwr-ring);
}
label { font-weight: 500; font-size: .875rem; }

.control-group { margin-bottom: 1rem; }
.control-label { display: block; margin-bottom: .35rem; }

/* Bootstrap-Grid-Kompatibilität (JoomShopping 5 nutzt teils BS5/BS2-Klassen) */
.row, .row-fluid { display: flex; flex-wrap: wrap; margin-inline: -.75rem; }
.row > *, .row-fluid > * { padding-inline: .75rem; }
.col-lg-4 { width: 100%; }
.col-lg-6 { width: 100%; }
.col-lg-8 { width: 100%; }
.d-flex { display: flex; gap: .75rem; flex-wrap: wrap; align-items: center; }
.mt-2 { margin-top: .5rem; }
.mb-2 { margin-bottom: .5rem; }
.text-end { text-align: right; }
.pull-right { float: right; }
.pull-left { float: left; }
.muted, .text-muted { color: var(--gwr-muted); }
.small { font-size: .85em; }
.clearfix::after { content: ""; display: table; clear: both; }
@media (min-width: 992px) {
	.col-lg-4 { width: 33.3333%; }
	.col-lg-6 { width: 50%; }
	.col-lg-8 { width: 66.6667%; }
	.row-fluid .span3 { width: 25%; }
	.row-fluid .span4 { width: 33.3333%; }
	.row-fluid .span6 { width: 50%; }
	.row-fluid .span8 { width: 66.6667%; }
	.row-fluid .span9 { width: 75%; }
	.row-fluid .span12 { width: 100%; }
}

/* ==========================================================================
   Topbar
   ========================================================================== */
.gwr-topbar {
	background: var(--gwr-surface);
	border-bottom: 1px solid var(--gwr-border);
	color: var(--gwr-muted);
	font-size: .8rem;
}
.gwr-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 1.5rem;
	min-height: 2.25rem;
}
.gwr-topbar b { color: var(--gwr-primary-hover); font-weight: 800; }
.gwr-topbar a { color: var(--gwr-muted); }
.gwr-topbar a:hover { color: var(--gwr-primary); }
.gwr-topbar ul { display: flex; gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.gwr-topbar li { margin: 0; }
.gwr-topbar .gwr-menu { gap: 1.25rem; }
.gwr-topbar .gwr-menu__item > a {
	padding: 0;
	font-size: .8rem;
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0;
	color: var(--gwr-muted);
}
.gwr-topbar .gwr-menu__item > a:hover { color: #fff; }
.gwr-topbar .gwr-menu__item > a::after { display: none; }
.gwr-topbar .gwr-menu__item.parent > ul { display: none; }

/* ==========================================================================
   Header (sticky, Glas-Effekt)
   ========================================================================== */
.gwr-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, .85);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--gwr-border);
	transition: box-shadow .2s var(--gwr-ease);
}
.gwr-header.is-scrolled { box-shadow: var(--gwr-shadow); }

.gwr-header__inner {
	display: flex;
	align-items: center;
	gap: 1rem;
	height: var(--gwr-header-h);
}

.gwr-logo {
	display: flex;
	align-items: center;
	gap: .6rem;
	font-family: var(--gwr-font-logo);
	font-size: 1.35rem;
	color: var(--gwr-text);
	letter-spacing: .01em;
	flex-shrink: 0;
}
.gwr-logo__word {
	font-weight: 700;
	font-size: 1.25rem;
	line-height: 1.05;
	color: var(--gwr-text);
	white-space: nowrap;
}
.gwr-logo__texts { display: flex; flex-direction: column; gap: 2px; }
.gwr-logo__tag { font-size: 11.5px; color: var(--gwr-muted); font-weight: 600; white-space: nowrap; }
@media (max-width: 1180px) { .gwr-logo__tag { display: none; } }
.gwr-logo:hover { color: var(--gwr-primary); }
.gwr-logo img { max-height: 2.9rem; width: auto; }
.gwr-logo .gwr-logo__accent { color: var(--gwr-primary); }
@media (max-width: 560px) {
	.gwr-logo__word { display: none; }
	.gwr-logo img { max-height: 2.4rem; }
	.gwr-header__inner { gap: .6rem; }
}

/* Hauptnavigation */
.gwr-nav { flex: 1; display: none; justify-content: center; }
@media (min-width: 1024px) { .gwr-nav { display: flex; } }

.gwr-menu { display: flex; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.gwr-menu__item { position: relative; margin: 0; }
.gwr-menu__item > a {
	position: relative;
	display: inline-block;
	padding: .55rem 1rem;
	font-size: .9rem;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	color: var(--gwr-text);
	border-radius: var(--gwr-radius-pill);
	transition: background-color .15s var(--gwr-ease), color .15s var(--gwr-ease);
}
.gwr-menu__item > a::after { display: none; }
.gwr-menu__item > a:hover,
.gwr-menu__item.active > a,
.gwr-menu__item.current > a {
	color: var(--gwr-primary-hover);
	background: var(--gwr-primary-soft);
}

/* Dropdown */
.gwr-menu__item.parent > ul {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translate(-50%, .5rem);
	min-width: 15rem;
	margin: 0;
	padding: .5rem;
	list-style: none;
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	box-shadow: var(--gwr-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transition: opacity .18s var(--gwr-ease), transform .18s var(--gwr-ease), visibility .18s;
	z-index: 60;
}
.gwr-menu__item.parent:hover > ul,
.gwr-menu__item.parent:focus-within > ul {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}
.gwr-menu__item.parent > ul li { margin: 0; }
.gwr-menu__item.parent > ul a {
	display: block;
	padding: .5rem .75rem;
	font-size: .85rem;
	color: var(--gwr-text);
	border-radius: var(--gwr-radius);
}
.gwr-menu__item.parent > ul a:hover { background: var(--gwr-primary-soft); color: var(--gwr-primary); }
/* Dritte Ebene eingerückt und innerhalb des offenen Dropdowns sichtbar */
.gwr-menu__item.parent > ul ul { list-style: none; margin: 0; padding: 0 0 0 .75rem; }
.gwr-nav .gwr-menu__item.parent:hover > ul .gwr-menu__item.parent > ul,
.gwr-nav .gwr-menu__item.parent:focus-within > ul .gwr-menu__item.parent > ul {
	position: static;
	transform: none;
	opacity: 1;
	visibility: visible;
	box-shadow: none;
	border: 0;
	background: transparent;
	min-width: 0;
}
.gwr-nav .gwr-menu__item.parent > ul > .gwr-menu__item.parent > a {
	font-weight: 700;
	pointer-events: none;
}

/* Header-Aktionen */
.gwr-actions { margin-left: auto; display: flex; align-items: center; gap: .5rem; }

.gwr-iconbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	height: 2.5rem;
	min-width: 2.5rem;
	padding: 0 .5rem;
	border: 0;
	border-radius: var(--gwr-radius);
	background: transparent;
	color: var(--gwr-text);
	cursor: pointer;
	transition: background .15s var(--gwr-ease), color .15s var(--gwr-ease);
}
.gwr-iconbtn:hover { background: var(--gwr-surface); color: var(--gwr-primary); transform: none; box-shadow: none; border: 0; }
.gwr-iconbtn svg { width: 1.25rem; height: 1.25rem; }

/* Suche im Header */
.gwr-search { display: none; align-items: center; flex: 1; max-width: 460px; }
@media (min-width: 768px) { .gwr-search { display: flex; } }
.gwr-search form {
	display: flex;
	align-items: center;
	gap: 0;
	flex: 1;
	background: var(--gwr-surface);
	border: 1.5px solid var(--gwr-border);
	border-radius: var(--gwr-radius-pill);
	overflow: hidden;
}
.gwr-search input[type="text"], .gwr-search input[type="search"], .gwr-search input.inputbox {
	flex: 1;
	width: auto;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 11px 10px 11px 20px;
	font-size: 14.5px;
	box-shadow: none;
}
.gwr-search input:focus { box-shadow: none; }
.gwr-search .gwr-search__btn {
	margin-left: 0;
	background: var(--gwr-primary);
	border: 0;
	padding: 11px 22px;
	color: #fff;
	font-weight: 800;
	font-family: var(--gwr-font-sans);
	font-size: 14px;
	cursor: pointer;
}
.gwr-search .gwr-search__btn:hover { background: var(--gwr-primary-hover); color: #fff; transform: none; box-shadow: none; }
.gwr-search .gwr-search__btn svg { width: 1rem; height: 1rem; display: none; }

/* Warenkorb im Header */
.gwr-cart {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .45rem .8rem;
	border-radius: 999px;
	border: 1px solid var(--gwr-border);
	color: var(--gwr-text);
	font-size: .85rem;
	font-weight: 600;
	transition: all .15s var(--gwr-ease);
}
.gwr-cart:hover { border-color: var(--gwr-primary); color: var(--gwr-primary); }
.gwr-cart svg { width: 1.15rem; height: 1.15rem; }
.gwr-cart__count {
	display: inline-grid;
	place-items: center;
	min-width: 1.4rem;
	height: 1.4rem;
	padding: 0 .3rem;
	border-radius: 999px;
	background: var(--gwr-green);
	color: #fff;
	font-size: .72rem;
	font-weight: 800;
}
.gwr-cart__sum { color: var(--gwr-muted); font-weight: 500; }
@media (max-width: 640px) { .gwr-cart__sum, .gwr-cart__label { display: none; } }

/* Burger */
.gwr-burger { flex-shrink: 0; }
@media (min-width: 1024px) { .gwr-burger { display: none; } }

/* ==========================================================================
   Mobile Drawer
   ========================================================================== */
.gwr-drawer {
	position: fixed;
	inset: 0 auto 0 0;
	width: min(20rem, 85vw);
	background: #fff;
	border-right: 1px solid var(--gwr-border);
	box-shadow: var(--gwr-shadow-lg);
	z-index: 90;
	transform: translateX(-105%);
	transition: transform .25s var(--gwr-ease);
	display: flex;
	flex-direction: column;
	overflow-y: auto;
}
.gwr-drawer.is-open { transform: translateX(0); }
.gwr-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--gwr-border);
	font-family: var(--gwr-font-display);
	font-weight: 600;
	font-size: 1.15rem;
}
.gwr-drawer__nav { padding: 1rem 1.25rem; }
.gwr-drawer ul { list-style: none; margin: 0; padding: 0; }
.gwr-drawer .gwr-menu { display: block; }
.gwr-drawer .gwr-menu__item > a {
	display: block;
	padding: .65rem 0;
	font-size: .95rem;
	color: var(--gwr-text);
	border-bottom: 1px solid var(--gwr-surface);
}
.gwr-drawer .gwr-menu__item > ul { padding-left: 1rem; }
.gwr-drawer .gwr-menu__item.parent > ul {
	position: static;
	transform: none;
	opacity: 1;
	visibility: visible;
	box-shadow: none;
	border: 0;
	background: transparent;
	padding: 0 0 .5rem 1rem;
	min-width: 0;
}
.gwr-drawer .gwr-menu__item > ul a { font-size: .88rem; color: var(--gwr-muted); text-transform: none; letter-spacing: 0; }
.gwr-drawer .gwr-search { display: block; margin: 0 1.25rem 1.25rem; }
.gwr-drawer .gwr-search input { width: 100%; }
.gwr-drawer .gwr-search__txt { display: none; }
.gwr-drawer .gwr-search__btn svg { display: block; }

.gwr-overlay {
	position: fixed;
	inset: 0;
	background: rgba(43, 58, 68, .4);
	backdrop-filter: blur(2px);
	z-index: 80;
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s var(--gwr-ease), visibility .25s;
}
.gwr-overlay.is-open { opacity: 1; visibility: visible; }

/* ==========================================================================
   Kategorie-Leiste unter dem Header
   ========================================================================== */
.gwr-catbar {
	background: #fff;
	border-bottom: 1px solid var(--gwr-border);
	overflow-x: auto;
	scrollbar-width: none;
}
.gwr-catbar::-webkit-scrollbar { display: none; }
.gwr-catbar__list {
	display: flex;
	gap: .25rem;
	margin: 0;
	padding: .4rem 0;
	list-style: none;
	white-space: nowrap;
}
.gwr-catbar__list li { margin: 0; }
.gwr-catbar__list a {
	display: inline-block;
	padding: .35rem .9rem;
	border-radius: 999px;
	font-size: .82rem;
	font-weight: 500;
	color: var(--gwr-muted);
	transition: all .15s var(--gwr-ease);
}
.gwr-catbar__list a:hover { background: var(--gwr-primary-soft); color: var(--gwr-primary); }
.gwr-catbar__list li.active > a,
.gwr-catbar__list a.is-active { background: var(--gwr-primary); color: #fff; }

/* ==========================================================================
   Hero (nur Startseite) — zweispaltig, weiche Blobs, Produktkarte, Trust-Row
   ========================================================================== */
.gwr-hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #EAF5FB 0%, #F7FCF2 55%, #ffffff 100%);
	border-bottom: 1px solid var(--gwr-border);
}
.gwr-hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: 3rem;
	align-items: center;
	padding-block: 4rem 4.5rem;
}
@media (max-width: 1023px) {
	.gwr-hero__inner { grid-template-columns: 1fr; gap: 2.5rem; padding-block: 3rem; }
}

/* Eyebrow-Badge */
.gwr-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .45rem 1rem;
	background: #fff;
	border: 1.5px solid var(--gwr-border);
	border-radius: var(--gwr-radius-pill);
	box-shadow: var(--gwr-shadow);
	font-size: .78rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .6px;
	color: var(--gwr-primary-hover);
}
.gwr-hero__pulse {
	width: .5rem; height: .5rem;
	border-radius: 50%;
	background: var(--gwr-green);
	animation: gwr-pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
}
@keyframes gwr-pulse { 50% { opacity: .35; } }

.gwr-hero h1 {
	margin: 1.4rem 0 1.1rem;
	font-family: var(--gwr-font-display);
	font-weight: 700;
	font-size: clamp(2.4rem, 5vw, 3.4rem);
	line-height: 1.15;
	color: var(--gwr-text);
	max-width: 22ch;
}
.gwr-hero h1 .gwr-hero__hl {
	position: relative;
	white-space: nowrap;
	color: var(--gwr-primary-hover);
}
.gwr-hero h1 .gwr-hero__hl svg {
	position: absolute;
	left: 0; bottom: -.35rem;
	width: 100%; height: .45rem;
}
.gwr-hero__text {
	max-width: 30rem;
	color: var(--gwr-muted);
	font-size: 1.1rem;
}
.gwr-hero__cta { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 2rem; }
.gwr-hero__cta .gwr-btn {
	padding: .95rem 1.9rem;
	font-size: 1rem;
	font-weight: 800;
}

/* Trust-Row unter den CTAs */
.gwr-trust {
	display: flex;
	gap: 1.4rem;
	margin-top: 2.25rem;
	flex-wrap: wrap;
}
.gwr-trust__item {
	display: flex;
	align-items: center;
	gap: .6rem;
	font-size: .87rem;
	font-weight: 700;
	color: var(--gwr-text);
}
.gwr-trust__item svg { width: 1.6rem; height: 1.6rem; flex-shrink: 0; }
.gwr-trust__item small {
	display: block;
	color: var(--gwr-muted);
	font-weight: 600;
	font-size: .78rem;
}
.gwr-trust__stars { color: var(--gwr-gold); letter-spacing: 2px; font-size: 1rem; }

/* Rechte Bildkomposition: Blobs, Punktfelder, Produktkarte, Mini-Karten */
.gwr-hero__vis { position: relative; min-height: 26rem; }
.gwr-hero__vis > * { position: absolute; }
.gwr-hero__dots {
	left: -1.5rem; bottom: 1.5rem;
	width: 7.5rem; height: 5.5rem;
	background-image: radial-gradient(rgba(31, 143, 196, .35) 2.2px, transparent 2.3px);
	background-size: 18px 18px;
}
.gwr-hero__dots--g {
	right: -.5rem; top: -1rem;
	width: 6.5rem; height: 4.5rem;
	background-image: radial-gradient(rgba(124, 194, 74, .45) 2.2px, transparent 2.3px);
	background-size: 16px 16px;
}
.gwr-hero__blob {
	border-radius: 50%;
}
.gwr-hero__blob--b {
	width: 25rem; height: 25rem;
	right: 2rem; top: .5rem;
	background: linear-gradient(160deg, #D6EDF9, #BFE3F5);
}
.gwr-hero__blob--g {
	width: 11rem; height: 11rem;
	right: 19rem; bottom: 0;
	background: linear-gradient(160deg, #DDF0CB, #C9E7AE);
}
.gwr-hero__pack {
	right: 8.5rem; top: 3.5rem;
	width: 15.5rem;
	background: #fff;
	border-radius: var(--gwr-radius-lg);
	padding: 1rem;
	box-shadow: 0 24px 50px rgba(31, 143, 196, .22);
	transform: rotate(-4deg);
}
.gwr-hero__pack img { border-radius: .75rem; }
.gwr-hero__pack-cap {
	margin-top: .65rem;
	font-weight: 800;
	font-size: .85rem;
	line-height: 1.4;
}
.gwr-hero__pack-cap small { color: var(--gwr-muted); font-weight: 700; }
.gwr-hero__pack-price { color: var(--gwr-primary-hover); }
.gwr-hero__fcard {
	background: #fff;
	border-radius: var(--gwr-radius);
	box-shadow: var(--gwr-shadow);
	padding: .75rem 1.1rem;
	font-weight: 800;
	font-size: .88rem;
	display: flex;
	align-items: center;
	gap: .65rem;
}
.gwr-hero__fcard small {
	display: block;
	color: var(--gwr-muted);
	font-weight: 600;
	font-size: .75rem;
}
.gwr-hero__fcard--1 { right: 21rem; top: 2.5rem; }
.gwr-hero__fcard--2 { right: 0; bottom: 1.25rem; }
.gwr-hero__fic {
	width: 2.1rem; height: 2.1rem;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.gwr-hero__fic svg { width: 1.1rem; height: 1.1rem; }
.gwr-hero__fic--g { background: var(--gwr-green-soft); }
.gwr-hero__fic--b { background: var(--gwr-primary-soft); }

/* Hero mobil: Bildkomposition kompakt unter dem Text */
@media (max-width: 1023px) {
	.gwr-hero__vis { min-height: 22rem; max-width: 30rem; }
	.gwr-hero__blob--b { width: 19rem; height: 19rem; right: 1rem; }
	.gwr-hero__blob--g { width: 8rem; height: 8rem; right: 14rem; }
	.gwr-hero__pack { width: 13.5rem; right: 5rem; top: 3.5rem; }
	.gwr-hero__fcard--1 { right: auto; left: 0; top: 1.5rem; }
	.gwr-hero__fcard--2 { right: 0; bottom: 2rem; }
}
@media (max-width: 480px) {
	.gwr-hero__vis { min-height: 19rem; }
	.gwr-hero__pack { width: 11.5rem; right: 3.5rem; top: 3rem; }
	.gwr-hero__blob--b { width: 16rem; height: 16rem; }
	.gwr-hero__blob--g { width: 6.5rem; height: 6.5rem; right: 11rem; }
	.gwr-hero__fcard { padding: .55rem .8rem; font-size: .78rem; }
	.gwr-trust { gap: 1.1rem; }
}

/* ==========================================================================
   Hauptbereich
   ========================================================================== */
.gwr-main { flex: 1; padding-block: 2rem 3rem; }

.gwr-grid { display: grid; gap: 2rem; }
.gwr-content { min-width: 0; }
@media (min-width: 1024px) {
	.gwr-content { grid-area: content; }
	.gwr-sidebar--left { grid-area: left; }
	.gwr-sidebar--right { grid-area: right; }
	.gwr-grid--left { grid-template-columns: 16rem 1fr; grid-template-areas: "left content"; }
	.gwr-grid--right { grid-template-columns: 1fr 16rem; grid-template-areas: "content right"; }
	.gwr-grid--both { grid-template-columns: 16rem 1fr 16rem; grid-template-areas: "left content right"; }
}

/* Sidebar-Karten */
.gwr-sidebar { overflow-wrap: anywhere; }
.gwr-sidebar .moduletable,
.gwr-sidebar .module,
.gwr-sidebar .jshop_module {
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	padding: 1.25rem;
	margin-bottom: 1.25rem;
	box-shadow: var(--gwr-shadow-sm);
}
.gwr-sidebar h3 {
	font-size: 1.15rem;
	padding-bottom: .6rem;
	margin-bottom: .9rem;
	border-bottom: 2px solid var(--gwr-primary);
	display: inline-block;
}
.gwr-sidebar ul { list-style: none; margin: 0; padding: 0; }
.gwr-sidebar li { margin: 0; }
.gwr-sidebar li a {
	display: block;
	padding: .35rem 0;
	font-size: .88rem;
	color: var(--gwr-muted);
}
.gwr-sidebar li a:hover { color: var(--gwr-primary); }

/* JoomShopping-Kategorien-Liste (Sidebar) */
.gwr-catlist { list-style: none; margin: 0; padding: 0; }
.gwr-catlist div > li, .gwr-catlist > li { list-style: none; }
/* zrusit dvojitu indentaciu z JS default.css (li ma padding-left) */
.gwr-catlist .jshop_menu_level_1, .gwr-catlist .jshop_menu_level_1_a,
.gwr-catlist .jshop_menu_level_2, .gwr-catlist .jshop_menu_level_2_a { padding-left: 0; }

/* Hlavne kategorie — vzduch medzi skupinami, ziadne ciarkovane okraje */
.gwr-catlist .jshop_menu_level_0, .gwr-catlist .jshop_menu_level_0_a { margin-top: .3rem; }
.gwr-catlist > .jshop_menu_level_0:first-child,
.gwr-catlist > .jshop_menu_level_0_a:first-child { margin-top: 0; }
.gwr-catlist .jshop_menu_level_0 > a, .gwr-catlist .jshop_menu_level_0_a > a {
	display: block;
	padding: .5rem .7rem;
	font-size: .92rem;
	font-weight: 600;
	color: var(--gwr-text);
	border-radius: .5rem;
	transition: color .15s var(--gwr-ease), background-color .15s var(--gwr-ease);
}
.gwr-catlist .jshop_menu_level_0 > a:hover, .gwr-catlist .jshop_menu_level_0_a > a:hover {
	color: var(--gwr-primary);
	background: var(--gwr-primary-soft);
}

/* Subkategorie — kompaktne, so sprievodnou ciarou v lavo */
.gwr-catlist .jshop_menu_level_1 > a, .gwr-catlist .jshop_menu_level_1_a > a,
.gwr-catlist .jshop_menu_level_2 > a, .gwr-catlist .jshop_menu_level_2_a > a {
	display: block;
	margin-left: .65rem;
	padding: .28rem .6rem .28rem 1.4rem;
	font-size: .83rem;
	font-weight: 500;
	color: var(--gwr-muted);
	background: transparent;
	border-left: 2px solid var(--gwr-border);
	border-radius: 0 .5rem .5rem 0;
	transition: color .15s var(--gwr-ease), background-color .15s var(--gwr-ease), border-color .15s var(--gwr-ease);
}
.gwr-catlist .jshop_menu_level_2 > a, .gwr-catlist .jshop_menu_level_2_a > a { margin-left: 1.3rem; }
.gwr-catlist .jshop_menu_level_1 > a:hover, .gwr-catlist .jshop_menu_level_1_a > a:hover,
.gwr-catlist .jshop_menu_level_2 > a:hover, .gwr-catlist .jshop_menu_level_2_a > a:hover {
	color: var(--gwr-primary);
	background: var(--gwr-primary-soft);
	border-left-color: var(--gwr-primary);
}

/* Aktivna polozka — silnejsi stav s akcentom */
.gwr-catlist li[class*="_a"] > a { font-weight: 700 !important; }
.gwr-catlist .jshop_menu_level_0_a > a {
	color: var(--gwr-primary);
	background: var(--gwr-primary-soft);
}
.gwr-catlist .jshop_menu_level_1_a > a, .gwr-catlist .jshop_menu_level_2_a > a {
	color: var(--gwr-primary);
	background: var(--gwr-primary-soft);
	border-left-color: var(--gwr-green);
}

/* Subkategorie als kompakte Chips */
.gwr-chips {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
}
.gwr-chip { margin: 0; }
.gwr-chip a {
	display: inline-block;
	padding: .45rem 1rem;
	font-size: .85rem;
	font-weight: 500;
	color: var(--gwr-text);
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: 999px;
	transition: color .15s var(--gwr-ease), background-color .15s var(--gwr-ease), border-color .15s var(--gwr-ease);
}
.gwr-chip a:hover {
	color: #fff;
	background: var(--gwr-primary);
	border-color: var(--gwr-primary);
	text-decoration: none;
}

/* Breadcrumb */
.gwr-breadcrumb { margin-bottom: 1.5rem; }
.gwr-breadcrumb ul, .breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: .8rem;
	color: var(--gwr-muted);
}
.gwr-breadcrumb li, .breadcrumb li { display: flex; align-items: center; gap: .5rem; margin: 0; }
.gwr-breadcrumb li + li::before, .breadcrumb li + li::before { content: "/"; color: var(--gwr-border); }
.gwr-breadcrumb a { color: var(--gwr-muted); }
.gwr-breadcrumb a:hover { color: var(--gwr-primary); }

/* ==========================================================================
   Abschnitte / Kacheln
   ========================================================================== */
.gwr-section { padding-block: 2.5rem; }
.gwr-kicker {
	font-size: .7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .28em;
	color: var(--gwr-primary);
}
.gwr-h2 { font-size: clamp(2rem, 4.5vw, 3.5rem); margin-top: .5rem; }

/* Featured-Artikel (Startseite, com_content) als Karten */
.blog-items { display: grid; gap: 1.25rem; }
.blog-item {
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	overflow: hidden;
	transition: border-color .2s var(--gwr-ease), box-shadow .2s var(--gwr-ease), transform .2s var(--gwr-ease);
}
.blog-item:hover {
	border-color: rgba(31, 143, 196, .5);
	box-shadow: var(--gwr-shadow-lg);
	transform: translateY(-2px);
}
/* Blog-Listing: Artikel untereinander, Bild links, Inhalt rechts */
@media (min-width: 768px) {
	.blog-items .blog-item { display: flex; align-items: stretch; }
	.blog-items .blog-item .item-image { flex: 0 0 280px; }
	.blog-items .blog-item .item-image img { height: 100%; aspect-ratio: auto; object-fit: cover; }
	.blog-items .blog-item .item-content { flex: 1 1 0; padding: 1.5rem 1.75rem; display: flex; flex-direction: column; }
	.blog-items .blog-item .item-content .readmore { margin-top: auto; }
}
.blog-item .item-image { margin: 0; }
.blog-item .item-image img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.blog-item .item-content { padding: 1.25rem 1.5rem 1.5rem; }
.blog-item .item-title { font-size: 1.5rem; }
.blog-item .item-title a { color: var(--gwr-text); }
.blog-item .item-title a:hover { color: var(--gwr-primary); }
.article-info { display: flex; gap: 1rem; flex-wrap: wrap; font-size: .78rem; color: var(--gwr-muted); list-style: none; margin: 0 0 .75rem; padding: 0; }
.article-info-term { position: absolute; left: -9999px; }
.article-info dd { margin: 0; }
.blog-item .readmore { margin-top: .5rem; }

/* Warenkorb-Plus-Button (WUCHS-Stil) */
.gwr-addcart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	flex-shrink: 0;
	padding: .55rem 1.1rem;
	background: var(--gwr-primary);
	border: 0;
	border-radius: var(--gwr-radius-pill);
	color: #fff;
	font-family: var(--gwr-font-sans);
	font-size: .8rem;
	font-weight: 800;
	line-height: 1.25;
	white-space: nowrap;
	cursor: pointer;
	transition: transform .15s var(--gwr-ease), background .15s var(--gwr-ease), box-shadow .15s var(--gwr-ease);
}
.gwr-addcart svg { width: 1.05rem; height: 1.05rem; }
.gwr-addcart:hover { background: var(--gwr-primary-hover); color: #fff; transform: translateY(-1px); box-shadow: 0 8px 20px rgba(31, 143, 196, .3); }
.gwr-addcart:focus-visible { outline: none; box-shadow: var(--gwr-ring); }
.gwr-addcart--disabled { opacity: .4; pointer-events: none; }
/* Sidebar-Modul: kompakter Icon-Button */
.gwr-sidebar .gwr-addcart { padding: .55rem .7rem; }
/* Auf Produktkarten nur das Icon zeigen (Text entfernt) */
.jshop.list_product .gwr-addcart { padding: .6rem; border-radius: 50%; }
.jshop.list_product .gwr-addcart svg { width: 1.2rem; height: 1.2rem; }

/* ==========================================================================
   JoomShopping Produktlisten (.jshop.list_product > .row-fluid > .sblock*)
   ========================================================================== */
.jshop.list_product .row-fluid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	margin: 0;
}
@media (min-width: 640px) { .jshop.list_product .row-fluid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .jshop.list_product .row-fluid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1280px) { .jshop.list_product .row-fluid { grid-template-columns: repeat(4, 1fr); } }
/* Kategorie-Ansicht: 3 Produkte pro Zeile */
@media (min-width: 768px) { .jshop_list_product.gwr-grid3 .jshop.list_product .row-fluid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .jshop_list_product.gwr-grid3 .jshop.list_product .row-fluid { grid-template-columns: repeat(3, 1fr); } }

.jshop.list_product .row-fluid > [class*="sblock"] {
	width: auto !important;   /* überschreibt JS-default.css (.sblock3=33%, .sblock4=25% usw.) */
	min-height: 0;
	display: flex;
	flex-direction: column;
	padding: 0;
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	overflow: hidden;
	transition: border-color .2s var(--gwr-ease), box-shadow .2s var(--gwr-ease), transform .2s var(--gwr-ease);
}
.jshop.list_product .row-fluid > [class*="sblock"]:hover {
	border-color: rgba(31, 143, 196, .55);
	box-shadow: var(--gwr-shadow-lg);
	transform: translateY(-3px);
}
.jshop.list_product .block_product {
	display: flex;
	flex-direction: column;
	flex: 1;
}
/* Update-sicherer Override: Abstand der Karten kommt aus dem Grid (gap),
   nicht aus dem JoomShopping-default.css (margin-bottom:25px);
   Achtung: .jshop_list_product umschliesst NUR das Filterformular,
   die Produktliste ist #comjshop_list_product! */
#comjshop_list_product .block_product { margin-bottom: 0; }
.jshop.list_product .product { display: flex; flex-direction: column; flex: 1; }
.jshop.list_product .product .image { order: -1; }
.jshop.list_product .image_block {
	display: block;
	background: var(--gwr-surface);
	overflow: hidden;
	text-align: center;
}
.jshop.list_product .image_block img {
	width: 100%;
	aspect-ratio: 1/1;
	object-fit: contain;
	padding: 1rem;
	transition: transform .5s var(--gwr-ease);
}
.jshop.list_product .row-fluid > [class*="sblock"]:hover .image_block img { transform: scale(1.05); }
.jshop.list_product .product .name {
	padding: 1rem 1.25rem .25rem;
	font-size: .92rem;
	font-weight: 600;
	line-height: 1.35;
}
.jshop.list_product .product .name a { color: var(--gwr-text); }
.jshop.list_product .product .name a:hover { color: var(--gwr-primary); }
.jshop.list_product .review_mark,
.jshop.list_product .count_commentar { padding: 0 1.25rem; font-size: .78rem; color: var(--gwr-muted); }
.jshop.list_product .description { padding: .25rem 1.25rem 0; font-size: .8rem; color: var(--gwr-muted); }
.jshop.list_product .oiproduct {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin-top: auto;
	padding-bottom: 1.25rem;
}
.jshop.list_product .oiproduct > * { flex: 1 1 100%; }
.jshop.list_product .oiproduct > .jshop_price { flex: 1 1 auto; }
.jshop.list_product .oiproduct > .buttons { flex: 0 0 auto; }
.jshop.list_product .oiproduct .block_available { padding: .25rem 1.25rem; }
.jshop.list_product .oiproduct .jshop_price { padding: .25rem 1.25rem; }
.jshop.list_product .oiproduct .jshop_price span {
	font-family: var(--gwr-font-display);
	font-size: 1.6rem;
	line-height: 1;
	color: var(--gwr-primary-hover);
}
.jshop.list_product .oiproduct .old_price { padding: 0 1.25rem; font-size: .8rem; color: var(--gwr-muted); }
.jshop.list_product .oiproduct .price_extra_info { padding: 0 1.25rem; font-size: .75rem; color: var(--gwr-muted); }
.jshop.list_product .oiproduct .buttons { display: flex; gap: .5rem; padding: .25rem 1.25rem 0; align-items: center; }
.jshop.list_product .oiproduct .buttons .button_detail {
	background: transparent;
	border-color: transparent;
	color: var(--gwr-muted);
	padding: .65rem .5rem;
}
.jshop.list_product .oiproduct .buttons .button_detail:hover { color: var(--gwr-primary); transform: none; box-shadow: none; }

/* Sortier-/Anzahl-Toolbar */
.gwr-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: .5rem 1.75rem;
	background: var(--gwr-surface);
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	padding: .65rem 1rem;
	margin-bottom: 1rem;
}
.gwr-toolbar__item { display: inline-flex; align-items: center; gap: .6rem; margin: 0; }
.gwr-toolbar__label {
	width: auto;
	float: none;
	margin: 0;
	padding: 0;
	text-align: left;
	font-size: .85rem;
	font-weight: 500;
	color: var(--gwr-muted);
	white-space: nowrap;
}
.gwr-toolbar__control { display: inline-flex; align-items: center; }
.gwr-toolbar__control select {
	width: auto;
	min-width: 8rem;
	padding: .45rem 2rem .45rem .8rem;
	font-size: .85rem;
	background-color: #fff;
}
.gwr-toolbar__control .input-group { display: inline-flex; align-items: stretch; }
.gwr-toolbar__control .input-group select { border-radius: var(--gwr-radius) 0 0 var(--gwr-radius); }
.gwr-toolbar__control .gwr-toolbar__dir {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.2rem;
	margin: 0 0 0 -1px;
	padding: 0;
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: 0 var(--gwr-radius) var(--gwr-radius) 0;
	font-size: .7rem;
	color: var(--gwr-muted);
	cursor: pointer;
}
.gwr-toolbar__control .gwr-toolbar__dir:hover { color: var(--gwr-primary); border-color: var(--gwr-primary); }
.gwr-toolbar__dir .icon-arrow-down::before { content: "\25BC"; }
.gwr-toolbar__dir .icon-arrow-up::before { content: "\25B2"; }
@media (max-width: 767px) {
	.gwr-toolbar { flex-direction: column; align-items: stretch; }
	.gwr-toolbar__item { justify-content: space-between; }
	.gwr-toolbar__control { flex: 1; }
	.gwr-toolbar__control select { flex: 1; }
}

/* Filter-Karte (Hersteller / Preis / Los / Zurucksetzen) */
.gwr-filter {
	background: var(--gwr-surface);
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	padding: 1rem 1.25rem;
	margin-bottom: 1.75rem;
}
.gwr-filter__row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem 1.75rem; }
.gwr-filter__item { display: flex; flex-direction: column; gap: .4rem; margin: 0; min-width: 12rem; }
.gwr-filter__label {
	width: auto;
	float: none;
	margin: 0;
	padding: 0;
	text-align: left;
	font-size: .78rem;
	font-weight: 600;
	color: var(--gwr-muted);
	text-transform: uppercase;
	letter-spacing: .05em;
}
.gwr-filter__control { display: inline-flex; align-items: center; min-width: 0; }
.gwr-filter__control select {
	width: 100%;
	min-width: 12rem;
	padding: .5rem 2rem .5rem .8rem;
	font-size: .875rem;
	background-color: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius);
}
.gwr-filter__price input.form-control {
	width: 6.5rem;
	padding: .5rem .8rem;
	font-size: .875rem;
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius);
}
.gwr-filter__control select:focus,
.gwr-filter__price input.form-control:focus {
	border-color: var(--gwr-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(31, 143, 196, .15);
}
.gwr-filter__dash { color: var(--gwr-muted); padding: 0 .5rem; }
.gwr-filter__actions { display: flex; align-items: center; gap: 1.25rem; margin-left: auto; }
.gwr-filter__actions .btn-primary { padding: .55rem 1.6rem; border-radius: var(--gwr-radius); font-weight: 600; }
.gwr-filter__reset {
	font-size: .85rem;
	color: var(--gwr-muted);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.gwr-filter__reset:hover { color: var(--gwr-primary); }
@media (max-width: 767px) {
	.gwr-filter__row { flex-direction: column; align-items: stretch; }
	.gwr-filter__item { min-width: 0; }
	.gwr-filter__actions { margin-left: 0; justify-content: space-between; }
}

/* JS5 form-horizontal: feste 50px-Labelbreite entschärfen (Toolbar + Filterkarte) */
.jshop_list_product .form-horizontal .control-label,
.jshop_list_product .control-label,
.jshop .filters .control-label {
	width: auto;
	float: none;
	padding: 0;
	margin: 0;
	text-align: left;
	white-space: nowrap;
}
.jshop .filters .control-group { margin-bottom: 0; }
.jshop .filters .control-group .controls { flex: 1; min-width: 0; }
.jshop .filters select { min-width: 0; max-width: 100%; }
.jshop .filters .input-append input { width: 7rem; }
.jshop .filter_mob_head { display: none !important; }

/* Unterkategorie-Kacheln auf sehr kleinen Screens einspaltig */
@media (max-width: 480px) {
	.jshop.list_category .row-fluid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   JoomShopping
   ========================================================================== */
.jshop h1, .jshop h2 { margin-bottom: 1rem; }
.jshop img.jshop_img { display: block; }

/* Kategorien-Raster */
.jshop.list_category .row-fluid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
	margin: 0;
}
@media (min-width: 768px) { .jshop.list_category .row-fluid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .jshop.list_category .row-fluid { grid-template-columns: repeat(4, 1fr); } }
.jshop.list_category .row-fluid .sblock2 { width: auto !important; padding: 0; }
.jshop_list_category .jshop_categ { margin-bottom: 1.5rem; }
.jshop_list_category .category_info {
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	overflow: hidden;
	height: 100%;
	transition: border-color .2s var(--gwr-ease), box-shadow .2s var(--gwr-ease), transform .2s var(--gwr-ease);
}
.jshop_list_category .category_info:hover {
	border-color: rgba(31, 143, 196, .5);
	box-shadow: var(--gwr-shadow-lg);
	transform: translateY(-2px);
}
.jshop_list_category .image { overflow: hidden; }
.jshop_list_category .image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .5s var(--gwr-ease); }
.jshop_list_category .category_info:hover .image img { transform: scale(1.05); }
.jshop_list_category .category_name { padding: 1rem 1.25rem .25rem; }
.jshop_list_category .category_name a {
	font-family: var(--gwr-font-display);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--gwr-text);
}
.jshop_list_category .category_name a:hover { color: var(--gwr-primary); }
.jshop_list_category .category_short_description { padding: 0 1.25rem 1.25rem; font-size: .85rem; color: var(--gwr-muted); }

/* Kategorien/Produkte ohne eigenes Bild: Platzhalter ausblenden */
.jshop_list_category .image:has(img[src*="noimage"]) { display: none; }
.jshop_list_product .image_block:has(img[src*="noimage"]),
.jshop.list_product .image_block:has(img[src*="noimage"]) { display: none; }
.jshop_list_product .block_item .image:has(img[src*="noimage"]) { display: none; }

/* Produkt-Kartenraster (Module: Top-Hits etc., direkte .block_item-Kinder) */
.jshop_list_product:has(> .block_item) {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
@media (min-width: 768px) { .jshop_list_product:has(> .block_item) { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .jshop_list_product:has(> .block_item) { grid-template-columns: repeat(4, 1fr); } }
.jshop_list_product .product { margin: 0; }
.jshop_list_product .image_block {
	display: block;
	background: var(--gwr-surface);
	overflow: hidden;
}
.jshop_list_product .image_block img {
	width: 100%;
	aspect-ratio: 1/1;
	object-fit: contain;
	padding: 1rem;
	transition: transform .5s var(--gwr-ease);
}
.jshop_list_product .block_item:hover .image img { transform: scale(1.05); }
.jshop_list_product .name {
	padding: 1rem 1.25rem 0;
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.35;
}
.jshop_list_product .name a { color: var(--gwr-text); }
.jshop_list_product .name a:hover { color: var(--gwr-primary); }
.jshop_list_product .description { padding: .35rem 1.25rem 0; font-size: .8rem; color: var(--gwr-muted); display: none; }
@media (min-width: 1024px) { .jshop_list_product .description { display: block; } }
.jshop_list_product .review_mark { padding: .35rem 1.25rem 0; }
.jshop_list_product .jshop_price,
.jshop_list_product .price_block { padding: .5rem 1.25rem 0; margin-top: auto; }
.jshop_list_product .jshop_price span,
.jshop_list_product .price_block span {
	font-family: var(--gwr-font-display);
	font-size: 1.6rem;
	line-height: 1;
	color: var(--gwr-primary-hover);
	letter-spacing: .02em;
}
.jshop_list_product .old_price { padding: 0 1.25rem; font-size: .8rem; color: var(--gwr-muted); text-decoration: line-through; }
.jshop_list_product .old_price span { text-decoration: line-through; }
.jshop_list_product .buttons {
	display: flex;
	gap: .5rem;
	padding: 1rem 1.25rem 1.25rem;
}
.jshop_list_product .buttons .button_buy { flex: 1; border-radius: var(--gwr-radius); }
.jshop_list_product .buttons .button_detail {
	background: transparent;
	border-color: var(--gwr-border);
	color: var(--gwr-muted);
}
.jshop_list_product .buttons .button_detail:hover { border-color: var(--gwr-primary); color: var(--gwr-primary); }
.block_available { font-size: .78rem; padding: .25rem 1.25rem 0; }
.block_available.available { color: #5FA332; }
.block_available.not_available { color: #dc2626; }

/* Top-Hits-/Top-Rating-Module nutzen .block_item statt .block_product */
.mb-4 { margin-bottom: 1.5rem; }
.jshop_list_product .block_item {
	display: flex;
	flex-flow: row wrap;
	align-content: flex-start;
	height: 100%;
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	overflow: hidden;
	transition: border-color .2s var(--gwr-ease), box-shadow .2s var(--gwr-ease), transform .2s var(--gwr-ease);
}
.jshop_list_product .block_item > * { flex: 1 1 100%; }
.jshop_list_product .block_item:hover {
	border-color: rgba(31, 143, 196, .55);
	box-shadow: var(--gwr-shadow-lg);
	transform: translateY(-3px);
}
.jshop_list_product .block_item .image {
	background: var(--gwr-surface);
	overflow: hidden;
}
.jshop_list_product .block_item .image img {
	width: 100%;
	aspect-ratio: 1/1;
	object-fit: contain;
	padding: 1rem;
	transition: transform .5s var(--gwr-ease);
}
.jshop_list_product .block_item:hover .image img { transform: scale(1.05); }
.jshop_list_product .block_item .name,
.jshop_list_product .block_item .product-footer .name {
	padding: 1rem 1.25rem 0;
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.35;
}
.jshop_list_product .block_item .name a { color: var(--gwr-text); }
.jshop_list_product .block_item .name a:hover { color: var(--gwr-primary); }
.jshop_list_product .block_item .jshop_price { flex: 1 1 auto; align-self: flex-end; padding: .5rem 1.25rem 1.25rem; margin-top: auto; }
.jshop_list_product .block_item .jshop_price span {
	font-family: var(--gwr-font-display);
	font-size: 1.6rem;
	line-height: 1;
	color: var(--gwr-primary-hover);
}
.jshop_list_product .block_item .buttons { flex: 0 0 auto; align-self: flex-end; display: flex; gap: .5rem; padding: .5rem 1.25rem 1.25rem; align-items: center; }
.jshop_list_product .block_item .buttons .button_detail { background: transparent; border-color: transparent; color: var(--gwr-muted); padding: .65rem .5rem; }
.jshop_list_product .block_item .buttons .button_detail:hover { color: var(--gwr-primary); transform: none; box-shadow: none; }

/* Sidebar-Module mit Produktlisten kompakter */
.gwr-sidebar .block_item { border: 0; border-radius: 0; box-shadow: none; }
.gwr-sidebar .jshop_list_product { grid-template-columns: 1fr; gap: 1rem; }
.gwr-sidebar .jshop_list_product .image img { aspect-ratio: 16/10; }

/* Filter-Box */
.jshop.filters,
.jshop .filters {
	background: var(--gwr-surface);
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
}

/* Produkt-Detailseite */
.jshop.productview h1 { font-size: clamp(1.8rem, 3.5vw, 2.8rem); }
/* Spalten-Balance: Bild groesser, Info schmaler (eigener Flex-Grid, kein Bootstrap) */
.jshop.productview .productfull .row.jshop { display: flex; flex-wrap: nowrap; gap: 2rem; align-items: flex-start; width: 100%; }
.jshop.productview .productfull .row.jshop > .col-lg-4 { flex: 0 0 calc(44% - 1rem); max-width: calc(44% - 1rem); }
.jshop.productview .productfull .row.jshop > .col-lg-8 { flex: 1 1 0; min-width: 0; }
@media (max-width: 991px) {
	.jshop.productview .productfull .row.jshop { flex-wrap: wrap; }
	.jshop.productview .productfull .row.jshop > .col-lg-4,
	.jshop.productview .productfull .row.jshop > .col-lg-8 { flex: 0 0 100%; max-width: 100%; }
}
.jshop.productview .jshop_code_prod { font-family: var(--gwr-font-sans); font-size: .85rem; color: var(--gwr-muted); text-transform: none; letter-spacing: 0; }
.jshop.productview .image_middle {
	background: linear-gradient(160deg, var(--gwr-primary-soft) 0%, #fff 75%);
	border: 1.5px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	padding: 2.5rem;
	text-align: center;
}
.jshop.productview .image_middle img.jshop_img,
.jshop.productview #list_product_image_middle img.image { width: min(100%, 360px); max-width: 100%; height: auto; }
.jshop.productview .image_thumb_list img {
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius);
	padding: .25rem;
	transition: border-color .15s var(--gwr-ease);
}
.jshop.productview .image_thumb_list img:hover { border-color: var(--gwr-primary); }
/* Preis: brand-blau statt JS-rot */
.jshop.productview .prod_price,
.jshop.productview #block_price {
	font-family: var(--gwr-font-display);
	font-size: 2.6rem;
	line-height: 1;
	color: var(--gwr-primary);
}
.jshop.productview #block_price { color: var(--gwr-primary-dark); }
.jshop.productview .price_prod_qty_list .qty_price { font-weight: 700; color: var(--gwr-ink); }
.jshop.productview .old_price { color: var(--gwr-muted); font-size: 1rem; text-decoration: line-through; }
.jshop.productview .manufacturer_name { font-size: .88rem; color: var(--gwr-muted); margin-bottom: .5rem; }
.jshop.productview .prod_buttons { display: flex; align-items: flex-end; gap: 1rem; flex-wrap: wrap; margin-top: 1.5rem; }
.jshop.productview .prod_qty_input input { width: 6rem; }
.jshop.productview .buttons.product-buttons { display: flex; gap: .5rem; flex-wrap: wrap; }
.jshop.productview .jshop_prod_description {
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: 1px solid var(--gwr-border);
}
.review_header { font-family: var(--gwr-font-display); font-size: 1.6rem; margin-top: 2rem; }

/* Warenkorb / Checkout-Tabellen */
.jshop table, .jshop_prod_cart, .jshop .table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
}
.jshop table th, .jshop table td,
.jshop_prod_cart th, .jshop_prod_cart td {
	padding: .75rem .9rem;
	border-bottom: 1px solid var(--gwr-border);
	font-size: .9rem;
	text-align: left;
	vertical-align: middle;
}
.jshop table th { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--gwr-muted); background: var(--gwr-surface); }
.jshop table tr:hover td { background: var(--gwr-surface); }
.jshop .total td, .jshop .total_price { font-weight: 700; font-size: 1.05rem; }

/* Pagination */
.pagination, .jshop_pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	list-style: none;
	margin: 2rem 0 0;
	padding: 0;
	justify-content: center;
}
.pagination li, .jshop_pagination li { margin: 0; }
.pagination > li > a, .pagination > li > span:not([class^="icon-"]), .page-link,
.jshop_pagination a, .jshop_pagination span:not([class^="icon-"]) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.4rem;
	height: 2.4rem;
	padding: 0 .7rem;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius);
	font-size: .85rem;
	color: var(--gwr-text);
	background: #fff;
}
.pagination a:hover, .page-link:hover, .jshop_pagination a:hover {
	border-color: var(--gwr-primary);
	color: var(--gwr-primary);
}
.pagination .active > a, .pagination .active > span,
.page-item.active .page-link {
	background: var(--gwr-primary);
	border-color: var(--gwr-primary);
	color: #fff;
}
.pagination .counter { width: 100%; text-align: center; color: var(--gwr-muted); font-size: .8rem; }

/* Systemnachrichten */
#system-message-container .alert, .alert {
	padding: .9rem 1.25rem;
	border-radius: var(--gwr-radius);
	border: 1px solid var(--gwr-border);
	margin-bottom: 1rem;
	background: var(--gwr-primary-soft);
	color: var(--gwr-text);
}
.alert-error, .alert-danger { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.alert-success, .alert-message { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }

/* Modul-Überschriften im Inhaltsbereich */
.gwr-content .moduletable > h3, .gwr-content .module > h3 {
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	margin-bottom: 1.25rem;
}

/* ==========================================================================
   Sektionen unterhalb des Inhalts
   ========================================================================== */
.gwr-strip { padding-block: 2rem; }
.gwr-strip--surface { background: var(--gwr-surface); border-block: 1px solid var(--gwr-border); }
.gwr-cols { display: grid; gap: 1.5rem; }
@media (min-width: 768px) {
	.gwr-cols--2 { grid-template-columns: repeat(2, 1fr); }
	.gwr-cols--3 { grid-template-columns: repeat(3, 1fr); }
	.gwr-cols--4 { grid-template-columns: repeat(4, 1fr); }
}
.gwr-strip .moduletable, .gwr-strip .module { margin: 0; }
.gwr-strip img { border-radius: var(--gwr-radius); }

/* ==========================================================================
   Footer
   ========================================================================== */
.gwr-footer {
	margin-top: 3rem;
	background: var(--gwr-footer-bg);
	color: var(--gwr-footer-text);
	font-size: .9rem;
}
.gwr-footer__grid {
	display: grid;
	gap: 2.5rem;
	padding-block: 3.5rem 2.5rem;
}
@media (min-width: 768px) { .gwr-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .gwr-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }

.gwr-footer__brand { display: flex; align-items: center; gap: .65rem; margin-bottom: .9rem; }
.gwr-footer__brand img { width: 2.4rem; height: 2.4rem; }
.gwr-footer__brand b {
	font-family: var(--gwr-font-logo);
	font-weight: 700;
	font-size: 1.2rem;
	color: #fff;
}
.gwr-footer__brand .gwr-logo__accent { color: #8FCCE8; }
.gwr-footer__claim { font-size: .88rem; color: rgba(199, 212, 220, .8); max-width: 30ch; }

/* Zahlungs-Chips */
.gwr-footer__pay { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1rem; }
.gwr-footer__pay span {
	border: 1px solid #46586A;
	border-radius: .5rem;
	padding: .25rem .65rem;
	font-size: .7rem;
	font-weight: 800;
	color: #DCE6EC;
	letter-spacing: .4px;
}

/* Kleingedrucktes (Studien-/Gesundheitshinweis) */
.gwr-footer__note {
	margin-top: 1rem;
	font-size: .78rem;
	color: #8FA3AF;
	line-height: 1.55;
	max-width: 40ch;
}

.gwr-footer h3 {
	font-family: var(--gwr-font-display);
	font-size: .95rem;
	font-weight: 600;
	color: #fff;
	letter-spacing: 0;
	margin-bottom: 1.1rem;
}
.gwr-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .35rem; }
.gwr-footer li { margin: 0; }
.gwr-footer a {
	display: inline-block;
	padding: .15rem 0;
	color: rgba(199, 212, 220, .85);
	font-size: .88rem;
}
.gwr-footer a:hover { color: #fff; }

/* mod_menu (gwr-menu) im Footer: vertikal, dezent */
.gwr-footer .gwr-menu { flex-direction: column; gap: .35rem; }
.gwr-footer .gwr-menu__item > a {
	padding: .15rem 0;
	font-size: .88rem;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: rgba(199, 212, 220, .85);
	background: transparent;
}
.gwr-footer .gwr-menu__item > a:hover { color: #fff; background: transparent; }
.gwr-footer .gwr-menu__item.parent > ul {
	position: static;
	transform: none;
	opacity: 1;
	visibility: visible;
	box-shadow: none;
	border: 0;
	background: transparent;
	padding: .4rem 0 0 1rem;
	min-width: 0;
}

.gwr-footer__legal {
	border-top: 1px solid #3D4E5E;
}
.gwr-footer__legal-in {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: .75rem;
	padding-block: 1.1rem;
	font-size: .82rem;
	color: rgba(199, 212, 220, .65);
}

.gwr-footer__bottom {
	padding-block: 1.25rem;
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	align-items: center;
	justify-content: space-between;
	font-size: .78rem;
	color: rgba(199, 212, 220, .6);
}
.gwr-totop {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	color: rgba(199, 212, 220, .8);
	font-size: .78rem;
	font-weight: 700;
}
.gwr-totop:hover { color: #fff; }

/* ==========================================================================
   Joomla-Inhalte (com_content)
   ========================================================================== */
.visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.com-content-category__table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	overflow: hidden;
}
.com-content-category__table th,
.com-content-category__table td {
	padding: .8rem 1.1rem;
	border-bottom: 1px solid var(--gwr-border);
	text-align: left;
	font-family: var(--gwr-font-sans);
	font-size: .92rem;
	font-weight: 400;
}
.com-content-category__table thead th {
	font-size: .78rem;
	font-weight: 700;
	color: var(--gwr-muted);
	background: var(--gwr-surface);
}
.com-content-category__table tbody tr:hover { background: var(--gwr-surface); }
.com-content-category__table .list-title a { font-weight: 600; color: var(--gwr-text); }
.com-content-category__table .list-title a:hover { color: var(--gwr-primary); }

.item-page h1, .item-page .item-title { font-size: clamp(2rem, 4vw, 3rem); }

/* ==========================================================================
   Utility / Responsiv
   ========================================================================== */
.gwr-hidden { display: none !important; }
@media (max-width: 1023px) { .gwr-desktop-only { display: none !important; } }
@media (min-width: 1024px) { .gwr-mobile-only { display: none !important; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ==========================================================================
   Auth / Konto / Checkout / Warenkorb
   ========================================================================== */

/* ---------- Login: zentrierte Auth-Karte ---------- */
.gwr-auth { padding-block: 1rem 3rem; }
.gwr-auth__grid { display: grid; grid-template-columns: minmax(320px, 5fr) minmax(380px, 7fr); gap: 1.75rem; align-items: start; }
@media (max-width: 991px) { .gwr-auth__grid { grid-template-columns: 1fr; } }
.gwr-auth__card {
	width: 100%;
	max-width: none;
	border-width: 1.5px;
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	box-shadow: var(--gwr-shadow);
	padding: 2rem;
}
.gwr-auth__card h1 { text-align: center; font-size: 2.3rem; margin-bottom: .35rem; }
.gwr-auth__h2 { text-align: center; font-size: 1.7rem; margin-bottom: .35rem; }
.gwr-auth__benefits {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	display: grid;
	gap: .55rem;
	background: var(--gwr-primary-soft);
	border-radius: var(--gwr-radius);
	font-size: .86rem;
	font-weight: 600;
	color: var(--gwr-ink);
}
.gwr-auth__benefits li { padding-left: 1.4rem; position: relative; }
.gwr-auth__benefits li::before {
	content: "";
	position: absolute;
	left: 0; top: .18em;
	width: 1em; height: 1em;
	border-radius: 50%;
	background-color: var(--gwr-green);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
}
.gwr-auth__card--register #comjshop_register.jshop.max-500 { max-width: none; }
.gwr-auth__card--register .jshop_register { display: grid; gap: .3rem; }
.gwr-auth__card--register .jshop_register .control-group { margin-bottom: .3rem; }
.gwr-auth__card--register .control-label.name { display: block; float: none; width: auto; text-align: left; margin-bottom: .3rem; font-size: .85rem; font-weight: 600; }
.gwr-auth__card--register .controls { margin-left: 0; }
.gwr-auth__card--register .controls input,
.gwr-auth__card--register .controls select { width: 100%; }
.gwr-auth__card--register .box_button { margin-top: 1rem; }
.gwr-auth__card--register .box_button .button { width: 100%; padding: .8rem 1.5rem; border-radius: 999px; font-weight: 800; }
.gwr-auth__card--register .requiredtext { font-size: .8rem; color: var(--gwr-muted); margin-top: .75rem; }
.gwr-auth__card--register .privacy_statement { margin-top: .75rem; font-size: .82rem; }
.gwr-auth__sub { text-align: center; color: var(--gwr-muted); font-size: .88rem; margin-bottom: 1.5rem; }
.gwr-field { margin-bottom: 1rem; }
.gwr-field label { display: block; margin-bottom: .35rem; font-size: .85rem; font-weight: 500; }
.gwr-field input[type="text"], .gwr-field input[type="password"], .gwr-field input[type="email"] { width: 100%; }
.gwr-field--check { display: flex; align-items: center; gap: .5rem; }
.gwr-field--check input { width: auto; }
.gwr-field--check label { margin: 0; font-weight: 400; }
.gwr-btn--block { width: 100%; }
.gwr-auth__links {
	display: flex;
	justify-content: center;
	gap: .6rem;
	margin-top: 1.25rem;
	font-size: .85rem;
}
.gwr-auth__sep { color: var(--gwr-border); }
.gwr-auth__guest {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--gwr-border);
	display: grid;
	gap: .6rem;
	text-align: center;
	font-size: .85rem;
	color: var(--gwr-muted);
}

/* ---------- Registrierung & Checkout-Adresse: gemeinsames Formular-Styling ---------- */
#comjshop_register,
.jshop.address_block {
	max-width: 42rem;
	margin-inline: auto;
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	box-shadow: var(--gwr-shadow);
	padding: clamp(1.25rem, 3vw, 2.5rem);
}
#comjshop_register h1 { text-align: center; font-size: 2.3rem; }

.jshop_register .control-group { display: block; margin-bottom: 1rem; }
#comjshop_register .control-label,
#comjshop .address_block .control-label {
	width: auto;
	float: none;
	padding: 0;
	margin: 0;
	text-align: left;
}
.jshop_register .control-label label { display: block; margin-bottom: .35rem; font-size: .85rem; font-weight: 500; color: var(--gwr-text); }
.jshop_register .control-label label span { color: #dc2626; }
.jshop_register .controls { margin: 0; }
.jshop_register .controls input[type="text"],
.jshop_register .controls input[type="password"],
.jshop_register .controls input[type="email"],
.jshop_register .controls select {
	width: 100%;
}
.jshop_register .controls input[type="checkbox"] { width: auto; }
.jshop_register .controls .input-append { display: flex; gap: .5rem; }
.jshop_register .controls input[name="street"] { flex: 1; }
.jshop_register .controls input[name="street_nr"] { width: 7rem; flex: 0 0 auto; }

/* Validierungs-Fehlerzustände (Joomla formvalidator) */
.jshop_register input.invalid,
.jshop_register select.invalid,
.gwr-auth__form input.invalid {
	border-color: #dc2626;
	box-shadow: 0 0 0 3px rgba(220, 38, 38, .15);
}

.jshop_register .box_button .controls { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.jshop_register .requiredtext { font-size: .8rem; color: var(--gwr-muted); margin: 0; }
.jshop_register .box_button .btn { min-width: 14rem; }

/* Abschnitts-Überschriften im Registrierungsformular (per :has über Feld-IDs) */
#comjshop_register .control-group:has(> .control-label > label[for="title"])::before,
#comjshop_register .control-group:has(> .control-label > label[for="street"])::before,
#comjshop_register .control-group:has(> .control-label > label[for="phone"])::before,
#comjshop_register .control-group:has(> .control-label > label[for="u_name"])::before {
	display: block;
	font-family: var(--gwr-font-display);
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--gwr-text);
	border-bottom: 1px solid var(--gwr-border);
	padding-bottom: .4rem;
	margin: 1.75rem 0 1rem;
}
#comjshop_register .control-group:has(> .control-label > label[for="title"])::before { content: "Persönliche Daten"; margin-top: 0; }
#comjshop_register .control-group:has(> .control-label > label[for="street"])::before { content: "Adresse"; }
#comjshop_register .control-group:has(> .control-label > label[for="phone"])::before { content: "Kontakt"; }
#comjshop_register .control-group:has(> .control-label > label[for="u_name"])::before { content: "Konto & Passwort"; }

/* ---------- Checkout-Schrittanzeige ---------- */
#jshop_menu_order {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0 0 1.75rem;
	counter-reset: gwrstep;
}
#jshop_menu_order .jshop_order_step { flex: 1 1 9rem; margin: 0; }
#jshop_menu_order .jshop_order_step span {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .55rem .75rem;
	border-radius: 999px;
	font-size: .82rem;
	font-weight: 600;
	background: var(--gwr-surface);
	border: 1px solid var(--gwr-border);
	color: var(--gwr-muted);
	white-space: nowrap;
}
#jshop_menu_order .jshop_order_step span::before {
	counter-increment: gwrstep;
	content: counter(gwrstep);
	display: inline-grid;
	place-items: center;
	width: 1.35rem;
	height: 1.35rem;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--gwr-border);
	font-size: .72rem;
}
#jshop_menu_order .jshop_order_step.active span,
#jshop_menu_order .jshop_order_step span.active_step {
	background: var(--gwr-primary);
	border-color: var(--gwr-primary);
	color: #fff;
}
#jshop_menu_order .jshop_order_step.active span::before,
#jshop_menu_order .jshop_order_step span.active_step::before {
	background: #fff;
	color: var(--gwr-primary);
	border-color: transparent;
}

/* ---------- Warenkorb ---------- */
.jshop.cart { border: 1px solid var(--gwr-border); border-radius: var(--gwr-radius-lg); overflow: hidden; background: #fff; }
.jshop.cart th {
	background: var(--gwr-surface);
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--gwr-muted);
	padding: .75rem 1rem;
	border-bottom: 1px solid var(--gwr-border);
}
.jshop.cart td { padding: 1rem; border-bottom: 1px solid var(--gwr-border); vertical-align: middle; }
.jshop.cart tr:last-child td { border-bottom: 0; }
.jshop.cart tr.jshop_prod_cart:hover td { background: transparent; }
.jshop.cart img {
	width: 4.5rem;
	height: 4.5rem;
	object-fit: contain;
	background: var(--gwr-surface);
	border-radius: var(--gwr-radius);
	padding: .35rem;
}
.jshop.cart .prodname { font-weight: 600; color: var(--gwr-text); }
.jshop.cart .prodname:hover { color: var(--gwr-primary); }
.jshop.cart .price, .jshop.cart .total_price .data { font-weight: 600; }
.jshop.cart .quantity input[type="number"] { width: 4.5rem; text-align: center; }
.jshop.cart td.quantity { white-space: nowrap; }
@media (min-width: 768px) {
	.jshop.cart td.quantity .data { display: flex; align-items: center; gap: .4rem; }
}
.jshop.cart .cart_reload {
	display: inline-grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	margin-left: .4rem;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius);
	color: var(--gwr-muted);
	cursor: pointer;
	vertical-align: middle;
}
.jshop.cart .cart_reload::before { content: "\21BB"; font-size: 1rem; }
.jshop.cart .cart_reload:hover { color: var(--gwr-primary); border-color: var(--gwr-primary); }
.jshop.cart .button-img {
	font-size: .8rem;
	padding: .4rem .8rem;
	background: transparent;
	border: 1px solid #fecaca;
	color: #dc2626;
	border-radius: var(--gwr-radius);
}
.jshop.cart .button-img:hover { background: #fef2f2; border-color: #dc2626; color: #dc2626; transform: none; box-shadow: none; }

.shippingfree {
	display: inline-block;
	margin-top: 1rem;
	padding: .4rem .9rem;
	border-radius: 999px;
	background: var(--gwr-primary-soft);
	border: 1px solid rgba(31, 143, 196, .25);
	color: var(--gwr-primary);
	font-size: .8rem;
	font-weight: 500;
}

/* Summen-Karte */
.jshop.jshop_subtotal {
	width: min(24rem, 100%);
	margin-left: auto;
	margin-top: 1.5rem;
	background: #fff;
	border: 1px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	overflow: hidden;
	box-shadow: var(--gwr-shadow-sm);
}
.jshop.jshop_subtotal td { padding: .65rem 1.25rem; border-bottom: 1px solid var(--gwr-border); font-size: .9rem; }
.jshop.jshop_subtotal tr:hover td { background: transparent; }
.jshop.jshop_subtotal td.value { text-align: right; font-weight: 600; white-space: nowrap; }
.jshop.jshop_subtotal tr.total td {
	background: var(--gwr-surface);
	font-family: var(--gwr-font-display);
	font-size: 1.4rem;
	letter-spacing: .03em;
	padding: .85rem 1.25rem;
}

/* Warenkorb-Buttons + Rabatt */
.jshop.cart_buttons #checkout { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: 1.5rem; }
.jshop.cart_buttons .pull-left, .jshop.cart_buttons .pull-right { float: none; }
.cart_block_discount { margin-top: 1.5rem; max-width: 26rem; }
.cart_block_discount .name { font-size: .85rem; font-weight: 500; margin-bottom: .4rem; }
.cart_block_discount .jshop .span12 { display: flex; gap: .5rem; padding: 0; }
.cart_block_discount input[type="text"] { flex: 1; }
.cart_block_discount .button { flex: 0 0 auto; }

/* Warenkorb mobil: Zeilen als Karten */
@media (max-width: 767px) {
	.jshop.cart thead, .jshop.cart tr:first-child { display: none; }
	.jshop.cart, .jshop.cart tbody, .jshop.cart tr, .jshop.cart td { display: block; width: 100%; }
	.jshop.cart tr.jshop_prod_cart { border-bottom: 1px solid var(--gwr-border); padding: .75rem 0; }
	.jshop.cart td { border-bottom: 0; padding: .35rem 1rem; }
	.jshop.cart td .data { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
	.jshop.cart td.jshop_img_description_center .data { justify-content: center; }
	.jshop.cart td.product_name .data { justify-content: center; text-align: center; }
	.jshop.cart td.single_price .data::before { content: "Einzelpreis"; font-size: .78rem; color: var(--gwr-muted); }
	.jshop.cart td.total_price .data::before { content: "Gesamtpreis"; font-size: .78rem; color: var(--gwr-muted); }
	.jshop.cart td.remove .data { justify-content: center; }
	.jshop.jshop_subtotal { margin-inline: auto; }
}

/* hviezdicky vycentrovat (padding na .review_mark by inak posunul 100px blok) */
.review_mark .stars_no_active { margin-left: auto !important; margin-right: auto !important; }

/* hviezdicky: robustne centrovanie cez flex (padding/width hacks sa mozu rozhadzat) */
.review_mark { display: flex !important; justify-content: center; width: auto !important; }
.review_mark .stars_no_active { margin-left: 0 !important; margin-right: 0 !important; }
.jshop.list_product .count_commentar, .jshop_list_product .count_commentar { text-align: center; }

/* pagination sipky (JS5 caka FontAwesome, ten nenacitame — glyph nahradnik) */
.icon-angle-left::before { content: "\2039"; }
.icon-angle-right::before { content: "\203A"; }
.icon-angle-double-left::before { content: "\00AB"; }
.icon-angle-double-right::before { content: "\00BB"; }
.icon-angle-left::before, .icon-angle-right::before,
.icon-angle-double-left::before, .icon-angle-double-right::before {
	font-size: 1rem; line-height: 1; font-weight: 600;
}

/* ==========================================================================
   Startseiten-Sektionen + Announce/Topbar/Mainnav (1:1 nach home-mock.html)
   ========================================================================== */

/* Announce-Bar */
.gwr-announce {
	background: linear-gradient(90deg, #7CC24A, #94CF63);
	color: #fff;
	text-align: center;
	font-weight: 700;
	font-size: 14px;
	padding: 9px 16px;
	letter-spacing: .2px;
}

/* Topbar (4 Trust-Items) */
.gwr-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 8px;
	padding-bottom: 8px;
	font-size: 13.5px;
	color: var(--gwr-muted);
}
.gwr-topbar__inner span { white-space: nowrap; }
.gwr-topbar__inner b { color: var(--gwr-primary-hover); font-weight: 800; }
@media (max-width: 900px) {
	.gwr-topbar__inner span:nth-child(2),
	.gwr-topbar__inner span:nth-child(4) { display: none; }
}
@media (max-width: 560px) {
	.gwr-topbar__inner { justify-content: center; }
	.gwr-topbar__inner span:nth-child(3) { display: none; }
}

/* Header-Aktionsbuttons (Konto/Warenkorb) */
.gwr-hbtn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 1.5px solid var(--gwr-border);
	background: #fff;
	border-radius: var(--gwr-radius-pill);
	padding: 9px 16px;
	font-weight: 700;
	font-size: 14px;
	color: var(--gwr-text);
	cursor: pointer;
	white-space: nowrap;
	transition: border-color .15s var(--gwr-ease), color .15s var(--gwr-ease);
}
.gwr-hbtn:hover { border-color: var(--gwr-primary); color: var(--gwr-primary-hover); }
.gwr-hbtn svg { width: 17px; height: 17px; }

/* Kategorie-Navigation unter dem Header */
.gwr-mainnav {
	background: #fff;
	border-top: 1px solid var(--gwr-border);
}
.gwr-mainnav__in {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	padding-top: 6px;
	padding-bottom: 6px;
	scrollbar-width: none;
}
.gwr-mainnav__in::-webkit-scrollbar { display: none; }
.gwr-mainnav__in a {
	padding: 9px 16px;
	border-radius: var(--gwr-radius-pill);
	font-weight: 700;
	font-size: 14.5px;
	color: var(--gwr-text);
	white-space: nowrap;
}
.gwr-mainnav__in a:hover { background: var(--gwr-primary-soft); color: var(--gwr-primary-hover); }
.gwr-mainnav__in a.hot { background: var(--gwr-green-soft); color: var(--gwr-green-hover); }
.gwr-mainnav__in a.hot:hover { background: var(--gwr-green); color: #fff; }

/* Drawer-Navigation */
.gwr-drawernav { list-style: none; margin: 0; padding: 0; }
.gwr-drawernav li { margin: 0; }
.gwr-drawernav a {
	display: block;
	padding: .65rem 0;
	font-size: .95rem;
	font-weight: 600;
	color: var(--gwr-text);
	border-bottom: 1px solid var(--gwr-surface);
}

/* Sektionskopf */
.gwr-sechead {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 34px;
}
.gwr-sechead h2 { font-size: 32px; font-weight: 700; }
.gwr-sechead p { color: var(--gwr-muted); margin-top: 6px; }
.gwr-sechead__more { font-weight: 800; color: var(--gwr-primary-hover); font-size: 15px; white-space: nowrap; }
.gwr-sechead__more:hover { color: var(--gwr-primary); }
.gwr-sechead--center { justify-content: center; text-align: center; display: block; }

/* Wähle deinen Weg — Kategorien */
.gwr-cats { padding: 72px 0; }
.gwr-catgrid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
}
@media (max-width: 1023px) { .gwr-catgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .gwr-catgrid { grid-template-columns: 1fr; } }
.gwr-catcard {
	position: relative;
	overflow: hidden;
	background: #fff;
	border: 1.5px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	padding: 24px 20px;
	text-align: center;
	transition: border-color .2s var(--gwr-ease), box-shadow .2s var(--gwr-ease), transform .2s var(--gwr-ease);
}
.gwr-catcard:hover {
	border-color: var(--gwr-green);
	box-shadow: var(--gwr-shadow-lg);
	transform: translateY(-3px);
	text-decoration: none;
}
.gwr-catcard__arr { position: absolute; top: 16px; right: 16px; color: var(--gwr-border); font-size: 18px; }
.gwr-catcard:hover .gwr-catcard__arr { color: var(--gwr-green); }
.gwr-catcard__ic {
	width: 58px; height: 58px;
	border-radius: 50%;
	margin: 0 auto 14px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.gwr-catcard:nth-child(odd) .gwr-catcard__ic { background: var(--gwr-primary-soft); }
.gwr-catcard:nth-child(even) .gwr-catcard__ic { background: var(--gwr-green-soft); }
.gwr-catcard h3 { font-size: 16.5px; font-weight: 600; }
.gwr-catcard__sub { font-size: 13px; color: var(--gwr-muted); font-weight: 700; }

/* Shop-Landing — Kategorie-Karten */
.gwr-shophead h1 { font-family: var(--gwr-font-display); font-size: 30px; font-weight: 700; margin: 0 0 18px; }
.gwr-shopcats__grid { gap: 20px; }
.gwr-scatcard { min-width: 0; }
.gwr-scatcard__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1.5px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	overflow: hidden;
	text-decoration: none;
	color: var(--gwr-ink);
	transition: border-color .2s var(--gwr-ease), box-shadow .2s var(--gwr-ease), transform .2s var(--gwr-ease);
}
.gwr-scatcard__link:hover {
	border-color: var(--gwr-primary);
	box-shadow: var(--gwr-shadow-lg);
	transform: translateY(-4px);
	text-decoration: none;
	color: var(--gwr-ink);
}
.gwr-scatcard__imgwrap {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	padding: 20px;
	background: linear-gradient(160deg, var(--gwr-primary-soft) 0%, #fff 70%);
}
.gwr-scatcard:nth-child(3n+2) .gwr-scatcard__imgwrap { background: linear-gradient(160deg, var(--gwr-green-soft) 0%, #fff 70%); }
.gwr-scatcard__imgwrap img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
	transition: transform .35s var(--gwr-ease);
}
.gwr-scatcard__link:hover .gwr-scatcard__imgwrap img { transform: scale(1.05); }
.gwr-scatcard__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 16px 18px 18px;
	border-top: 1.5px solid var(--gwr-border);
	text-align: left;
}
.gwr-scatcard__name { font-family: var(--gwr-font-display); font-weight: 600; font-size: 16.5px; line-height: 1.3; }
.gwr-scatcard__desc {
	font-size: 13px;
	color: var(--gwr-muted);
	font-weight: 600;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.gwr-scatcard__cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: auto;
	padding-top: 8px;
	font-weight: 800;
	font-size: 13.5px;
	color: var(--gwr-primary-dark);
}
.gwr-scatcard__cta svg { transition: transform .2s var(--gwr-ease); }
.gwr-scatcard__link:hover .gwr-scatcard__cta svg { transform: translateX(4px); }

/* Beliebt bei Kundinnen — Produktkarten */
.gwr-products {
	background: var(--gwr-primary-soft);
	padding: 72px 0;
	border-top: 1px solid var(--gwr-border);
	border-bottom: 1px solid var(--gwr-border);
}
.gwr-pgrid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
@media (max-width: 1023px) { .gwr-pgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .gwr-pgrid { grid-template-columns: 1fr; } }
.gwr-pcard {
	background: #fff;
	border-radius: var(--gwr-radius-lg);
	overflow: hidden;
	border: 1.5px solid var(--gwr-border);
	transition: transform .2s var(--gwr-ease), box-shadow .2s var(--gwr-ease), border-color .2s var(--gwr-ease);
	display: flex;
	flex-direction: column;
}
.gwr-pcard:hover {
	transform: translateY(-4px);
	box-shadow: var(--gwr-shadow-lg);
	border-color: #CBE4F2;
}
.gwr-pimg {
	position: relative;
	background: #fff;
	padding: 22px;
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}
.gwr-pimg img {
	max-height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}
.gwr-ptag {
	position: absolute;
	top: 14px; left: 14px;
	background: var(--gwr-green);
	color: #fff;
	font-size: 11.5px;
	font-weight: 800;
	padding: 5px 12px;
	border-radius: var(--gwr-radius-pill);
	letter-spacing: .3px;
}
.gwr-ptag--blue { background: var(--gwr-primary); }
.gwr-pwish {
	position: absolute;
	top: 12px; right: 12px;
	width: 36px; height: 36px;
	border-radius: 50%;
	background: var(--gwr-surface);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--gwr-primary-hover);
	border: 0;
	cursor: pointer;
	transition: background .15s var(--gwr-ease);
}
.gwr-pwish:hover { background: var(--gwr-primary-soft); }
.gwr-pwish svg { width: 17px; height: 17px; }
.gwr-pbody {
	padding: 18px 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}
.gwr-pstars { font-size: 13px; color: var(--gwr-gold); letter-spacing: 1.5px; }
.gwr-pstars .review_mark { display: inline-flex !important; justify-content: flex-start; width: auto !important; margin: 0 !important; vertical-align: middle; }
.gwr-pstars span { color: var(--gwr-muted); font-family: var(--gwr-font-sans); letter-spacing: 0; font-size: 12.5px; margin-left: 6px; }
.gwr-pname { font-family: var(--gwr-font-display); font-weight: 600; font-size: 15.5px; line-height: 1.35; }
.gwr-pname a { color: var(--gwr-text); }
.gwr-pname a:hover { color: var(--gwr-primary-hover); }
.gwr-pvar { font-size: 13px; color: var(--gwr-muted); font-weight: 700; }
.gwr-pprice {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding-top: 10px;
	flex-wrap: wrap;
}
.gwr-pprice__val { font-family: var(--gwr-font-display); font-weight: 700; font-size: 19px; color: var(--gwr-primary-hover); white-space: nowrap; }
.gwr-pprice__val small { display: block; font-size: 12.5px; color: var(--gwr-muted); font-family: var(--gwr-font-sans); font-weight: 700; white-space: nowrap; }
.gwr-pprice .gwr-addcart { padding: 10px 16px; font-size: 13px; }

/* Drei Schritte */
.gwr-steps { padding: 72px 0; }
.gwr-stepgrid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}
@media (max-width: 900px) { .gwr-stepgrid { grid-template-columns: 1fr; } }
.gwr-step {
	background: #fff;
	border: 1.5px solid var(--gwr-border);
	border-radius: var(--gwr-radius-lg);
	padding: 30px 26px;
}
.gwr-step__num {
	width: 52px; height: 52px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--gwr-primary), #4FB3DE);
	color: #fff;
	font-family: var(--gwr-font-display);
	font-weight: 700;
	font-size: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
	box-shadow: 0 8px 18px rgba(31, 143, 196, .3);
}
.gwr-step:nth-child(2) .gwr-step__num { background: linear-gradient(135deg, #7CC24A, #9CCF6E); box-shadow: 0 8px 18px rgba(124, 194, 74, .35); }
.gwr-step:nth-child(3) .gwr-step__num { background: linear-gradient(135deg, #2FA58A, #5CC0AA); box-shadow: 0 8px 18px rgba(47, 165, 138, .3); }
.gwr-step h3 { font-size: 19px; margin-bottom: 8px; }
.gwr-step p { color: var(--gwr-muted); font-size: 14.5px; margin: 0; }

/* Das sagen Kundinnen */
.gwr-reviews {
	background: linear-gradient(180deg, var(--gwr-green-soft), #fff);
	padding: 72px 0;
}
.gwr-revgrid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
@media (max-width: 900px) { .gwr-revgrid { grid-template-columns: 1fr; } }
.gwr-revcard {
	background: #fff;
	border-radius: var(--gwr-radius-lg);
	padding: 26px;
	box-shadow: var(--gwr-shadow);
	border: 1.5px solid #E4F0D8;
	display: flex;
	flex-direction: column;
}
.gwr-revcard__stars { color: var(--gwr-gold); letter-spacing: 2px; font-size: 15px; }
.gwr-revcard__quote { font-size: 15px; margin: 12px 0 18px; }
.gwr-revcard__who { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.gwr-revcard__avatar {
	width: 44px; height: 44px;
	border-radius: 50%;
	font-family: var(--gwr-font-display);
	font-weight: 700;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	flex-shrink: 0;
}
.gwr-revcard__who b { display: block; font-size: 14.5px; }
.gwr-revcard__who small { color: var(--gwr-muted); font-weight: 700; display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.gwr-revcard__verified { color: var(--gwr-green-hover); }

/* Ratgeber-Blog */
.gwr-blog { padding: 72px 0; }
.gwr-bloggrid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
@media (max-width: 900px) { .gwr-bloggrid { grid-template-columns: 1fr; } }
.gwr-bcard {
	border-radius: var(--gwr-radius-lg);
	overflow: hidden;
	border: 1.5px solid var(--gwr-border);
	background: #fff;
	transition: transform .2s var(--gwr-ease), box-shadow .2s var(--gwr-ease);
}
.gwr-bcard:hover { transform: translateY(-3px); box-shadow: var(--gwr-shadow-lg); text-decoration: none; }
.gwr-bcard__cover {
	height: 170px;
	position: relative;
	display: flex;
	align-items: end;
	padding: 18px;
}
.gwr-bcard__cover.c1 { background: linear-gradient(135deg, #BFE3F5, #EAF5FB); }
.gwr-bcard__cover.c2 { background: linear-gradient(135deg, #CDEBB2, #EEF7E3); }
.gwr-bcard__cover.c3 { background: linear-gradient(135deg, #B8E6DC, #E9F7F4); }
.gwr-bcard__chip {
	background: rgba(255, 255, 255, .92);
	color: var(--gwr-primary-hover);
	font-size: 12px;
	font-weight: 800;
	padding: 5px 12px;
	border-radius: var(--gwr-radius-pill);
}
.gwr-bcard__body { padding: 20px; }
.gwr-bcard__body h3 { font-size: 17.5px; line-height: 1.35; margin-bottom: 8px; color: var(--gwr-text); }
.gwr-bcard__body p { font-size: 14px; color: var(--gwr-muted); }
.gwr-bcard__read { font-weight: 800; color: var(--gwr-green-hover); font-size: 14px; margin-top: 12px; display: inline-block; }

/* Newsletter-Band */
.gwr-news {
	background: linear-gradient(120deg, var(--gwr-primary), #3DA6D4 55%, var(--gwr-green));
	border-radius: 28px;
	margin: 0 24px 72px;
	color: #fff;
	position: relative;
	overflow: hidden;
}
.gwr-news__in {
	display: flex;
	align-items: center;
	gap: 40px;
	padding-top: 48px;
	padding-bottom: 48px;
	position: relative;
	z-index: 2;
}
.gwr-news h2 { font-size: 30px; margin-bottom: 8px; }
.gwr-news p { opacity: .94; font-size: 15.5px; margin: 0; max-width: 34rem; }
.gwr-news form {
	display: flex;
	background: #fff;
	border-radius: var(--gwr-radius-pill);
	padding: 6px;
	min-width: 380px;
	margin-left: auto;
}
.gwr-news input {
	flex: 1;
	border: 0;
	outline: none;
	padding: 10px 18px;
	font: inherit;
	font-size: 15px;
	color: var(--gwr-text);
	border-radius: var(--gwr-radius-pill);
	min-width: 0;
}
.gwr-news button {
	border: 0;
	background: var(--gwr-text);
	color: #fff;
	font-family: var(--gwr-font-sans);
	font-weight: 800;
	padding: 12px 24px;
	border-radius: var(--gwr-radius-pill);
	cursor: pointer;
	white-space: nowrap;
}
.gwr-news__deco {
	position: absolute;
	right: -40px; top: -40px;
	width: 220px; height: 220px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
}
.gwr-news__deco2 {
	position: absolute;
	right: 120px; bottom: -70px;
	width: 180px; height: 180px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .10);
}
@media (max-width: 900px) {
	.gwr-news__in { flex-direction: column; align-items: stretch; text-align: center; gap: 24px; }
	.gwr-news form { margin-left: 0; min-width: 0; width: 100%; }
}


/* Kontaktseite: leerer Info-Block + Redundanz-Heading ausblenden */
.com-contact__container > h2 { display: none; }
.com-contact__container .com-contact__info:empty,
.com-contact__container .com-contact__info .contact-address:empty { display: none; }

/* Produktbeschreibung: Read-more-Toggle */
.gwr-desc-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: .5rem 0 0;
	padding: .5rem 1.1rem;
	border: 2px solid var(--gwr-primary);
	border-radius: 999px;
	background: #fff;
	color: var(--gwr-primary-dark);
	font-family: var(--gwr-font-sans);
	font-weight: 800;
	font-size: .85rem;
	cursor: pointer;
	transition: background .15s var(--gwr-ease), color .15s var(--gwr-ease);
}
.gwr-desc-toggle:hover { background: var(--gwr-primary); color: #fff; }
.gwr-desc-dots { font-weight: 700; color: var(--gwr-muted); }

/* w-auto helper (Bootstrap-less template) + article vote block */
.w-auto { width: auto !important; }
.content_vote { display: inline-flex; align-items: center; gap: .6rem; }
.content_vote select.form-select-sm { width: auto; min-width: 9.5rem; padding: .45rem 2rem .45rem .8rem; }
.content_vote input.btn-sm { padding: .45rem 1.1rem; }
.form-inline.mb-2 { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin-bottom: .75rem; }

/* cart reload: nechavame vacsiu svg ikonu z JS default.css, ::before glyph rusime */
.jshop.cart .cart_reload, .cart .cart_reload {
	background: url(../../../components/com_jshopping/images/reload.svg) no-repeat center !important;
	background-size: 1.15rem !important;
	width: 2.1rem;
	height: 2.1rem;
}
.jshop.cart .cart_reload::before, .cart .cart_reload::before { content: none !important; }

/* ---------- Kontaktseite ---------- */
.gwr-contact { padding-block: .5rem 2.5rem; }
.gwr-contact__head { text-align: center; max-width: 620px; margin: 0 auto 2.25rem; }
.gwr-contact__eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	background: var(--gwr-primary-soft); color: var(--gwr-primary-dark);
	font-weight: 800; font-size: 12.5px; letter-spacing: .6px; text-transform: uppercase;
	padding: 7px 16px; border-radius: 999px; margin-bottom: 14px;
}
.gwr-contact__head h1 { font-size: clamp(1.9rem, 3.5vw, 2.6rem); margin-bottom: .5rem; }
.gwr-contact__sub { color: var(--gwr-muted); font-size: 1rem; }
.gwr-contact__cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 2rem; }
@media (max-width: 991px) { .gwr-contact__cards { grid-template-columns: repeat(2, 1fr); } }
.gwr-contact__card {
	background: #fff; border: 1.5px solid var(--gwr-border); border-radius: var(--gwr-radius-lg);
	padding: 1.25rem 1.35rem; display: grid; gap: .3rem; align-content: start;
	font-size: .88rem; color: var(--gwr-muted);
}
.gwr-contact__card b { font-family: var(--gwr-font-display); font-size: 1.02rem; color: var(--gwr-ink); }
.gwr-contact__ic { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: .35rem; }
.gwr-contact__ic--blue { background: var(--gwr-primary-soft); color: var(--gwr-primary-dark); }
.gwr-contact__ic--green { background: var(--gwr-green-soft); color: var(--gwr-green-d, #5FA332); }
.gwr-contact__ic--teal { background: #E9F7F4; color: #2FA58A; }
.gwr-contact__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(260px, 4fr); gap: 1.75rem; align-items: start; }
@media (max-width: 991px) { .gwr-contact__grid { grid-template-columns: 1fr; } }
.gwr-contact__formcard {
	background: #fff; border: 1.5px solid var(--gwr-border); border-radius: var(--gwr-radius-lg);
	box-shadow: var(--gwr-shadow); padding: 2rem 2.25rem;
}
.gwr-contact__formcard h2 { font-size: 1.55rem; margin-bottom: .3rem; }
.gwr-contact__formsub { color: var(--gwr-muted); font-size: .85rem; margin-bottom: 1.5rem; }
/* form internals: kompaktes Grid, Labels oben */
.gwr-contact__formcard form fieldset.m-0 { margin: 0; padding: 0; border: 0; }
.gwr-contact__formcard form legend,
.gwr-contact__formcard .field-spacer { display: none; }
.gwr-contact__formcard .control-group { margin-bottom: 1rem; }
.gwr-contact__formcard .control-label { display: block; margin-bottom: .35rem; font-size: .88rem; font-weight: 600; }
.gwr-contact__formcard .control-label label { margin: 0; }
.gwr-contact__formcard .controls { margin-left: 0; }
.gwr-contact__formcard .controls input,
.gwr-contact__formcard .controls textarea { width: 100%; }
@media (min-width: 640px) {
	.gwr-contact__formcard .control-group:has(#jform_contact_name),
	.gwr-contact__formcard .control-group:has(#jform_contact_email) { float: left; width: calc(50% - .6rem); }
	.gwr-contact__formcard .control-group:has(#jform_contact_name) { margin-right: 1.2rem; }
	.gwr-contact__formcard .control-group:has(#jform_contact_emailmsg),
	.gwr-contact__formcard .control-group:has(#jform_contact_message),
	.gwr-contact__formcard .control-group:has(#jform_captcha) { clear: both; }
}
.gwr-contact__formcard .control-group:has(#jform_captcha) .controls { display: flex; justify-content: flex-start; }
.gwr-contact__formcard #jform_contact_message { min-height: 140px; }
.gwr-contact__formcard button.validate,
.gwr-contact__formcard .button.validate,
.gwr-contact__formcard input[type="submit"].validate {
	width: 100%; padding: .85rem 1.5rem; border: 0; cursor: pointer;
	background: var(--gwr-green); color: #fff;
	font-family: var(--gwr-font-sans); font-weight: 800; font-size: 1rem;
	border-radius: 999px; box-shadow: var(--gwr-shadow);
	transition: background .15s var(--gwr-ease), transform .15s var(--gwr-ease);
}
.gwr-contact__formcard button.validate:hover,
.gwr-contact__formcard .button.validate:hover,
.gwr-contact__formcard input[type="submit"].validate:hover { background: var(--gwr-green-d, #5FA332); transform: translateY(-1px); }
.gwr-contact__side { display: grid; gap: 1.25rem; }
.gwr-contact__sidecard { background: #fff; border: 1.5px solid var(--gwr-border); border-radius: var(--gwr-radius-lg); padding: 1.5rem 1.6rem; }
.gwr-contact__sidecard h3 { font-size: 1.1rem; margin-bottom: .8rem; }
.gwr-contact__sidecard--soft { background: var(--gwr-primary-soft); border-color: transparent; font-size: .86rem; color: var(--gwr-ink); }
.gwr-contact__sidelinks { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.gwr-contact__sidelinks a { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .55rem .8rem; border-radius: var(--gwr-radius); font-weight: 700; font-size: .88rem; color: var(--gwr-ink); text-decoration: none; border: 1px solid transparent; }
.gwr-contact__sidelinks a::after { content: "→"; color: var(--gwr-primary); }
.gwr-contact__sidelinks a:hover { background: var(--gwr-primary-soft); border-color: var(--gwr-border); color: var(--gwr-primary-dark); }
.gwr-contact__formcard .control-group:has(#jform_contact_email_copy) { display: flex; align-items: center; gap: .6rem; }
.gwr-contact__formcard .control-group:has(#jform_contact_email_copy) .control-label { order: 2; margin: 0; font-weight: 500; }
.gwr-contact__formcard .control-group:has(#jform_contact_email_copy) .controls { order: 1; width: auto; }
.gwr-contact__formcard .control-group:has(#jform_contact_email_copy) .controls input { width: auto; }

/* CLS: product detail hlavny obrazok — rezerva priestoru pred nacitanim */
.jshop.productview #list_product_image_middle img.image { aspect-ratio: 1 / 1; }

/* ---------- GDPR Cookie-Consent ---------- */
.gwr-consent {
	position: fixed; left: 50%; bottom: 18px; transform: translate(-50%, 20px);
	width: min(920px, calc(100% - 24px)); z-index: 9000;
	display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap;
	background: #fff; border: 1.5px solid var(--gwr-border); border-radius: var(--gwr-radius-lg);
	box-shadow: 0 18px 50px rgba(43,58,68,.18); padding: 1.1rem 1.4rem;
	opacity: 0; pointer-events: none; transition: opacity .25s var(--gwr-ease), transform .25s var(--gwr-ease);
}
.gwr-consent.is-visible { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.gwr-consent__text { flex: 1 1 420px; display: grid; gap: .2rem; font-size: .88rem; color: var(--gwr-muted); }
.gwr-consent__text strong { font-family: var(--gwr-font-display); color: var(--gwr-ink); font-size: 1rem; }
.gwr-consent__text a { color: var(--gwr-primary-dark); font-weight: 700; }
.gwr-consent__actions { display: flex; gap: .6rem; margin-left: auto; }
.gwr-consent__btn { border-radius: 999px; padding: .6rem 1.3rem; font-weight: 800; font-size: .88rem; cursor: pointer; border: 2px solid var(--gwr-primary); font-family: var(--gwr-font-sans); }
.gwr-consent__btn--ok { background: var(--gwr-green); border-color: var(--gwr-green); color: #fff; }
.gwr-consent__btn--ok:hover { background: var(--gwr-green-d, #5FA332); }
.gwr-consent__btn--ghost { background: #fff; color: var(--gwr-primary-dark); }
.gwr-consent__btn--ghost:hover { background: var(--gwr-primary-soft); }
@media (max-width: 640px) { .gwr-consent__actions { margin-left: 0; width: 100%; } .gwr-consent__btn { flex: 1; } }

/* honeypot pole (skryte) */
.gwr-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

.gwr-news__cap {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 12px;
	font-size: 13.5px;
	color: #fff;
	opacity: .95;
}
.gwr-news__cap input {
	width: 68px;
	padding: 7px 10px;
	border: 0;
	border-radius: 999px;
	font: inherit;
	font-size: 14px;
	text-align: center;
	color: var(--gwr-text);
	background: #fff;
	outline: none;
	-moz-appearance: textfield;
	appearance: textfield;
}
.gwr-news__cap input::-webkit-outer-spin-button,
.gwr-news__cap input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.gwr-news__cap input:focus { box-shadow: 0 0 0 3px rgba(255, 255, 255, .45); }

/* newsletter flash sprava */
.gwr-alert { max-width: 720px; margin: 0 auto 1.25rem; padding: .9rem 1.2rem; border-radius: 12px; font-size: .95rem; font-weight: 600; text-align: center; }
.gwr-alert-success { background: #e7f6ec; color: #1c7a3d; border: 1px solid #bfe6cd; }
.gwr-alert-warning { background: #fdf3e3; color: #9a6700; border: 1px solid #f0dcae; }
.gwr-alert-info { background: #e8f1fb; color: #1a5fa8; border: 1px solid #c4dcf3; }
