/* ============================================================
   AHLERS SHOP · SHOP.CSS
   Baut auf ahlers-basis.css (Tokens, Schrift, Buttons, Fokus) auf.
   Mobil zuerst. Breakpoints: 600, 768, 1024, 1280.
   Rot nur als Zündimpuls: Primär-Buttons, Preise im Angebot, aktive Zustände, Fokus.
   ============================================================ */

/* ── 1. Shop-Tokens ─────────────────────────────────────── */
:root {
  --as-container: 1320px;
  --as-gutter: 1rem;
  --as-surface: rgba(17, 17, 17, 0.92);
  --as-plate: #181818;
  --as-line: var(--color-border);
  --as-line-strong: rgba(255, 255, 255, 0.14);
  --as-muted: var(--color-gray);
  --as-text-2: var(--color-light-gray);
  --as-ok: #3ecf8e;
  --as-error: #ff6b6b;
  --as-warn: #f2b84b;
  --as-header-h: 116px; /* mobil: Logo-Zeile plus Suchfeld */
}
@media (min-width: 768px) { :root { --as-gutter: 1.5rem; } }
@media (min-width: 1024px) { :root { --as-header-h: 84px; } }

/* ── 2. Grundlagen ──────────────────────────────────────── */
html { scroll-padding-top: calc(var(--as-header-h) + 1rem); }
body.as-theme { background: var(--color-black); color: var(--color-white); font-size: 1rem; overflow-x: hidden; }
body.as-lock { overflow: hidden; }
::selection { background: rgba(254, 0, 0, 0.35); color: #fff; }

h1, h2, h3, h4 { line-height: 1.2; margin: 0 0 0.75rem; font-weight: 800; letter-spacing: -0.015em; }
p { margin: 0 0 1rem; }
a { color: inherit; }
img { max-width: 100%; height: auto; }
button { font-family: inherit; }

.screen-reader-text {
  border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
  height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.as-skip {
  position: absolute; left: 1rem; top: -100px; z-index: 1000;
  background: var(--color-white); color: #000; padding: 0.75rem 1rem; border-radius: var(--radius-sm); font-weight: 700;
}
.as-skip:focus { top: 1rem; }

:where(input, select, textarea, summary, [tabindex]):focus-visible { outline: 2px solid var(--color-red); outline-offset: 3px; }

.as-container { width: 100%; max-width: var(--as-container); margin: 0 auto; padding: 0 var(--as-gutter); }
.as-container--narrow { max-width: 860px; }
.as-main { display: block; min-height: 50vh; padding-bottom: var(--space-lg); }
.as-front { padding-bottom: 0; }
.as-muted { color: var(--as-muted); }

.as-ico { width: 24px; height: 24px; flex-shrink: 0; }

.as-iconbox {
  display: inline-grid; place-items: center; flex-shrink: 0;
  width: 52px; height: 52px; border-radius: var(--radius-md);
  background: var(--color-red-subtle); border: 1px solid var(--color-border-red); color: var(--color-white);
}
.as-iconbox .as-ico { width: 30px; height: 30px; }

.as-iconbtn {
  display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0;
  background: transparent; color: var(--color-white); border: 0; border-radius: var(--radius-sm); cursor: pointer;
  transition: background var(--duration-micro) ease, color var(--duration-micro) ease;
}
.as-iconbtn:hover { background: rgba(255, 255, 255, 0.07); }

/* ── 3. News-Leiste (über der Infoleiste, schließbar) ───── */
/* Gestaltung wie der Abholschein: Karte, Strichcode an der Überschrift, rot getönter Abriss mit Perforation. */
.as-news { padding: 0.75rem 0; background: var(--color-black); border-bottom: 1px solid var(--as-line); }
.as-news[hidden] { display: none; }
.as-news__ticket { display: grid; grid-template-columns: minmax(0, 1fr); border-radius: var(--radius-lg); background: #121212; border: 1px solid var(--as-line-strong); overflow: hidden; position: relative; }
.as-news__main { position: relative; padding: 0.85rem 3.25rem 0.9rem 1.1rem; }
.as-news__kicker { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 0.3rem; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-red); }
.as-news__kicker::after { content: ''; width: 38px; height: 10px; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.55) 0 2px, transparent 2px 4px, rgba(255, 255, 255, 0.55) 4px 5px, transparent 5px 8px); }
.as-news__text { margin: 0; font-size: 1rem; font-weight: 800; line-height: 1.35; color: var(--color-white); }
.as-news__close { position: absolute; top: 0.35rem; right: 0.35rem; color: var(--as-muted); }
.as-news__close:hover { color: var(--color-white); }
.as-news__close[hidden] { display: none; }
.as-news__stub { position: relative; display: flex; align-items: center; padding: 0.85rem 1.1rem; background: rgba(254, 0, 0, 0.06); border-top: 2px dashed rgba(255, 255, 255, 0.16); }
/* Perforation: zwei ausgestanzte Halbkreise an der Abrisskante, Fläche = Hintergrund der Leiste */
.as-news__stub::before, .as-news__stub::after { content: ''; position: absolute; width: 22px; height: 22px; border-radius: 50%; background: var(--color-black); border: 1px solid var(--as-line-strong); }
.as-news__stub::before { left: -12px; top: -12px; }
.as-news__stub::after { right: -12px; top: -12px; }
.as-news__link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0.45rem 1.1rem;
  background: var(--color-red); color: #fff; border-radius: var(--radius-sm); font-size: 0.9rem; font-weight: 800; text-decoration: none; white-space: nowrap;
  transition: background var(--duration-micro) ease;
}
.as-news__link:hover { background: linear-gradient(135deg, #ff2020 0%, #e00000 100%); color: #fff; }
@media (min-width: 768px) {
  .as-news__ticket.has-stub { grid-template-columns: minmax(0, 1fr) auto; }
  .as-news__main { display: flex; align-items: center; gap: 1rem; padding: 0.8rem 3.25rem 0.8rem 1.35rem; }
  .as-news__kicker { flex: none; margin: 0; }
  .as-news__text { font-size: 1.05rem; }
  .as-news__close { top: 50%; transform: translateY(-50%); }
  .as-news__stub { justify-content: center; min-width: 200px; padding: 0.8rem 1.35rem; border-top: 0; border-left: 2px dashed rgba(255, 255, 255, 0.16); }
  .as-news__stub::before { left: -12px; top: -12px; }
  .as-news__stub::after { left: -12px; right: auto; top: auto; bottom: -12px; }
}

/* ── 3b. Infoleiste ─────────────────────────────────────── */
.as-topbar { background: #0b0b0b; border-bottom: 1px solid var(--as-line); font-size: 0.8rem; color: var(--as-text-2); }
.as-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 38px; }
.as-topbar__text { display: flex; align-items: center; gap: 0.5rem; margin: 0; line-height: 1.4; padding: 0.4rem 0; }
.as-topbar__text .as-ico { width: 18px; height: 18px; }
.as-topbar__links { display: none; gap: 1.25rem; margin: 0; white-space: nowrap; }
.as-topbar__links a { color: var(--as-text-2); text-decoration: none; }
.as-topbar__links a:hover { color: var(--color-white); }
@media (min-width: 768px) { .as-topbar__links { display: flex; } }

/* ── 4. Kopfzeile ───────────────────────────────────────── */
.as-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(14, 14, 14, 0.94);
  backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%);
  border-bottom: 1px solid var(--as-line);
  transition: box-shadow var(--duration-base) ease, border-color var(--duration-base) ease;
}
body.admin-bar .as-header { top: 46px; }
@media (max-width: 600px) { body.admin-bar .as-header { top: 0; } } /* Adminleiste ist hier nicht fixiert */
@media (min-width: 783px) { body.admin-bar .as-header { top: 32px; } }
@media (max-width: 1023px) {
  .as-header { transition: transform var(--duration-macro) var(--ease-out-expo), box-shadow var(--duration-base) ease; }
  .as-header.is-tucked { transform: translateY(calc(-100% - 2px)); box-shadow: none; }
}
.as-header.is-scrolled { border-bottom-color: rgba(254, 0, 0, 0.2); box-shadow: 0 1px 0 rgba(254, 0, 0, 0.12), 0 12px 40px rgba(0, 0, 0, 0.45); }

.as-header__inner {
  display: grid; align-items: center; gap: 0.5rem 0.75rem;
  grid-template-columns: auto 1fr auto;
  grid-template-areas: "burger logo tools" "search search search";
  padding-top: 0.5rem; padding-bottom: 0.75rem;
}
.as-header__burger { grid-area: burger; margin-left: -0.5rem; }
.as-header__logo { grid-area: logo; display: flex; align-items: center; justify-self: start; }
.as-header__logo img { height: 44px; width: auto; }
.as-header .as-search { grid-area: search; }
.as-header__tools { grid-area: tools; display: flex; align-items: center; gap: 0.25rem; margin-right: -0.5rem; }

.as-burger { display: grid; gap: 5px; width: 22px; }
.as-burger span { display: block; height: 2px; background: currentColor; border-radius: 2px; }

.as-tool {
  position: relative; display: inline-flex; align-items: center; gap: 0.5rem;
  min-height: 44px; min-width: 44px; justify-content: center; padding: 0 0.5rem;
  color: var(--color-white); text-decoration: none; border-radius: var(--radius-sm); font-size: 0.85rem; font-weight: 600;
  transition: background var(--duration-micro) ease;
}
.as-tool:hover { background: rgba(255, 255, 255, 0.07); }
.as-tool__label { display: none; white-space: nowrap; }
.as-count {
  position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px;
  display: inline-grid; place-items: center; border-radius: 9px;
  background: var(--color-red); color: #fff; font-size: 0.68rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums;
}
.as-count.is-empty { display: none; }
.as-cartlink__total .woocommerce-Price-amount { font-variant-numeric: tabular-nums; }

@media (min-width: 1024px) {
  .as-header__inner { grid-template-columns: auto minmax(240px, 560px) 1fr; grid-template-areas: "logo search tools"; gap: 2rem; padding-top: 0.75rem; padding-bottom: 0.75rem; }
  .as-header__burger { display: none; }
  .as-header__logo img { height: 64px; }
  .as-header__tools { justify-self: end; gap: 0.5rem; margin-right: 0; }
  .as-tool { padding: 0 0.75rem; }
  .as-tool__label { display: inline; }
  .as-tool .as-count { position: static; margin-left: -0.15rem; }
}

/* Suche */
.as-search { position: relative; display: flex; width: 100%; }
.as-search__input {
  width: 100%; height: 44px; padding: 0 3rem 0 1rem;
  background: rgba(255, 255, 255, 0.05); color: var(--color-white);
  border: 1px solid var(--as-line-strong); border-radius: var(--radius-md);
  font: inherit; font-size: 0.95rem; -webkit-appearance: none; appearance: none;
  transition: border-color var(--duration-micro) ease, box-shadow var(--duration-micro) ease;
}
.as-search__input::placeholder { color: var(--as-muted); }
.as-search__input:focus { outline: none; border-color: var(--color-red); box-shadow: 0 0 0 3px rgba(254, 0, 0, 0.12); }
.as-search__btn { position: absolute; right: 0; top: 0; width: 48px; height: 44px; display: grid; place-items: center; background: none; border: 0; color: var(--as-text-2); cursor: pointer; border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.as-search__btn:hover { color: var(--color-white); }
.as-search__btn .as-ico { width: 20px; height: 20px; }

/* Suche: Vorschau beim Tippen (entsteht in main.js) */
.as-search__panel {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 20;
  max-height: min(70vh, 560px); overflow-y: auto; overscroll-behavior: contain;
  background: #141414; border: 1px solid var(--as-line-strong); border-radius: var(--radius-md);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.55);
}
@supports (height: 1dvh) { .as-search__panel { max-height: min(70dvh, 560px); } }
.as-search__panel[hidden] { display: none; }
.as-search__panel[aria-busy="true"] .as-search__list { opacity: 0.6; }
.as-search__list { list-style: none; margin: 0; padding: 0.375rem; transition: opacity var(--duration-micro) ease; }
.as-search__item {
  display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 0.75rem;
  padding: 0.5rem; border-radius: var(--radius-sm); color: var(--color-white); text-decoration: none;
}
.as-search__item:hover, .as-search__item.is-active { background: rgba(255, 255, 255, 0.06); }
.as-search__item.is-active { box-shadow: inset 2px 0 0 var(--color-red); }
.as-search__img { display: block; width: 52px; height: 52px; border-radius: var(--radius-sm); overflow: hidden; background: var(--as-plate); }
.as-search__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.as-search__text { display: grid; gap: 0.1rem; min-width: 0; }
.as-search__brand { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--as-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.as-search__name { font-size: 0.9rem; font-weight: 600; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.as-search__name mark { background: none; color: inherit; text-decoration: underline; text-decoration-color: var(--color-red); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.as-search__price { display: flex; flex-direction: column; align-items: flex-end; gap: 0; font-size: 0.9rem; font-weight: 800; white-space: nowrap; font-variant-numeric: tabular-nums; }
.as-search__price del { font-size: 0.75rem; }
.as-search__all {
  display: flex; align-items: center; justify-content: center; gap: 0.4rem; padding: 0.8rem 1rem;
  border-top: 1px solid var(--as-line); color: var(--color-white); font-size: 0.875rem; font-weight: 700; text-decoration: none;
}
.as-search__all:hover { background: rgba(255, 255, 255, 0.05); }
.as-search__all .as-ico { width: 18px; height: 18px; }
.as-search__empty { margin: 0; padding: 1rem; font-size: 0.9rem; color: var(--as-text-2); }

/* Sortiment-Navigation */
.as-catnav { display: none; border-top: 1px solid var(--as-line); }
.as-catnav__inner { display: flex; align-items: center; gap: 1rem; }
.as-catnav__list { display: flex; gap: 0.25rem; list-style: none; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; flex: 1; }
.as-catnav__list::-webkit-scrollbar { display: none; }
.as-catnav__list.is-overflowing { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 64px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 64px), transparent); padding-right: 48px; }
.as-catnav__list.is-overflowing.is-end { -webkit-mask-image: none; mask-image: none; }
.as-catnav__list.is-overflowing:not(.is-start) { -webkit-mask-image: linear-gradient(90deg, transparent, #000 64px, #000 calc(100% - 64px), transparent); mask-image: linear-gradient(90deg, transparent, #000 64px, #000 calc(100% - 64px), transparent); }
.as-catnav__list.is-overflowing.is-end:not(.is-start) { -webkit-mask-image: linear-gradient(90deg, transparent, #000 64px); mask-image: linear-gradient(90deg, transparent, #000 64px); }
.as-catnav__inner { position: relative; }
.as-catnav__arrow { flex-shrink: 0; display: inline-grid; place-items: center; width: 36px; height: 36px; padding: 0; border-radius: 50%; border: 1px solid var(--as-line-strong); background: #141414; color: var(--color-white); cursor: pointer; }
.as-catnav__arrow[hidden] { display: none; }
.as-catnav__arrow:hover { border-color: var(--color-white); }
.as-catnav__arrow .as-ico { width: 18px; height: 18px; }
.as-catnav__list a {
  position: relative; display: block; padding: 0.7rem 0.6rem; white-space: nowrap;
  font-size: 0.875rem; font-weight: 600; color: var(--as-text-2); text-decoration: none;
}
.as-catnav__list a::after { content: ''; position: absolute; left: 0.6rem; right: 0.6rem; bottom: 0; height: 2px; background: var(--color-red); transform: scaleX(0); transform-origin: left; transition: transform var(--duration-base) var(--ease-out-expo); }
.as-catnav__list a:hover { color: var(--color-white); }
.as-catnav__list a:hover::after,
.as-catnav__list .current-menu-item > a::after { transform: scaleX(1); }
.as-catnav__list .current-menu-item > a { color: var(--color-white); }
.as-catnav__list .as-menu-sale > a { color: var(--color-red); }
.as-catnav__list .as-menu-sale > a:hover,
.as-catnav__list .as-menu-sale.current-menu-item > a { color: var(--color-white); }
.as-catnav__main {
  flex-shrink: 0; padding: 0.4rem 0.9rem; border: 1px solid rgba(254, 0, 0, 0.5); border-radius: var(--radius-sm);
  color: var(--color-red); font-size: 0.82rem; font-weight: 700; text-decoration: none; white-space: nowrap;
  transition: background var(--duration-micro) ease, color var(--duration-micro) ease;
}
.as-catnav__main:hover { background: rgba(254, 0, 0, 0.15); color: var(--color-white); }
@media (min-width: 1024px) { .as-catnav { display: block; } }

/* Menü mobil */
.as-drawer { position: fixed; inset: 0; z-index: 300; }
.as-drawer__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.6); opacity: 0; transition: opacity var(--duration-base) ease; }
.as-drawer__panel {
  position: absolute; top: 0; bottom: 0; left: 0; width: min(88vw, 380px); overflow-y: auto;
  background: #0f0f0f; border-right: 1px solid var(--as-line); padding: 1rem 1.25rem 2rem;
  padding-top: calc(1rem + var(--safe-top)); padding-bottom: calc(2rem + var(--safe-bottom));
  transform: translateX(-100%); transition: transform var(--duration-macro) var(--ease-out-expo);
}
.as-drawer.is-open .as-drawer__backdrop { opacity: 1; }
.as-drawer.is-open .as-drawer__panel { transform: none; }
.as-drawer__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.as-drawer__title { font-weight: 800; font-size: 1.1rem; }
.as-drawer__group { margin: 1.5rem 0 0.25rem; font-size: 0.78rem; font-weight: 700; color: var(--as-muted); }
.as-drawer__list { list-style: none; margin: 0; padding: 0; }
.as-drawer__list a { display: block; padding: 0.7rem 0; border-bottom: 1px solid var(--as-line); color: var(--color-white); text-decoration: none; font-weight: 600; }
.as-drawer__list a:hover { color: var(--color-red); }
.as-drawer__list .as-menu-sale > a { color: var(--color-red); }
.as-drawer__list .as-menu-sale > a:hover { color: var(--color-white); }

/* ── 5. Seitenkopf und Brotkrumen ───────────────────────── */
.as-pagehead { position: relative; padding: 1.5rem 0 1.75rem; border-bottom: 1px solid var(--as-line); margin-bottom: 1.75rem; background: radial-gradient(ellipse 60% 120% at 0% 0%, rgba(254, 0, 0, 0.08), transparent 70%); }
.as-pagehead__label { margin: 0 0 0.35rem; color: var(--color-red); font-weight: 700; font-size: 0.85rem; }
.as-pagehead__title { font-size: clamp(1.75rem, 4vw, 2.75rem); line-height: 1.1; letter-spacing: -0.025em; margin: 0; }
.as-pagehead__intro { margin-top: 0.75rem; max-width: 68ch; color: var(--as-text-2); }
.as-pagehead__intro p:last-child { margin-bottom: 0; }
@media (min-width: 1024px) { .as-pagehead { padding: 2.25rem 0 2.25rem; margin-bottom: 2.25rem; } }

.as-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; margin-bottom: 0.75rem; font-size: 0.8rem; color: var(--as-muted); }
.as-crumbs a { color: var(--as-text-2); text-decoration: none; }
.as-crumbs a:hover { color: var(--color-white); text-decoration: underline; text-decoration-color: var(--color-red); }
.as-crumbs__sep { opacity: 0.5; }

/* ── 6. Buttons in WooCommerce ──────────────────────────── */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
a.button, button.button, input.button, .wc-forward, .woocommerce #respond input#submit {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 44px; padding: 0.7rem 1.3rem; border-radius: var(--radius-md);
  font: 700 0.9rem/1.2 var(--font-primary); letter-spacing: 0.01em; text-decoration: none; text-align: center; cursor: pointer;
  background: rgba(255, 255, 255, 0.05); color: var(--color-white); border: 1px solid rgba(255, 255, 255, 0.18);
  transition: transform var(--duration-base) var(--ease-out-expo), box-shadow var(--duration-base) var(--ease-out-expo), background var(--duration-base) ease, border-color var(--duration-base) ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, a.button:hover, button.button:hover, .wc-forward:hover, .woocommerce #respond input#submit:hover {
  background: rgba(255, 255, 255, 0.09); border-color: rgba(255, 255, 255, 0.32); color: var(--color-white);
}

.woocommerce a.button.add_to_cart_button, .woocommerce a.button.product_type_simple:not(.as-btn-locked),
.woocommerce button.single_add_to_cart_button, .woocommerce a.checkout-button, .woocommerce #place_order,
.woocommerce button.button.alt, .woocommerce a.button.alt, .woocommerce #respond input#submit.alt,
.woocommerce-form-login__submit, .woocommerce-form-register__submit, .woocommerce-Button.button, .as-compare a.button.add_to_cart_button {
  background: linear-gradient(135deg, #fe0000 0%, #c80000 100%); border-color: rgba(254, 80, 80, 0.3); color: #fff;
  box-shadow: 0 2px 16px rgba(254, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.woocommerce a.button.add_to_cart_button:hover, .woocommerce button.single_add_to_cart_button:hover, .woocommerce a.checkout-button:hover,
.woocommerce #place_order:hover, .woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover,
.woocommerce-form-login__submit:hover, .woocommerce-form-register__submit:hover, .woocommerce-Button.button:hover, .as-compare a.button.add_to_cart_button:hover {
  background: linear-gradient(135deg, #ff2020 0%, #e00000 100%); color: #fff; transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(254, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.15);
}
.woocommerce a.button.loading { opacity: 0.7; pointer-events: none; }
.woocommerce a.button.added::after { content: ''; width: 14px; height: 8px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg) translateY(-2px); }
.woocommerce .button:disabled, .woocommerce .button.disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
a.added_to_cart { display: inline-block; margin-top: 0.5rem; font-size: 0.82rem; font-weight: 700; color: var(--as-text-2); text-decoration: underline; text-decoration-color: var(--color-red); text-underline-offset: 3px; }
a.added_to_cart:hover { color: var(--color-white); }
.ap-btn-primary, .ap-btn-secondary { min-height: 44px; justify-content: center; }
.ap-btn-primary .as-ico, .ap-btn-secondary .as-ico { width: 18px; height: 18px; }
@media (prefers-reduced-motion: reduce) {
  .woocommerce a.button:hover, .woocommerce button.button:hover, .ap-btn-primary:hover, .ap-btn-secondary:hover { transform: none !important; }
  .ap-btn-primary:hover::before { animation: none !important; }
}

/* ── 7. Formulare ───────────────────────────────────────── */
.woocommerce form .form-row { margin: 0 0 1rem; padding: 0; }
.woocommerce form .form-row label, .as-wc label { display: block; margin-bottom: 0.35rem; font-size: 0.85rem; font-weight: 600; color: var(--as-text-2); line-height: 1.4; }
.woocommerce form .form-row .required { color: var(--color-red); text-decoration: none; }
.woocommerce form .form-row .optional { color: var(--as-muted); font-weight: 400; }
.woocommerce input[type="text"], .woocommerce input[type="email"], .woocommerce input[type="tel"], .woocommerce input[type="password"],
.woocommerce input[type="number"], .woocommerce input[type="search"], .woocommerce input[type="date"], .woocommerce textarea, .woocommerce select,
.as-wc input[type="text"], .as-wc input[type="email"], .as-wc input[type="password"], .as-prose input[type="text"], .as-prose input[type="email"], .as-prose textarea,
#review_form textarea, #review_form input[type="text"], #review_form input[type="email"], .select2-container .select2-selection--single {
  width: 100%; min-height: 46px; padding: 0.7rem 0.95rem;
  background: rgba(255, 255, 255, 0.04); color: var(--color-white);
  border: 1px solid var(--as-line-strong); border-radius: var(--radius-sm);
  font: 400 1rem/1.4 var(--font-primary); box-shadow: none; -webkit-appearance: none; appearance: none;
  transition: border-color var(--duration-micro) ease, box-shadow var(--duration-micro) ease;
}
.woocommerce textarea { min-height: 120px; }
.woocommerce input:focus, .woocommerce textarea:focus, .woocommerce select:focus, .as-wc input:focus, #review_form textarea:focus {
  outline: none; border-color: var(--color-red); box-shadow: 0 0 0 3px rgba(254, 0, 0, 0.12);
}
.woocommerce select, .woocommerce-ordering select {
  padding-right: 2.5rem; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9cdd3' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 0.8rem center; background-size: 16px;
}
.woocommerce select option { background: #181818; color: #fff; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--color-red); width: 18px; height: 18px; }
.woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--as-error); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: rgba(62, 207, 142, 0.45); }
.woocommerce-error, .woocommerce form .form-row .woocommerce-input-wrapper .checkout-inline-error-message { color: var(--as-error); }
/* WooCommerce hängt Inline-Fehler direkt an die Zeile, z. B. am AGB-Häkchen über dem Kaufen-Button. */
.woocommerce form .form-row > .checkout-inline-error-message { margin: 0.35rem 0 0; font-size: 0.82rem; color: var(--as-error); }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; float: none; }
@media (min-width: 600px) {
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 0.5rem); float: left; }
  .woocommerce form .form-row-last { float: right; }
}
.woocommerce form .form-row-wide, .woocommerce form .form-row-wide + .form-row { clear: both; }
.woocommerce form .form-row-wide { width: 100%; }

/* Select2 (Länderauswahl) */
.select2-container--default .select2-selection--single { display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--color-white); padding: 0; line-height: 1.4; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); right: 0.6rem; }
.select2-dropdown { background: #181818; color: #fff; border-color: var(--as-line-strong); }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--color-red); }
.select2-search--dropdown .select2-search__field { background: #111; color: #fff; border: 1px solid var(--as-line-strong); }

/* ── 8. Hinweise ────────────────────────────────────────── */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice, .wc-block-components-notice-banner {
  position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem;
  list-style: none; margin: 0 0 1.5rem; padding: 1rem 1.25rem 1rem 1.25rem;
  background: var(--as-surface); color: var(--color-white);
  border: 1px solid var(--as-line); border-left: 3px solid var(--as-text-2); border-radius: var(--radius-md);
  font-size: 0.92rem; line-height: 1.5;
}
.woocommerce-message { border-left-color: var(--as-ok); }
.woocommerce-error { border-left-color: var(--as-error); flex-direction: column; align-items: flex-start; }
.woocommerce-error li { margin: 0; }
.woocommerce-info, .woocommerce-notice { border-left-color: var(--color-red); }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-left: auto; min-height: 38px; padding: 0.5rem 1rem; font-size: 0.82rem; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button), .woocommerce-error a:not(.button) { color: var(--color-white); text-decoration: underline; text-decoration-color: var(--color-red); }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { content: none; }
.woocommerce-notices-wrapper:empty { display: none; }

/* Ladezustand: WooCommerce sperrt Warenkorb, Kasse usw. mit jQuery BlockUI und setzt Weiß mit 60 % als Inline-Style.
   Das WooCommerce-CSS mit Spinner lädt nicht (as_wc_styles). Daher hier dunkel mit eigenem Kreis; !important gegen den Inline-Style.
   BlockUI entfernt das Overlay beim Entsperren, display: flex bleibt deshalb nicht stehen. */
.blockUI.blockOverlay {
  display: flex !important; align-items: center; justify-content: center;
  background: rgba(17, 17, 17, 0.6) !important; opacity: 1 !important; border-radius: inherit; cursor: progress !important;
  z-index: 10 !important; /* BlockUI setzt 1000, das läge über der fixierten Kopfzeile (100) */
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  animation: as-block-in var(--duration-base) ease both;
}
/* Der Kreis bleibt bei hohen Bereichen (lange Artikelliste) in der Bildschirmmitte. */
.blockUI.blockOverlay::before {
  content: ''; position: sticky; top: calc(50vh - 18px); bottom: calc(50vh - 18px); flex: 0 0 36px; height: 36px; border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.16); border-top-color: var(--color-red); box-shadow: var(--shadow-glow-sm);
  animation: as-spin 0.8s linear infinite;
}
/* Laden zwei Bereiche gleichzeitig (Artikelliste und Summe, Zahlungsart und Übersicht), zeigt nur einer den Kreis. */
.woocommerce:has(.woocommerce-cart-form > .blockOverlay) .cart_totals > .blockOverlay::before,
#order_review:has(.woocommerce-checkout-payment > .blockOverlay) .woocommerce-checkout-review-order-table > .blockOverlay::before,
form.checkout:has(> .blockOverlay) #order_review .blockOverlay::before { content: none; }
@keyframes as-block-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes as-spin { to { transform: rotate(360deg); } }
@keyframes as-pulse { 50% { opacity: 0.4; } }
@media (prefers-reduced-motion: reduce) {
  .blockUI.blockOverlay { animation: none; }
  .blockUI.blockOverlay::before { animation: as-pulse 1.6s ease-in-out infinite; }
}
.wc-block-components-notice-banner > svg { fill: currentColor; width: 20px; height: 20px; }

/* ── 9. Produktraster und Karte ─────────────────────────── */
.woocommerce ul.products.as-grid, .woocommerce-page ul.products.as-grid, ul.products.as-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem;
  list-style: none; margin: 0 0 2rem; padding: 0;
}
ul.products.as-grid::before, ul.products.as-grid::after { content: none !important; display: none !important; }
@media (min-width: 768px) { .woocommerce ul.products.as-grid, ul.products.as-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } }
@media (min-width: 1200px) {
  .woocommerce ul.products.as-grid.columns-4, ul.products.as-grid.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
  .as-archive__main ul.products.as-grid.columns-4 { gap: 1rem; }
}

.woocommerce ul.products.as-grid li.product, .woocommerce-page ul.products.as-grid li.product, ul.products.as-grid li.product {
  position: relative; display: flex; flex-direction: column; float: none; width: auto; margin: 0; padding: 0;
  background: var(--as-surface); border: 1px solid var(--as-line); border-radius: var(--radius-md); overflow: hidden;
  transition: border-color var(--duration-base) ease;
}
ul.products.as-grid li.product:hover { border-color: var(--as-line-strong); }

.as-card__media { position: relative; padding: 0.6rem; background: var(--as-plate); }
.as-card__img { display: block; aspect-ratio: 1 / 1; border-radius: var(--radius-sm); overflow: hidden; background: var(--as-plate); }
.as-card__img img.as-img-missing, .woocommerce-product-gallery img.as-img-missing { object-fit: cover; }
.woocommerce-product-gallery .as-img-missing ~ .zoomImg, .woocommerce-product-gallery a:not([href]) .zoomImg { display: none; }
.as-card__img img { width: 100%; height: 100%; object-fit: contain; margin: 0 !important; color: transparent; font-size: 0; transition: transform var(--duration-macro) var(--ease-out-expo); }
ul.products li.product:hover .as-card__img img { transform: scale(1.03); }
.as-card__badges { position: absolute; top: 0.9rem; left: 0.9rem; display: flex; flex-wrap: wrap; gap: 0.35rem; pointer-events: none; }
.as-card__media .as-save { position: absolute; z-index: 2; top: 0.6rem; right: 0.6rem; display: flex; flex-direction: column; gap: 0.25rem; }

.as-card__body { display: flex; flex-direction: column; flex: 1; gap: 0.35rem; padding: 0.75rem 0.8rem 0.9rem; }
.as-card__brand { margin: 0; font-size: 0.75rem; font-weight: 600; color: var(--as-muted); }
.woocommerce ul.products li.product .as-card__title, .as-card__title {
  margin: 0; padding: 0; font-size: 0.92rem; font-weight: 700; line-height: 1.35; letter-spacing: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.as-card__title a { color: var(--color-white); text-decoration: none; }
.as-card__title a::before { content: ''; position: absolute; inset: 0; z-index: 0; } /* ganze Karte klickbar */
.as-card__title a:hover { color: var(--color-white); text-decoration: underline; text-decoration-color: var(--color-red); text-underline-offset: 3px; }
.as-card__body .button, .as-card__body a:not(.as-card__title a), .as-card__body .price, .as-card__body .wc-gzd-additional-info { position: relative; z-index: 1; }

.woocommerce ul.products li.product .price, .as-card__body .price {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.15rem 0.5rem; margin: 0.25rem 0 0;
  color: var(--color-white); font-size: 1.12rem; font-weight: 800; letter-spacing: -0.01em; font-variant-numeric: tabular-nums;
}
.price del { order: 2; color: var(--as-muted); font-size: 0.82rem; font-weight: 600; opacity: 1; }
.price ins { text-decoration: none; color: var(--color-red); background: none; }
.as-card__body .wc-gzd-additional-info, .as-card__body .price-unit, .as-card__body .tax-info, .as-card__body .shipping-costs-info, .as-card__body .delivery-time-info, .as-card__body p.wc-gzd-additional-info {
  margin: 0; font-size: 0.72rem; line-height: 1.4; color: var(--as-muted);
}
.as-card__body .wc-gzd-additional-info a { color: var(--as-muted); }
.woocommerce ul.products li.product .button, .as-card__body .button { margin-top: auto; width: 100%; min-height: 42px; padding: 0.6rem 0.75rem; font-size: 0.85rem; }
.as-card__body .price { margin-bottom: 0.3rem; }
ul.products li.product .onsale { display: none; } /* Angebot zeigt das eigene Badge */

@media (min-width: 768px) {
  .as-card__media { padding: 0.85rem; }
  .as-card__body { padding: 0.9rem 1rem 1rem; }
  .as-card__badges { top: 1.1rem; left: 1.1rem; }
  .as-card__media .as-save { top: 0.85rem; right: 0.85rem; }
}

/* Badges */
.as-fclass {
  display: inline-grid; place-items: center; min-width: 30px; height: 22px; padding: 0 6px;
  border-radius: 6px; background: rgba(10, 10, 10, 0.82); border: 1px solid rgba(255, 255, 255, 0.35);
  color: #fff; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.02em; line-height: 1;
}
.as-fclass--locked { border-color: var(--color-red); color: #fff; box-shadow: 0 0 0 1px rgba(254, 0, 0, 0.25) inset; }
.as-badge-sale {
  display: inline-grid; place-items: center; height: 22px; padding: 0 8px; border-radius: 6px;
  background: var(--color-red); color: #fff; font-size: 0.72rem; font-weight: 800; line-height: 1;
}

/* Demnächst verfügbar (Plugin Products Coming Soon) */
.as-badge-soon { display: inline-grid; place-items: center; height: 22px; padding: 0 8px; border-radius: 6px; background: rgba(10, 10, 10, 0.82); border: 1px solid rgba(255, 255, 255, 0.35); color: #fff; font-size: 0.72rem; font-weight: 800; line-height: 1; }
.woocommerce a.button.as-btn-soon, .woocommerce ul.products li.product a.button.as-btn-soon { background: rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.2); color: var(--as-text-2); box-shadow: none; }
.woocommerce a.button.as-btn-soon:hover { color: var(--color-white); border-color: rgba(255, 255, 255, 0.4); transform: none; }
.as-btn-soon .as-ico { width: 18px; height: 18px; }
.as-soonbox { margin: 1.25rem 0; padding: 1rem 1.15rem; border: 1px solid var(--as-line-strong); border-left: 3px solid var(--color-white); border-radius: var(--radius-md); background: rgba(255, 255, 255, 0.03); }
.as-soonbox p { margin: 0; color: var(--as-text-2); font-size: 0.92rem; }
.as-soonbox__title { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.35rem !important; color: var(--color-white) !important; font-weight: 800; font-size: 1rem !important; }
body.as-theme .woo_csn_notices, body.as-theme .add-to-cart-button-outer + .woo_csn_notices { display: none !important; } /* ersetzt durch .as-soonbox */
.shipping-costs-info:empty, .wc-gzd-additional-info:empty { display: none !important; }

/* Merken und Vergleichen */
.as-save__btn { width: 36px; height: 36px; background: rgba(10, 10, 10, 0.75); border: 1px solid rgba(255, 255, 255, 0.12); color: var(--as-text-2); position: relative; }
.as-save__btn::after { content: ''; position: absolute; inset: -4px; } /* Trefferfläche ≥ 44 px */
.as-save__btn .as-ico { width: 20px; height: 20px; }
.as-save__btn:hover { background: rgba(10, 10, 10, 0.92); color: var(--color-white); border-color: rgba(255, 255, 255, 0.3); }
.as-save__btn.is-active { color: var(--color-white); border-color: var(--color-red); }
.as-save__btn[data-as-wish].is-active .as-ico path { fill: var(--color-red); stroke: var(--color-red); }
.as-save__btn[data-as-compare].is-active { background: rgba(254, 0, 0, 0.18); }
.as-save--labeled { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.as-save--labeled .as-save__btn { width: auto; height: 44px; padding: 0 0.9rem; gap: 0.5rem; display: inline-flex; font-size: 0.85rem; font-weight: 600; background: rgba(255, 255, 255, 0.04); }
.as-save--labeled .as-save__btn::after { content: none; }

/* Kennzahlen */
.as-specs { margin: 0; }
.as-specs dt { color: var(--as-muted); font-weight: 600; }
.as-specs dd { margin: 0; color: var(--color-white); font-weight: 700; font-variant-numeric: tabular-nums; }
.as-specs--card { display: flex; flex-wrap: wrap; gap: 0.15rem 0.85rem; margin: 0.15rem 0 0; }
.as-specs--card > div { display: flex; flex-direction: column; min-width: 0; }
.as-specs--card dt { font-size: 0.66rem; line-height: 1.3; }
.as-specs--card dd { font-size: 0.8rem; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 11ch; }
.as-specs--keyfacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; margin: 1.25rem 0; }
.as-specs--keyfacts > div, .as-specs--grid > div { padding: 0.7rem 0.85rem; background: rgba(255, 255, 255, 0.03); border: 1px solid var(--as-line); border-radius: var(--radius-sm); }
.as-specs--keyfacts dt, .as-specs--grid dt { font-size: 0.75rem; margin-bottom: 0.15rem; }
.as-specs--keyfacts dd, .as-specs--grid dd { font-size: 1rem; }
@media (min-width: 600px) { .as-specs--keyfacts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.as-specs--grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
@media (min-width: 768px) { .as-specs--grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Gesperrt (F3/F4) */
.as-locked { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.85rem; font-weight: 700; color: var(--as-text-2); }
.as-locked .as-ico { width: 18px; height: 18px; }
.woocommerce a.button.as-btn-locked { background: transparent; border-color: var(--color-border-red); color: var(--color-white); box-shadow: none; }
/* Ohne Preis keine Preis-Pflichtangaben (MwSt., Versand) */
.as-is-locked .wc-gzd-additional-info, .as-is-locked .legal-price-info, .as-is-locked .price-unit, .as-is-locked .product-units { display: none !important; }
.as-lockbox { margin: 1.5rem 0; padding: 1.1rem 1.25rem; background: var(--color-red-subtle); border: 1px solid var(--color-border-red); border-radius: var(--radius-md); font-size: 0.92rem; }
.as-lockbox p { margin: 0 0 0.6rem; color: var(--as-text-2); }
.as-lockbox p:last-child { margin-bottom: 0; }
.as-lockbox__title { display: flex; align-items: center; gap: 0.5rem; color: var(--color-white) !important; font-weight: 800; }
.as-lockbox a:not(.ap-btn-secondary) { color: var(--color-white); text-decoration: underline; text-decoration-color: var(--color-red); text-underline-offset: 3px; }
.as-lockbox__hint { font-size: 0.85rem; }
.as-lockbox--plain { background: rgba(255, 255, 255, 0.03); border-color: var(--as-line); margin-top: 2rem; }

/* ── 10. Archiv: Filter und Werkzeugleiste ──────────────── */
.as-archive { display: block; }
@media (min-width: 1024px) {
  .as-archive { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 2rem; align-items: start; }
}

.as-archive__filters {
  position: fixed; inset: 0 auto 0 0; z-index: 310; width: min(92vw, 380px);
  background: #0f0f0f; border-right: 1px solid var(--as-line); overflow-y: auto;
  transform: translateX(-105%); visibility: hidden;
  transition: transform var(--duration-macro) var(--ease-out-expo), visibility 0s linear var(--duration-macro);
  padding-top: var(--safe-top);
}
.as-archive__filters:not(.is-open) { pointer-events: none; }
@media (min-width: 1024px) { .as-archive__filters:not(.is-open) { pointer-events: auto; } }
.as-archive__filters.is-open { transform: none; visibility: visible; transition-delay: 0s; box-shadow: 30px 0 80px rgba(0, 0, 0, 0.6); }
body.as-lock .as-archive__filters.is-open + .as-archive__main::before { content: ''; position: fixed; inset: 0; z-index: 305; background: rgba(0, 0, 0, 0.6); }
@media (min-width: 1024px) {
  .as-archive__filters { visibility: visible; position: sticky; top: calc(var(--as-header-h) + 3.5rem); inset: auto; z-index: auto; width: auto; max-height: calc(100vh - var(--as-header-h) - 4.5rem); transform: none; background: transparent; border: 0; padding: 0; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; }
  body.admin-bar .as-archive__filters { top: calc(var(--as-header-h) + 3.5rem + 32px); }
}

.as-filter { padding: 1rem 1.25rem 0; }
@media (min-width: 1024px) { .as-filter { padding: 0 0.5rem 1rem 0; } }
.as-filter__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.5rem; }
.as-filter__title { margin: 0; font-size: 1.1rem; }
@media (min-width: 1024px) { .as-filter__close { display: none; } .as-filter__title { font-size: 1rem; } }

.as-fgroup { border-bottom: 1px solid var(--as-line); }
.as-fgroup > summary {
  display: flex; align-items: center; gap: 0.5rem; min-height: 48px; cursor: pointer; list-style: none;
  font-weight: 700; font-size: 0.92rem;
}
.as-fgroup > summary::-webkit-details-marker { display: none; }
.as-fgroup > summary::after {
  content: ''; margin-left: auto; width: 8px; height: 8px; border-right: 2px solid var(--as-muted); border-bottom: 2px solid var(--as-muted);
  transform: rotate(45deg) translateY(-3px); transition: transform var(--duration-base) ease;
}
.as-fgroup[open] > summary::after { transform: rotate(-135deg) translateY(-1px); }
.as-fgroup fieldset { border: 0; margin: 0; padding: 0 0 1rem; min-width: 0; }
.as-fopts, .as-fnav { list-style: none; margin: 0; padding: 0 0 0.75rem; }
.as-fgroup fieldset .as-fopts { padding-bottom: 0.25rem; }
.as-fopt { display: flex; align-items: center; gap: 0.65rem; min-height: 44px; cursor: pointer; font-size: 0.88rem; color: var(--as-text-2); }
.as-fopt:hover { color: var(--color-white); }
.as-fopt input { flex-shrink: 0; margin: 0; }
.as-fopt__name { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.as-fcount { margin-left: auto; font-size: 0.75rem; color: var(--as-muted); font-variant-numeric: tabular-nums; }
.as-fcount--sel { margin-left: 0; display: inline-grid; place-items: center; min-width: 20px; height: 20px; border-radius: 10px; background: var(--color-red); color: #fff; font-weight: 800; }
.as-fopt--more { display: none; }
.as-fgroup.is-expanded .as-fopt--more { display: list-item; }
.as-fmore { min-height: 44px; margin-top: 0.25rem; padding: 0.4rem 0; background: none; border: 0; color: var(--color-white); font-weight: 700; font-size: 0.82rem; text-decoration: underline; text-decoration-color: var(--color-red); text-underline-offset: 3px; cursor: pointer; }
.as-fnav a { display: flex; align-items: center; gap: 0.5rem; min-height: 44px; color: var(--as-text-2); text-decoration: none; font-size: 0.9rem; }
.as-fnav a:hover { color: var(--color-white); }

/* Kategorie als Chips */
.as-fgroup--chips .as-fopts { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.as-fgroup--chips .as-fopt { position: relative; min-height: 40px; padding: 0 0.85rem; border: 1px solid var(--as-line-strong); border-radius: var(--radius-sm); gap: 0.4rem; font-weight: 700; color: var(--color-white); }
.as-fgroup--chips .as-fopt input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.as-fgroup--chips .as-fopt .as-fcount { margin-left: 0.15rem; }
.as-fgroup--chips .as-fopt:has(input:checked) { border-color: var(--color-red); background: var(--color-red-subtle); }
.as-fgroup--chips .as-fopt:has(input:focus-visible) { outline: 2px solid var(--color-red); outline-offset: 2px; }

/* Preis-Regler (Muster: Budget-Regler der Hauptseite) */
.as-price { padding: 0 0 1rem; }
.as-price__label { display: flex; justify-content: space-between; align-items: baseline; font-size: 0.85rem; color: var(--as-text-2); font-weight: 600; }
.as-price__out { color: var(--color-white); font-size: 1.15rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.as-price input[type="range"] {
  --fill: 1; display: block; width: 100%; height: 44px; margin: 0.25rem 0 0; padding: 0; background: transparent; cursor: pointer; -webkit-appearance: none; appearance: none;
}
.as-price input[type="range"]:focus { outline: none; }
.as-price input[type="range"]::-webkit-slider-runnable-track {
  height: 6px; border-radius: 3px;
  background: linear-gradient(to right, var(--color-red) 0, var(--color-red) calc(11px + (100% - 22px) * var(--fill)), rgba(255, 255, 255, 0.12) calc(11px + (100% - 22px) * var(--fill)));
}
.as-price input[type="range"]::-moz-range-track { height: 6px; border-radius: 3px; background: rgba(255, 255, 255, 0.12); }
.as-price input[type="range"]::-moz-range-progress { height: 6px; border-radius: 3px; background: var(--color-red); }
.as-price input[type="range"]::-webkit-slider-thumb {
  width: 22px; height: 22px; margin-top: -8px; border: 3px solid var(--color-red); border-radius: 50%; background: #fff;
  box-shadow: 0 0 0 6px rgba(254, 0, 0, 0.12), 0 4px 14px rgba(0, 0, 0, 0.5); -webkit-appearance: none; appearance: none;
}
.as-price input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; border: 3px solid var(--color-red); border-radius: 50%; background: #fff; box-shadow: 0 0 0 6px rgba(254, 0, 0, 0.12); }
.as-price input[type="range"]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px #0f0f0f, 0 0 0 6px #fff; }
.as-price input[type="range"]:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 3px #0f0f0f, 0 0 0 6px #fff; }
.as-price__scale { display: flex; justify-content: space-between; font-size: 0.75rem; color: var(--as-muted); font-variant-numeric: tabular-nums; }

.as-filter__actions {
  position: sticky; bottom: 0; margin: 0 -1.25rem; width: auto; display: flex; flex-direction: column; gap: 0.5rem;
  padding: 1rem 1.25rem calc(1rem + var(--safe-bottom)); background: #0f0f0f; border-top: 1px solid var(--as-line);
}
.as-filter__submit { width: 100%; }
.as-filter__reset { text-align: center; font-size: 0.85rem; color: var(--as-text-2); }
@media (min-width: 1024px) {
  .as-filter__actions { position: static; margin: 0; width: auto; padding: 1rem 0 0; background: none; border: 0; }
  .as-filter__submit { display: none; }
  .as-filter__reset { text-align: left; }
}
body.as-loading .as-archive__main { opacity: 0.55; transition: opacity var(--duration-base) ease; }

.as-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; margin-bottom: 1rem; }
.as-toolbar__filter { padding: 0.6rem 1rem; }
@media (min-width: 1024px) { .as-toolbar__filter { display: none; } }
.woocommerce .as-toolbar .woocommerce-result-count { float: none; margin: 0; font-size: 0.85rem; color: var(--as-muted); }
.woocommerce .as-toolbar .woocommerce-ordering { float: none; margin: 0 0 0 auto; }
.woocommerce .as-toolbar .woocommerce-ordering select { min-height: 44px; width: auto; font-size: 0.88rem; padding-top: 0.5rem; padding-bottom: 0.5rem; }
@media (max-width: 1023px) {
  .as-toolbar { display: grid; grid-template-columns: auto minmax(0, 1fr); }
  .woocommerce .as-toolbar .woocommerce-ordering { margin: 0; }
  .woocommerce .as-toolbar .woocommerce-ordering select { width: 100%; }
  .woocommerce .as-toolbar .woocommerce-result-count { grid-column: 1 / -1; order: 3; }
}

.as-active { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; list-style: none; margin: 0 0 1.25rem; padding: 0; }
.as-chip {
  display: inline-flex; align-items: center; gap: 0.35rem; min-height: 36px; padding: 0 0.75rem;
  border: 1px solid var(--as-line-strong); border-radius: 999px; font-size: 0.82rem; font-weight: 600; color: var(--color-white); text-decoration: none;
  transition: border-color var(--duration-micro) ease, background var(--duration-micro) ease;
}
.as-chip .as-ico { width: 14px; height: 14px; }
.as-chip:hover { border-color: var(--color-red); background: var(--color-red-subtle); }
.as-active__reset { font-size: 0.82rem; color: var(--as-text-2); margin-left: 0.25rem; }

.woocommerce-pagination { margin: 1rem 0 0; }
.woocommerce nav.woocommerce-pagination ul.page-numbers, .woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.35rem; list-style: none; margin: 0; padding: 0; border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; float: none; overflow: visible; }
.woocommerce-pagination .page-numbers a, .woocommerce-pagination .page-numbers span {
  display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 0.5rem;
  border: 1px solid var(--as-line); border-radius: var(--radius-sm); color: var(--as-text-2); text-decoration: none; font-weight: 700; font-variant-numeric: tabular-nums;
}
.woocommerce-pagination .page-numbers a:hover { border-color: var(--as-line-strong); color: var(--color-white); background: rgba(255, 255, 255, 0.05); }
.woocommerce-pagination .page-numbers span.current { border-color: var(--color-red); color: #fff; background: var(--color-red-subtle); }
.woocommerce-pagination .page-numbers .as-ico { width: 18px; height: 18px; }
.woocommerce-info.woocommerce-no-products-found { margin-top: 0; }
.as-archive__more { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--as-line); }

/* ── 11. Produktseite ───────────────────────────────────── */
.as-single { padding-top: 1.25rem; }
.woocommerce div.product { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin: 0; }
@media (min-width: 900px) {
  .woocommerce div.product { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 2.5rem 3rem; align-items: start; }
  .woocommerce div.product > .as-psections, .woocommerce div.product > .related, .woocommerce div.product > .upsells { grid-column: 1 / -1; }
}
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; margin: 0; }
.woocommerce div.product .woocommerce-product-gallery { position: relative; overflow: hidden; background: var(--as-plate); border: 1px solid var(--as-line); border-radius: var(--radius-lg); padding: 1rem; }
.woocommerce div.product div.images img { border-radius: var(--radius-sm); color: transparent; }
@media (max-width: 767px) { .woocommerce div.product div.images .zoomImg { display: none !important; } }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.75rem 0 0; padding: 0; list-style: none; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 64px; float: none; margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs li img { opacity: 0.55; border: 1px solid var(--as-line); cursor: pointer; transition: opacity var(--duration-micro) ease; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active, .woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--color-red); }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
  position: absolute; top: 1.5rem; right: 1.5rem; z-index: 5; width: 40px; height: 40px; border-radius: 50%;
  background: rgba(10, 10, 10, 0.8); border: 1px solid var(--as-line-strong); font-size: 0; text-indent: -999em; overflow: hidden;
}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before { content: ''; position: absolute; left: 11px; top: 10px; width: 13px; height: 13px; border: 2px solid #fff; border-radius: 50%; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after { content: ''; position: absolute; left: 24px; top: 24px; width: 2px; height: 7px; background: #fff; transform: rotate(-45deg); }
.woocommerce div.product .woocommerce-product-gallery .onsale { position: absolute; top: 1.5rem; left: 1.5rem; z-index: 5; }

.as-single__brand { margin: 0 0 0.35rem; font-size: 0.9rem; font-weight: 700; }
.as-single__brand a { display: inline-flex; align-items: center; min-height: 32px; color: var(--as-text-2); text-decoration: none; }
.as-single__brand a:hover { color: var(--color-white); text-decoration: underline; text-decoration-color: var(--color-red); }
.woocommerce div.product .product_title { font-size: clamp(1.75rem, 3.4vw, 2.6rem); line-height: 1.08; letter-spacing: -0.03em; margin: 0 0 0.75rem; }
.woocommerce div.product .woocommerce-product-rating { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.75rem; font-size: 0.85rem; color: var(--as-muted); }
.woocommerce div.product .woocommerce-product-rating a { color: var(--as-muted); }
.woocommerce div.product .summary p.price, .woocommerce div.product .summary span.price {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem; margin: 0.5rem 0 0.25rem;
  color: var(--color-white); font-size: clamp(1.75rem, 3vw, 2.2rem); font-weight: 800; letter-spacing: -0.02em; font-variant-numeric: tabular-nums;
}
.woocommerce div.product .summary .price del { font-size: 1.1rem; }
.woocommerce div.product .summary .wc-gzd-additional-info, .woocommerce div.product .summary .legal-price-info, .woocommerce div.product .summary .price-unit, .woocommerce div.product .summary .product-units { margin: 0 0 0.25rem; font-size: 0.82rem; color: var(--as-muted); }
.woocommerce div.product .summary .wc-gzd-additional-info a, .woocommerce div.product .summary .legal-price-info a { color: var(--as-text-2); }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--as-text-2); }
.woocommerce div.product .stock { margin: 0.5rem 0; font-weight: 700; font-size: 0.9rem; color: var(--as-ok); }
.woocommerce div.product .stock.out-of-stock { color: var(--as-error); }

.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: stretch; margin: 1.25rem 0 1rem; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce .quantity .qty { width: 5.25rem; min-height: 52px; text-align: center; font-weight: 700; font-size: 1.05rem; -moz-appearance: textfield; }
.woocommerce div.product form.cart .button { flex: 1; min-height: 52px; font-size: 1rem; float: none; }
.woocommerce div.product .product_meta { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--as-line); font-size: 0.8rem; color: var(--as-muted); display: flex; flex-direction: column; gap: 0.25rem; }
.woocommerce div.product .product_meta a { color: var(--as-text-2); }
.as-single__save { margin: 0 0 1.25rem; }

.as-notes { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.5rem; }
.as-notes li { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.8rem 0.95rem; background: rgba(255, 255, 255, 0.03); border: 1px solid var(--as-line); border-radius: var(--radius-sm); font-size: 0.88rem; color: var(--as-text-2); line-height: 1.55; }
.as-notes li strong { color: var(--color-white); }
.as-notes a { color: var(--color-white); text-decoration: underline; text-decoration-color: var(--color-red); text-underline-offset: 3px; white-space: nowrap; }

/* Abschnitte unter dem Produkt */
.as-psections { margin-top: 1rem; }
.as-psections__nav {
  display: flex; gap: 0.25rem; overflow-x: auto; scrollbar-width: none;
  margin: 0 calc(var(--as-gutter) * -1) 1.5rem; padding: 0.5rem var(--as-gutter);
  background: rgba(30, 30, 30, 0.94); border-bottom: 1px solid var(--as-line);
}
.as-psections__nav::-webkit-scrollbar { display: none; }
.as-psections__nav a { flex-shrink: 0; padding: 0.55rem 0.9rem; border-radius: var(--radius-sm); font-size: 0.85rem; font-weight: 700; color: var(--as-text-2); text-decoration: none; }
.as-psections__nav a:hover { color: var(--color-white); background: rgba(255, 255, 255, 0.06); }
.as-psection { padding: 1.5rem 0 2rem; border-bottom: 1px solid var(--as-line); }
.as-psection:last-of-type { border-bottom: 0; }
.as-psection__title { font-size: clamp(1.3rem, 2.4vw, 1.6rem); margin-bottom: 1rem; }
.as-psection__body { max-width: 980px; }
.as-psection--description .as-psection__body { font-size: 1.05rem; color: var(--as-text-2); }

/* Germanized-Produktsicherheit und Hersteller */
.as-psection .wc-gzd-product-safety, .as-psection .product-safety, .as-psection .wc-gzd-product-manufacturer { color: var(--as-text-2); font-size: 0.92rem; }
.as-psection .wc-gzd-product-safety h3, .as-psection .product-safety h3 { font-size: 1rem; margin-top: 1rem; }

/* Video */
.as-video { position: relative; aspect-ratio: 16 / 9; width: 100%; max-width: 860px; margin: 1rem 0; display: grid; place-content: center; gap: 0.75rem; text-align: center; padding: 1rem;
  background: radial-gradient(ellipse at 50% 60%, rgba(254, 0, 0, 0.14), transparent 60%), #0d0d0d; border: 1px solid var(--as-line); border-radius: var(--radius-md); overflow: hidden; }
.as-video__play { display: inline-flex; flex-direction: column; align-items: center; gap: 0.6rem; background: none; border: 0; color: #fff; font: 700 0.95rem var(--font-primary); cursor: pointer; justify-self: center; }
.as-video__play .as-ico { width: 64px; height: 64px; padding: 18px 16px 18px 20px; border-radius: 50%; background: var(--color-red); box-shadow: 0 0 0 10px rgba(254, 0, 0, 0.15), 0 10px 30px rgba(254, 0, 0, 0.35); fill: #fff; stroke: #fff; transition: transform var(--duration-base) var(--ease-out-expo); }
.as-video__play:hover .as-ico { transform: scale(1.06); }
.as-video__note { margin: 0; max-width: 46ch; font-size: 0.75rem; color: var(--as-muted); }
.as-video.is-playing { padding: 0; display: block; }
.as-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Bewertungen */
.woocommerce #reviews #comments h2, .woocommerce-Reviews-title { font-size: clamp(1.3rem, 2.4vw, 1.6rem); }
.woocommerce #reviews #comments ol.commentlist { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.woocommerce #reviews #comments ol.commentlist li { margin: 0 0 1rem; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { margin: 0; padding: 1rem; border: 1px solid var(--as-line); border-radius: var(--radius-sm); }
.woocommerce #reviews #comments ol.commentlist li img.avatar { display: none; }
.woocommerce-noreviews { color: var(--as-muted); }
#review_form_wrapper { max-width: 640px; }
#review_form .comment-reply-title { display: block; font-size: 1.1rem; font-weight: 800; margin-bottom: 0.75rem; }
#review_form .comment-notes, #review_form .comment-form-cookies-consent { font-size: 0.82rem; color: var(--as-muted); }
#review_form .comment-form-cookies-consent { display: flex; gap: 0.5rem; align-items: flex-start; }

/* Sterne ohne WooCommerce-Schrift */
.star-rating { position: relative; display: inline-block; width: 5.6em; height: 1.1em; line-height: 1; font-size: 0.95rem; overflow: hidden; vertical-align: middle; }
.star-rating::before { content: "★★★★★"; position: absolute; inset: 0; color: rgba(255, 255, 255, 0.2); letter-spacing: 0.12em; }
.star-rating span { position: absolute; top: 0; left: 0; height: 100%; overflow: hidden; padding-top: 2em; }
.star-rating span::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--color-red); letter-spacing: 0.12em; }
p.stars { margin: 0.25rem 0 1rem; }
p.stars span { display: inline-flex; gap: 0.15rem; }
p.stars a { position: relative; display: inline-block; width: 1.6em; height: 1.6em; font-size: 1.2rem; text-indent: -999em; overflow: hidden; text-decoration: none; }
p.stars a::before { content: "★"; position: absolute; inset: 0; text-indent: 0; color: rgba(255, 255, 255, 0.25); text-align: center; line-height: 1.6; }
p.stars:hover a::before, p.stars.selected a::before { color: var(--color-red); }
p.stars a:hover ~ a::before, p.stars.selected a.active ~ a::before { color: rgba(255, 255, 255, 0.25); }

/* Ähnliche Artikel */
.woocommerce .related > h2, .woocommerce .upsells > h2, .cross-sells > h2 { font-size: clamp(1.3rem, 2.4vw, 1.6rem); margin: 2rem 0 1rem; }

/* ── 12. Warenkorb, Abholschein, Kasse ──────────────────── */
.as-page--wc .as-wc > .woocommerce { display: block; }

/* Abholschein */
.as-ticket { display: grid; grid-template-columns: minmax(0, 1fr); border-radius: var(--radius-lg); background: #121212; border: 1px solid var(--as-line-strong); overflow: hidden; position: relative; }
.as-ticket__main { padding: 1.25rem 1.35rem; }
.as-ticket__title { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 0.5rem; font-weight: 800; font-size: 1.05rem; }
.as-ticket__text { margin: 0 0 0.35rem; font-size: 0.9rem; color: var(--as-text-2); }
.as-ticket__stub {
  list-style: none; margin: 0; padding: 1rem 1.35rem; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem;
  background: rgba(254, 0, 0, 0.06); border-top: 2px dashed rgba(255, 255, 255, 0.16); position: relative;
}
.as-ticket__stub li { display: flex; flex-direction: column; font-variant-numeric: tabular-nums; }
.as-ticket__stub strong { font-size: 0.95rem; font-weight: 800; }
.as-ticket__stub span { font-size: 0.78rem; color: var(--as-muted); }
.as-ticket--compact { margin: 0 0 1.75rem; }
@media (min-width: 768px) {
  .as-ticket--compact { grid-template-columns: minmax(0, 1fr) auto; }
  .as-ticket--compact .as-ticket__stub { flex-direction: column; justify-content: center; border-top: 0; border-left: 2px dashed rgba(255, 255, 255, 0.16); min-width: 200px; }
}
/* Perforation: zwei ausgestanzte Halbkreise an der Abrisskante */
.as-ticket__stub::before, .as-ticket__stub::after { content: ''; position: absolute; width: 22px; height: 22px; border-radius: 50%; background: var(--color-black); border: 1px solid var(--as-line-strong); }
.as-ticket__stub::before { left: -12px; top: -12px; }
.as-ticket__stub::after { right: -12px; top: -12px; }
@media (min-width: 768px) {
  .as-ticket--compact .as-ticket__stub::before { left: -12px; top: -12px; }
  .as-ticket--compact .as-ticket__stub::after { left: -12px; right: auto; top: auto; bottom: -12px; }
}

/* Warenkorb-Tabelle */
.woocommerce table.shop_table { width: 100%; border-collapse: separate; border-spacing: 0; margin: 0 0 1.5rem; border: 1px solid var(--as-line); border-radius: var(--radius-md); background: var(--as-surface); overflow: hidden; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 0.9rem 1rem; text-align: left; border-top: 1px solid var(--as-line); vertical-align: middle; }
.woocommerce table.shop_table thead th { border-top: 0; font-size: 0.78rem; font-weight: 700; color: var(--as-muted); }
.woocommerce table.shop_table td.product-thumbnail img { width: 72px; border-radius: var(--radius-sm); background: var(--as-plate); padding: 4px; }
.woocommerce table.shop_table td.product-name a { color: var(--color-white); font-weight: 700; text-decoration: none; }
.woocommerce table.shop_table td.product-name a:hover { text-decoration: underline; text-decoration-color: var(--color-red); }
.woocommerce table.shop_table .product-price, .woocommerce table.shop_table .product-subtotal { font-weight: 700; font-variant-numeric: tabular-nums; }
.woocommerce a.remove { position: relative; display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: var(--as-muted) !important; font-size: 1.4rem; text-decoration: none; line-height: 1; }
.woocommerce a.remove:hover { color: #fff !important; background: rgba(254, 0, 0, 0.6); }
.woocommerce a.remove::after { content: ''; position: absolute; inset: -4px; }
.woocommerce table.shop_table td.actions { padding: 1rem; }
.woocommerce table.shop_table td.actions .coupon { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; float: none; margin-bottom: 0.75rem; }
.woocommerce table.shop_table td.actions .coupon .input-text { width: auto; flex: 1; min-width: 160px; }
.woocommerce table.shop_table td.actions > .button { float: right; }
@media (max-width: 767px) {
  .woocommerce table.shop_table_responsive thead { display: none; }
  .woocommerce table.shop_table_responsive tr { display: block; padding: 0.5rem 0; border-top: 1px solid var(--as-line); }
  .woocommerce table.shop_table_responsive tr:first-child { border-top: 0; }
  .woocommerce table.shop_table_responsive td { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.4rem 1rem; border-top: 0; text-align: right; }
  .woocommerce table.shop_table_responsive td::before { content: attr(data-title); font-size: 0.8rem; color: var(--as-muted); font-weight: 600; text-align: left; }
  .woocommerce table.shop_table_responsive td.product-remove, .woocommerce table.shop_table_responsive td.product-thumbnail, .woocommerce table.shop_table_responsive td.actions { justify-content: flex-start; }
  .woocommerce table.shop_table_responsive td.product-remove::before, .woocommerce table.shop_table_responsive td.product-thumbnail::before, .woocommerce table.shop_table_responsive td.actions::before { content: none; }
  .woocommerce table.shop_table_responsive td.actions { display: block; }
  .woocommerce table.shop_table td.actions > .button { float: none; width: 100%; }

  /* Warenkorb kompakt: Bild links, Name, Einzelpreis, darunter Menge und Summe. ✕ oben rechts. */
  .woocommerce table.cart tr.woocommerce-cart-form__cart-item {
    position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr) auto;
    grid-template-areas: "thumb name name" "thumb price price" "thumb qty subtotal";
    gap: 0.35rem 0.75rem; align-items: center; padding: 0.85rem 1rem;
  }
  .woocommerce table.cart tr.woocommerce-cart-form__cart-item td { display: block; padding: 0; text-align: left; }
  .woocommerce table.cart tr.woocommerce-cart-form__cart-item td::before { content: none; }
  .woocommerce table.cart .woocommerce-cart-form__cart-item td.product-thumbnail { grid-area: thumb; align-self: start; }
  .woocommerce table.cart .woocommerce-cart-form__cart-item td.product-thumbnail img { display: block; width: 56px; padding: 3px; }
  .woocommerce table.cart .woocommerce-cart-form__cart-item td.product-name { grid-area: name; padding-right: 2.5rem; font-size: 0.92rem; line-height: 1.35; }
  .woocommerce table.cart .woocommerce-cart-form__cart-item td.product-name > a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .woocommerce table.cart .woocommerce-cart-form__cart-item td.product-name > :not(a) { margin: 0.15rem 0 0; font-size: 0.75rem; line-height: 1.4; color: var(--as-muted); }
  .woocommerce table.cart .woocommerce-cart-form__cart-item td.product-price { grid-area: price; font-size: 0.8rem; font-weight: 600; color: var(--as-muted); }
  .woocommerce table.cart tr.woocommerce-cart-form__cart-item td.product-price::before { content: "je "; font-weight: 400; }
  .woocommerce table.cart .woocommerce-cart-form__cart-item td.product-quantity { grid-area: qty; }
  .woocommerce table.cart .woocommerce-cart-form__cart-item td.product-quantity .qty { width: 4.5rem; min-height: 44px; font-size: 1rem; }
  .woocommerce table.cart .woocommerce-cart-form__cart-item td.product-subtotal { grid-area: subtotal; text-align: right; }
  .woocommerce table.cart .woocommerce-cart-form__cart-item td.product-remove { position: absolute; top: 0.4rem; right: 0.4rem; }
}

.as-cart__main { min-width: 0; }
@media (min-width: 1024px) {
  .woocommerce-cart .as-wc > .woocommerce:has(> .as-cart__main) { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 2rem; align-items: start; }
}
@media (min-width: 1280px) { .woocommerce-cart .as-wc > .woocommerce:has(> .as-cart__main) { grid-template-columns: minmax(0, 1fr) 400px; } }
.woocommerce .cart-collaterals { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce .cross-sells { float: none; width: auto; }
.woocommerce .cart_totals { padding: 1.25rem; background: var(--as-surface); border: 1px solid var(--as-line); border-radius: var(--radius-lg); }
.woocommerce .cart_totals h2 { font-size: 1.2rem; }
.woocommerce .cart_totals table.shop_table { border: 0; background: none; margin-bottom: 1rem; }
.woocommerce .cart_totals table.shop_table th, .woocommerce .cart_totals table.shop_table td { padding: 0.7rem 0; display: table-cell; text-align: left; }
.woocommerce .cart_totals table.shop_table td { text-align: right; }
.woocommerce .cart_totals table.shop_table tr:first-child th, .woocommerce .cart_totals table.shop_table tr:first-child td { border-top: 0; }
.woocommerce .cart_totals .order-total th, .woocommerce .cart_totals .order-total td { font-size: 1.15rem; font-weight: 800; }
.woocommerce .wc-proceed-to-checkout { padding: 0; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { display: flex; width: 100%; min-height: 54px; font-size: 1.02rem; margin: 0; }
.woocommerce-shipping-destination, .woocommerce-shipping-calculator { font-size: 0.82rem; color: var(--as-muted); }
@media (max-width: 767px) { .woocommerce .cart_totals table.shop_table tr { display: table-row; padding: 0; } .woocommerce .cart_totals table.shop_table td::before { content: none; } }

/* Abholstation als Kacheln: nur Gestaltung der echten Versand-Radios */
.woocommerce ul#shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; text-align: left; }
.woocommerce ul#shipping_method li {
  position: relative; display: flex; align-items: flex-start; gap: 0.6rem; margin: 0; padding: 0.75rem 0.85rem; text-indent: 0;
  border: 1px solid var(--as-line-strong); border-radius: var(--radius-sm); background: rgba(255, 255, 255, 0.02); transition: border-color var(--duration-micro) ease, background var(--duration-micro) ease;
}
.woocommerce ul#shipping_method li:has(input:checked) { border-color: var(--color-red); background: var(--color-red-subtle); }
.woocommerce ul#shipping_method li input { margin: 0.15rem 0 0; flex-shrink: 0; }
.woocommerce ul#shipping_method li label { margin: 0; font-size: 0.88rem; font-weight: 600; color: var(--color-white); cursor: pointer; line-height: 1.45; }
.woocommerce ul#shipping_method li label::after { content: ''; position: absolute; inset: 0; } /* ganze Kachel wählbar */
.woocommerce ul#shipping_method li .amount { color: var(--as-muted); font-weight: 400; }
.woocommerce .cart_totals .woocommerce-shipping-totals td, .woocommerce-checkout-review-order-table .woocommerce-shipping-totals td { text-align: left !important; }
.woocommerce .cart_totals .woocommerce-shipping-totals th, .woocommerce-checkout-review-order-table .woocommerce-shipping-totals th { vertical-align: top; }
.woocommerce .cart_totals table.shop_table tr.woocommerce-shipping-totals { display: block; }
.woocommerce .cart_totals table.shop_table tr.woocommerce-shipping-totals th, .woocommerce .cart_totals table.shop_table tr.woocommerce-shipping-totals td { display: block; width: 100%; }
.woocommerce .cart_totals table.shop_table tr.woocommerce-shipping-totals td { padding-top: 0; }
@media (max-width: 599px) {
  .woocommerce-checkout-review-order-table .woocommerce-shipping-totals { display: block; }
  .woocommerce-checkout-review-order-table .woocommerce-shipping-totals th, .woocommerce-checkout-review-order-table .woocommerce-shipping-totals td { display: block; width: 100%; }
}

/* Kasse */
.woocommerce form.checkout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
/* checkout.js setzt Meldungen vorn ins Formular. Sie stehen oben in voller Breite. */
.woocommerce form.checkout > .woocommerce-NoticeGroup, .woocommerce form.checkout > .woocommerce-error,
.woocommerce form.checkout > .woocommerce-message, .woocommerce form.checkout > .woocommerce-info { grid-column: 1 / -1; }
@media (min-width: 1024px) {
  .woocommerce form.checkout { grid-template-columns: minmax(0, 1fr) 460px; gap: 0 2.5rem; align-items: start; }
  /* Ohne feste Startzeile: Mit fester Zeile 1 landete eine Meldung in Zeile 4 und schob die Bestellübersicht unter die Kundendaten. */
  .woocommerce form.checkout #customer_details { grid-column: 1; grid-row: span 3; }
  .woocommerce form.checkout #order_review_heading, .woocommerce form.checkout #order_review { grid-column: 2; }
  .woocommerce form.checkout #order_review { position: sticky; top: calc(var(--as-header-h) + 4rem); }
}
.woocommerce .col2-set { display: grid; gap: 1.5rem; }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2, .woocommerce-page .col2-set .col-1, .woocommerce-page .col2-set .col-2 { float: none; width: auto; max-width: none; }
.woocommerce .col2-set::before, .woocommerce .col2-set::after { content: none; }
.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields, .woocommerce-account-fields { padding: 1.25rem; background: var(--as-surface); border: 1px solid var(--as-line); border-radius: var(--radius-lg); }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3, #order_review_heading { font-size: 1.15rem; margin: 0 0 1rem; }
.woocommerce-billing-fields__field-wrapper::after, .woocommerce-shipping-fields__field-wrapper::after { content: ''; display: block; clear: both; }
.woocommerce-shipping-fields:not(:has(*)) { display: none; }
.woocommerce-account-fields { margin-top: 1rem; }
.woocommerce-account-fields p.create-account { margin: 0; }
.woocommerce #place_order { width: 100%; min-height: 56px; font-size: 1.05rem; float: none; }
#order_review { padding: 1.25rem; background: var(--as-surface); border: 1px solid var(--as-line); border-radius: var(--radius-lg); }
#order_review table.shop_table { border: 0; background: none; }
#order_review table.shop_table th, #order_review table.shop_table td { padding: 0.65rem 0; font-size: 0.9rem; }
#order_review table.shop_table td:last-child, #order_review table.shop_table th:last-child { text-align: right; }
#order_review .order-total th, #order_review .order-total td { font-size: 1.1rem; font-weight: 800; }
.woocommerce-checkout #payment { background: none; border-radius: 0; margin-top: 1rem; }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0 0 1rem; padding: 0; border: 0; display: grid; gap: 0.5rem; }
.woocommerce-checkout #payment ul.payment_methods::before, .woocommerce-checkout #payment ul.payment_methods::after { content: none; }
.woocommerce-checkout #payment ul.payment_methods li { position: relative; margin: 0; padding: 0.8rem 0.9rem; border: 1px solid var(--as-line-strong); border-radius: var(--radius-sm); line-height: 1.45; }
.woocommerce-checkout #payment ul.payment_methods li:has(> input:checked) { border-color: var(--color-red); }
.woocommerce-checkout #payment ul.payment_methods li > label { display: inline; font-weight: 700; color: var(--color-white); margin-left: 0.35rem; cursor: pointer; }
.woocommerce-checkout #payment ul.payment_methods li img { max-height: 22px; width: auto; display: inline-block; vertical-align: middle; margin-left: 0.4rem; }
.woocommerce-checkout #payment div.payment_box { margin: 0.6rem 0 0; padding: 0.75rem 0.85rem; background: rgba(255, 255, 255, 0.04); border-radius: var(--radius-sm); font-size: 0.85rem; color: var(--as-text-2); }
.woocommerce-checkout #payment div.payment_box::before { content: none; }
.woocommerce-checkout #payment div.form-row { padding: 0; }
.woocommerce #payment #place_order, .woocommerce-page #payment #place_order { float: none; width: 100%; min-height: 56px; font-size: 1.05rem; margin-top: 0.5rem; }
.woocommerce-terms-and-conditions-wrapper, .wc-gzd-checkbox-placeholder, .woocommerce-checkout .legal, .checkout-legal-info { font-size: 0.85rem; color: var(--as-text-2); }
.woocommerce form .form-row.checkbox-legal label, .woocommerce form .form-row.wc-gzd-checkbox label, .woocommerce-form__label-for-checkbox { display: flex; gap: 0.6rem; align-items: flex-start; font-weight: 400; font-size: 0.85rem; color: var(--as-text-2); }
.woocommerce-form__label-for-checkbox input, .woocommerce form .form-row.checkbox-legal input { margin-top: 0.15rem; flex-shrink: 0; }
/* Die Kontonavigation hat eigene Links (Abschnitt Konto), sonst wären sie hier rot unterstrichen. */
.as-wc a:not(.button):not(.remove):not(.as-chip):not(.woocommerce-MyAccount-navigation a), .woocommerce-cart .cart_totals a:not(.button) { color: var(--color-white); text-decoration: underline; text-decoration-color: var(--color-red); text-underline-offset: 3px; }
.as-wc table.shop_table td.product-name a { text-decoration: none; }
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register { padding: 1.25rem; margin: 0 0 1.5rem; border: 1px solid var(--as-line); border-radius: var(--radius-lg); background: var(--as-surface); text-align: left; }
.woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 1rem; }

/* Bestellung eingegangen (checkout/thankyou.php) und Bestelldetails, auch in Mein Konto → Bestellung ansehen.
   Nur vorhandenes WooCommerce-Markup, keine Overrides. */
.woocommerce-order { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.woocommerce-order > * { grid-column: 1 / -1; margin: 0; }
@media (min-width: 1024px) {
  .woocommerce-order { grid-template-columns: minmax(0, 1fr) 360px; gap: 1.5rem 2rem; align-items: start; }
  .woocommerce-order > .woocommerce-order-details { grid-column: 1; }
  .woocommerce-order > .woocommerce-customer-details { grid-column: 2; }
}

/* Kopfkarte: Dank mit Haken, darunter die Eckdaten als Kacheln in derselben Karte */
.woocommerce-order > .woocommerce-thankyou-order-received {
  display: flex; flex-wrap: nowrap; align-items: center; gap: 1rem; padding: 1.5rem 1.25rem 1.25rem;
  font-size: clamp(1.15rem, 0.95rem + 1vw, 1.5rem); font-weight: 800; line-height: 1.3; letter-spacing: -0.01em;
  background: radial-gradient(120% 160% at 0% 0%, var(--color-red-subtle), transparent 60%), var(--as-surface);
  border: 1px solid var(--as-line); border-radius: var(--radius-lg);
}
.woocommerce-order > .woocommerce-thankyou-order-received::before {
  content: ''; flex: 0 0 48px; height: 48px; border-radius: 50%; box-shadow: var(--shadow-glow-sm);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 26px no-repeat, linear-gradient(135deg, #fe0000 0%, #c80000 100%);
}
.woocommerce-order > .woocommerce-thankyou-order-received:has(+ .woocommerce-order-overview) { border-bottom: 0; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.woocommerce-order > .woocommerce-thankyou-order-received + .woocommerce-order-overview {
  margin-top: -1.5rem; padding: 0 1.25rem 1.25rem; background: var(--as-surface);
  border: 1px solid var(--as-line); border-top: 0; border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

/* Kachelraster: Eckdaten und Bankverbindung */
ul.woocommerce-order-overview, ul.wc-bacs-bank-details { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
@media (min-width: 768px) { ul.woocommerce-order-overview, ul.wc-bacs-bank-details { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } }
ul.woocommerce-order-overview li, ul.wc-bacs-bank-details li {
  min-width: 0; margin: 0; padding: 0.75rem 0.9rem; border: 1px solid var(--as-line-strong); border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.02); font-size: 0.78rem; line-height: 1.4; color: var(--as-muted);
}
ul.woocommerce-order-overview li strong, ul.wc-bacs-bank-details li strong {
  display: block; margin-top: 0.2rem; font-size: 1rem; font-weight: 800; color: var(--color-white); font-variant-numeric: tabular-nums; overflow-wrap: anywhere;
}
ul.wc-bacs-bank-details li.iban strong, ul.wc-bacs-bank-details li.bic strong { user-select: all; }
@media (max-width: 599px) {
  ul.wc-bacs-bank-details li.iban, ul.woocommerce-order-overview li.email, ul.woocommerce-order-overview li.method { grid-column: 1 / -1; }
}

/* Überweisung: Hinweistext der Zahlungsart und Bankverbindung */
.woocommerce-order > p:not([class]) {
  padding: 1rem 1.25rem; background: var(--as-surface); border: 1px solid var(--as-line); border-left: 3px solid var(--color-red);
  border-radius: var(--radius-md); font-size: 0.92rem; line-height: 1.55; color: var(--as-text-2);
}
.woocommerce-order > p:not([class]) + p:not([class]) { margin-top: -1rem; }
.woocommerce-bacs-bank-details { padding: 1.25rem; background: var(--as-surface); border: 1px solid var(--as-line); border-radius: var(--radius-lg); }
.woocommerce-bacs-bank-details h2 { font-size: 1.15rem; margin: 0 0 0.75rem; }
.woocommerce-bacs-bank-details h3 { font-size: 0.95rem; margin: 1rem 0 0.6rem; color: var(--as-text-2); }
.woocommerce-bacs-bank-details h2 + h3 { margin-top: 0; }

/* Fehlgeschlagene Zahlung: Hinweis-Optik bleibt, Buttons nebeneinander */
.woocommerce-order > .woocommerce-thankyou-order-failed-actions { gap: 0.5rem; border-left-color: var(--as-error); }

/* Bestelldetails und Rechnungsadresse als Karten */
.woocommerce-order-details, .woocommerce-customer-details { padding: 1.25rem; background: var(--as-surface); border: 1px solid var(--as-line); border-radius: var(--radius-lg); }
.woocommerce-order-details > h2, .woocommerce-customer-details h2 { font-size: 1.15rem; margin: 0 0 0.75rem; }
.woocommerce-account .woocommerce-order-details, .woocommerce-account .woocommerce-customer-details { margin-bottom: 1.5rem; }
.woocommerce .woocommerce-order-details table.shop_table { border: 0; background: none; margin: 0; border-radius: 0; }
.woocommerce .woocommerce-order-details table.shop_table th, .woocommerce .woocommerce-order-details table.shop_table td { padding: 0.7rem 0; font-size: 0.9rem; }
.woocommerce .woocommerce-order-details table.shop_table thead th { border-top: 0; padding-top: 0; }
.woocommerce .woocommerce-order-details table.shop_table td.product-name a { color: var(--color-white); font-weight: 700; }
.woocommerce-order-details .product-quantity { font-weight: 600; color: var(--as-muted); white-space: nowrap; }
.woocommerce-order-details td.product-name > :not(a):not(strong), .woocommerce-order-details td.product-name .wc-item-meta { margin: 0.2rem 0 0; font-size: 0.78rem; color: var(--as-muted); }
.woocommerce-order-details .wc-item-meta { list-style: none; padding: 0; }
.woocommerce-order-details .wc-item-meta li, .woocommerce-order-details .wc-item-meta p { display: inline; margin: 0; }
.woocommerce .woocommerce-order-details table.shop_table th:last-child, .woocommerce .woocommerce-order-details table.shop_table td:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.woocommerce .woocommerce-order-details table.shop_table tfoot th { font-weight: 600; color: var(--as-text-2); }
.woocommerce-order-details tfoot small, .woocommerce-order-details .includes_tax { display: block; font-size: 0.75rem; font-weight: 400; color: var(--as-muted); }
.woocommerce-order-details .order-again { margin: 1rem 0 0; }
.woocommerce-customer-details address { margin: 0; padding: 0; border: 0; font-style: normal; line-height: 1.6; color: var(--as-text-2); }
.woocommerce-customer-details address p { margin: 0; }
.woocommerce-customer-details .woocommerce-customer-details--phone, .woocommerce-customer-details .woocommerce-customer-details--email { overflow-wrap: anywhere; }
.woocommerce-customer-details address p.woocommerce-customer-details--phone { margin-top: 0.6rem; }

/* Konto */
/* Spezifischer als .as-page--wc .as-wc > .woocommerce, sonst kein Grid und kein Abstand. */
.woocommerce-account .as-page--wc .as-wc > .woocommerce,
.woocommerce-account .woocommerce { display: grid; gap: 3rem; }
@media (min-width: 900px) {
	.woocommerce-account.logged-in .as-page--wc .as-wc > .woocommerce,
	.woocommerce-account.logged-in .woocommerce { grid-template-columns: 240px minmax(0, 1fr); gap: 2.5rem; align-items: start; }
}
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0.5rem; border: 1px solid var(--as-line); border-radius: var(--radius-md); background: var(--as-surface); }
.woocommerce-MyAccount-navigation a { display: block; padding: 0.7rem 0.85rem; border-radius: var(--radius-sm); color: var(--as-text-2); text-decoration: none; font-weight: 600; font-size: 0.92rem; }
.woocommerce-MyAccount-navigation a:hover { background: rgba(255, 255, 255, 0.05); color: var(--color-white); }
.woocommerce-MyAccount-navigation .is-active a { color: var(--color-white); background: var(--color-red-subtle); box-shadow: inset 2px 0 0 var(--color-red); }
.woocommerce-MyAccount-content a:not(.button) { color: var(--color-white); text-decoration: underline; text-decoration-color: var(--color-red); text-underline-offset: 3px; }
.woocommerce-EditAccountForm fieldset { margin-bottom: 1.75rem; }
.woocommerce-account .u-columns.col2-set { display: grid; gap: 1.5rem; }
@media (min-width: 900px) { .woocommerce-account .u-columns.col2-set { grid-template-columns: 1fr 1fr; } }
.woocommerce-account .u-columns h2 { font-size: 1.3rem; }
.woocommerce form .woocommerce-form-login__rememberme { display: inline-flex; gap: 0.5rem; align-items: center; margin-right: 1rem; color: var(--as-text-2); font-size: 0.88rem; }
.woocommerce-LostPassword a { font-size: 0.88rem; color: var(--as-text-2); }
.woocommerce-privacy-policy-text { font-size: 0.82rem; color: var(--as-muted); }
.woocommerce-orders-table__cell-order-actions .button { min-height: 36px; padding: 0.4rem 0.8rem; font-size: 0.8rem; margin: 0.15rem; }

/* Konto: Erlaubnis (F3), Plugin „Ahlers Shop Inhalte" */
.as-permit { display: grid; gap: 1.25rem; max-width: 760px; }
.as-permit__intro { margin: 0; color: var(--as-text-2); line-height: 1.65; }
.as-permit__status { padding: 1rem 1.25rem; background: var(--as-surface); border: 1px solid var(--as-line); border-left: 3px solid var(--as-text-2); border-radius: var(--radius-md); font-size: 0.92rem; }
.as-permit__status p { margin: 0 0 0.5rem; color: var(--as-text-2); }
.as-permit__status p:last-child { margin-bottom: 0; }
.as-permit__status--ok { border-left-color: var(--as-ok); }
.as-permit__status--wait { border-left-color: var(--as-text-2); }
.as-permit__status--warn { border-left-color: var(--as-error); }
.as-permit__title { display: flex; align-items: center; gap: 0.5rem; color: var(--color-white) !important; font-weight: 800; font-size: 1rem; }
.as-permit__title .as-ico { flex: none; width: 20px; height: 20px; }
.as-permit__status--ok .as-permit__title .as-ico { color: var(--as-ok); }
.as-permit__status--warn .as-permit__title .as-ico { color: var(--as-error); }
.as-permit__reason { padding: 0.6rem 0.8rem; background: rgba(255, 255, 255, 0.04); border-radius: var(--radius-sm); color: var(--color-white) !important; }
.as-permit__files { margin: 0.25rem 0 0.75rem; padding: 0; list-style: none; display: grid; gap: 0.35rem; font-size: 0.88rem; overflow-wrap: anywhere; }
.as-permit__files span { color: var(--as-muted); }
.as-permit__withdraw { margin: 0; }
.as-permit__withdraw .button { min-height: 38px; padding: 0.5rem 1rem; font-size: 0.82rem; }
.as-permit__form { padding: 1.25rem; border: 1px solid var(--as-line); border-radius: var(--radius-lg); background: var(--as-surface); }
.as-permit__heading { margin: 0 0 0.4rem; font-size: 1.2rem; }
.as-permit__lead { margin: 0 0 1.25rem; color: var(--as-muted); font-size: 0.88rem; }
.as-permit__row { display: flow-root; }
.as-permit__hint { display: block; margin-top: 0.35rem; color: var(--as-muted); font-size: 0.82rem; }
.as-permit__file input[type="file"] {
  display: block; width: 100%; padding: 0.55rem; color: var(--as-text-2); font: 400 0.9rem/1.4 var(--font-primary);
  background: rgba(255, 255, 255, 0.03); border: 1px dashed var(--as-line-strong); border-radius: var(--radius-sm); cursor: pointer;
}
.as-permit__file input[type="file"]:hover { border-color: rgba(255, 255, 255, 0.32); }
.as-permit__file input[type="file"]:focus-visible { outline: none; border-color: var(--color-red); box-shadow: 0 0 0 3px rgba(254, 0, 0, 0.12); }
.as-permit__file input[type="file"]::file-selector-button {
  margin-right: 0.85rem; min-height: 38px; padding: 0.45rem 1rem; border-radius: var(--radius-sm); cursor: pointer;
  background: rgba(255, 255, 255, 0.08); color: var(--color-white); border: 1px solid rgba(255, 255, 255, 0.18); font: 700 0.85rem/1.2 var(--font-primary);
}
.as-permit__file input[type="file"]:hover::file-selector-button { background: rgba(255, 255, 255, 0.12); }
.as-permit__zone { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.85rem; padding: 1rem; border: 1px dashed var(--as-line-strong); border-radius: var(--radius-sm); background: rgba(255, 255, 255, 0.03); transition: border-color 0.15s, background 0.15s; }
.as-permit__file.is-drop input[type="file"] { width: auto; max-width: 100%; padding: 0; background: none; border: 0; }
.as-permit__drop { color: var(--as-muted); font-size: 0.88rem; }
.as-permit__picked { flex-basis: 100%; color: var(--color-white); font-size: 0.88rem; overflow-wrap: anywhere; }
.as-permit__picked:empty { display: none; }
.as-permit__file.is-dragover .as-permit__zone { border-color: var(--color-red); background: var(--color-red-subtle); }
.as-permit__file.has-file .as-permit__zone { border-style: solid; }
@media (hover: none) { .as-permit__drop { display: none; } }
.as-permit__check label.woocommerce-form__label-for-checkbox { display: flex; align-items: flex-start; gap: 0.6rem; font-weight: 400; color: var(--as-text-2); }
.as-permit__check input[type="checkbox"] { flex: none; margin-top: 0.15rem; }
.as-permit__privacy { margin: 0.25rem 0 1rem; color: var(--as-muted); font-size: 0.82rem; }
.as-permit__privacy a { color: var(--as-text-2); }
.as-permit .as-permit__submit { margin: 1.25rem 0 0; }
@media (max-width: 599px) { .as-permit__submit .button { width: 100%; } }

/* ── 13. Inhaltsseiten ──────────────────────────────────── */
.as-prose { color: var(--as-text-2); font-size: 1rem; line-height: 1.75; }
.as-prose > * { max-width: 72ch; }
.as-prose h2, .as-prose h3, .as-prose h4 { color: var(--color-white); margin: 2rem 0 0.75rem; }
.as-prose h2 { font-size: clamp(1.3rem, 2.4vw, 1.6rem); }
.as-prose h3 { font-size: 1.15rem; }
.as-prose h4 { font-size: 1rem; }
.as-prose > :first-child { margin-top: 0; }
.as-prose a { color: var(--color-white); text-decoration: underline; text-decoration-color: var(--color-red); text-underline-offset: 3px; }
.as-prose ul, .as-prose ol { padding-left: 1.25rem; margin: 0 0 1rem; }
.as-prose li { margin-bottom: 0.35rem; }
.as-prose strong { color: var(--color-white); }
.as-prose table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: 0.92rem; }
.as-prose th, .as-prose td { padding: 0.6rem; border: 1px solid var(--as-line); text-align: left; }
.as-prose hr { border: 0; border-top: 1px solid var(--as-line); margin: 2rem 0; }
.as-psection .as-prose > *, .as-psection__body.as-prose > * { max-width: none; }

.as-empty { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; padding: 2rem; border: 1px dashed var(--as-line-strong); border-radius: var(--radius-lg); color: var(--as-text-2); max-width: 640px; }
.as-empty .as-search { max-width: 480px; margin-bottom: 0.5rem; }
.as-postlist { list-style: none; margin: 0; padding: 0; }
.as-postlist__item { padding: 1.25rem 0; border-bottom: 1px solid var(--as-line); }
.as-postlist__title { font-size: 1.2rem; margin: 0 0 0.35rem; }
.as-postlist__title a { text-decoration: none; }
.as-postlist__excerpt { margin: 0; color: var(--as-muted); }

/* ── 14. Startseite ─────────────────────────────────────── */
.as-hero { position: relative; overflow: hidden; isolation: isolate; padding: 2.5rem 0 2rem; border-bottom: 1px solid var(--as-line); }
.as-hero__bg { position: absolute; inset: 0; z-index: -2; }
.as-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; opacity: 0.55; }
.as-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14, 14, 14, 0.6) 0%, rgba(14, 14, 14, 0.75) 55%, var(--color-black) 100%), radial-gradient(ellipse 80% 70% at 20% 30%, rgba(30, 30, 30, 0.6), transparent 70%); }
.as-hero__grid { display: grid; gap: 2rem; align-items: center; }
.as-hero__season { margin: 0 0 0.75rem; font-weight: 700; font-size: 0.95rem; color: var(--color-red); text-shadow: 0 0 18px rgba(254, 0, 0, 0.45); }
.as-hero__title { font-size: clamp(1.95rem, 8.5vw, 4.25rem); hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; line-height: 1.02; letter-spacing: -0.04em; margin: 0 0 1rem; max-width: 15ch; text-wrap: balance; }
@media (max-width: 599px) { .as-hero .ap-btn-group > a, .as-event .ap-btn-group > a { flex: 1 1 100%; } }
.as-hero__text { font-size: 1.05rem; line-height: 1.7; color: var(--as-text-2); max-width: 46ch; margin-bottom: 1.5rem; }
@media (min-width: 1024px) {
  .as-hero { padding: 4.5rem 0 4rem; }
  .as-hero__grid { grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr); gap: 3.5rem; }
  .as-hero::before { background: linear-gradient(90deg, rgba(14, 14, 14, 0.92) 0%, rgba(14, 14, 14, 0.7) 50%, rgba(14, 14, 14, 0.35) 100%), linear-gradient(180deg, transparent 70%, var(--color-black) 100%); }
}

/* Abholschein im Hero: das eine laute Element der Seite */
.as-ticket--hero { background: rgba(10, 10, 10, 0.86); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-color: rgba(255, 255, 255, 0.16); box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55); transform: rotate(-1.2deg); }
.as-ticket--hero .as-ticket__main { padding: 1.5rem 1.5rem 1.25rem; }
.as-ticket__kicker { display: flex; align-items: center; justify-content: space-between; margin: 0 0 1rem; font-size: 0.95rem; font-weight: 800; color: var(--color-white); }
.as-ticket__kicker::after { content: ''; width: 38px; height: 10px; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.55) 0 2px, transparent 2px 4px, rgba(255, 255, 255, 0.55) 4px 5px, transparent 5px 8px); }
.as-ticket__stations { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.85rem; }
.as-ticket__stations li { display: flex; gap: 0.75rem; align-items: flex-start; }
.as-ticket__stations li .as-ico { margin-top: 0.1rem; }
.as-ticket__stations strong { display: block; font-size: 1.05rem; font-weight: 800; line-height: 1.3; }
.as-ticket__stations small { display: block; font-size: 0.8rem; color: var(--as-muted); }
.as-ticket__foot { margin: 1.1rem 0 0; font-size: 0.8rem; color: var(--as-muted); }
.as-ticket--hero .as-ticket__stub { padding: 1.1rem 1.5rem 1.25rem; gap: 0.75rem 1.75rem; }
.as-ticket--hero .as-ticket__stub strong { font-size: 1.05rem; }
.as-ticket--hero .as-ticket__stub::before, .as-ticket--hero .as-ticket__stub::after { background: #1a1a1a; }
@media (prefers-reduced-motion: no-preference) {
  .as-ticket--hero { animation: as-ticket-in 900ms var(--ease-out-expo) 150ms both; }
  @keyframes as-ticket-in { from { opacity: 0; transform: translateY(24px) rotate(2deg); } to { opacity: 1; transform: rotate(-1.2deg); } }
}
@media (max-width: 1023px) { .as-ticket--hero { transform: none; animation: none; } }

/* Vorteile */
.as-benefits { padding: 1.75rem 0; background: var(--color-dark); border-bottom: 1px solid var(--as-line); }
.as-benefits__grid { display: grid; gap: 1.25rem; }
@media (min-width: 768px) {
  .as-benefits__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
  .as-benefits__grid--1 { grid-template-columns: minmax(0, 1fr); }
  .as-benefits__grid--2, .as-benefits__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1200px) { .as-benefits__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; } }
.as-benefit { display: flex; gap: 1rem; align-items: flex-start; }
.as-benefit__title { font-size: 1rem; margin: 0 0 0.25rem; letter-spacing: 0; }
.as-benefit__text { margin: 0; font-size: 0.88rem; color: var(--as-muted); line-height: 1.6; }

/* Abschnitte */
.as-section { padding: 3rem 0; }
.as-section--dark { background: var(--color-dark); }
.as-section--tight { padding: 2rem 0 3rem; }
@media (min-width: 1024px) { .as-section { padding: 4.5rem 0; } }
.as-sechead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 1.5rem; margin-bottom: 1.5rem; }
.as-sechead__title { font-size: clamp(1.6rem, 3.5vw, 2.4rem); line-height: 1.1; letter-spacing: -0.025em; margin: 0; }
.as-sechead__link { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; font-size: 0.92rem; color: var(--color-white); text-decoration: underline; text-decoration-color: var(--color-red); text-underline-offset: 4px; }
.as-lead { font-size: 1.05rem; color: var(--as-text-2); max-width: 52ch; }

.as-cattiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; }
@media (min-width: 600px) { .as-cattiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .as-cattiles { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.85rem; } }
@media (min-width: 1280px) { .as-cattiles { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.as-cattile {
  display: flex; align-items: center; gap: 0.85rem; min-height: 76px; padding: 0.75rem 0.9rem;
  background: var(--as-surface); border: 1px solid var(--as-line); border-radius: var(--radius-md);
  color: var(--color-white); text-decoration: none; font-weight: 700; font-size: 0.95rem; line-height: 1.25;
  transition: border-color var(--duration-base) ease, background var(--duration-base) ease;
}
.as-cattile .as-iconbox { width: 48px; height: 48px; }
.as-cattile:hover { border-color: var(--color-border-red); background: rgba(254, 0, 0, 0.04); }
.as-cattile--sale .as-iconbox { background: var(--color-red); border-color: var(--color-red); }
.as-cattile--sale .as-iconbox .as-ico [fill="#fe0000"] { fill: #fff; }
.as-cattile__name { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; min-width: 0; }

.as-brandlist { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.as-chip--brand { min-height: 44px; padding: 0 1.1rem; font-size: 0.92rem; font-weight: 700; border-radius: var(--radius-sm); }

.as-pickup__grid { display: grid; gap: 2rem; }
@media (min-width: 1024px) { .as-pickup__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4rem; align-items: start; } }
.as-checklist { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: 0.6rem; }
.as-checklist li { display: flex; gap: 0.6rem; align-items: flex-start; color: var(--as-text-2); }
.as-checklist .as-ico { color: var(--color-red); width: 20px; height: 20px; margin-top: 0.2rem; }
.as-pickup__cards { display: grid; gap: 0.75rem; }
.as-station { display: flex; gap: 1rem; align-items: center; padding: 1rem 1.1rem; background: var(--color-black); border: 1px solid var(--as-line); border-radius: var(--radius-md); }
.as-station__name { margin: 0; font-size: 1.05rem; letter-spacing: 0; }
.as-station__note { margin: 0.15rem 0 0; font-size: 0.85rem; color: var(--as-muted); }
.as-station { align-items: flex-start; }
.as-station__addr { margin: 0.35rem 0 0; font-size: 0.9rem; color: var(--as-text-2); }
.as-station__hours { margin: 0.25rem 0 0; font-size: 0.85rem; color: var(--as-muted); line-height: 1.5; }
.as-station__map { margin: 0.4rem 0 0; font-size: 0.85rem; }
.as-station__map a { display: inline-flex; align-items: center; min-height: 32px; color: var(--color-white); font-weight: 700; text-decoration: underline; text-decoration-color: var(--color-red); text-underline-offset: 3px; }
.as-dates { padding: 1.1rem 1.1rem 0.5rem; border: 2px dashed rgba(255, 255, 255, 0.14); border-radius: var(--radius-md); }
.as-dates__title { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 0.6rem; font-weight: 800; }
.as-dates__list { margin: 0; }
.as-dates__list > div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.6rem 0; border-top: 1px solid var(--as-line); font-variant-numeric: tabular-nums; }
.as-dates__list dt { font-weight: 700; }
.as-dates__list dd { margin: 0; color: var(--as-muted); }

.as-event { position: relative; isolation: isolate; overflow: hidden; padding: 4.5rem 0; text-align: left; }
.as-event__bg { position: absolute; inset: 0; z-index: -2; }
.as-event__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
.as-event::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(14, 14, 14, 0.94) 0%, rgba(14, 14, 14, 0.75) 55%, rgba(14, 14, 14, 0.35) 100%); }
.as-event__title { font-size: clamp(1.8rem, 4vw, 2.8rem); letter-spacing: -0.03em; max-width: 18ch; }
.as-event__text { color: var(--as-text-2); max-width: 46ch; font-size: 1.05rem; margin-bottom: 1.5rem; }
@media (min-width: 1024px) { .as-event { padding: 6rem 0; } }

/* ── 15. Vergleich und Vergleichsleiste ─────────────────── */
.as-compare { contain: paint; overscroll-behavior-x: contain; overflow-x: auto; border: 1px solid var(--as-line); border-radius: var(--radius-lg); background: var(--as-surface); }
.as-compare__table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 0.9rem; }
.as-compare__table th, .as-compare__table td { padding: 0.85rem 1rem; border-top: 1px solid var(--as-line); text-align: left; vertical-align: top; }
.as-compare__table thead th, .as-compare__table thead td { border-top: 0; }
.as-compare__table tbody th { color: var(--as-muted); font-weight: 600; width: 160px; white-space: nowrap; }
.as-compare__table td { font-weight: 700; font-variant-numeric: tabular-nums; }
.as-compare__img { display: block; width: 120px; padding: 6px; background: var(--as-plate); border-radius: var(--radius-sm); margin-bottom: 0.6rem; }
.as-compare__name { display: block; color: var(--color-white); font-weight: 800; text-decoration: none; margin-bottom: 0.35rem; }
.as-compare__remove { background: none; border: 0; padding: 0.25rem 0; color: var(--as-muted); font-size: 0.8rem; text-decoration: underline; cursor: pointer; }
.as-compare__remove:hover { color: var(--color-white); }
.as-compare .price { font-size: 1rem; }
@media (max-width: 767px) {
  .as-compare__table { min-width: 0; width: max-content; font-size: 0.85rem; }
  .as-compare__table th, .as-compare__table td { padding: 0.7rem 0.75rem; min-width: 132px; max-width: 160px; }
  .as-compare__table tbody th, .as-compare__table thead td:first-child { position: sticky; left: 0; z-index: 1; min-width: 92px; max-width: 92px; width: 92px; white-space: normal; background: #141414; box-shadow: 1px 0 0 var(--as-line); }
  .as-compare__img { width: 96px; }
  .as-compare .button { min-height: 44px; padding: 0.5rem 0.6rem; font-size: 0.8rem; }
}
.as-compare__remove { min-height: 44px; }

.as-comparebar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: rgba(12, 12, 12, 0.96); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-top: 1px solid rgba(254, 0, 0, 0.25); padding-bottom: var(--safe-bottom); }
.as-comparebar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 64px; }
.as-comparebar__text { display: flex; align-items: center; gap: 0.6rem; margin: 0; font-weight: 700; font-size: 0.92rem; }
.as-comparebar__actions { display: flex; align-items: center; gap: 0.75rem; }
.as-comparebar__clear { background: none; border: 0; color: var(--as-text-2); font-size: 0.85rem; text-decoration: underline; cursor: pointer; min-height: 44px; }
.as-comparebar .ap-btn-primary { padding: 0.6rem 1.2rem; }
body.as-has-comparebar { padding-bottom: 72px; }
/* Fokus per Tab und scrollIntoView halten Abstand zur Leiste, nichts verschwindet darunter. */
html:has(> body.as-has-comparebar) { scroll-padding-bottom: 88px; }
@media (min-width: 768px) {
	/* Breit: kompakte Karte rechts unten statt einer Fläche über die volle Breite. */
	.as-comparebar { left: auto; right: var(--as-gutter); bottom: calc(var(--as-gutter) + var(--safe-bottom)); padding-bottom: 0; border: 1px solid rgba(254, 0, 0, 0.25); border-radius: var(--radius-md); box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5); }
	.as-comparebar__inner { width: auto; max-width: none; margin: 0; min-height: 56px; padding: 0.35rem 0.5rem 0.35rem 1rem; gap: 1.25rem; }
	body.as-has-comparebar { padding-bottom: 96px; }
	html:has(> body.as-has-comparebar) { scroll-padding-bottom: 104px; }
}

/* ── 16. Fußzeile ───────────────────────────────────────── */
.as-footer { position: relative; padding: 3rem 0 1.5rem; background: var(--color-black); border-top: 1px solid var(--as-line); }
.as-footer::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 80px; background: linear-gradient(to bottom, rgba(254, 0, 0, 0.04), transparent); pointer-events: none; }
.as-footer__top { display: grid; gap: 2rem; padding-bottom: 2rem; border-bottom: 1px solid var(--as-line); margin-bottom: 1.5rem; }
@media (min-width: 768px) { .as-footer__top { grid-template-columns: 1fr 1fr 1fr; } .as-footer__brand { grid-column: 1 / -1; } }
@media (min-width: 1024px) { .as-footer__top { grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; } .as-footer__brand { grid-column: auto; } }
.as-footer__logo { display: inline-block; margin-bottom: 1rem; }
.as-footer__logo img { height: 64px; width: auto; }
.as-footer__text { font-size: 0.875rem; color: var(--as-muted); line-height: 1.8; max-width: 320px; }
.as-footer__contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.as-footer__contact li { display: flex; align-items: center; gap: 0.6rem; font-size: 0.85rem; color: var(--as-muted); }
.as-footer__contact .as-ico { width: 18px; height: 18px; color: var(--as-text-2); }
.as-footer__contact a { color: var(--as-text-2); text-decoration: none; }
.as-footer__contact a:hover { color: var(--color-white); text-decoration: underline; text-decoration-color: var(--color-red); }
.as-footer__title { margin: 0 0 1rem; font-size: 0.85rem; font-weight: 800; color: var(--color-white); }
.as-footer__nav { list-style: none; margin: 0; padding: 0; }
.as-footer__nav li { margin-bottom: 0.15rem; }
.as-footer__nav a { display: inline-flex; align-items: center; min-height: 40px; font-size: 0.875rem; color: var(--as-muted); text-decoration: none; transition: color var(--duration-micro) ease; }
.as-footer__nav a::before { content: ''; display: inline-block; width: 0; height: 1px; background: var(--color-red); transition: width var(--duration-base) var(--ease-out-expo), margin var(--duration-base) var(--ease-out-expo); }
.as-footer__nav a:hover { color: var(--color-white); }
.as-footer__nav a:hover::before { width: 12px; margin-right: 6px; }
.as-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1rem; font-size: 0.8rem; color: rgba(141, 145, 153, 0.75); }
.as-footer__bottom p { margin: 0; }
.as-footer__bottom a { color: inherit; }
.as-footer__bottom a:hover { color: var(--color-white); }

/* ── 17. Vermietung ─────────────────────────────────────── */
/* Mietbereich /mieten/, Mietbox auf der Produktseite, Anfrage, Konto. Markup aus dem Plugin (rent-front.php). */
.as-rent__layout { display: grid; gap: 1.5rem; align-items: start; }
.as-rent-filter { display: grid; gap: 1rem; padding: 1.1rem 1.25rem; background: var(--as-surface); border: 1px solid var(--as-line); border-radius: var(--radius-lg); }
.as-rent__results, .as-rent__aside { display: grid; gap: 1.25rem; min-width: 0; }
@media (min-width: 1024px) {
  .as-rent__layout { grid-template-columns: minmax(0, 1fr) 320px; }
  .as-rent-filter { grid-column: 1 / -1; }
  .as-rent__aside { position: sticky; top: calc(var(--as-header-h) + 1rem); }
}
.as-rent-period { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.75rem; }
.as-rent-period__field { display: grid; gap: 0.35rem; flex: 1 1 150px; min-width: 0; }
.as-rent-period__field label { font-size: 0.82rem; font-weight: 600; color: var(--as-text-2); }
.as-rent-period__go { min-height: 46px; padding: 0.7rem 1.2rem; }
.as-rent-period__go .as-ico { width: 20px; height: 20px; }
.as-rent-period__field input { width: 100%; min-width: 0; }
@media (max-width: 479px) {
  .as-rent-period__field { flex-basis: 100%; }
  .as-rent-period__go { width: 100%; justify-content: center; }
}
.as-rent-filter__error { margin: 0.5rem 0 0; color: var(--as-error); font-size: 0.88rem; font-weight: 600; }
.as-rent-cats { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.as-rent-cats__chip { display: inline-flex; align-items: center; min-height: 36px; padding: 0.35rem 0.9rem; border: 1px solid var(--as-line-strong); border-radius: 999px; color: var(--as-text-2); text-decoration: none; font-size: 0.85rem; font-weight: 600; }
.as-rent-cats__chip:hover { color: var(--color-white); border-color: rgba(255, 255, 255, 0.3); }
.as-rent-cats__chip.is-active { color: var(--color-white); border-color: var(--color-red); background: var(--color-red-subtle); }
.as-rent-search { display: flex; gap: 0.5rem; max-width: 520px; }
.as-rent-search input[type="search"] { flex: 1; min-width: 0; }
.as-rent-search .ap-btn-secondary, .as-rent-cartlink .ap-btn-primary { padding: 0.7rem 1.1rem; }
.as-rent-cartlink { margin: 0; }
.as-rent__range { margin: 0; color: var(--as-text-2); font-size: 0.9rem; font-weight: 600; }

.as-rent-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.85rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 768px) { .as-rent-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } }
.as-rent-card { position: relative; display: flex; flex-direction: column; min-width: 0; background: var(--as-plate); border: 1px solid var(--as-line); border-radius: var(--radius-md); overflow: hidden; transition: border-color var(--transition); }
.as-rent-card:hover { border-color: var(--as-line-strong); }
.as-rent-card__img { display: block; aspect-ratio: 1; background: #101010; }
.as-rent-card__img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.as-rent-card__body { display: flex; flex-direction: column; flex: 1; gap: 0.4rem; padding: 0.8rem 0.9rem 0.95rem; }
.as-rent-card__cat { margin: 0; color: var(--as-muted); font-size: 0.75rem; font-weight: 600; }
.as-rent-card__title { margin: 0; font-size: 0.95rem; font-weight: 700; line-height: 1.35; letter-spacing: 0; }
.as-rent-card__title a { color: var(--color-white); text-decoration: none; }
.as-rent-card__title a::before { content: ''; position: absolute; inset: 0; }
.as-rent-card__title a:hover { text-decoration: underline; text-decoration-color: var(--color-red); text-underline-offset: 3px; }
.as-rent-card__price { margin: 0; font-weight: 800; font-variant-numeric: tabular-nums; }
.as-rent-card__btn { position: relative; z-index: 1; margin-top: auto; width: 100%; min-height: 42px; font-size: 0.85rem; }

.as-rent-badge { display: inline-flex; align-self: flex-start; align-items: center; gap: 0.4rem; margin: 0; padding: 0.2rem 0.6rem; border-radius: 999px; font-size: 0.75rem; font-weight: 700; border: 1px solid var(--as-line-strong); color: var(--as-text-2); }
.as-rent-badge::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.as-rent-badge--verfuegbar { color: var(--as-ok); border-color: rgba(62, 207, 142, 0.35); }
.as-rent-badge--eingeschraenkt { color: var(--as-warn); border-color: rgba(242, 184, 75, 0.4); }
.as-rent-badge--nicht_verfuegbar, .as-rent-badge--inaktiv { color: var(--as-error); border-color: rgba(255, 107, 107, 0.4); }
.as-rent-badge--offen { color: var(--as-muted); }

.as-rent-access, .as-rent-steps, .as-rent-box, .as-rent-thanks { padding: 1.1rem 1.25rem; border: 1px solid var(--as-line); border-radius: var(--radius-md); background: var(--as-surface); font-size: 0.92rem; }
.as-rent-access { background: var(--as-surface); border-color: var(--color-red); }
.as-rent-access p { margin: 0 0 0.75rem; color: var(--as-text-2); }
.as-rent-access p:last-child { margin-bottom: 0; }
.as-rent-access__title, .as-rent-result__title { display: flex; align-items: center; gap: 0.5rem; color: var(--color-white) !important; font-weight: 800; }
.as-rent-access__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.as-rent-access__actions a { padding: 0.7rem 1.2rem; }
.as-rent-access__hint { font-size: 0.82rem; }
.as-rent-access__state { color: var(--color-white) !important; }
.as-rent-access__form > summary { list-style: none; display: inline-flex; padding: 0.7rem 1.2rem; }
.as-rent-access__form > summary::-webkit-details-marker { display: none; }
.as-rent-access__form[open] > summary { margin-bottom: 1rem; }
.as-rent-steps__title { margin: 0 0 0.6rem; font-weight: 800; }
.as-rent-steps ol { margin: 0; padding-left: 1.2rem; display: grid; gap: 0.45rem; color: var(--as-text-2); }
.as-rent-steps strong { color: var(--color-white); }

.as-rent-box { display: grid; gap: 0.9rem; margin: 0 0 1rem; }
.as-rent-box__title { margin: 0; font-weight: 800; }
.as-rent-box__price { margin: 0; font-size: 1.5rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.as-rent-box__price span { color: var(--as-muted); font-size: 0.85rem; font-weight: 600; }
.as-rent-box__rules, .as-rent-box__cart { margin: 0; color: var(--as-muted); font-size: 0.85rem; }
.as-rent-box__cart a { color: var(--color-white); text-decoration: underline; text-decoration-color: var(--color-red); text-underline-offset: 3px; }
.as-rent-box .as-rent-access { margin: 0; }

.as-rent-result { padding: 0.85rem 1rem; border: 1px solid var(--as-line); border-left: 3px solid var(--as-text-2); border-radius: var(--radius-sm); background: rgba(255, 255, 255, 0.03); }
.as-rent-result p { margin: 0 0 0.35rem; color: var(--as-text-2); }
.as-rent-result p:last-child { margin-bottom: 0; }
.as-rent-result ul { margin: 0.35rem 0 0.5rem; padding-left: 1.2rem; color: var(--as-text-2); }
.as-rent-result--verfuegbar { border-left-color: var(--as-ok); }
.as-rent-result--verfuegbar .as-ico { color: var(--as-ok); }
.as-rent-result--eingeschraenkt { border-left-color: var(--as-warn); }
.as-rent-result--eingeschraenkt .as-ico { color: var(--as-warn); }
.as-rent-result--nicht_verfuegbar, .as-rent-result--inaktiv { border-left-color: var(--as-error); }
.as-rent-result--nicht_verfuegbar .as-ico, .as-rent-result--inaktiv .as-ico { color: var(--as-error); }
.as-rent-result__days { font-size: 0.85rem; }

.as-rent-add { display: grid; gap: 0.6rem; }
.as-rent-add__row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.6rem; }
.as-rent-add__row label { flex-basis: 100%; font-size: 0.82rem; font-weight: 600; color: var(--as-text-2); }
.as-rent-add__row input[type="number"] { width: 96px; flex: none; }
.as-rent-add__row .ap-btn-primary { flex: 1 1 200px; justify-content: center; }
.as-rent-add__price { margin: 0; font-weight: 700; }
.as-rent-add__hint { margin: 0; color: var(--as-muted); font-size: 0.82rem; }

/* Kalender der Produktseite (main.js) */
.as-rent-cal { padding: 0.75rem; border: 1px solid var(--as-line); border-radius: var(--radius-sm); background: rgba(255, 255, 255, 0.02); }
.as-rent-cal__head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.5rem; }
.as-rent-cal__title { margin: 0; font-weight: 800; font-size: 0.95rem; }
.as-rent-cal__nav { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: var(--radius-sm); border: 1px solid var(--as-line-strong); background: none; color: var(--color-white); cursor: pointer; }
.as-rent-cal__nav:disabled { opacity: 0.35; cursor: default; }
.as-rent-cal__nav .as-ico { width: 18px; height: 18px; }
.as-rent-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.as-rent-cal__wd { text-align: center; color: var(--as-muted); font-size: 0.72rem; font-weight: 700; padding: 0.2rem 0; }
.as-rent-cal__day { position: relative; aspect-ratio: 1; min-height: 34px; display: grid; place-items: center; padding: 0; border: 1px solid transparent; border-radius: 6px; background: rgba(255, 255, 255, 0.04); color: var(--color-white); font: 600 0.82rem/1 var(--font-primary); cursor: pointer; font-variant-numeric: tabular-nums; }
.as-rent-cal__day small { position: absolute; bottom: 2px; left: 0; right: 0; font-size: 0.58rem; color: var(--as-muted); font-weight: 600; }
.as-rent-cal__day::after { content: ''; position: absolute; top: 4px; right: 4px; width: 6px; height: 6px; border-radius: 50%; }
.as-rent-cal__day.is-verfuegbar::after { background: var(--as-ok); }
.as-rent-cal__day.is-eingeschraenkt::after { background: var(--as-warn); }
.as-rent-cal__day.is-nicht_verfuegbar { color: var(--as-muted); text-decoration: line-through; }
.as-rent-cal__day.is-nicht_verfuegbar::after { background: var(--as-error); }
.as-rent-cal__day.is-gesperrt { opacity: 0.3; cursor: default; }
.as-rent-cal__day:hover:not(:disabled) { border-color: rgba(255, 255, 255, 0.35); }
.as-rent-cal__day.is-in { background: var(--color-red-subtle); border-color: var(--color-border-red); }
.as-rent-cal__day.is-start, .as-rent-cal__day.is-end { background: var(--color-red); border-color: var(--color-red); }
.as-rent-cal__day.is-start small, .as-rent-cal__day.is-end small { color: #fff; }
.as-rent-cal__legend { display: flex; flex-wrap: wrap; gap: 0.35rem 0.9rem; margin: 0.6rem 0 0; padding: 0; list-style: none; color: var(--as-muted); font-size: 0.75rem; }
.as-rent-cal__legend li { display: inline-flex; align-items: center; gap: 0.35rem; }
.as-rent-cal__legend i { width: 8px; height: 8px; border-radius: 50%; }
.as-rent-cal__status { margin: 0.5rem 0 0; color: var(--as-text-2); font-size: 0.82rem; min-height: 1.2em; }

/* Anfrage */
.as-rent-request { display: grid; gap: 1.25rem; }
.as-rent-request__part { margin: 0; padding: 1.1rem 1.25rem; border: 1px solid var(--as-line); border-radius: var(--radius-md); background: var(--as-surface); min-width: 0; }
.as-rent-request__part legend { padding: 0 0.4rem; font-weight: 800; }
.as-rent-request__days { margin: 0.6rem 0 0; color: var(--as-muted); font-size: 0.85rem; }
.as-rent-lines { display: grid; gap: 0.6rem; }
.as-rent-line { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; grid-template-areas: "img main remove" "img qty sum"; gap: 0.4rem 0.75rem; align-items: center; padding: 0.6rem; border: 1px solid var(--as-line); border-radius: var(--radius-sm); background: rgba(255, 255, 255, 0.02); }
.as-rent-line__img { grid-area: img; width: 56px; height: 56px; border-radius: 6px; overflow: hidden; background: #101010; }
.as-rent-line__img img { width: 100%; height: 100%; object-fit: contain; }
.as-rent-line__main { grid-area: main; display: grid; gap: 0.15rem; min-width: 0; }
.as-rent-line__name { color: var(--color-white); font-weight: 700; text-decoration: none; }
.as-rent-line__unit { color: var(--as-muted); font-size: 0.8rem; }
.as-rent-line__state { font-size: 0.8rem; font-weight: 700; }
.as-rent-line__state--verfuegbar { color: var(--as-ok); }
.as-rent-line__state--eingeschraenkt { color: var(--as-warn); }
.as-rent-line__state--nicht_verfuegbar { color: var(--as-error); }
.as-rent-line__qty { grid-area: qty; }
.as-rent-line__qty input[type="number"] { width: 84px; min-height: 40px; padding: 0.45rem 0.6rem; }
.as-rent-line__sum { grid-area: sum; text-align: right; font-weight: 800; font-variant-numeric: tabular-nums; }
.as-rent-line__sum span { display: block; color: var(--as-muted); font-size: 0.75rem; font-weight: 600; }
.as-rent-line__remove { grid-area: remove; justify-self: end; }
.as-rent-line__x { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.35rem 0.5rem; border: 1px solid transparent; border-radius: 6px; background: none; color: var(--as-muted); font: 600 0.78rem/1 var(--font-primary); cursor: pointer; }
.as-rent-line__x:hover { color: var(--color-white); border-color: var(--as-line-strong); }
.as-rent-line__x .as-ico { width: 16px; height: 16px; }
@media (min-width: 768px) {
  .as-rent-line { grid-template-columns: 56px minmax(0, 1fr) 96px 120px auto; grid-template-areas: "img main qty sum remove"; }
}
.as-rent-total { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin: 1rem 0 0; padding-top: 0.85rem; border-top: 1px solid var(--as-line); color: var(--as-text-2); }
.as-rent-total strong { color: var(--color-white); font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.as-rent-request .as-rent-result { margin-top: 1rem; }
.as-rent-handover { display: grid; gap: 0.5rem; margin-bottom: 1rem; }
.as-rent-option { display: flex; align-items: flex-start; gap: 0.6rem; padding: 0.75rem 0.9rem; border: 1px solid var(--as-line-strong); border-radius: var(--radius-sm); cursor: pointer; color: var(--as-text-2); font-size: 0.92rem; }
.as-rent-option strong { color: var(--color-white); }
.as-rent-option:has(input:checked) { border-color: var(--color-red); background: var(--color-red-subtle); }
.as-rent-option input { flex: none; margin-top: 0.15rem; }
.as-rent-contact { display: grid; gap: 0 1rem; }
@media (min-width: 600px) { .as-rent-contact { grid-template-columns: 1fr 1fr; } }
.as-rent-check label { display: flex !important; align-items: flex-start; gap: 0.6rem; font-weight: 400 !important; color: var(--as-text-2); }
.as-rent-check input[type="checkbox"] { flex: none; margin-top: 0.15rem; }
.as-rent-check a { color: var(--color-white); }
.as-rent-access__privacy { margin: 0.6rem 0 0; color: var(--as-muted); font-size: 0.82rem; }
.as-rent-access__privacy a { color: var(--color-white); }
.as-rent-terms { padding: 0.8rem 1rem; border: 1px solid var(--as-line); border-radius: var(--radius-sm); }
.as-rent-terms > summary { cursor: pointer; font-weight: 700; }
.as-rent-terms .as-prose { margin-top: 0.75rem; max-height: 50vh; overflow-y: auto; font-size: 0.9rem; }
.as-rent-request__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.as-rent-request__actions .ap-btn-primary:disabled { opacity: 0.45; cursor: not-allowed; box-shadow: none; }
@media (max-width: 599px) { .as-rent-request__actions > * { width: 100%; justify-content: center; } }
.as-rent-form .form-row { margin: 0 0 1rem; }
.as-rent-form label { display: block; margin-bottom: 0.35rem; font-size: 0.85rem; font-weight: 600; color: var(--as-text-2); }
.as-rent-form .required { color: var(--color-red); }
.as-rent-form .optional { color: var(--as-muted); font-weight: 400; }

.as-rent-thanks { display: grid; gap: 0.25rem; border-left: 3px solid var(--as-ok); }
.as-rent-thanks p { color: var(--as-text-2); }
.as-rent-thanks strong { color: var(--color-white); }
.as-rent-thanks__number { font-size: 1.1rem; }

/* Mein Konto → Mietanfragen */
.as-rent-account { display: grid; gap: 1.25rem; }
.as-rent-account__title { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin: 0; font-size: 1.3rem; }
.as-rent-account__note { margin: 0; color: var(--as-muted); font-size: 0.88rem; }
.as-rent-status { display: inline-flex; padding: 0.15rem 0.6rem; border-radius: 999px; border: 1px solid var(--as-line-strong); color: var(--as-text-2); font-size: 0.75rem; font-weight: 700; white-space: nowrap; }
.as-rent-status--bestaetigt, .as-rent-status--abgeschlossen { color: var(--as-ok); border-color: rgba(62, 207, 142, 0.35); }
.as-rent-status--rueckfrage { color: var(--as-warn); border-color: rgba(242, 184, 75, 0.4); }
.as-rent-status--abgelehnt, .as-rent-status--storniert { color: var(--as-error); border-color: rgba(255, 107, 107, 0.4); }
.as-rent-dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.4rem 1rem; margin: 0; }
.as-rent-dl dt { color: var(--as-muted); font-weight: 600; }
.as-rent-dl dd { margin: 0; }
.as-rent-messages { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.as-rent-messages li { padding: 0.8rem 1rem; border: 1px solid var(--as-line); border-left: 3px solid var(--color-red); border-radius: var(--radius-sm); background: rgba(255, 255, 255, 0.02); }
.as-rent-messages time { color: var(--as-muted); font-size: 0.78rem; }
.as-rent-messages p { margin: 0.25rem 0 0; color: var(--as-text-2); }

/* ── 18. Bewegung reduzieren ────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
  ul.products li.product:hover .as-card__img img { transform: none; }
}
