/* =========================================================================
   Insecticon Shop - woocommerce.css
   Wird nur auf WooCommerce-Seiten geladen. Ueberschreibt die generische
   WooCommerce-Optik in Richtung "kuratierte Produktuebersicht".
   ========================================================================= */

/* --- Shop-Wrapper ------------------------------------------------------ */
.shop-wrap {
	padding: 56px 0 var(--section-space-compact);
}

/* WooCommerce-Seiten (Cart/Checkout/Konto) sollen die volle Breite nutzen,
   nicht die schmale Lesebreite von .entry-content. */
.entry-content--full {
	max-width: none;
}

.woocommerce-breadcrumb {
	font-size: 0.82rem;
	color: var(--color-muted);
	padding: 24px 0 0;
}

.woocommerce-breadcrumb a {
	color: var(--color-muted);
}

.woocommerce-breadcrumb a:hover {
	color: var(--color-accent);
}

.crumb-sep {
	margin: 0 4px;
	opacity: 0.5;
}

/* Seitentitel des Shops */
.woocommerce-products-header__title,
.shop-wrap h1.entry-title {
	font-family: var(--font-display);
	margin-bottom: 0.3em;
}

.term-description,
.woocommerce-products-header {
	max-width: 680px;
	margin-bottom: 36px;
}

/* --- Result-Count & Ordering ------------------------------------------ */
.woocommerce-result-count {
	color: var(--color-muted);
	font-size: 0.85rem;
}

.woocommerce-ordering select {
	font-family: var(--font-body);
	padding: 8px 12px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-sm);
	background: #fff;
	color: var(--color-text);
}

/* --- Produkt-Grid ------------------------------------------------------ */
ul.products {
	list-style: none;
	margin: 28px 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}

ul.products li.product {
	margin: 0;
	width: auto !important;
	float: none !important;
}

/* --- Produktkarte ------------------------------------------------------ */
.product-card {
	background: #fff;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.product-card:hover {
	border-color: var(--border-strong);
	box-shadow: var(--shadow-subtle);
}

.product-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--color-bg-soft);
	overflow: hidden;
}

.product-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.product-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: var(--color-green);
	color: #fff;
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 600;
	padding: 4px 9px;
	border-radius: var(--radius-sm);
}

.product-card__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 20px;
	flex: 1 0 auto;
}

.product-card__cat {
	font-size: 0.74rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-muted);
	font-weight: 600;
}

.product-card__title {
	font-family: var(--font-display);
	font-size: 1.2rem;
	margin: 0;
	line-height: 1.3;
}

.product-card__title a {
	color: var(--color-text);
}

.product-card__title a:hover {
	color: var(--color-accent);
}

.product-card__excerpt {
	font-size: 0.9rem;
	color: var(--color-muted);
	margin: 0;
}

.product-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 12px;
}

.product-card__price {
	font-weight: 700;
	font-size: 1.05rem;
}

.product-card__price del {
	color: var(--color-muted);
	font-weight: 400;
	margin-right: 6px;
}

.product-card .button,
.product-card .added_to_cart {
	font-size: 0.85rem;
	padding: 9px 16px;
}

/* --- Preis allgemein --------------------------------------------------- */
.price,
.woocommerce-Price-amount {
	color: var(--color-text);
}

.price del {
	color: var(--color-muted);
}

.price ins {
	text-decoration: none;
	font-weight: 700;
}

/* --- Einzelproduktseite ----------------------------------------------- */
.single-product-hero {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	padding: 8px 0 var(--section-space-compact);
	align-items: start;
}

.single-product-hero .woocommerce-product-gallery {
	margin: 0;
}

.single-product-hero .woocommerce-product-gallery img {
	border-radius: var(--radius-md);
}

.single-product-summary .product_title {
	font-family: var(--font-display);
	font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.5rem);
	margin-bottom: 0.3em;
}

.single-product-summary .price {
	font-size: 1.5rem;
	font-weight: 700;
	margin: 16px 0;
	display: block;
}

.single-product-summary .woocommerce-product-details__short-description {
	color: var(--color-muted);
	max-width: 46ch;
}

.single-product-summary form.cart {
	margin: 24px 0;
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	align-items: center;
}

.single-product-summary form.cart .button {
	padding: 14px 28px;
}

.single-product-summary .quantity input {
	width: 72px;
	padding: 12px 8px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-sm);
	text-align: center;
	font-family: var(--font-body);
}

.product_meta {
	font-size: 0.83rem;
	color: var(--color-muted);
	border-top: 1px solid var(--border-soft);
	padding-top: 16px;
	margin-top: 16px;
}

.product_meta a {
	color: var(--color-muted);
}

/* Editorial-Abschnitte der Produktseite */
.product-section {
	padding: 48px 0;
	border-top: 1px solid var(--border-soft);
}

.product-section__inner {
	max-width: 760px;
}

.product-section h2 {
	font-family: var(--font-display);
	margin-bottom: 0.5em;
}

.product-section .eyebrow {
	margin-bottom: 0.6em;
}

/* Trust-Elemente */
.product-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin-top: 24px;
	font-size: 0.85rem;
	color: var(--color-muted);
}

.product-trust span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* FAQ / Accordion */
.product-faq details {
	border-bottom: 1px solid var(--border-soft);
	padding: 16px 0;
}

.product-faq summary {
	cursor: pointer;
	font-weight: 600;
	list-style: none;
}

.product-faq summary::-webkit-details-marker {
	display: none;
}

.product-faq summary::after {
	content: "+";
	float: right;
	color: var(--color-accent);
	font-size: 1.2rem;
	line-height: 1;
}

.product-faq details[open] summary::after {
	content: "\2013";
}

.product-faq details p {
	margin: 12px 0 0;
	color: var(--color-muted);
}

/* Tabs der Einzelproduktseite dezenter */
.woocommerce-tabs ul.tabs {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: flex;
	gap: 24px;
	border-bottom: 1px solid var(--border-soft);
}

.woocommerce-tabs ul.tabs li {
	margin: 0;
}

.woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 12px 0;
	color: var(--color-muted);
	font-weight: 600;
	border-bottom: 2px solid transparent;
}

.woocommerce-tabs ul.tabs li.active a {
	color: var(--color-text);
	border-bottom-color: var(--color-accent);
}

/* Verwandte Produkte */
.related.products,
.up-sells.products {
	margin-top: 56px;
	padding-top: 40px;
	border-top: 1px solid var(--border-soft);
}

.related.products > h2,
.up-sells.products > h2 {
	font-family: var(--font-display);
	margin-bottom: 24px;
}

/* --- Tabellen (Cart, Orders) ------------------------------------------ */
.woocommerce table.shop_table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
	margin-bottom: 24px;
}

.woocommerce table.shop_table th {
	text-align: left;
	font-size: 0.76rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-muted);
	padding: 14px 12px;
	border-bottom: 1px solid var(--border-strong);
}

.woocommerce table.shop_table td {
	padding: 18px 12px;
	border-bottom: 1px solid var(--border-soft);
	vertical-align: middle;
}

.woocommerce table.shop_table .product-thumbnail img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: var(--radius-sm);
}

/* --- Cart -------------------------------------------------------------- */
.cart-layout {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 48px;
	align-items: start;
}

.cart-collaterals .cart_totals {
	background: #fff;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	padding: 24px;
}

.cart_totals h2 {
	font-size: 1.1rem;
	font-family: var(--font-body);
	font-weight: 700;
	margin-bottom: 16px;
}

.cart_totals table th,
.cart_totals table td {
	padding: 10px 0;
	border-bottom: 1px solid var(--border-soft);
	font-size: 0.92rem;
}

.cart_totals .order-total th,
.cart_totals .order-total td {
	font-weight: 700;
	font-size: 1.05rem;
	border-bottom: 0;
}

.wc-proceed-to-checkout {
	margin-top: 18px;
}

.wc-proceed-to-checkout .checkout-button {
	width: 100%;
}

.coupon {
	display: flex;
	gap: 8px;
	margin: 16px 0;
}

.coupon input[type="text"] {
	flex: 1;
}

/* --- Checkout ---------------------------------------------------------- */
.checkout-intro {
	max-width: 680px;
	margin-bottom: 36px;
}

.woocommerce-checkout .col2-set,
form.checkout .col2-set {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
}

#customer_details {
	margin-bottom: 32px;
}

.checkout-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 48px;
	align-items: start;
}

#order_review {
	background: #fff;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	padding: 24px;
	position: sticky;
	top: 96px;
}

#order_review_heading {
	font-size: 1.1rem;
	font-weight: 700;
	font-family: var(--font-body);
	margin-bottom: 16px;
}

.checkout h3 {
	font-size: 1.05rem;
	margin-bottom: 14px;
}

/* --- Formularfelder ---------------------------------------------------- */
.woocommerce form .form-row {
	margin-bottom: 16px;
	padding: 0;
}

.woocommerce form .form-row label {
	display: block;
	font-size: 0.85rem;
	font-weight: 600;
	margin-bottom: 6px;
	color: var(--color-text);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-account input[type="text"],
.woocommerce-account input[type="email"],
.woocommerce-account input[type="password"],
.select2-container .select2-selection--single {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--border-strong);
	border-radius: var(--radius-sm);
	background: #fff;
	font-family: var(--font-body);
	font-size: 0.95rem;
	color: var(--color-text);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	border-color: var(--color-accent);
	outline: none;
}

.woocommerce form .form-row.woocommerce-invalid input.input-text {
	border-color: #a23b2e;
}

.select2-container--default .select2-selection--single {
	height: auto;
}

/* --- Mein Konto -------------------------------------------------------- */
.account-layout {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 48px;
	align-items: start;
	padding-top: 8px;
}

/* Sidebar-Navigation */
.account-nav {
	background: #fff;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	padding: 12px;
}

.woocommerce-MyAccount-navigation ul,
.account-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 10px 14px;
	border-radius: var(--radius-sm);
	color: var(--color-text);
	font-size: 0.92rem;
	font-weight: 600;
}

.woocommerce-MyAccount-navigation li a:hover {
	background: var(--color-bg-soft);
}

.woocommerce-MyAccount-navigation li.is-active a {
	background: var(--color-dark);
	color: #fff;
}

.woocommerce-MyAccount-content {
	min-width: 0;
}

/* Dashboard-Kacheln */
.account-dashboard__greeting {
	margin-bottom: 28px;
}

.account-dashboard__greeting h1 {
	font-family: var(--font-display);
	margin-bottom: 0.2em;
}

.account-tiles {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-bottom: 32px;
}

.account-tile {
	display: flex;
	flex-direction: column;
	gap: 8px;
	background: #fff;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	padding: 22px;
}

.account-tile__label {
	font-size: 0.76rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-muted);
	font-weight: 600;
}

.account-tile__value {
	font-family: var(--font-display);
	font-size: 1.6rem;
}

.account-tile a {
	font-size: 0.88rem;
	font-weight: 600;
}

/* --- Login / Registrierung -------------------------------------------- */
.auth-wrap {
	max-width: 880px;
	margin: 0 auto;
}

.auth-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
}

.auth-card {
	background: #fff;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	padding: 32px;
}

.auth-card h2 {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 1.2rem;
	margin-bottom: 6px;
}

.auth-card__intro {
	color: var(--color-muted);
	font-size: 0.92rem;
	margin-bottom: 20px;
}

.woocommerce-form-login__rememberme,
.woocommerce-form-register__lostpassword {
	font-size: 0.85rem;
}

/* --- Notices ----------------------------------------------------------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.woocommerce-NoticeGroup {
	list-style: none;
	border-radius: var(--radius-md);
	padding: 14px 18px;
	margin: 0 0 20px;
	font-size: 0.92rem;
	border: 1px solid var(--border-soft);
	background: var(--color-bg-soft);
}

.woocommerce-message {
	border-left: 3px solid var(--color-green);
}

.woocommerce-info {
	border-left: 3px solid var(--color-accent);
}

.woocommerce-error {
	border-left: 3px solid #a23b2e;
	background: #f7ece9;
}

.woocommerce-message .button,
.woocommerce-info .button {
	float: right;
	font-size: 0.82rem;
	padding: 7px 14px;
}

/* --- Downloads / Orders Tabellen-Aktionen ----------------------------- */
.woocommerce-orders-table__cell-order-actions .button,
.woocommerce-MyAccount-downloads .button {
	font-size: 0.82rem;
	padding: 8px 14px;
}

/* --- Empty States ------------------------------------------------------ */
.cart-empty,
.wc-empty-cart-message {
	font-size: 1.05rem;
	color: var(--color-muted);
}

/* =========================================================================
   SHOP-ÜBERSICHT (is_shop()) — Demo-first: shop-overview.html
   Design-Tokens, alle Sektions-Styles und Produktkarten-Styles.
   Scoped unter .ic-shop-overview (main-Element der Shopseite).
   ========================================================================= */

/* --- Design-Tokens (ic-Namespace, kein Konflikt mit bestehenden Vars) ---- */
:root {
	--ic-red:          #D04A47;
	--ic-red-dark:     #A83835;
	--ic-sand:         #C89865;
	--ic-sand-light:   #DDB98A;
	--ic-sand-pale:    #EDD9BB;

	--ic-bg-dark:      #10100F;
	--ic-bg-dark-2:    #1A1A18;
	--ic-bg-dark-3:    #222220;

	--ic-bg-warm:      #F2EFE7;
	--ic-bg-warm-2:    #EAE6DC;
	--ic-bg-warm-3:    #E0DBCF;

	--ic-text-dark:    #181613;
	--ic-text-mid:     #3D3A34;
	--ic-text-muted:   #6B6760;
	--ic-text-light:   #F7F1E8;
	--ic-text-pale:    #BDB5A8;

	--ic-border-dark:  rgba(255,255,255,0.08);
	--ic-border-warm:  rgba(24,22,19,0.12);

	--ic-font-serif:   'Georgia', 'Times New Roman', serif;
	--ic-font-sans:    'Helvetica Neue', 'Arial', sans-serif;

	--ic-radius-sm:    6px;
	--ic-radius-md:    12px;
	--ic-radius-lg:    18px;
	--ic-radius-xl:    24px;

	--ic-max-w:        1180px;
	--ic-gap:          32px;
}

/* =========================================================================
   SHOP-ÜBERSICHT LAYOUT-HELPERS
   ========================================================================= */

/* Container */
.ic-container {
	max-width: var(--ic-max-w);
	margin: 0 auto;
	padding: 0 40px;
}

/* Sektions-Padding */
.ic-section {
	padding: 88px 0;
}

/* Sektion: dunkel */
.ic-section--dark {
	background: var(--ic-bg-dark);
	color: var(--ic-text-light);
}

/* Sektion: warm (hellbeige) */
.ic-section--warm {
	background: var(--ic-bg-warm);
	color: var(--ic-text-dark);
}

/* Sektion: etwas dunkleres Beige */
.ic-section--warm-2 {
	background: var(--ic-bg-warm-2);
	color: var(--ic-text-dark);
}

/* Sektion-Header */
.ic-section-header {
	margin-bottom: 52px;
}

.ic-section-eyebrow {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ic-sand);
	margin-bottom: 10px;
}

.ic-section-title {
	font-family: var(--ic-font-serif);
	font-size: 34px;
	font-weight: 400;
	line-height: 1.2;
	margin-bottom: 16px;
}

.ic-section-title--dark {
	color: var(--ic-text-dark);
}

.ic-section-lead {
	font-size: 16px;
	line-height: 1.75;
	color: var(--ic-text-pale);
	max-width: 600px;
	margin: 0;
}

.ic-section-lead--dark {
	color: var(--ic-text-muted);
}

/* Mehr-Link unter Sektionen */
.ic-section-more {
	margin-top: 36px;
}

/* =========================================================================
   BUTTONS
   ========================================================================= */
.ic-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 13px 26px;
	border-radius: var(--ic-radius-sm);
	font-size: 14px;
	font-weight: 500;
	font-family: var(--ic-font-sans);
	letter-spacing: 0.02em;
	border: none;
	cursor: pointer;
	transition: background 0.18s, color 0.18s, opacity 0.18s;
	white-space: nowrap;
	text-decoration: none;
}

.ic-btn--primary {
	background: var(--ic-red);
	color: #fff;
}

.ic-btn--primary:hover { background: var(--ic-red-dark); color: #fff; }

.ic-btn--sand {
	background: var(--ic-sand);
	color: var(--ic-text-dark);
}

.ic-btn--sand:hover { background: var(--ic-sand-light); color: var(--ic-text-dark); }

.ic-btn--ghost-light {
	background: transparent;
	color: var(--ic-text-light);
	border: 1px solid rgba(255,255,255,0.25);
}

.ic-btn--ghost-light:hover {
	background: rgba(255,255,255,0.08);
	border-color: rgba(255,255,255,0.45);
	color: var(--ic-text-light);
}

.ic-btn--ghost-dark {
	background: transparent;
	color: var(--ic-text-dark);
	border: 1px solid rgba(24,22,19,0.25);
}

.ic-btn--ghost-dark:hover {
	background: rgba(24,22,19,0.06);
	color: var(--ic-text-dark);
}

.ic-btn--sm {
	padding: 9px 18px;
	font-size: 13px;
}

/* =========================================================================
   1. HERO
   ========================================================================= */
.ic-hero {
	background: var(--ic-bg-dark);
	color: var(--ic-text-light);
	padding: 96px 0 80px;
	overflow: hidden;
}

.ic-hero__inner {
	max-width: var(--ic-max-w);
	margin: 0 auto;
	padding: 0 40px;
	display: grid;
	grid-template-columns: 1fr 480px;
	gap: 72px;
	align-items: center;
}

.ic-hero__eyebrow {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ic-sand);
	margin-bottom: 18px;
}

.ic-hero__headline {
	font-family: var(--ic-font-serif);
	font-size: 48px;
	font-weight: 400;
	line-height: 1.15;
	color: var(--ic-text-light);
	margin-bottom: 22px;
}

.ic-hero__headline em {
	color: var(--ic-sand-light);
	font-style: italic;
}

.ic-hero__body {
	font-size: 16px;
	line-height: 1.8;
	color: var(--ic-text-pale);
	max-width: 480px;
	margin-bottom: 36px;
}

.ic-hero__actions {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}

/* Hero Collage */
.ic-hero__collage {
	position: relative;
	height: 460px;
}

.ic-collage-card {
	position: absolute;
	border-radius: var(--ic-radius-md);
	overflow: hidden;
	box-shadow: 0 12px 40px rgba(0,0,0,0.5);
	transition: transform 0.3s;
}

.ic-collage-card:hover { transform: translateY(-4px); }

.ic-collage-card--main {
	width: 240px;
	height: 300px;
	top: 0;
	left: 40px;
	background: linear-gradient(145deg, #1e2a18 0%, #2d4020 50%, #1a2a10 100%);
	border: 1px solid rgba(90,120,60,0.3);
}

.ic-collage-card--secondary {
	width: 180px;
	height: 220px;
	top: 60px;
	right: 20px;
	background: linear-gradient(145deg, #2a1e10 0%, #3d2e18 60%, #261808 100%);
	border: 1px solid rgba(180,140,80,0.25);
}

.ic-collage-card--small {
	width: 140px;
	height: 170px;
	bottom: 0;
	left: 10px;
	background: linear-gradient(145deg, #1c1c1a 0%, #2d2b26 100%);
	border: 1px solid rgba(200,152,101,0.2);
}

/* Collage-Bild (wenn URL gesetzt) */
.ic-collage-card__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	border-radius: inherit;
}

.ic-collage-card--has-img::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.18) 55%, transparent 100%);
	border-radius: inherit;
	pointer-events: none;
}

.ic-collage-inner {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	padding: 18px;
	justify-content: space-between;
	position: relative;
	z-index: 1;
}

.ic-collage-label {
	display: inline-block;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	background: rgba(255,255,255,0.1);
	color: rgba(255,255,255,0.6);
	padding: 4px 9px;
	border-radius: 100px;
	border: 1px solid rgba(255,255,255,0.12);
	align-self: flex-start;
}

.ic-collage-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 1;
}

.ic-collage-icon svg { opacity: 0.25; }

.ic-collage-title {
	font-family: var(--ic-font-serif);
	font-size: 14px;
	font-weight: 400;
	color: rgba(255,255,255,0.8);
	line-height: 1.35;
}

.ic-collage-price {
	font-size: 13px;
	color: var(--ic-sand-light);
	margin-top: 5px;
}

.ic-collage-badge {
	position: absolute;
	bottom: -12px;
	right: -10px;
	background: var(--ic-red);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 5px 11px;
	border-radius: 100px;
	white-space: nowrap;
	box-shadow: 0 4px 12px rgba(208,74,71,0.5);
}

.ic-collage-badge--sand {
	background: var(--ic-sand);
	color: var(--ic-text-dark);
	box-shadow: 0 4px 12px rgba(200,152,101,0.4);
}

/* =========================================================================
   2. KATEGORIE-KACHELN
   ========================================================================= */
.ic-categories {
	background: var(--ic-bg-dark-2);
	padding: 64px 0;
}

.ic-categories__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}

.ic-cat-tile {
	background: var(--ic-bg-dark-3);
	border: 1px solid var(--ic-border-dark);
	border-radius: var(--ic-radius-lg);
	padding: 28px 24px 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: border-color 0.2s, background 0.2s;
	cursor: pointer;
	text-decoration: none;
	color: inherit;
}

.ic-cat-tile:hover {
	border-color: rgba(200,152,101,0.3);
	background: rgba(200,152,101,0.04);
	color: inherit;
}

.ic-cat-tile__icon {
	width: 40px;
	height: 40px;
	border-radius: 8px;
	background: rgba(200,152,101,0.12);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 6px;
	color: var(--ic-sand);
}

.ic-cat-tile__title {
	font-family: var(--ic-font-serif);
	font-size: 18px;
	font-weight: 400;
	color: var(--ic-text-light);
	margin: 0;
}

.ic-cat-tile__text {
	font-size: 13px;
	line-height: 1.65;
	color: var(--ic-text-pale);
	flex: 1;
	margin: 0;
}

.ic-cat-tile__arrow {
	font-size: 18px;
	color: var(--ic-sand);
	align-self: flex-end;
	transition: transform 0.2s;
}

.ic-cat-tile:hover .ic-cat-tile__arrow {
	transform: translateX(4px);
}

/* =========================================================================
   PRODUKTKARTEN (gemeinsam für alle Sektionen)
   ========================================================================= */
.ic-product-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.ic-product-grid--wide {
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

/* Karte: Basis */
.ic-product-card {
	background: var(--ic-bg-warm);
	border: 1px solid var(--ic-border-warm);
	border-radius: var(--ic-radius-lg);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: box-shadow 0.2s, transform 0.2s;
}

.ic-product-card:hover {
	box-shadow: 0 8px 32px rgba(24,22,19,0.12);
	transform: translateY(-2px);
}

/* Karte: dunkle Sektion */
.ic-product-card--dark {
	background: var(--ic-bg-dark-3);
	border-color: var(--ic-border-dark);
}

.ic-product-card--dark:hover {
	box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}

/* Cover / Bildfläche */
.ic-product-card__cover {
	aspect-ratio: 16 / 9;
	position: relative;
	overflow: hidden;
}

.ic-product-card__cover-link {
	display: block;
	width: 100%;
	height: 100%;
}

.ic-product-card__cover-link img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s;
}

.ic-product-card:hover .ic-product-card__cover-link img {
	transform: scale(1.03);
}

.ic-product-card__cover-inner {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Cover-Farb-Varianten (Fallback ohne Bild) */
.ic-cover--green  { background: linear-gradient(145deg, #1c2b14 0%, #2d4520 60%, #162210 100%); }
.ic-cover--sand   { background: linear-gradient(145deg, #2a200e 0%, #3d3018 60%, #221808 100%); }
.ic-cover--dark   { background: linear-gradient(145deg, #1a1a18 0%, #2a2826 100%); }
.ic-cover--warm   { background: linear-gradient(145deg, #E8DFD0 0%, #D4C8B4 100%); }
.ic-cover--muted  { background: linear-gradient(145deg, #CEC9BE 0%, #BEB7AA 100%); }

.ic-cover-icon { opacity: 0.18; }

/* Cover-Badge (Kategorielabel) */
.ic-cover-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 100px;
}

.ic-cover-badge--red   { background: var(--ic-red); color: #fff; }
.ic-cover-badge--sand  { background: var(--ic-sand); color: var(--ic-text-dark); }
.ic-cover-badge--dark  { background: rgba(24,22,19,0.7); color: rgba(255,255,255,0.85); }

.ic-cover-badge--light {
	background: rgba(255,255,255,0.15);
	color: rgba(255,255,255,0.85);
	border: 1px solid rgba(255,255,255,0.15);
}

/* Karten-Body */
.ic-product-card__body {
	padding: 22px 22px 24px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.ic-product-card__label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ic-sand);
	margin: 0 0 8px;
}

.ic-product-card__title {
	font-family: var(--ic-font-serif);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.35;
	color: var(--ic-text-dark);
	margin: 0 0 10px;
}

.ic-product-card__title a {
	color: inherit;
	text-decoration: none;
}

.ic-product-card__title a:hover { opacity: 0.8; }

.ic-product-card__title--light { color: var(--ic-text-light); }

.ic-product-card__text {
	font-size: 13px;
	line-height: 1.7;
	color: var(--ic-text-muted);
	flex: 1;
	margin: 0 0 16px;
}

.ic-product-card__text--light { color: var(--ic-text-pale); }

/* Quickfacts (für Kurs-Karten) */
.ic-product-card__quickfacts {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 18px;
}

.ic-qf {
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 100px;
	background: var(--ic-bg-warm-2);
	color: var(--ic-text-muted);
	border: 1px solid var(--ic-border-warm);
}

.ic-qf--dark {
	background: rgba(255,255,255,0.07);
	color: var(--ic-text-pale);
	border-color: rgba(255,255,255,0.1);
}

/* Karten-Footer */
.ic-product-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
}

.ic-product-card__price {
	font-family: var(--ic-font-serif);
	font-size: 20px;
	font-weight: 400;
	color: var(--ic-text-dark);
}

.ic-product-card__price--light { color: var(--ic-text-light); }
.ic-product-card__price--free  { color: var(--ic-sand); }
.ic-product-card__price--soon  { font-size: 13px; color: var(--ic-text-muted); }

/* =========================================================================
   5. FEATURE — KARTENSPIEL (Prominente Produktvorstellung)
   ========================================================================= */
.ic-feature {
	background: var(--ic-bg-dark);
	color: var(--ic-text-light);
	padding: 96px 0;
}

.ic-feature__inner {
	max-width: var(--ic-max-w);
	margin: 0 auto;
	padding: 0 40px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: center;
}

/* Mockup / Produktbild links */
.ic-feature__mockup {
	position: relative;
	height: 440px;
}

.ic-feature__img-wrap {
	width: 100%;
	height: 100%;
	border-radius: var(--ic-radius-md);
	overflow: hidden;
}

.ic-feature__img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Demo-Karten-Mockup (Fallback ohne Produktbild) */
.ic-feature-card {
	position: absolute;
	border-radius: var(--ic-radius-md);
	background: linear-gradient(145deg, #2a200e 0%, #3d3018 60%, #221808 100%);
	border: 1px solid rgba(200,152,101,0.2);
	box-shadow: 0 16px 48px rgba(0,0,0,0.5);
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(200,152,101,0.3);
	transition: transform 0.3s;
}

/* Feature-Karten-Bild (wenn URL gesetzt) */
.ic-feature-card--has-img {
	overflow: hidden;
	align-items: stretch;
	justify-content: stretch;
}

.ic-feature-card__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	border-radius: inherit;
}

.ic-feature-card:hover { transform: scale(1.03) rotate(-1deg); }

.ic-feature-card--1 { width: 180px; height: 260px; top: 20px;  left: 0;    transform: rotate(-5deg); }
.ic-feature-card--2 { width: 180px; height: 260px; top: 50px;  left: 80px; transform: rotate(-1deg); }
.ic-feature-card--3 { width: 180px; height: 260px; top: 30px;  left: 160px; transform: rotate(4deg); }

.ic-feature-card--4 {
	width: 160px;
	height: 230px;
	bottom: 0;
	right: 40px;
	transform: rotate(-2deg);
	background: linear-gradient(145deg, #1c2b14 0%, #2d4520 60%, #162210 100%);
	border-color: rgba(100,180,80,0.2);
	color: rgba(100,180,80,0.3);
}

/* Feature-Content rechts */
.ic-feature__content {}

.ic-feature__eyebrow {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ic-sand);
	margin-bottom: 14px;
}

.ic-feature__title {
	font-family: var(--ic-font-serif);
	font-size: 36px;
	font-weight: 400;
	line-height: 1.2;
	color: var(--ic-text-light);
	margin-bottom: 20px;
}

.ic-feature__body {
	font-size: 15px;
	line-height: 1.8;
	color: var(--ic-text-pale);
	margin-bottom: 28px;
}

.ic-feature__bullets {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 36px;
	list-style: none;
	padding: 0;
}

.ic-feature__bullet {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 14px;
	color: var(--ic-text-pale);
}

.ic-feature__bullet::before {
	content: '';
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: rgba(200,152,101,0.2);
	border: 1px solid rgba(200,152,101,0.4);
	flex-shrink: 0;
}

.ic-feature__price-row {
	display: flex;
	align-items: center;
	gap: 20px;
}

.ic-feature__price {
	font-family: var(--ic-font-serif);
	font-size: 32px;
	font-weight: 400;
	color: var(--ic-text-light);
}

/* WooCommerce-Preis im Feature-Bereich */
.ic-feature__price .woocommerce-Price-amount { color: var(--ic-text-light); }

/* =========================================================================
   TRUST
   ========================================================================= */
.ic-trust__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.ic-trust-card {
	background: var(--ic-bg-warm);
	border: 1px solid var(--ic-border-warm);
	border-radius: var(--ic-radius-lg);
	padding: 32px 28px;
}

.ic-trust-card__icon {
	width: 44px;
	height: 44px;
	border-radius: 10px;
	background: var(--ic-bg-warm-2);
	border: 1px solid var(--ic-border-warm);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
	color: var(--ic-sand);
}

.ic-trust-card__title {
	font-family: var(--ic-font-serif);
	font-size: 18px;
	font-weight: 400;
	color: var(--ic-text-dark);
	margin-bottom: 10px;
	line-height: 1.3;
}

.ic-trust-card__text {
	font-size: 14px;
	line-height: 1.7;
	color: var(--ic-text-muted);
	margin: 0;
}

/* =========================================================================
   FILTER-CHIPS
   ========================================================================= */
.ic-filter-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 40px;
}

.ic-filter-chip {
	padding: 8px 18px;
	border-radius: 100px;
	font-size: 13px;
	font-weight: 500;
	border: 1px solid var(--ic-border-warm);
	background: transparent;
	color: var(--ic-text-muted);
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
	text-decoration: none;
}

.ic-filter-chip:hover {
	background: var(--ic-bg-warm-2);
	border-color: rgba(24,22,19,0.22);
	color: var(--ic-text-dark);
}

.ic-filter-chip--active {
	background: var(--ic-text-dark);
	border-color: var(--ic-text-dark);
	color: var(--ic-text-light);
}

.ic-filter-chip--active:hover {
	background: var(--ic-text-mid);
	border-color: var(--ic-text-mid);
	color: var(--ic-text-light);
}

/* Keine Produkte gefunden */
.ic-no-products {
	color: var(--ic-text-muted);
	font-size: 15px;
	grid-column: 1 / -1;
}

/* =========================================================================
   FAQ
   ========================================================================= */
.ic-faq {
	background: var(--ic-bg-dark);
	color: var(--ic-text-light);
}

.ic-faq__list {
	display: flex;
	flex-direction: column;
	gap: 0;
	max-width: 760px;
	border: 1px solid var(--ic-border-dark);
	border-radius: var(--ic-radius-lg);
	overflow: hidden;
}

.ic-faq__item {
	border-bottom: 1px solid var(--ic-border-dark);
}

.ic-faq__item:last-child { border-bottom: none; }

.ic-faq__question {
	width: 100%;
	background: transparent;
	border: none;
	padding: 22px 28px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	font-size: 15px;
	font-weight: 500;
	color: var(--ic-text-light);
	text-align: left;
	cursor: pointer;
	transition: background 0.15s;
	font-family: var(--ic-font-sans);
}

.ic-faq__question:hover { background: rgba(255,255,255,0.03); }

.ic-faq__chevron {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	color: var(--ic-text-pale);
	transition: transform 0.25s;
}

.ic-faq__item.ic-open .ic-faq__chevron {
	transform: rotate(180deg);
}

.ic-faq__answer {
	max-height: 0;
	overflow: hidden;
	padding: 0 28px;
	font-size: 14px;
	line-height: 1.75;
	color: var(--ic-text-pale);
	transition: max-height 0.3s ease, padding 0.3s ease;
}

.ic-faq__item.ic-open .ic-faq__answer {
	max-height: 300px;
	padding: 0 28px 22px;
}

/* =========================================================================
   KATEGORIE-ARCHIV (is_product_category, is_product_tag)
   ========================================================================= */
.ic-archive-wrap {
	padding: 56px 0 80px;
}

.ic-archive-header {
	margin-bottom: 40px;
}

.ic-archive-eyebrow {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ic-sand, var(--color-accent));
	margin-bottom: 10px;
}

.ic-archive-title {
	font-family: var(--ic-font-serif);
	font-size: clamp(28px, 1rem + 3vw, 44px);
	font-weight: 400;
	margin-bottom: 12px;
	color: var(--ic-text-dark, var(--color-text));
}

/* WooCommerce-Pagination im ic-Stil */
.ic-shop-overview .woocommerce-pagination,
.ic-archive-wrap .woocommerce-pagination {
	margin-top: 40px;
	display: flex;
	justify-content: center;
}

.ic-shop-overview .woocommerce-pagination ul,
.ic-archive-wrap .woocommerce-pagination ul {
	display: flex;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ic-shop-overview .woocommerce-pagination ul li a,
.ic-shop-overview .woocommerce-pagination ul li span,
.ic-archive-wrap .woocommerce-pagination ul li a,
.ic-archive-wrap .woocommerce-pagination ul li span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: var(--ic-radius-sm, 6px);
	border: 1px solid var(--ic-border-warm, rgba(24,22,19,0.12));
	font-size: 14px;
	color: var(--ic-text-muted);
	text-decoration: none;
	transition: background 0.15s, color 0.15s;
}

.ic-shop-overview .woocommerce-pagination ul li a:hover,
.ic-archive-wrap .woocommerce-pagination ul li a:hover {
	background: var(--ic-text-dark);
	color: var(--ic-text-light);
	border-color: var(--ic-text-dark);
}

.ic-shop-overview .woocommerce-pagination ul li span.current,
.ic-archive-wrap .woocommerce-pagination ul li span.current {
	background: var(--ic-text-dark);
	color: var(--ic-text-light);
	border-color: var(--ic-text-dark);
}

/* WooCommerce-Notices auf Shopseiten */
.ic-shop-overview .woocommerce-info,
.ic-shop-overview .woocommerce-message {
	background: var(--ic-bg-warm-2);
	border: 1px solid var(--ic-border-warm);
	border-radius: var(--ic-radius-md);
	padding: 14px 18px;
	margin: 0 0 20px;
	font-size: 14px;
	list-style: none;
}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 1020px) {
	.ic-hero__inner {
		grid-template-columns: 1fr;
		gap: 48px;
	}

	.ic-hero__collage {
		height: 300px;
	}

	.ic-collage-card--main    { width: 200px; height: 240px; }
	.ic-collage-card--secondary { width: 150px; height: 180px; }
	.ic-collage-card--small   { display: none; }

	.ic-categories__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.ic-feature__inner {
		grid-template-columns: 1fr;
		gap: 48px;
	}

	.ic-feature__mockup { height: 260px; }
}

@media (max-width: 900px) {
	.ic-container {
		padding: 0 24px;
	}

	.ic-hero__inner  { padding: 0 24px; }
	.ic-feature__inner { padding: 0 24px; }

	.ic-section { padding: 64px 0; }

	.ic-product-grid,
	.ic-product-grid--wide {
		grid-template-columns: repeat(2, 1fr);
	}

	.ic-trust__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.ic-categories__grid {
		grid-template-columns: 1fr;
	}

	.ic-hero__headline { font-size: 36px; }

	/* Account / Cart / Checkout bleiben einspaltig ab 980 px
	   (in eigenem Responsive-Block weiter unten) */
}

@media (max-width: 640px) {
	.ic-hero {
		padding: 56px 0 48px;
	}

	.ic-hero__headline { font-size: 30px; }
	.ic-hero__collage  { display: none; }

	.ic-section-title  { font-size: 26px; }

	.ic-product-grid,
	.ic-product-grid--wide {
		grid-template-columns: 1fr;
	}

	.ic-trust__grid {
		grid-template-columns: 1fr;
	}

	.ic-product-card__footer {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.ic-product-card__footer .ic-btn {
		width: 100%;
		justify-content: center;
	}

	.ic-feature__price-row {
		flex-wrap: wrap;
	}
}

/* --- Bestellungen / Account / Checkout: unveränderter Responsive-Block --- */
@media (max-width: 980px) {
	.single-product-hero,
	.cart-layout,
	.checkout-grid,
	.account-layout,
	.auth-grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	#order_review {
		position: static;
	}

	ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 24px;
	}

	.account-tiles {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 600px) {
	ul.products,
	.account-tiles {
		grid-template-columns: 1fr;
	}

	.woocommerce table.shop_table thead {
		display: none;
	}

	.woocommerce table.shop_table tr {
		display: block;
		border-bottom: 1px solid var(--border-strong);
		padding: 8px 0;
	}

	.woocommerce table.shop_table td {
		display: flex;
		justify-content: space-between;
		gap: 16px;
		border: 0;
		padding: 8px 0;
		text-align: right;
	}

	.woocommerce table.shop_table td::before {
		content: attr(data-title);
		font-size: 0.74rem;
		text-transform: uppercase;
		letter-spacing: 0.08em;
		color: var(--color-muted);
		font-weight: 600;
		text-align: left;
	}
}


/* =========================================================================
   EINZELPRODUKT — DEMO-LAYOUT
   Gescoped unter .ic-product-virtual und .ic-product-physical.
   Gemeinsame Strukturen unter .ic-product-page.
   Quelle: demo/product-virtual.html + demo/product-physical.html
   ========================================================================= */

/* --- Farbpaletten als CSS-Variablen (nur für Produktseiten) ------------- */
.ic-product-page {
	--ic-green-50:  #EAF3DE;
	--ic-green-100: #C0DD97;
	--ic-green-400: #639922;
	--ic-green-600: #3B6D11;
	--ic-green-800: #27500A;

	--ic-amber-50:  #FAEEDA;
	--ic-amber-100: #FAC775;
	--ic-amber-400: #BA7517;
	--ic-amber-600: #854F0B;
	--ic-amber-800: #633806;

	--ic-gray-50:  #F5F4F0;
	--ic-gray-100: #E8E7E2;
	--ic-gray-200: #D3D1C7;
	--ic-gray-400: #888780;
	--ic-gray-600: #5F5E5A;
	--ic-gray-900: #1E1E1C;

	--ic-white:    #FFFFFF;
	--ic-body-bg:  #F7F6F2;

	--ic-radius-sm: 6px;
	--ic-radius-md: 10px;
	--ic-radius-lg: 14px;
	--ic-radius-xl: 20px;

	--ic-shadow-sm: 0 1px 4px rgba(0, 0, 0, 0.06);
	--ic-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.08);

	--ic-col-gap: 56px;
}

/* --- WooCommerce-Floats neutralisieren ---------------------------------- */
.ic-product-page .woocommerce-product-gallery,
.ic-product-page .summary {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
}

/* --- WooCommerce-Tabs auf Produktseite ausblenden ----------------------- */
.ic-product-page .woocommerce-tabs {
	display: none;
}

/* --- Breadcrumb --------------------------------------------------------- */
.ic-product-page .woocommerce-breadcrumb {
	padding: 20px 0 0;
	font-size: 13px;
	color: var(--ic-gray-400);
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
	border: none;
	background: transparent;
	margin: 0;
}

.ic-product-page .woocommerce-breadcrumb a {
	color: var(--ic-gray-400);
	text-decoration: none;
}

.ic-product-virtual .woocommerce-breadcrumb a:hover { color: var(--ic-green-600); }
.ic-product-physical .woocommerce-breadcrumb a:hover { color: var(--ic-amber-400); }

.ic-product-page .woocommerce-breadcrumb .crumb-sep,
.ic-product-page .woocommerce-breadcrumb > span:not(a) {
	opacity: 0.5;
}

/* --- Hero: 2-Spalten-Grid ----------------------------------------------- */
.ic-product-hero {
	display: grid;
	grid-template-columns: 1fr 420px;
	gap: var(--ic-col-gap);
	align-items: start;
	padding: 40px 0 64px;
}

/* --- Galerie — gemeinsam ------------------------------------------------ */
.ic-gallery__main {
	border-radius: var(--ic-radius-lg);
	overflow: hidden;
	position: relative;
}

.ic-gallery__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ic-gallery__placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
}

.ic-gallery__placeholder svg {
	opacity: 0.4;
}

.ic-gallery__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 12px;
}

.ic-gallery__thumb {
	width: 72px;
	height: 56px;
	border-radius: var(--ic-radius-sm);
	border: 1.5px solid transparent;
	overflow: hidden;
	cursor: pointer;
	transition: border-color 0.15s;
	flex-shrink: 0;
	padding: 0;
	background: transparent;
}

.ic-gallery__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* --- Galerie: Virtuell (16:9, Grün) ------------------------------------- */
.ic-gallery__main--virtual {
	aspect-ratio: 16 / 9;
	background: var(--ic-green-50);
	border: 1px solid var(--ic-green-100);
}

.ic-gallery__placeholder--virtual {
	color: var(--ic-green-400);
}

.ic-gallery__thumb--virtual {
	background: var(--ic-green-50);
}

.ic-gallery__thumb--virtual:hover,
.ic-gallery__thumb--virtual.ic-gallery__thumb--active {
	border-color: var(--ic-green-400);
}

/* --- Galerie: Physisch (4:3, Amber) ------------------------------------- */
.ic-gallery__main--physical {
	aspect-ratio: 4 / 3;
	background: var(--ic-amber-50);
	border: 1px solid var(--ic-amber-100);
}

.ic-gallery__placeholder--physical {
	color: var(--ic-amber-400);
}

.ic-gallery__thumb--physical {
	background: var(--ic-amber-50);
}

.ic-gallery__thumb--physical:hover,
.ic-gallery__thumb--physical.ic-gallery__thumb--active {
	border-color: var(--ic-amber-400);
}

/* --- Buybox — gemeinsam ------------------------------------------------- */
.ic-buybox {
	background: var(--ic-white);
	border: 1px solid var(--ic-gray-100);
	border-radius: var(--ic-radius-xl);
	padding: 32px;
	position: sticky;
	top: 32px;
	box-shadow: var(--ic-shadow-sm);
}

/* --- Label / Badge ------------------------------------------------------ */
.ic-product-label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 5px 14px;
	border-radius: 100px;
	border: 1px solid;
	margin-bottom: 14px;
}

.ic-product-label--virtual {
	background: var(--ic-green-50);
	color: var(--ic-green-800);
	border-color: var(--ic-green-100);
}

.ic-product-label--physical {
	background: var(--ic-amber-50);
	color: var(--ic-amber-800);
	border-color: var(--ic-amber-100);
}

/* --- Produkttitel ------------------------------------------------------- */
.ic-product-title {
	font-family: var(--font-display, Georgia, serif);
	font-size: 24px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--ic-gray-900);
	margin: 0 0 14px;
}

/* --- Kurzbeschreibung --------------------------------------------------- */
.ic-short-desc {
	font-size: 14px;
	color: var(--ic-gray-600);
	line-height: 1.7;
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--ic-gray-100);
}

.ic-short-desc p:last-child {
	margin-bottom: 0;
}

/* --- Preis (WooCommerce-Ausgabe stylen) --------------------------------- */
.ic-price-wrap .price,
.ic-price-wrap p.price {
	font-family: var(--font-display, Georgia, serif);
	font-size: 30px;
	font-weight: 500;
	color: var(--ic-gray-900);
	margin: 0 0 20px;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px;
	border: none;
	padding: 0;
}

.ic-price-wrap .price del {
	color: var(--ic-gray-400);
	font-size: 18px;
	font-weight: 400;
	text-decoration: line-through;
}

.ic-price-wrap .price ins {
	text-decoration: none;
}

.ic-price-wrap .woocommerce-Price-amount {
	color: var(--ic-gray-900);
}

/* --- Add-to-Cart-Formular (WooCommerce) --------------------------------- */
.ic-atc-wrap form.cart {
	margin: 0;
	padding: 0;
	display: flex;
	gap: 10px;
	align-items: stretch;
}

/* Virtuell: Button nimmt volle Breite, Menge kompakt daneben */
.ic-atc-wrap--virtual form.cart {
	flex-direction: row;
}

.ic-atc-wrap--virtual form.cart .quantity {
	display: none; /* Mengenfeld bei digitalen Produkten ausblenden */
}

.ic-atc-wrap--virtual form.cart .single_add_to_cart_button {
	flex: 1;
	width: 100%;
}

/* Physisch: Menge + Button nebeneinander */
.ic-atc-wrap--physical form.cart {
	flex-direction: row;
}

.ic-atc-wrap--physical form.cart .quantity {
	flex-shrink: 0;
}

.ic-atc-wrap--physical form.cart .single_add_to_cart_button {
	flex: 1;
}

/* WooCommerce Mengenfeld */
.ic-product-page form.cart .quantity input.qty {
	width: 56px;
	height: 52px;
	border: 1px solid var(--ic-gray-200);
	border-radius: var(--ic-radius-md);
	background: var(--ic-gray-50);
	text-align: center;
	font-size: 15px;
	font-weight: 500;
	color: var(--ic-gray-900);
	padding: 0 8px;
	-moz-appearance: textfield;
}

.ic-product-page form.cart .quantity input.qty::-webkit-inner-spin-button,
.ic-product-page form.cart .quantity input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
}

.ic-product-page form.cart .quantity input.qty:focus {
	outline: none;
	border-color: var(--ic-green-400);
}

/* WooCommerce +/- Buttons (falls WC sie generiert) */
.ic-product-page form.cart .quantity .plus,
.ic-product-page form.cart .quantity .minus {
	width: 36px;
	height: 52px;
	border: 1px solid var(--ic-gray-200);
	background: var(--ic-gray-50);
	color: var(--ic-gray-600);
	font-size: 18px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.12s, color 0.12s;
}

.ic-product-page form.cart .quantity .plus:hover,
.ic-product-page form.cart .quantity .minus:hover {
	background: var(--ic-gray-100);
	color: var(--ic-gray-900);
}

/* Warenkorb-Button */
.ic-product-page form.cart .single_add_to_cart_button.button {
	height: 52px;
	border: none;
	border-radius: var(--ic-radius-md);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.02em;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	transition: background 0.15s, transform 0.1s;
	cursor: pointer;
	text-transform: none;
	padding: 0 24px;
}

.ic-product-page form.cart .single_add_to_cart_button.button:active {
	transform: scale(0.98);
}

/* Virtuell: Grüner Button */
.ic-product-virtual form.cart .single_add_to_cart_button.button {
	background: var(--ic-green-600);
	color: var(--ic-white);
}

.ic-product-virtual form.cart .single_add_to_cart_button.button:hover {
	background: var(--ic-green-400);
}

/* Physisch: Amber Button */
.ic-product-physical form.cart .single_add_to_cart_button.button {
	background: var(--ic-amber-600);
	color: var(--ic-white);
}

.ic-product-physical form.cart .single_add_to_cart_button.button:hover {
	background: var(--ic-amber-400);
}

/* --- Trust-Hints -------------------------------------------------------- */
.ic-buybox-hints {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 22px;
	padding-top: 22px;
	border-top: 1px solid var(--ic-gray-100);
}

.ic-hint-row {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	color: var(--ic-gray-600);
}

.ic-hint-row--virtual svg { color: var(--ic-green-400); flex-shrink: 0; }
.ic-hint-row--physical svg { color: var(--ic-amber-400); flex-shrink: 0; }

/* --- Seitenabschnitte --------------------------------------------------- */
.ic-page-sections {
	padding-bottom: 80px;
}

.ic-section-divider {
	border: none;
	border-top: 1px solid var(--ic-gray-200);
	margin: 0 0 56px;
}

.ic-section {
	margin-bottom: 56px;
}

.ic-section-eyebrow {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin-bottom: 8px;
}

.ic-section-eyebrow--virtual { color: var(--ic-green-400); }
.ic-section-eyebrow--physical { color: var(--ic-amber-400); }

.ic-section-heading {
	font-family: var(--font-display, Georgia, serif);
	font-size: 22px;
	font-weight: 500;
	color: var(--ic-gray-900);
	margin: 0 0 28px;
	line-height: 1.3;
}

/* --- Quick Facts Grid --------------------------------------------------- */
.ic-facts-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}

.ic-fact-card {
	background: var(--ic-white);
	border: 1px solid var(--ic-gray-100);
	border-radius: var(--ic-radius-lg);
	padding: 24px 20px;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.ic-fact-card:hover {
	border-color: var(--ic-green-100);
	box-shadow: var(--ic-shadow-sm);
}

.ic-fact-icon {
	width: 44px;
	height: 44px;
	border-radius: var(--ic-radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 14px;
}

.ic-fact-icon--virtual {
	background: var(--ic-green-50);
	color: var(--ic-green-600);
}

.ic-fact-card strong {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: var(--ic-gray-900);
	margin-bottom: 6px;
}

.ic-fact-card p {
	font-size: 13px;
	color: var(--ic-gray-600);
	line-height: 1.6;
	margin: 0;
}

/* --- Produktbeschreibung ------------------------------------------------ */
.ic-product-description {
	font-size: 15px;
	color: var(--ic-gray-600);
	line-height: 1.8;
	max-width: 720px;
}

.ic-product-description p + p {
	margin-top: 1.1em;
}

.ic-product-description strong {
	color: var(--ic-gray-900);
	font-weight: 500;
}

.ic-product-description ul,
.ic-product-description ol {
	padding-left: 20px;
	margin: 1em 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

/* --- Attribut-Tabelle (physisch) ---------------------------------------- */
.ic-attr-table {
	width: 100%;
	max-width: 640px;
	border-collapse: collapse;
}

.ic-attr-table tr {
	border-bottom: 1px solid var(--ic-gray-100);
}

.ic-attr-table tr:last-child {
	border-bottom: none;
}

.ic-attr-table td {
	padding: 14px 0;
	font-size: 14px;
	vertical-align: top;
}

.ic-attr-table td:first-child {
	color: var(--ic-gray-600);
	font-weight: 500;
	width: 200px;
	padding-right: 24px;
}

.ic-attr-table td:last-child {
	color: var(--ic-gray-900);
}

/* --- Zielgruppen-Grid --------------------------------------------------- */
.ic-target-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}

.ic-target-card {
	border: 1px solid var(--ic-gray-100);
	border-radius: var(--ic-radius-lg);
	padding: 20px 16px;
	display: flex;
	align-items: center;
	gap: 14px;
	background: var(--ic-white);
	transition: border-color 0.2s;
}

.ic-target-card--virtual:hover { border-color: var(--ic-green-100); }
.ic-target-card--physical:hover { border-color: var(--ic-amber-100); }

.ic-target-icon {
	width: 44px;
	height: 44px;
	border-radius: var(--ic-radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.ic-target-icon--virtual {
	background: var(--ic-green-50);
	color: var(--ic-green-600);
}

.ic-target-icon--physical {
	background: var(--ic-amber-50);
	color: var(--ic-amber-600);
}

.ic-target-card span {
	font-size: 14px;
	font-weight: 500;
	color: var(--ic-gray-900);
	line-height: 1.3;
}

/* --- FAQ-Accordion ------------------------------------------------------ */
.ic-faq-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: 760px;
}

.ic-faq-item {
	background: var(--ic-white);
	border: 1px solid var(--ic-gray-100);
	border-radius: var(--ic-radius-md);
	overflow: hidden;
	transition: border-color 0.2s;
}

.ic-product-virtual .ic-faq-item--open { border-color: var(--ic-green-100); }
.ic-product-physical .ic-faq-item--open { border-color: var(--ic-amber-100); }

.ic-faq-question {
	width: 100%;
	background: transparent;
	border: none;
	padding: 18px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	font-size: 14px;
	font-weight: 500;
	color: var(--ic-gray-900);
	text-align: left;
	cursor: pointer;
	font-family: inherit;
}

.ic-faq-question svg {
	flex-shrink: 0;
	color: var(--ic-gray-400);
	transition: transform 0.25s;
}

.ic-faq-item--open .ic-faq-question svg {
	transform: rotate(180deg);
}

.ic-faq-answer {
	font-size: 14px;
	color: var(--ic-gray-600);
	line-height: 1.7;
	padding: 0 20px 18px;
}

.ic-faq-answer[hidden] {
	display: none;
}

/* --- Responsive: 900px -------------------------------------------------- */
@media (max-width: 900px) {
	.ic-product-hero {
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 24px 0 48px;
	}

	.ic-buybox {
		position: static;
	}

	.ic-facts-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.ic-target-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* --- Responsive: 560px -------------------------------------------------- */
@media (max-width: 560px) {
	.ic-facts-grid {
		grid-template-columns: 1fr;
	}

	.ic-target-grid {
		grid-template-columns: 1fr;
	}

	.ic-product-title {
		font-size: 20px;
	}

	.ic-price-wrap .price {
		font-size: 26px;
	}

	.ic-gallery__main--virtual,
	.ic-gallery__main--physical {
		max-width: 100%;
	}

	.ic-atc-wrap--physical form.cart {
		flex-direction: column;
	}

	.ic-atc-wrap--physical form.cart .quantity {
		width: fit-content;
	}

	.ic-atc-wrap--physical form.cart .single_add_to_cart_button.button {
		height: 48px;
	}
}
