/* ==========================================================================
   sm_theme/css/style.css
   Haupt-Stylesheet, nicht render-blockierend nachgeladen.
   Mobile-First: Basis = Mobile, @media (min-width) baut progressiv aus.
   ========================================================================== */

:root{
	--orange:#FF9F40; --orange-deep:#F2831A;
	--moss:#8FB86C; --moss-deep:#6B9A4C;
	--tan:#E8A876; --tan-deep:#D48F5C;
	--cream:#FFFBF3; --cream-deep:#FBF0DE;
	--paper:#FFFEFC; --ink:#4A4030; --ink-soft:#8B8270;
	--danger:#C0453B;
	--shadow: 0 14px 32px -16px rgba(74,64,48,0.32);
}

/* ---------- Basis (bereits teilweise in critical.css) ---------- */
*,*::before,*::after{box-sizing:border-box;}
body{margin:0;font-family:'Plus Jakarta Sans',-apple-system,sans-serif;color:var(--ink);background:var(--cream);}
h1,h2,h3{font-family:'Fredoka',sans-serif;font-weight:600;margin:0;letter-spacing:-0.01em;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;background:none;border:none;color:inherit;}
ul{list-style:none;margin:0;padding:0;}

.sm-btn{display:inline-block;padding:0.85rem 1.5rem;border-radius:12px;font-weight:600;font-size:0.95rem;text-decoration:none;border:none;cursor:pointer;}
.sm-btn--primary{background:var(--moss-deep);color:#fff;box-shadow:0 10px 22px -10px rgba(107,154,76,.6);}
.sm-btn--secondary{background:var(--cream-deep);color:var(--ink);}
.sm-btn--ghost{background:transparent;color:var(--ink);border-bottom:2px solid var(--tan);border-radius:0;padding:0.85rem 0.2rem;}

/* ---------- Header (Rest, ueber critical.css hinaus) ---------- */
.sm-nav :is(ul,.nav-child){display:flex;gap:1.9rem;list-style:none;margin:0;padding:0;}
.sm-nav a{font-weight:600;font-size:0.94rem;}
.sm-nav a:hover{color:var(--orange-deep);}
.sm-login-toggle,.sm-search-toggle,.sm-menu-toggle{color:var(--ink);}

/* ---------- Menuepunkt-Hervorhebung ueber "Link-CSS-Klasse" im Menuepunkt-Formular ---------- */
/* Bei einzelnen Menuepunkten in Joomla eintragen (Reiter "Verknuepfungstyp"
   bzw. "Link", Feld "Link-CSS-Klasse"): "menu-bold" fuer fett, "menu-sale"
   fuer rot und fett. Wirkt sowohl im Haupt- als auch im Untermenue. */
.sm-nav a.menu-bold,
.sm-nav .mod-menu__separator.menu-bold,
.sm-mobile-menu__inner a.menu-bold{font-weight:800 !important;letter-spacing:0.01em;}
.sm-nav a.menu-sale,
.sm-nav .mod-menu__separator.menu-sale,
.sm-mobile-menu__inner a.menu-sale{
	font-weight:800 !important;color:var(--danger) !important;letter-spacing:0.01em;
}
.sm-nav a.menu-sale:hover,
.sm-mobile-menu__inner a.menu-sale:hover{color:var(--danger);opacity:0.8;}

/* ---------- Header-Dropdown-Untermenues (Desktop: Hover, Fokus-Tastatur) ---------- */
.sm-nav .mod-menu{position:relative;}
.sm-nav .mod-menu > li{position:relative;}
.sm-nav .mod-menu__separator{cursor:default;font-weight:600;font-size:0.94rem;display:inline-flex;align-items:center;gap:0.3rem;}
.sm-nav li.parent > .mod-menu__separator::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-2px;}
.sm-nav .mod-menu__sub{
	display:none;position:absolute;top:100%;left:0;background:var(--paper);
	border:1px solid var(--cream-deep);border-radius:12px;box-shadow:var(--shadow);
	padding:0.5rem;min-width:240px;z-index:70;flex-direction:column;gap:0;margin-top:0;
}
.sm-nav li.parent{padding-bottom:0.6rem;margin-bottom:-0.6rem;}
.sm-nav li.parent:hover > .mod-menu__sub,
.sm-nav li.parent:focus-within > .mod-menu__sub,
.sm-nav li.parent.is-hover-open > .mod-menu__sub{display:flex;}
.sm-nav .mod-menu__sub li{width:100%;}
.sm-nav .mod-menu__sub a{display:block;padding:0.6rem 0.7rem;border-radius:8px;font-weight:500;font-size:0.9rem;white-space:nowrap;}
.sm-nav .mod-menu__sub a:hover{background:var(--cream-deep);}

.sm-search-panel{max-height:0;overflow:hidden;transition:max-height .25s ease;background:var(--paper);border-bottom:1px solid var(--cream-deep);}
.sm-search-panel.is-open{max-height:120px;}
.sm-search-panel__inner{padding:1rem;max-width:1280px;margin:0 auto;}

.sm-mobile-menu{position:fixed;inset:0;background:rgba(50,44,34,.4);z-index:90;display:none;}
.sm-mobile-menu.is-open{display:block;}
.sm-mobile-menu__inner{background:var(--paper);width:82%;max-width:340px;height:100%;padding:1.5rem;overflow-y:auto;margin-left:auto;}
.sm-mobile-menu__inner ul{display:flex;flex-direction:column;gap:0.3rem;}
.sm-mobile-menu__inner a{display:block;padding:0.7rem 0.3rem;font-weight:600;}
.sm-mobile-menu__inner hr{border:none;border-top:1px solid var(--cream-deep);margin:1rem 0;}
/* Untermenues im mobilen Slide-in: Klick zum Auf-/Zuklappen (kein Hover auf Touch) */
.sm-mobile-menu__inner .mod-menu__separator{
	display:flex;align-items:center;justify-content:space-between;
	padding:0.7rem 0.3rem;font-weight:600;cursor:pointer;
}
.sm-mobile-menu__inner li.parent > .mod-menu__separator::after{
	content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
	transform:rotate(45deg);transition:transform .2s ease;
}
.sm-mobile-menu__inner li.parent.is-open > .mod-menu__separator::after{transform:rotate(-135deg);}
.sm-mobile-menu__inner .mod-menu__sub{
	display:none;list-style:none;margin:0;padding-left:1rem;border-left:2px solid var(--cream-deep);
}
.sm-mobile-menu__inner li.parent.is-open > .mod-menu__sub{display:flex;}
.sm-mobile-menu__inner .mod-menu__sub a{font-weight:500;font-size:0.92rem;padding:0.55rem 0.3rem;}

@media (min-width:1080px){
	.sm-menu-toggle{display:none;}
}

/* ---------- Breadcrumb ---------- */
.sm-breadcrumb-wrap{padding:0.9rem 1rem 0;font-size:0.8rem;color:var(--ink-soft);max-width:1280px;margin:0 auto;}
.sm-breadcrumb-wrap ul{display:flex;flex-wrap:wrap;gap:0.3rem;}
.sm-breadcrumb-wrap li:not(:last-child)::after{content:"/";margin-left:0.3rem;color:var(--ink-soft);}
.sm-breadcrumb-wrap a:hover{color:var(--orange-deep);}
@media (min-width:720px){.sm-breadcrumb-wrap{padding:1.1rem 1.5rem 0;}}

/* ---------- Hero (Zusatz, ueber critical.css hinaus) ---------- */
.sm-hero p{font-size:1rem;line-height:1.6;color:var(--ink-soft);margin-bottom:1.4rem;max-width:46ch;}
.sm-hero__cta{display:flex;gap:0.8rem;flex-wrap:wrap;margin-bottom:2rem;}
.sm-hero__stack{position:relative;height:320px;max-width:420px;margin:0 auto;}
.sm-hero__card{position:absolute;border-radius:16px;overflow:hidden;border:5px solid var(--paper);box-shadow:var(--shadow);aspect-ratio:1/1;}
.sm-hero__card img{width:100%;height:100%;object-fit:cover;}
.sm-hero__card--1{width:56%;top:0;left:2%;transform:rotate(-9deg);z-index:2;aspect-ratio:4/5;}
.sm-hero__card--2{width:56%;top:8%;right:0;transform:rotate(7deg);z-index:3;}
.sm-hero__card--3{width:42%;bottom:0;left:16%;transform:rotate(4deg);z-index:4;}
@media (min-width:1080px){
	.sm-hero__stack{height:440px;max-width:none;margin:0;}
}

/* ---------- Produkt-Module (sm_card Chrome) ---------- */
.sm-module-card{padding:2.2rem 1rem;max-width:1280px;margin:0 auto;}
.sm-module-card__head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.3rem;flex-wrap:wrap;}
.sm-module-card__head h3{font-size:1.4rem;}
.sm-module-card__head p{color:var(--ink-soft);margin:0.3rem 0 0;font-size:0.9rem;}
@media (min-width:720px){.sm-module-card{padding:2.6rem 1.5rem;}}

/* ---------- Content-Bereich (VirtueMart-Komponente) ---------- */
.sm-content-wrap{max-width:1280px;margin:0 auto;padding:1.5rem 1rem 3rem;}
.sm-content-wrap--after-home{padding-top:0;}
@media (min-width:720px){.sm-content-wrap{padding:1.8rem 1.5rem 3.5rem;}}

/* ---------- Sidebar ---------- */
.sm-sidebar{max-width:1280px;margin:0 auto;padding:0 1rem 2rem;}
@media (min-width:1080px){.sm-sidebar{display:none;} /* Sidebar-Inhalte auf Desktop in Kategorieseiten-Layout integriert */}

/* ---------- Footer ---------- */
.sm-footer{background:var(--ink);color:#CBC3B0;padding:3rem 1rem 1.5rem;margin-top:2rem;}
.sm-footer__inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:2rem;}
.sm-footer__inner .sm-footer-nav-wrap ul{list-style:none;margin:0;padding:0;columns:2;column-gap:2rem;}
.sm-footer__inner .sm-footer-nav-wrap li{margin-bottom:0.6rem;break-inside:avoid;}
.sm-footer__inner .sm-footer-nav-wrap a{color:#CBC3B0;font-size:0.9rem;}
.sm-footer__inner .sm-footer-nav-wrap a:hover{color:#fff;}
@media (min-width:560px){.sm-footer__inner .sm-footer-nav-wrap ul{columns:3;}}
.sm-footer__brand img{margin-bottom:0.8rem;}
.sm-footer__brand p{max-width:32ch;line-height:1.6;font-size:0.9rem;}
.sm-footer h4{color:#fff;font-family:'Fredoka',sans-serif;font-weight:600;font-size:1rem;margin-bottom:0.9rem;}
.sm-footer ul{display:flex;flex-direction:column;gap:0.55rem;font-size:0.88rem;}
.sm-footer__bottom{max-width:1280px;margin:2rem auto 0;padding-top:1.3rem;border-top:1px solid rgba(255,255,255,.08);font-size:0.78rem;}
@media (min-width:720px){
	.sm-footer{padding:3.5rem 1.5rem 2rem;}
	.sm-footer__inner{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem;}
}

/* ---------- Cookie-Consent ---------- */
.sm-consent{position:fixed;inset:0;background:rgba(50,44,34,.5);z-index:9999;display:flex;align-items:flex-end;justify-content:center;padding:1rem;}
.sm-consent[hidden]{display:none;}
.sm-consent__box{background:var(--paper);border-radius:18px;padding:1.6rem;max-width:520px;width:100%;box-shadow:var(--shadow);}
.sm-consent__box h2{font-size:1.15rem;margin-bottom:0.6rem;}
.sm-consent__box p{font-size:0.88rem;line-height:1.55;color:var(--ink-soft);margin-bottom:1rem;}
.sm-consent__options{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1.2rem;}
.sm-consent__option{display:flex;align-items:center;gap:0.6rem;font-size:0.85rem;}
.sm-consent__actions{display:flex;flex-wrap:wrap;gap:0.6rem;}
.sm-consent__actions .sm-btn{flex:1;text-align:center;white-space:nowrap;}
@media (min-width:560px){.sm-consent{align-items:center;}}

/* ---------- Utility ---------- */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}

/* ---------- VirtueMart: Kategorie-/Produktlisten-Seite ---------- */
.sm-category-view{padding-top:0.3rem;}
.sm-category-intro{margin-bottom:1.5rem;line-height:1.6;color:var(--ink-soft);}
.sm-category-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.3rem;}
.sm-category-head h1{font-size:1.7rem;}
.sm-category-count{color:var(--ink-soft);margin-top:0.3rem;font-size:0.88rem;}
.sm-sort{display:flex;align-items:center;gap:0.5rem;font-size:0.85rem;}
.sm-sort select{border:1px solid var(--cream-deep);background:var(--paper);border-radius:10px;padding:0.5rem 0.8rem;font-family:inherit;font-weight:600;color:var(--ink);}

.sm-subcats{display:flex;flex-wrap:wrap;gap:0.6rem;margin-bottom:1.8rem;}
.sm-subcat-chip{background:var(--cream-deep);color:var(--ink);font-weight:600;font-size:0.85rem;padding:0.5rem 1rem;border-radius:999px;}
.sm-subcat-chip:hover{background:var(--moss);color:#fff;}

.sm-product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.9rem;margin-bottom:2rem;}
.sm-product-card{background:var(--paper);border-radius:14px;overflow:hidden;border:1px solid var(--cream-deep);display:block;text-decoration:none;color:inherit;transition:box-shadow .2s ease;}
.sm-product-card:hover{box-shadow:0 14px 28px -18px rgba(74,64,48,0.4);}
.sm-product-card__media{aspect-ratio:1/1;background:var(--cream-deep);position:relative;overflow:hidden;}
.sm-product-card__media img,.sm-product-card__img{width:100%;height:100%;object-fit:cover;display:block;}
.sm-badge{position:absolute;top:0.5rem;left:0.5rem;font-size:0.62rem;font-weight:700;padding:0.22rem 0.5rem;border-radius:999px;color:#fff;z-index:2;}
.sm-badge--oos{background:var(--danger);}
.sm-badge--sale{background:linear-gradient(135deg, #FF5B4A, #E8342A);color:#fff;font-weight:800;box-shadow:0 4px 10px -3px rgba(232,52,42,0.6);}
.sm-product-card__savings{
	display:inline-flex;align-items:center;gap:0.25rem;margin-top:0.35rem;
	background:#FFF0EE;color:var(--danger);font-weight:700;font-size:0.7rem;
	padding:0.18rem 0.55rem;border-radius:999px;
}
.sm-product-card__cat{font-size:0.64rem;color:var(--moss-deep);font-weight:600;margin-bottom:0.2rem;}
.sm-product-card__info{padding:0.7rem 0.75rem 0.85rem;}
.sm-product-card__name{font-family:'Fredoka',sans-serif;font-weight:600;font-size:0.86rem;line-height:1.3;}
.sm-product-card__price-block{margin-top:0.55rem;padding-top:0.55rem;border-top:1px solid var(--cream-deep);}
.sm-product-card__base-price{font-size:0.62rem;color:var(--ink-soft);}
.sm-product-card__price-row{margin-top:0.1rem;display:flex;align-items:baseline;gap:0.4rem;flex-wrap:wrap;}
.sm-product-card__price-old{font-size:0.72rem;color:var(--ink-soft);text-decoration:line-through;}
.sm-product-card__price.is-reduced{color:var(--danger);}
.sm-product-card__price{font-family:'Fredoka',sans-serif;font-weight:600;color:var(--orange-deep);font-size:0.95rem;}
.sm-product-card__price small{font-family:'Plus Jakarta Sans',sans-serif;font-weight:500;color:var(--ink-soft);font-size:0.64rem;}
.sm-product-card__legal-note{font-size:0.58rem;color:var(--ink-soft);margin-top:0.25rem;line-height:1.35;}
.sm-product-card__stock{font-size:0.62rem;font-weight:600;margin-top:0.32rem;display:flex;align-items:center;gap:0.32rem;}
.sm-product-card__stock.is-ok{color:var(--moss-deep);}
.sm-product-card__stock.is-oos{color:var(--danger);}
.sm-product-card__stock.is-low{color:#B8860B;}
.sm-dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0;display:inline-block;}

.sm-pd__stock{font-size:0.85rem;font-weight:600;margin-top:0.5rem;display:flex;align-items:center;gap:0.4rem;width:fit-content;}
.sm-pd__stock .sm-dot{width:7px;height:7px;}
.sm-pd__stock.is-ok{color:var(--moss-deep);}
.sm-pd__stock.is-oos{color:var(--danger);}
.sm-pd__stock.is-low{
	color:#8A6100;background:#FFF3CD;border:1px solid #FFE08A;
	padding:0.35rem 0.75rem;border-radius:999px;
}
.sm-pd__stock.is-low .sm-dot{background:#E0A800;}

.sm-pagination{display:flex;justify-content:center;margin-top:1.5rem;}
.sm-pagination ul{display:flex;gap:0.4rem;flex-wrap:wrap;}
.sm-pagination a,.sm-pagination span{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 0.6rem;border-radius:10px;background:var(--paper);border:1px solid var(--cream-deep);font-weight:600;font-size:0.85rem;}
.sm-pagination .active span,.sm-pagination [aria-current] span{background:var(--moss);color:#fff;border-color:var(--moss);}

.sm-empty-state{text-align:center;padding:3rem 1rem;color:var(--ink-soft);}
.sm-empty-state h3{color:var(--ink);margin-bottom:0.5rem;}

@media (min-width:720px){
	.sm-product-grid{grid-template-columns:repeat(3,1fr);gap:1.2rem;}
}
@media (min-width:1080px){
	.sm-product-grid{grid-template-columns:repeat(4,1fr);}
}

/* ---------- VirtueMart: Produktdetailseite ---------- */
.sm-pd{padding-top:0.3rem;}
.sm-pd__crumb{margin-bottom:1rem;font-size:0.85rem;}
.sm-pd__crumb a:hover{color:var(--orange-deep);}
.sm-pd__layout{display:grid;grid-template-columns:1fr;gap:1.8rem;}
.sm-pd-gallery{position:relative;}
.sm-pd-gallery__viewport{
	aspect-ratio:1/1;overflow:hidden;border-radius:16px;background:var(--cream-deep);
	position:relative;touch-action:pan-y;
}
.sm-pd-gallery__img{
	width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in;
	transform-origin:center center;user-select:none;-webkit-user-drag:none;
}
.sm-pd-gallery__img.is-zoomed{cursor:grab;}
.sm-pd-gallery__img.is-zoomed:active{cursor:grabbing;}
.sm-pd-gallery__arrow{
	position:absolute;top:50%;transform:translateY(-50%);z-index:2;
	width:40px;height:40px;border-radius:50%;border:none;background:rgba(255,255,255,0.9);
	color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;
	box-shadow:0 2px 8px rgba(0,0,0,0.15);transition:background .15s;
}
.sm-pd-gallery__arrow:hover{background:#fff;color:var(--orange-deep);}
.sm-pd-gallery__arrow--prev{left:0.7rem;}
.sm-pd-gallery__arrow--next{right:0.7rem;}
.sm-pd-gallery__dots{
	display:flex;justify-content:center;gap:0.4rem;margin-top:0.8rem;
}
.sm-pd-gallery__dot{
	width:8px;height:8px;border-radius:50%;background:var(--cream-deep);cursor:pointer;
	transition:background .15s;
}
.sm-pd-gallery__dot.is-active{background:var(--orange-deep);}

.sm-pd__cat{font-size:0.85rem;font-weight:600;color:var(--moss-deep);margin-bottom:0.4rem;}
.sm-pd__title{font-size:1.7rem;line-height:1.2;margin-bottom:0.7rem;}

.sm-pd__price-box{background:var(--paper);border:1px solid var(--cream-deep);border-radius:16px;padding:1.3rem 1.5rem;margin:1rem 0;}
.sm-pd__price-row{display:flex;align-items:baseline;gap:0.6rem;}
.sm-pd__price{font-family:'Fredoka',sans-serif;font-weight:600;font-size:1.7rem;color:var(--orange-deep);}
.sm-pd__price.is-reduced{color:var(--danger);}
.sm-pd__price-old{font-size:1.05rem;color:var(--ink-soft);text-decoration:line-through;}
.sm-pd__price-unit{color:var(--ink-soft);font-size:0.88rem;}
.sm-pd__base-price{font-size:0.8rem;color:var(--ink-soft);margin-top:0.3rem;}
.sm-pd__legal-note{font-size:0.76rem;color:var(--ink-soft);margin-top:0.4rem;}

.sm-pd__specs{display:grid;grid-template-columns:auto 1fr;gap:0.3rem 1rem;font-size:0.86rem;margin-bottom:1rem;}
.sm-pd__specs dt{color:var(--ink-soft);}
.sm-pd__specs dd{margin:0;font-weight:600;}

.sm-pd__addtocart{margin-bottom:1.2rem;}
.sm-pd__addtocart .addtocart-area{background:var(--paper);border:1px solid var(--cream-deep);border-radius:14px;padding:1rem;}
.sm-pd__addtocart input[type="text"],.sm-pd__addtocart input[type="number"]{border:1px solid var(--cream-deep);border-radius:10px;padding:0.5rem 0.7rem;width:70px;font-family:inherit;}
.sm-pd__addtocart .addtocart-bar,
.sm-pd__addtocart button,
.sm-pd__addtocart input[type="submit"]{background:var(--moss-deep) !important;color:#fff !important;border:none !important;border-radius:12px !important;padding:0.85rem 1.5rem;font-weight:700;font-size:0.95rem;cursor:pointer;margin-top:0.7rem;}
.sm-pd__addtocart a.btn,
.sm-pd__addtocart .btn-primary,
.sm-pd__addtocart .btn-default{background:var(--moss-deep) !important;color:#fff !important;border-color:var(--moss-deep) !important;}
.sm-pd__addtocart .stock-level,.sm-pd__addtocart .availability{font-size:0.82rem;font-weight:600;color:var(--moss-deep);margin-top:0.6rem;display:block;}

.sm-pd__short-desc{color:var(--ink-soft);line-height:1.6;font-size:0.92rem;margin-top:1rem;}
.sm-pd__description{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--cream-deep);line-height:1.7;}
.sm-pd__description h2{font-size:1.2rem;margin-bottom:0.8rem;}
.sm-pd__manufacturer{margin-top:1rem;font-size:0.85rem;color:var(--ink-soft);}
.sm-pd__related{margin-top:2rem;}

/* "Stoffe, die dir auch gefallen koennten" - VirtueMarts eigene Ausgabe (customfields
   related_products), hier ueber die vorhandenen Klassennamen ins Design integriert. */
.sm-pd__related .product-fields-title{font-family:'Fredoka',sans-serif;font-weight:600;font-size:1.2rem;color:var(--ink);display:block;margin-bottom:1rem;}
.sm-pd__related .product-fields-title strong{font-weight:600;}
.sm-pd__related .hasTooltip{display:none;}
.sm-pd__related .product-related-products{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;}
.sm-pd__related .product-fields-title-wrapper{grid-column:1/-1;}
/* Pflichtvorgabe: maximal 8 Empfehlungsartikel anzeigen */
.sm-pd__related .product-related-products > .product-field-type-R:nth-child(n+10){display:none !important;}
.sm-pd__related .product-container{background:var(--paper);border:1px solid var(--cream-deep);border-radius:14px;overflow:hidden;}
.sm-pd__related .vm-product-media-container{display:block;}
.sm-pd__related .vm-product-media-container a{display:block;color:var(--ink);text-decoration:none;}
.sm-pd__related .vm-product-media-container img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;border-radius:14px 14px 0 0;}
.sm-pd__related .vm-product-media-container a{font-family:'Fredoka',sans-serif;font-weight:600;font-size:0.84rem;line-height:1.3;padding:0.7rem 0.75rem 0;display:block;}
.sm-pd__related .product-price{padding:0.5rem 0.75rem 0.85rem;font-size:0.85rem;}
.sm-pd__related .vm-price-desc{display:block;font-size:0.68rem;color:var(--ink-soft);}
.sm-pd__related .PricesalesPrice{font-family:'Fredoka',sans-serif;font-weight:600;color:var(--orange-deep);font-size:0.95rem;}
.sm-pd__related .PricediscountAmount,.sm-pd__related .PricebasePriceWithTax{font-size:0.7rem;color:var(--ink-soft);}
/* Ueberfluessige Elemente aus VirtueMarts Standardausgabe fuer ein sauberes,
   symmetrisches Raster ausblenden: Kurzbeschreibungstext, MwSt.-Detailzeile,
   Rabatt-Zeile (falls kein Rabatt), doppelte/leere Wrapper. */
.sm-pd__related .product_s_desc,
.sm-pd__related .product-field-desc,
.sm-pd__related .PricetaxAmount,
.sm-pd__related .clear{display:none !important;}
.sm-pd__related .product-container{display:flex;flex-direction:column;height:100%;}
.sm-pd__related .product-price{margin-top:auto;}
@media (min-width:720px){.sm-pd__related .product-related-products{grid-template-columns:repeat(4,1fr);}}

@media (min-width:1080px){
	.sm-pd__layout{grid-template-columns:1fr 1fr;gap:3.5rem;align-items:start;}
}

/* ---------- Startseite: Laufband ---------- */
.sm-ticker-section{padding:0 1rem 2.5rem;}
.sm-ticker{max-width:1280px;margin:0 auto;background:var(--moss-deep);border-radius:16px;overflow:hidden;padding:0.9rem 0;}
.sm-ticker__track{display:flex;gap:0.9rem;width:max-content;animation:sm-tick 26s linear infinite;padding:0 1rem;}
.sm-ticker:hover .sm-ticker__track{animation-play-state:paused;}
.sm-ticker__chip{display:flex;align-items:center;gap:0.55rem;background:rgba(255,255,255,0.14);border-radius:999px;padding:0.35rem 0.9rem 0.35rem 0.35rem;flex-shrink:0;transition:background .15s ease;}
.sm-ticker__chip:hover{background:rgba(255,255,255,0.26);}
.sm-ticker__chip img{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.sm-ticker__chip span{color:#fff;font-family:'Fredoka',sans-serif;font-weight:600;font-size:0.82rem;white-space:nowrap;}
@keyframes sm-tick{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- Startseite: Mosaik-Wand ---------- */
.sm-mosaic-wall{display:grid;grid-template-columns:repeat(3,1fr);gap:0.5rem;}
.sm-mosaic-wall a{border-radius:10px;overflow:hidden;aspect-ratio:1/1;position:relative;display:block;}
.sm-mosaic-wall img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.sm-mosaic-wall a:hover img{transform:scale(1.08);}
@media (min-width:720px){.sm-mosaic-wall{grid-template-columns:repeat(6,1fr);}}
@media (min-width:1080px){.sm-mosaic-wall{grid-template-columns:repeat(8,1fr);}}

/* ---------- Startseite: Kategorie-Kacheln ---------- */
.sm-see-all{font-weight:600;color:var(--orange-deep);font-size:0.88rem;white-space:nowrap;}
.sm-cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.9rem;}
.sm-cat-card{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:1/1.05;box-shadow:0 8px 20px -14px rgba(74,64,48,0.4);display:block;}
.sm-cat-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.sm-cat-card:hover img{transform:scale(1.06);}
.sm-cat-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(50,44,34,0) 42%, rgba(35,30,20,0.86) 100%);}
.sm-cat-card__label{position:absolute;left:0.8rem;right:0.8rem;bottom:0.75rem;z-index:2;color:#fff;font-family:'Fredoka',sans-serif;font-weight:600;font-size:0.94rem;}
@media (min-width:720px){.sm-cat-grid{grid-template-columns:repeat(4,1fr);}}
@media (min-width:1080px){.sm-cat-grid{grid-template-columns:repeat(4,1fr);gap:1.4rem;}}

/* ---------- Startseite: Lizenz-Showcase ---------- */
.sm-license-grid{display:grid;grid-template-columns:1fr;gap:1rem;}
.sm-license-card{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/10;box-shadow:var(--shadow);display:block;}
.sm-license-card img{width:100%;height:100%;object-fit:cover;}
.sm-license-card::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg, rgba(35,30,20,0.78) 0%, rgba(35,30,20,0.2) 55%, transparent 100%);}
.sm-license-card__info{position:absolute;left:1.3rem;top:50%;transform:translateY(-50%);z-index:2;color:#fff;max-width:72%;}
.sm-license-card__info h4{font-family:'Fredoka',sans-serif;font-size:1.35rem;margin-bottom:0.3rem;}
.sm-license-card__info p{font-size:0.84rem;color:#E8E2D0;margin-bottom:0.8rem;line-height:1.4;}
.sm-license-card__info span{display:inline-block;background:#fff;color:var(--ink);font-weight:700;font-size:0.78rem;padding:0.5rem 0.95rem;border-radius:999px;}
@media (min-width:720px){.sm-license-grid{grid-template-columns:1fr 1fr;}}
@media (min-width:1080px){.sm-license-grid{grid-template-columns:repeat(4,1fr);}.sm-license-card{aspect-ratio:3/4;}.sm-license-card__info{max-width:90%;}}

/* ---------- Startseite: Story ---------- */
.sm-story{background:var(--moss-deep);border-radius:20px;overflow:hidden;color:#F3EFDF;}
.sm-story__media{aspect-ratio:16/11;}
.sm-story__media img{width:100%;height:100%;object-fit:cover;}
.sm-story__copy{padding:1.8rem;}
.sm-story__copy h2{color:#fff;font-size:1.4rem;margin-bottom:0.8rem;}
.sm-story__copy p{color:#E4DDC7;line-height:1.6;font-size:0.92rem;}
@media (min-width:1080px){.sm-story{display:grid;grid-template-columns:1fr 1fr;}.sm-story__media{aspect-ratio:auto;height:100%;}.sm-story__copy{padding:3.5rem;display:flex;flex-direction:column;justify-content:center;}}

/* ---------- VirtueMart: Warenkorb / Checkout ----------
   Die Formular-Struktur/Logik bleibt VirtueMarts eigene - hier wird nur
   das Erscheinungsbild ueber die vorhandenen Klassennamen angepasst. */
/* ==========================================================================
   Warenkorb-Seite: komplett neu gebaut (Div/Row-Struktur statt Tabelle).
   Die komplette Formular-/Checkout-Logik bleibt von VirtueMart unveraendert,
   hier nur reines visuelles Styling der neuen Struktur.
   ========================================================================== */
.sm-cart-page{padding-top:0.3rem;max-width:1100px;margin:0 auto;}

.sm-cart-header-row{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.2rem;border-bottom:1px solid var(--cream-deep);}
.sm-cart-header-row h1{font-size:1.6rem;margin:0;flex-shrink:0;}
.sm-checkout-step{background:var(--cream-deep);color:var(--moss-deep);font-weight:600;font-size:0.82rem;padding:0.45rem 0.9rem;border-radius:999px;}
.sm-cart-continue{margin-left:auto;}
.sm-cart-continue a{font-weight:600;color:var(--orange-deep);font-size:0.9rem;}

.sm-cart-columns{display:flex;flex-direction:column;gap:1.5rem;}
.sm-cart-columns__left,.sm-cart-columns__right{min-width:0;}

/* Formular-Elemente innerhalb des Warenkorbs allgemein */
.sm-cart-page input[type="text"],
.sm-cart-page input[type="number"],
.sm-cart-page input[type="email"],
.sm-cart-page input[type="tel"],
.sm-cart-page select,
.sm-cart-page textarea{
	border:1px solid var(--cream-deep);border-radius:10px;padding:0.6rem 0.8rem;
	font-family:inherit;font-size:0.92rem;color:var(--ink);background:var(--paper);width:100%;
}
.sm-cart-page fieldset{border:1px solid var(--cream-deep);border-radius:14px;padding:1.2rem;margin-bottom:1.2rem;}
.sm-cart-page legend{font-family:'Fredoka',sans-serif;font-weight:600;padding:0 0.5rem;}
.sm-cart-page h3{font-family:'Fredoka',sans-serif;font-weight:600;font-size:1rem;margin:0 0 0.4rem;}

/* Buttons */
.sm-cart-page .btn:not(.vmicon),
.sm-cart-page button:not(.vmicon),
.sm-cart-page input[type="submit"]:not(.vmicon),
.sm-cart-page .vm-button,
.sm-cart-page .vm-button-correct{
	background:var(--moss-deep) !important;color:#fff !important;border:none !important;
	border-radius:999px;padding:0.85rem 1.6rem;font-weight:600;font-size:0.95rem;cursor:pointer;
	font-family:inherit;
}
.sm-cart-page .btn:hover:not(.vmicon),
.sm-cart-page button:hover:not(.vmicon){background:var(--orange-deep) !important;}

/* Allgemeine, seitenweite Regel fuer vm-button-correct (z.B. "Ihre Bestellung
   ansehen" auf der Dankeschoen-/Zahlungsbestaetigungs-Seite, die nicht
   innerhalb von .sm-cart-page liegt) */
a.vm-button-correct,
button.vm-button-correct,
.vm-button-correct{
	display:inline-block;background:var(--moss-deep) !important;color:#fff !important;
	border:none !important;border-radius:999px;padding:0.85rem 1.6rem;font-weight:600;
	font-size:0.95rem;cursor:pointer;font-family:inherit;text-decoration:none;
	transition:background .15s;
}
a.vm-button-correct:hover,
button.vm-button-correct:hover,
.vm-button-correct:hover{background:var(--orange-deep) !important;color:#fff !important;}
.sm-cart-page button.vmicon{
	display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
	border:1px solid var(--cream-deep);border-radius:8px;background:var(--paper);cursor:pointer;
}
.sm-cart-page .vm2-billto-icon,
.sm-cart-page .vm2-shipto-icon{display:none;}
.sm-cart-page .billto-shipto .width50 > span{font-weight:700;}

.sm-cart-page button.vm2-remove_from_cart{color:var(--ink-soft);transition:color 0.15s, border-color 0.15s;}
.sm-cart-page button.vm2-remove_from_cart:hover{border-color:var(--danger);color:var(--danger);}
.sm-cart-page button.vm2-add_quantity_cart{color:var(--ink-soft);transition:color 0.15s, border-color 0.15s;}
.sm-cart-page button.vm2-add_quantity_cart:hover{border-color:var(--moss-deep);color:var(--moss-deep);}

/* Pflichtfeld-Hinweis ("Adresse eingeben") freundlich statt Fehler-rot */
.sm-cart-page a.invalid,
.sm-cart-page a.details.invalid{
	border:1px solid var(--cream-deep) !important;background:var(--cream);color:var(--ink) !important;
	border-radius:10px;padding:0.6rem 1rem;display:inline-block;font-weight:600;
}
.sm-cart-page a.details{
	border:1px solid var(--cream-deep);background:var(--cream);color:var(--ink);
	border-radius:10px;padding:0.6rem 1rem;display:inline-block;font-weight:600;font-size:0.88rem;
	text-decoration:none;margin-top:0.5rem;
}
.sm-cart-page p{overflow-wrap:break-word;word-break:break-word;}

/* ---------- Warenkorb-Artikelliste (neue Div-Struktur) ---------- */
.sm-cart-list{background:var(--paper);border:1px solid var(--cream-deep);border-radius:16px;padding:1.2rem;}

.sm-cart-row--product{display:flex;gap:1rem;padding-bottom:1.2rem;margin-bottom:1.2rem;border-bottom:1px solid var(--cream-deep);}
.sm-cart-row--product:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.sm-cart-row__media{flex-shrink:0;}
.sm-cart-row__media .cart-images img{width:64px;height:64px;object-fit:cover;border-radius:10px;border:1px solid var(--cream-deep);display:block;}
.sm-cart-row__body{flex:1;min-width:0;}
.sm-cart-row__name a{color:var(--ink);font-weight:600;text-decoration:none;font-size:0.98rem;}
.sm-cart-row__name a:hover{color:var(--orange-deep);}
.sm-cart-row__sku{color:var(--ink-soft);font-size:0.78rem;margin:0.2rem 0 0.7rem;}

.sm-cart-row__meta{display:flex;flex-wrap:wrap;align-items:flex-start;gap:0.6rem 2.5rem;padding-bottom:0.9rem;}
.sm-cart-row__field{display:flex;flex-direction:column;gap:0.2rem;min-width:0;flex:0 0 auto;}
.sm-cart-row__field--tax{text-align:left;}
@media (min-width:640px){
	.sm-cart-row__field--tax{margin-left:auto;text-align:right;}
}
.sm-cart-row__label{font-size:0.7rem;color:var(--ink-soft);font-weight:600;text-transform:uppercase;letter-spacing:0.03em;}
.sm-cart-row__value{font-size:0.95rem;color:var(--ink);}
.sm-cart-row__value--strong{font-weight:700;color:var(--orange-deep);}
.sm-cart-row__value .line-through{color:var(--ink-soft);text-decoration:line-through;font-size:0.85em;margin-right:0.3rem;}
.sm-cart-row__field--qty .sm-cart-row__value{display:flex;align-items:center;gap:0.4rem;}
.sm-cart-row__field--qty .quantity-input{width:44px;text-align:center;padding:0.45rem 0.2rem;}

.sm-cart-row__summary{border-top:1px dashed var(--cream-deep);padding-top:0.7rem;}
.sm-cart-row__summary-line{display:flex;justify-content:flex-end;align-items:baseline;gap:0.6rem;padding:0.15rem 0;}
.sm-cart-row__summary-label{font-size:0.72rem;color:var(--ink-soft);font-weight:600;text-transform:uppercase;letter-spacing:0.03em;}
.sm-cart-row__summary-value{font-size:0.9rem;color:var(--ink);min-width:4.5rem;text-align:right;}
.sm-cart-row__summary-line--total .sm-cart-row__summary-label{font-size:0.8rem;font-weight:700;color:var(--ink);text-transform:none;letter-spacing:0;}
.sm-cart-row__summary-value--strong{font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.1rem;color:var(--orange-deep);}
.sm-cart-row__summary-value .line-through{color:var(--ink-soft);text-decoration:line-through;font-size:0.8em;margin-right:0.3rem;font-family:inherit;font-weight:400;}

.sm-cart-divider{border-top:1px solid var(--cream-deep);margin:1rem 0;}
.sm-cart-divider--strong{border-top:2px solid var(--ink);margin:1.2rem 0;}

.sm-cart-row--summary,
.sm-cart-row--grandtotal,
.sm-cart-row--tax,
.sm-cart-row--method{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:0.5rem 0;font-size:0.9rem;}
.sm-cart-row--summary .sm-cart-row__label,
.sm-cart-row--tax .sm-cart-row__label{color:var(--ink-soft);}
.sm-cart-row--grandtotal{font-size:1.05rem;}
.sm-cart-row--grandtotal .sm-cart-row__label{font-weight:700;color:var(--ink);}
.sm-cart-row__value--grand{font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.2rem;color:var(--orange-deep);}
.sm-cart-row--vatheader{font-weight:600;color:var(--ink-soft);font-size:0.82rem;padding-top:0.6rem;border-top:1px solid var(--cream-deep);margin-top:0.4rem;}

.sm-cart-row--method{flex-direction:column;align-items:stretch;background:var(--cream);border-radius:12px;padding:0.9rem 1rem;margin:0.6rem 0;}
.sm-cart-row--method .sm-cart-row__value{align-self:flex-end;font-weight:600;margin-top:0.4rem;}
.sm-cart-row__method-name{font-weight:600;margin-bottom:0.3rem;}
.sm-cart-edit-link{color:var(--orange-deep);font-weight:600;font-size:0.85rem;}

.sm-cart-row--coupon{padding:0.8rem 0;}

/* ---------- Versand-/Zahlungsart-Auswahl: Radiobutton, Logo und Text
   sauber nebeneinander statt untereinander verstreut. Gilt fuer Desktop
   und Mobile gleichermassen. ---------- */
.vm-shipment-plugin-single,
.vm-payment-plugin-single{
	display:flex;align-items:flex-start;gap:0.7rem;
	padding:0.7rem 0;border-bottom:1px solid var(--cream-deep);
}
.vm-shipment-plugin-single:last-child,
.vm-payment-plugin-single:last-child{border-bottom:none;}
.vm-shipment-plugin-single input[type="radio"],
.vm-payment-plugin-single input[type="radio"]{
	flex-shrink:0;width:18px;height:18px;margin:0.15rem 0 0;cursor:pointer;
}
.vm-shipment-plugin-single label,
.vm-payment-plugin-single label{
	flex:1 1 auto;min-width:0;cursor:pointer;
}
.vmshipment,.vmpayment{
	display:flex;align-items:center;flex-wrap:wrap;column-gap:0.6rem;row-gap:0.2rem;
}
.vmCartShipmentLogo,.vmCartPaymentLogo{display:inline-flex;flex-shrink:0;}
.vmCartShipmentLogo img,.vmCartPaymentLogo img{
	max-height:22px;width:auto;display:block;
}
.vmshipment_name,.vmpayment_name{font-weight:600;color:var(--ink);}
.vmshipment_cost{color:var(--ink-soft);font-size:0.85rem;}
.vmshipment_description,.vmpayment_description{
	flex-basis:100%;font-size:0.82rem;color:var(--ink-soft);margin-top:0.1rem;line-height:1.4;
}
.vmshipment_description h3,.vmpayment_description h3{
	font-size:0.78rem;margin:0.4rem 0 0;font-weight:700;
}
/* Fett-/Farbmarkierungen wie "Apple Pay / Google Pay / Kreditkarte" oder
   die Abholungs-Warnung bleiben inhaltlich erhalten, wirken aber nicht
   mehr wie ein eigener, abgehaengter Absatz */
.vmshipment_description font,.vmpayment_description font{display:inline;}

@media (max-width:480px){
	.vmCartShipmentLogo img,.vmCartPaymentLogo img{max-height:18px;}
	.vmshipment_name,.vmpayment_name{font-size:0.88rem;}
}

.sm-cart-coupon-applied{background:var(--cream);border-radius:10px;padding:0.6rem 0.9rem;margin-top:0.5rem;font-size:0.88rem;}

.priceColor2{color:var(--ink-soft);}

.sm-checkout-button-top{margin-top:1.2rem;}
.sm-checkout-button-top .vm-button-correct{display:block;width:100%;text-align:center;font-size:1rem;padding:1rem;}

@media (min-width:700px){
	.sm-cart-list{padding:1.5rem;}
	.sm-cart-row--product{padding-bottom:1.3rem;margin-bottom:1.3rem;}
}

/* Warenkorb-Popup: "Ähnliche Produkte" deutlich kleiner */
.sm-atc__related-grid{grid-template-columns:repeat(4,1fr) !important;gap:0.5rem !important;}
.sm-atc__related-grid .product-field{max-width:96px;margin:0 auto;}
.sm-atc__related-grid .product-field img{aspect-ratio:1/1;object-fit:cover;border-radius:8px;}
.sm-atc__related-grid .product-field .PricesalesPrice{font-size:0.72rem;}


/* Warenkorb-Popup "Ähnliche Produkte": nur Bild, kompakt (kein Artikeltext) */
.sm-atc__related-grid{grid-template-columns:repeat(4,1fr) !important;gap:0.5rem !important;}
.sm-atc__related-grid .sm-related-thumb{max-width:96px;margin:0 auto;}
.sm-atc__related-grid .sm-related-thumb a{display:block;}
.sm-atc__related-grid .sm-related-thumb img{
	width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;
	border:1px solid var(--cream-deep);display:block;
}

/* ==========================================================================
   Filter-Sidebar (Kategorieseite): Zwei-Spalten-Layout, mobil als
   ausklappbares Off-Canvas-Panel. Diese Regeln fehlten (wurden bei einer
   parallelen Bearbeitung ueberschrieben) und werden hier wiederhergestellt.
   ========================================================================== */
.sm-category-head__right{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}
.sm-filter-toggle-btn{
	display:flex;align-items:center;gap:0.5rem;background:var(--paper);border:1px solid var(--cream-deep);
	border-radius:999px;padding:0.6rem 1.1rem;font-weight:600;font-size:0.85rem;color:var(--ink);cursor:pointer;
}
.sm-filter-toggle-btn:hover{border-color:var(--orange);}
.sm-filter-badge{color:var(--orange-deep);font-size:0.7rem;vertical-align:top;}

.sm-category-layout{display:flex;gap:2rem;align-items:flex-start;}

.sm-filter-sidebar{
	flex:0 0 240px;width:240px;background:var(--paper);border:1px solid var(--cream-deep);
	border-radius:16px;padding:1.3rem;position:sticky;top:1rem;
}
.sm-filter-sidebar__head{display:flex;align-items:center;justify-content:space-between;gap:0.6rem;margin-bottom:1.1rem;padding-bottom:0.9rem;border-bottom:1px solid var(--cream-deep);}
.sm-filter-sidebar__head h3{font-family:'Fredoka',sans-serif;font-weight:600;font-size:1.05rem;margin:0;}
.sm-filter-reset{font-size:0.78rem;font-weight:600;color:var(--orange-deep);text-decoration:none;}
.sm-filter-reset:hover{text-decoration:underline;}
.sm-filter-close{display:none;background:none;border:none;font-size:1.1rem;line-height:1;color:var(--ink-soft);cursor:pointer;padding:0.2rem;}

.sm-filter-group{margin-bottom:1.4rem;padding-bottom:1.4rem;border-bottom:1px solid var(--cream-deep);}
.sm-filter-group:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none;}
.sm-filter-group h4{font-family:'Fredoka',sans-serif;font-weight:600;font-size:0.88rem;text-transform:uppercase;letter-spacing:0.02em;color:var(--ink-soft);margin:0 0 0.7rem;}

.sm-filter-check{
	display:flex;align-items:center;gap:0.6rem;padding:0.35rem 0;font-size:0.88rem;color:var(--ink);
	text-decoration:none;line-height:1.3;
}
.sm-filter-check__box{
	flex:0 0 16px;width:16px;height:16px;border:1.5px solid var(--cream-deep);border-radius:5px;background:var(--paper);
	display:inline-block;position:relative;
}
.sm-filter-check.is-checked .sm-filter-check__box{background:var(--orange);border-color:var(--orange);}
.sm-filter-check.is-checked .sm-filter-check__box::after{
	content:'';position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);
}
.sm-filter-check:hover .sm-filter-check__box{border-color:var(--orange);}
.sm-filter-check.is-checked{color:var(--ink);font-weight:600;}
.sm-filter-count{margin-left:auto;color:var(--ink-soft);font-size:0.78rem;}

.sm-filter-colors{display:grid;grid-template-columns:repeat(6,1fr);gap:0.5rem;}
.sm-filter-color{display:flex;align-items:center;justify-content:center;padding:2px;border-radius:50%;border:2px solid transparent;}
.sm-filter-color.is-checked{border-color:var(--orange);}
.sm-filter-color__swatch{
	display:block;width:24px;height:24px;border-radius:50%;border:1px solid var(--cream-deep);
	box-shadow:inset 0 0 0 2px var(--paper);
}

.sm-category-main{flex:1 1 auto;min-width:0;}

/* Mobil: Sidebar wird zum Off-Canvas-Panel, per Button ein-/ausklappbar */
@media (max-width:900px){
	.sm-category-layout{display:block;}
	.sm-filter-sidebar{
		position:fixed;top:0;right:-100%;bottom:0;width:min(340px,86vw);z-index:1000;
		border-radius:0;overflow-y:auto;transition:right .25s ease;box-shadow:-12px 0 30px rgba(0,0,0,0.12);
	}
	.sm-filter-sidebar.is-open{right:0;}
	.sm-filter-close{display:block;}
}
@media (min-width:901px){
	.sm-filter-toggle-btn{display:none;}
}

/* ---------- VirtueMart Konto-/Adress-Formular (#userForm) ---------- */
#userForm{
	background:var(--paper);border:1px solid var(--cream-deep);border-radius:16px;
	padding:1.5rem;max-width:600px;margin:0 auto 2rem;
}
#userForm fieldset{border:none;padding:0;margin:0;}
#userForm legend.userfields_info{
	font-family:'Fredoka',sans-serif;font-weight:600;font-size:1.05rem;color:var(--ink);
	padding:0;margin:0 0 1.2rem;border-bottom:1px solid var(--cream-deep);padding-bottom:0.6rem;width:100%;
}
#userForm h2{font-size:1.2rem;margin:0 0 1rem;color:var(--ink);}
#userForm table.adminForm{width:100%;border-collapse:collapse;}
#userForm table.adminForm tr{display:flex;flex-direction:column;margin-bottom:1rem;}
#userForm table.adminForm td.key{padding:0;text-align:left;}
#userForm table.adminForm td.key label{
	font-size:0.85rem;font-weight:600;color:var(--ink);display:inline-block;margin-bottom:0.3rem;
}
#userForm table.adminForm td.key .asterisk{color:var(--orange-deep);}
#userForm table.adminForm td:not(.key){padding:0;}
#userForm input.form-control,
#userForm select.form-control,
#userForm select{
	width:100%;box-sizing:border-box;padding:0.65rem 0.8rem;border:1px solid var(--cream-deep);
	border-radius:10px;background:var(--paper);color:var(--ink);font-size:0.95rem;font-family:inherit;
}
#userForm input.form-control:focus,
#userForm select:focus{outline:none;border-color:var(--orange-deep);}
#userForm .control-buttons{
	display:flex;gap:0.8rem;margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--cream-deep);
}
#userForm .control-buttons button{
	border-radius:10px;padding:0.75rem 1.6rem;font-weight:600;font-size:0.95rem;cursor:pointer;
	border:1px solid transparent;transition:background .15s, color .15s, border-color .15s;
}
#userForm .control-buttons button.vm-button-correct,
#userForm .control-buttons button.button{
	background:var(--orange-deep);color:#fff;
}
#userForm .control-buttons button.vm-button-correct:hover,
#userForm .control-buttons button.button:hover{background:var(--ink);}
#userForm .control-buttons button.default{
	background:var(--paper);color:var(--ink);border-color:var(--cream-deep);
}
#userForm .control-buttons button.default:hover{background:var(--cream);}

/* ---------- AGB-Feld (vm-fieldset-tos): nur EIN Kaestchen, sauber mit dem
   vollstaendigen Beschreibungstext (inkl. Link) daneben. VirtueMarts eigenes
   CSS gibt dem Link (a.terms-of-service) faelschlich dieselbe Kaestchen-
   Optik wie der echten Checkbox - das wird hier zurueckgesetzt. Die echte,
   im Shop geprueft Checkbox (input#tos) bleibt unveraendert erhalten. */
.vm-fieldset-tos .cart.tos{display:flex;align-items:flex-start;gap:0.6rem;flex-wrap:nowrap;}
.vm-fieldset-tos .cart.tos > span.cart.tos{
	/* versteckt die eigene "Allgemeine Geschaeftsbedingungen"-Beschriftung links,
	   da der Link rechts bereits einen vollstaendigen, verstaendlichen Text liefert */
	display:none;
}
.vm-fieldset-tos input#tos.terms-of-service{
	appearance:auto;-webkit-appearance:auto;width:18px;height:18px;flex-shrink:0;
	margin-top:0.15rem;border:none;background:none;box-shadow:none;cursor:pointer;
	position:static;opacity:1;
}
.vm-fieldset-tos div.terms-of-service{flex:1 1 auto;min-width:0;margin:0 !important;padding:0 !important;}
.vm-fieldset-tos a.terms-of-service{
	border:none !important;background:none !important;width:auto !important;height:auto !important;
	padding:0 !important;display:inline !important;box-shadow:none !important;
	color:var(--ink);text-decoration:none;font-size:0.9rem;line-height:1.5;
}
.vm-fieldset-tos a.terms-of-service:hover{color:var(--orange-deep);}
.vm-fieldset-tos a.terms-of-service em{color:var(--orange-deep);font-style:normal;text-decoration:underline;}
.vm-fieldset-tos .vmicon.vm2-termsofservice-icon{display:none;}
.vm-fieldset-tos #full-tos{display:none !important;}


.sm-cart-error-tos{
	background:#FDECEA;color:var(--danger);border:1px solid #F5C6C2;border-radius:8px;
	padding:0.6rem 0.9rem;margin-bottom:0.6rem;font-size:0.88rem;font-weight:600;
}
.vm-fieldset-tos.sm-cart-error-tos-active{
	border:1px solid var(--danger);border-radius:10px;padding:0.6rem;background:#FDECEA10;
}

/* ---------- Fancybox-Popup responsiv machen (v.a. "Zum Warenkorb hinzugefuegt") ---------- */
@media (max-width:640px){
	#fancybox-wrap{
		width:calc(100vw - 2rem) !important;
		left:1rem !important;
		max-width:calc(100vw - 2rem) !important;
	}
	#fancybox-outer{width:100% !important;}
	#fancybox-content{
		width:100% !important;max-width:100% !important;
		max-height:calc(100vh - 6rem) !important;overflow-y:auto !important;
		box-sizing:border-box;
	}
	#fancybox-content > div{width:100% !important;box-sizing:border-box;}
}
#fancybox-content .sm-atc{max-width:100%;box-sizing:border-box;}
