/* ============================================================
   AQ Skin Shop — Luminous Clinical Atelier design system v4
   Bricolage Grotesque (display) + AQ Sans (body/UI)
   Canonical specification: /DESIGN.md
   ============================================================ */

/* --- Fonts ---------------------------------------------------- */

@font-face {
	font-family: "Bricolage Grotesque";
	src: url("../fonts/bricolage-variable.woff2") format("woff2-variations"),
	     url("../fonts/bricolage-variable.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "AQ Sans";
	src: url("../fonts/aq-sans-regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "AQ Sans";
	src: url("../fonts/aq-sans-semibold.woff2") format("woff2");
	font-weight: 500 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "AQ Sans";
	src: url("../fonts/aq-sans-bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "AQ Sans";
	src: url("../fonts/aq-sans-italic.woff2") format("woff2");
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

/* --- Tokens --------------------------------------------------- */

:root {
	--aq-bg: #fbfaf7;
	--aq-surface: #ffffff;
	--aq-surface-2: #f0ede6;
	--aq-surface-clay: #f5eae5;
	--aq-ink: #1c1d19;
	--aq-ink-soft: #454740;
	--aq-muted: #707269;
	/* Small muted text on a tinted surface. --aq-muted holds 4.5:1 on white
	   (4.88) and on --aq-bg (4.68), but not on the tinted surfaces this theme
	   uses for panels: 4.18 on --aq-surface-2, 4.14 on --aq-surface-clay, and
	   4.21 on the #eee Woo fills into a checkout table. Below 24px that is a
	   fail, and the footer, the PDP legal block and the checkout order table
	   all put 10-11px copy there. This shade measures 5.33 on the worst of
	   them and 6.29 on white, so it is safe on every surface in the palette.
	   Use it for muted text under 12px; --aq-muted stays correct for 12px+ and
	   for anything on white. (DIM-548) */
	--aq-muted-on-tint: #5f6158;
	--aq-line: #dedad1;
	--aq-line-soft: #ebe8e1;
	--aq-accent: #b65f46;
	/* Same hue and saturation as --aq-accent, 3% darker: the brand accent
	   measures 4.27:1 against --aq-bg and 4.45:1 against --aq-surface, so it
	   fails WCAG AA for normal text. This one measures 4.75:1 and 4.95:1.
	   Use on solid accent fills that carry text below 18.66px, and on
	   interactive accent fills generally, so buttons and badges stay one
	   tone (DIM-516, DIM-517). --aq-accent keeps the brand hue for borders,
	   headings, icons and decorative marks, where AA does not apply. */
	--aq-accent-cta: #ab5942;
	/* Same hue and saturation as --aq-accent, 5% darker: the brand accent as a
	   *text* colour measures 4.45:1 on --aq-surface, 4.27:1 on --aq-bg and
	   3.81:1 on --aq-surface-2, so it fails WCAG AA wherever the type is below
	   18.66px bold / 24px normal. --aq-accent-cta does not rescue this case
	   (4.24:1 on --aq-surface-2); it was derived for white text sitting *on*
	   the accent. This one clears 4.5:1 on every surface the theme actually
	   paints accent text over: 5.32 / 5.09 / 4.55, and 4.50 on
	   --aq-surface-clay (DIM-522). Large accent type and accent-coloured icons
	   keep --aq-accent — they fall under the 3:1 thresholds and pass. */
	--aq-accent-ink: #a4553f;
	--aq-accent-soft: #f1ddd6;
	--aq-danger: #9c3e36;
	--aq-danger-soft: #f8ece9;
	--aq-accent-2: var(--aq-accent);
	--aq-hover: var(--aq-ink);
	--aq-hover-soft: var(--aq-accent-soft);
	--aq-success: #2f6e5b;

	/* Semantic — success/warning + soft surfaces (canonical; migrated from
	   hardcoded values that were scattered across single-product.css). */
	--aq-success-soft: #f3f7f4;
	--aq-warning: #b8801a;
	--aq-warning-ink: #6b551c;
	--aq-warning-soft: #fbf5e7;
	--aq-warning-line: #e8dcb2;

	--aq-sans: "AQ Sans", "Helvetica Neue", Arial, sans-serif;
	--aq-display: "Bricolage Grotesque", "Arial Narrow", sans-serif;
	--aq-serif: var(--aq-display);

	/* Typography — leading + tracking scales (canonical).
	   Type-size canon (px): 10 11 12 13 14 15(body) 17 20 22 24 28 36 40 64.
	   Sub-pixel sizes (10.5/11.5/12.5/13.5/15.5) in single-product.css are
	   drift — snap to the nearest canon value when migrating. */
	--aq-leading-body: 1.65;
	--aq-leading-tight: 1.08;
	--aq-tracking-label: 0.12em;
	--aq-tracking-display: -0.035em;

	--aq-ease: cubic-bezier(0.23, 1, 0.32, 1);
	--aq-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
	--aq-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
	--aq-reveal-duration: 420ms;
	--aq-hover-duration: 180ms;

	--aq-max: 1400px;
	--aq-pad: clamp(20px, 4vw, 56px);
	--aq-section-y: clamp(64px, 8vw, 112px);

	/* Section rhythm — canonical trio. Replaces the ~8 near-duplicate
	   clamp() triples scattered across sections (migrate gradually). */
	--aq-section-y-sm: clamp(40px, 5vw, 72px);
	--aq-section-y-lg: clamp(72px, 9vw, 130px);

	/* Header height — real measured height of the sticky header (without the
	   collapsible service bar). Use for sticky offsets / scroll-padding so the
	   96px vs 120px magic numbers can be reconciled to one source. */
	--aq-header-h: 78px;

	/* Radius — canonical. --aq-radius:0 kept for legacy selectors that rely
	   on it; new work should use --aq-radius-sm / --aq-radius-pill. */
	--aq-radius: 0;
	--aq-radius-sm: 4px;
	--aq-radius-pill: 999px;

	/* Buttons — canonical primary metrics (DIM-454). Height is a floor, not a
	   fixed box: long labels wrap in DE and must not be clipped. Compact is
	   only for the documented dense contexts (sticky bar, card quick-cart). */
	--aq-btn-h: 52px;
	--aq-btn-h-compact: 48px;
	--aq-btn-radius: 2px;

	/* Elevation — canonical shadow set (single ink base #111, was ~20 bespoke
	   shadows with rgba 0/15/17 bases). Focus ring stays as-is (already DRY). */
	--aq-shadow-sm: 0 4px 14px -6px rgba(25, 26, 24, 0.12);
	--aq-shadow-md: 0 16px 40px -20px rgba(25, 26, 24, 0.2);
	--aq-shadow-pop: 0 24px 56px -24px rgba(25, 26, 24, 0.32);

	/* Spacing — 4px-based canonical scale (px): 2 4 6 8 10 12 14 16 20 24 28
	   32 40 48 56 64 80 96 120. Tokenized for new work; existing gap/padding
	   clamps migrate gradually. */
	--aq-space-2: 2px;
	--aq-space-4: 4px;
	--aq-space-6: 6px;
	--aq-space-8: 8px;
	--aq-space-10: 10px;
	--aq-space-12: 12px;
	--aq-space-14: 14px;
	--aq-space-16: 16px;
	--aq-space-20: 20px;
	--aq-space-24: 24px;
	--aq-space-28: 28px;
	--aq-space-32: 32px;
	--aq-space-40: 40px;
	--aq-space-48: 48px;
	--aq-space-56: 56px;
	--aq-space-64: 64px;
	--aq-space-80: 80px;
	--aq-space-96: 96px;
	--aq-space-120: 120px;

	/* Breakpoint ladder (CONVENTION — cannot be CSS vars in @media).
	   Canonical: 560 · 720 · 900 · 1024 · 1200. Migrate the 14 ad-hoc
	   max-width values toward these. main.css = desktop-first (max-width);
	   single-product.css = mobile-first (min-width). */
}

/* --- Reset / Base -------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }
/* The `hidden` attribute is how every panel in this theme is hidden until its
   script reveals it, but the UA rule behind it — `[hidden] { display: none }` —
   is a plain author-weight declaration that ANY later `display` beats. A
   component that sets `display: grid` on its own class therefore un-hides
   itself, silently and with no CSS error anywhere.

   That is not hypothetical: it shipped three times. The B2B panel announced
   «Antrag eingegangen» to every visitor of /fachkunden/ before they submitted
   anything, the Beratung modal did the same, and the header showed an empty
   wishlist badge on every page of the site.

   !important is deliberate here rather than sloppy. Without it this rule is
   just a fourth declaration in the same specificity race and loses to the next
   component that sets `display`. With it, `hidden` means hidden — full stop —
   and the class of bug closes for good. Anything that must be laid out is not
   hidden, and should not carry the attribute. (DIM-415) */
[hidden] { display: none !important; }
/* overflow-x:clip is a last-resort guard against stray horizontal scroll.
   clip (not hidden) does NOT create a scroll container, so it won't break
   the sticky header / gallery / cart totals. Real overflow sources are still
   fixed at the component level. */
html { scroll-behavior: smooth; background: var(--aq-bg); -webkit-text-size-adjust: 100%; overflow-x: clip; }
body {
	margin: 0;
	background: var(--aq-bg);
	color: var(--aq-ink);
	font-family: var(--aq-sans);
	font-size: 16px;
	line-height: var(--aq-leading-body);
	/* clip belongs on body too — on the root element overflow-x:clip does not
	   reliably contain viewport-level overflow. clip (not hidden) keeps sticky
	   descendants working. */
	overflow-x: clip;
	font-weight: 400;
	font-feature-settings: "ss01" on, "cv11" on, "kern" on;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
img, svg, picture, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: 0; padding: 0; cursor: pointer; }
:focus-visible { outline: 2px solid var(--aq-accent); outline-offset: 3px; }
::selection { background: var(--aq-ink); color: var(--aq-bg); }
.screen-reader-text, .skip-link {
	position: absolute; width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px,1px,1px,1px);
	white-space: nowrap;
}
.skip-link:focus {
	position: fixed; top: 12px; left: 12px;
	width: auto; height: auto; clip: auto;
	background: var(--aq-ink); color: var(--aq-bg);
	padding: 10px 16px; z-index: 9999;
	font-size: 12px; font-weight: 500; letter-spacing: 0.1em;
}

/* --- Typography ---------------------------------------------- */

.aq-display-xl, .aq-display-l, .aq-h2, .aq-h3 {
	font-family: var(--aq-display);
	color: var(--aq-ink);
	margin: 0;
	font-weight: 550;
}
.aq-display-xl {
	font-size: clamp(44px, 5.4vw, 84px);
	line-height: 0.98;
	letter-spacing: -0.04em;
}
.aq-display-l {
	font-size: clamp(36px, 4.4vw, 64px);
	line-height: 1;
	letter-spacing: -0.038em;
}
.aq-h2 {
	font-size: clamp(32px, 3.4vw, 56px);
	line-height: 1.03;
	letter-spacing: -0.035em;
}
.aq-h3 {
	font-size: clamp(18px, 1.6vw, 22px);
	line-height: 1.25;
	letter-spacing: -0.018em;
}
.aq-eyebrow {
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: var(--aq-tracking-label);
	text-transform: uppercase;
	color: var(--aq-ink-soft);
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.aq-eyebrow::before {
	content: "";
	width: 24px; height: 1px;
	background: var(--aq-ink);
	display: inline-block;
}
.aq-meta { font-family: var(--aq-sans); font-size: 12px; font-weight: 500; letter-spacing: 0.06em; color: var(--aq-muted); }
.aq-caption { font-family: var(--aq-sans); font-size: 11px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--aq-muted); }

/* --- Layout primitives --------------------------------------- */

.aq-section {
	padding: var(--aq-section-y) var(--aq-pad);
	max-width: var(--aq-max);
	margin: 0 auto;
}
.aq-section--surface-2 {
	background: var(--aq-surface-2);
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}
.aq-section--surface-2 > * {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding-left: var(--aq-pad);
	padding-right: var(--aq-pad);
}

/* --- Reveal ------------------------------------------------- */

.aq-reveal {
	transition:
		opacity var(--aq-reveal-duration) var(--aq-ease-out),
		transform var(--aq-reveal-duration) var(--aq-ease-out);
}
.js .aq-reveal:not(.is-revealed):not(.is-visible) {
	opacity: 0;
	transform: translateY(12px);
}
.aq-reveal.is-revealed,
.aq-reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 160ms !important; }
	.aq-reveal { transform: none; }
}

/* --- Header -------------------------------------------------- */

.aq-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(251, 250, 247, 0.94);
	backdrop-filter: saturate(120%) blur(16px);
	-webkit-backdrop-filter: saturate(120%) blur(16px);
	border-bottom: 1px solid transparent;
	transition: border-color 180ms var(--aq-ease);
}
.aq-header.is-scrolled { border-bottom-color: var(--aq-line); }

.aq-service-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	padding: 8px max(var(--aq-pad), calc((100vw - var(--aq-max)) / 2 + var(--aq-pad)));
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--aq-ink);
	background: var(--aq-accent-soft);
	border-bottom: 1px solid var(--aq-line);
	white-space: nowrap;
}
.aq-service-bar span { display: inline-flex; align-items: center; }
.aq-service-bar span + span::before {
	content: ""; display: inline-block;
	width: 4px; height: 4px;
	border-radius: 50%;
	background: var(--aq-accent);
	margin-right: 28px;
}

.aq-header__rail {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 48px;
	min-height: var(--aq-header-h);
	padding: 17px var(--aq-pad);
	max-width: var(--aq-max);
	margin: 0 auto;
}

.aq-brand {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 3px;
	min-height: 44px;
	line-height: 1;
	color: var(--aq-ink);
	text-decoration: none;
	justify-self: start;
}
.aq-brand, .aq-brand:hover, .aq-brand:focus, .aq-brand:visited { color: var(--aq-ink); }
.aq-brand__name {
	font-family: var(--aq-display);
	font-size: 21px;
	font-weight: 600;
	letter-spacing: -0.035em;
	color: var(--aq-ink);
}
.aq-brand__sub {
	font-family: var(--aq-sans);
	font-size: 9px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--aq-muted);
}

.aq-nav { justify-self: center; }
.aq-nav__list { display: flex; gap: 36px; list-style: none; margin: 0; padding: 0; }
.aq-nav__list li { display: flex; }
.aq-nav a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aq-ink);
	text-decoration: none;
	padding: 8px 0;
	position: relative;
	transition: color 180ms ease;
}
.aq-nav a::after {
	content: "";
	position: absolute;
	left: 0; right: 0;
	bottom: 2px; height: 1px;
	background: currentColor;
	/* Animate transform (compositor) instead of `right` (layout/paint). */
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 200ms var(--aq-ease);
}
.aq-nav a:hover, .aq-nav .current-menu-item > a { color: var(--aq-hover); }
.aq-nav a:hover::after, .aq-nav .current-menu-item > a::after { transform: scaleX(1); }

.aq-actions { display: flex; align-items: center; gap: 18px; justify-self: end; }
.aq-icon, .aq-cart {
	color: var(--aq-ink);
	display: inline-flex; align-items: center; justify-content: center;
	text-decoration: none;
	transition: color 180ms ease, transform 140ms var(--aq-ease);
}
.aq-icon { width: 44px; height: 44px; }
.aq-icon svg, .aq-cart svg { width: 19px; height: 19px; }
.aq-icon:hover, .aq-cart:hover { color: var(--aq-hover); }
.aq-icon:active, .aq-cart:active { transform: scale(0.97); }
.aq-cart { position: relative; gap: 8px; min-height: 44px; }
.aq-cart strong {
	font-family: var(--aq-sans);
	font-size: 11px; font-weight: 500;
	letter-spacing: 0.06em; color: var(--aq-ink);
	min-width: 12px; text-align: left;
}

.aq-lang { display: inline-flex; align-items: center; font-family: var(--aq-sans); font-size: 11px; font-weight: 500; letter-spacing: 0.12em; color: var(--aq-muted); }
.aq-lang span, .aq-lang a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	/* Height was already 44 but the DE/EN labels are only ~27px wide, and 2.5.8
	   measures the smaller dimension. The divider between them is drawn with a
	   border, so widening the links keeps the visual gap intact. (DIM-484) */
	min-width: 44px;
	color: var(--aq-muted);
	padding: 0 8px;
	text-decoration: none;
	position: relative;
	transition: color 180ms ease;
}
.aq-lang span:first-child, .aq-lang a:first-child { padding-left: 0; }
.aq-lang span:last-child, .aq-lang a:last-child { padding-right: 0; }
.aq-lang span + span, .aq-lang a + a { border-left: 1px solid var(--aq-line); }
.aq-lang a:hover, .aq-lang a.is-active, .aq-lang span:first-child { color: var(--aq-ink); }

.aq-menu-toggle {
	display: none;
	width: 22px; height: 14px;
	flex-direction: column;
	justify-content: space-between;
	background: transparent;
	border: 0;
	padding: 0;
	cursor: pointer;
}
.aq-menu-toggle span {
	display: block; height: 1px;
	background: var(--aq-ink); width: 100%;
	transition: transform 180ms var(--aq-ease);
}
.aq-menu-toggle.is-open span:first-child { transform: translateY(6px) rotate(45deg); }
.aq-menu-toggle.is-open span:last-child { transform: translateY(-6px) rotate(-45deg); }

.aq-mobile-menu {
	display: none;
	background: var(--aq-bg);
	border-top: 1px solid var(--aq-line);
	padding: 28px var(--aq-pad) 40px;
}
.aq-mobile-menu.is-open { display: block; }
.aq-mobile-menu__list {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-direction: column; gap: 0;
}
.aq-mobile-menu a {
	font-family: var(--aq-display);
	font-size: clamp(26px, 8vw, 38px);
	font-weight: 550;
	letter-spacing: -0.035em;
	color: var(--aq-ink);
	text-decoration: none;
}
.aq-mobile-menu__list > li > a,
.aq-mobile-menu__list > a {
	display: flex;
	align-items: center;
	min-height: 58px;
	border-bottom: 1px solid var(--aq-line);
}
.aq-mobile-menu__utilities {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 20px;
	margin-top: 24px;
}
.aq-mobile-menu__utilities > a {
	display: flex;
	align-items: center;
	min-height: 44px;
	border-bottom: 1px solid var(--aq-line);
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.aq-mobile-menu__utilities .aq-lang {
	grid-column: 1 / -1;
	min-height: 44px;
	margin-top: 12px;
}
.aq-mobile-menu__utilities .aq-lang a {
	font-family: var(--aq-sans);
	font-size: 12px;
	letter-spacing: 0.1em;
}

@media (max-width: 1024px) { .aq-nav__list { gap: 28px; } }
@media (max-width: 900px) {
	.aq-header__rail { grid-template-columns: 1fr auto; padding: 16px var(--aq-pad); }
	.aq-nav { display: none; }
	.aq-menu-toggle { display: flex; }
	.aq-actions { gap: 16px; }
	.aq-brand__name { font-size: 17px; }
	.aq-brand__sub { font-size: 8px; }
}
@media (max-width: 700px) {
	.aq-service-bar { font-size: 10px; gap: 16px; padding: 8px var(--aq-pad); letter-spacing: 0.08em; }
	.aq-service-bar span + span::before { display: none; }
	.aq-service-bar span:nth-child(2) { display: none; }
}
@media (max-width: 480px) {
	.aq-header__rail { gap: 12px; padding: 14px 16px; grid-template-columns: minmax(0,1fr) auto; }
	.aq-brand { gap: 2px; min-width: 0; }
	.aq-brand__name { font-size: 15px; }
	.aq-brand__sub { font-size: 8px; letter-spacing: 0.12em; }
}

/* Touch-target hit area for header controls on coarse pointers.
   Visual SVG stays the same; we expand the clickable box via padding so
   the visible icon doesn't move. Use negative margin so the expanded
   hit-area doesn't push neighbours apart on narrow mobiles. */
@media (max-width: 900px) {
	.aq-icon, .aq-cart, .aq-menu-toggle {
		min-width: 44px;
		min-height: 44px;
		padding: 10px;
		margin: -10px -4px;
	}
	.aq-icon, .aq-cart { width: auto; height: auto; }
	.aq-menu-toggle {
		box-sizing: content-box;
		width: 22px;
		height: 14px;
	}
	.aq-actions { gap: 4px; }
}
@media (max-width: 480px) {
	.aq-actions > .aq-lang,
	.aq-actions > .aq-icon--wishlist,
	.aq-actions > .aq-icon--account { display: none; }
	.aq-icon, .aq-cart, .aq-menu-toggle {
		min-width: 44px;
		min-height: 44px;
		padding: 10px;
		margin: -10px -4px;
	}
	.aq-actions { gap: 4px; }
}

/* --- Buttons ------------------------------------------------- */

/* Canonical primary CTA (DIM-420). Every accent submit / purchase button in
   the theme resolves to this one block — height, radius, colour, disabled and
   hover all live here, not in a reconciliation layer at the end of the file.
   Adding a new primary CTA means adding its selector to this list, nowhere
   else. Secondary (ink / outline) buttons are deliberately NOT in scope. */
.aq-button,
.aq-btn--primary,
.aq-pro__submit,
.aq-wishlist__shop,
.aq-wishlist__card-cta,
.aq-quiz__card-cta,
.aq-beratung__submit,
.aq-consent__btn--primary,
.aq-quote-form button[type="submit"],
.aq-checkout-page #place_order,
.aq-cart-page .wc-proceed-to-checkout .checkout-button,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.single_add_to_cart_button {
	min-height: var(--aq-btn-h);
	border-radius: var(--aq-btn-radius);
	background: var(--aq-accent-cta);
	border-color: var(--aq-accent-cta);
	color: var(--aq-surface);
	transition:
		background var(--aq-hover-duration) var(--aq-ease),
		opacity var(--aq-hover-duration) var(--aq-ease);
}

/* Compact tier — documented exceptions only (DIM-454). */
.aq-sticky-cart__cta,
.aq-card__quick-cart {
	min-height: var(--aq-btn-h-compact);
	border-radius: var(--aq-btn-radius);
}

/* In-flight / disabled. JS sets `disabled` on buttons and `aria-disabled` on
   links (an <a> cannot be :disabled), and marks the form `aria-busy` while the
   request is open — all three resolve to the same visual state (DIM-452). */
.aq-button:disabled,
.aq-btn--primary:disabled,
.aq-pro__submit:disabled,
.aq-beratung__submit:disabled,
.aq-quote-form button[type="submit"]:disabled,
.aq-checkout-page #place_order:disabled,
.aq-cart-page .wc-proceed-to-checkout .checkout-button:disabled,
.single_add_to_cart_button:disabled,
.woocommerce button.button.alt:disabled,
[aria-disabled="true"].aq-wishlist__card-cta,
[aria-disabled="true"].aq-button,
form[aria-busy="true"] [type="submit"],
form.processing #place_order,
form.processing [type="submit"] {
	opacity: 0.68;
	cursor: wait;
	pointer-events: none;
}

.aq-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 14px 28px;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
}
.aq-button i { font-style: normal; font-size: 14px; transition: transform var(--aq-hover-duration) var(--aq-ease); }
.aq-button--light { background: transparent; color: var(--aq-ink); border: 1px solid var(--aq-ink); }

/* Arrow nudge — gated so it does not stick after a tap (DIM-455). The colour
   change itself is handled by the shared primary hover block further down. */
@media (hover: hover) and (pointer: fine) {
	.aq-button:hover i,
	.aq-pro__submit:hover i,
	.aq-quiz__card-cta:hover i,
	.aq-wishlist__card-cta:hover i,
	.aq-beratung__submit:hover i { transform: translateX(4px); }
	.aq-button--light:hover { background: var(--aq-ink); color: var(--aq-bg); }
}

.aq-ghost-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-ink);
	border-bottom: 1px solid var(--aq-ink);
	padding-bottom: 4px;
	text-decoration: none;
	transition: color var(--aq-hover-duration) var(--aq-ease), border-color var(--aq-hover-duration) var(--aq-ease);
}
.aq-ghost-link i { font-style: normal; transition: transform var(--aq-hover-duration) var(--aq-ease); }
.aq-ghost-link:hover { color: var(--aq-hover); border-color: var(--aq-hover); }
.aq-ghost-link:hover i { transform: translateX(4px); }

.aq-section__header {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	gap: 32px;
	margin-bottom: clamp(40px, 5vw, 64px);
}
.aq-section__header > div { display: flex; flex-direction: column; gap: 14px; }
.aq-section__header h2 { max-width: 18ch; }

/* --- Hero (Luminous video atelier) -------------------------- */

.aq-hero {
	width: 100%;
	background: var(--aq-surface);
	border-bottom: 1px solid var(--aq-line);
	overflow: hidden;
}
.aq-hero__inner {
	width: 100%;
	min-height: clamp(680px, 82dvh, 860px);
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(390px, 5fr) minmax(0, 7fr);
	gap: 0;
	align-items: stretch;
}
.aq-hero__copy {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: clamp(22px, 2.4vw, 32px);
	max-width: none;
	padding:
		clamp(72px, 9vw, 132px)
		clamp(44px, 5vw, 80px)
		clamp(72px, 9vw, 132px)
		max(var(--aq-pad), calc((100vw - 1500px) / 2 + var(--aq-pad)));
	color: var(--aq-ink);
	background:
		linear-gradient(var(--aq-line-soft), var(--aq-line-soft)) 100% 0 / 1px 100% no-repeat,
		var(--aq-bg);
}
.aq-hero__title {
	max-width: 11.5ch;
	color: var(--aq-ink);
	font-size: clamp(52px, 5.5vw, 82px);
	font-weight: 560;
	line-height: 0.94;
	letter-spacing: -0.05em;
	text-wrap: balance;
}
.aq-hero__lede {
	max-width: 42ch;
	margin: 0;
	font-size: clamp(16px, 1.2vw, 18px);
	line-height: 1.68;
	color: var(--aq-ink-soft);
}
.aq-hero__actions { display: flex; align-items: center; flex-wrap: wrap; }
.aq-hero__visual {
	position: relative;
	min-width: 0;
	align-self: stretch;
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	background: var(--aq-surface);
	clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%, 0 14%);
}
.aq-hero__media {
	position: relative;
	min-height: 0;
	margin: 0;
	overflow: hidden;
	background: var(--aq-surface-2);
}
.aq-hero__video {
	width: 100%;
	height: 100%;
	min-height: 580px;
	object-fit: cover;
	object-position: 52% center;
}
.aq-hero__video-toggle {
	position: absolute;
	right: clamp(18px, 2.4vw, 34px);
	bottom: clamp(18px, 2.4vw, 34px);
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	color: var(--aq-ink);
	background: rgba(255, 255, 255, 0.9);
	border: 1px solid rgba(28, 29, 25, 0.18);
	border-radius: 999px;
	box-shadow: 0 12px 28px -18px rgba(28, 29, 25, 0.42);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	transition: background-color 180ms ease, color 180ms ease, transform 140ms var(--aq-ease-out);
}
.aq-hero__video-toggle:active { transform: scale(0.96); }
.aq-hero__video-icon { width: 20px; height: 20px; }
.aq-hero__video-icon--play { display: none; }
.aq-hero__video-toggle.is-paused .aq-hero__video-icon--pause { display: none; }
.aq-hero__video-toggle.is-paused .aq-hero__video-icon--play { display: block; }
@media (hover: hover) and (pointer: fine) {
	.aq-hero__video-toggle:hover { background: var(--aq-accent-cta); color: var(--aq-surface); }
}
.aq-hero__meta {
	display: grid;
	grid-template-columns: 1.35fr 1fr 0.85fr;
	border-top: 1px solid var(--aq-line);
	background: rgba(255, 255, 255, 0.96);
}
.aq-hero__meta-row {
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding: 17px 20px 19px;
	border-right: 1px solid var(--aq-line);
}
.aq-hero__meta-row:last-child { border-right: 0; }
.aq-hero__meta-row span {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aq-muted);
}
.aq-hero__meta-row strong {
	font-family: var(--aq-display);
	font-size: clamp(15px, 1.4vw, 19px);
	font-weight: 550;
	letter-spacing: -0.02em;
	color: var(--aq-ink);
}

@media (max-width: 900px) {
	.aq-hero__inner {
		min-height: 0;
		grid-template-columns: 1fr;
		gap: 0;
		padding: 0;
	}
	.aq-hero__copy {
		max-width: none;
		padding: clamp(52px, 9vw, 80px) var(--aq-pad);
		background: var(--aq-bg);
	}
	.aq-hero__title { max-width: 12ch; font-size: clamp(46px, 10vw, 68px); }
	.aq-hero__visual { clip-path: polygon(5% 0, 100% 0, 100% 100%, 0 100%, 0 8%); }
	.aq-hero__video { min-height: 0; aspect-ratio: 16 / 10; }
}

@media (max-width: 560px) {
	.aq-hero__inner { gap: 0; }
	.aq-hero__copy { padding: 46px 20px 42px; }
	.aq-hero__copy { gap: 20px; }
	.aq-hero__title { font-size: clamp(44px, 12.5vw, 56px); line-height: 0.96; }
	.aq-hero__lede { font-size: 16px; }
	.aq-hero__visual { clip-path: none; }
	.aq-hero__video { aspect-ratio: 4 / 5; object-position: 51% center; }
	.aq-hero__video-toggle { right: 16px; bottom: 16px; }
	.aq-hero__meta { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.aq-hero__meta-row {
		min-height: 74px;
		padding: 14px 10px 16px;
		border-right: 1px solid var(--aq-line);
		border-bottom: 0;
		flex-direction: column;
		justify-content: flex-start;
		align-items: flex-start;
	}
	.aq-hero__meta-row:last-child { border-right: 0; }
	.aq-hero__meta-row span { font-size: 9px; }
	.aq-hero__meta-row strong { font-size: 13px; }
}

/* --- Category strip ----------------------------------------- */

.aq-category-strip {
	display: flex;
	gap: clamp(20px, 4vw, 48px);
	justify-content: center;
	flex-wrap: wrap;
	padding: 22px var(--aq-pad);
	border-top: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
	max-width: var(--aq-max);
	margin: 0 auto;
}
.aq-category-strip a {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--aq-ink-soft);
	text-decoration: none;
	transition: color var(--aq-hover-duration) var(--aq-ease);
	padding: 2px 0;
}
.aq-category-strip a:hover { color: var(--aq-hover); }

/* --- Product grid + card (premium cosmetology v2) ----------- */

.aq-product-grid,
ul.products.aq-product-grid {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(40px, 4vw, 64px) clamp(20px, 2vw, 32px);
}
@media (max-width: 1024px) { .aq-product-grid, ul.products.aq-product-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .aq-product-grid, ul.products.aq-product-grid { grid-template-columns: 1fr; gap: 32px; } }

.aq-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0;
	background: transparent;
	transition: transform 200ms var(--aq-ease);
}
@media (hover: hover) and (pointer: fine) {
	.aq-card:hover { transform: translateY(-2px); }
}

/* Stagger: each card reveals with a short delay based on --aq-i (set in JS) */
.aq-card.aq-reveal {
	transition-delay: calc(min(var(--aq-i, 0), 5) * 60ms);
}

/* Media surface */
.aq-card__media {
	position: relative;
	display: flex;
	flex-direction: column;
	aspect-ratio: 4 / 5;
	background: var(--aq-surface);
	overflow: hidden;
	border: 1px solid var(--aq-line-soft);
	border-bottom: 0;
	transition: border-color 200ms var(--aq-ease);
}
@media (hover: hover) and (pointer: fine) {
	.aq-card:hover .aq-card__media { border-color: var(--aq-ink); }
}
.aq-card::after {
	content: none;
}
.aq-card__media-link {
	flex: 1;
	display: block;
	min-height: 0;
	position: relative;
}
.aq-card__media-link img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 14% 16%;
	transition: transform 240ms var(--aq-ease);
}
@media (hover: hover) and (pointer: fine) {
	.aq-card:hover .aq-card__media-link img { transform: scale(1.025); }
}

/* Top meta strip */
.aq-card__badges {
	position: absolute;
	top: 16px;
	left: 18px;
	right: 18px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	z-index: 2;
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--aq-ink);
	pointer-events: none;
}
/* The strip sits over the product photograph, so its backdrop is content, not
   CSS. Measured across the catalogue, soft product shadows under the badge box
   drop --aq-accent-ink to 3.49:1, and any future dark photograph could take it
   arbitrarily low. A solid plate is the only backdrop that holds a guarantee
   regardless of the image behind it: 5.32:1 for the accent badge, 16.95:1 for
   the rest (DIM-524). Anything translucent passes today's photographs and
   fails tomorrow's. */
.aq-card__badges-left {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 5px 10px;
	background: var(--aq-surface);
	border-radius: 2px;
}
.aq-card__badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: transparent;
	padding: 0;
	border: 0;
	color: var(--aq-ink);
}
.aq-card__badge--new { color: var(--aq-accent-ink); }
.aq-card__badge--new::before,
.aq-card__badge--stock::before {
	content: "";
	width: 6px; height: 6px;
	border-radius: 50%;
}
.aq-card__badge--new::before { background: var(--aq-accent-2); }
.aq-card__badge--stock::before { background: var(--aq-success); }
.aq-card__badge-divider {
	width: 1px;
	height: 9px;
	background: var(--aq-line);
}
.aq-card__badge--ml { color: var(--aq-muted); letter-spacing: 0.16em; }

/* Media-actions: wishlist + quick-cart (top right column) */
.aq-card__media-actions {
	position: absolute;
	top: 14px; right: 14px;
	z-index: 3;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.aq-card__icon-btn {
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.94);
	border: 1px solid var(--aq-line);
	border-radius: 999px;
	color: var(--aq-ink);
	opacity: 0;
	transform: translateY(-4px) scale(0.94);
	transform-origin: top right;
	transition:
		opacity 220ms cubic-bezier(0.23, 1, 0.32, 1),
		transform 220ms cubic-bezier(0.23, 1, 0.32, 1),
		background 180ms cubic-bezier(0.23, 1, 0.32, 1),
		color 180ms cubic-bezier(0.23, 1, 0.32, 1),
		border-color 180ms cubic-bezier(0.23, 1, 0.32, 1);
	cursor: pointer;
	text-decoration: none;
}
.aq-card__icon-btn:active { transform: scale(0.92); }
@media (hover: hover) and (pointer: fine) {
	.aq-card:hover .aq-card__icon-btn { opacity: 1; transform: translateY(0) scale(1); }
	.aq-card:hover .aq-card__icon-btn:nth-child(2) { transition-delay: 50ms; }
}
@media (hover: none) {
	.aq-card__icon-btn { opacity: 1; transform: none; }
}
.aq-card__icon-btn svg { width: 16px; height: 16px; }
.aq-card__icon-btn:hover { background: var(--aq-ink); color: var(--aq-bg); border-color: var(--aq-ink); }
.aq-card__icon-btn--solid {
	background: var(--aq-ink);
	color: var(--aq-bg);
	border-color: var(--aq-ink);
}

/* Wishlist: spring-pop + filled state */
.aq-card__wishlist svg path { transition: fill 220ms ease, stroke 220ms ease; }
.aq-card__wishlist[aria-pressed="true"] svg path,
.aq-card__wishlist.is-active svg path {
	fill: var(--aq-accent);
	stroke: var(--aq-accent);
}
.aq-card__wishlist.is-active { transform: scale(1.04); }
.aq-card__icon-btn--solid:hover { background: var(--aq-hover); border-color: var(--aq-hover); }

/* Rating row inside media foot */
.aq-card__media-foot {
	position: relative;
	z-index: 2;
	padding: 14px 20px;
	border-top: 1px solid var(--aq-line-soft);
	background: var(--aq-surface);
}
.aq-card__rating {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--aq-ink-soft);
}
.aq-card__stars { display: inline-flex; gap: 2px; color: var(--aq-accent); transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1); }
.aq-card:hover .aq-card__stars { transform: translateY(-1px); }
.aq-card__stars svg { width: 13px; height: 13px; }
.aq-card__rating-val { color: var(--aq-ink); font-weight: 600; }
.aq-card__rating-count { color: var(--aq-muted); font-size: 11px; }

/* Body */
.aq-card__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 20px 20px 22px;
	background: var(--aq-bg);
	border: 1px solid var(--aq-line-soft);
	border-top: 0;
	transition: border-color 220ms cubic-bezier(0.23, 1, 0.32, 1), background 320ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-card:hover .aq-card__body {
	border-color: var(--aq-ink);
	background: var(--aq-surface);
}
.aq-card__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--aq-muted);
}
.aq-card__eyebrow::before {
	content: "";
	width: 18px; height: 1px;
	background: var(--aq-muted);
}
.aq-card__title {
	font-family: var(--aq-display);
	font-size: clamp(20px, 1.8vw, 24px);
	font-weight: 500;
	line-height: 1.18;
	letter-spacing: -0.022em;
	margin: 2px 0 0;
	color: var(--aq-ink);
}
.aq-card__title a { color: inherit; text-decoration: none; }
.aq-card__desc {
	font-family: var(--aq-sans);
	font-size: 13px;
	line-height: 1.55;
	color: var(--aq-muted);
	margin: 0;
}

/* Price row */
.aq-card__price-wrap {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	/* wrap so the Germanized Grundpreis (flex-basis:100%) drops to its own line
	   instead of being squeezed into the price row */
	flex-wrap: wrap;
	gap: 0 16px;
	padding-top: 14px;
	margin-top: 6px;
	border-top: 1px solid var(--aq-line);
}
.aq-card__price-main { display: inline-flex; flex-direction: column; gap: 4px; }
.aq-card__price {
	margin: 0;
	font-family: var(--aq-display);
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 500;
	letter-spacing: -0.02em;
	color: var(--aq-ink);
	line-height: 1.05;
}
.aq-card__price del { color: var(--aq-muted); font-weight: 400; margin-right: 8px; font-size: 0.7em; }
.aq-card__price ins { text-decoration: none; }
.aq-card__price--quote { font-size: clamp(18px, 1.6vw, 22px); letter-spacing: -0.01em; }
.aq-card__price-tax {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-muted);
}
.aq-card__perml {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px;
	max-width: 100%;
	min-width: 0;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	color: var(--aq-muted);
	letter-spacing: 0;
}
.aq-card__perml > span[aria-hidden] {
	color: var(--aq-line);
	font-size: 14px;
	padding-right: 2px;
}
.aq-card__perml-label {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--aq-muted);
}

/* Benefits inside the card */
.aq-card__benefits {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 7px;
}
.aq-card__benefits li {
	position: relative;
	padding-left: 22px;
	font-family: var(--aq-sans);
	font-size: 13px;
	line-height: 1.45;
	color: var(--aq-ink);
	letter-spacing: -0.003em;
}
.aq-card__benefits li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 5px;
	width: 12px;
	height: 7px;
	border-left: 1.4px solid var(--aq-accent);
	border-bottom: 1.4px solid var(--aq-accent);
	transform: rotate(-45deg);
}

/* Indications overlay on media (revealed on hover) */
.aq-card__indications {
	position: absolute;
	inset: auto 0 0 0;
	padding: 14px 18px 16px;
	background: linear-gradient(to top, color-mix(in srgb, var(--aq-bg) 96%, transparent) 70%, transparent);
	color: var(--aq-ink);
	display: flex;
	flex-direction: column;
	gap: 6px;
	transform: translateY(110%);
	transition: transform 320ms cubic-bezier(0.23, 1, 0.32, 1);
	pointer-events: none;
	z-index: 2;
}
.aq-card__indications-label {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--aq-muted);
}
.aq-card__indications-label::before {
	content: "→";
	display: inline-block;
	color: var(--aq-accent);
	margin-right: 8px;
}
.aq-card__indications ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	column-gap: 10px;
	row-gap: 4px;
	font-family: var(--aq-display);
	font-size: 13px;
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.005em;
	line-height: 1.4;
}
.aq-card__indications li + li::before {
	content: "/";
	color: var(--aq-line);
	margin-right: 10px;
	font-weight: 400;
}
@media (hover: hover) and (pointer: fine) {
	.aq-card:hover .aq-card__indications { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
	.aq-card__indications { transition: opacity 200ms ease; transform: none; opacity: 0; }
	.aq-card:hover .aq-card__indications { opacity: 1; }
}

/* Legally required price notices injected by Germanized on
   `woocommerce_after_shop_loop_item`: tax info, shipping costs, delivery time, units.
   Empty when Germanized is inactive — :empty keeps the card spacing intact. */
.aq-card__legal {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-top: 8px;
}
.aq-card__legal:empty { display: none; }
.aq-card__legal .wc-gzd-additional-info {
	margin: 0;
	font-family: var(--aq-sans);
	font-size: 11px;
	line-height: 1.45;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--aq-muted);
}
.aq-card__legal .wc-gzd-additional-info a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Grundpreis (unit price) printed by Germanized on `woocommerce_after_shop_loop_item_title`,
   inside .aq-card__price-wrap. Matches the .aq-card__perml treatment. */
.aq-card__price-wrap .wc-gzd-additional-info {
	flex-basis: 100%;
	margin: 4px 0 0;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--aq-muted);
}

/* "Mehr erfahren" link (replaces full CTA — quick-cart icon stays on media) */
.aq-card__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 4px;
	padding: 0;
	background: transparent;
	color: var(--aq-ink);
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	text-decoration: none;
	border: 0;
	align-self: flex-start;
	transition: color 220ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-card__more i {
	font-style: normal;
	font-size: 14px;
	transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-card__more::after {
	content: "";
	display: inline-block;
	width: 16px; height: 1px;
	background: currentColor;
	margin-left: 4px;
	transform-origin: left center;
	transform: scaleX(0.5);
	transition: transform 320ms cubic-bezier(0.23, 1, 0.32, 1), background 220ms ease;
}
@media (hover: hover) and (pointer: fine) {
	.aq-card__more:hover { color: var(--aq-hover); }
	.aq-card__more:hover i { transform: translateX(3px); }
	.aq-card__more:hover::after { transform: scaleX(1); }
}
/* Touch ergonomics — enlarge the tap zone of inline text CTAs on touch
   viewports without changing their visual size (vertical padding only). */
@media (max-width: 560px) {
	.aq-card__more,
	.aq-ghost-link,
	.aq-gfit__link { padding-block: 11px; }
	.aq-card__more { margin-top: 0; }
}

/* --- Featured ------------------------------------------------ */

.aq-featured {
	padding-top: clamp(64px, 8vw, 110px);
	padding-bottom: clamp(72px, 9vw, 130px);
}
.aq-featured .aq-section__header h2 { max-width: 22ch; }

/* --- Footer ------------------------------------------------ */

.aq-footer {
	background: var(--aq-bg);
	border-top: 1px solid var(--aq-line);
	padding: clamp(56px, 7vw, 96px) var(--aq-pad) 32px;
	max-width: var(--aq-max);
	margin: 0 auto;
}
.aq-footer__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(32px, 4vw, 64px);
	margin-bottom: clamp(36px, 4vw, 56px);
}
.aq-footer__grid section {
	display: flex;
	flex-direction: column;
	gap: 14px;
	font-size: 13px;
	color: var(--aq-ink-soft);
	line-height: 1.65;
}
.aq-footer__grid p { margin: 0; }
.aq-footer__heading {
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--aq-ink);
	margin: 0 0 8px;
}
.aq-footer__links { display: flex; flex-direction: column; gap: 10px; }
.aq-footer__links a {
	color: var(--aq-ink-soft);
	text-decoration: none;
	transition: color 320ms var(--aq-ease);
}
.aq-footer__links a:hover { color: var(--aq-hover); }
.aq-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding-top: 24px;
	border-top: 1px solid var(--aq-line);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aq-muted-on-tint);
}
@media (max-width: 900px) {
	.aq-footer__grid { grid-template-columns: 1fr; gap: 32px; }
	.aq-footer__bottom { flex-direction: column; }
}

/* --- Shop hero ---------------------------------------------- */

.aq-shop-hero {
	padding: clamp(48px, 6vw, 80px) var(--aq-pad) clamp(32px, 4vw, 48px);
	max-width: var(--aq-max);
	margin: 0 auto;
}
.aq-shop-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: clamp(40px, 5vw, 80px);
	align-items: end;
}
.aq-shop-hero__copy { display: flex; flex-direction: column; gap: 22px; max-width: 56ch; }
.aq-shop-hero__lede { color: var(--aq-ink-soft); font-size: clamp(15px, 1.2vw, 17px); line-height: 1.6; }
.aq-shop-hero__links {
	display: flex; gap: 24px; flex-wrap: wrap;
	padding-top: 16px;
	border-top: 1px solid var(--aq-line);
}
.aq-shop-hero__links a {
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--aq-ink);
	text-decoration: none;
	padding-top: 4px;
	border-top: 1px solid transparent;
	transition: color 320ms var(--aq-ease), border-color 320ms var(--aq-ease);
}
.aq-shop-hero__links a.is-active { border-top-color: var(--aq-ink); }
.aq-shop-hero__links a:hover { color: var(--aq-hover); }
.aq-shop-hero__visual {
	margin: 0;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
}
.aq-shop-hero__visual img { width: 100%; height: 100%; object-fit: contain; padding: 8% 14%; }

@media (max-width: 900px) { .aq-shop-hero__inner { grid-template-columns: 1fr; } }

/* --- Shop toolbar ------------------------------------------- */

.aq-shop-notices {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: 0 var(--aq-pad);
}
.aq-shop-notices:empty { display: none; }
.aq-shop-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	padding: 18px var(--aq-pad);
	max-width: var(--aq-max);
	margin: 0 auto;
	border-top: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aq-muted);
}
.aq-shop-toolbar .woocommerce-result-count { margin: 0; }
.aq-shop-toolbar .woocommerce-ordering { margin: 0; }
.aq-shop-toolbar select {
	background: transparent;
	border: 0;
	padding: 8px 22px 8px 0;
	font-family: var(--aq-sans);
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aq-ink);
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23111111' stroke-width='1.2'%3E%3Cpath d='M1 1.5 6 6l5-4.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 4px center;
	background-size: 10px;
}

.aq-shop-loop {
	padding: clamp(40px, 5vw, 72px) var(--aq-pad) clamp(64px, 7vw, 110px);
	max-width: var(--aq-max);
	margin: 0 auto;
}

.woocommerce-pagination { margin-top: clamp(48px, 6vw, 80px); display: flex; justify-content: center; }
.woocommerce-pagination ul { list-style: none; display: flex; gap: 6px; padding: 0; margin: 0; }
.woocommerce-pagination a, .woocommerce-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px; height: 38px;
	padding: 0 12px;
	border: 1px solid var(--aq-line);
	color: var(--aq-ink);
	font-family: var(--aq-sans);
	font-size: 12px; font-weight: 500;
	letter-spacing: 0.08em;
	text-decoration: none;
	transition: background 320ms var(--aq-ease), color 320ms var(--aq-ease);
}
.woocommerce-pagination a:hover { background: var(--aq-ink); color: var(--aq-bg); }
.woocommerce-pagination .current { background: var(--aq-ink); color: var(--aq-bg); border-color: var(--aq-ink); }

/* --- Single product (LEGACY — superseded by single-product.css when AQSKIN_NEW_SINGLE_PRODUCT) --- */

.aq-single {
	padding: clamp(40px, 5vw, 72px) var(--aq-pad) clamp(56px, 7vw, 110px);
	max-width: var(--aq-max);
	margin: 0 auto;
}
.aq-single__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: clamp(40px, 6vw, 80px);
	align-items: start;
}
.aq-single .woocommerce-product-gallery,
.aq-single div.product .woocommerce-product-gallery {
	float: none;
	width: 100%;
	margin: 0;
	position: sticky;
	top: calc(var(--aq-header-h) + 16px);
}
.aq-single .woocommerce-product-gallery__image {
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
}
.aq-single .woocommerce-product-gallery__image img {
	width: 100%; height: auto;
	aspect-ratio: 4 / 5;
	object-fit: contain;
	padding: 8% 14%;
}

.aq-single .summary,
.aq-single div.product .summary.entry-summary {
	float: none;
	width: 100%;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding-top: 8px;
}
.aq-single__eyebrow { color: var(--aq-muted); }
.aq-single .product_title.entry-title {
	font-family: var(--aq-display);
	font-size: clamp(34px, 4vw, 54px);
	font-weight: 500;
	line-height: 1.02;
	letter-spacing: -0.035em;
	color: var(--aq-ink);
	margin: 0;
}
.aq-single .price {
	font-family: var(--aq-sans);
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 600;
	color: var(--aq-ink);
	margin: 8px 0 4px;
	letter-spacing: -0.005em;
}
.aq-single .price del { color: var(--aq-muted); font-size: 65%; margin-right: 8px; font-weight: 400; }
.aq-single .price ins { text-decoration: none; }
.aq-single .woocommerce-product-details__short-description {
	color: var(--aq-ink);
	font-family: var(--aq-display);
	font-size: clamp(17px, 1.4vw, 19px);
	line-height: 1.45;
	letter-spacing: -0.008em;
	max-width: 38ch;
	margin: 4px 0 4px;
}
.aq-single .woocommerce-product-details__short-description p { margin: 0; }
.aq-single .woocommerce-product-details__short-description p::first-letter {
	font-family: var(--aq-display);
	font-size: 2.6em;
	font-weight: 500;
	line-height: 0.82;
	float: left;
	padding: 6px 10px 0 0;
	color: var(--aq-ink);
	letter-spacing: -0.04em;
}
.aq-single form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
	margin: 18px 0 8px;
}

/* Quantity stepper: custom −/+ controls, browser spinners hidden */
.aq-single .quantity {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--aq-line);
	height: 52px;
	overflow: hidden;
	background: var(--aq-bg);
}
.aq-single .quantity .aq-qty-btn {
	width: 44px;
	border: 0;
	background: transparent;
	color: var(--aq-ink);
	font-family: var(--aq-sans);
	font-size: 16px;
	font-weight: 400;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 140ms cubic-bezier(0.23, 1, 0.32, 1), background 180ms ease, color 180ms ease;
}
@media (hover: hover) and (pointer: fine) {
	.aq-single .quantity .aq-qty-btn:hover { background: var(--aq-surface); }
}
.aq-single .quantity .aq-qty-btn:active { transform: scale(0.88); }
.aq-single .quantity .aq-qty-btn:disabled { color: var(--aq-muted); cursor: not-allowed; opacity: 0.5; }
.aq-single .quantity .aq-qty-btn:focus-visible {
	outline: 2px solid var(--aq-ink);
	outline-offset: -2px;
}
.aq-single .quantity input[type="number"] {
	width: 56px;
	height: 100%;
	border: 0;
	border-left: 1px solid var(--aq-line);
	border-right: 1px solid var(--aq-line);
	text-align: center;
	background: transparent;
	font-family: var(--aq-sans);
	font-size: 15px;
	font-weight: 500;
	color: var(--aq-ink);
	-moz-appearance: textfield;
}
.aq-single .quantity input[type="number"]::-webkit-outer-spin-button,
.aq-single .quantity input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.aq-single .quantity input[type="number"]:focus { outline: none; background: var(--aq-surface); }

/* Primary CTA: tactile press + accent reveal on hover */
.aq-single .single_add_to_cart_button {
	position: relative;
	overflow: hidden;
	color: var(--aq-bg);
	border: 0;
	padding: 0 40px;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
	isolation: isolate;
	transition:
		transform 160ms cubic-bezier(0.23, 1, 0.32, 1),
		background 220ms cubic-bezier(0.23, 1, 0.32, 1);
	will-change: transform;
}
.aq-single .single_add_to_cart_button::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--aq-accent-cta);
	clip-path: inset(0 100% 0 0);
	transition: clip-path 320ms cubic-bezier(0.23, 1, 0.32, 1);
	z-index: -1;
}
@media (hover: hover) and (pointer: fine) {
	.aq-single .single_add_to_cart_button:hover::before { clip-path: inset(0 0 0 0); }
}
.aq-single .single_add_to_cart_button:active { transform: scale(0.97); }
.aq-single .single_add_to_cart_button:focus-visible {
	outline: 2px solid var(--aq-accent);
	outline-offset: 3px;
}

/* Product passport footer (custom markup rendered by aqskin_render_product_meta) */
.aq-single .aq-passport {
	margin-top: 24px;
	padding-top: 22px;
	border-top: 1px solid var(--aq-line);
	display: grid;
	gap: 4px;
	position: relative;
}
.aq-single .aq-passport__heading {
	position: absolute;
	top: -7px;
	left: 0;
	background: var(--aq-bg);
	padding-right: 12px;
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--aq-muted);
}
.aq-single .aq-passport__row {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 16px;
	padding: 6px 0;
	font-family: var(--aq-sans);
	font-size: 13px;
	color: var(--aq-ink);
	border-bottom: 1px dashed transparent;
}
.aq-single .aq-passport__row + .aq-passport__row { border-top: 1px dashed var(--aq-line); }
.aq-single .aq-passport__label {
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--aq-muted);
}
.aq-single .aq-passport__value { font-weight: 500; }
.aq-single .aq-passport__value .aq-pao-icon {
	width: 22px;
	height: 22px;
	color: var(--aq-ink);
	vertical-align: -6px;
	margin-right: 8px;
}
.aq-single .aq-passport__value .aq-pao-value {
	font-family: var(--aq-display);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: -0.005em;
}
.aq-single .aq-passport__value a {
	color: var(--aq-ink);
	text-decoration: none;
	transition: color 180ms ease;
}
.aq-single .aq-passport__value a:hover { color: var(--aq-hover); }
@media (max-width: 520px) {
	.aq-single .aq-passport__row { grid-template-columns: 1fr; gap: 2px; }
}

/* Breadcrumb */

.aq-breadcrumb {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--aq-muted);
	margin: 0 0 clamp(16px, 2vw, 24px);
}
.aq-breadcrumb a {
	color: var(--aq-muted);
	text-decoration: none;
	transition: color 180ms ease;
}
.aq-breadcrumb a:hover { color: var(--aq-ink); }
.aq-breadcrumb > span[aria-hidden] { color: var(--aq-line); }
.aq-breadcrumb__current { color: var(--aq-ink); }

/* Single-product: info-rows as a numbered product passport.
   Each .aq-pill becomes an indexed line: 01 / LABEL / VALUE. */

.aq-product-micro--single {
	display: flex;
	flex-direction: column;
	border-top: 1px solid var(--aq-line);
	margin: 4px 0 12px;
	counter-reset: aq-passport;
}
.aq-product-micro--single .aq-pill {
	counter-increment: aq-passport;
	position: relative;
	display: grid;
	grid-template-columns: 28px minmax(0, 1.05fr) minmax(0, 1.6fr);
	column-gap: clamp(12px, 1.6vw, 20px);
	padding: 14px 0 14px 4px;
	border-bottom: 1px solid var(--aq-line);
	align-items: baseline;
	transition: background 220ms ease;
}
.aq-product-micro--single .aq-pill::before {
	content: counter(aq-passport, decimal-leading-zero);
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.22em;
	color: var(--aq-muted);
	font-variant-numeric: tabular-nums;
	align-self: center;
}
@media (hover: hover) and (pointer: fine) {
	.aq-product-micro--single .aq-pill:hover { background: color-mix(in srgb, var(--aq-surface) 60%, transparent); }
	.aq-product-micro--single .aq-pill:hover::before { color: var(--aq-ink); }
}
.aq-product-micro--single .aq-pill > span:first-of-type {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--aq-muted);
}
.aq-product-micro--single .aq-pill > strong {
	font-family: var(--aq-sans);
	font-size: 14px;
	font-weight: 500;
	color: var(--aq-ink);
	line-height: 1.5;
	letter-spacing: -0.005em;
}
.aq-product-micro--single .aq-pill--price > strong {
	font-family: var(--aq-display);
	font-size: 17px;
	font-weight: 500;
	letter-spacing: -0.01em;
	color: var(--aq-ink);
}
.aq-product-micro--single .aq-pill--wide > strong { font-size: 13px; color: var(--aq-ink-soft); font-weight: 400; }

@media (max-width: 640px) {
	.aq-product-micro--single .aq-pill {
		grid-template-columns: 24px 1fr;
		row-gap: 4px;
	}
	.aq-product-micro--single .aq-pill > strong {
		grid-column: 2 / -1;
	}
}

/* Single-product: benefits list — manifesto-like rhythm with stagger reveal */

.aq-benefit-list {
	list-style: none;
	margin: 4px 0 2px;
	padding: 0 0 0 14px;
	display: grid;
	gap: 12px;
	border-left: 1px solid var(--aq-line);
}
.aq-benefit-list li {
	position: relative;
	padding-left: 28px;
	font-size: 14px;
	line-height: 1.55;
	color: var(--aq-ink);
	letter-spacing: -0.003em;
	opacity: 1;
	transform: translateX(0);
	transition: opacity 380ms cubic-bezier(0.23, 1, 0.32, 1), transform 380ms cubic-bezier(0.23, 1, 0.32, 1);
}
@starting-style {
	.aq-benefit-list li {
		opacity: 0;
		transform: translateX(-8px);
	}
}
.aq-benefit-list li:nth-child(1) { transition-delay: 60ms; }
.aq-benefit-list li:nth-child(2) { transition-delay: 120ms; }
.aq-benefit-list li:nth-child(3) { transition-delay: 180ms; }
.aq-benefit-list li:nth-child(4) { transition-delay: 240ms; }
.aq-benefit-list li:nth-child(5) { transition-delay: 300ms; }
.aq-benefit-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 5px;
	width: 14px;
	height: 9px;
	border-left: 1.5px solid var(--aq-accent);
	border-bottom: 1.5px solid var(--aq-accent);
	transform: rotate(-45deg);
}
.aq-benefit-copy {
	font-size: 14px;
	line-height: 1.65;
	color: var(--aq-ink-soft);
}

/* Stock indicator */

.aq-single .stock {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--aq-ink-soft);
	margin: 4px 0;
}
.aq-single .stock::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--aq-accent);
}
.aq-single .stock.out-of-stock { color: var(--aq-muted); }
.aq-single .stock.out-of-stock::before {
	background: var(--aq-muted);
}

/* Legal/tax sub-line: demoted, uppercase tracking, muted */
.aq-single .legal-price-info,
.aq-single .legal-price-info .wc-gzd-additional-info {
	margin: 0;
	padding: 0;
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--aq-muted);
	line-height: 1.4;
}
.aq-single .legal-price-info p { margin: 0; }
.aq-single .legal-price-info .tax-info,
.aq-single .legal-price-info .shipping-costs-info {
	display: inline;
}
.aq-single .legal-price-info .shipping-costs-info::before {
	content: "·";
	margin: 0 8px;
	color: var(--aq-line);
}
.aq-single .legal-price-info a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: var(--aq-line);
	text-underline-offset: 3px;
}
.aq-single .legal-price-info a:hover { color: var(--aq-ink); }

/* Tabs */

.woocommerce-tabs.wc-tabs-wrapper {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(56px, 7vw, 110px) var(--aq-pad) 0;
	border-top: 1px solid var(--aq-line);
}
.woocommerce-tabs ul.tabs {
	list-style: none;
	margin: 0 0 40px;
	padding: 0;
	display: flex;
	gap: 32px;
	flex-wrap: wrap;
	border-bottom: 1px solid var(--aq-line);
}
.woocommerce-tabs ul.tabs li { padding: 0; margin: 0; background: none; border: 0; }
.woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 16px 0;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--aq-muted);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	margin-bottom: -1px;
	transition: color 320ms var(--aq-ease), border-color 320ms var(--aq-ease);
}
.woocommerce-tabs ul.tabs li a:hover { color: var(--aq-ink); }
.woocommerce-tabs ul.tabs li.active a { color: var(--aq-ink); border-bottom-color: var(--aq-ink); }
.woocommerce-tabs .panel {
	max-width: 70ch;
	color: var(--aq-ink-soft);
	font-size: 15px;
	line-height: 1.7;
}
.woocommerce-tabs .panel h2 {
	font-family: var(--aq-display);
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 500;
	color: var(--aq-ink);
	margin: 0 0 18px;
	letter-spacing: -0.02em;
}
.woocommerce-tabs .panel { max-width: 100%; }

/* --- Reviews tab --------------------------------------------- */

.woocommerce-Reviews #comments { margin: 0 0 32px; }
.woocommerce-Reviews .woocommerce-Reviews-title {
	font-family: var(--aq-display);
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.02em;
	margin: 0 0 18px;
}
.woocommerce-noreviews {
	font-size: 14px;
	color: var(--aq-ink-soft);
	background: var(--aq-surface);
	border: 1px dashed var(--aq-line);
	padding: clamp(16px, 2vw, 24px);
	margin: 0 0 28px;
}
.commentlist {
	list-style: none;
	margin: 0 0 32px;
	padding: 0;
	display: grid;
	gap: 16px;
}
.commentlist li.review {
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	padding: clamp(18px, 2vw, 24px);
	transition: border-color 220ms cubic-bezier(0.23, 1, 0.32, 1), box-shadow 220ms ease;
}
@media (hover: hover) and (pointer: fine) {
	.commentlist li.review:hover {
		border-color: color-mix(in srgb, var(--aq-ink) 22%, var(--aq-line));
		box-shadow: 0 14px 28px -24px rgba(15, 15, 15, 0.18);
	}
}
.commentlist .comment_container {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	column-gap: 16px;
	align-items: start;
}
.commentlist .comment_container > img.avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1px solid var(--aq-line);
	background: var(--aq-surface);
	object-fit: cover;
}
.commentlist .comment-text { min-width: 0; }
.commentlist .comment-text .star-rating { margin: 0 0 10px; font-size: 13px; }
.commentlist .meta {
	font-family: var(--aq-sans);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-muted);
	margin: 0 0 10px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
.commentlist .woocommerce-review__author {
	color: var(--aq-ink);
	font-weight: 500;
	letter-spacing: 0.02em;
	text-transform: none;
	font-family: var(--aq-display);
	font-size: 14px;
}
.commentlist .woocommerce-review__dash { color: var(--aq-line); }
.commentlist .woocommerce-review__published-date {
	font-family: var(--aq-sans);
	font-size: 11px;
	letter-spacing: 0.12em;
	color: var(--aq-muted);
	text-transform: uppercase;
}
.commentlist .description {
	font-size: 14px;
	line-height: 1.65;
	color: var(--aq-ink);
	letter-spacing: -0.003em;
}
.commentlist .description p { margin: 0; }

/* Verified-buyer badge (Germanized) */
.commentlist .wc-gzd-review-authenticity-status {
	margin: 12px 0 0;
	padding: 6px 10px 6px 8px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--aq-muted);
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	border-radius: 999px;
}
.commentlist .wc-gzd-review-authenticity-status::before {
	content: "";
	width: 10px; height: 10px;
	border-radius: 50%;
	background: var(--aq-success, var(--aq-accent));
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--aq-success, var(--aq-accent)) 18%, transparent);
}
.commentlist .wc-gzd-review-authenticity-status.is-verified { color: var(--aq-ink); }
.commentlist .wc-gzd-review-authenticity-status a {
	display: none;  /* trim noisy "Mehr Informationen" inline link */
}

/* Star rating display (WC base) */
.star-rating {
	font-family: var(--aq-sans);
	width: 5.4em;
	height: 1em;
	line-height: 1;
	font-size: 14px;
	position: relative;
	overflow: hidden;
	display: inline-block;
}
.star-rating::before {
	content: "★★★★★";
	color: var(--aq-line);
	letter-spacing: 0.08em;
	position: absolute;
	left: 0;
	top: 0;
}
.star-rating span {
	overflow: hidden;
	float: left;
	top: 0;
	left: 0;
	padding-top: 1.5em;
	position: relative;
	height: 0;
}
.star-rating span::before {
	content: "★★★★★";
	color: var(--aq-ink);
	letter-spacing: 0.08em;
	position: absolute;
	left: 0;
	top: 0;
}

/* Review form */
.woocommerce-Reviews #review_form_wrapper {
	background: var(--aq-bg);
	border-top: 1px solid var(--aq-line);
	padding-top: clamp(24px, 3vw, 36px);
}
.comment-reply-title {
	display: block;
	font-family: var(--aq-display);
	font-size: clamp(20px, 1.8vw, 24px);
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.015em;
	margin: 0 0 16px;
}
.comment-notes {
	font-size: 12px;
	color: var(--aq-muted);
	margin: 0 0 20px;
}
.comment-form-rating { margin: 0 0 18px; }
.comment-form-rating label {
	display: block;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--aq-muted);
	margin: 0 0 8px;
}

/* Interactive star picker (anchor-based, no JS) */
p.stars {
	display: inline-flex;
	gap: 2px;
	margin: 0;
	padding: 0;
}
p.stars > span { display: inline-flex; gap: 2px; }
p.stars a {
	position: relative;
	display: inline-block;
	width: 28px;
	height: 28px;
	color: transparent;
	text-decoration: none;
	font-size: 0;
	overflow: hidden;
	transition: transform 140ms cubic-bezier(0.23, 1, 0.32, 1);
}
p.stars a::before {
	content: "★";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	color: var(--aq-line);
	transition: color 160ms ease;
}
@media (hover: hover) and (pointer: fine) {
	p.stars:hover a::before { color: var(--aq-hover); }
	p.stars a:hover ~ a::before { color: var(--aq-line); }
}
p.stars.selected a.active::before,
p.stars.selected a.active ~ a::before { color: var(--aq-line); }
p.stars.selected a.active::before { color: var(--aq-ink); }
p.stars.selected a:not(.active)::before { color: var(--aq-ink); }
p.stars.selected a.active ~ a:not(.active)::before { color: var(--aq-line); }
p.stars a:active { transform: scale(0.88); }

/* Comment form fields */
.comment-form-comment, .comment-form-author, .comment-form-email { margin: 0 0 14px; }
.comment-form label {
	display: block;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--aq-muted);
	margin: 0 0 6px;
}
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	max-width: 100%;
	border: 1px solid var(--aq-line);
	background: var(--aq-bg);
	padding: 12px 14px;
	font-family: var(--aq-sans);
	font-size: 14px;
	color: var(--aq-ink);
	transition: border-color 220ms ease, box-shadow 220ms ease;
}
.comment-form textarea { min-height: 140px; resize: vertical; line-height: 1.55; }
.comment-form input:focus, .comment-form textarea:focus {
	outline: none;
	border-color: var(--aq-ink);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--aq-ink) 8%, transparent);
}
.comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 18px; font-size: 12px; color: var(--aq-ink-soft); }
.comment-form-cookies-consent input { margin-top: 3px; }

.form-submit { margin: 0; }
.form-submit .submit {
	position: relative;
	overflow: hidden;
	background: var(--aq-ink);
	color: var(--aq-bg);
	border: 0;
	border-radius: 0;
	padding: 0 32px;
	height: 48px;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
	transition:
		transform 160ms cubic-bezier(0.23, 1, 0.32, 1),
		background 220ms ease;
	will-change: transform;
}
@media (hover: hover) and (pointer: fine) {
	.form-submit .submit:hover { background: var(--aq-hover); }
}
.form-submit .submit:active { transform: scale(0.97); }
.form-submit .submit:focus-visible {
	outline: 2px solid var(--aq-accent);
	outline-offset: 3px;
}

/* AQ Details panel: 2-col card grid */

.aq-detail-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(20px, 2.5vw, 32px);
	max-width: 100%;
}
.aq-detail-panel {
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	padding: clamp(20px, 2vw, 28px);
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition:
		transform 220ms cubic-bezier(0.23, 1, 0.32, 1),
		border-color 220ms cubic-bezier(0.23, 1, 0.32, 1),
		box-shadow 220ms cubic-bezier(0.23, 1, 0.32, 1);
	will-change: transform;
}
@media (hover: hover) and (pointer: fine) {
	.aq-detail-panel:hover {
		transform: translateY(-2px);
		border-color: color-mix(in srgb, var(--aq-ink) 22%, var(--aq-line));
		box-shadow: 0 18px 32px -28px rgba(15, 15, 15, 0.18);
	}
}
.aq-detail-panel h3 {
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--aq-muted);
	margin: 0 0 4px;
}
.aq-detail-panel p, .aq-detail-panel ul {
	margin: 0;
	font-size: 14px;
	line-height: 1.65;
	color: var(--aq-ink);
}
.aq-detail-panel ul { padding-left: 18px; }
.aq-detail-panel ul li { padding: 2px 0; }
.aq-detail-panel--allergens {
	grid-column: 1 / -1;
	background: var(--aq-bg);
	border-color: color-mix(in srgb, var(--aq-ink) 18%, var(--aq-line));
	border-left-width: 2px;
}
.aq-detail-panel--allergens h3::before {
	content: "§";
	display: inline-block;
	margin-right: 8px;
	color: var(--aq-muted);
	font-family: var(--aq-display);
	font-weight: 500;
	transform: translateY(-1px);
}
.aq-detail-panel__note {
	margin: 12px 0 0;
	padding-top: 10px;
	border-top: 1px dashed var(--aq-line);
	font-size: 11px;
	letter-spacing: 0.02em;
	color: var(--aq-muted);
	line-height: 1.55;
}
@media (max-width: 720px) {
	.aq-detail-grid { grid-template-columns: 1fr; }
}

/* Related */

.related.products,
.up-sells.products {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(56px, 7vw, 110px) var(--aq-pad) 0;
}
.related.products > h2,
.up-sells.products > h2 {
	font-family: var(--aq-display);
	font-size: clamp(24px, 2.6vw, 32px);
	font-weight: 500;
	margin: 0 0 36px;
	letter-spacing: -0.025em;
}
.related.products ul.products,
.up-sells.products ul.products {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(32px, 3vw, 56px) clamp(20px, 2vw, 32px);
}
@media (max-width: 900px) {
	.related.products ul.products,
	.up-sells.products ul.products { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.related.products ul.products,
	.up-sells.products ul.products { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
	.aq-single__grid { grid-template-columns: 1fr; }
	.aq-single .woocommerce-product-gallery { position: static; }
}

/* --- WooCommerce notices ------------------------------------ */

.woocommerce-notices-wrapper { max-width: var(--aq-max); margin: 0 auto; padding: 0 var(--aq-pad); }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	font-family: var(--aq-sans);
	font-size: 13px;
	padding: 14px 18px;
	margin: 16px 0;
	border: 1px solid var(--aq-line);
	background: var(--aq-surface);
	color: var(--aq-ink);
	border-radius: 6px;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}
.woocommerce-error {
	background: #fdecec;
	border-color: #f3c4c4;
	color: #8c1f1f;
	display: block;
	padding: 14px 18px 14px 44px;
	position: relative;
	line-height: 1.55;
}
.woocommerce-error::before {
	content: '!';
	position: absolute;
	left: 14px;
	top: 14px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #8c1f1f;
	color: #fff;
	font-weight: 700;
	font-size: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.woocommerce-error li {
	display: block;
	margin: 0;
	padding: 2px 0;
}
.woocommerce-error li + li { border-top: 1px solid rgba(140,31,31,0.12); margin-top: 6px; padding-top: 8px; }
.woocommerce-message { border-left: 2px solid var(--aq-accent); }
.woocommerce-message a.button, .woocommerce-info a.button {
	background: var(--aq-ink);
	color: var(--aq-bg);
	padding: 10px 18px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border-radius: 0;
	text-decoration: none;
}

/* ============================================================
   Home sections (about, results, gfit, trust, press, faq, beratung)
   ============================================================ */

/* --- About AQ (editorial split) ------------------------------ */

.aq-section-about {
	padding: clamp(72px, 9vw, 130px) var(--aq-pad);
	max-width: var(--aq-max);
	margin: 0 auto;
	border-top: 1px solid var(--aq-line);
}
.aq-section-about__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: clamp(40px, 6vw, 96px);
	align-items: center;
}
.aq-section-about__copy { display: flex; flex-direction: column; gap: 24px; max-width: 48ch; }
.aq-section-about__lede {
	font-size: clamp(15px, 1.2vw, 17px);
	color: var(--aq-ink-soft);
	line-height: 1.65;
	margin: 0;
}
.aq-section-about__nobel {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 24px;
	padding: 24px 0;
	border-top: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
	margin: 4px 0;
}
.aq-section-about__nobel-year {
	font-family: var(--aq-display);
	font-size: clamp(40px, 4.5vw, 64px);
	font-weight: 500;
	line-height: 1;
	letter-spacing: -0.035em;
	color: var(--aq-ink);
}
.aq-section-about__nobel strong {
	display: block;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--aq-ink);
	margin-bottom: 8px;
}
.aq-section-about__nobel p {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
	color: var(--aq-ink-soft);
}

.aq-section-about__visual { display: flex; flex-direction: column; gap: 24px; }
.aq-section-about__media {
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--aq-surface-2);
}
.aq-section-about__media img { width: 100%; height: 100%; object-fit: cover; }

.aq-section-about__facts {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--aq-line);
}
.aq-section-about__facts > div {
	padding: 16px 16px 0 0;
	border-right: 1px solid var(--aq-line);
}
.aq-section-about__facts > div:last-child { border-right: 0; padding-right: 0; }
.aq-section-about__facts dt {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--aq-muted);
	margin: 0 0 6px;
}
.aq-section-about__facts dd {
	margin: 0;
	font-family: var(--aq-display);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: -0.005em;
	color: var(--aq-ink);
}

@media (max-width: 900px) {
	.aq-section-about__inner { grid-template-columns: 1fr; }
}

/* --- Before / After results ---------------------------------- */

.aq-section-results {
	padding: clamp(72px, 9vw, 130px) var(--aq-pad);
	max-width: var(--aq-max);
	margin: 0 auto;
	border-top: 1px solid var(--aq-line);
}
.aq-results-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(36px, 4vw, 56px) clamp(20px, 2vw, 32px);
}
.aq-results-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (max-width: 1024px) { .aq-results-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .aq-results-grid { grid-template-columns: 1fr; gap: 32px; } }

.aq-result {
	display: flex;
	flex-direction: column;
	gap: 0;
	background: var(--aq-bg);
	border: 1px solid var(--aq-line-soft);
	transition: border-color 220ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-result:hover { border-color: var(--aq-ink); }

.aq-result__slider {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--aq-surface-2);
	user-select: none;
	touch-action: pan-y;
}
.aq-result__img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	pointer-events: none;
}
.aq-result__after-clip {
	position: absolute;
	inset: 0;
	overflow: hidden;
	clip-path: inset(0 50% 0 0);
	transition: clip-path 80ms linear;
	will-change: clip-path;
}
/* While dragging, kill the 80ms clip-path easing so the reveal edge tracks
   the handle 1:1 (the handle's left updates instantly via JS). The matching
   override previously sat on the dead .aq-ba-slider variant. */
.aq-result__slider.is-dragging .aq-result__after-clip { transition: none; }
.aq-result__after-clip img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
}
.aq-result__handle {
	position: absolute;
	top: 0; bottom: 0;
	left: 50%;
	width: 44px;
	margin-left: -22px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: ew-resize;
	background: transparent;
	border: 0;
	z-index: 3;
	touch-action: none;
}
.aq-result__handle-line {
	position: absolute;
	top: 0; bottom: 0;
	left: 50%;
	width: 2px;
	margin-left: -1px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 0 18px rgba(0, 0, 0, 0.25);
}
.aq-result__handle-grip {
	position: relative;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--aq-bg);
	border-radius: 999px;
	border: 1px solid var(--aq-ink);
	color: var(--aq-ink);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
	transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-result__handle-grip svg { width: 16px; height: 16px; }
.aq-result__handle:hover .aq-result__handle-grip { transform: scale(1.08); }
.aq-result__handle:active .aq-result__handle-grip { transform: scale(0.95); }

.aq-result__label {
	position: absolute;
	top: 14px;
	z-index: 2;
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	padding: 5px 10px;
	background: rgba(255, 255, 255, 0.94);
	color: var(--aq-ink);
	border: 1px solid var(--aq-line);
}
.aq-result__label--before { left: 14px; }
.aq-result__label--after { right: 14px; color: var(--aq-bg); background: var(--aq-ink); border-color: var(--aq-ink); }

.aq-result__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 22px 22px 24px;
}
.aq-result__protocol {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--aq-accent-ink);
}
.aq-result__title {
	font-family: var(--aq-display);
	font-size: clamp(20px, 1.8vw, 24px);
	font-weight: 500;
	letter-spacing: -0.022em;
	line-height: 1.18;
	margin: 0;
	color: var(--aq-ink);
}
.aq-result__desc {
	margin: 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--aq-muted);
}
.aq-result__metric {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding-top: 12px;
	margin-top: 6px;
	border-top: 1px solid var(--aq-line);
}
.aq-result__metric strong {
	font-family: var(--aq-display);
	font-size: clamp(28px, 2.8vw, 36px);
	font-weight: 500;
	letter-spacing: -0.03em;
	color: var(--aq-ink);
	line-height: 1;
}
.aq-result__metric span {
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--aq-muted);
}

/* --- GFIT Protocols ----------------------------------------- */

.aq-section-gfit {
	border-top: 1px solid var(--aq-line);
}
.aq-gfit-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: clamp(20px, 2.5vw, 36px);
}
.aq-gfit-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (max-width: 900px) {
	.aq-gfit-grid { grid-template-columns: 1fr; gap: 16px; }
	.aq-gfit-grid > :last-child:nth-child(odd) { grid-column: auto; }
	/* Drop the equal-height floor on single-column mobile — full-width tiles
	   with short content otherwise get large empty space. */
	.aq-gfit__tile { min-height: 0; }
}

.aq-gfit__tile {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 36px 28px 32px;
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	transition:
		border-color 220ms cubic-bezier(0.23, 1, 0.32, 1),
		transform 320ms cubic-bezier(0.23, 1, 0.32, 1),
		background 320ms cubic-bezier(0.23, 1, 0.32, 1);
	min-height: 360px;
}
.aq-gfit__tile:hover {
	border-color: var(--aq-ink);
	transform: translateY(-3px);
	background: var(--aq-bg);
}

.aq-gfit__num {
	position: absolute;
	top: 24px;
	right: 28px;
	font-family: var(--aq-display);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.12em;
	color: var(--aq-muted);
}
.aq-gfit__icon {
	width: 48px;
	height: 48px;
	color: var(--aq-ink);
	margin-bottom: 8px;
}
.aq-gfit__icon svg { width: 100%; height: 100%; }
.aq-gfit__name {
	font-family: var(--aq-display);
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 500;
	letter-spacing: -0.025em;
	margin: 0;
	color: var(--aq-ink);
}
.aq-gfit__desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--aq-ink-soft);
}
.aq-gfit__products {
	list-style: none;
	padding: 0;
	margin: 8px 0 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
	border-top: 1px solid var(--aq-line);
	padding-top: 14px;
}
.aq-gfit__products li {
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--aq-ink);
	display: flex;
	align-items: center;
	gap: 8px;
}
.aq-gfit__products li::before {
	content: "";
	width: 3px; height: 3px;
	border-radius: 50%;
	background: var(--aq-accent);
}
.aq-gfit__link {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--aq-ink);
	border-bottom: 1px solid var(--aq-ink);
	align-self: flex-start;
	padding-bottom: 4px;
	text-decoration: none;
	transition: color 220ms ease, border-color 220ms ease, gap 220ms ease;
}
.aq-gfit__link i { font-style: normal; transition: transform 220ms ease; }
.aq-gfit__link:hover { color: var(--aq-hover); border-color: var(--aq-hover); gap: 12px; }
.aq-gfit__link:hover i { transform: translateX(4px); }

/* --- Trust badges ------------------------------------------- */

.aq-section-trust {
	padding: clamp(48px, 6vw, 80px) var(--aq-pad);
	max-width: var(--aq-max);
	margin: 0 auto;
	border-top: 1px solid var(--aq-line);
}
.aq-trust-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
}
@media (max-width: 900px) { .aq-trust-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .aq-trust-grid { grid-template-columns: 1fr; } }

.aq-trust__tile {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 22px 26px;
	border-right: 1px solid var(--aq-line);
}
.aq-trust__tile:last-child { border-right: 0; }
@media (max-width: 900px) {
	.aq-trust__tile:nth-child(2n) { border-right: 0; }
	.aq-trust__tile:nth-child(-n+2) { border-bottom: 1px solid var(--aq-line); }
}
@media (max-width: 560px) {
	.aq-trust__tile { border-right: 0; border-bottom: 1px solid var(--aq-line); }
	.aq-trust__tile:last-child { border-bottom: 0; }
}
.aq-trust__icon {
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	color: var(--aq-ink);
	margin-top: 2px;
}
.aq-trust__icon svg { width: 100%; height: 100%; }
.aq-trust__copy strong {
	display: block;
	font-family: var(--aq-display);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: -0.01em;
	color: var(--aq-ink);
	margin-bottom: 4px;
}
.aq-trust__copy p {
	margin: 0;
	font-size: 12px;
	line-height: 1.5;
	color: var(--aq-muted);
}

/* --- Awards ------------------------------------------------- */

.aq-section-awards {
	border-top: 1px solid var(--aq-line);
}
.aq-section-awards__lede {
	font-size: clamp(14px, 1vw, 16px);
	color: var(--aq-muted);
	line-height: 1.55;
	margin: 8px 0 0;
	max-width: 36ch;
	justify-self: end;
	text-align: right;
}
.aq-section-awards .aq-section__header {
	align-items: end;
}
.aq-awards-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 0;
	border-top: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
}
.aq-awards__tile {
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	padding: 36px 20px;
	border-right: 1px solid var(--aq-line);
	transition: background 320ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-awards__tile:last-child { border-right: 0; }
.aq-awards__tile:hover { background: var(--aq-surface-2); }
.aq-awards__tile img {
	width: 100%;
	max-width: 110px;
	height: 110px;
	object-fit: contain;
	transition: transform 320ms cubic-bezier(0.23, 1, 0.32, 1), filter 320ms ease;
	filter: grayscale(15%);
}
.aq-awards__tile:hover img {
	transform: scale(1.05);
	filter: grayscale(0%);
}
.aq-awards__tile figcaption {
	display: flex;
	flex-direction: column;
	gap: 4px;
	text-align: center;
}
.aq-awards__tile strong {
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--aq-ink);
	line-height: 1.3;
	max-width: 16ch;
}
.aq-awards__tile span {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-muted);
}

@media (max-width: 1024px) {
	.aq-awards-grid { grid-template-columns: repeat(3, 1fr); }
	.aq-awards__tile:nth-child(3n) { border-right: 0; }
	.aq-awards__tile:nth-child(-n+3) { border-bottom: 1px solid var(--aq-line); }
}
@media (max-width: 600px) {
	.aq-awards-grid { grid-template-columns: repeat(2, 1fr); }
	.aq-awards__tile { border-right: 1px solid var(--aq-line); }
	.aq-awards__tile:nth-child(2n) { border-right: 0; }
	.aq-awards__tile:nth-child(-n+4) { border-bottom: 1px solid var(--aq-line); }
}
@media (max-width: 700px) {
	.aq-section-awards__lede { text-align: left; justify-self: start; }
	.aq-section-awards .aq-section__header { grid-template-columns: 1fr; }
}

/* --- FAQ accordion ------------------------------------------ */

.aq-section-faq {
	border-top: 1px solid var(--aq-line);
}
.aq-faq-list {
	display: flex;
	flex-direction: column;
}
.aq-faq-item {
	border-top: 1px solid var(--aq-line);
}
.aq-faq-item:last-child { border-bottom: 1px solid var(--aq-line); }
.aq-faq-item__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 24px 4px;
	cursor: pointer;
	list-style: none;
	font-family: var(--aq-display);
	font-size: clamp(16px, 1.4vw, 20px);
	font-weight: 500;
	letter-spacing: -0.015em;
	color: var(--aq-ink);
	transition: color 220ms ease;
}
.aq-faq-item__q::-webkit-details-marker { display: none; }
.aq-faq-item__q:hover { color: var(--aq-hover); }
.aq-faq-item__icon {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	transition: transform 280ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-faq-item__icon-v {
	transform-origin: center;
	transition: transform 280ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-faq-item[open] .aq-faq-item__icon-v { transform: scaleY(0); }
.aq-faq-item[open] .aq-faq-item__icon { transform: rotate(180deg); }
.aq-faq-item__a {
	overflow: hidden;
	padding: 0 4px 28px;
	max-width: 70ch;
}
.aq-faq-item__a p {
	margin: 0;
	font-size: 15px;
	line-height: 1.7;
	color: var(--aq-ink-soft);
}

@media (prefers-reduced-motion: no-preference) {
	.aq-faq-item[open] .aq-faq-item__a {
		animation: aq-faq-open 320ms cubic-bezier(0.23, 1, 0.32, 1);
	}
	@keyframes aq-faq-open {
		from { opacity: 0; transform: translateY(-6px); }
		to { opacity: 1; transform: none; }
	}
}

/* Removed dead CSS: .aq-section-beratung* (unused — distinct from the live
   .aq-beratung modal + .aq-beratung-fab, which are kept). */

/* --- Footer enhancements ----------------------------------- */

.aq-footer__col p { margin: 0; }
.aq-footer__col a:not(.aq-footer__newsletter-submit):not(.aq-footer__social a) {
	color: var(--aq-ink-soft);
	transition: color 220ms ease;
}
.aq-footer__col a:hover { color: var(--aq-hover); }

.aq-footer__col--newsletter p {
	font-size: 13px;
	line-height: 1.55;
	color: var(--aq-ink-soft);
	margin: 0 0 6px;
	max-width: 32ch;
}

.aq-footer__updates-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 44px;
	border-bottom: 1px solid var(--aq-ink);
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-ink);
	transition: border-color 220ms ease, color 220ms ease;
}
.aq-footer__updates-link:hover,
.aq-footer__updates-link:focus-visible { border-bottom-color: var(--aq-hover); }

.aq-footer__newsletter-submit {
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	color: var(--aq-ink);
	transition: color 220ms ease, transform 220ms ease;
}
.aq-footer__newsletter-submit svg { width: 18px; height: 18px; }
.aq-footer__newsletter-submit:hover { color: var(--aq-hover); }
.aq-footer__newsletter-submit:hover svg { transform: translateX(2px); transition: transform 220ms ease; }

.aq-footer__newsletter-legal {
	display: block;
	margin-top: 8px;
	font-family: var(--aq-sans);
	font-size: 11px;
	letter-spacing: 0.06em;
	color: var(--aq-muted-on-tint);
	line-height: 1.5;
}

/* Social icons */
.aq-footer__social {
	display: inline-flex;
	gap: 14px;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--aq-line);
}
.aq-footer__social a {
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--aq-line);
	border-radius: 999px;
	color: var(--aq-ink);
	transition:
		background 220ms ease,
		color 220ms ease,
		border-color 220ms ease,
		transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-footer__social a svg { width: 15px; height: 15px; }
.aq-footer__social a:hover {
	background: var(--aq-ink);
	color: var(--aq-bg);
	border-color: var(--aq-ink);
}
.aq-footer__social a:active { transform: scale(0.94); }

/* Pay row in bottom */
.aq-footer__pay {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}
.aq-footer__pay > span:first-child {
	color: var(--aq-muted-on-tint);
}
.aq-footer__pay strong {
	font-family: var(--aq-display);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--aq-ink);
	padding: 4px 8px;
	border: 1px solid var(--aq-line);
	border-radius: 3px;
}

/* Indications: editorial inline-flow with an accent arrow and hairline slashes */

.aq-indications {
	display: grid;
	grid-template-columns: minmax(0, auto) 1fr;
	column-gap: 18px;
	row-gap: 4px;
	margin: 0;
	padding: 16px 0 18px;
	border-top: 1px solid var(--aq-line);
}
.aq-indications__label {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--aq-muted);
	padding-top: 2px;
	position: relative;
}
.aq-indications__label::before {
	content: "→";
	display: inline-block;
	color: var(--aq-accent);
	margin-right: 8px;
	font-size: 14px;
	transform: translateY(1px);
}
.aq-indications__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	column-gap: 12px;
	row-gap: 6px;
	font-family: var(--aq-display);
	font-size: 14px;
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.005em;
	line-height: 1.5;
}
.aq-indications__list li {
	position: relative;
	display: inline-block;
}
.aq-indications__list li + li::before {
	content: "/";
	color: var(--aq-line);
	margin-right: 12px;
	font-weight: 400;
}

/* Rating summary chip beside price/title */

.aq-rating-summary {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: -4px 0 8px;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.06em;
	color: var(--aq-ink-soft);
	text-decoration: none;
	transition: color 180ms ease;
}
.aq-rating-summary:hover { color: var(--aq-ink); }
.aq-rating-summary .star-rating {
	font-size: 13px;
	width: 5em;
	height: 1em;
}
.aq-rating-summary__count {
	letter-spacing: 0.08em;
}

/* Clinical metrics: editorial numbers card */

.aq-metrics {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(56px, 6vw, 96px) var(--aq-pad);
	border-top: 1px solid var(--aq-line);
}
.aq-metrics__header {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0 0 clamp(28px, 3vw, 40px);
}
.aq-metrics__header h2 { margin: 0; }
.aq-metrics__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	/* 1px gap on a lined background draws cell dividers at ANY column count,
	   so wrapped rows never leave stray right-borders (auto-fit + nth-child
	   border resets don't line up across breakpoints). */
	gap: 1px;
	background: var(--aq-line);
	border: 1px solid var(--aq-line);
}
.aq-metric {
	position: relative;
	padding: clamp(24px, 3vw, 36px) clamp(20px, 2.5vw, 32px);
	display: flex;
	flex-direction: column;
	gap: 8px;
	background: var(--aq-bg);
	transition: background 240ms ease;
}
@media (hover: hover) and (pointer: fine) {
	.aq-metric:hover { background: var(--aq-surface); }
}
.aq-metric__index {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--aq-muted);
	font-variant-numeric: tabular-nums;
}
.aq-metric__value {
	font-family: var(--aq-display);
	font-size: clamp(36px, 4.6vw, 64px);
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.03em;
	line-height: 0.95;
	margin: 6px 0 4px;
}
.aq-metric__label {
	font-family: var(--aq-sans);
	font-size: 14px;
	font-weight: 500;
	color: var(--aq-ink);
	line-height: 1.4;
	letter-spacing: -0.005em;
}
.aq-metric__source {
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-muted);
	margin-top: auto;
	padding-top: 12px;
}
.aq-metrics__disclaimer {
	margin: clamp(16px, 2vw, 24px) 0 0;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.04em;
	color: var(--aq-muted);
	max-width: 64ch;
	line-height: 1.55;
}

/* Per-product Before/After slider */

.aq-product-ba {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 88px) var(--aq-pad);
	border-top: 1px solid var(--aq-line);
}
.aq-product-ba__header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: clamp(12px, 2vw, 24px);
	margin: 0 0 clamp(24px, 3vw, 36px);
}
.aq-product-ba__header h2 { margin: 0; flex: 1 1 280px; }
.aq-product-ba__metric {
	font-family: var(--aq-display);
	font-size: clamp(20px, 1.8vw, 26px);
	font-weight: 500;
	color: var(--aq-accent-ink);
	letter-spacing: -0.01em;
}
.aq-product-ba__caption {
	font-size: 13px;
	color: var(--aq-muted);
	max-width: 60ch;
	margin: clamp(16px, 2vw, 24px) 0 0;
}

/* Removed dead CSS: .aq-ba-slider* (superseded by the live .aq-result__*
   slider) and the unused .aq-routine* component. Neither matched any
   template or JS markup. */

/* --- Cart & Checkout pages --------------------------------- */

.aq-cart-page,
.aq-checkout-page,
.aq-thankyou-page {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(32px, 4vw, 56px) var(--aq-pad) clamp(48px, 6vw, 80px);
}
/* Checkout/thank-you are form-centric — keep them narrower than the global max
   so fields and the order summary don't stretch uncomfortably on wide screens. */
.aq-checkout-page,
.aq-thankyou-page {
	max-width: 1200px;
}
.aq-cart-page__header,
.aq-checkout-page__header,
.aq-thankyou-page__header {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 0 clamp(20px, 2vw, 28px);
}
.aq-cart-page__header h1,
.aq-checkout-page__header h1,
.aq-thankyou-page__header h1 { margin: 0; }

/* Thank-you page */
.aq-thankyou-page { display: flex; flex-direction: column; gap: 24px; }
.aq-thankyou-page__header { margin: 0; max-width: 60ch; }
.aq-thankyou-page__lede {
	font-size: 15px;
	color: var(--aq-muted);
	margin: 8px 0 0;
	line-height: 1.55;
}

/* Hide the default Woo success line — we already say "Vielen Dank" in our header */
.aq-thankyou-page .woocommerce-thankyou-order-received { display: none; }

/* Order overview pills */
.aq-thankyou-page .woocommerce-order-overview {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
}
.aq-thankyou-page .woocommerce-order-overview li {
	margin: 0;
	padding: 14px 18px;
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	border-radius: 6px;
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--aq-muted);
	display: flex;
	flex-direction: column;
	gap: 4px;
	text-transform: uppercase;
}
.aq-thankyou-page .woocommerce-order-overview li strong {
	font-family: var(--aq-display);
	font-size: 17px;
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.01em;
	text-transform: none;
}

/* Order details table */
.aq-thankyou-page .woocommerce-order-details,
.aq-thankyou-page .woocommerce-customer-details {
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	border-radius: 6px;
	padding: clamp(20px, 2.4vw, 28px);
}
.aq-thankyou-page .woocommerce-order-details__title,
.aq-thankyou-page .woocommerce-column__title {
	font-family: var(--aq-display);
	font-size: clamp(20px, 1.8vw, 24px);
	font-weight: 500;
	letter-spacing: -0.01em;
	margin: 0 0 16px;
}
.aq-thankyou-page table.shop_table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
	background: transparent;
}
.aq-thankyou-page table.shop_table th,
.aq-thankyou-page table.shop_table td {
	padding: 10px 0;
	border-bottom: 1px solid var(--aq-line);
	font-size: 13.5px;
	color: var(--aq-ink);
	text-align: left;
	background: transparent;
}
.aq-thankyou-page table.shop_table th { font-weight: 500; color: var(--aq-muted); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
.aq-thankyou-page table.shop_table td:last-child,
.aq-thankyou-page table.shop_table th:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.aq-thankyou-page table.shop_table tfoot th,
.aq-thankyou-page table.shop_table tfoot td { padding: 12px 0; border-bottom: 0; }
.aq-thankyou-page table.shop_table tfoot tr.order-total th,
.aq-thankyou-page table.shop_table tfoot tr.order-total td {
	font-family: var(--aq-display);
	font-size: 17px;
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.005em;
	text-transform: none;
	border-top: 1px solid var(--aq-line);
}

/* Customer details two-column */
.aq-thankyou-page .woocommerce-customer-details address {
	font-style: normal;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--aq-ink);
	border: 0;
	padding: 0;
}

/* CTA row */
.aq-thankyou-page__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 8px 0 0;
}
.aq-thankyou-page__cta .aq-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	padding: 0 28px;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: 4px;
	transition: background 200ms ease, color 200ms ease, border-color 200ms ease, transform 160ms cubic-bezier(0.23,1,0.32,1);
}
.aq-thankyou-page__cta .aq-btn--primary {
	color: var(--aq-bg);
	border: 1px solid var(--aq-accent-cta);
}
.aq-thankyou-page__cta .aq-btn--ghost {
	background: transparent;
	color: var(--aq-ink);
	border: 1px solid var(--aq-line);
}
.aq-thankyou-page__cta .aq-btn--ghost:hover { border-color: var(--aq-ink); }
.aq-thankyou-page__cta .aq-btn:active { transform: translateY(1px); }

/* Cart layout — form on the left, sticky summary on the right */
.aq-cart-page {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
	grid-template-areas:
		"header  header"
		"notices notices"
		"form    totals";
	column-gap: clamp(28px, 4vw, 56px);
	row-gap: 16px;
	align-items: start;
}
.aq-cart-page__header { grid-area: header; }
.aq-cart-page .woocommerce-notices-wrapper { grid-area: notices; }
.aq-cart-page form.woocommerce-cart-form { grid-area: form; margin: 0; }
.aq-cart-page .cart-collaterals,
.aq-cart-page .cart_totals {
	grid-area: totals;
	position: sticky;
	top: calc(var(--aq-header-h) + 16px);
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	padding: clamp(20px, 2.5vw, 28px);
	width: 100%;
	float: none !important;
	margin: 0 !important;
}
.aq-cart-page .cart-collaterals .cart_totals {
	position: static;
	border: 0;
	padding: 0;
}
@media (max-width: 880px) {
	.aq-cart-page {
		grid-template-columns: 1fr;
		grid-template-areas:
			"header"
			"notices"
			"form"
			"totals";
	}
	.aq-cart-page .cart-collaterals,
	.aq-cart-page .cart_totals { position: static; }
}

.aq-cart-page table.shop_table {
	width: 100%;
	border-collapse: collapse;
	background: transparent;
	border: 0;
}
.aq-cart-page table.shop_table thead { display: none; }
.aq-cart-page table.shop_table tr.cart_item {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr) auto auto auto auto;
	gap: 18px;
	align-items: center;
	padding: 20px 0;
	border-bottom: 1px solid var(--aq-line);
}
.aq-cart-page table.shop_table tr.cart_item td {
	padding: 0;
	border: 0;
	background: transparent;
}
.aq-cart-page td.product-remove {
	order: 6;
}
.aq-cart-page td.product-remove a {
	width: 32px; height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--aq-line);
	border-radius: 50%;
	color: var(--aq-muted);
	font-size: 0;
	text-decoration: none;
	transition: color 180ms ease, border-color 180ms ease, background 180ms ease, transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-cart-page td.product-remove a::before {
	content: "×";
	font-size: 18px;
	line-height: 1;
}
.aq-cart-page td.product-remove a:hover { background: var(--aq-ink); color: var(--aq-bg); border-color: var(--aq-ink); }
.aq-cart-page td.product-remove a:active { transform: scale(0.9); }
.aq-cart-page td.product-thumbnail { order: 1; }
.aq-cart-page td.product-thumbnail img {
	width: 96px; height: 96px;
	object-fit: contain;
	padding: 12px;
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
}
.aq-cart-page td.product-name { order: 2; min-width: 0; }
.aq-cart-page td.product-name a {
	font-family: var(--aq-display);
	font-size: 17px;
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.01em;
	text-decoration: none;
}
.aq-cart-page td.product-name a:hover { color: var(--aq-hover); }
.aq-cart-page td.product-name .wc-item-meta,
.aq-cart-page td.product-name dl {
	margin: 4px 0 0;
	font-size: 12px;
	color: var(--aq-muted);
}

.aq-cart-page td.product-price { order: 3; }
.aq-cart-page td.product-price .woocommerce-Price-amount {
	font-family: var(--aq-sans);
	font-size: 13px;
	font-weight: 500;
	color: var(--aq-ink-soft);
}
.aq-cart-page td.product-quantity { order: 4; }
.aq-cart-page td.product-quantity .quantity {
	display: inline-flex;
	border: 1px solid var(--aq-line);
	height: 40px;
	background: var(--aq-bg);
}
.aq-cart-page td.product-quantity input.qty {
	width: 48px;
	height: 100%;
	border: 0;
	text-align: center;
	background: transparent;
	font-family: var(--aq-sans);
	font-size: 14px;
	font-weight: 500;
	color: var(--aq-ink);
	-moz-appearance: textfield;
}
.aq-cart-page td.product-quantity input.qty::-webkit-outer-spin-button,
.aq-cart-page td.product-quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.aq-cart-page td.product-subtotal {
	order: 5;
	font-family: var(--aq-display);
	font-size: 17px;
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.01em;
	text-align: right;
	min-width: 80px;
}
@media (max-width: 640px) {
	.aq-cart-page table.shop_table tr.cart_item {
		grid-template-columns: 80px 1fr auto;
		grid-template-rows: auto auto auto;
	}
	.aq-cart-page td.product-thumbnail { grid-row: 1 / span 3; }
	.aq-cart-page td.product-name { grid-column: 2; grid-row: 1; }
	.aq-cart-page td.product-remove { grid-column: 3; grid-row: 1; }
	/* Keep the unit price visible on mobile — placed under the name instead
	   of being hidden, so shoppers still see per-item price when qty > 1. */
	.aq-cart-page td.product-price { grid-column: 2; grid-row: 2; font-size: 12px; color: var(--aq-muted); }
	.aq-cart-page td.product-quantity { grid-column: 2; grid-row: 3; }
	.aq-cart-page td.product-subtotal { grid-column: 3; grid-row: 3; }
}

/* Coupon + update buttons row */
.aq-cart-page .actions {
	display: flex !important;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 12px;
	padding: 20px 0 0;
	border: 0 !important;
}
.aq-cart-page .coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	align-items: stretch;
	flex: 1 1 320px;
	max-width: 480px;
	min-width: 0;
}
.aq-cart-page .coupon .coupon-error-notice {
	flex: 1 1 100%;
	margin: 8px 0 0;
	padding: 8px 12px;
	background: #fdecec;
	border: 1px solid #f3c4c4;
	border-radius: 4px;
	color: #8c1f1f;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-transform: none;
}
.aq-cart-page .coupon input[type="text"],
.aq-cart-page #coupon_code {
	height: 44px;
	padding: 0 14px;
	border: 1px solid var(--aq-line);
	border-right: 0;
	background: var(--aq-bg);
	font-family: var(--aq-sans);
	font-size: 13px;
	color: var(--aq-ink);
	flex: 1 1 auto;
	min-width: 0;
}
.aq-cart-page .coupon input[type="text"]:focus { outline: none; border-color: var(--aq-ink); }
.aq-cart-page .coupon button,
.aq-cart-page button[name="apply_coupon"],
.aq-cart-page button[name="update_cart"] {
	height: 44px !important;
	min-height: 44px !important;
	line-height: 1 !important;
	padding: 0 18px !important;
	background: var(--aq-bg);
	color: var(--aq-ink);
	border: 1px solid var(--aq-line);
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	white-space: nowrap;
	flex-shrink: 0;
	transition: background 180ms ease, color 180ms ease, border-color 180ms ease, transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-cart-page .coupon button { border-left: 0; }
.aq-cart-page button[name="apply_coupon"]:hover,
.aq-cart-page button[name="update_cart"]:hover { background: var(--aq-ink); color: var(--aq-bg); border-color: var(--aq-ink); }
.aq-cart-page button:active { transform: scale(0.97); }

/* Cart totals box */
.aq-cart-page .cart_totals h2 {
	font-family: var(--aq-display);
	font-size: clamp(20px, 1.8vw, 24px);
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.015em;
	margin: 0 0 18px;
}
.aq-cart-page .cart_totals table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--aq-sans);
}
.aq-cart-page .cart_totals table th,
.aq-cart-page .cart_totals table td {
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid var(--aq-line);
	font-size: 13px;
	background: transparent;
}
.aq-cart-page .cart_totals table th { color: var(--aq-muted); font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; font-size: 11px; }
.aq-cart-page .cart_totals table td { color: var(--aq-ink); text-align: right; }
.aq-cart-page .cart_totals tr.order-total th,
.aq-cart-page .cart_totals tr.order-total td {
	border-bottom: 0;
	padding-top: 18px;
	font-family: var(--aq-display);
	font-size: 17px;
	letter-spacing: -0.005em;
	text-transform: none;
	font-weight: 500;
	color: var(--aq-ink);
}
.aq-cart-page .shipping-calculator-button {
	color: var(--aq-ink);
	text-decoration: underline;
	text-decoration-color: var(--aq-line);
	text-underline-offset: 4px;
}

/* Shipping method radios — clean list */
.aq-cart-page .cart_totals ul#shipping_method,
.aq-checkout-page ul#shipping_method,
.aq-checkout-page .woocommerce-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-align: left;
}
.aq-cart-page .cart_totals ul#shipping_method li,
.aq-checkout-page ul#shipping_method li,
.aq-checkout-page .woocommerce-shipping-methods li {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 8px 10px;
	border: 1px solid var(--aq-line);
	border-radius: 4px;
	background: var(--aq-bg);
	cursor: pointer;
	transition: border-color 160ms ease, background 160ms ease;
}
.aq-cart-page .cart_totals ul#shipping_method li:has(input:checked),
.aq-checkout-page ul#shipping_method li:has(input:checked),
.aq-checkout-page .woocommerce-shipping-methods li:has(input:checked) {
	border-color: var(--aq-ink);
	background: var(--aq-surface);
}
.aq-cart-page .cart_totals ul#shipping_method li input[type="radio"],
.aq-checkout-page ul#shipping_method li input[type="radio"],
.aq-checkout-page .woocommerce-shipping-methods li input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 16px;
	height: 16px;
	border: 1.5px solid var(--aq-line);
	border-radius: 50%;
	flex-shrink: 0;
	background: var(--aq-bg);
	margin: 0;
	cursor: pointer;
	position: relative;
	transition: border-color 160ms ease;
}
.aq-cart-page .cart_totals ul#shipping_method li input[type="radio"]:checked,
.aq-checkout-page ul#shipping_method li input[type="radio"]:checked,
.aq-checkout-page .woocommerce-shipping-methods li input[type="radio"]:checked {
	border-color: var(--aq-ink);
}
.aq-cart-page .cart_totals ul#shipping_method li input[type="radio"]:checked::after,
.aq-checkout-page ul#shipping_method li input[type="radio"]:checked::after,
.aq-checkout-page .woocommerce-shipping-methods li input[type="radio"]:checked::after {
	content: '';
	position: absolute;
	inset: 3px;
	border-radius: 50%;
	background: var(--aq-ink);
}
.aq-cart-page .cart_totals ul#shipping_method li label,
.aq-checkout-page ul#shipping_method li label,
.aq-checkout-page .woocommerce-shipping-methods li label {
	flex: 1;
	font-size: 13px;
	color: var(--aq-ink);
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
	margin: 0;
}
.aq-cart-page .cart_totals ul#shipping_method li label .woocommerce-Price-amount,
.aq-checkout-page ul#shipping_method li label .woocommerce-Price-amount,
.aq-checkout-page .woocommerce-shipping-methods li label .woocommerce-Price-amount {
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}

/* Checkout: inline field validation */
.aq-checkout-page .form-row.woocommerce-invalid input.input-text,
.aq-checkout-page .form-row.woocommerce-invalid textarea,
.aq-checkout-page .form-row.woocommerce-invalid select {
	border-color: #c84141 !important;
	box-shadow: 0 0 0 3px rgba(200,65,65,0.08);
}
.aq-checkout-page .checkout-inline-error-message {
	margin: 6px 0 0;
	padding: 6px 10px;
	background: #fdecec;
	border: 1px solid #f3c4c4;
	border-radius: 4px;
	color: #8c1f1f;
	font-size: 12px;
	line-height: 1.45;
	font-weight: 500;
}

/* Checkout: collapsible coupon form (showcoupon -> form#checkout_coupon) */
.aq-checkout-page form.checkout_coupon {
	max-width: 480px;
	margin: 8px 0 24px;
	padding: 14px 16px;
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	border-radius: 4px;
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
}
.aq-checkout-page form.checkout_coupon p { margin: 0; flex: 1 1 200px; min-width: 0; }
.aq-checkout-page form.checkout_coupon input[type="text"] {
	width: 100%;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--aq-line);
	border-radius: 4px;
	font-family: var(--aq-sans);
	font-size: 13px;
	background: var(--aq-bg);
}
.aq-checkout-page form.checkout_coupon button {
	height: 40px !important;
	min-height: 40px !important;
	line-height: 1 !important;
	padding: 0 18px !important;
	background: var(--aq-ink);
	color: var(--aq-bg);
	border: 0;
	border-radius: 4px;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	flex-shrink: 0;
}
.aq-checkout-page form.checkout_coupon button:hover { background: var(--aq-hover); }

/* Checkout: showcoupon prompt — make the inline link less shouty */
.aq-checkout-page .woocommerce-form-coupon-toggle .woocommerce-info {
	background: transparent;
	border: 0;
	padding: 0 0 4px;
	font-size: 13px;
	color: var(--aq-muted);
	border-radius: 0;
	display: block;
}
.aq-checkout-page .woocommerce-form-coupon-toggle a.showcoupon {
	color: var(--aq-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
	margin-left: 4px;
}
.aq-cart-page .wc-proceed-to-checkout { padding: 18px 0 0; margin: 0; }
.aq-cart-page .wc-proceed-to-checkout .checkout-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	color: var(--aq-bg);
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	border: 0;
	border-radius: 0;
	cursor: pointer;
	position: relative;
	overflow: hidden;
	transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1), background 220ms ease;
	will-change: transform;
}
.aq-cart-page .wc-proceed-to-checkout .checkout-button:active { transform: scale(0.985); }

.aq-cart-page .cart-empty,
.aq-cart-page .return-to-shop { text-align: center; font-size: 15px; color: var(--aq-ink-soft); }
.aq-cart-page .return-to-shop a {
	display: inline-block;
	margin-top: 14px;
	padding: 14px 32px;
	background: var(--aq-ink);
	color: var(--aq-bg);
	text-decoration: none;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

/* WooCommerce floating message (added-to-cart) inside cart page */
.aq-cart-page .woocommerce-message {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 18px;
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	font-family: var(--aq-sans);
	font-size: 13px;
	color: var(--aq-ink);
	margin-bottom: 18px;
}
.aq-cart-page .woocommerce-message .button {
	background: var(--aq-ink);
	color: var(--aq-bg);
	padding: 10px 18px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	border: 0;
}

/* Checkout: 2-col grid with sticky review */
.aq-checkout-page .woocommerce { display: block; }
.aq-checkout-page form.checkout {
	display: grid !important;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}
@media (max-width: 920px) {
	/* minmax(0,…) so the single column can shrink below its min-content;
	   plain 1fr let the billing fields force the track past the viewport. */
	.aq-checkout-page form.checkout { grid-template-columns: minmax(0, 1fr); }
}
.aq-checkout-page .col2-set, .aq-checkout-page #customer_details { width: 100% !important; margin: 0 !important; }
.aq-checkout-page .col2-set { display: grid; grid-template-columns: 1fr; gap: clamp(24px, 3vw, 36px); }
.aq-checkout-page #order_review_heading,
.aq-checkout-page #order_review {
	grid-column: 2 / 3;
}
@media (max-width: 920px) {
	.aq-checkout-page #order_review_heading,
	.aq-checkout-page #order_review { grid-column: 1; }
}
/* WooCommerce injects its notice group as a direct grid child of the form on
   submit. Without this it lands in column 1 and shoves the billing fields into
   column 2, leaving the left side empty. Span notices full width instead. */
.aq-checkout-page form.checkout > .woocommerce-NoticeGroup,
.aq-checkout-page form.checkout > .woocommerce-error,
.aq-checkout-page form.checkout > .woocommerce-message,
.aq-checkout-page form.checkout > .woocommerce-info {
	grid-column: 1 / -1;
}

.aq-checkout-page h3, .aq-checkout-page #order_review_heading {
	font-family: var(--aq-display);
	font-size: clamp(20px, 1.8vw, 24px);
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.015em;
	margin: 0 0 18px;
}
.aq-checkout-page .form-row {
	margin: 0 0 14px;
}
/* Group billing/shipping fields into two columns so the form does not stretch
   into one tall single column. WC field classes drive placement:
   form-row-first|last sit side by side; form-row-wide spans full width.
   Postcode/city are both form-row-wide but should pair. Drop their full span
   (grid-column:auto) so they flow side by side in whatever order the country's
   address format uses (DE: postcode→city; CZ/others: city→postcode) instead of
   pinning fixed columns, which broke when the order was reversed. */
.aq-checkout-page .woocommerce-billing-fields__field-wrapper,
.aq-checkout-page .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 16px;
}
.aq-checkout-page .woocommerce-billing-fields__field-wrapper > .form-row-wide,
.aq-checkout-page .woocommerce-shipping-fields__field-wrapper > .form-row-wide {
	grid-column: 1 / -1;
}
.aq-checkout-page #billing_postcode_field,
.aq-checkout-page #shipping_postcode_field,
.aq-checkout-page #billing_city_field,
.aq-checkout-page #shipping_city_field { grid-column: auto; }
@media (max-width: 920px) {
	.aq-checkout-page .woocommerce-billing-fields__field-wrapper,
	.aq-checkout-page .woocommerce-shipping-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}
}
.aq-checkout-page label {
	display: block;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--aq-muted);
	margin: 0 0 6px;
}
.aq-checkout-page .input-text,
.aq-checkout-page select,
.aq-checkout-page textarea {
	width: 100%;
	height: 46px;
	padding: 0 14px;
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	font-family: var(--aq-sans);
	font-size: 14px;
	color: var(--aq-ink);
	transition: border-color 220ms ease, box-shadow 220ms ease;
}
.aq-checkout-page textarea { height: auto; min-height: 96px; padding: 12px 14px; line-height: 1.5; resize: vertical; }
.aq-checkout-page .input-text:focus,
.aq-checkout-page select:focus,
.aq-checkout-page textarea:focus {
	outline: none;
	border-color: var(--aq-ink);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--aq-ink) 8%, transparent);
}
.aq-checkout-page .select2-container .select2-selection--single {
	height: 46px;
	border: 1px solid var(--aq-line);
	background: var(--aq-bg);
	border-radius: 0;
}
.aq-checkout-page .select2-container .select2-selection--single .select2-selection__rendered {
	line-height: 46px;
	padding-left: 14px;
	color: var(--aq-ink);
	font-family: var(--aq-sans);
	font-size: 14px;
}
.aq-checkout-page .select2-container .select2-selection--single .select2-selection__arrow { height: 44px; }

.aq-checkout-page #order_review {
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	padding: clamp(20px, 2vw, 28px);
	position: sticky;
	top: calc(var(--aq-header-h) + 16px);
}
@media (max-width: 920px) {
	.aq-checkout-page #order_review { position: static; }
}
.aq-checkout-page .shop_table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--aq-sans);
}
.aq-checkout-page .shop_table th,
.aq-checkout-page .shop_table td {
	padding: 10px 16px;
	border: 0;
	border-bottom: 1px solid var(--aq-line);
	font-size: 13px;
	line-height: 1.5;
	background: transparent;
	text-align: left;
	vertical-align: top;
}
.aq-checkout-page .shop_table thead th {
	padding: 0 16px 12px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	/* The table sits on a Woo #eee fill, not one of our surfaces. (DIM-548) */
	color: var(--aq-muted-on-tint);
	border-bottom: 1px solid var(--aq-line);
}
.aq-checkout-page .shop_table .cart_item td.product-name { padding-right: 12px; }
.aq-checkout-page .shop_table .product-name .quantity { color: var(--aq-ink-soft); margin-left: 6px; font-weight: 500; }
.aq-checkout-page .shop_table .wc-item-meta,
.aq-checkout-page .shop_table .wc-item-meta li { font-size: 12px; color: var(--aq-muted); margin: 4px 0 0; padding: 0; list-style: none; }
.aq-checkout-page .shop_table td:last-child,
.aq-checkout-page .shop_table th:last-child { text-align: right; }
.aq-checkout-page .shop_table tfoot tr.order-total th,
.aq-checkout-page .shop_table tfoot tr.order-total td {
	font-family: var(--aq-display);
	font-size: 17px;
	font-weight: 500;
	color: var(--aq-ink);
	padding-top: 16px;
}

@media (max-width: 560px) {
	.aq-checkout-page #order_review {
		min-width: 0;
		padding: 16px 12px;
		overflow: hidden;
	}
	.aq-checkout-page .shop_table {
		table-layout: fixed;
		min-width: 0;
	}
	.aq-checkout-page .shop_table .product-name { width: 64%; }
	.aq-checkout-page .shop_table .product-total { width: 36%; }
	.aq-checkout-page .shop_table th,
	.aq-checkout-page .shop_table td,
	.aq-checkout-page .shop_table thead th {
		padding-left: 6px;
		padding-right: 6px;
		overflow-wrap: anywhere;
	}
	.aq-checkout-page .shop_table tfoot tr.woocommerce-shipping-totals {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}
	.aq-checkout-page .shop_table tfoot tr.woocommerce-shipping-totals th,
	.aq-checkout-page .shop_table tfoot tr.woocommerce-shipping-totals td {
		display: block;
		width: 100%;
		text-align: left;
	}
	.aq-checkout-page .shop_table tfoot tr.woocommerce-shipping-totals th {
		padding-bottom: 2px;
		border-bottom: 0;
	}
	.aq-checkout-page .shop_table tfoot tr.woocommerce-shipping-totals td {
		padding-top: 2px;
	}
	.aq-checkout-page #shipping_method label {
		word-break: normal;
		overflow-wrap: normal;
	}
	.aq-checkout-page #payment ul.payment_methods li,
	.aq-checkout-page p.legal.checkbox-legal { padding: 12px; }
}

/* Right column: review-order panel */
.aq-checkout-page .woocommerce-checkout-review-order > h3 {
	font-family: var(--aq-display);
	font-size: clamp(20px, 1.8vw, 24px);
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.015em;
	margin: 0 0 20px;
}
.aq-checkout-page .woocommerce-checkout-review-order > h3 + #payment,
.aq-checkout-page .woocommerce-checkout-review-order > h3 ~ #payment { margin-top: 0; }
.aq-checkout-page #order_review_heading.wc-gzd-heading-moved,
.aq-checkout-page #order_review_heading {
	margin: 18px 0 12px;
	padding-top: 16px;
	border-top: 1px solid var(--aq-line);
}

.aq-checkout-page #payment {
	background: transparent;
	border: 0;
	margin: 0 0 8px;
}
.aq-checkout-page #payment ul.payment_methods {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
	border: 0;
	background: transparent;
}
.aq-checkout-page #payment ul.payment_methods li {
	padding: 13px 18px;
	border: 1px solid var(--aq-line);
	background: var(--aq-bg);
	transition: border-color 220ms ease, background 220ms ease;
}
.aq-checkout-page #payment ul.payment_methods li:has(input[type="radio"]:checked) {
	border-color: var(--aq-ink);
}
.aq-checkout-page #payment ul.payment_methods li > label {
	display: block;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-ink);
	margin: 0;
	padding: 0;
	cursor: pointer;
}
.aq-checkout-page #payment .payment_box {
	background: transparent;
	border: 0;
	margin: 12px 0 0;
	padding: 12px 16px;
	font-size: 13px;
	line-height: 1.55;
	color: var(--aq-ink-soft);
	border-left: 2px solid var(--aq-line);
}
.aq-checkout-page #payment .payment_box::before { display: none; }
.aq-checkout-page #payment .payment_box p { margin: 0; }
.aq-checkout-page #payment .payment_box p + p { margin-top: 8px; }

/* AGB / legal checkbox (Germanized) */
.aq-checkout-page .wc-gzd-checkbox-placeholder-legal { margin: 18px 0 16px; }
.aq-checkout-page p.legal.checkbox-legal {
	margin: 0;
	padding: 14px 16px;
	background: var(--aq-surface-2);
	border: 1px solid var(--aq-line);
}
.aq-checkout-page p.legal.checkbox-legal label {
	display: flex !important;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	padding: 0;
	font-family: var(--aq-sans);
	font-size: 13px;
	line-height: 1.55;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--aq-ink);
	cursor: pointer;
}
.aq-checkout-page p.legal.checkbox-legal input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
	border: 1.5px solid var(--aq-ink);
	background: var(--aq-bg);
	cursor: pointer;
	position: relative;
	transition: background 160ms ease;
}
.aq-checkout-page p.legal.checkbox-legal input[type="checkbox"]:checked { background: var(--aq-ink); }
.aq-checkout-page p.legal.checkbox-legal input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	left: 4px;
	top: 1px;
	width: 6px;
	height: 10px;
	border: solid var(--aq-bg);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.aq-checkout-page .woocommerce-gzd-legal-checkbox-text {
	flex: 1;
	min-width: 0;
}
.aq-checkout-page .woocommerce-gzd-legal-checkbox-text a {
	color: var(--aq-ink);
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color 200ms ease;
}
.aq-checkout-page .woocommerce-gzd-legal-checkbox-text a:hover { color: var(--aq-hover); }
.aq-checkout-page p.legal.checkbox-legal .required,
.aq-checkout-page p.legal.checkbox-legal abbr.required {
	color: var(--aq-ink-soft);
	text-decoration: none;
	margin-left: 4px;
}

/* Stripe / PayPal payment_box internals — preventive */
.aq-checkout-page .payment_method_stripe .payment_box,
.aq-checkout-page .payment_method_stripe_cc .payment_box,
.aq-checkout-page .payment_method_ppcp-gateway .payment_box,
.aq-checkout-page .payment_method_ppcp-credit-card-gateway .payment_box,
.aq-checkout-page .payment_method_paypal .payment_box {
	background: transparent;
	border: 0;
	border-left: 2px solid var(--aq-line);
	margin: 12px 0 0;
	padding: 14px 16px;
	color: var(--aq-ink-soft);
	font-size: 13px;
	line-height: 1.55;
}
/* Stripe Card Element wrapper */
.aq-checkout-page .StripeElement,
.aq-checkout-page .wc-stripe-elements-field,
.aq-checkout-page .wc-stripe-iban-element-field {
	width: 100%;
	min-height: 46px;
	padding: 13px 14px;
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	font-family: var(--aq-sans);
	font-size: 14px;
	color: var(--aq-ink);
	transition: border-color 220ms ease, box-shadow 220ms ease;
}
.aq-checkout-page .StripeElement--focus,
.aq-checkout-page .wc-stripe-elements-field--focus {
	border-color: var(--aq-ink);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--aq-ink) 8%, transparent);
}
.aq-checkout-page .StripeElement--invalid,
.aq-checkout-page .wc-stripe-elements-field--invalid { border-color: var(--aq-hover); }
.aq-checkout-page .wc-stripe-error,
.aq-checkout-page .woocommerce-SavedPaymentMethods-tokenInput { font-size: 13px; }
.aq-checkout-page ul.wc-saved-payment-methods {
	list-style: none;
	margin: 8px 0 12px;
	padding: 0;
	display: grid;
	gap: 8px;
}
.aq-checkout-page ul.wc-saved-payment-methods li {
	padding: 12px 14px;
	border: 1px solid var(--aq-line);
	background: var(--aq-bg);
	font-size: 13px;
}
.aq-checkout-page ul.wc-saved-payment-methods li label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 0;
	font-family: var(--aq-sans);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--aq-ink);
}
/* PayPal Smart Buttons container */
.aq-checkout-page .ppcp-button-container,
.aq-checkout-page .paypal-buttons,
.aq-checkout-page #ppcp-hosted-fields,
.aq-checkout-page #ppc-button-ppcp-gateway,
.aq-checkout-page .ppc-button-wrapper {
	margin: 10px 0 0;
	min-height: 46px;
}
/* Hide redundant Stripe/PayPal gateway icons that clash with our list-item styling */
.aq-checkout-page #payment ul.payment_methods li img.payment-icon,
.aq-checkout-page #payment ul.payment_methods li label img {
	display: inline-block;
	max-height: 22px;
	width: auto;
	margin-left: 10px;
	vertical-align: middle;
	opacity: 0.7;
}

/* Legal note before submit */
.aq-checkout-page .aq-legal-note--checkout {
	margin: 16px 0 14px;
	font-size: 12px;
	line-height: 1.55;
	color: var(--aq-ink-soft);
}

.aq-checkout-page #place_order {
	width: 100%;
	color: var(--aq-bg);
	border: 0;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1), background 220ms ease;
}
.aq-checkout-page #place_order:active { transform: scale(0.985); }

/* Recently viewed band */
.aq-recent {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(56px, 6vw, 96px) var(--aq-pad);
	border-top: 1px solid var(--aq-line);
}
.aq-recent__header { display: flex; flex-direction: column; gap: 8px; margin: 0 0 clamp(24px, 3vw, 36px); }
.aq-recent__header h2 { margin: 0; }
.aq-recent__grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important; }

/* --- Professionals (B2B) ----------------------------------- */

.aq-pro {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 96px) var(--aq-pad) clamp(72px, 9vw, 120px);
}
.aq-pro__intro {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0 0 clamp(40px, 5vw, 64px);
	max-width: 24ch;
}
.aq-pro__intro h1 { margin: 0; }
.aq-pro__lede {
	font-size: clamp(15px, 1.2vw, 17px);
	line-height: 1.6;
	color: var(--aq-ink-soft);
	max-width: 60ch;
	margin: 0;
}

.aq-pro__perks {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	/* 1px lined-background gap = column-count-agnostic dividers. */
	gap: 1px;
	background: var(--aq-line);
	margin: 0 0 clamp(56px, 7vw, 96px);
	border-top: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
}
.aq-pro__perk {
	padding: clamp(24px, 3vw, 36px) clamp(20px, 2vw, 28px);
	background: var(--aq-bg);
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: background 220ms ease;
}
@media (hover: hover) and (pointer: fine) {
	.aq-pro__perk:hover { background: var(--aq-surface); }
}
.aq-pro__perk-num {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.24em;
	color: var(--aq-muted);
	font-variant-numeric: tabular-nums;
}
.aq-pro__perk h3 {
	font-family: var(--aq-display);
	font-size: clamp(18px, 1.6vw, 22px);
	font-weight: 500;
	letter-spacing: -0.012em;
	color: var(--aq-ink);
	margin: 4px 0 4px;
	line-height: 1.25;
}
.aq-pro__perk p {
	font-size: 13px;
	line-height: 1.6;
	color: var(--aq-ink-soft);
	margin: 0;
}

.aq-pro__catalog { margin: 0 0 clamp(56px, 7vw, 96px); }
.aq-pro__catalog-header {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0 0 clamp(24px, 3vw, 36px);
}
.aq-pro__catalog-header h2 { margin: 0; }
.aq-pro__catalog-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0;
	border-top: 1px solid var(--aq-line);
}
.aq-pro__catalog-list li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 24px;
	padding: clamp(18px, 2vw, 26px) 0;
	border-bottom: 1px solid var(--aq-line);
	align-items: start;
	transition: padding 220ms ease;
}
@media (hover: hover) and (pointer: fine) {
	.aq-pro__catalog-list li:hover { padding-left: 12px; padding-right: 12px; background: var(--aq-surface); }
}
.aq-pro__catalog-meta { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.aq-pro__catalog-meta h3 {
	font-family: var(--aq-display);
	font-size: clamp(20px, 1.8vw, 26px);
	font-weight: 500;
	letter-spacing: -0.018em;
	color: var(--aq-ink);
	margin: 2px 0 4px;
	line-height: 1.2;
}
.aq-pro__catalog-meta p {
	font-size: 13px;
	line-height: 1.6;
	color: var(--aq-ink-soft);
	margin: 0;
	max-width: 60ch;
}
.aq-pro__catalog-tag {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--aq-muted);
	padding: 6px 12px;
	border: 1px solid var(--aq-line);
	border-radius: 999px;
	white-space: nowrap;
	align-self: flex-start;
}

/* Apply form */
.aq-pro__apply { display: grid; gap: clamp(28px, 3vw, 40px); }
.aq-pro__apply-header { display: flex; flex-direction: column; gap: 8px; max-width: 56ch; }
.aq-pro__apply-header h2 { margin: 0; }
.aq-pro__apply-header p { margin: 0; font-size: 13px; color: var(--aq-ink-soft); line-height: 1.6; }

.aq-pro__form {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: clamp(20px, 2vw, 28px) clamp(20px, 3vw, 40px);
	align-items: start;
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	padding: clamp(24px, 3vw, 40px);
}
@media (max-width: 760px) {
	.aq-pro__form { grid-template-columns: 1fr; }
}
.aq-pro__row { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.aq-pro__row label {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--aq-muted);
}
.aq-pro__row--inline {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 20px;
}
@media (max-width: 480px) {
	.aq-pro__row--inline { grid-template-columns: 1fr; }
}
.aq-pro__row input,
.aq-pro__row select,
.aq-pro__row textarea {
	height: 46px;
	padding: 0 14px;
	border: 1px solid var(--aq-line);
	background: var(--aq-bg);
	font-family: var(--aq-sans);
	font-size: 14px;
	color: var(--aq-ink);
	transition: border-color 220ms ease, box-shadow 220ms ease;
}
.aq-pro__row textarea {
	height: auto;
	padding: 12px 14px;
	resize: vertical;
	line-height: 1.55;
}
.aq-pro__row input:focus,
.aq-pro__row select:focus,
.aq-pro__row textarea:focus {
	outline: none;
	border-color: var(--aq-ink);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--aq-ink) 8%, transparent);
}

.aq-pro__consent {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: 22px 1fr;
	gap: 10px;
	font-size: 12px;
	color: var(--aq-ink-soft);
	line-height: 1.55;
}
.aq-pro__consent input[type="checkbox"] {
	appearance: none;
	width: 18px; height: 18px;
	border: 1px solid var(--aq-line);
	background: var(--aq-bg);
	margin-top: 2px;
	cursor: pointer;
}
.aq-pro__consent input[type="checkbox"]:checked {
	background: var(--aq-ink);
	border-color: var(--aq-ink);
}
.aq-pro__consent input[type="checkbox"]:checked::after {
	content: "";
	display: block;
	width: 9px; height: 5px;
	margin: 4px 0 0 3px;
	border-left: 1.5px solid var(--aq-bg);
	border-bottom: 1.5px solid var(--aq-bg);
	transform: rotate(-45deg);
}
.aq-pro__consent a {
	color: var(--aq-ink);
	text-decoration: underline;
	text-decoration-color: var(--aq-line);
	text-underline-offset: 3px;
}

.aq-pro__submit {
	grid-column: 1 / -1;
	justify-self: flex-start;
	margin-top: 4px;
	padding: 0 32px;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: var(--aq-bg);
	border: 0;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1), background 220ms ease;
}
.aq-pro__submit:active { transform: scale(0.97); }
.aq-pro__submit i { font-style: normal; transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1); }

.aq-pro__direct {
	grid-column: 1 / -1;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-muted);
	margin: 0;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}
.aq-pro__direct a { color: var(--aq-ink); text-decoration: none; transition: color 180ms ease; }
.aq-pro__direct a:hover { color: var(--aq-hover); }
.aq-pro__direct span[aria-hidden] { color: var(--aq-line); }

.aq-pro__success {
	grid-column: 1 / -1;
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	padding: 16px 18px;
	display: grid;
	gap: 4px;
}
.aq-pro__success strong {
	font-family: var(--aq-display);
	font-size: 16px;
	letter-spacing: -0.01em;
	color: var(--aq-ink);
}
.aq-pro__success span { font-size: 13px; color: var(--aq-ink-soft); line-height: 1.55; }

/* --- Skin Quiz --------------------------------------------- */

.aq-quiz {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 96px) var(--aq-pad) clamp(72px, 8vw, 120px);
}
.aq-quiz__intro {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0 0 clamp(32px, 4vw, 56px);
	max-width: 38ch;
}
.aq-quiz__intro h1 { margin: 0; }
.aq-quiz__lede {
	margin: 0;
	font-size: clamp(15px, 1.2vw, 17px);
	line-height: 1.6;
	color: var(--aq-ink-soft);
	max-width: 56ch;
}

.aq-quiz__progress {
	position: relative;
	height: 2px;
	background: var(--aq-line);
	margin: 0 0 clamp(40px, 5vw, 64px);
	max-width: 100%;
}
.aq-quiz__progress-fill {
	display: block;
	height: 100%;
	background: var(--aq-ink);
	width: 100%;
	transform: scaleX(0.25);
	transform-origin: left center;
	transition: transform 240ms var(--aq-ease);
}
.aq-quiz__progress-label {
	position: absolute;
	top: 100%;
	right: 0;
	margin-top: 12px;
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--aq-muted);
	font-variant-numeric: tabular-nums;
}

.aq-quiz__stage {
	position: relative;
	min-height: 360px;
}
.aq-quiz__step,
.aq-quiz__result {
	display: none;
	flex-direction: column;
	gap: clamp(20px, 3vw, 32px);
}
.aq-quiz__step.is-active,
.aq-quiz__result:not([hidden]) { display: flex; }
.aq-quiz__step.is-active,
.aq-quiz__result:not([hidden]) {
	animation: aq-quiz-in 380ms cubic-bezier(0.23, 1, 0.32, 1) both;
}
@keyframes aq-quiz-in {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	.aq-quiz__step.is-active,
	.aq-quiz__result:not([hidden]) { animation: none; }
}
.aq-quiz__question {
	font-family: var(--aq-display);
	font-size: clamp(28px, 3.6vw, 42px);
	font-weight: 500;
	letter-spacing: -0.025em;
	color: var(--aq-ink);
	margin: 6px 0 0;
	line-height: 1.05;
	max-width: 22ch;
}

.aq-quiz__options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 12px;
}
.aq-quiz__option {
	display: grid;
	grid-template-columns: 36px 1fr 24px;
	align-items: center;
	gap: 14px;
	padding: 18px 20px;
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	color: var(--aq-ink);
	text-align: left;
	cursor: pointer;
	transition:
		border-color 220ms cubic-bezier(0.23, 1, 0.32, 1),
		background 220ms ease,
		transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
@media (hover: hover) and (pointer: fine) {
	.aq-quiz__option:hover {
		border-color: var(--aq-ink);
		background: var(--aq-surface);
	}
	.aq-quiz__option:hover .aq-quiz__option-arrow { transform: translateX(4px); }
}
.aq-quiz__option:active { transform: scale(0.99); }
.aq-quiz__option-num {
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.22em;
	color: var(--aq-muted);
	font-variant-numeric: tabular-nums;
}
.aq-quiz__option-label {
	font-family: var(--aq-display);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: -0.008em;
}
.aq-quiz__option-arrow {
	font-style: normal;
	color: var(--aq-muted);
	transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1), color 180ms ease;
}
.aq-quiz__option:hover .aq-quiz__option-arrow { color: var(--aq-ink); }

.aq-quiz__result-title {
	font-family: var(--aq-display);
	font-size: clamp(28px, 3.6vw, 42px);
	font-weight: 500;
	letter-spacing: -0.025em;
	color: var(--aq-ink);
	margin: 6px 0 0;
	line-height: 1.05;
	max-width: 22ch;
}
.aq-quiz__reason {
	font-family: var(--aq-display);
	font-size: clamp(18px, 1.5vw, 22px);
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.012em;
	line-height: 1.45;
	max-width: 48ch;
	margin: 0 0 8px;
	padding: 14px 0 14px 18px;
	border-left: 2px solid var(--aq-accent);
}

/* Shown only when no product could be resolved for any scoring key, so the
   result screen offers a way onward instead of an empty card. (DIM-396) */
.aq-quiz__fallback-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(12px, 1.5vw, 20px);
	margin-top: 8px;
}

.aq-quiz__pair {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
	gap: clamp(16px, 2vw, 24px);
	align-items: start;
}
@media (max-width: 760px) {
	.aq-quiz__pair { grid-template-columns: 1fr; }
}

.aq-quiz__card {
	display: grid;
	grid-template-columns: minmax(0, 240px) minmax(0, 1fr);
	gap: clamp(24px, 3vw, 40px);
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	padding: clamp(20px, 2.5vw, 32px);
	align-items: center;
}
@media (max-width: 600px) {
	.aq-quiz__card { grid-template-columns: 1fr; }
}

.aq-quiz__companion {
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	padding: clamp(16px, 2vw, 22px);
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.aq-quiz__companion-link {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 14px;
	align-items: center;
	text-decoration: none;
	color: var(--aq-ink);
	transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-quiz__companion-thumb {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px; height: 72px;
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	overflow: hidden;
}
.aq-quiz__companion-thumb img { max-width: 80%; max-height: 80%; object-fit: contain; }
.aq-quiz__companion-meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.aq-quiz__companion-meta strong {
	font-family: var(--aq-display);
	font-size: 16px;
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.012em;
	line-height: 1.25;
}
.aq-quiz__companion-meta > span {
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-muted);
}
.aq-quiz__companion-meta i {
	font-style: normal;
	margin-top: 6px;
	color: var(--aq-ink);
	font-size: 14px;
	letter-spacing: 0;
	transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1);
}
@media (hover: hover) and (pointer: fine) {
	.aq-quiz__companion-link:hover { transform: translateY(-2px); }
	.aq-quiz__companion-link:hover .aq-quiz__companion-meta i { transform: translateX(4px); }
	.aq-quiz__companion-link:hover .aq-quiz__companion-meta strong { color: var(--aq-hover); }
}
.aq-quiz__card-thumb {
	aspect-ratio: 1;
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	display: flex;
	align-items: center;
	justify-content: center;
}
.aq-quiz__card-thumb img {
	max-width: 80%;
	max-height: 80%;
	object-fit: contain;
}
.aq-quiz__card-body {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.aq-quiz__card-body h3 {
	font-family: var(--aq-display);
	font-size: clamp(22px, 2.2vw, 30px);
	font-weight: 500;
	letter-spacing: -0.015em;
	color: var(--aq-ink);
	margin: 4px 0 6px;
}
.aq-quiz__card-price {
	font-family: var(--aq-sans);
	font-size: 14px;
	color: var(--aq-ink-soft);
	margin: 0;
}
.aq-quiz__card-cta {
	margin-top: 14px;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 0 28px;
	color: var(--aq-bg);
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1), background 220ms ease;
}
.aq-quiz__card-cta:active { transform: scale(0.97); }
.aq-quiz__card-cta i { font-style: normal; transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1); }

.aq-quiz__restart {
	margin-top: 12px;
	align-self: flex-start;
	background: transparent;
	border: 0;
	color: var(--aq-muted);
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
	padding: 8px 0;
	transition: color 180ms ease;
}
.aq-quiz__restart:hover { color: var(--aq-ink); }

/* --- Wishlist page + header counter ------------------------ */

.aq-icon--wishlist { position: relative; display: inline-flex; align-items: center; justify-content: center; }
.aq-icon--wishlist strong {
	position: absolute;
	top: -4px;
	right: -8px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--aq-accent-cta);
	color: var(--aq-bg);
	font-family: var(--aq-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 0 0 2px var(--aq-bg);
}

.aq-wishlist {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 96px) var(--aq-pad) clamp(72px, 8vw, 120px);
}
.aq-wishlist__intro {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0 0 clamp(32px, 4vw, 56px);
	max-width: 32ch;
}
.aq-wishlist__intro h1 { margin: 0; }
.aq-wishlist__lede {
	font-size: clamp(15px, 1.2vw, 17px);
	line-height: 1.6;
	color: var(--aq-ink-soft);
	max-width: 56ch;
	margin: 0;
}

.aq-wishlist__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: clamp(16px, 2vw, 24px);
}
.aq-wishlist__card {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	transition: border-color 220ms cubic-bezier(0.23, 1, 0.32, 1), transform 220ms cubic-bezier(0.23, 1, 0.32, 1), box-shadow 220ms ease;
}
@media (hover: hover) and (pointer: fine) {
	.aq-wishlist__card:hover {
		border-color: var(--aq-ink);
		transform: translateY(-2px);
		box-shadow: 0 18px 32px -28px rgba(15, 15, 15, 0.22);
	}
}
.aq-wishlist__card-thumb {
	display: block;
	aspect-ratio: 4 / 5;
	background: var(--aq-surface);
	border-bottom: 1px solid var(--aq-line);
	overflow: hidden;
}
.aq-wishlist__card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 14% 16%;
	transition: transform 480ms cubic-bezier(0.23, 1, 0.32, 1);
}
@media (hover: hover) and (pointer: fine) {
	.aq-wishlist__card:hover .aq-wishlist__card-thumb img { transform: scale(1.04); }
}
.aq-wishlist__card-body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: clamp(16px, 2vw, 22px);
}
.aq-wishlist__card-body h3 {
	font-family: var(--aq-display);
	font-size: 18px;
	font-weight: 500;
	letter-spacing: -0.015em;
	color: var(--aq-ink);
	margin: 0;
	line-height: 1.2;
}
.aq-wishlist__card-body h3 a { color: inherit; text-decoration: none; }
.aq-wishlist__card-body h3 a:hover span { color: var(--aq-hover); }
.aq-wishlist__card-price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px;
	padding-top: 6px;
	border-top: 1px solid var(--aq-line);
}
.aq-wishlist__card-price strong {
	font-family: var(--aq-display);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: -0.018em;
	color: var(--aq-ink);
}
.aq-wishlist__card-perml {
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.06em;
	color: var(--aq-muted);
}
.aq-wishlist__card-perml::before { content: "· "; color: var(--aq-line); }
.aq-wishlist__card-actions {
	display: flex;
	gap: 8px;
	align-items: stretch;
	margin-top: 4px;
}
.aq-wishlist__card-cta {
	flex: 1 1 auto;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 0 18px;
	color: var(--aq-bg);
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 220ms ease, transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-wishlist__card-cta:active { transform: scale(0.97); }
.aq-wishlist__card-cta i {
	font-style: normal;
	transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1);
}
/* Out-of-stock state (class + aria-disabled added by main.js). On an <a>,
   :disabled can't match, so the modifier carries the muted styling. */
.aq-wishlist__card-cta--disabled,
.aq-wishlist__card-cta[aria-disabled="true"] {
	background: var(--aq-surface-2);
	color: var(--aq-muted);
	cursor: not-allowed;
	pointer-events: none;
}
.aq-wishlist__card-cta--disabled:hover,
.aq-wishlist__card-cta[aria-disabled="true"]:hover { background: var(--aq-surface-2); }
.aq-wishlist__card-cta--disabled:hover i,
.aq-wishlist__card-cta[aria-disabled="true"]:hover i { transform: none; }
.aq-wishlist__card-remove {
	width: 46px; height: 46px;
	border: 1px solid var(--aq-line);
	background: transparent;
	color: var(--aq-ink);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: background 180ms ease, color 180ms ease, border-color 180ms ease, transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-wishlist__card-remove:hover { background: var(--aq-ink); color: var(--aq-bg); border-color: var(--aq-ink); }
.aq-wishlist__card-remove:active { transform: scale(0.92); }

.aq-wishlist__empty {
	display: grid;
	gap: 16px;
	max-width: 36ch;
	padding: clamp(32px, 4vw, 56px) 0;
	margin: 0 auto;
	text-align: center;
	color: var(--aq-ink);
}
.aq-wishlist__empty[hidden] { display: none; }
.aq-wishlist__empty-icon {
	width: 48px;
	height: 48px;
	margin: 0 auto;
	color: var(--aq-muted);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.aq-wishlist__empty-icon svg { width: 100%; height: 100%; }
.aq-wishlist__empty h2 {
	font-family: var(--aq-display);
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 500;
	letter-spacing: -0.018em;
	margin: 0;
}
.aq-wishlist__empty p {
	font-size: 14px;
	line-height: 1.6;
	color: var(--aq-ink-soft);
	margin: 0;
}
.aq-wishlist__shop {
	justify-self: center;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 0 28px;
	height: 48px;
	background: var(--aq-ink);
	color: var(--aq-bg);
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 220ms ease, transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-wishlist__shop:hover { background: var(--aq-hover); }
.aq-wishlist__shop:active { transform: scale(0.97); }
.aq-wishlist__shop i { font-style: normal; transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1); }
.aq-wishlist__shop:hover i { transform: translateX(4px); }

/* --- Sitewide search overlay ------------------------------- */

.aq-icon--btn {
	background: transparent;
	border: 0;
	padding: 0;
	cursor: pointer;
	color: inherit;
}

.aq-search {
	max-width: 100%;
	width: 100%;
	border: 0;
	padding: 0;
	background: transparent;
	color: inherit;
}
.aq-search::backdrop {
	background: color-mix(in srgb, var(--aq-ink) 40%, transparent);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.aq-search[open] {
	position: fixed;
	inset: 0;
	margin: 0;
	/* z-index for the non-modal fallback (browsers without showModal() open via
	   setAttribute('open') and aren't in the top layer) — sit above the cookie
	   banner (9999), sticky cart and header. */
	z-index: 10000;
}
.aq-search__panel {
	max-width: 880px;
	margin: 8vh auto 0;
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	box-shadow: 0 30px 60px -32px rgba(15, 15, 15, 0.4);
	display: flex;
	flex-direction: column;
	transform: translateY(-12px);
	opacity: 0;
	transition: transform 280ms cubic-bezier(0.23, 1, 0.32, 1), opacity 220ms ease;
}
@starting-style {
	.aq-search[open] .aq-search__panel {
		transform: translateY(-12px);
		opacity: 0;
	}
}
.aq-search[open] .aq-search__panel {
	transform: translateY(0);
	opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
	.aq-search__panel { transition: opacity 180ms ease; transform: none; }
}

.aq-search__bar {
	display: grid;
	/* Third column tracks .aq-search__close, which is now a 44px target with a
	   32px visible ring; the gap is reduced by the same amount so the ring sits
	   where it did. (DIM-484) */
	grid-template-columns: 26px minmax(0, 1fr) 44px;
	gap: 8px;
	align-items: center;
	padding: 18px clamp(18px, 2vw, 24px);
	border-bottom: 1px solid var(--aq-line);
	margin: 0;
}
.aq-search__icon { width: 22px; height: 22px; color: var(--aq-muted); }
.aq-search input[type="search"] {
	border: 0;
	background: transparent;
	font-family: var(--aq-display);
	font-size: clamp(20px, 2vw, 26px);
	color: var(--aq-ink);
	letter-spacing: -0.015em;
	width: 100%;
	/* 44px tall so the field itself is a valid target, not only the bar around
	   it. Padding rather than a height so the caret stays centred. (DIM-484) */
	min-height: 44px;
	padding: 8px 0;
	-webkit-appearance: none;
	appearance: none;
}
.aq-search input[type="search"]:focus { outline: none; }
/* Visible focus indicator on the bar (the input clears its own outline).
   Strengthens the existing bottom border so keyboard re-focus is visible. */
.aq-search__bar:focus-within { box-shadow: inset 0 -2px 0 var(--aq-ink); }
.aq-search input[type="search"]::placeholder { color: var(--aq-muted); opacity: 1; }
.aq-search__close {
	/* The visible ring stays 32px; the touch target is grown to 44px with a
	   transparent border so the control still *looks* like a small circle but
	   is not a 32px tap target on a phone. background-clip keeps the hover fill
	   inside the ring rather than bleeding into the padding. (DIM-484) */
	width: 44px; height: 44px;
	border-radius: 50%;
	border: 6px solid transparent;
	box-shadow: inset 0 0 0 1px var(--aq-line);
	background: transparent;
	background-clip: padding-box;
	color: var(--aq-ink);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: background 180ms ease, color 180ms ease, border-color 180ms ease, transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-search__close:hover { background: var(--aq-ink); color: var(--aq-bg); box-shadow: inset 0 0 0 1px var(--aq-ink); }
.aq-search__close:active { transform: scale(0.92); }

.aq-search__suggested {
	padding: 16px clamp(18px, 2vw, 24px);
	border-bottom: 1px solid var(--aq-line);
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.aq-search__suggested ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.aq-search__suggested a {
	display: inline-flex;
	align-items: center;
	/* 44px tall: these are the primary way into a search on a phone. The pill
	   keeps its shape because the extra height is padding, not a taller font.
	   (DIM-484) */
	min-height: 44px;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--aq-ink);
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	padding: 6px 16px;
	border-radius: 999px;
	text-decoration: none;
	transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
}
.aq-search__suggested a:hover {
	background: var(--aq-ink);
	color: var(--aq-bg);
	border-color: var(--aq-ink);
}

.aq-search__results {
	max-height: 50vh;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}
.aq-search__results ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.aq-search__results li + li { border-top: 1px solid var(--aq-line); }
.aq-search__results a {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	gap: 16px;
	align-items: center;
	padding: 14px clamp(18px, 2vw, 24px);
	text-decoration: none;
	color: var(--aq-ink);
	transition: background 180ms ease;
}
.aq-search__results a:hover { background: var(--aq-surface); }
.aq-search__results img {
	width: 56px;
	height: 56px;
	object-fit: contain;
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	padding: 6px;
}
.aq-search__results .aq-search__title {
	font-family: var(--aq-display);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: -0.012em;
	color: var(--aq-ink);
}
.aq-search__results .aq-search__subtitle {
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-muted);
	margin-top: 2px;
	display: block;
}
.aq-search__results .aq-search__price {
	font-family: var(--aq-sans);
	font-size: 13px;
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.005em;
	white-space: nowrap;
}
.aq-search__empty {
	padding: clamp(18px, 2vw, 26px) clamp(18px, 2vw, 24px);
	font-family: var(--aq-sans);
	font-size: 13px;
	color: var(--aq-muted);
	line-height: 1.55;
}

.aq-search__footer {
	border-top: 1px solid var(--aq-line);
	padding: 14px clamp(18px, 2vw, 24px);
}
.aq-search__all {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--aq-ink);
	text-decoration: none;
	transition: color 180ms ease;
}
.aq-search__all i {
	font-style: normal;
	font-size: 14px;
	transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-search__all:hover { color: var(--aq-hover); }
.aq-search__all:hover i { transform: translateX(4px); }

/* --- Persönliche Beratung (consultation) ------------------- */

/* The service bar used to be dark, and this block still carried its colours:
   --aq-bg text on what is now --aq-accent-soft measures 1.25:1. The resting
   state was already patched back to --aq-ink by a later layer, but nothing
   overrode :hover, so the label vanished on pointer-over. Both states are set
   here against the light bar instead of relying on that patch. --aq-accent was
   the issue's other suggestion but only reaches 3.41:1, short of AA. (DIM-400) */
.aq-service-bar__cta {
	color: var(--aq-ink);
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--aq-accent) 55%, transparent);
	text-underline-offset: 4px;
	letter-spacing: 0.1em;
	transition: text-decoration-color 180ms ease;
}
.aq-service-bar__cta:hover { color: var(--aq-ink); text-decoration-color: currentColor; }

.aq-beratung-fab {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 65;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 52px;
	padding: 0 22px 0 18px;
	background: var(--aq-ink);
	color: var(--aq-bg);
	border: 0;
	border-radius: 999px;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: var(--aq-shadow-pop);
	transition:
		transform 200ms cubic-bezier(0.23, 1, 0.32, 1),
		background 220ms ease,
		box-shadow 220ms ease;
}
.aq-beratung-fab svg { width: 18px; height: 18px; }
.aq-beratung-fab:hover {
	background: var(--aq-hover);
	box-shadow: 0 22px 40px -16px rgba(139, 26, 31, 0.45);
}
.aq-beratung-fab:active { transform: scale(0.97); }
/* Hide the floating consultation FAB on cart & checkout — it overlaps the
   primary CTA ("Weiter zur Kasse" / place-order) and form fields. The
   consultation dialog stays reachable via the service-bar / contact links. */
.woocommerce-cart .aq-beratung-fab,
.woocommerce-checkout .aq-beratung-fab { display: none; }
@media (max-width: 600px) {
	.aq-beratung-fab { right: 16px; bottom: 86px; padding: 0 14px; }
	.aq-beratung-fab span { display: none; }
}

.aq-beratung {
	border: 0;
	padding: 0;
	background: transparent;
	max-width: min(560px, calc(100% - 32px));
	width: 100%;
	color: inherit;
}
.aq-beratung::backdrop {
	background: color-mix(in srgb, var(--aq-ink) 38%, transparent);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}
/* z-index for the non-modal fallback (no showModal()) — above cookie banner. */
.aq-beratung[open] { z-index: 10000; }
.aq-beratung[open] .aq-beratung__panel {
	transform: scale(1) translateY(0);
	opacity: 1;
}
@starting-style {
	.aq-beratung[open] .aq-beratung__panel {
		transform: scale(0.97) translateY(8px);
		opacity: 0;
	}
}
.aq-beratung__panel {
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	padding: clamp(24px, 3vw, 36px);
	display: grid;
	gap: 18px;
	position: relative;
	transform-origin: bottom right;
	transition: transform 280ms cubic-bezier(0.23, 1, 0.32, 1), opacity 220ms ease;
}
@media (prefers-reduced-motion: reduce) {
	.aq-beratung__panel { transition: opacity 180ms ease; transform: none; }
}
.aq-beratung__close {
	position: absolute;
	/* Offset by the added padding so the ring sits where it did before. Same
	   32px-ring / 44px-target split as .aq-search__close. (DIM-484) */
	top: 8px; right: 8px;
	width: 44px; height: 44px;
	border-radius: 50%;
	background: transparent;
	background-clip: padding-box;
	border: 6px solid transparent;
	box-shadow: inset 0 0 0 1px var(--aq-line);
	color: var(--aq-ink);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: background 180ms ease, color 180ms ease, border-color 180ms ease, transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-beratung__close:hover { background: var(--aq-ink); color: var(--aq-bg); box-shadow: inset 0 0 0 1px var(--aq-ink); }
.aq-beratung__close:active { transform: scale(0.92); }

.aq-beratung__header h2 {
	font-family: var(--aq-display);
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 500;
	letter-spacing: -0.018em;
	color: var(--aq-ink);
	margin: 6px 0 8px;
}
.aq-beratung__header p {
	font-size: 13px;
	line-height: 1.6;
	color: var(--aq-ink-soft);
	margin: 0;
}

.aq-beratung__facts {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
	margin: 0;
	border: 1px solid var(--aq-line);
}
.aq-beratung__facts > div {
	padding: 12px 16px;
	border-right: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
}
.aq-beratung__facts > div:nth-child(2n) { border-right: 0; }
.aq-beratung__facts > div:nth-last-child(-n+2) { border-bottom: 0; }
.aq-beratung__facts dt {
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--aq-muted);
	margin: 0 0 2px;
}
.aq-beratung__facts dd {
	font-family: var(--aq-sans);
	font-size: 13px;
	font-weight: 500;
	color: var(--aq-ink);
	margin: 0;
	letter-spacing: -0.005em;
}

.aq-beratung__form { display: grid; gap: 12px; }
.aq-beratung__row { display: grid; gap: 4px; }
.aq-beratung__row label {
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--aq-muted);
}
.aq-beratung__row input,
.aq-beratung__row select {
	height: 44px;
	padding: 0 14px;
	border: 1px solid var(--aq-line);
	background: var(--aq-bg);
	font-family: var(--aq-sans);
	font-size: 14px;
	color: var(--aq-ink);
	transition: border-color 220ms ease, box-shadow 220ms ease;
}
.aq-beratung__row input:focus,
.aq-beratung__row select:focus {
	outline: none;
	border-color: var(--aq-ink);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--aq-ink) 8%, transparent);
}
.aq-beratung__submit {
	margin-top: 4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: var(--aq-bg);
	border: 0;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1), background 220ms ease;
	position: relative;
	overflow: hidden;
}
.aq-beratung__submit:disabled {
	cursor: wait;
	opacity: 0.68;
}
.aq-beratung__submit:active { transform: scale(0.97); }
.aq-beratung__submit i { font-style: normal; font-size: 14px; transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1); }
.aq-beratung__note {
	font-size: 11px;
	color: var(--aq-muted);
	line-height: 1.55;
	margin: 0;
	letter-spacing: 0.02em;
}
.aq-beratung__note a {
	color: var(--aq-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-color: var(--aq-line);
}
.aq-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}
.aq-beratung__consent {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	align-items: start;
	gap: 10px;
	font-size: 12px;
	line-height: 1.5;
	color: var(--aq-ink-soft);
}
.aq-beratung__consent input {
	/* The box rendered 18x13 because a flex/grid context squashed it. Fixing the
	   box itself keeps the checkbox square; the label beside it is already a
	   click target for the same control, which is what carries the tap area.
	   (DIM-484) */
	width: 18px;
	height: 18px;
	flex: none;
	margin: 3px 0 0;
}
.aq-beratung__consent a {
	color: var(--aq-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.aq-beratung__error,
.aq-pro__error {
	margin: 0;
	font-size: 12px;
	line-height: 1.5;
	color: var(--aq-accent-ink);
}
.aq-beratung__success {
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	padding: 14px 16px;
	display: grid;
	gap: 4px;
	margin: 8px 0 0;
}
.aq-beratung__success strong {
	font-family: var(--aq-display);
	font-size: 16px;
	color: var(--aq-ink);
	letter-spacing: -0.01em;
}
.aq-beratung__success span { font-size: 13px; color: var(--aq-ink-soft); line-height: 1.55; }

/* --- Cookie consent banner --------------------------------- */

.aq-consent[hidden] { display: none !important; }
.aq-consent {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 9999;
	display: flex;
	justify-content: center;
	pointer-events: none;
}
.aq-consent__panel {
	pointer-events: auto;
	width: min(960px, calc(100% - 32px));
	margin: 0 16px 16px;
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	box-shadow: 0 18px 48px -32px rgba(15, 15, 15, 0.45);
	padding: clamp(20px, 2.5vw, 28px);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	column-gap: clamp(20px, 3vw, 36px);
	row-gap: 20px;
	transform: translateY(20px);
	opacity: 0;
	transition: transform 320ms cubic-bezier(0.23, 1, 0.32, 1), opacity 240ms ease;
}
@starting-style {
	.aq-consent:not([hidden]) .aq-consent__panel {
		transform: translateY(20px);
		opacity: 0;
	}
}
.aq-consent:not([hidden]) .aq-consent__panel {
	transform: translateY(0);
	opacity: 1;
}
@media (max-width: 760px) {
	.aq-consent__panel { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.aq-consent__panel { transition: opacity 180ms ease; transform: none; }
}

.aq-consent__copy h2 {
	font-family: var(--aq-display);
	font-size: clamp(18px, 1.6vw, 22px);
	font-weight: 500;
	letter-spacing: -0.015em;
	color: var(--aq-ink);
	margin: 6px 0 8px;
}
.aq-consent__copy p {
	font-size: 13px;
	line-height: 1.6;
	color: var(--aq-ink-soft);
	margin: 0;
}
.aq-consent__copy a {
	color: var(--aq-ink);
	text-decoration: underline;
	text-decoration-color: var(--aq-line);
	text-underline-offset: 3px;
}
.aq-consent__copy a:hover { color: var(--aq-hover); }

.aq-consent__choices {
	display: grid;
	gap: 8px;
	align-content: start;
}
.aq-consent__row {
	display: grid;
	grid-template-columns: 22px 1fr;
	gap: 12px;
	padding: 12px;
	border: 1px solid var(--aq-line);
	background: var(--aq-surface);
	cursor: pointer;
	transition: border-color 220ms ease, background 220ms ease;
}
.aq-consent__row:hover { border-color: color-mix(in srgb, var(--aq-ink) 30%, var(--aq-line)); }
.aq-consent__row input[type="checkbox"] {
	appearance: none;
	width: 18px; height: 18px;
	border: 1px solid var(--aq-line);
	background: var(--aq-bg);
	margin-top: 2px;
	cursor: pointer;
	transition: background 180ms ease, border-color 180ms ease;
}
.aq-consent__row input[type="checkbox"]:checked {
	background: var(--aq-ink);
	border-color: var(--aq-ink);
}
.aq-consent__row input[type="checkbox"]:checked::after {
	content: "";
	display: block;
	width: 9px; height: 5px;
	margin: 4px 0 0 3px;
	border-left: 1.5px solid var(--aq-bg);
	border-bottom: 1.5px solid var(--aq-bg);
	transform: rotate(-45deg);
}
.aq-consent__row input[type="checkbox"]:disabled { background: var(--aq-muted); border-color: var(--aq-muted); cursor: not-allowed; opacity: 0.7; }
.aq-consent__row--locked { cursor: not-allowed; }
.aq-consent__row-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.aq-consent__row-main strong {
	font-family: var(--aq-sans);
	font-size: 13px;
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.005em;
}
.aq-consent__row-main small {
	font-family: var(--aq-sans);
	font-size: 11px;
	color: var(--aq-muted);
	line-height: 1.5;
}

.aq-consent__actions {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
	padding-top: 12px;
	border-top: 1px solid var(--aq-line);
}
.aq-consent__btn {
	padding: 0 22px;
	height: 44px;
	font-family: var(--aq-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
	border: 1px solid var(--aq-line);
	background: var(--aq-bg);
	color: var(--aq-ink);
	transition:
		background 220ms ease,
		color 220ms ease,
		border-color 220ms ease,
		transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.aq-consent__btn:hover { background: var(--aq-surface); }
.aq-consent__btn:active { transform: scale(0.97); }
.aq-consent__btn--primary {
	color: var(--aq-bg);
}

/* Sticky mini-cart bar (single product) */

.aq-sticky-cart {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 60;
	background: var(--aq-bg);
	border-top: 1px solid var(--aq-line);
	box-shadow: 0 -16px 32px -24px rgba(15, 15, 15, 0.18);
	transform: translateY(100%);
	transition:
		transform 280ms cubic-bezier(0.23, 1, 0.32, 1),
		opacity 220ms ease;
	opacity: 0;
	pointer-events: none;
	will-change: transform;
}
.aq-sticky-cart.is-visible {
	transform: translateY(0);
	opacity: 1;
	pointer-events: auto;
}
.aq-sticky-cart__inner {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: 12px var(--aq-pad);
	display: flex;
	align-items: center;
	gap: 20px;
}
.aq-sticky-cart__product {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	flex: 1 1 auto;
}
.aq-sticky-cart__thumb {
	width: 48px;
	height: 48px;
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.aq-sticky-cart__thumb img {
	max-width: 80%;
	max-height: 80%;
	width: auto;
	height: auto;
	object-fit: contain;
}
.aq-sticky-cart__meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.aq-sticky-cart__meta strong {
	font-family: var(--aq-sans);
	font-size: 13px;
	font-weight: 500;
	color: var(--aq-ink);
	letter-spacing: -0.005em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.aq-sticky-cart__meta > span {
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	color: var(--aq-muted);
}
.aq-sticky-cart__form {
	display: flex;
	align-items: stretch;
	gap: 8px;
	margin: 0;
	flex-shrink: 0;
}
.aq-sticky-cart__qty input[type="number"] {
	width: 56px;
	height: 44px;
	border: 1px solid var(--aq-line);
	background: var(--aq-bg);
	text-align: center;
	font-family: var(--aq-sans);
	font-size: 14px;
	font-weight: 500;
	color: var(--aq-ink);
	-moz-appearance: textfield;
}
.aq-sticky-cart__qty input[type="number"]::-webkit-outer-spin-button,
.aq-sticky-cart__qty input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.aq-sticky-cart__cta {
	position: relative;
	overflow: hidden;
	background: var(--aq-accent-cta);
	color: var(--aq-bg);
	border: 0;
	border-radius: 2px;
	padding: 0 28px;
	height: 44px;
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--aq-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
	transition:
		transform 160ms cubic-bezier(0.23, 1, 0.32, 1),
		background 220ms ease;
	will-change: transform;
}
.aq-sticky-cart__cta i {
	font-style: normal;
	transition: transform 220ms cubic-bezier(0.23, 1, 0.32, 1);
}
@media (hover: hover) and (pointer: fine) {
	.aq-sticky-cart__cta:hover { background: var(--aq-hover); }
	.aq-sticky-cart__cta:hover i { transform: translateX(3px); }
}
.aq-sticky-cart__cta:active { transform: scale(0.97); }

@media (max-width: 600px) {
	.aq-sticky-cart__inner { padding: 10px 16px; gap: 12px; }
	.aq-sticky-cart__thumb { width: 40px; height: 40px; }
	.aq-sticky-cart__meta strong { font-size: 12px; }
	.aq-sticky-cart__qty { display: none; }
	.aq-sticky-cart__cta { padding: 0 18px; }
	.aq-sticky-cart__cta span {
		position: absolute; width: 1px; height: 1px;
		overflow: hidden; clip: rect(1px,1px,1px,1px);
		white-space: nowrap;
	}
	.aq-sticky-cart__cta::after {
		content: "→";
		font-family: var(--aq-sans);
		font-size: 16px;
	}
	.aq-sticky-cart__cta i { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.aq-sticky-cart { transition: opacity 200ms ease; transform: none; }
}

/* --- About AQ --------------------------------------------- */

.aq-about {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 96px) var(--aq-pad) clamp(72px, 9vw, 120px);
	display: grid;
	gap: clamp(56px, 7vw, 104px);
}

.aq-about__intro {
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-width: 32ch;
}
.aq-about__intro h1 { margin: 0; }
.aq-about__lede {
	margin: 4px 0 0;
	font-size: clamp(15px, 1.2vw, 17px);
	line-height: 1.6;
	color: var(--aq-ink-soft);
	max-width: 64ch;
}

.aq-about__quote {
	border-top: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
	padding: clamp(36px, 5vw, 72px) 0;
	display: flex;
	justify-content: center;
}
.aq-about__quote blockquote {
	margin: 0;
	max-width: 28ch;
	display: flex;
	flex-direction: column;
	gap: 18px;
	text-align: left;
}
.aq-about__quote blockquote p {
	margin: 0;
	font-family: var(--aq-display);
	font-size: clamp(24px, 3.4vw, 40px);
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--aq-ink);
}
.aq-about__quote cite {
	font-style: normal;
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--aq-ink-soft);
}

.aq-about__story {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: clamp(32px, 5vw, 80px);
	align-items: start;
}
@media (max-width: 820px) {
	.aq-about__story { grid-template-columns: 1fr; gap: 28px; }
}
.aq-about__story-aside {
	display: flex;
	flex-direction: column;
	gap: 10px;
	position: sticky;
	top: calc(var(--aq-header-h) + 16px);
}
@media (max-width: 820px) {
	.aq-about__story-aside { position: static; }
}
.aq-about__story-year {
	font-family: var(--aq-display);
	font-size: clamp(48px, 6vw, 80px);
	line-height: 1;
	color: var(--aq-ink);
	letter-spacing: -0.02em;
}
.aq-about__story-aside p {
	margin: 0;
	font-size: 13px;
	line-height: 1.6;
	color: var(--aq-ink-soft);
	max-width: 28ch;
}
.aq-about__story-body { display: flex; flex-direction: column; gap: 18px; }
.aq-about__story-body h2 { margin: 0 0 8px; max-width: 18ch; }
.aq-about__story-body p {
	margin: 0;
	font-size: clamp(14px, 1.05vw, 16px);
	line-height: 1.7;
	color: var(--aq-ink);
	max-width: 64ch;
}

.aq-about__science-header {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0 0 clamp(28px, 3vw, 44px);
	max-width: 32ch;
}
.aq-about__science-header h2 { margin: 0; }
.aq-about__pillars {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	/* 1px lined-background gap = column-count-agnostic dividers. */
	gap: 1px;
	background: var(--aq-line);
	border-top: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
}
.aq-about__pillar {
	padding: clamp(24px, 3vw, 36px) clamp(20px, 2vw, 28px);
	background: var(--aq-bg);
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: background 220ms ease;
}
@media (hover: hover) {
	.aq-about__pillar:hover { background: var(--aq-surface); }
}
.aq-about__pillar-num {
	font-family: var(--aq-display);
	font-size: 13px;
	letter-spacing: 0.16em;
	color: var(--aq-accent-ink);
}
.aq-about__pillar h3 {
	margin: 0;
	font-family: var(--aq-display);
	font-size: clamp(18px, 1.6vw, 22px);
	line-height: 1.2;
	letter-spacing: -0.01em;
}
.aq-about__pillar p {
	margin: 0;
	font-size: 13px;
	line-height: 1.65;
	color: var(--aq-ink-soft);
}

.aq-about__numbers {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	/* 1px lined-background gap = column-count-agnostic dividers. */
	gap: 1px;
	background: var(--aq-line);
	border-top: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
}
.aq-about__num {
	padding: clamp(28px, 3vw, 40px) clamp(20px, 2vw, 28px);
	background: var(--aq-bg);
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: flex-start;
}
.aq-about__num strong {
	font-family: var(--aq-display);
	font-size: clamp(32px, 4vw, 56px);
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--aq-ink);
	font-weight: 500;
}
.aq-about__num span {
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aq-ink-soft);
}

.aq-about__trust-header {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0 0 clamp(28px, 3vw, 44px);
	max-width: 32ch;
}
.aq-about__trust-header h2 { margin: 0; }
.aq-about__trust-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 0;
	border-top: 1px solid var(--aq-line);
}
.aq-about__trust-list li {
	padding: clamp(20px, 2.2vw, 28px) 0;
	border-bottom: 1px solid var(--aq-line);
	display: grid;
	grid-template-columns: 1fr 1.6fr;
	gap: 28px;
	align-items: baseline;
}
@media (max-width: 720px) {
	.aq-about__trust-list { grid-template-columns: 1fr; }
	.aq-about__trust-list li { grid-template-columns: 1fr; gap: 8px; }
}
.aq-about__trust-list strong {
	font-family: var(--aq-display);
	font-size: clamp(15px, 1.2vw, 17px);
	font-weight: 500;
	letter-spacing: -0.005em;
	color: var(--aq-ink);
}
.aq-about__trust-list span {
	font-size: 13px;
	line-height: 1.65;
	color: var(--aq-ink-soft);
}

.aq-about__cta {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: clamp(28px, 4vw, 56px);
	align-items: center;
	padding: clamp(36px, 5vw, 64px);
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
}
@media (max-width: 720px) {
	.aq-about__cta { grid-template-columns: 1fr; padding: 28px; }
}
.aq-about__cta-body { display: flex; flex-direction: column; gap: 8px; }
.aq-about__cta-body h2 { margin: 0; max-width: 18ch; }
.aq-about__cta-body p {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--aq-ink-soft);
	max-width: 52ch;
}
.aq-about__cta-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: flex-start;
}
@media (min-width: 721px) {
	.aq-about__cta-actions { justify-content: flex-end; }
}

/* --- 404 -------------------------------------------------- */

.aq-404 {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 96px) var(--aq-pad) clamp(72px, 9vw, 120px);
	display: grid;
	gap: clamp(40px, 5vw, 72px);
}
.aq-404__intro { display: flex; flex-direction: column; gap: 12px; max-width: 28ch; }
.aq-404__intro h1 { margin: 0; }
.aq-404__lede {
	margin: 4px 0 0;
	font-size: clamp(15px, 1.2vw, 17px);
	line-height: 1.6;
	color: var(--aq-ink-soft);
	max-width: 56ch;
}
.aq-404__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.aq-404__search-cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 0 22px;
	height: 48px;
	border: 1px solid var(--aq-line);
	background: transparent;
	font: inherit;
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-ink);
	cursor: pointer;
	transition: background 200ms ease, color 200ms ease, border-color 200ms ease;
}
@media (hover: hover) and (pointer: fine) {
	.aq-404__search-cta:hover { background: var(--aq-ink); color: var(--aq-bg); border-color: var(--aq-ink); }
}
.aq-404__search-cta:active { transform: scale(0.98); }
.aq-404__search-cta svg { width: 16px; height: 16px; }

.aq-404__suggest-header {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0 0 clamp(20px, 2.4vw, 36px);
	max-width: 32ch;
}
.aq-404__suggest-header h2 { margin: 0; }
.aq-404__products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	/* 1px lined-background gap = column-count-agnostic dividers. */
	gap: 1px;
	background: var(--aq-line);
	border-top: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
}
.aq-404__product {
	background: var(--aq-bg);
}
.aq-404__product a {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: clamp(20px, 2.2vw, 28px) clamp(16px, 1.8vw, 24px);
	color: inherit;
	text-decoration: none;
	transition: background 220ms ease;
}
@media (hover: hover) {
	.aq-404__product a:hover { background: var(--aq-surface); }
}
.aq-404__product-thumb {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	background: var(--aq-surface);
}
.aq-404__product-thumb--placeholder { background: var(--aq-surface); }
.aq-404__product-meta { display: flex; flex-direction: column; gap: 4px; }
.aq-404__product-meta strong {
	font-family: var(--aq-display);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: -0.005em;
	color: var(--aq-ink);
}
.aq-404__product-meta span {
	font-size: 12px;
	color: var(--aq-ink-soft);
}

/* --- Search results page ---------------------------------- */

.aq-search-page {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 96px) var(--aq-pad) clamp(72px, 9vw, 120px);
	display: grid;
	gap: clamp(32px, 4vw, 56px);
}
.aq-search-page__intro { display: flex; flex-direction: column; gap: 16px; max-width: 64ch; }
.aq-search-page__intro h1 { margin: 0; word-break: break-word; }
.aq-search-page__form {
	display: flex;
	align-items: stretch;
	border: 1px solid var(--aq-line);
	max-width: 640px;
	transition: border-color 200ms ease;
}
.aq-search-page__form:focus-within { border-color: var(--aq-ink); }
.aq-search-page__form input {
	flex: 1;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 14px 18px;
	font: inherit;
	font-size: 15px;
	color: var(--aq-ink);
}
.aq-search-page__form input:focus { outline: none; }
.aq-search-page__form input::placeholder { color: var(--aq-ink-soft); }
.aq-search-page__form button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 0 22px;
	border: 0;
	border-left: 1px solid var(--aq-line);
	background: var(--aq-ink);
	color: var(--aq-bg);
	font: inherit;
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 200ms ease;
}
@media (hover: hover) and (pointer: fine) {
	.aq-search-page__form button:hover { background: var(--aq-hover); color: var(--aq-bg); }
}
.aq-search-page__form button svg { width: 16px; height: 16px; }
@media (max-width: 540px) {
	.aq-search-page__form button span { display: none; }
	.aq-search-page__form button { padding: 0 16px; }
}

.aq-search-page__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--aq-line);
}
.aq-search-page__item { border-bottom: 1px solid var(--aq-line); }
.aq-search-page__item a {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 18px;
	align-items: center;
	padding: clamp(18px, 2vw, 24px) 0;
	color: inherit;
	text-decoration: none;
	transition: padding 220ms var(--aq-ease-out);
}
@media (hover: hover) {
	.aq-search-page__item a:hover { padding-left: 12px; padding-right: 12px; background: var(--aq-surface); }
}
.aq-search-page__item-meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.aq-search-page__item-meta strong {
	font-family: var(--aq-display);
	font-size: clamp(16px, 1.4vw, 19px);
	font-weight: 500;
	letter-spacing: -0.005em;
	color: var(--aq-ink);
}
.aq-search-page__price, .aq-search-page__excerpt {
	font-size: 13px;
	line-height: 1.6;
	color: var(--aq-ink-soft);
}
.aq-search-page__arrow {
	font-family: var(--aq-display);
	font-size: 20px;
	color: var(--aq-ink-soft);
	transition: transform 200ms var(--aq-ease-out), color 200ms ease;
}
.aq-search-page__item a:hover .aq-search-page__arrow {
	transform: translateX(4px);
	color: var(--aq-ink);
}

.aq-search-page__pagination {
	display: flex;
	justify-content: center;
	margin-top: 8px;
}
.aq-search-page__pagination .nav-links {
	display: flex;
	gap: 6px;
	align-items: center;
}
.aq-search-page__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	border: 1px solid var(--aq-line);
	font-size: 13px;
	color: var(--aq-ink);
	text-decoration: none;
	transition: background 200ms ease, color 200ms ease, border-color 200ms ease;
}
.aq-search-page__pagination .page-numbers:hover { background: var(--aq-ink); color: var(--aq-bg); border-color: var(--aq-ink); }
.aq-search-page__pagination .page-numbers.current { background: var(--aq-ink); color: var(--aq-bg); border-color: var(--aq-ink); }

.aq-search-page__empty {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: clamp(24px, 3vw, 40px);
	background: var(--aq-surface);
	border: 1px solid var(--aq-line);
	max-width: 56ch;
}
.aq-search-page__empty p {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--aq-ink-soft);
}

/* --- WooCommerce My Account ------------------------------- */

.woocommerce-account .aq-page-hero {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 80px) var(--aq-pad) clamp(20px, 2.4vw, 32px);
}
.woocommerce-account .aq-content {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: 0 var(--aq-pad) clamp(72px, 9vw, 120px);
}

/* Login / register grid */
.woocommerce-account .u-columns,
.woocommerce-account .woocommerce > .u-columns,
.woocommerce-account .woocommerce > div > .u-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(28px, 4vw, 64px);
	margin: 0;
}
@media (max-width: 760px) {
	.woocommerce-account .u-columns,
	.woocommerce-account .woocommerce > .u-columns,
	.woocommerce-account .woocommerce > div > .u-columns {
		grid-template-columns: 1fr;
	}
}
.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
	float: none !important;
	width: 100% !important;
	padding: 0 !important;
}
.woocommerce-account .col2-set::before,
.woocommerce-account .col2-set::after,
.woocommerce-account .u-columns::before,
.woocommerce-account .u-columns::after { content: none !important; }

.woocommerce-account h2 {
	margin: 0 0 18px;
	font-family: var(--aq-display);
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 500;
	letter-spacing: -0.01em;
	color: var(--aq-ink);
}

/* Forms: login, register, lost password, addresses */
.woocommerce form.woocommerce-form-login,
.woocommerce form.woocommerce-form-register,
.woocommerce form.lost_reset_password,
.woocommerce-edit-account form,
.woocommerce-edit-address form,
.woocommerce-checkout form.checkout {
	border: 1px solid var(--aq-line);
	padding: clamp(20px, 2.4vw, 32px);
	background: var(--aq-bg);
}
@media (max-width: 560px) {
	.woocommerce-checkout form.checkout {
		border: 0;
		padding: 0;
	}
}
.woocommerce form.woocommerce-form-login p,
.woocommerce form.woocommerce-form-register p,
.woocommerce form.lost_reset_password p,
.woocommerce-edit-account form p {
	margin: 0 0 14px;
}
.woocommerce form .form-row label,
.woocommerce-page form .form-row label {
	display: block;
	margin-bottom: 6px;
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aq-ink-soft);
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select {
	width: 100%;
	padding: 12px 14px;
	font: inherit;
	font-size: 14px;
	color: var(--aq-ink);
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	border-radius: 0;
	transition: border-color 180ms ease;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-page form .form-row input.input-text:focus,
.woocommerce-page form .form-row textarea:focus,
.woocommerce-page form .form-row select:focus {
	outline: none;
	border-color: var(--aq-ink);
}
.woocommerce form .form-row .required { color: var(--aq-accent-ink); text-decoration: none; }
.woocommerce-form__label-for-checkbox { display: inline-flex !important; gap: 8px; font-size: 13px; color: var(--aq-ink); }
.woocommerce-form__label-for-checkbox input { accent-color: var(--aq-ink); }

.woocommerce-LostPassword { margin: 6px 0 0; font-size: 12px; }
.woocommerce-LostPassword a { color: var(--aq-ink-soft); }
.woocommerce-LostPassword a:hover { color: var(--aq-hover); }

/* WC buttons inside account/cart/checkout */
.woocommerce .button,
.woocommerce input[type="submit"].button,
.woocommerce-page .button,
.woocommerce a.button,
.woocommerce button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: var(--aq-btn-h-compact);
	padding: 0 26px;
	background: var(--aq-ink);
	color: var(--aq-bg);
	border: 1px solid var(--aq-ink);
	border-radius: var(--aq-btn-radius);
	font: inherit;
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 200ms ease, color 200ms ease, border-color 200ms ease, transform 160ms var(--aq-ease-out);
	box-shadow: none;
	text-shadow: none;
}
.woocommerce .button:hover,
.woocommerce input[type="submit"].button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
	background: var(--aq-hover);
	border-color: var(--aq-hover);
	color: var(--aq-bg);
}
.woocommerce .button:active,
.woocommerce input[type="submit"].button:active,
.woocommerce a.button:active,
.woocommerce button.button:active { transform: scale(0.98); }
/* `.alt` IS WooCommerce's primary (add-to-cart, place-order) — it belongs to
   the canonical accent set, not to the ink secondary above (DIM-453). Kept
   here rather than merged upward because these selectors must outrank the
   plain `.woocommerce button.button` block that precedes them. */
.woocommerce .button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background: var(--aq-accent-cta);
	color: var(--aq-surface);
	border-color: var(--aq-accent-cta);
	min-height: var(--aq-btn-h);
	border-radius: var(--aq-btn-radius);
}

/* Account header injected via woocommerce_account_navigation hook */
.woocommerce-account .aq-account-header {
	max-width: var(--aq-max);
	margin: 0 auto clamp(20px, 2vw, 28px);
	padding: clamp(32px, 4vw, 56px) var(--aq-pad) 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.woocommerce-account .aq-account-header h1 { margin: 0; }

/* Account dashboard navigation */
.woocommerce-account .woocommerce-MyAccount-navigation {
	float: none;
	width: auto;
	margin: 0 0 clamp(28px, 3vw, 40px);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	border-top: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
}
.woocommerce-account .woocommerce-MyAccount-navigation li {
	flex: 1 1 auto;
	border-right: 1px solid var(--aq-line);
}
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-right: 0; }
@media (max-width: 720px) {
	.woocommerce-account .woocommerce-MyAccount-navigation li {
		flex-basis: 100%;
		border-right: 0;
		border-bottom: 1px solid var(--aq-line);
	}
	.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
}
.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 16px 18px;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--aq-ink-soft);
	text-decoration: none;
	transition: color 200ms ease, background 200ms ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover { color: var(--aq-ink); background: var(--aq-surface); }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	color: var(--aq-ink);
	background: var(--aq-surface);
}

.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: auto;
}
.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
	margin: 0 0 18px;
	font-size: 14px;
	line-height: 1.7;
	color: var(--aq-ink-soft);
	max-width: 64ch;
}

/* Orders / downloads tables */
.woocommerce-account table.shop_table,
.woocommerce-account .woocommerce-orders-table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--aq-line);
	background: var(--aq-bg);
}
.woocommerce-account table.shop_table th,
.woocommerce-account table.shop_table td {
	padding: 14px 16px;
	border-bottom: 1px solid var(--aq-line);
	font-size: 13px;
	text-align: left;
}
.woocommerce-account table.shop_table th {
	font-family: var(--aq-display);
	font-weight: 500;
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--aq-ink-soft);
	background: var(--aq-surface);
}
/* Mobile reflow — the orders/downloads table (Order/Date/Status/Total/Actions
   + button) cannot fit a phone width. WooCommerce dequeues its own responsive
   table CSS here, so stack rows into label/value cards using the data-title
   attributes WC prints on each cell. Mirrors the cart-table reflow. */
@media (max-width: 600px) {
	.woocommerce-account table.shop_table thead { display: none; }
	.woocommerce-account table.shop_table,
	.woocommerce-account table.shop_table tbody,
	.woocommerce-account table.shop_table tr,
	.woocommerce-account table.shop_table td { display: block; width: 100%; }
	.woocommerce-account table.shop_table tr {
		border-bottom: 1px solid var(--aq-line);
		padding: var(--aq-space-8) 0;
	}
	.woocommerce-account table.shop_table td {
		display: flex;
		justify-content: space-between;
		gap: var(--aq-space-16);
		border-bottom: 0;
		padding: var(--aq-space-8) var(--aq-space-16);
		text-align: right;
	}
	.woocommerce-account table.shop_table td::before {
		content: attr(data-title);
		font-family: var(--aq-display);
		font-size: 11px;
		font-weight: 500;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		color: var(--aq-muted);
		text-align: left;
	}
	.woocommerce-account table.shop_table td.woocommerce-orders-table__cell-order-actions { justify-content: flex-end; }
}

/* Notices — styled once at the top of this file (.woocommerce-message /
   -info / -error, incl. the red error box + "!" badge). A duplicate block
   used to live here and silently override that treatment; removed so the
   intended error styling actually renders. */

.aq-pro__error {
	margin: 0 0 12px;
	padding: 10px 14px;
	border: 1px solid var(--aq-accent-2);
	background: #fff5f5;
	font-size: 13px;
	color: var(--aq-accent-ink);
}

.aq-price--wholesale em {
	display: inline-block;
	margin-right: 6px;
	padding: 2px 6px;
	font-family: var(--aq-display);
	font-style: normal;
	font-size: 10px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-bg);
	background: var(--aq-accent-cta);
}

/* ── Wholesale catalog ──────────────────────────────────────────── */
.aq-wcat {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 96px) var(--aq-pad) clamp(72px, 9vw, 120px);
	display: grid;
	gap: clamp(40px, 5vw, 72px);
}
.aq-wcat__intro { display: flex; flex-direction: column; gap: 12px; max-width: 32ch; }
/* Pro section spacing (was an inline style="margin-top:48px"). */
.aq-wcat__intro--pro { margin-top: var(--aq-space-48); }
.aq-wcat__intro h1 { margin: 0; }
.aq-wcat__lede { margin: 0; font-size: clamp(15px, 1.2vw, 17px); line-height: 1.6; color: var(--aq-ink-soft); max-width: 64ch; }
.aq-wcat__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	/* 1px lined-background gap = column-count-agnostic dividers. */
	gap: 1px;
	background: var(--aq-line);
	border-top: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
}
.aq-wcat__item { background: var(--aq-bg); }
.aq-wcat__item a {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: clamp(20px, 2.2vw, 28px) clamp(16px, 1.8vw, 24px);
	text-decoration: none;
	color: inherit;
	transition: background 220ms ease;
}
@media (hover: hover) {
	.aq-wcat__item a:hover { background: var(--aq-surface); }
}
.aq-wcat__item img { width: 100%; height: auto; aspect-ratio: 1/1; object-fit: cover; background: var(--aq-surface); }
.aq-wcat__meta { display: flex; flex-direction: column; gap: 4px; }
.aq-wcat__meta strong { font-family: var(--aq-display); font-size: 16px; font-weight: 500; color: var(--aq-ink); }
.aq-wcat__price { display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: var(--aq-ink-soft); }
.aq-wcat__price em {
	display: inline-block;
	font-style: normal;
	margin-right: 6px;
	padding: 2px 6px;
	font-family: var(--aq-display);
	font-size: 10px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--aq-bg);
	background: var(--aq-accent-cta);
}
.aq-wcat__price small { color: var(--aq-muted); font-size: 11px; }

.aq-wdash {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 96px) var(--aq-pad) clamp(72px, 9vw, 120px);
	display: grid;
	gap: clamp(40px, 5vw, 72px);
}
.aq-wdash__intro { display: flex; flex-direction: column; gap: 10px; max-width: 32ch; }
.aq-wdash__intro h1 { margin: 0; }
.aq-wdash__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	/* 1px lined-background gap = column-count-agnostic dividers. */
	gap: 1px;
	background: var(--aq-line);
	border-top: 1px solid var(--aq-line);
	border-bottom: 1px solid var(--aq-line);
}
.aq-wdash__card {
	display: grid;
	grid-template-rows: auto auto 1fr;
	gap: 8px;
	padding: clamp(24px, 3vw, 36px) clamp(20px, 2.2vw, 28px);
	background: var(--aq-bg);
	color: inherit;
	text-decoration: none;
	transition: background 220ms ease;
}
@media (hover: hover) {
	.aq-wdash__card:hover { background: var(--aq-surface); }
}
.aq-wdash__card strong { font-family: var(--aq-display); font-size: clamp(18px, 1.6vw, 22px); font-weight: 500; color: var(--aq-ink); letter-spacing: -0.005em; }
.aq-wdash__arrow {
	align-self: end;
	font-family: var(--aq-display);
	font-size: 20px;
	color: var(--aq-ink-soft);
	transition: transform 200ms var(--aq-ease-out), color 200ms ease;
}
.aq-wdash__card:hover .aq-wdash__arrow { transform: translateX(4px); color: var(--aq-ink); }

/* Task 12: edit-account birthday + avatar URL fields */
.aq-form-hint { color: var(--aq-muted); font-size: 11px; text-transform: none; letter-spacing: 0; margin-left: 6px; }
.woocommerce form .form-row input[type="date"],
.woocommerce form .form-row input[type="url"] {
	width: 100%;
	padding: 12px 14px;
	font: inherit;
	font-size: 14px;
	color: var(--aq-ink);
	background: var(--aq-bg);
	border: 1px solid var(--aq-line);
	border-radius: 0;
}

/* Pro-only gating */
.aq-pro-gate {
	margin: 16px 0;
	padding: 16px 18px;
	border: 1px solid var(--aq-line);
	background: #faf9f7;
}
.aq-pro-gate__note {
	margin: 0 0 12px;
	font-size: 14px;
	color: var(--aq-ink);
}
.aq-pro-badge {
	display: inline-block;
	padding: 6px 10px;
	font-size: 10px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	background: var(--aq-accent-cta);
	color: #fff;
}

/* Pro-only request-quote form (B2B) */
.aq-quote-form {
	margin: 16px 0 8px;
	padding: 20px;
	border: 1px solid var(--aq-line);
	background: #faf9f7;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.aq-quote-form__row {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.aq-quote-form__row label {
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--aq-muted);
}
.aq-quote-form__row input,
.aq-quote-form__row textarea {
	font: inherit;
	padding: 10px 12px;
	border: 1px solid var(--aq-line);
	background: #fff;
	color: var(--aq-ink);
	border-radius: 0;
}
.aq-quote-form__row textarea { resize: vertical; min-height: 72px; }
.aq-quote-form button[type="submit"] {
	align-self: flex-start;
	min-height: 48px;
	padding: 12px 22px;
}
.aq-quote-form__status {
	margin: 0;
	font-size: 13px;
	padding: 8px 10px;
	border-left: 2px solid var(--aq-line);
}
.aq-quote-form__status.is-success { border-color: #2f7d32; color: #1f5d24; background: #f0f9f1; }
.aq-quote-form__status.is-error   { border-color: #b03a2e; color: #842216; background: #fcf3f1; }
.aq-quote-form__from { font-size: 12px; color: var(--aq-muted); margin: 0; }

/* Wholesale catalog: Pro-only items */
.aq-wcat__item--pro a { position: relative; }
.aq-wcat__badge {
	display: inline-block;
	padding: 4px 8px;
	font-size: 9px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	background: var(--aq-accent-cta);
	color: #fff;
	margin-bottom: 6px;
	align-self: flex-start;
}

/* Mobile fixes for shop toolbar overflow (≤640px) */
@media (max-width: 640px) {
	.aq-shop-toolbar {
		flex-wrap: wrap;
		row-gap: 12px;
	}
	.aq-shop-toolbar .woocommerce-result-count,
	.aq-shop-toolbar .woocommerce-ordering {
		flex: 1 1 auto;
		max-width: 100%;
	}
	.aq-shop-toolbar .woocommerce-ordering select.orderby {
		max-width: 100%;
		min-width: 0;
		width: auto;
	}
	.aq-service-bar__cta {
		font-size: 10px;
		padding: 6px 8px;
	}
}

/* --- Styleguide (internal UI-kit page only) ------------------ */
/* Layout-only scaffolding for /styleguide/. Components on the page use the
   real production classes; these rules just arrange the reference grids. */
.aq-styleguide {
	max-width: var(--aq-max);
	margin: 0 auto;
	padding: var(--aq-section-y-sm) var(--aq-pad);
	color: var(--aq-ink);
}
.aqsg-head { padding-bottom: var(--aq-space-32); border-bottom: 1px solid var(--aq-line); margin-bottom: var(--aq-space-48); }
.aqsg-lede { max-width: 70ch; color: var(--aq-ink-soft); line-height: var(--aq-leading-body); margin: var(--aq-space-16) 0 var(--aq-space-24); }
.aqsg-toc { display: flex; flex-wrap: wrap; gap: var(--aq-space-12) var(--aq-space-20); }
.aqsg-toc a { font-size: 12px; font-weight: 500; letter-spacing: var(--aq-tracking-label); text-transform: uppercase; color: var(--aq-muted); text-decoration: none; }
.aqsg-toc a:hover { color: var(--aq-ink); }

.aqsg-block { padding: var(--aq-space-48) 0; border-bottom: 1px solid var(--aq-line-soft); scroll-margin-top: calc(var(--aq-header-h) + var(--aq-space-16)); }
.aqsg-block > .aq-h2 { margin-bottom: var(--aq-space-24); }
.aqsg-block > .aq-h3 { margin: var(--aq-space-28) 0 var(--aq-space-12); color: var(--aq-ink-soft); }
.aqsg-note { font-size: 13px; color: var(--aq-muted); line-height: var(--aq-leading-body); margin-bottom: var(--aq-space-20); }
.aqsg-note code, .aqsg-toc code, .aqsg-swatch code { font-size: 12px; }

.aqsg-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: var(--aq-space-16); }
.aqsg-swatch { margin: 0; border: 1px solid var(--aq-line); border-radius: var(--aq-radius-sm); overflow: hidden; background: var(--aq-surface); }
.aqsg-swatch__chip { display: block; height: 72px; border-bottom: 1px solid var(--aq-line); }
.aqsg-swatch figcaption { display: flex; flex-direction: column; gap: 2px; padding: var(--aq-space-10) var(--aq-space-12); }
.aqsg-swatch__val { font-size: 11px; color: var(--aq-muted); font-variant-numeric: tabular-nums; }

.aqsg-type-rows { display: flex; flex-direction: column; gap: var(--aq-space-20); }
.aqsg-type-row { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: var(--aq-space-20); align-items: baseline; }
.aqsg-type-row p { margin: 0; }
.aqsg-type-tag { font-size: 11px; color: var(--aq-muted); font-family: var(--aq-sans); letter-spacing: 0.04em; }
.aqsg-typescale { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--aq-space-16); }
.aqsg-typescale__item { line-height: 1; color: var(--aq-ink); }

.aqsg-spaces { display: flex; flex-direction: column; gap: var(--aq-space-8); }
.aqsg-space-row { display: grid; grid-template-columns: 48px 1fr; gap: var(--aq-space-12); align-items: center; }
.aqsg-space-row code { font-size: 12px; color: var(--aq-muted); text-align: right; }
.aqsg-space-bar { height: 14px; background: var(--aq-accent-soft); border-radius: var(--aq-radius-sm); }

.aqsg-cards { display: flex; flex-wrap: wrap; gap: var(--aq-space-20); margin-bottom: var(--aq-space-20); }
.aqsg-demo-card { background: var(--aq-surface); border: 1px solid var(--aq-line); padding: var(--aq-space-20) var(--aq-space-24); min-width: 160px; }
.aqsg-demo-card code { font-size: 12px; color: var(--aq-muted); }

.aqsg-row { display: flex; flex-wrap: wrap; gap: var(--aq-space-16); align-items: center; }
.aqsg-row--badges { gap: var(--aq-space-12); }

.aqsg-formgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--aq-space-16); max-width: 640px; }
.aqsg-formgrid .form-row { margin: 0; }

.aqsg-pill { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: var(--aq-radius-pill); font-size: 11px; font-weight: 500; letter-spacing: var(--aq-tracking-label); text-transform: uppercase; }
.aqsg-pill--success { color: var(--aq-success); background: var(--aq-success-soft); border: 1px solid color-mix(in srgb, var(--aq-success) 30%, transparent); }
.aqsg-pill--warning { color: var(--aq-warning-ink); background: var(--aq-warning-soft); border: 1px solid var(--aq-warning-line); }

.aqsg-rhythm__band { background: var(--aq-surface-2); border: 1px dashed var(--aq-line); margin-bottom: var(--aq-space-8); text-align: center; }
.aqsg-rhythm__band code { font-size: 12px; color: var(--aq-muted); }

.aqsg-bp { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--aq-space-12); }
.aqsg-bp li { padding: var(--aq-space-8) var(--aq-space-16); border: 1px solid var(--aq-line); border-radius: var(--aq-radius-pill); color: var(--aq-muted); transition: color var(--aq-hover-duration) var(--aq-ease), border-color var(--aq-hover-duration) var(--aq-ease); }
.aqsg-bp li.is-active { color: var(--aq-ink); border-color: var(--aq-ink); }

@media (max-width: 720px) {
	.aqsg-type-row { grid-template-columns: 1fr; gap: var(--aq-space-4); }
	.aqsg-type-tag { order: 2; }
}

/* --- AJAX add-to-cart: button feedback + toast ------------------ */
.aq-card__quick-cart.is-loading { pointer-events: none; opacity: 0.7; }
.aq-card__quick-cart.is-loading svg { animation: aq-cart-spin 700ms linear infinite; }
.aq-card__quick-cart.is-added { background: var(--aq-success); border-color: var(--aq-success); color: #fff; }
@keyframes aq-cart-spin { to { transform: rotate(360deg); } }

.aq-cart-toast {
	position: fixed;
	left: 50%;
	bottom: calc(var(--aq-space-24) + env(safe-area-inset-bottom, 0px));
	transform: translate(-50%, 16px);
	z-index: 9000;
	max-width: min(92vw, 420px);
	padding: var(--aq-space-12) var(--aq-space-20);
	background: var(--aq-ink);
	color: var(--aq-bg);
	border-radius: var(--aq-radius-pill);
	box-shadow: var(--aq-shadow-pop);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.01em;
	text-align: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity 240ms var(--aq-ease-out), transform 240ms var(--aq-ease-out);
}
.aq-cart-toast.is-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}
@media (prefers-reduced-motion: reduce) {
	.aq-card__quick-cart.is-loading svg { animation: none; }
	.aq-cart-toast { transition: opacity 240ms var(--aq-ease-out); transform: translate(-50%, 0); }
}

/* --- Luminous Clinical Atelier v4: template normalization ---- */

.aq-main h1,
.aq-main h2,
.aq-main h3,
.aq-main h4 {
	font-family: var(--aq-display);
}

.aq-page-hero {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	grid-template-areas:
		"eyebrow ."
		"title title";
	gap: 18px clamp(36px, 6vw, 96px);
	padding-top: var(--aq-section-y-sm);
	padding-bottom: var(--aq-section-y-sm);
	border-bottom: 1px solid var(--aq-line);
	min-width: 0;
}
.aq-page-hero > .aq-eyebrow { grid-area: eyebrow; }
.aq-page-hero h1 {
	grid-area: title;
	max-width: 15ch;
	margin: 0;
	font-size: clamp(44px, 5.4vw, 84px);
	font-weight: 550;
	line-height: 0.98;
	letter-spacing: -0.04em;
	text-wrap: balance;
}
.aq-page > .aq-content {
	padding-top: var(--aq-section-y-sm);
	padding-bottom: var(--aq-section-y);
}
.aq-content > p,
.aq-content > ul,
.aq-content > ol,
.aq-content > h2,
.aq-content > h3,
.aq-content > h4 {
	max-width: 65ch;
}
.aq-content p,
.aq-content li { line-height: 1.7; }
.aq-content h2 { font-size: clamp(28px, 3vw, 44px); line-height: 1.06; letter-spacing: -0.03em; }
.aq-content h3 { font-size: clamp(21px, 2vw, 28px); line-height: 1.15; letter-spacing: -0.02em; }

.aq-pro__intro,
.aq-quiz__intro,
.aq-wishlist__intro,
.aq-about__intro,
.aq-404__intro,
.aq-wcat__intro,
.aq-wdash__intro {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	grid-template-areas:
		"eyebrow lede"
		"title lede";
	align-items: end;
	gap: 16px clamp(36px, 6vw, 96px);
	max-width: none;
	min-width: 0;
	width: 100%;
}
.aq-pro__intro > .aq-eyebrow,
.aq-quiz__intro > .aq-eyebrow,
.aq-wishlist__intro > .aq-eyebrow,
.aq-about__intro > .aq-eyebrow,
.aq-404__intro > .aq-eyebrow,
.aq-wcat__intro > .aq-eyebrow,
.aq-wdash__intro > .aq-eyebrow { grid-area: eyebrow; }
.aq-pro__intro > h1,
.aq-quiz__intro > h1,
.aq-wishlist__intro > h1,
.aq-about__intro > h1,
.aq-404__intro > h1,
.aq-wcat__intro > h1,
.aq-wdash__intro > h1 {
	grid-area: title;
	max-width: 15ch;
	text-wrap: balance;
}
.aq-pro__intro > .aq-pro__lede,
.aq-quiz__intro > .aq-quiz__lede,
.aq-wishlist__intro > .aq-wishlist__lede,
.aq-about__intro > .aq-about__lede,
.aq-404__intro > .aq-404__lede,
.aq-wcat__intro > .aq-wcat__lede {
	grid-area: lede;
	align-self: end;
	max-width: 60ch;
	font-size: clamp(16px, 1.2vw, 18px);
	line-height: 1.65;
}

.aq-search-page__intro {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	grid-template-areas:
		"eyebrow form"
		"title form";
	align-items: end;
	gap: 16px clamp(36px, 6vw, 96px);
	max-width: none;
	min-width: 0;
	width: 100%;
}
.aq-search-page__intro > .aq-eyebrow { grid-area: eyebrow; }
.aq-search-page__intro > h1 { grid-area: title; max-width: 15ch; }
.aq-search-page__intro > .aq-search-page__form { grid-area: form; width: 100%; }

.aq-shop-hero__copy,
.woocommerce-account .aq-account-header { max-width: none; }
.aq-shop-hero__copy .aq-display-xl,
.woocommerce-account .aq-account-header h1 { max-width: 15ch; text-wrap: balance; }

/* Touch-target floor for the secondary tier. `.aq-button` and `.aq-btn--primary`
   are deliberately NOT here — they take the taller --aq-btn-h from the canonical
   block, and listing them here would silently cap them at the compact height.
   `.aq-btn` is excluded for the same reason: the markup always pairs it with
   `.aq-btn--primary` (functions.php:1253, page-styleguide.php:138), so keeping
   it here would cap every primary through the base class. */
.woocommerce .button,
.woocommerce input[type="submit"].button,
.woocommerce-page .button,
.woocommerce a.button,
.woocommerce button.button,
.aq-404__search-cta,
.aq-search-page__form button {
	min-height: var(--aq-btn-h-compact);
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		color 180ms ease,
		transform 140ms var(--aq-ease);
}
.aq-button:active,
.aq-btn:active,
.aq-404__search-cta:active,
.aq-search-page__form button:active { transform: scale(0.97); }

.aq-shop-toolbar select,
.woocommerce form select,
.woocommerce-page form select,
.aq-pro__row input,
.aq-pro__row select,
.aq-beratung__row input,
.aq-beratung__row select {
	min-height: 46px;
}
.aq-shop-toolbar select { padding-top: 12px; padding-bottom: 12px; }

.aq-card__body { transition: border-color 200ms var(--aq-ease), background-color 200ms ease; }
.aq-wishlist__card { transition: border-color 200ms var(--aq-ease), transform 200ms var(--aq-ease); }
.aq-wishlist__card-thumb img { transition: transform 240ms var(--aq-ease); }
.aq-footer__grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.9fr) minmax(0, 0.75fr); }
.aq-footer__social { gap: 10px; }
.aq-footer__social a {
	width: 44px;
	height: 44px;
	transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, transform 140ms var(--aq-ease);
}
.aq-search-page__pagination .page-numbers,
.woocommerce-pagination a,
.woocommerce-pagination span { min-width: 44px; min-height: 44px; }

.aq-shop-hero__links a,
.aq-category-strip a,
.aq-footer__links a,
.aq-footer__col > p a,
.woocommerce-cart .shipping-calculator-button,
.woocommerce-account .woocommerce-LostPassword a,
.woocommerce-checkout .showcoupon {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}
.aq-shop-hero__links a,
.aq-category-strip a { min-width: 44px; justify-content: center; }
.aq-footer__links a { width: 100%; }
.woocommerce-cart a.remove,
.woocommerce-cart input.qty { min-width: 44px; min-height: 44px; }
.woocommerce-form__label-for-checkbox,
.woocommerce-checkout #payment label { min-height: 44px; align-items: center; }
.woocommerce-checkout .woocommerce-gzd-legal-checkbox-text a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}
.wpml-ls-link {
	display: inline-flex;
	align-items: center;
	min-width: 44px;
	min-height: 44px;
}

@media (hover: hover) and (pointer: fine) {
	.aq-button:hover i,
	.aq-ghost-link:hover i,
	.aq-footer__newsletter-submit:hover svg { transform: translateX(3px); }
}

@media (max-width: 900px) {
	.aq-footer__grid { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
	.aq-page-hero,
	.aq-pro__intro,
	.aq-quiz__intro,
	.aq-wishlist__intro,
	.aq-about__intro,
	.aq-404__intro,
	.aq-wcat__intro,
	.aq-wdash__intro,
	.aq-search-page__intro {
		grid-template-columns: 1fr;
		grid-template-areas:
			"eyebrow"
			"title"
			"lede";
		gap: 14px;
	}
	.aq-search-page__intro { grid-template-areas: "eyebrow" "title" "form"; }
	.aq-page-hero { grid-template-areas: "eyebrow" "title"; }
	.aq-pro__intro > h1,
	.aq-quiz__intro > h1,
	.aq-wishlist__intro > h1,
	.aq-about__intro > h1,
	.aq-404__intro > h1,
	.aq-wcat__intro > h1,
	.aq-wdash__intro > h1,
	.aq-search-page__intro > h1,
	.aq-page-hero h1 {
		max-width: 13ch;
		min-width: 0;
		font-size: clamp(40px, 10.2vw, 44px);
		hyphens: auto;
		overflow-wrap: break-word;
	}
}

@media (max-width: 560px) {
	.aq-page-hero,
	.aq-page > .aq-content,
	.aq-pro,
	.aq-quiz,
	.aq-wishlist,
	.aq-about,
	.aq-404,
	.aq-search-page,
	.aq-wcat,
	.aq-wdash { padding-left: 20px; padding-right: 20px; }
	.aq-search-page__form input { min-height: 48px; font-size: 16px; }
	.aq-footer { padding-left: 20px; padding-right: 20px; }
	.aq-brand { min-height: 44px; justify-content: center; }
	.aq-service-bar__cta { min-height: 44px; display: inline-flex; align-items: center; }
	.aq-card__icon-btn { width: 44px; height: 44px; opacity: 1; transform: none; }
	.aq-card__title a { display: inline-flex; align-items: center; min-height: 44px; }
	.aq-card__more,
	.aq-ghost-link,
	.aq-gfit__link { min-height: 44px; align-items: center; }
	.aq-menu-toggle {
		box-sizing: border-box;
		width: 44px;
		height: 44px;
		min-width: 44px;
		min-height: 44px;
		padding: 14px 11px;
		margin: -10px -4px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.aq-card,
	.aq-card__media-link img,
	.aq-wishlist__card,
	.aq-wishlist__card-thumb img,
	.aq-search-page__item a { transform: none !important; }
}

/* ============================================================
   Luminous Clinical Atelier v4
   Light art-directed system for storefront, content and commerce.
   ============================================================ */

body,
.aq-main { background: var(--aq-bg); }

::selection {
	background: var(--aq-accent-soft);
	color: var(--aq-ink);
}

:focus-visible {
	outline-color: var(--aq-accent);
}

.aq-eyebrow { color: var(--aq-accent-ink); }
.aq-eyebrow::before { background: currentColor; width: 30px; }

.aq-header__rail { max-width: 1500px; }
.aq-brand__name { letter-spacing: -0.035em; }
.aq-nav__list a { letter-spacing: 0.13em; }
.aq-header.is-scrolled {
	background: rgba(255, 255, 255, 0.96);
	border-bottom-color: var(--aq-line);
}
.aq-service-bar { min-height: 36px; }

/* Primary CTA hover — the single gated hover for the canonical set above
   (DIM-455: ungated :hover sticks after a tap on touch). The base colours
   themselves now live with the canonical block near .aq-button. */
@media (hover: hover) and (pointer: fine) {
	.aq-button:hover,
	.aq-btn--primary:hover,
	.aq-pro__submit:hover,
	.aq-wishlist__shop:hover,
	.aq-wishlist__card-cta:hover,
	.aq-quiz__card-cta:hover,
	.aq-beratung__submit:hover,
	.aq-consent__btn--primary:hover,
	.aq-quote-form button[type="submit"]:hover,
	.aq-checkout-page #place_order:hover,
	.aq-cart-page .wc-proceed-to-checkout .checkout-button:hover,
	.woocommerce button.button.alt:hover,
	.woocommerce input.button.alt:hover,
	.single_add_to_cart_button:hover {
		background: var(--aq-ink);
		border-color: var(--aq-ink);
		color: var(--aq-surface);
	}
}

/* Shared editorial intros */
.aq-page-hero,
.aq-pro__intro,
.aq-quiz__intro,
.aq-wishlist__intro,
.aq-about__intro,
.aq-404__intro,
.aq-wcat__intro,
.aq-wdash__intro,
.aq-search-page__intro,
.aq-shop-hero {
	position: relative;
	background: var(--aq-surface);
}

.aq-page-hero,
.aq-pro__intro,
.aq-quiz__intro,
.aq-wishlist__intro,
.aq-about__intro,
.aq-404__intro,
.aq-wcat__intro,
.aq-wdash__intro,
.aq-search-page__intro {
	border-bottom: 1px solid var(--aq-line);
}

.aq-page-hero::after,
.aq-pro__intro::after,
.aq-quiz__intro::after,
.aq-wishlist__intro::after,
.aq-about__intro::after,
.aq-404__intro::after,
.aq-wcat__intro::after,
.aq-wdash__intro::after,
.aq-search-page__intro::after {
	content: "";
	position: absolute;
	right: 0;
	top: 0;
	width: clamp(72px, 10vw, 156px);
	height: 8px;
	background: var(--aq-accent-soft);
}

.aq-page-hero h1,
.aq-pro__intro > h1,
.aq-quiz__intro > h1,
.aq-wishlist__intro > h1,
.aq-about__intro > h1,
.aq-404__intro > h1,
.aq-wcat__intro > h1,
.aq-wdash__intro > h1,
.aq-search-page__intro > h1,
.aq-shop-hero__copy .aq-display-xl,
.woocommerce-account .aq-account-header h1,
.aq-cart-page__header h1,
.aq-checkout-page__header h1 {
	font-weight: 560;
	letter-spacing: -0.048em;
}

/* Home surface rhythm: every section remains light. */
.home .aq-main { background: var(--aq-bg); }
.aq-featured,
.aq-section-about,
.aq-section-results,
.aq-section-gfit,
.aq-section-trust,
.aq-section-awards,
.aq-section-faq {
	position: relative;
	isolation: isolate;
}

.aq-featured::before,
.aq-section-about::before,
.aq-section-results::before,
.aq-section-gfit::before,
.aq-section-awards::before,
.aq-section-faq::before {
	position: absolute;
	top: clamp(18px, 3vw, 42px);
	right: var(--aq-pad);
	z-index: -1;
	font-family: var(--aq-display);
	font-size: clamp(72px, 10vw, 156px);
	font-weight: 520;
	line-height: 0.8;
	letter-spacing: -0.07em;
	color: color-mix(in srgb, var(--aq-ink) 5%, transparent);
	pointer-events: none;
}
.aq-featured::before { content: "01"; }
.aq-section-about::before { content: "02"; }
.aq-section-results::before { content: "03"; }
.aq-section-gfit::before { content: "04"; }
.aq-section-awards::before { content: "05"; }
.aq-section-faq::before { content: "06"; }

.aq-featured { padding-top: clamp(84px, 10vw, 150px); }
.aq-featured .aq-section__header { padding-right: clamp(60px, 9vw, 140px); }
.aq-featured .aq-product-grid,
.aq-featured ul.products.aq-product-grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(36px, 5vw, 72px) clamp(18px, 2.4vw, 36px);
}
.aq-featured .aq-card:nth-child(6n + 1),
.aq-featured .aq-card:nth-child(6n + 4),
.aq-featured .aq-card:nth-child(6n + 5) { grid-column: span 7; }
.aq-featured .aq-card:nth-child(6n + 2),
.aq-featured .aq-card:nth-child(6n + 3),
.aq-featured .aq-card:nth-child(6n + 6) { grid-column: span 5; }
.aq-featured .aq-card__media { aspect-ratio: 16 / 11; }
.aq-featured .aq-card__media-link img { padding: 7% 12%; }

.aq-section-about {
	max-width: none;
	background: var(--aq-surface-clay);
	border-top-color: var(--aq-line);
}
.aq-section-about__inner {
	max-width: var(--aq-max);
	margin: 0 auto;
}
.aq-section-about__media {
	clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%, 0 10%);
	background: var(--aq-surface);
}
.aq-section-about__nobel {
	border-color: color-mix(in srgb, var(--aq-accent) 28%, var(--aq-line));
}
.aq-section-about__nobel-year { color: var(--aq-accent); }

.aq-section-results { background: var(--aq-bg); }
.aq-result {
	background: var(--aq-surface);
	border-color: var(--aq-line);
	border-radius: 2px;
}
.aq-result__body { padding: clamp(22px, 2.5vw, 34px); }

.aq-section-gfit {
	max-width: none;
	padding-left: max(var(--aq-pad), calc((100vw - var(--aq-max)) / 2 + var(--aq-pad)));
	padding-right: max(var(--aq-pad), calc((100vw - var(--aq-max)) / 2 + var(--aq-pad)));
	background: var(--aq-surface);
}
.aq-gfit__tile {
	background: var(--aq-bg);
	border-color: var(--aq-line);
	border-radius: 2px;
}
.aq-gfit__tile:nth-child(4n + 2),
.aq-gfit__tile:nth-child(4n + 3) { background: var(--aq-surface-2); }
.aq-gfit__num { color: var(--aq-accent-ink); }
.aq-gfit__icon { color: var(--aq-accent); }

.aq-section-trust { background: var(--aq-bg); }
.aq-trust__tile { padding-top: 30px; padding-bottom: 30px; }
.aq-trust__icon { color: var(--aq-accent); }

.aq-section-awards {
	max-width: none;
	padding-left: max(var(--aq-pad), calc((100vw - var(--aq-max)) / 2 + var(--aq-pad)));
	padding-right: max(var(--aq-pad), calc((100vw - var(--aq-max)) / 2 + var(--aq-pad)));
	background: var(--aq-surface-2);
}
.aq-awards-grid { background: rgba(255, 255, 255, 0.38); }
.aq-awards__tile { background: transparent; }

.aq-section-faq {
	max-width: none;
	padding-left: max(var(--aq-pad), calc((100vw - var(--aq-max)) / 2 + var(--aq-pad)));
	padding-right: max(var(--aq-pad), calc((100vw - var(--aq-max)) / 2 + var(--aq-pad)));
	background: var(--aq-surface);
}
.aq-faq-item__q { padding-top: 28px; padding-bottom: 28px; }
.aq-faq-item[open] .aq-faq-item__q { color: var(--aq-accent-ink); }

/* Product discovery and conversion */
.aq-shop-hero__visual {
	clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%, 0 14%);
	background: var(--aq-surface-2);
}
.aq-shop-toolbar {
	background: var(--aq-surface);
	border-color: var(--aq-line);
}
.aq-shop-loop .aq-product-grid,
.aq-shop-loop ul.products.aq-product-grid,
.aq-recent .aq-product-grid,
.aq-recent ul.products.aq-product-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(48px, 6vw, 84px) clamp(22px, 3vw, 48px);
}
.aq-shop-loop .aq-card__media,
.aq-recent .aq-card__media { aspect-ratio: 5 / 4; }
.aq-shop-loop .aq-card__media-link img,
.aq-recent .aq-card__media-link img { padding: 7% 14%; }

.aq-card { transform-origin: center bottom; }
.aq-card__media {
	background: var(--aq-surface-2);
	border-color: var(--aq-line);
	border-radius: 2px 2px 0 0;
}
.aq-card__body {
	background: var(--aq-surface);
	border-color: var(--aq-line);
	border-radius: 0 0 2px 2px;
	padding: clamp(20px, 2.2vw, 30px);
}
.aq-card__icon-btn {
	opacity: 1;
	transform: none;
	background: rgba(255, 255, 255, 0.92);
	border-color: color-mix(in srgb, var(--aq-ink) 16%, transparent);
}
.aq-card__icon-btn--solid {
	background: var(--aq-accent-cta);
	border-color: var(--aq-accent-cta);
	color: var(--aq-surface);
}
.aq-card__badge--new { color: var(--aq-accent-ink); }
.aq-card__stars,
.aq-card__benefits li::before { color: var(--aq-accent); }
.aq-card__title { font-weight: 560; }
.aq-card__price { color: var(--aq-accent-ink); font-weight: 600; }

@media (hover: hover) and (pointer: fine) {
	.aq-card:hover { transform: translateY(-4px); }
	.aq-card:hover .aq-card__media,
	.aq-card:hover .aq-card__body { border-color: color-mix(in srgb, var(--aq-accent) 52%, var(--aq-line)); }
	.aq-card:hover .aq-card__body { background: var(--aq-surface); }
	.aq-card__icon-btn--solid:hover { background: var(--aq-ink); border-color: var(--aq-ink); }
}

/* Cart, checkout, account and form surfaces */
.aq-cart-page,
.aq-checkout-page,
.aq-thankyou-page,
.woocommerce-account .woocommerce,
.aq-pro,
.aq-quiz,
.aq-wishlist,
.aq-about,
.aq-404,
.aq-search-page,
.aq-wcat,
.aq-wdash {
	background: var(--aq-bg);
}

.aq-cart-page__header,
.aq-checkout-page__header,
.aq-account-header {
	position: relative;
	background: var(--aq-surface);
	border-bottom: 1px solid var(--aq-line);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.aq-pro__row input,
.aq-pro__row select,
.aq-pro__row textarea,
.aq-beratung__row input,
.aq-beratung__row select,
.aq-search-page__form input {
	background: var(--aq-surface);
	border-color: var(--aq-line);
	border-radius: 2px;
	min-height: 50px;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.aq-pro__row input:focus,
.aq-pro__row select:focus,
.aq-pro__row textarea:focus,
.aq-beratung__row input:focus,
.aq-beratung__row select:focus,
.aq-search-page__form input:focus {
	border-color: var(--aq-accent);
	box-shadow: 0 0 0 3px var(--aq-accent-soft);
}

.aq-cart-page .cart_totals,
.aq-checkout-page #order_review,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account form.login,
.woocommerce-account form.register,
.aq-pro__apply,
.aq-quiz__stage,
.aq-wishlist__empty,
.aq-404__suggest,
.aq-search-page__empty {
	background: var(--aq-surface);
	border-color: var(--aq-line);
	border-radius: 2px;
	box-shadow: 0 28px 70px -54px rgba(28, 29, 25, 0.32);
}

.aq-about__quote,
.aq-about__cta,
.aq-pro__catalog,
.aq-wdash__card,
.aq-wcat__item { background: var(--aq-surface); border-color: var(--aq-line); }
.aq-about__story-aside,
.aq-about__numbers,
.aq-about__trust,
.aq-pro__perks { background: var(--aq-surface-2); }
.aq-about__story-year,
.aq-about__num strong,
.aq-wdash__arrow { color: var(--aq-accent); }
.aq-pro__perk-num,
.aq-quiz__option-num { color: var(--aq-accent-ink); }

/* Light footer with a clear commerce close. */
.aq-footer {
	max-width: none;
	background: var(--aq-surface-clay);
	border-top-color: var(--aq-line);
}
.aq-footer__grid,
.aq-footer__bottom {
	max-width: var(--aq-max);
	margin-left: auto;
	margin-right: auto;
}
.aq-footer__updates-link { border-color: var(--aq-accent); }
.aq-footer__newsletter-submit {
	background: var(--aq-accent-cta);
	color: var(--aq-surface);
}
.aq-footer__social a { background: rgba(255, 255, 255, 0.48); }

@media (max-width: 1024px) {
	.aq-featured .aq-card:nth-child(n),
	.aq-featured .aq-card:nth-child(6n + 1),
	.aq-featured .aq-card:nth-child(6n + 2),
	.aq-featured .aq-card:nth-child(6n + 3),
	.aq-featured .aq-card:nth-child(6n + 4),
	.aq-featured .aq-card:nth-child(6n + 5),
	.aq-featured .aq-card:nth-child(6n + 6) { grid-column: span 6; }
}

@media (max-width: 767px) {
	.aq-featured .aq-section__header { padding-right: 0; }
	.aq-featured .aq-product-grid,
	.aq-featured ul.products.aq-product-grid,
	.aq-shop-loop .aq-product-grid,
	.aq-shop-loop ul.products.aq-product-grid,
	.aq-recent .aq-product-grid,
	.aq-recent ul.products.aq-product-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.aq-featured .aq-card:nth-child(n) { grid-column: auto; }
	.aq-featured .aq-card__media,
	.aq-shop-loop .aq-card__media,
	.aq-recent .aq-card__media { aspect-ratio: 1 / 1; }
	.aq-section-about__media,
	.aq-shop-hero__visual { clip-path: none; }
	.aq-featured::before,
	.aq-section-about::before,
	.aq-section-results::before,
	.aq-section-gfit::before,
	.aq-section-awards::before,
	.aq-section-faq::before { font-size: 72px; top: 24px; }
}

@media (prefers-reduced-motion: reduce) {
	.aq-hero__video { transform: none !important; }
}
