/* =========================================================================
   Evercore Labs LLC — main.css
   Values transcribed from the Figma spec. Container 1374px, full-bleed bands.
   CSS variables (colors/fonts/sizes) are injected inline from Theme Settings.
   ========================================================================= */

/* ---- Self-hosted licensed font (drop the file in /assets/fonts/) --------- */
@font-face {
	font-family: "Neuropol X";
	src: url("../fonts/NeuropolX-Regular.woff2") format("woff2"),
	     url("../fonts/NeuropolX-Regular.ttf") format("truetype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* ---- Fallback tokens (overridden by inline dynamic CSS) ------------------ */
:root {
	/* Evercore Labs LLC brand tokens — kept in sync with inc/theme-settings.php defaults. */
	--navy: #132A56;
	--white: #fff;
	--black: #000;
	--ink-900: #132A56;
	--ink-700: #3A4A66;
	--ink-hero: #132A56;
	--blue: #1B3D6D;
	--purple: #3772AF;
	--violet: #1B3D6D;
	--plum: #3772AF;
	--card: rgba(234, 239, 246, .7);
	--stroke: #E1E1E1;
	--stroke-card: #CFC9C9;
	--grad: linear-gradient(90deg, #1B3D6D 0%, #3772AF 100%);
	--grad-alt: linear-gradient(90deg, #1B3D6D 0%, #3772AF 100%);
	--shadow-card: 0 0 4px 0 rgba(0, 0, 0, .25);
	--shadow-btn: 0 10px 40px -12px rgba(27, 61, 109, .25);
	--r-card: 28px;
	--r-faq: 14px;
	--r-tag: 47px;
	--r-input: 62px;
	--r-pill: 9999px;
	--font-display: "Montserrat", sans-serif;
	--font-ui: "Open Sans", sans-serif;
	--font-alt: "Montserrat", sans-serif;
	--font-quote: "Open Sans", sans-serif;
	--base-size: 18px;
	--content: 1374px;
	--gutter: 24px;
	--h-scale: .9;
}

/* ---- Evercore brand overrides ------------------------------------------- */
/* Buttons/CTAs always use Montserrat (font-display), even where the theme's
   base font-ui (Open Sans) is applied to nav/body text sharing the same class. */
button, .button, .wp-element-button, .wp-block-button__link,
input[type="submit"], input[type="button"],
.labz-btn, .labz-hero__cta a, .labz-hero__cta button,
.labz-coa__btn, .labz-shop__sort-btn, .labz-shop__sortmenu button, .labz-promo__btn,
.labz-card__cta, a.button, .single_add_to_cart_button {
	font-family: var(--font-display);
}

/* ---- Reset / base ------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font-ui);
	font-size: var(--base-size);
	line-height: 1.5;
	color: var(--black);
	background: var(--white);
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
h1, h2, h3, h4, p { margin: 0; }
.labz-skip {
	position: absolute; left: -9999px; top: 0; z-index: 999;
	background: var(--navy); color: #fff; padding: 10px 16px; border-radius: 0 0 8px 0;
}
.labz-skip:focus { left: 0; }

/* ---- Container / helpers ------------------------------------------------ */
.labz-container {
	width: 100%;
	max-width: var(--content);
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.labz-center { text-align: center; }
.labz-grad-text {
	background: var(--grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* ---- Headings ----------------------------------------------------------- */
.labz-h1 {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: calc(50px * var(--h-scale));
	line-height: 1.12;
	letter-spacing: -0.01em;
	text-transform: capitalize;
	color: var(--ink-900);
}
.labz-h1--alt { font-family: var(--font-alt); font-size: calc(56px * var(--h-scale)); letter-spacing: 0; }
.labz-sub {
	font-family: var(--font-ui);
	font-size: 20px;
	line-height: 1.4;
	color: var(--black);
	margin-top: 14px;
}

/* ---- Buttons ------------------------------------------------------------ */
.labz-btn {
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--font-ui); font-size: 18px; line-height: 1;
	height: 50px; padding: 0 28px; border-radius: var(--r-pill);
	border: 0; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.labz-btn:hover { transform: translateY(-2px); }
.labz-btn--grad { background: var(--grad); color: #fff; box-shadow: var(--shadow-btn); }
.labz-btn--grad:hover { filter: brightness(1.06); }
.labz-btn--ghost-dark { background: transparent; color: var(--black); border: 1px solid var(--black); }
.labz-btn--ghost-dark:hover { background: var(--black); color: #fff; }

/* Dark-background sections (hero, COA banner, etc.) — white button pair. */
.labz-btn--white { background: #fff; color: var(--navy); border: 1px solid #fff; }
.labz-btn--white:hover { background: transparent; color: #fff; }
.labz-btn--ghost-white { background: transparent; color: #fff; border: 1px solid #fff; }
.labz-btn--ghost-white:hover { background: #fff; color: var(--navy); }

/* =========================================================================
   S1 · Announcement bar
   ========================================================================= */
.labz-announce { background: var(--navy); color: #fff; }
.labz-announce__inner {
	display: flex; align-items: center; justify-content: center; gap: 14px;
	min-height: 56px; font-size: 18px; text-align: center; flex-wrap: wrap;
}
.labz-announce i { font-style: normal; opacity: .8; }

/* =========================================================================
   S2 · Header
   ========================================================================= */
.labz-header { position: sticky; top: 0; z-index: 120; background: #fff; transition: box-shadow .25s ease; }
.labz-header.is-stuck { box-shadow: 0 6px 24px -14px rgba(0, 0, 0, .3); }
.labz-header__inner { display: flex; align-items: center; gap: 24px; min-height: 96px; }
.labz-header__logo img { width: 100px; height: auto; }
.labz-logo-link { display: inline-flex; }

.labz-nav { flex: 1; }
.labz-nav__menu { display: flex; align-items: center; gap: 40px; list-style: none; margin: 0; padding: 0; justify-content: center; }
.labz-nav__menu > li { position: relative; }
.labz-nav__menu a { font-family: var(--font-ui); font-size: 20px; color: var(--navy); display: inline-flex; align-items: center; gap: 6px; padding: 8px 0; }
.labz-nav__menu > li > a::after {
	content: ""; position: absolute; left: 0; right: 100%; bottom: 2px; height: 1px; background: var(--navy);
	transition: right .25s ease;
}
.labz-nav__menu > li:hover > a::after,
.labz-nav__menu > li.current-menu-item > a::after { right: 0; }
.labz-caret { width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor; }

/* Shop dropdown */
.labz-dropdown {
	position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(8px);
	min-width: 230px; background: #fff; border-radius: 14px; box-shadow: 0 20px 50px -20px rgba(0, 0, 0, .35);
	list-style: none; margin: 0; padding: 10px; opacity: 0; visibility: hidden; transition: opacity .2s ease, transform .2s ease; z-index: 40;
}
.menu-item-has-dropdown:hover > .labz-dropdown { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(4px); }
.labz-dropdown li a { display: block; padding: 10px 14px; border-radius: 8px; font-size: 17px; color: var(--ink-700); }
.labz-dropdown li a:hover { background: #f0f4fa; color: var(--navy); }

.labz-header__actions { display: flex; align-items: center; gap: 18px; }
.labz-icon-btn { position: relative; color: var(--navy); background: none; border: 0; display: inline-flex; align-items: center; }
.labz-cart-badge {
	position: absolute; top: -7px; right: -10px; min-width: 19px; height: 19px; padding: 0 4px;
	background: var(--navy); color: #fff; border-radius: 50%; font-family: "Inter", sans-serif; font-weight: 700; font-size: 12px;
	display: inline-flex; align-items: center; justify-content: center;
}
.labz-contact-pill {
	background: var(--navy); color: #fff; font-family: var(--font-ui); font-size: 18px;
	height: 46px; padding: 0 31px; border-radius: var(--r-pill); display: inline-flex; align-items: center;
	box-shadow: var(--shadow-btn); transition: filter .18s ease, transform .18s ease;
}
.labz-contact-pill:hover { filter: brightness(1.1); transform: translateY(-2px); }
.labz-burger { display: none; flex-direction: column; gap: 5px; background: none; border: 0; padding: 6px; }
.labz-burger span { width: 26px; height: 2px; background: var(--navy); transition: transform .25s ease, opacity .2s ease; }

.labz-search-bar { border-top: 1px solid #eef2f7; padding: 14px 0; }
.labz-search-bar form { display: flex; gap: 10px; max-width: 640px; margin-inline: auto; }
.labz-search-bar input[type="search"] { flex: 1; height: 48px; border: 1px solid var(--stroke); border-radius: var(--r-pill); padding: 0 20px; font-size: 16px; }
.labz-search-bar button { height: 48px; padding: 0 24px; border: 0; border-radius: var(--r-pill); background: var(--grad); color: #fff; }

/* =========================================================================
   S3 · Hero
   ========================================================================= */
.labz-hero {
	position: relative;
	background-image: var(--hero-bg);
	background-size: cover; background-position: center;
}
.labz-hero__inner { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 30px; min-height: 720px; }
.labz-hero__copy { max-width: 540px; }
.labz-hero__badge {
	display: inline-flex; align-items: center; height: 50px; padding: 0 31px; margin-bottom: 26px;
	background: rgba(255, 255, 255, .35); border: 1px solid #fff; border-radius: var(--r-pill);
	font-family: var(--font-ui); font-size: 20px; color: #fff; backdrop-filter: blur(4px);
}
.labz-hero__logotype {
	font-family: var(--font-display); font-weight: 700; font-size: 114px; line-height: 1.02; color: #fff;
	letter-spacing: -.01em;
}
.labz-hero__para { font-family: var(--font-ui); font-size: 20px; line-height: 30px; color: #fff; margin: 22px 0 32px; }
.labz-hero__cta { display: flex; gap: 20px; flex-wrap: wrap; }
.labz-hero__art { position: relative; justify-self: end; }
.labz-hero__art img { width: 100%; max-width: 620px; filter: drop-shadow(0 40px 60px rgba(0, 40, 90, .28)); animation: labz-float 6s ease-in-out infinite; }
@keyframes labz-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }

/* =========================================================================
   S4 · Featured products + product card (§4.4)
   ========================================================================= */
.labz-featured { padding: 96px 0; }
.labz-grid { display: grid; gap: 30px; margin-top: 44px; }
.labz-grid--4 { grid-template-columns: repeat(4, 1fr); }
.labz-grid--3 { grid-template-columns: repeat(4, 1fr); }
.labz-empty { grid-column: 1 / -1; text-align: center; color: var(--ink-700); font-size: 18px; padding: 30px; }

.labz-card {
	background: transparent; border-radius: var(--r-card); overflow: hidden;
	display: flex; flex-direction: column;
}
.labz-card:hover { transform: none; box-shadow: none; }
.labz-card__media { position: relative; display: block; background: transparent; border-radius: var(--r-card); overflow: hidden; }
.labz-card__media img { width: 100%; height: auto; object-fit: contain; padding: 0; border-radius: var(--r-card); display: block; }
.labz-card__corner {
	position: absolute; top: 14px; right: 14px; width: 45px; height: 45px; border-radius: 50%;
	background: var(--grad); display: inline-flex; align-items: center; justify-content: center; color: #fff;
	opacity: 0; transform: scale(.7); transition: .25s ease;
}
.labz-card:hover .labz-card__corner { opacity: 1; transform: scale(1); }
.labz-card__corner svg { width: 18px; height: 18px; }
.labz-card__body { padding: 14px 0 0; display: flex; flex-direction: column; gap: 14px; }
.labz-card__row { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 6px; }
.labz-card__title { font-family: var(--font-display); font-weight: 700; font-size: 24px; line-height: 1; letter-spacing: -.03em; color: var(--ink-700); }
span.labz-card__price { font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink-700); white-space: nowrap; display: inline-flex; align-items: baseline; gap: 6px; }
.labz-card__price del { opacity: .5; font-size: .8em; margin-right: 4px; }

.labz-card__variations { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: thin; padding-bottom: 4px; }
.labz-card__variations::-webkit-scrollbar { height: 4px; }
.labz-card__variations::-webkit-scrollbar-thumb { background: var(--stroke-card); border-radius: var(--r-pill); }
.labz-var-pill {
	font-family: var(--font-ui); font-size: 13px; padding: 6px 12px; border-radius: var(--r-pill); flex: 0 0 auto;
	border: 1px solid var(--stroke-card); background: #fff; color: var(--ink-700); transition: .18s ease; white-space: nowrap;
}
.labz-var-pill:hover { border-color: var(--navy); }
.labz-var-pill.is-active { background: var(--navy); color: #fff; border-color: var(--navy); }

.labz-card__cta {
	margin-top: auto; height: 54px; border: 0; border-radius: var(--r-pill); background: var(--grad); color: #fff;
	font-family: var(--font-ui); font-size: 20px; display: inline-flex; align-items: center; justify-content: center; gap: 12px;
	transition: filter .18s ease;
}
.labz-card__cta:hover { filter: brightness(1.12); }
.labz-card__cta svg { width: 18px; height: 18px; }
.labz-card__cta.is-loading { opacity: .7; pointer-events: none; }
.labz-card__cta.is-done { background: var(--grad); }

/* =========================================================================
   S5 · Shop by research goal
   ========================================================================= */
.labz-goal { padding: 120px 0; overflow: hidden; }
.labz-goal__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: center; }
.labz-goal__left { position: relative; z-index: 2; max-width: 620px; }
.labz-goal__seeall { margin: 26px 0 34px; }
.labz-goal__pills { display: flex; flex-direction: column; gap: 18px; max-width: 589px; }
.labz-goal-pill {
	display: flex; align-items: center; justify-content: space-between; height: 84px; padding: 0 44px;
	border-radius: var(--r-pill); border: 1px solid var(--stroke-card); background: #fff; color: var(--ink-700);
	font-family: var(--font-ui); font-size: 26px; letter-spacing: .02em; transition: .25s ease; text-transform: capitalize;
}
.labz-goal-pill:hover { transform: translateX(6px); }
.labz-goal-pill.is-active { background: var(--grad); color: #fff; border-color: transparent; box-shadow: 0 18px 40px -14px rgba(120, 30, 180, .5); }
.labz-goal-pill__num { font-size: 30px; font-weight: 700; color: var(--ink-900); }
.labz-goal-pill.is-active .labz-goal-pill__num { color: rgba(255, 255, 255, .5); }

.labz-goal__art { position: relative; justify-self: center; min-height: 500px; display: flex; align-items: center; justify-content: center; }
.labz-goal__art img { position: relative; z-index: 2; max-width: 520px; filter: drop-shadow(0 40px 60px rgba(30, 0, 80, .28)); }

/* =========================================================================
   S6 · Trust bar (full-bleed)
   ========================================================================= */
.labz-trust { background: var(--navy); color: #fff; }
.labz-trust__inner { display: flex; align-items: center; justify-content: center; gap: 28px; min-height: 130px; flex-wrap: nowrap; }
.labz-trust__item { display: flex; align-items: center; gap: 14px; }
.labz-trust__icon { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; color: #fff; flex: 0 0 auto; }
.labz-trust__icon svg { width: 30px; height: 30px; }
.labz-trust__text h3 { font-family: var(--font-display); font-weight: 700; font-size: 20px; letter-spacing: -.02em; text-transform: capitalize; white-space: nowrap; }
.labz-trust__text p { font-family: var(--font-ui); font-size: 14px; margin-top: 3px; white-space: nowrap; }
.labz-trust__divider { width: 1px; height: 59px; background: rgba(255, 255, 255, .5); }

/* =========================================================================
   S7 · Why researchers
   ========================================================================= */
.labz-why { padding: 120px 0; overflow: hidden; }
.labz-why__inner { display: grid; grid-template-columns: 1fr auto 1fr; gap: 40px; align-items: center; }
.labz-why__heading { line-height: 1.06; margin-bottom: 20px; }
.labz-why__para { font-family: var(--font-ui); font-size: 20px; line-height: 25px; color: #000; }
.labz-why__right { max-width: 357px; }
.labz-why__right .labz-why__para { margin-bottom: 26px; }
.labz-round-arrow { width: 62px; height: 62px; border-radius: 50%; background: var(--grad); color: #fff; display: inline-flex; align-items: center; justify-content: center; transition: transform .2s ease; }
.labz-round-arrow:hover { transform: rotate(45deg); }
.labz-why__art { position: relative; display: flex; align-items: center; justify-content: center; min-height: 560px; }
.labz-why__circle { display: none; }
.labz-why__art img { position: relative; z-index: 2; max-width: 430px; filter: drop-shadow(0 30px 50px rgba(0, 40, 90, .4)); }

/* =========================================================================
   S8 · Testimonials carousel (§4.7)
   ========================================================================= */
.labz-testi { padding: 40px 0 110px; }
.labz-carousel { position: relative; margin-top: 46px; }
.labz-carousel__viewport { overflow: hidden; }
.labz-carousel__track { display: flex; gap: 44px; transition: transform .5s cubic-bezier(.22, .61, .36, 1); }
.labz-testi-card {
	box-sizing: border-box;
	background: #fff; border: 1px solid var(--stroke-card); border-radius: var(--r-card);
	padding: 40px; position: relative; min-height: 267px;
}
.labz-testi-card.is-featured { background: var(--navy); border-color: transparent; color: #fff; }
.labz-testi-card__quote-mark { position: absolute; top: 34px; right: 34px; color: #f2f2f2; opacity: .8; }
.labz-testi-card.is-featured .labz-testi-card__quote-mark { color: rgba(255, 255, 255, .18); }
.labz-testi-card__head { display: flex; align-items: center; gap: 16px; }
.labz-testi-card__avatar { width: 76px; height: 76px; border-radius: var(--r-card); border: 2px solid var(--stroke); object-fit: cover; }
.labz-testi-card__name { font-family: var(--font-display); font-weight: 700; font-size: 20px; text-transform: uppercase; }
.labz-testi-card__role { font-family: var(--font-ui); font-size: 16px; opacity: .85; }
.labz-testi-card__divider { border: 0; height: 1px; background: var(--stroke); margin: 18px 0; }
.labz-testi-card.is-featured .labz-testi-card__divider { background: rgba(255, 255, 255, .4); }
.labz-testi-card__quote { font-family: var(--font-quote); font-weight: 500; font-size: 20px; line-height: 1.33; margin: 0; }

.labz-carousel__arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
	width: 49px; height: 49px; border-radius: 50%; border: 0; background: var(--grad); color: #fff;
	display: inline-flex; align-items: center; justify-content: center; transition: filter .18s ease;
}
.labz-carousel__arrow:hover { filter: brightness(1.12); }
.labz-carousel__arrow--prev { left: -24px; }
.labz-carousel__arrow--next { right: -24px; }
.labz-carousel__dots { display: flex; gap: 8px; justify-content: center; margin-top: 28px; }
.labz-carousel__dots button { width: 9px; height: 9px; border-radius: 50%; border: 0; background: var(--stroke-card); transition: .2s ease; }
.labz-carousel__dots button.is-active { background: var(--navy); width: 26px; border-radius: var(--r-pill); }

/* =========================================================================
   S9 · COA banner (full-bleed)
   ========================================================================= */
.labz-coa { position: relative; padding: 74px 0; overflow: visible; background: #eef; margin: 60px 0; }
.labz-coa::before { content: ""; position: absolute; inset: 0; background-image: var(--coa-bg); background-size: cover; background-position: center; }
.labz-coa__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(27, 61, 109, .96) 0%, rgba(55, 114, 175, .96) 100%); }
.labz-coa__inner { position: relative; z-index: 3; display: flex; align-items: center; min-height: 300px; }
.labz-coa__vial { object-fit: contain;
	position: absolute; left: 10px; top: 50%; transform: translateY(-50%) rotate(-8deg);
	height: calc(100% + 120px); width: auto; max-width: 300px; z-index: 4; display: block;
	filter: drop-shadow(0 24px 40px rgba(0, 0, 0, .4));
}
.labz-coa__content { position: relative; z-index: 3; margin-left: 380px; max-width: 720px; text-align: left; }
.labz-coa__title { color: #fff; line-height: 1.14; }
.labz-coa__sub { color: #fff; margin: 16px 0 26px; max-width: 644px; }
.labz-coa__form { display: flex; gap: 0; max-width: 610px; background: #fff; border-radius: var(--r-input); padding: 6px; }
.labz-coa__input { flex: 1; border: 0; background: transparent; height: 54px; padding: 0 26px; font-family: var(--font-ui); font-size: 18px; }
.labz-coa__input:focus { outline: none; }
.labz-coa__btn { border: 1px solid #fff; background: #fff; color: var(--navy); height: 54px; padding: 0 34px; border-radius: var(--r-input); font-family: var(--font-ui); font-size: 20px; transition: filter .18s ease, background .18s ease, color .18s ease; }
.labz-coa__btn:hover { background: transparent; color: #fff; }

/* =========================================================================
   S10 · FAQ accordion (§4.6)
   ========================================================================= */
.labz-faq { padding: 40px 0 110px; }
.labz-faq__inner { display: grid; grid-template-columns: 1fr 1.4fr; gap: 60px; align-items: start; }
.labz-faq__intro .labz-h1 { max-width: 420px; line-height: 1.15; }
.labz-faq__list { display: flex; flex-direction: column; gap: 20px; }
.labz-faq-item { border-radius: var(--r-faq); background: #fff; box-shadow: var(--shadow-card); overflow: hidden; }
.labz-faq-item__q {
	width: 100%; text-align: left; border: 0; background: transparent; display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 24px 32px; font-family: var(--font-display); font-weight: 700; font-size: 22px; color: #000;
}
.labz-faq-item.is-open { }
.labz-faq-item.is-open .labz-faq-item__q { background: var(--grad); color: #fff; }
.labz-faq-item__toggle { position: relative; width: 31px; height: 31px; border-radius: 50%; background: var(--grad-alt); flex: 0 0 auto; }
.labz-faq-item.is-open .labz-faq-item__toggle { background: #fff; }
.labz-faq-item__toggle::before, .labz-faq-item__toggle::after {
	content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	background: #fff; transition: opacity .2s ease, transform .3s ease;
}
.labz-faq-item__toggle::before { width: 12px; height: 2px; }
.labz-faq-item__toggle::after { width: 2px; height: 12px; }
.labz-faq-item.is-open .labz-faq-item__toggle::before { background: #000; }
.labz-faq-item.is-open .labz-faq-item__toggle::after { opacity: 0; }
.labz-faq-item__a { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.labz-faq-item.is-open .labz-faq-item__a { }
.labz-faq-item__a[hidden] { display: block; }
.labz-faq-item__a p { padding: 22px 32px 28px; font-family: var(--font-ui); font-size: 18px; line-height: 1.5; color: var(--ink-700); }

/* =========================================================================
   S11 · Research library (§4.8)
   ========================================================================= */
.labz-library { padding: 40px 0 120px; }
.labz-lib-card {
	position: relative; display: block; aspect-ratio: 438 / 406; border-radius: var(--r-card); overflow: hidden;
	background-image: var(--lib-img); background-size: cover; background-position: center; color: #fff;
}
.labz-lib-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(0, 20, 50, .78) 100%); transition: background .3s ease; }
.labz-lib-card:hover::after { background: linear-gradient(180deg, rgba(0, 0, 0, .15) 20%, rgba(0, 20, 50, .85) 100%); }
.labz-lib-card__tag {
	position: absolute; top: 20px; left: 20px; z-index: 2; background: #fff; color: var(--violet);
	font-family: var(--font-display); font-size: 16px; padding: 6px 18px; border-radius: var(--r-tag);
}
.labz-lib-card__body { position: absolute; left: 24px; bottom: 24px; z-index: 2; display: flex; flex-direction: column; gap: 6px; }
.labz-lib-card__title { font-family: var(--font-ui); font-size: 22px; }
.labz-lib-card__more { font-family: var(--font-ui); font-size: 16px; opacity: .85; transition: transform .25s ease; }
.labz-lib-card:hover .labz-lib-card__more { transform: translateX(6px); }

/* =========================================================================
   S12 · Footer
   ========================================================================= */
.labz-footer { color: #fff; }
.labz-footer__top { background: var(--navy); position: relative; }
.labz-footer__top::before {
	content: ""; position: absolute; inset: 0; opacity: .12; mix-blend-mode: screen;
	background-image: var(--hero-bg, none); background-size: cover; background-position: center;
}
.labz-footer__grid { position: relative; display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; padding: 72px var(--gutter) 60px; }
.labz-footer__logo img { width: 120px; height: auto; }
.labz-footer__blurb { font-family: var(--font-ui); font-size: 18px; line-height: 1.5; margin: 22px 0; max-width: 383px; opacity: .95; }
.labz-footer__mail { display: inline-flex; align-items: center; gap: 12px; font-family: var(--font-ui); font-size: 18px; }
.labz-footer__col h4 { font-family: var(--font-display); font-weight: 700; font-size: 20px; margin-bottom: 20px; letter-spacing: .02em; }
.labz-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.labz-footer__col a { font-family: var(--font-ui); font-size: 18px; opacity: .92; transition: opacity .18s ease, padding .18s ease; }
.labz-footer__col a:hover { opacity: 1; padding-left: 4px; }
.labz-footer__bottom { background: var(--navy); border-top: 1px solid rgba(255, 255, 255, .25); padding: 40px 0; text-align: center; }
.labz-footer__disclaimer { font-family: var(--font-ui); font-size: 15px; line-height: 1.6; max-width: 1288px; margin-inline: auto; opacity: .85; }
.labz-footer__copyright { font-family: var(--font-quote); font-weight: 500; font-size: 18px; margin-top: 26px; color: #dfe8f5; }

/* =========================================================================
   Mobile drawer + toast
   ========================================================================= */
.labz-drawer { position: fixed; inset: 0; z-index: 300; }
.labz-drawer__scrim { position: absolute; inset: 0; background: rgba(0, 20, 50, .55); }
.labz-drawer__panel {
	position: absolute; top: 0; right: 0; height: 100%; width: min(320px, 84vw); background: #fff; z-index: 2;
	padding: 80px 28px 28px; display: flex; flex-direction: column; gap: 6px; transform: translateX(100%); transition: transform .3s ease;
}
.labz-drawer.is-open .labz-drawer__panel { transform: translateX(0); }
.labz-drawer__panel .labz-nav__menu { flex-direction: column; align-items: flex-start; gap: 4px; }
.labz-drawer__panel .labz-nav__menu a { font-size: 20px; padding: 12px 0; }
.labz-drawer__panel .labz-dropdown { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; padding: 0 0 8px 14px; }
.labz-drawer__panel .labz-caret { display: none; }
.labz-drawer__close { position: absolute; top: 20px; right: 20px; background: none; border: 0; font-size: 34px; line-height: 1; color: var(--navy); }
.labz-contact-pill--block { justify-content: center; margin-top: 16px; }

.labz-toast {
	position: fixed; left: 50%; bottom: 30px; transform: translateX(-50%) translateY(20px);
	background: var(--navy); color: #fff; padding: 14px 24px; border-radius: var(--r-pill); z-index: 400;
	font-family: var(--font-ui); font-size: 16px; box-shadow: 0 20px 40px -18px rgba(0, 0, 0, .5); opacity: 0; transition: opacity .3s ease, transform .3s ease;
}
.labz-toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }

/* =========================================================================
   Reveal-on-scroll
   ========================================================================= */
.labz-reveal { opacity: 0; transform: translateY(30px); transition: opacity .7s ease, transform .7s ease; }
.labz-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.labz-reveal { opacity: 1; transform: none; transition: none; }
	.labz-hero__art img { animation: none; }
}

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 1200px) {
	.labz-hero__logotype { font-size: 92px; }
	.labz-h1 { font-size: calc(42px * var(--h-scale)); }
	.labz-h1--alt { font-size: calc(46px * var(--h-scale)); }
	.labz-grid--4 { grid-template-columns: repeat(2, 1fr); }
	.labz-nav__menu { gap: 26px; }
	.labz-nav__menu a { font-size: 18px; }
}

@media (max-width: 1024px) {
	.labz-nav, .labz-header__actions .labz-contact-pill { display: none; }
	.labz-burger { display: flex; }
	.labz-testi-card { flex: none; width: 100%; }
	.labz-why__inner { grid-template-columns: 1fr; text-align: center; gap: 30px; }
	.labz-why__right { max-width: 560px; margin-inline: auto; }
	.labz-why__art { order: -1; }
	.labz-round-arrow { margin-inline: auto; }
}

@media (max-width: 860px) {
	.labz-hero__inner { grid-template-columns: 1fr; text-align: center; padding: 40px 0 20px; min-height: 0; }
	.labz-hero__copy { max-width: none; }
	.labz-hero__cta { justify-content: center; }
	.labz-hero__art { justify-self: center; margin-top: 20px; }
	.labz-hero__art img { max-width: 340px; }
	.labz-hero__logotype { font-size: 72px; }
	.labz-goal__inner, .labz-faq__inner { grid-template-columns: 1fr; }
	.labz-goal__art { order: -1; min-height: 360px; }
	.labz-faq__intro .labz-h1 { max-width: none; text-align: center; }
	.labz-trust__inner { gap: 24px; }
	.labz-trust__divider { display: none; }
	.labz-coa { padding: 56px 0; }
	.labz-coa__inner { justify-content: center; }
	.labz-coa__vial { display: none; }
	.labz-coa__content { margin-left: 0; text-align: center; max-width: 640px; }
	.labz-coa__sub { margin-inline: auto; }
	.labz-coa__form { margin-inline: auto; }
}

@media (max-width: 640px) {
	.labz-grid--4, .labz-grid--3 { grid-template-columns: 1fr; }
	.labz-testi-card { flex: none; width: 100%; }
	.labz-carousel__arrow--prev { left: -6px; }
	.labz-carousel__arrow--next { right: -6px; }
	.labz-h1 { font-size: calc(32px * var(--h-scale)); }
	.labz-h1--alt { font-size: calc(34px * var(--h-scale)); }
	.labz-hero__logotype { font-size: 58px; }
	.labz-footer__grid { grid-template-columns: 1fr 1fr; gap: 30px; }
	.labz-footer__brand { grid-column: 1 / -1; }
	.labz-coa__form { flex-direction: column; background: transparent; padding: 0; gap: 10px; }
	.labz-coa__input { background: #fff; border-radius: var(--r-input); }
	.labz-coa__btn { border-radius: var(--r-input); }
	.labz-trust__text h3 { font-size: 24px; }
	.labz-faq-item__q { font-size: 18px; padding: 18px 20px; }
	.labz-hero__badge { font-size: 16px; }
}

/* =========================================================================
   Generic content pages (single / page / archive / search)
   ========================================================================= */
.labz-page { padding: 60px 0 100px; }
.labz-page__head { text-align: center; margin-bottom: 44px; }
.labz-single { max-width: none; }
.labz-single__head {
	position: relative; overflow: hidden; text-align: center;
	background:
		radial-gradient(120% 140% at 85% 0%, rgba(0,61,135,.30) 0%, rgba(10,31,60,0) 55%),
		linear-gradient(135deg, #0a1f3c 0%, #061733 100%);
	border-bottom: 3px solid transparent; border-image: var(--grad) 1;
	padding: 84px 0 72px; margin-bottom: 56px;
}
.labz-single__head::after {
	content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .12;
	background-image: radial-gradient(circle at 1px 1px, rgba(150,190,255,.6) 1px, transparent 0);
	background-size: 24px 24px;
}
.labz-single__head-inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.labz-single__crumbs { justify-content: center; margin-bottom: 0; }
.labz-single__crumbs .labz-crumbs__sep { opacity: .5; }
.labz-single__head .labz-single__title {
	font-family: var(--font-display); font-weight: 700; line-height: 1.1; letter-spacing: -.01em;
	color: #fff; font-size: calc(48px * var(--h-scale)); margin: 0; max-width: 900px;
}
.labz-single__tag { display: inline-block; background: var(--grad); color: #fff; font-family: var(--font-display); font-size: 14px; padding: 5px 16px; border-radius: var(--r-tag); margin-bottom: 14px; }
.labz-single__title { font-family: var(--font-display); font-weight: 700; font-size: 40px; line-height: 1.15; color: var(--ink-900); letter-spacing: -.01em; }
.labz-single__meta { font-family: var(--font-ui); font-size: 15px; color: var(--ink-700); margin-top: 10px; }
.labz-single__media { margin: 26px 0; border-radius: var(--r-card); overflow: hidden; }
.labz-single__content { font-family: var(--font-ui); font-size: 18px; line-height: 1.7; color: var(--ink-700); }
.labz-single__content h2 { font-family: var(--font-display); font-weight: 700; font-size: 28px; color: var(--ink-900); margin: 36px 0 12px; }
.labz-single__content h3 { font-family: var(--font-display); font-weight: 700; font-size: 21px; color: var(--navy); margin: 24px 0 8px; }
.labz-single__content p { margin: 0 0 16px; }
.labz-single__content ul { margin: 0 0 18px; padding-left: 0; }
.labz-single__content ul:not([class]) { padding-left: 22px; }
.labz-single__content li { margin-bottom: 8px; }
.labz-single__content em { color: var(--ink-700); }

.labz-postlist { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.labz-postcard { background: var(--card); border-radius: var(--r-card); overflow: hidden; padding-bottom: 22px; display: flex; flex-direction: column; }
.labz-postcard__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.labz-postcard__media img { width: 100%; height: 100%; object-fit: cover; }
.labz-postcard__title { font-family: var(--font-display); font-weight: 700; font-size: 21px; line-height: 1.25; color: var(--ink-900); padding: 18px 22px 8px; }
.labz-postcard__excerpt { font-family: var(--font-ui); font-size: 15px; line-height: 1.55; color: var(--ink-700); padding: 0 22px 18px; flex: 1; }
.labz-postcard .labz-btn { margin: 0 22px; }

.labz-searchform { display: flex; gap: 10px; }
.labz-searchform input { flex: 1; height: 46px; border: 1px solid var(--stroke); border-radius: var(--r-pill); padding: 0 18px; }
.labz-searchform button { height: 46px; padding: 0 22px; border: 0; border-radius: var(--r-pill); background: var(--grad); color: #fff; }

.pagination, .navigation.pagination { margin-top: 44px; text-align: center; }
.page-numbers { display: inline-flex; min-width: 42px; height: 42px; align-items: center; justify-content: center; padding: 0 12px; margin: 0 4px; border-radius: 10px; background: #f0f4fa; color: var(--navy); font-family: var(--font-ui); }
.page-numbers.current { background: var(--navy); color: #fff; }

@media (max-width: 900px) { .labz-postlist { grid-template-columns: 1fr 1fr; } .labz-single__title { font-size: 30px; } }
@media (max-width: 600px) { .labz-postlist { grid-template-columns: 1fr; } }

/* WooCommerce light touch-ups so shop/cart aren't unstyled while phase 2 is pending */
.labz-shop { padding: 40px var(--gutter) 90px; }
.woocommerce ul.products li.product .button,
.woocommerce a.button, .woocommerce button.button.alt, .woocommerce #respond input#submit.alt {
	background: var(--grad); color: #fff; border-radius: var(--r-pill); font-family: var(--font-ui);
}
.woocommerce a.button:hover, .woocommerce button.button.alt:hover { filter: brightness(1.1); }

/* =========================================================================
   Shared page primitives (About / Contact / FAQ / Legal)
   ========================================================================= */
.labz-eyebrow {
	display: inline-block; font-family: var(--font-ui); font-size: 13px; letter-spacing: .18em;
	text-transform: uppercase; color: var(--navy); background: #eaf1fb;
	padding: 8px 18px; border-radius: var(--r-pill); margin-bottom: 20px;
}
.labz-about-hero__eyebrow, .labz-faqpage__eyebrow { /* backward-compat alias */ }

/* =========================================================================
   About page — premium
   ========================================================================= */
.labz-about { padding-bottom: 20px; overflow: hidden; }

.labz-about-hero { position: relative; padding: 76px 0 64px; }
.labz-about-hero::before {
	content: ""; position: absolute; inset: 0; z-index: 0;
	background:
		radial-gradient(760px 420px at 88% 8%, rgba(0,61,135,.08), transparent 60%),
		radial-gradient(680px 420px at 4% 30%, rgba(0,120,228,.08), transparent 60%);
}
.labz-about-hero__inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.12fr .88fr; gap: 54px; align-items: center; }
.labz-about-hero__eyebrow {
	display: inline-block; font-family: var(--font-ui); font-size: 13px; letter-spacing: .18em;
	text-transform: uppercase; color: var(--navy); background: #eaf1fb; padding: 8px 18px; border-radius: var(--r-pill); margin-bottom: 20px;
}
.labz-about-hero .labz-h1 { max-width: 640px; line-height: 1.08; }
.labz-about-hero__lead { font-family: var(--font-ui); font-size: 19px; line-height: 1.7; color: var(--ink-700); margin: 22px 0 30px; max-width: 600px; }
.labz-about-hero__cta { display: flex; gap: 16px; flex-wrap: wrap; }
.labz-about-hero__art { position: relative; justify-self: center; }
.labz-about-hero__art img { max-width: 380px; width: 100%; filter: drop-shadow(0 50px 70px rgba(0, 40, 90, .32)); animation: labz-float 6s ease-in-out infinite; }

.labz-about-stats { position: relative; z-index: 1; padding: 4px 0 60px; }
.labz-about-stats__inner { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.labz-about-stat {
	position: relative; background: #fff; border: 1px solid var(--stroke-card); border-radius: 20px;
	padding: 30px 30px 28px; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease;
}
.labz-about-stat::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 4px; background: var(--grad); }
.labz-about-stat:hover { transform: translateY(-5px); box-shadow: 0 28px 50px -30px rgba(0, 40, 90, .4); }
.labz-about-stat strong { display: block; font-family: var(--font-display); font-size: 30px; color: var(--navy); margin-bottom: 8px; letter-spacing: -.01em; }
.labz-about-stat span { font-family: var(--font-ui); font-size: 15px; line-height: 1.5; color: var(--ink-700); }

.labz-about-block { padding: 60px 0; position: relative; }
.labz-about-block + .labz-about-block { border-top: 1px solid #eef2f7; }
.labz-about-block--alt { background: linear-gradient(180deg, #f7fafe, #fff); border-top: 0 !important; }
.labz-about-block__inner { display: grid; grid-template-columns: 260px 1fr; gap: 50px; align-items: start; }
.labz-about-block__label { font-family: var(--font-ui); font-size: 17px; font-weight: 600; color: var(--navy); display: flex; flex-direction: column; gap: 12px; text-transform: capitalize; position: sticky; top: 110px; }
.labz-about-block__label span { font-family: var(--font-display); font-size: 56px; line-height: 1; background: var(--grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; opacity: .9; }
.labz-about-block__body h2 { margin-bottom: 18px; line-height: 1.14; }
.labz-about-block__body p { font-family: var(--font-ui); font-size: 18px; line-height: 1.7; color: var(--ink-700); margin-bottom: 16px; max-width: 720px; }
.labz-about-cats { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.labz-about-cat { font-family: var(--font-ui); font-size: 15px; padding: 11px 22px; border-radius: var(--r-pill); background: #fff; border: 1px solid var(--stroke-card); color: var(--navy); transition: .2s ease; }
.labz-about-cat:hover { border-color: var(--navy); transform: translateY(-2px); }

.labz-about-cta { padding: 40px var(--gutter) 80px; }
.labz-about-cta__inner { position: relative; background: var(--navy); border-radius: 28px; padding: 66px 56px; text-align: center; overflow: hidden; }
.labz-about-cta__inner::before { content: ""; position: absolute; width: 520px; height: 520px; border-radius: 50%; background: var(--grad); filter: blur(30px); opacity: .28; right: -120px; top: -160px; }
.labz-about-cta__inner > * { position: relative; z-index: 1; }
.labz-about-cta__inner .labz-h1 { color: #fff; }
.labz-about-cta__inner .labz-grad-text { background: linear-gradient(90deg,#7fbcff,#d29bff); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.labz-about-cta__inner p { font-family: var(--font-ui); font-size: 18px; line-height: 1.65; color: rgba(255,255,255,.85); max-width: 640px; margin: 18px auto 30px; }
.labz-about-disclaimer { max-width: 900px; margin: 10px auto 40px; padding: 0 var(--gutter); text-align: center; font-family: var(--font-ui); font-size: 13px; line-height: 1.6; color: #9aa0a8; }

/* =========================================================================
   Contact page — premium
   ========================================================================= */
.labz-contact__head { margin-bottom: 48px; text-align: center; }
.labz-contact__head .labz-about-hero__eyebrow { display: inline-block; margin-left: auto; margin-right: auto; }
.labz-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: start; }
.labz-contact__card { background: #fff; border: 1px solid var(--stroke-card); border-radius: 20px; padding: 30px; margin-bottom: 22px; transition: box-shadow .25s ease; }
.labz-contact__card:hover { box-shadow: 0 24px 50px -34px rgba(0, 40, 90, .35); }
.labz-contact__card h3 { font-family: var(--font-display); font-size: 22px; color: var(--ink-900); margin-bottom: 14px; }
.labz-contact__email { font-family: var(--font-ui); font-size: 20px; color: var(--navy); font-weight: 600; word-break: break-word; }
.labz-contact__note { font-family: var(--font-ui); font-size: 14px; color: var(--ink-700); margin-top: 8px; }
.labz-contact__list { list-style: none; display: flex; flex-direction: column; gap: 16px; }
.labz-contact__list li { position: relative; padding-left: 28px; font-family: var(--font-ui); font-size: 15px; line-height: 1.55; color: var(--ink-700); }
.labz-contact__list li::before { content: ""; position: absolute; left: 0; top: 6px; width: 13px; height: 13px; border-radius: 50%; background: var(--grad); }
.labz-contact__list a { color: var(--navy); text-decoration: underline; text-underline-offset: 2px; }

.labz-contact__formwrap { background: #fff; border: 1px solid var(--stroke-card); border-radius: 24px; padding: 38px; box-shadow: 0 30px 70px -44px rgba(0, 40, 90, .5); }
.labz-contact__form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.labz-field { display: flex; flex-direction: column; gap: 8px; grid-column: 1 / -1; }
.labz-field--half { grid-column: span 1; }
.labz-field label { font-family: var(--font-ui); font-size: 14px; color: var(--ink-900); font-weight: 600; }
.labz-field label span { color: #d21c4b; margin-left: 2px; }
.labz-field label em { color: var(--ink-700); font-weight: 400; font-style: normal; }
.labz-field input, .labz-field textarea { font-family: var(--font-ui); font-size: 16px; padding: 14px 16px; border: 1px solid var(--stroke-card); border-radius: 14px; background: #fbfcfe; transition: border-color .15s ease, box-shadow .15s ease; }
.labz-field input:focus, .labz-field textarea:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 4px rgba(0, 61, 135, .1); }
.labz-hp { position: absolute; left: -9999px; width: 1px; height: 1px; }
.labz-contact__actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 4px; }
.labz-contact__status { font-family: var(--font-ui); font-size: 15px; }
.labz-contact__status.is-ok { color: #1a8a4a; }
.labz-contact__status.is-err { color: #d21c4b; }

/* =========================================================================
   FAQ page — premium (PeptideX-style)
   ========================================================================= */
.labz-faqpage__hero { position: relative; background: var(--navy); color: #fff; padding: 84px 0 66px; text-align: center; overflow: hidden; }
.labz-faqpage__hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(680px 340px at 50% -10%, rgba(0,61,135,.5), transparent 70%); }
.labz-faqpage__hero > .labz-container { position: relative; z-index: 1; }
.labz-faqpage__eyebrow { display: inline-block; font-family: var(--font-ui); font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: #fff; background: rgba(255,255,255,.12); padding: 8px 18px; border-radius: var(--r-pill); margin-bottom: 18px; }
.labz-faqpage__title { font-family: var(--font-display); font-weight: 700; font-size: calc(52px * var(--h-scale)); line-height: 1.08; letter-spacing: -.01em; }
.labz-faqpage__title .labz-grad-text { background: linear-gradient(90deg,#6fb0ff,#c78bff); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.labz-faqpage__sub { font-family: var(--font-ui); font-size: 18px; line-height: 1.55; color: rgba(255,255,255,.82); max-width: 580px; margin: 18px auto 28px; }
.labz-faqpage__search { position: relative; max-width: 580px; margin: 0 auto; }
.labz-faqpage__search::before { content: ""; position: absolute; left: 22px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4-4'/%3E%3C/svg%3E"); }
.labz-faqpage__search input { width: 100%; height: 56px; border: 0; border-radius: var(--r-pill); padding: 0 24px 0 52px; font-family: var(--font-ui); font-size: 16px; box-shadow: 0 20px 50px -20px rgba(0,0,0,.4); }
.labz-faqpage__search input:focus { outline: none; }
.labz-faqpage__chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 26px; }
.labz-faqpage__chip { font-family: var(--font-ui); font-size: 14px; color: #fff; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); padding: 9px 18px; border-radius: var(--r-pill); transition: .18s ease; }
.labz-faqpage__chip:hover { background: rgba(255,255,255,.22); transform: translateY(-2px); }

.labz-faqpage__body { display: grid; grid-template-columns: 262px 1fr; gap: 50px; padding: 60px var(--gutter) 100px; align-items: start; }
.labz-faqpage__side { position: sticky; top: 110px; background: #fff; border: 1px solid var(--stroke-card); border-radius: 20px; padding: 22px; }
.labz-faqpage__side-title { font-family: var(--font-ui); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-700); }
.labz-faqpage__nav { display: flex; flex-direction: column; gap: 4px; margin-top: 14px; }
.labz-faqpage__nav a { display: flex; justify-content: space-between; align-items: center; font-family: var(--font-ui); font-size: 15px; color: var(--ink-900); padding: 12px 14px; border-radius: 12px; transition: .15s ease; }
.labz-faqpage__nav a:hover { background: #eef3fb; color: var(--navy); }
.labz-faqpage__nav a span { font-size: 12px; color: #fff; background: var(--navy); border-radius: var(--r-pill); min-width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; }

.labz-faqpage__group { margin-bottom: 46px; scroll-margin-top: 100px; }
.labz-faqpage__group-title { font-family: var(--font-display); font-weight: 700; font-size: 27px; color: var(--ink-900); margin-bottom: 18px; padding-bottom: 14px; border-bottom: 2px solid #eef2f7; display: flex; align-items: baseline; gap: 12px; }
.labz-faqpage__group-title em { font-family: var(--font-ui); font-size: 13px; font-style: normal; font-weight: 400; color: var(--ink-700); }
.labz-faqpage__item { background: #fff; border: 1px solid var(--stroke-card); border-radius: 16px; transition: box-shadow .2s ease, border-color .2s ease; }
.labz-faqpage__item + .labz-faqpage__item { margin-top: 14px; }
.labz-faqpage__item:hover { border-color: #cdd7e6; }
.labz-faqpage__item.is-open { box-shadow: 0 20px 44px -30px rgba(0,40,90,.4); border-color: transparent; }
.labz-faqpage__item .labz-faq-item__q { align-items: center; gap: 16px; padding: 22px 24px; }
.labz-faqpage__num { font-family: var(--font-display); font-size: 17px; color: var(--navy); opacity: .5; min-width: 26px; }
.labz-faqpage__item.is-open .labz-faqpage__num { opacity: 1; }
.labz-faqpage__empty { text-align: center; padding: 40px; font-family: var(--font-ui); color: var(--ink-700); }

.labz-faqpage__cta { margin-top: 34px; position: relative; background: var(--navy); border-radius: 24px; padding: 34px 38px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; overflow: hidden; }
.labz-faqpage__cta::before { content: ""; position: absolute; width: 360px; height: 360px; border-radius: 50%; background: var(--grad); filter: blur(30px); opacity: .3; right: -100px; top: -120px; }
.labz-faqpage__cta > * { position: relative; z-index: 1; }
.labz-faqpage__cta h3 { font-family: var(--font-display); font-size: 23px; color: #fff; }
.labz-faqpage__cta p { font-family: var(--font-ui); font-size: 15px; color: rgba(255,255,255,.82); margin-top: 6px; max-width: 520px; }

/* =========================================================================
   Legal / policy pages — premium
   ========================================================================= */
.labz-legal__hero { background: linear-gradient(180deg, #f7fafe, #fff); border-bottom: 1px solid #eef2f7; padding: 62px 0 40px; }
.labz-legal__eyebrow { display: inline-block; font-family: var(--font-ui); font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: var(--navy); background: #eaf1fb; padding: 8px 18px; border-radius: var(--r-pill); margin-bottom: 18px; }
.labz-legal__title { font-family: var(--font-display); font-weight: 700; font-size: calc(46px * var(--h-scale)); line-height: 1.1; color: var(--ink-900); letter-spacing: -.01em; }
.labz-legal__meta { font-family: var(--font-ui); font-size: 14px; color: var(--ink-700); margin-top: 12px; }

.labz-legal__body { display: grid; grid-template-columns: 260px 1fr; gap: 56px; align-items: start; padding: 54px var(--gutter) 100px; }
.labz-legal__toc { position: sticky; top: 110px; }
.labz-legal__toc-title { font-family: var(--font-ui); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-700); }
.labz-legal__toc nav { display: flex; flex-direction: column; gap: 2px; margin: 14px 0 20px; border-left: 2px solid #e7edf4; }
.labz-legal__toc nav a { font-family: var(--font-ui); font-size: 14px; line-height: 1.4; color: var(--ink-700); padding: 8px 0 8px 16px; margin-left: -2px; border-left: 2px solid transparent; transition: .15s ease; }
.labz-legal__toc nav a:hover { color: var(--navy); border-left-color: var(--navy); }
.labz-legal__help { display: inline-block; font-family: var(--font-ui); font-size: 14px; font-weight: 600; color: var(--navy); }

.labz-legal__content { max-width: 780px; font-family: var(--font-ui); font-size: 17px; line-height: 1.8; color: var(--ink-700); }
.labz-legal__content h2 { font-family: var(--font-display); font-weight: 700; font-size: 25px; color: var(--ink-900); margin: 40px 0 14px; scroll-margin-top: 100px; padding-top: 8px; }
.labz-legal__content h2:first-child { margin-top: 0; }
.labz-legal__content p { margin: 0 0 16px; }
.labz-legal__content ul, .labz-legal__content ol { margin: 0 0 18px; padding-left: 22px; }
.labz-legal__content li { margin-bottom: 8px; }
.labz-legal__content a { color: var(--navy); text-decoration: underline; text-underline-offset: 2px; }
.labz-legal__content strong { color: var(--ink-900); }
.labz-legal__content hr { border: 0; border-top: 1px solid #eef2f7; margin: 30px 0; }
.labz-legal__content small { font-size: 13px; color: #9aa0a8; }

/* =========================================================================
   Page responsive
   ========================================================================= */
@media (max-width: 960px) {
	.labz-about-block__inner { grid-template-columns: 1fr; gap: 20px; }
	.labz-about-block__label { position: static; flex-direction: row; align-items: center; gap: 16px; }
	.labz-about-block__label span { font-size: 40px; }
}
@media (max-width: 900px) {
	.labz-about-hero__inner, .labz-contact__grid, .labz-faqpage__body, .labz-legal__body { grid-template-columns: 1fr; gap: 34px; }
	.labz-about-hero__art { order: -1; }
	.labz-about-hero__art img { max-width: 280px; }
	.labz-about-stats__inner { grid-template-columns: 1fr; }
	.labz-faqpage__side, .labz-legal__toc { position: static; display: none; }
	.labz-contact__form { grid-template-columns: 1fr; }
	.labz-field--half { grid-column: 1 / -1; }
	.labz-about-cta__inner { padding: 44px 26px; }
	.labz-legal__content { max-width: none; }
}

/* Unified accordion — homepage gradient open-bar + numbered counter, used site-wide */
.labz-faqpage__item .labz-faq-item__q { justify-content: flex-start; text-align: left; border-radius: 16px; }
.labz-faqpage__item.is-open .labz-faq-item__q { border-radius: 16px 16px 0 0; }
.labz-faqpage__item .labz-faq-item__q > span:not(.labz-faqpage__num):not(.labz-faq-item__toggle) { flex: 1; }
.labz-faqpage__item.is-open .labz-faqpage__num { color: #fff; opacity: 1; }
.labz-faqpage__item .labz-faq-item__toggle { margin-left: 14px; }
.labz-faqpage__item .labz-faq-item__a { padding: 0 24px; }
.labz-faqpage__item.is-open .labz-faq-item__a { padding-bottom: 6px; }
.labz-faqpage__item .labz-faq-item__a p { padding: 18px 0 20px; }


/* =========================================================================
   Product category pages (taxonomy-product_cat.php)
   Reference layout, recolored to site navy + blue→purple gradient.
   ========================================================================= */
.labz-catpage { --cat-dark: #0a1f3c; --cat-dark-2: #061733; }
.labz-cathero .labz-crumbs { margin-bottom: 22px; }

/* -- 1 · Hero -- */
.labz-cathero {
	position: relative; overflow: hidden;
	background:
		radial-gradient(120% 140% at 85% 0%, rgba(0,61,135,.30) 0%, rgba(10,31,60,0) 55%),
		linear-gradient(135deg, var(--cat-dark) 0%, var(--cat-dark-2) 100%);
	border-bottom: 3px solid transparent;
	border-image: var(--grad) 1;
}
.labz-cathero::after {
	content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .12;
	background-image: radial-gradient(circle at 1px 1px, rgba(120,180,255,.6) 1px, transparent 0);
	background-size: 26px 26px; mix-blend-mode: screen;
}
.labz-cathero__inner {
	position: relative; z-index: 1;
	display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 40px;
	padding: 34px 0 54px;
}
.labz-crumbs { font-family: var(--font-ui); font-size: 14px; color: rgba(255,255,255,.55); margin-bottom: 0; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.labz-crumbs a { color: rgba(255,255,255,.72); text-decoration: none; }
.labz-crumbs a:hover { color: #fff; }
.labz-crumbs .is-current { color: #6fb0ff; }
.labz-cathero__title {
	font-family: var(--font-display); font-weight: 700; letter-spacing: -.01em; line-height: 1.05;
	font-size: clamp(34px, 4.4vw, 58px); color: #fff; margin: 0 0 20px;
}
.labz-cathero__intro { font-family: var(--font-ui); font-size: 18px; line-height: 30px; color: rgba(255,255,255,.78); max-width: 560px; margin: 0 0 34px; }

.labz-cathero__features { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px 34px; max-width: 620px; }
@media (min-width: 1100px) { .labz-cathero__features { grid-template-columns: repeat(4, 1fr); max-width: none; } }
.labz-feat { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; text-align: left; }
.labz-feat__ic {
	flex: 0 0 auto; width: 46px; height: 46px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center;
	background: rgba(0,120,228,.18); border: 1px solid rgba(0,120,228,.45); color: #6fb0ff;
}
.labz-feat__ic svg { width: 22px; height: 22px; }
.labz-feat__tx { display: flex; flex-direction: column; gap: 3px; }
.labz-feat__tx strong { font-family: var(--font-ui); font-size: 15px; color: #fff; font-weight: 600; }
.labz-feat__tx span { font-family: var(--font-ui); font-size: 13px; color: rgba(255,255,255,.6); }

.labz-cathero__art { position: relative; justify-self: end; }
.labz-cathero__art img {
	width: 100%; max-width: 440px; height: auto; object-fit: contain;
	filter: drop-shadow(0 40px 60px rgba(0,10,40,.55)); animation: labz-float 6s ease-in-out infinite;
}
@media (max-width: 900px) { .labz-cathero__art { display: none; } }

/* -- 2 · Products header -- */
.labz-eyebrow {
	display: inline-block; font-family: var(--font-ui); font-size: 13px; letter-spacing: .12em; text-transform: uppercase;
	font-weight: 600; color: var(--navy); margin-bottom: 12px;
}
.labz-eyebrow--on-dark { color: #6fb0ff; }
.labz-catprod__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 64px var(--gutter) 0; }
.labz-catprod__title { font-family: var(--font-display); font-weight: 700; font-size: clamp(26px,3vw,38px); color: var(--ink-900); margin: 0; letter-spacing: -.01em; }
.labz-catprod__sub { font-family: var(--font-ui); font-size: 16px; line-height: 26px; color: var(--ink-700); margin: 12px 0 0; max-width: 460px; }
.labz-catprod__sort { margin-bottom: 4px; }
.labz-catprod__sort select,
.labz-catprod__sort .orderby {
	font-family: var(--font-ui); font-size: 14px; color: var(--ink-900);
	padding: 12px 18px; border: 1px solid var(--stroke-card); border-radius: var(--r-pill); background: #fff; cursor: pointer;
}
.labz-catpage .labz-grid--3 { margin-top: 30px; }

/* -- 4 · Why us band -- */
.labz-catwhy {
	margin-top: 80px; position: relative; overflow: hidden;
	background:
		radial-gradient(100% 160% at 0% 0%, rgba(0,120,228,.28) 0%, rgba(10,31,60,0) 55%),
		linear-gradient(135deg, var(--cat-dark) 0%, var(--cat-dark-2) 100%);
}
.labz-catwhy::after {
	content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .10;
	background-image: radial-gradient(circle at 1px 1px, rgba(120,180,255,.6) 1px, transparent 0);
	background-size: 26px 26px;
}
.labz-catwhy__inner { position: relative; z-index: 1; display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; align-items: center; padding: 72px 0; }
.labz-catwhy__head {
	font-family: var(--font-display); font-weight: 700; font-size: clamp(28px,3.2vw,42px); line-height: 1.12; margin: 0; color: #fff;
}
.labz-catwhy__right p { font-family: var(--font-ui); font-size: 17px; line-height: 30px; color: rgba(255,255,255,.82); margin: 0 0 26px; }
.labz-catwhy__badges { display: flex; flex-wrap: wrap; gap: 12px 26px; }
.labz-catwhy__badge { display: inline-flex; align-items: center; gap: 9px; font-family: var(--font-ui); font-size: 14px; color: rgba(255,255,255,.9); }
.labz-catwhy__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--grad); flex: 0 0 auto; }
@media (max-width: 860px) { .labz-catwhy__inner { grid-template-columns: 1fr; gap: 24px; padding: 52px 0; } }

/* -- 5 · FAQ + disclaimer sidecard -- */
.labz-catfaq { display: grid; grid-template-columns: 1.5fr .8fr; gap: 40px; align-items: start; padding: 80px var(--gutter) 90px; }
.labz-catfaq__title { font-family: var(--font-display); font-weight: 700; font-size: clamp(24px,2.6vw,34px); color: var(--ink-900); margin: 0 0 26px; letter-spacing: -.01em; }
.labz-faq-list { display: flex; flex-direction: column; gap: 14px; }
.labz-faq-item { background: #fff; border: 1px solid rgba(0,61,135,.14); border-radius: var(--r-faq); padding: 18px 22px; transition: border-color .2s ease, box-shadow .2s ease; }
.labz-faq-item[open] { border-color: rgba(0,61,135,.4); box-shadow: 0 14px 34px -22px rgba(0,40,90,.5); }
.labz-faq-item summary {
	font-family: var(--font-ui); font-weight: 600; font-size: 16px; color: var(--ink-900); cursor: pointer; list-style: none;
	display: flex; justify-content: space-between; align-items: center; gap: 14px;
}
.labz-faq-item summary::-webkit-details-marker { display: none; }
.labz-faq-item summary::after {
	content: ''; width: 11px; height: 11px; flex: 0 0 auto; margin-left: 8px;
	border-right: 2px solid var(--navy); border-bottom: 2px solid var(--navy); transform: rotate(45deg); transition: transform .2s ease;
}
.labz-faq-item[open] summary::after { transform: rotate(-135deg); }
.labz-faq-item p { font-family: var(--font-ui); font-size: 15px; line-height: 26px; color: var(--ink-700); margin: 12px 0 0; }

.labz-catfaq__aside { background: var(--card); border: 1px solid rgba(0,61,135,.12); border-radius: 18px; padding: 30px 28px; position: sticky; top: 100px; }
.labz-catfaq__aside-ic {
	width: 48px; height: 48px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: rgba(0,61,135,.12); color: var(--navy); margin-bottom: 16px;
}
.labz-catfaq__aside-ic svg { width: 24px; height: 24px; }
.labz-catfaq__aside h3 { font-family: var(--font-ui); font-weight: 600; font-size: 17px; color: var(--ink-900); margin: 0 0 10px; }
.labz-catfaq__aside p { font-family: var(--font-ui); font-size: 14px; line-height: 24px; color: var(--ink-700); margin: 0; }

@media (max-width: 860px) {
	.labz-catfaq { grid-template-columns: 1fr; }
	.labz-catfaq__aside { position: static; }
}
@media (max-width: 782px) {
	.labz-cathero__inner { grid-template-columns: 1fr; padding: 24px 0 40px; }
	.labz-catpage .labz-grid--3 { grid-template-columns: 1fr; }
	.labz-catprod__head { padding-top: 44px; }
}

/* Shared specs table (also used on single product) */
.labz-specs-table { width: 100%; border-collapse: collapse; margin: 18px 0; font-family: var(--font-ui); font-size: 15px; }
.labz-specs-table th, .labz-specs-table td { text-align: left; padding: 10px 0; border-bottom: 1px solid rgba(0,61,135,.12); }
.labz-specs-table th { width: 42%; color: var(--ink-900); font-weight: 600; }
.labz-specs-table td { color: var(--ink-700); }

/* =========================================================================
   Single product page (woocommerce/single-product-labz.php)
   Reference layout, site palette.
   ========================================================================= */
.labz-sp { padding: 30px var(--gutter) 40px; }
.labz-crumbs--light { color: var(--ink-700); }
.labz-crumbs--light a { color: var(--ink-700); }
.labz-crumbs--light a:hover { color: var(--navy); }
.labz-crumbs--light .is-current { color: var(--navy); }

/* -- Top grid -- */
.labz-sp__top { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; margin-top: 12px; }
.labz-sp__gallery {
	background: #f7f9fc; border-radius: var(--r-card); padding: 20px; position: relative;
}
.labz-sp__gallery .onsale {
	position: absolute; top: 18px; left: 18px; z-index: 2; background: var(--navy); color: #fff; border: 0;
	font-family: var(--font-ui); font-size: 12px; letter-spacing: .04em; padding: 7px 14px; border-radius: var(--r-pill); min-height: 0; min-width: 0;
}
.labz-sp__gallery .woocommerce-product-gallery { margin: 0; }
/* Replace WooCommerce's default zoom trigger glyph with a clean magnifier icon */
.labz-sp__gallery .woocommerce-product-gallery__trigger {
	position: absolute; top: 16px; right: 16px; z-index: 3; width: 44px; height: 44px; border-radius: 50%;
	background: #fff; box-shadow: 0 8px 24px -10px rgba(0,40,90,.5); font-size: 0; text-indent: -9999px; overflow: hidden;
}
.labz-sp__gallery .woocommerce-product-gallery__trigger::before {
	content: ""; position: absolute; inset: 0; background: no-repeat center/20px 20px
	url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003D87' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E");
	border: 0; border-radius: 0;
}
.labz-sp__gallery .woocommerce-product-gallery__image img { border-radius: 18px; }
.labz-sp__gallery .flex-control-thumbs { display: flex; gap: 12px; margin: 16px 0 0; padding: 0; list-style: none; }
.labz-sp__gallery .flex-control-thumbs li { width: 76px; }
.labz-sp__gallery .flex-control-thumbs img { border-radius: 12px; border: 1px solid rgba(0,61,135,.14); cursor: pointer; opacity: .7; transition: opacity .2s, border-color .2s; }
.labz-sp__gallery .flex-control-thumbs img.flex-active,
.labz-sp__gallery .flex-control-thumbs img:hover { opacity: 1; border-color: var(--navy); }

.labz-sp__title { font-family: var(--font-display); font-weight: 700; font-size: clamp(28px,3.4vw,44px); color: var(--ink-900); margin: 6px 0 6px; letter-spacing: -.01em; line-height: 1.08; }
.labz-sp__subtitle { font-family: var(--font-ui); font-size: 17px; color: var(--ink-700); margin: 0 0 14px; }
.labz-sp__rating { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; }
.labz-sp__rating .star-rating { color: #f5a623; }
.labz-sp__rating-txt { font-family: var(--font-ui); font-size: 14px; color: var(--ink-700); }
.labz-sp__price { font-family: var(--font-display); font-weight: 700; font-size: 34px; color: var(--navy); margin: 0 0 22px; }
.labz-sp__price del { opacity: .5; font-size: .7em; margin-right: 8px; }
.labz-sp__price ins { text-decoration: none; }

.labz-sp__minitrust { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 22px; padding: 20px 0; border-top: 1px solid rgba(0,61,135,.12); border-bottom: 1px solid rgba(0,61,135,.12); margin-bottom: 22px; }
.labz-sp__minitrust-item { display: flex; align-items: center; gap: 10px; font-family: var(--font-ui); font-size: 14px; color: var(--ink-900); }
.labz-sp__mtic { width: 30px; height: 30px; color: var(--navy); flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; }
.labz-sp__mtic svg { width: 22px; height: 22px; }
.labz-sp__pitch { font-family: var(--font-ui); font-size: 16px; line-height: 27px; color: var(--ink-700); margin: 0 0 24px; }
.labz-sp__pitch p { margin: 0 0 10px; }

/* Purchase form — left-aligned, no card/box wrapper (matches the approved reference). */
.labz-sp__form { background: transparent; border: 0; border-radius: 0; padding: 0; }
.labz-sp__form .variations { width: 100%; margin: 0 0 16px; border: 0; }
.labz-sp__form .variations td, .labz-sp__form .variations th { display: block; padding: 0; border: 0; text-align: left; }
.labz-sp__form .variations label { font-family: var(--font-ui); font-weight: 600; font-size: 14px; color: var(--ink-900); margin-bottom: 8px; display: block; text-align: left; }
.labz-sp__form select {
	width: 100%; font-family: var(--font-ui); font-size: 15px; color: var(--ink-900);
	padding: 13px 16px; border: 1px solid var(--stroke-card); border-radius: 12px; background: #fff; margin-bottom: 8px;
}
.woocommerce-variation-price { font-family: var(--font-display); font-weight: 700; font-size: 34px; color: var(--navy); margin: 4px 0 20px; }
.woocommerce-variation-price .amount { font-family: var(--font-display); font-weight: 700; }
.labz-sp__form .woocommerce-variation-add-to-cart {
	display: flex; flex-direction: row; align-items: center; gap: 14px; flex-wrap: wrap;
}
.labz-sp__form .quantity { display: inline-flex; align-items: center; border: 1px solid var(--stroke-card); border-radius: 12px; overflow: hidden; margin: 0; flex: 0 0 auto; }
.labz-sp__form .quantity input { border: 0; width: 56px; text-align: center; font-family: var(--font-ui); font-size: 16px; padding: 12px 0; }
.labz-sp__form .single_add_to_cart_button {
	flex: 1 1 auto; background: var(--grad) !important; color: #fff !important; border: 0; border-radius: var(--r-pill);
	font-family: var(--font-ui); font-size: 18px; padding: 16px 20px; cursor: pointer; transition: filter .18s ease; margin-bottom: 0;
}
.labz-sp__form .single_add_to_cart_button:hover { filter: brightness(1.12); }
.labz-sp__form .single_add_to_cart_button svg,
.labz-sp__buy .single_add_to_cart_button svg,
.labz-sp__form .single_add_to_cart_button img,
.labz-sp__buy .single_add_to_cart_button img { display: none !important; }
.labz-sp__shipnote { display: flex; gap: 24px; justify-content: flex-start; padding-top: 14px; border-top: 1px solid rgba(0,61,135,.1); margin-top: 20px; }
.labz-sp__shipnote span { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-ui); font-size: 13px; color: var(--ink-700); }
.labz-sp__shipnote svg { width: 18px; height: 18px; color: var(--navy); }

/* -- Feature strip -- */
.labz-sp__strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; background: var(--card); border-radius: 18px; padding: 26px 30px; margin: 40px 0; }
.labz-sp__strip-item { display: flex; gap: 12px; align-items: center; }
.labz-sp__strip-ic { width: 40px; height: 40px; color: var(--navy); flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; }
.labz-sp__strip-ic svg { width: 26px; height: 26px; }
.labz-sp__strip-tx { display: flex; flex-direction: column; }
.labz-sp__strip-tx strong { font-family: var(--font-ui); font-size: 14px; color: var(--ink-900); font-weight: 600; }
.labz-sp__strip-tx span { font-family: var(--font-ui); font-size: 12px; color: var(--ink-700); }

/* -- Tabs -- */
.labz-sp__tabs { display: flex; gap: 30px; border-bottom: 1px solid rgba(0,61,135,.14); flex-wrap: wrap; }
.labz-sp__tab {
	background: none; border: 0; padding: 0 0 14px; cursor: pointer; position: relative;
	font-family: var(--font-ui); font-size: 15px; color: var(--ink-700); transition: color .18s ease;
}
.labz-sp__tab::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--grad); opacity: 0; transition: opacity .18s ease; }
.labz-sp__tab:hover { color: var(--ink-900); }
.labz-sp__tab.is-active { color: var(--navy); font-weight: 600; }
.labz-sp__tab.is-active::after { opacity: 1; }
.labz-sp__panels { padding: 36px 0 0; }
.labz-sp__panel { display: none; }
.labz-sp__panel.is-active { display: block; animation: labz-fade .3s ease; }
@keyframes labz-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.labz-sp__h2 { font-family: var(--font-display); font-weight: 700; font-size: 26px; color: var(--ink-900); margin: 0 0 16px; letter-spacing: -.01em; }
.labz-sp__h3 { font-family: var(--font-ui); font-weight: 600; font-size: 18px; color: var(--ink-900); margin: 28px 0 14px; }
.labz-sp__panel p { font-family: var(--font-ui); font-size: 16px; line-height: 28px; color: var(--ink-700); margin: 0 0 14px; }
.labz-sp__seq { font-family: monospace; word-break: break-all; background: var(--card); padding: 14px 16px; border-radius: 12px; }

/* Description grid */
.labz-sp__desc-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 40px; align-items: start; }
.labz-sp__apps { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.labz-sp__apps li { display: flex; gap: 12px; align-items: flex-start; font-family: var(--font-ui); font-size: 15px; line-height: 24px; color: var(--ink-700); }
.labz-sp__check { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: rgba(0,61,135,.12); color: var(--navy); display: inline-flex; align-items: center; justify-content: center; margin-top: 1px; }
.labz-sp__check svg { width: 13px; height: 13px; }

.labz-sp__details { background: var(--card); border: 1px solid rgba(0,61,135,.12); border-radius: 18px; padding: 26px 28px; }
.labz-sp__details h3 { font-family: var(--font-ui); font-weight: 600; font-size: 18px; color: var(--ink-900); margin: 0 0 18px; }
.labz-sp__details dl { margin: 0; }
.labz-sp__details dl > div { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px solid rgba(0,61,135,.1); }
.labz-sp__details dt { font-family: var(--font-ui); font-size: 14px; color: var(--ink-900); font-weight: 600; }
.labz-sp__details dd { font-family: var(--font-ui); font-size: 14px; color: var(--ink-700); margin: 0; text-align: right; }
.labz-sp__details-note { display: flex; gap: 12px; margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(0,61,135,.12); }
.labz-sp__details-note-ic { color: var(--navy); flex: 0 0 auto; }
.labz-sp__details-note-ic svg { width: 26px; height: 26px; }
.labz-sp__details-note strong { font-family: var(--font-ui); font-size: 14px; color: var(--ink-900); display: block; margin-bottom: 4px; }
.labz-sp__details-note p { font-size: 13px; line-height: 21px; margin: 0; }

/* Help / FAQ block */
.labz-sp__help { display: grid; grid-template-columns: 1.5fr .8fr; gap: 40px; align-items: start; padding: 70px 0 10px; }
.labz-sp__needhelp { background: var(--card); border: 1px solid rgba(0,61,135,.12); border-radius: 18px; padding: 30px 28px; position: sticky; top: 100px; }
.labz-sp__needhelp-ic { width: 48px; height: 48px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(0,61,135,.12); color: var(--navy); margin-bottom: 16px; }
.labz-sp__needhelp-ic svg { width: 24px; height: 24px; }
.labz-sp__needhelp h3 { font-family: var(--font-ui); font-weight: 600; font-size: 18px; color: var(--ink-900); margin: 0 0 8px; }
.labz-sp__needhelp p { font-family: var(--font-ui); font-size: 14px; line-height: 23px; color: var(--ink-700); margin: 0 0 18px; }

@media (max-width: 980px) {
	.labz-sp__top { grid-template-columns: 1fr; gap: 30px; }
	.labz-sp__desc-grid { grid-template-columns: 1fr; }
	.labz-sp__help { grid-template-columns: 1fr; }
	.labz-sp__needhelp { position: static; }
}
@media (max-width: 640px) {
	.labz-sp__strip { grid-template-columns: 1fr 1fr; }
	.labz-sp__minitrust { grid-template-columns: 1fr; }
}

/* =========================================================================
   Unified accordion (authoritative, site-wide) — homepage gradient bar + number
   Two-class selector wins over any single-class .labz-faq-item / .labz-faqpage__item
   ========================================================================= */
.labz-faq-item.labz-faqpage__item { padding: 0; border: 1px solid var(--stroke-card); border-radius: 16px; overflow: hidden; box-shadow: none; background: #fff; transition: box-shadow .2s ease, border-color .2s ease; }
.labz-faq-item.labz-faqpage__item + .labz-faq-item.labz-faqpage__item { margin-top: 14px; }
.labz-faq-item.labz-faqpage__item.is-open { border-color: transparent; box-shadow: 0 20px 44px -30px rgba(0,40,90,.4); }
.labz-faq-item.labz-faqpage__item .labz-faq-item__q { display: flex; align-items: center; gap: 16px; padding: 20px 24px; width: 100%; border: 0; background: transparent; cursor: pointer; text-align: left; font-family: var(--font-ui); font-weight: 600; font-size: 17px; color: var(--ink-900); }
.labz-faq-item.labz-faqpage__item.is-open .labz-faq-item__q { background: var(--grad); color: #fff; }
.labz-faq-item.labz-faqpage__item .labz-faqpage__num { font-family: var(--font-display); font-size: 17px; color: var(--navy); opacity: .5; min-width: 26px; flex: 0 0 auto; }
.labz-faq-item.labz-faqpage__item.is-open .labz-faqpage__num { color: #fff; opacity: 1; }
.labz-faq-item.labz-faqpage__item .labz-faq-item__q > span:not(.labz-faqpage__num):not(.labz-faq-item__toggle) { flex: 1; }
.labz-faq-item.labz-faqpage__item .labz-faq-item__toggle { position: relative; width: 31px; height: 31px; border-radius: 50%; background: #eef3fb; flex: 0 0 auto; margin-left: 14px; transition: background .2s ease; }
.labz-faq-item.labz-faqpage__item .labz-faq-item__toggle::before,
.labz-faq-item.labz-faqpage__item .labz-faq-item__toggle::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); background: var(--navy); }
.labz-faq-item.labz-faqpage__item .labz-faq-item__toggle::before { width: 12px; height: 2px; }
.labz-faq-item.labz-faqpage__item .labz-faq-item__toggle::after { width: 2px; height: 12px; }
.labz-faq-item.labz-faqpage__item.is-open .labz-faq-item__toggle { background: #fff; }
.labz-faq-item.labz-faqpage__item.is-open .labz-faq-item__toggle::before { background: #000; }
.labz-faq-item.labz-faqpage__item.is-open .labz-faq-item__toggle::after { opacity: 0; }
.labz-faq-item.labz-faqpage__item .labz-faq-item__a { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.labz-faq-item.labz-faqpage__item .labz-faq-item__a[hidden] { display: block; }
.labz-faq-item.labz-faqpage__item .labz-faq-item__a p { padding: 18px 24px 22px; font-family: var(--font-ui); font-size: 16px; line-height: 1.6; color: var(--ink-700); margin: 0; }

/* Hide stray sidebar element (not part of the design) */
div#sidebar { display: none !important; }

/* =========================================================================
   Single product — variation swatches + quantity stepper
   ========================================================================= */
.labz-select-hidden { display: none !important; }
.labz-sp__buy .variations label,
.labz-sp__buy .variations th { font-family: var(--font-ui); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-700); }
.labz-sp__buy .variations td { padding-bottom: 6px; }
.labz-sp__buy table.variations, .labz-sp__buy .variations { margin: 6px 0 14px; }
.labz-swatches { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.labz-swatch {
	font-family: var(--font-ui); font-size: 15px; padding: 11px 20px; border-radius: var(--r-pill);
	border: 1.5px solid var(--stroke-card); background: #fff; color: var(--ink-900); cursor: pointer; transition: .16s ease;
}
.labz-swatch:hover { border-color: var(--navy); }
.labz-swatch.is-active { background: var(--navy); color: #fff; border-color: var(--navy); }
.labz-swatch.is-disabled, .labz-swatch:disabled { opacity: .35; cursor: not-allowed; text-decoration: line-through; }
.labz-sp__buy .reset_variations { display: inline-block; margin-left: 8px; font-family: var(--font-ui); font-size: 13px; color: var(--ink-700); }

.labz-qty { display: inline-flex; align-items: center; border: 1.5px solid var(--stroke-card); border-radius: var(--r-pill); overflow: hidden; background: #fff; }
.labz-qty input.qty {
	width: 52px; height: 50px; border: 0; text-align: center; font-family: var(--font-ui); font-size: 17px; color: var(--ink-900);
	-moz-appearance: textfield; background: transparent;
}
.labz-qty input.qty::-webkit-outer-spin-button, .labz-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.labz-qty-btn {
	width: 46px; height: 50px; border: 0; background: transparent; color: var(--navy); font-size: 22px; line-height: 1; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center; transition: background .15s ease;
}
.labz-qty-btn:hover { background: #eef3fb; }
.labz-sp__buy form.cart { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.labz-sp__buy form.cart .button, .labz-sp__buy .single_add_to_cart_button {
	height: 54px; border: 0; border-radius: var(--r-pill); background: var(--grad); color: #fff;
	font-family: var(--font-ui); font-size: 18px; padding: 0 34px; cursor: pointer; transition: filter .18s ease;
}
.labz-sp__buy form.cart .button:hover { filter: brightness(1.1); }

/* =========================================================================
   COA Library page
   ========================================================================= */
.labz-coalib__hero { position: relative; background: linear-gradient(180deg, #f7fafe, #fff); padding: 60px 0 44px; border-bottom: 1px solid #eef2f7; }
.labz-coalib__hero-inner { display: grid; grid-template-columns: 1.1fr .9fr; gap: 44px; align-items: center; }
.labz-coalib__title { font-family: var(--font-display); font-weight: 700; font-size: calc(48px * var(--h-scale)); line-height: 1.05; letter-spacing: -.01em; color: var(--ink-900); }
.labz-coalib__sub { font-family: var(--font-ui); font-size: 17px; line-height: 1.6; color: var(--ink-700); max-width: 520px; margin: 16px 0 22px; }
.labz-coalib__pills { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; max-width: 520px; }
.labz-coalib__pills span { display: flex; flex-direction: column; gap: 2px; font-family: var(--font-ui); font-size: 14px; color: var(--ink-900); background: #fff; border: 1px solid var(--stroke-card); border-radius: 12px; padding: 10px 14px; }
.labz-coalib__pills strong { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-700); font-weight: 600; }

.labz-coalib__recent { background: #0b1b34; color: #fff; border-radius: 22px; padding: 26px 28px; position: relative; overflow: hidden; }
.labz-coalib__recent::before { content: ""; position: absolute; width: 320px; height: 320px; border-radius: 50%; background: var(--grad); filter: blur(40px); opacity: .28; right: -100px; top: -120px; }
.labz-coalib__recent > * { position: relative; z-index: 1; }
.labz-coalib__recent-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.labz-coalib__recent-tag { font-family: var(--font-ui); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.labz-coalib__recent-badge { font-family: var(--font-ui); font-size: 12px; color: #6ee7a8; background: rgba(110,231,168,.14); padding: 5px 12px; border-radius: var(--r-pill); }
.labz-coalib__recent-name { font-family: var(--font-display); font-weight: 700; font-size: 22px; }
.labz-coalib__recent-meta { font-family: var(--font-ui); font-size: 13px; color: rgba(255,255,255,.6); margin-top: 4px; }
.labz-coalib__recent-purity { font-family: var(--font-display); font-weight: 700; font-size: 64px; line-height: 1; margin: 14px 0 20px; }
.labz-coalib__recent-purity small { font-size: 24px; opacity: .7; }
.labz-coalib__recent-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; border-top: 1px solid rgba(255,255,255,.12); padding-top: 16px; }
.labz-coalib__recent-grid div { display: flex; flex-direction: column; gap: 3px; font-family: var(--font-ui); font-size: 13px; }
.labz-coalib__recent-grid span { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.5); }

.labz-coalib__stats { padding: 30px 0; border-bottom: 1px solid #eef2f7; }
.labz-coalib__stats-inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.labz-coalib__stats-inner div { display: flex; flex-direction: column; gap: 4px; }
.labz-coalib__stats-inner span { font-family: var(--font-ui); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-700); }
.labz-coalib__stats-inner strong { font-family: var(--font-display); font-weight: 700; font-size: 34px; color: var(--ink-900); }
.labz-coalib__stat-green { color: #1a8a4a !important; }

.labz-coalib__archive { padding: 44px 0 80px; }
.labz-coalib__archive-title { font-family: var(--font-display); font-weight: 700; font-size: 28px; color: var(--ink-900); margin-bottom: 20px; }
.labz-coalib__archive-title span { font-family: var(--font-ui); font-weight: 400; font-size: 14px; color: var(--ink-700); margin-left: 8px; }
.labz-coalib__search { position: relative; margin-bottom: 22px; }
.labz-coalib__search::before { content: ""; position: absolute; left: 20px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4-4'/%3E%3C/svg%3E"); }
.labz-coalib__search input { width: 100%; height: 54px; border: 1px solid var(--stroke-card); border-radius: var(--r-pill); padding: 0 24px 0 50px; font-family: var(--font-ui); font-size: 16px; background: #fff; }
.labz-coalib__search input:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 4px rgba(0,61,135,.1); }

.labz-coalib__list { display: flex; flex-direction: column; gap: 14px; }
.labz-coalib__product { background: #fff; border: 1px solid var(--stroke-card); border-radius: 16px; overflow: hidden; }
.labz-coalib__product.is-open { border-color: transparent; box-shadow: 0 20px 44px -30px rgba(0,40,90,.4); }
.labz-coalib__product-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; border: 0; background: transparent; cursor: pointer; padding: 20px 24px; text-align: left; }
.labz-coalib__product-id h3 { font-family: var(--font-display); font-weight: 700; font-size: 20px; color: var(--ink-900); }
.labz-coalib__product-id span { font-family: var(--font-ui); font-size: 13px; color: var(--ink-700); }
.labz-coalib__product-toggle { position: relative; width: 30px; height: 30px; border-radius: 50%; background: #eef3fb; flex: 0 0 auto; }
.labz-coalib__product-toggle::before, .labz-coalib__product-toggle::after { content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); background: var(--navy); }
.labz-coalib__product-toggle::before { width: 12px; height: 2px; }
.labz-coalib__product-toggle::after { width: 2px; height: 12px; transition: opacity .2s; }
.labz-coalib__product.is-open .labz-coalib__product-toggle::after { opacity: 0; }
.labz-coalib__batches { padding: 0 24px 18px; }
.labz-coalib__batch-head, .labz-coalib__batch { display: grid; grid-template-columns: 1.4fr .8fr 1fr .9fr .9fr .8fr; gap: 12px; align-items: center; padding: 12px 0; }
.labz-coalib__batch-head { border-bottom: 1px solid #eef2f7; font-family: var(--font-ui); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-700); }
.labz-coalib__batch { border-bottom: 1px solid #f4f6fa; font-family: var(--font-ui); font-size: 14px; color: var(--ink-900); }
.labz-coalib__batch-lot { font-weight: 600; }
.labz-coalib__batch-lot em { font-style: normal; font-size: 11px; color: #fff; background: var(--ink-700); border-radius: 4px; padding: 1px 6px; margin-left: 4px; }
.labz-coalib__batch-purity { color: #1a8a4a; font-weight: 600; }
.labz-coalib__batch-status { color: #1a8a4a; font-size: 13px; }
.labz-coalib__batch-dl a { font-family: var(--font-ui); font-size: 13px; font-weight: 600; color: var(--navy); }
.labz-coalib__disclaimer { margin: 10px auto 60px; padding: 16px 22px; background: #fbf6f2; border: 1px solid #f0e2d6; border-radius: 14px; font-family: var(--font-ui); font-size: 13px; line-height: 1.6; color: #8a6d54; }
.labz-coalib__disclaimer strong { color: #6b4e34; }

@media (max-width: 900px) {
	.labz-coalib__hero-inner { grid-template-columns: 1fr; }
	.labz-coalib__stats-inner { grid-template-columns: 1fr 1fr; }
	.labz-coalib__batch-head { display: none; }
	.labz-coalib__batch { grid-template-columns: 1fr 1fr; gap: 6px 12px; }
}

/* =========================================================================
   Shop / product archive
   ========================================================================= */
.labz-shop__hero { background: linear-gradient(180deg, #f7fafe, #fff); border-bottom: 1px solid #eef2f7; padding: 54px 0 40px; }
.labz-shop__title { font-family: var(--font-display); font-weight: 700; font-size: calc(46px * var(--h-scale)); line-height: 1.08; color: var(--ink-900); letter-spacing: -.01em; }
.labz-shop__sub { font-family: var(--font-ui); font-size: 17px; line-height: 1.6; color: var(--ink-700); max-width: 640px; margin-top: 14px; }
.labz-shop__body { display: grid; grid-template-columns: 260px 1fr; gap: 44px; align-items: start; padding: 44px var(--gutter) 90px; }
/* Evercore: no category/stock sidebar — shop is a single full-width column. */
.labz-shop__body--no-sidebar { grid-template-columns: 1fr; }
.labz-shop__body--no-sidebar .labz-shop__filters-toggle { display: none !important; }

.labz-shop__filters { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 26px; }
.labz-shop__filter-group h3 { font-family: var(--font-ui); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-700); margin-bottom: 12px; }
.labz-shop__cats { list-style: none; display: flex; flex-direction: column; gap: 2px; }
.labz-shop__cat { width: 100%; text-align: left; border: 0; background: transparent; cursor: pointer; font-family: var(--font-ui); font-size: 15px; color: var(--ink-900); padding: 10px 14px; border-radius: 10px; display: flex; justify-content: space-between; align-items: center; transition: .15s ease; }
.labz-shop__cat span { font-size: 12px; color: var(--ink-700); }
.labz-shop__cat:hover { background: #eef3fb; color: var(--navy); }
.labz-shop__cat.is-active { background: var(--navy); color: #fff; }
.labz-shop__cat.is-active span { color: rgba(255,255,255,.7); }
.labz-shop__check { display: flex; align-items: center; gap: 10px; font-family: var(--font-ui); font-size: 15px; color: var(--ink-900); padding: 7px 0; cursor: pointer; }
.labz-shop__check input { accent-color: var(--navy); }

.labz-shop__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; padding-bottom: 16px; border-bottom: 1px solid #eef2f7; }
.labz-shop__count { font-family: var(--font-ui); font-size: 14px; color: var(--ink-700); }
.labz-shop__sort { position: relative; display: inline-flex; align-items: center; }
.labz-shop__sort-btn { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--stroke-card); background: #fff; color: var(--ink-900); border-radius: var(--r-pill); padding: 10px 16px; font-family: var(--font-ui); font-size: 14px; cursor: pointer; }
.labz-shop__sort-btn:hover { border-color: var(--navy); }
.labz-shop__sort-caret { transition: transform .18s ease; }
.labz-shop__sort.is-open .labz-shop__sort-caret, [data-shop-sortwrap].is-open .labz-shop__sort-caret { transform: rotate(180deg); }
.labz-shop__sortmenu { position: absolute; right: 0; top: calc(100% + 8px); z-index: 30; min-width: 210px; margin: 0; padding: 6px; list-style: none; background: #fff; border: 1px solid var(--stroke-card); border-radius: 14px; box-shadow: 0 24px 50px -24px rgba(0,40,90,.5); display: none; }
.labz-shop__sort.is-open .labz-shop__sortmenu, [data-shop-sortwrap].is-open .labz-shop__sortmenu { display: block; }
.labz-shop__sortmenu li { margin: 0; }
.labz-shop__sortmenu button { width: 100%; text-align: left; border: 0; background: transparent; cursor: pointer; font-family: var(--font-ui); font-size: 14px; color: var(--ink-900); padding: 11px 14px; border-radius: 10px; }
.labz-shop__sortmenu button:hover { background: #eef3fb; color: var(--navy); }
.labz-shop__sortmenu button.is-active { background: var(--navy); color: #fff; }

.labz-shop__results { position: relative; transition: opacity .2s ease; }
.labz-shop__pagination { margin-top: 30px; }
.labz-shop__pager { display: flex; gap: 8px; flex-wrap: wrap; }
.labz-shop__page { min-width: 42px; height: 42px; border: 1px solid var(--stroke-card); background: #fff; border-radius: 12px; font-family: var(--font-ui); font-size: 15px; color: var(--ink-900); cursor: pointer; transition: .15s ease; }
.labz-shop__page:hover { border-color: var(--navy); color: var(--navy); }
.labz-shop__page.is-active { background: var(--navy); color: #fff; border-color: var(--navy); }
.labz-shop__loading { display: flex; justify-content: center; padding: 24px; }
.labz-spinner { width: 26px; height: 26px; border: 3px solid #dbe6f5; border-top-color: var(--navy); border-radius: 50%; animation: labz-spin .8s linear infinite; }
@keyframes labz-spin { to { transform: rotate(360deg); } }

@media (max-width: 900px) {
	.labz-shop__body { grid-template-columns: 1fr; gap: 24px; }
	.labz-shop__filters { position: static; flex-direction: row; flex-wrap: wrap; gap: 20px 40px; }
}

/* =========================================================================
   Batch fixes — global spacing, related products, off-canvas, search popup
   ========================================================================= */
/* Remove default browser list indentation site-wide (theme lists are styled) */
ul { padding-left: 0; }
.labz-legal__content ul, .labz-legal__content ol { padding-left: 22px; } /* keep readable indent in legal copy */
.labz-noscroll { overflow: hidden; }

/* Related products / any WooCommerce loop → labz card grid */
.woocommerce .related.products, .woocommerce .upsells.products { margin-top: 70px; }
.woocommerce .related.products > h2, .woocommerce .up-sells > h2 {
	font-family: var(--font-display); font-weight: 700; font-size: 30px; color: var(--ink-900); margin-bottom: 26px; letter-spacing: -.01em;
}
.woocommerce ul.products {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; margin: 0; padding: 0; list-style: none;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; display: none; }
.woocommerce ul.products li.product, .woocommerce ul.products li.labz-card-li {
	width: auto !important; margin: 0 !important; padding: 0 !important; float: none !important; clear: none !important;
}
.woocommerce ul.products li.product::before { content: none; }
@media (max-width: 1000px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .woocommerce ul.products { grid-template-columns: 1fr; } }

/* Single product: more breathing room above related section */
.labz-single .related.products, .labz-sp .related.products { margin-top: 80px; padding-top: 20px; border-top: 1px solid #eef2f7; }

/* Shop off-canvas filters (mobile) */
.labz-shop__filters-toggle { display: none; align-items: center; gap: 8px; font-family: var(--font-ui); font-size: 14px; color: var(--navy); background: #fff; border: 1px solid var(--stroke-card); border-radius: var(--r-pill); padding: 9px 16px; cursor: pointer; }
.labz-shop__filters-close { display: none; }
@media (max-width: 900px) {
	.labz-shop__filters-toggle { display: inline-flex; }
	.labz-shop__filters {
		position: fixed; top: 0; left: 0; bottom: 0; width: 84%; max-width: 340px; z-index: 1200; background: #fff;
		transform: translateX(-100%); transition: transform .28s ease; box-shadow: 0 0 60px rgba(0,0,0,.25);
		padding: 24px 22px; overflow-y: auto; flex-direction: column;
	}
	.labz-shop.filters-open .labz-shop__filters { transform: translateX(0); }
	.labz-shop.filters-open::before { content: ""; position: fixed; inset: 0; background: rgba(10,20,40,.5); z-index: 1100; }
	.labz-shop__filters-close { display: block; position: absolute; top: 12px; right: 14px; border: 0; background: transparent; font-size: 28px; line-height: 1; color: var(--ink-700); cursor: pointer; }
}

/* COA disclaimer — inner content wrapper */
.labz-coalib__disclaimer { padding-left: var(--gutter); padding-right: var(--gutter); background: transparent; border: 0; }
.labz-coalib__disclaimer-inner {
	background: #fbf6f2; border: 1px solid #f0e2d6; border-radius: 14px; padding: 16px 22px;
	font-family: var(--font-ui); font-size: 13px; line-height: 1.6; color: #8a6d54;
}
.labz-coalib__disclaimer-inner strong { color: #6b4e34; }

/* Single product COA list (product-specific) */
.labz-sp__coa-list { margin: 18px 0 20px; border: 1px solid var(--stroke-card); border-radius: 14px; overflow: hidden; }
.labz-sp__coa-head, .labz-sp__coa-row { display: grid; grid-template-columns: 1.4fr .8fr 1fr .9fr .9fr; gap: 12px; align-items: center; padding: 12px 18px; }
.labz-sp__coa-head { background: #f7fafe; font-family: var(--font-ui); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-700); }
.labz-sp__coa-row { border-top: 1px solid #eef2f7; font-family: var(--font-ui); font-size: 14px; color: var(--ink-900); }
.labz-sp__coa-lot { font-weight: 600; }
.labz-sp__coa-lot em { font-style: normal; font-size: 11px; color: #fff; background: var(--ink-700); border-radius: 4px; padding: 1px 6px; margin-left: 4px; }
.labz-sp__coa-purity { color: #1a8a4a; font-weight: 600; }
.labz-sp__coa-dl { font-family: var(--font-ui); font-size: 13px; font-weight: 600; color: var(--navy); }
.labz-sp__coa-all { margin-top: 6px; display: inline-block; }
@media (max-width: 700px) { .labz-sp__coa-head { display: none; } .labz-sp__coa-row { grid-template-columns: 1fr 1fr; gap: 6px 12px; } }

/* Header search popup */
.labz-searchpop { position: fixed; inset: 0; z-index: 1300; display: flex; align-items: flex-start; justify-content: center; }
.labz-searchpop__overlay { position: absolute; inset: 0; background: rgba(8,18,36,.55); backdrop-filter: blur(2px); }
.labz-searchpop__box { position: relative; z-index: 1; width: 100%; max-width: 640px; margin-top: 12vh; background: #fff; border-radius: 20px; box-shadow: 0 40px 90px -30px rgba(0,20,60,.6); overflow: hidden; }
.labz-searchpop__form { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid #eef2f7; }
.labz-searchpop__icon { color: var(--ink-700); display: inline-flex; }
.labz-searchpop__input { flex: 1; border: 0; font-family: var(--font-ui); font-size: 18px; color: var(--ink-900); background: transparent; }
.labz-searchpop__input:focus { outline: none; }
.labz-searchpop__x { border: 0; background: transparent; font-size: 26px; line-height: 1; color: var(--ink-700); cursor: pointer; }
.labz-searchpop__results { max-height: 60vh; overflow-y: auto; }
.labz-searchpop__result { display: flex; align-items: center; gap: 14px; padding: 12px 18px; border-bottom: 1px solid #f4f6fa; transition: background .12s ease; }
.labz-searchpop__result:hover { background: #f7fafe; }
.labz-searchpop__result img { width: 46px; height: 46px; object-fit: contain; border-radius: 8px; background: #f2f6fc; flex: 0 0 auto; }
.labz-searchpop__result-t { flex: 1; font-family: var(--font-ui); font-size: 15px; color: var(--ink-900); }
.labz-searchpop__result-p { font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--navy); }
.labz-searchpop__none { padding: 22px 18px; font-family: var(--font-ui); font-size: 15px; color: var(--ink-700); }

/* Generic page hero (Cart / Checkout / Account / etc.) */
.labz-pagehero { background: linear-gradient(180deg, #f7fafe, #fff); border-bottom: 1px solid #eef2f7; padding: 48px 0 36px; margin-bottom: 40px; }
.labz-pagehero__title { font-family: var(--font-display); font-weight: 700; font-size: calc(42px * var(--h-scale)); line-height: 1.08; color: var(--ink-900); letter-spacing: -.01em; }
.labz-pagehero__sub { font-family: var(--font-ui); font-size: 16px; line-height: 1.6; color: var(--ink-700); max-width: 600px; margin-top: 12px; }

/* =========================================================================
   My Account — Evercore Labs LLC layout
   ========================================================================= */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 260px 1fr; gap: 30px; align-items: start; padding-bottom: 80px; }
.woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after { content: none; display: none; }
.labz-account__nav { background: #fff; border: 1px solid var(--stroke-card); border-radius: 18px; padding: 14px; position: sticky; top: 100px; }
.labz-account__nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.labz-account__nav li a { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; font-family: var(--font-ui); font-size: 15px; color: var(--ink-900); transition: .15s ease; }
.labz-account__nav li a:hover { background: #eef3fb; color: var(--navy); }
.labz-account__nav li.is-active a, .labz-account__nav li.woocommerce-MyAccount-navigation-link--dashboard.is-active a { background: #eef3fb; color: var(--navy); box-shadow: inset 3px 0 0 var(--navy); }
.labz-account__nav-ic { width: 20px; height: 20px; color: var(--navy); flex: 0 0 auto; display: inline-flex; }
.labz-account__nav-ic svg { width: 20px; height: 20px; }
.woocommerce-account .woocommerce-MyAccount-content { background: #fff; border: 1px solid var(--stroke-card); border-radius: 18px; padding: 34px 36px; min-height: 400px; }

.labz-account__welcome { display: flex; gap: 18px; align-items: flex-start; margin-bottom: 34px; }
.labz-account__avatar { width: 56px; height: 56px; border-radius: 50%; background: #eef3fb; color: var(--navy); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.labz-account__avatar svg { width: 28px; height: 28px; }
.labz-account__hello { font-family: var(--font-display); font-weight: 700; font-size: 24px; color: var(--ink-900); margin-bottom: 8px; }
.labz-account__intro { font-family: var(--font-ui); font-size: 15px; line-height: 1.6; color: var(--ink-700); max-width: 620px; }
.labz-account__intro a { color: var(--navy); text-decoration: underline; text-underline-offset: 2px; }
.labz-account__ql-title { font-family: var(--font-display); font-weight: 700; font-size: 19px; color: var(--ink-900); margin: 8px 0 16px; }
.labz-account__quicklinks { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.labz-account__ql { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 22px 12px; border: 1px solid var(--stroke-card); border-radius: 16px; transition: .18s ease; }
.labz-account__ql:hover { border-color: var(--navy); transform: translateY(-3px); box-shadow: 0 20px 40px -28px rgba(0,40,90,.5); }
.labz-account__ql-ic { width: 48px; height: 48px; border-radius: 12px; background: #eef3fb; color: var(--navy); display: inline-flex; align-items: center; justify-content: center; }
.labz-account__ql-ic svg { width: 24px; height: 24px; }
.labz-account__ql strong { font-family: var(--font-ui); font-size: 15px; color: var(--ink-900); }
.labz-account__ql-sub { font-family: var(--font-ui); font-size: 12px; color: var(--ink-700); }

@media (max-width: 900px) {
	.woocommerce-account .woocommerce { grid-template-columns: 1fr; }
	.labz-account__nav { position: static; }
	.labz-account__nav ul { flex-direction: row; flex-wrap: wrap; }
	.labz-account__quicklinks { grid-template-columns: repeat(2, 1fr); }
}

/* =========================================================================
   Fix batch — search popup, single product, account
   ========================================================================= */
/* Popup must stay closed until toggled (class display was overriding [hidden]) */
.labz-searchpop[hidden] { display: none !important; }
/* Kill the native search-field clear button (leaves only our × ) */
.labz-searchpop__input::-webkit-search-cancel-button,
.labz-searchpop__input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }
.labz-searchpop__hint { padding: 20px 18px; font-family: var(--font-ui); font-size: 14px; color: var(--ink-700); }

/* Single product: left-aligned quantity + swatches, no reset link */
.labz-sp__form .quantity, .labz-sp__buy .quantity { display: flex; justify-content: flex-start; }
.labz-swatches { justify-content: flex-start; }
.labz-sp__buy a.reset_variations, a.reset_variations { display: none !important; }
.labz-sp__buy form.cart { justify-content: flex-start; }

/* .labz-single: constrain to container width + horizontal padding (not max-width:none) */
.labz-single { max-width: var(--content); margin-left: auto; margin-right: auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.labz-single__content .woocommerce { display: flex; }

/* My Account: tighten hello spacing */
h2.labz-account__hello { margin-top: 0; }

/* =========================================================================
   Auth card + site gate
   ========================================================================= */
.labz-authpage { padding: 20px var(--gutter) 80px; display: flex; justify-content: center; }
.labz-auth { width: 100%; max-width: 480px; background: #fff; border: 1px solid var(--stroke-card); border-radius: 22px; box-shadow: 0 40px 90px -50px rgba(0,20,60,.5); padding: 26px; }
.labz-auth__tabs { display: flex; background: #f1f5fb; border-radius: var(--r-pill); padding: 5px; margin-bottom: 22px; }
.labz-auth__tab { flex: 1; border: 0; background: transparent; cursor: pointer; font-family: var(--font-ui); font-size: 15px; color: var(--ink-700); padding: 11px 10px; border-radius: var(--r-pill); transition: .18s ease; }
.labz-auth__tab.is-active { background: #fff; color: var(--navy); box-shadow: 0 4px 12px -6px rgba(0,40,90,.4); }
.labz-auth__notices { margin-bottom: 16px; }
.labz-auth__form { display: none; flex-direction: column; gap: 16px; }
.labz-auth__form.is-active { display: flex; }
.labz-auth__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.labz-auth__row--between { display: flex; align-items: center; justify-content: space-between; }
.labz-auth__field { display: flex; flex-direction: column; gap: 6px; }
.labz-auth__field label { font-family: var(--font-ui); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-700); }
.labz-auth__field input, .labz-auth__field select, .labz-auth__dob select {
	font-family: var(--font-ui); font-size: 15px; padding: 13px 14px; border: 1px solid var(--stroke-card); border-radius: 12px; background: #fff; color: var(--ink-900); width: 100%;
}
.labz-auth__field input:focus, .labz-auth__field select:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 4px rgba(0,61,135,.1); }
.labz-auth__pw { position: relative; }
.labz-auth__pw input { padding-right: 44px; }
.labz-auth__pw-toggle { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: var(--ink-700); cursor: pointer; padding: 6px; }
.labz-auth__pw-toggle svg { width: 20px; height: 20px; }
.labz-auth__pw-toggle.is-on { color: var(--navy); }
.labz-auth__dob { display: grid; grid-template-columns: 1.2fr .8fr 1fr; gap: 10px; }
.labz-auth__agree { display: flex; gap: 10px; align-items: flex-start; font-family: var(--font-ui); font-size: 13px; line-height: 1.5; color: var(--ink-700); background: #f7fafe; border: 1px solid var(--stroke-card); border-radius: 12px; padding: 14px; }
.labz-auth__agree input { margin-top: 2px; accent-color: var(--navy); flex: 0 0 auto; }
.labz-auth__agree a { color: var(--navy); text-decoration: underline; }
.labz-auth__submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 52px; border: 0; cursor: pointer;
	border-radius: var(--r-pill); background: var(--grad); color: #fff; font-family: var(--font-ui); font-size: 17px; transition: filter .18s ease;
}
.labz-auth__submit:hover { filter: brightness(1.08); }
.labz-auth__submit svg { width: 20px; height: 20px; }
.labz-auth__foot { text-align: center; font-family: var(--font-ui); font-size: 14px; color: var(--ink-700); }
.labz-auth__link { border: 0; background: transparent; color: var(--navy); font-family: var(--font-ui); font-size: 14px; cursor: pointer; text-decoration: underline; }
.labz-auth__legal { text-align: center; font-family: var(--font-ui); font-size: 12px; color: #9aa0a8; }
.labz-auth__remember { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-ui); font-size: 14px; color: var(--ink-700); }
.labz-auth__remember input { accent-color: var(--navy); }
.labz-auth__lost { font-family: var(--font-ui); font-size: 14px; color: var(--navy); }

/* Gate */
.labz-gate-body { margin: 0; }
.labz-gate { position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 30px 18px; overflow: hidden; }
.labz-gate__bg { position: absolute; inset: 0; background: linear-gradient(135deg, #eef3fb 0%, #f4f0fb 55%, #f6eefc 100%); }
.labz-gate__bg::after { content: ""; position: absolute; inset: 0; opacity: .5; background-image: radial-gradient(circle at 1px 1px, rgba(0,61,135,.06) 1px, transparent 0); background-size: 24px 24px; }
.labz-gate > * { position: relative; z-index: 1; }
.labz-gate__logo { height: 72px; width: auto; margin: 0 auto 22px; display: block; }
.labz-gate__age-card { background: #fff; border-radius: 24px; padding: 40px 34px; max-width: 460px; text-align: center; box-shadow: 0 50px 100px -40px rgba(0,0,0,.6); }
.labz-gate__age-card h1 { font-family: var(--font-display); font-weight: 700; font-size: 30px; color: var(--ink-900); margin-bottom: 12px; }
.labz-gate__age-card p { font-family: var(--font-ui); font-size: 15px; line-height: 1.6; color: var(--ink-700); margin-bottom: 20px; }
.labz-gate__age-actions { display: flex; flex-direction: column; gap: 12px; margin-bottom: 18px; }
.labz-gate__leave { font-family: var(--font-ui); font-size: 14px; color: var(--ink-700); }
.labz-gate__auth-inner { text-align: center; }
.labz-gate__auth-lead { font-family: var(--font-ui); font-size: 15px; color: var(--ink-700); margin-bottom: 20px; }
.labz-gate__auth .labz-auth { text-align: left; margin: 0 auto; }

@media (max-width: 520px) {
	.labz-auth__row, .labz-auth__dob { grid-template-columns: 1fr; }
	.labz-auth { padding: 20px; }
}

/* =========================================================================
   WooCommerce polish — buttons, messages, variation price, lost password
   ========================================================================= */
:root :where(.wp-element-button, .wp-block-button__link) {
	background-color: var(--navy);
	border-radius: 100px;
}
.woocommerce-variation-price { text-align: left; }

/* Success / info / error notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	font-family: var(--font-ui); font-size: 15px; line-height: 1.5; border: 0; border-radius: 14px;
	padding: 16px 20px 16px 52px; position: relative; list-style: none; box-shadow: 0 14px 34px -24px rgba(0,40,90,.4);
}
.woocommerce-message { background: #eaf6ef; color: #1a6b3f; border-left: 4px solid #2fae6b; }
.woocommerce-info { background: #eaf1fb; color: var(--navy); border-left: 4px solid var(--blue); }
.woocommerce-error { background: #fdecec; color: #a12626; border-left: 4px solid #e05252; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before {
	position: absolute; left: 20px; top: 16px; font-family: inherit; font-weight: 700; content: "";
}
.woocommerce-message::before { content: "✓"; color: #2fae6b; }
.woocommerce-info::before { content: "i"; color: var(--blue); }
.woocommerce-error::before { content: "!"; color: #e05252; }
.woocommerce-message .button, .woocommerce-info .button {
	background: var(--grad); color: #fff; border-radius: var(--r-pill); padding: 8px 18px; font-size: 13px; float: right; margin-top: -4px;
}

/* Lost password page → match auth card */
.woocommerce-account .woocommerce-ResetPassword,
.woocommerce-lost-password .woocommerce-ResetPassword {
	max-width: 460px; margin: 0 auto; background: #fff; border: 1px solid var(--stroke-card); border-radius: 22px;
	box-shadow: 0 40px 90px -50px rgba(0,20,60,.5); padding: 30px 28px;
}
.woocommerce-ResetPassword .woocommerce-form-row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.woocommerce-ResetPassword label { font-family: var(--font-ui); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-700); }
.woocommerce-ResetPassword input.input-text {
	font-family: var(--font-ui); font-size: 15px; padding: 13px 14px; border: 1px solid var(--stroke-card); border-radius: 12px; width: 100%;
}
.woocommerce-ResetPassword input.input-text:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 4px rgba(0,61,135,.1); }
.woocommerce-ResetPassword .woocommerce-Button, .woocommerce-ResetPassword button[type="submit"] {
	width: 100%; height: 52px; border: 0; border-radius: var(--r-pill); background: var(--grad); color: #fff;
	font-family: var(--font-ui); font-size: 17px; cursor: pointer;
}
.woocommerce-ResetPassword p:first-child { font-family: var(--font-ui); font-size: 14px; color: var(--ink-700); margin-bottom: 18px; text-align: center; }

/* =========================================================================
   Responsive layer — mobile / tablet polish (site-wide)
   ========================================================================= */
img, svg, video { max-width: 100%; height: auto; }
html, body { max-width: 100%; }
.labz-main { overflow-x: clip; }
.labz-container { width: 100%; }

/* Tablets */
@media (max-width: 1024px) {
	.labz-trust__inner { gap: 22px; min-height: 0; padding: 26px 0; flex-wrap: wrap; }
	.labz-trust__item { gap: 14px; }
	.labz-shop__body, .labz-legal__body, .labz-faqpage__body { gap: 30px; }
	.labz-coalib__hero-inner { gap: 30px; }
	.labz-account__quicklinks { grid-template-columns: repeat(3, 1fr); }
}

/* Phones */
@media (max-width: 768px) {
	:root { --base-size: 15px; --gutter: 18px; }
	.labz-h1 { font-size: calc(30px * var(--h-scale)); }
	.labz-h1--alt { font-size: calc(32px * var(--h-scale)); }

	/* Section vertical rhythm — trim big paddings */
	.labz-faq { padding: 30px 0 60px; }
	.labz-coa { margin: 40px 0; padding: 46px 0; }
	.labz-catwhy { margin-top: 50px; }
	.labz-catwhy__inner { padding: 46px 0; }
	.labz-catprod__head { padding-top: 40px; }
	.labz-catfaq { padding: 50px var(--gutter) 60px; }
	.labz-page { padding: 40px 0 60px; }

	/* Header */
	.labz-header__inner { min-height: 72px; gap: 14px; }
	.labz-logo img, .labz-logo-link img { height: auto; width: 100px; max-height: none; }
	.labz-header__actions { gap: 8px; }

	/* Trust bar */
	.labz-trust__inner { flex-direction: column; gap: 14px; padding: 22px var(--gutter); }
	.labz-trust__text h3 { font-size: 20px; }

	/* Product single */
	.labz-single { padding-left: var(--gutter); padding-right: var(--gutter); }
	.labz-single__title, .labz-sp__title { font-size: 26px; }
	.labz-sp__strip { grid-template-columns: 1fr; padding: 20px; gap: 14px; }
	.labz-sp__tabs { gap: 16px; }
	.labz-sp__tab { font-size: 15px; }
	.labz-sp__h2 { font-size: 22px; }

	/* COA library */
	.labz-coalib__hero { padding: 40px 0 32px; }
	.labz-coalib__title { font-size: 34px; }
	.labz-coalib__recent-purity { font-size: 48px; }
	.labz-coalib__archive-title { font-size: 22px; }
	.labz-coalib__product-head { padding: 16px; }

	/* Shop */
	.labz-shop__hero { padding: 40px 0 30px; }
	.labz-shop__title { font-size: 32px; }
	.labz-shop__body { padding: 30px var(--gutter) 60px; }

	/* Account */
	.woocommerce-account .woocommerce-MyAccount-content { padding: 24px 20px; }
	.labz-account__quicklinks { grid-template-columns: repeat(2, 1fr); }

	/* Pagehero / auth */
	.labz-pagehero { padding: 36px 0 28px; }
	.labz-pagehero__title { font-size: 30px; }

	/* Footer */
	.labz-footer__grid { grid-template-columns: 1fr 1fr; gap: 26px; }

	/* Cards / grids: comfortable 2-up then 1-up handled below */
	.labz-grid--4, .labz-grid--3 { grid-template-columns: repeat(2, 1fr); gap: 18px; }
	.woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 18px; }
}

/* Small phones */
@media (max-width: 480px) {
	:root { --base-size: 14px; }
	.labz-h1 { font-size: calc(26px * var(--h-scale)); }
	.labz-hero__logotype { font-size: 46px; }
	.labz-grid--4, .labz-grid--3, .woocommerce ul.products { grid-template-columns: 1fr; }
	.labz-footer__grid { grid-template-columns: 1fr; }
	.labz-card__title { font-size: 20px; }
	.labz-card__cta { height: 48px; font-size: 16px; }
	.labz-coalib__title { font-size: 28px; }
	.labz-coalib__stats-inner { grid-template-columns: 1fr 1fr; }
	.labz-account__quicklinks { grid-template-columns: 1fr 1fr; }
	.labz-searchpop__box { margin-top: 8vh; border-radius: 16px; }
	.labz-sp__coa-row, .labz-coalib__batch { grid-template-columns: 1fr 1fr; }
	.labz-auth { padding: 18px; }
	.labz-pagehero__title { font-size: 26px; }
}

/* =========================================================================
   Bulk pricing boxes (single product)
   ========================================================================= */
.labz-bulk { border: 1px solid #d7e9dc; background: #f4faf6; border-radius: 16px; padding: 16px 18px; margin-bottom: 18px; }
.labz-bulk__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.labz-bulk__title { font-family: var(--font-ui); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #2f7a4e; font-weight: 600; }
.labz-bulk__auto { font-family: var(--font-ui); font-size: 12px; color: #6b8a76; }
.labz-bulk__tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.labz-bulk__tier { position: relative; border: 1.5px solid #d7e9dc; background: #fff; border-radius: 12px; padding: 14px 14px 12px; transition: .18s ease; }
.labz-bulk__tier.is-active { border-color: #2fae6b; background: #eafaf0; box-shadow: 0 12px 26px -18px rgba(47,174,107,.6); }
.labz-bulk__badge { display: inline-block; font-family: var(--font-ui); font-size: 12px; font-weight: 600; color: #fff; background: #8bc9a3; border-radius: 6px; padding: 3px 9px; margin-bottom: 8px; }
.labz-bulk__tier.is-active .labz-bulk__badge { background: #2fae6b; }
.labz-bulk__buy { display: block; font-family: var(--font-ui); font-size: 15px; color: var(--ink-900); }
.labz-bulk__each { display: block; font-family: var(--font-ui); font-size: 13px; color: #6b8a76; margin-top: 2px; }
.labz-bulk__tier.is-active .labz-bulk__each { color: #2f7a4e; }
@media (max-width: 560px) { .labz-bulk__tiers { grid-template-columns: 1fr; } }

/* =========================================================================
   Promo popup
   ========================================================================= */
.labz-promo { position: fixed; inset: 0; z-index: 1400; display: flex; align-items: center; justify-content: center; padding: 20px; opacity: 0; transition: opacity .25s ease; }
.labz-promo.is-open { opacity: 1; }
.labz-promo[hidden] { display: none !important; }
.labz-promo__overlay { position: absolute; inset: 0; background: rgba(8,18,36,.6); backdrop-filter: blur(2px); }
.labz-promo__card { position: relative; z-index: 1; width: 100%; max-width: 440px; background: #fff; border-radius: 22px; overflow: hidden; padding: 34px 32px 30px; text-align: center; box-shadow: 0 50px 100px -40px rgba(0,20,60,.6); transform: translateY(10px) scale(.98); transition: transform .25s ease; }
.labz-promo.is-open .labz-promo__card { transform: translateY(0) scale(1); }
.labz-promo__card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 6px; background: var(--grad); }
.labz-promo__x { position: absolute; top: 12px; right: 16px; border: 0; background: transparent; font-size: 28px; line-height: 1; color: var(--ink-700); cursor: pointer; }
.labz-promo__tag { display: inline-block; font-family: var(--font-ui); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--navy); background: #eaf1fb; padding: 6px 14px; border-radius: var(--r-pill); margin-bottom: 14px; }
.labz-promo__title { font-family: var(--font-display); font-weight: 700; font-size: 28px; color: var(--ink-900); line-height: 1.15; margin-bottom: 10px; }
.labz-promo__desc { font-family: var(--font-ui); font-size: 15px; line-height: 1.6; color: var(--ink-700); margin-bottom: 18px; }
.labz-promo__code { display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 2px dashed var(--navy); border-radius: 12px; padding: 10px 10px 10px 18px; margin-bottom: 14px; }
.labz-promo__code span { font-family: var(--font-display); font-weight: 700; font-size: 20px; letter-spacing: .06em; color: var(--navy); }
.labz-promo__copy { border: 0; background: var(--grad); color: #fff; font-family: var(--font-ui); font-size: 13px; padding: 9px 16px; border-radius: 8px; cursor: pointer; }
.labz-promo__ship { font-family: var(--font-ui); font-size: 14px; color: #1a8a4a; margin-bottom: 20px; }
.labz-promo__btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; height: 52px; border-radius: var(--r-pill); background: var(--grad); color: #fff; font-family: var(--font-ui); font-size: 17px; }
.labz-promo__btn:hover { filter: brightness(1.08); }

/* =========================================================================
   Grid overrides — research library & shop = 3 per row (category/related = 4)
   ========================================================================= */
.labz-library__grid, .labz-shop__grid { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .labz-library__grid, .labz-shop__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .labz-library__grid, .labz-shop__grid { grid-template-columns: 1fr; } }

/* =========================================================================
   Batch 2 — announce marquee, shop toolbar, single post, account, responsive
   ========================================================================= */

/* Announcement bar: static on desktop, marquee on mobile */
.labz-announce__track { display: inline-flex; align-items: center; gap: 14px; }
.labz-announce__inner .labz-announce__track:nth-child(2) { display: none; }
@media (max-width: 768px) {
	.labz-announce { overflow: hidden; }
	.labz-announce__inner { display: flex; flex-wrap: nowrap; white-space: nowrap; padding-inline: 0; width: max-content; }
	.labz-announce__inner .labz-announce__track { animation: labz-marquee 18s linear infinite; }
	.labz-announce__inner .labz-announce__track:nth-child(2) { display: inline-flex; }
	.labz-announce span, .labz-announce i { font-size: 13px; }
}
@keyframes labz-marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }

/* Shop sort button (popover on mobile) */
/* Cart/checkout/account woo wrapper keeps side padding */
.labz-container.labz-shop { padding-left: var(--gutter); padding-right: var(--gutter); }

/* Single post / prose */
.labz-post__hero { background: linear-gradient(180deg, #f7fafe, #fff); border-bottom: 1px solid #eef2f7; padding: 46px 0 34px; }
.labz-post__back { font-family: var(--font-ui); font-size: 14px; color: var(--navy); display: inline-block; margin-bottom: 14px; }
.labz-post__title { font-family: var(--font-display); font-weight: 700; font-size: calc(44px * var(--h-scale)); line-height: 1.1; letter-spacing: -.01em; color: var(--ink-900); max-width: 900px; }
.labz-post__meta { display: flex; gap: 10px; align-items: center; font-family: var(--font-ui); font-size: 14px; color: var(--ink-700); margin-top: 14px; }
.labz-post__media { margin: 34px auto 0; border-radius: 20px; overflow: hidden; box-shadow: 0 30px 70px -40px rgba(0,40,90,.5); }
.labz-post__media img { width: 100%; height: auto; display: block; aspect-ratio: 1 / 0.5; object-fit: cover; }
.labz-post__article { max-width: 760px; margin: 0 auto; padding: 40px var(--gutter) 20px; }
.labz-prose { font-family: var(--font-ui); font-size: 18px; line-height: 1.75; color: var(--ink-800, #2b3440); }
.labz-prose h2 { font-family: var(--font-display); font-weight: 700; font-size: 30px; color: var(--ink-900); margin: 40px 0 14px; }
.labz-prose h3 { font-family: var(--font-display); font-weight: 700; font-size: 23px; color: var(--ink-900); margin: 30px 0 12px; }
.labz-prose p { margin: 0 0 20px; }
.labz-prose ul, .labz-prose ol { padding-left: 22px; margin: 0 0 20px; }
.labz-prose li { margin-bottom: 8px; }
.labz-prose a { color: var(--navy); text-decoration: underline; text-underline-offset: 2px; }
.labz-prose img { border-radius: 14px; margin: 14px 0; }
.labz-prose blockquote { border-left: 4px solid var(--blue); padding: 6px 0 6px 20px; margin: 24px 0; font-family: var(--font-quote); font-size: 20px; color: var(--ink-700); }
.labz-post__cta { margin: 20px auto 80px; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: #f7fafe; border: 1px solid var(--stroke-card); border-radius: 20px; padding: 28px 32px; }
.labz-post__cta h3 { font-family: var(--font-display); font-weight: 700; font-size: 22px; color: var(--ink-900); }
.labz-post__cta p { font-family: var(--font-ui); font-size: 15px; color: var(--ink-700); margin-top: 4px; max-width: 480px; }

/* WooCommerce buttons — consistent hover */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.wp-element-button, .wp-block-button__link, .labz-btn, .single_add_to_cart_button {
	transition: transform .16s ease, filter .16s ease, box-shadow .16s ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce #respond input#submit:hover,
.wp-element-button:hover, .wp-block-button__link:hover, .labz-btn:hover, .single_add_to_cart_button:hover {
	filter: brightness(1.08); transform: translateY(-2px); box-shadow: 0 16px 30px -18px rgba(0,40,90,.55);
}

/* My Account — cleaner Account Details form + tables */
.woocommerce-EditAccountForm .woocommerce-form-row, .woocommerce-address-fields .form-row {
	display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px;
}
.woocommerce form .form-row label, .woocommerce-EditAccountForm label {
	font-family: var(--font-ui); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-700);
}
.woocommerce form .form-row input.input-text, .woocommerce form .form-row input[type="text"],
.woocommerce form .form-row input[type="email"], .woocommerce form .form-row input[type="password"],
.woocommerce form .form-row input[type="tel"], .woocommerce .select2-selection, .woocommerce form .form-row select {
	font-family: var(--font-ui); font-size: 15px; padding: 12px 14px; border: 1px solid var(--stroke-card); border-radius: 12px; width: 100%; background: #fff;
}
.woocommerce form .form-row input:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 4px rgba(0,61,135,.1); }
.woocommerce fieldset { border: 1px solid var(--stroke-card); border-radius: 14px; padding: 20px; margin-top: 20px; }
.woocommerce fieldset legend { font-family: var(--font-display); font-weight: 700; font-size: 18px; padding: 0 8px; }
.woocommerce-account .woocommerce table.shop_table, .woocommerce table.shop_table {
	border: 1px solid var(--stroke-card); border-radius: 14px; border-collapse: separate; border-spacing: 0; overflow: hidden;
}
.woocommerce table.shop_table thead th { background: #f7fafe; font-family: var(--font-ui); font-size: 12px; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-700); }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { padding: 14px 16px; }
.woocommerce .woocommerce-MyAccount-content a.button, .woocommerce-EditAccountForm button {
	border-radius: var(--r-pill); background: var(--grad); color: #fff; padding: 12px 26px;
}

@media (max-width: 900px) {
	.labz-header__inner, .labz-container.labz-header__inner { justify-content: space-between; }
	.labz-shop__sortmenu { left: 0; right: auto; }
	.labz-shop__toolbar { flex-wrap: wrap; gap: 12px; }
	.labz-footer__grid { padding-left: var(--gutter); padding-right: var(--gutter); }
	.labz-footer__bottom .labz-container { padding-left: var(--gutter); padding-right: var(--gutter); }
	.labz-post__title { font-size: 30px; }
	.labz-prose { font-size: 16px; }
	.labz-post__cta { flex-direction: column; align-items: flex-start; }
	/* My Account content stacks on mobile */
	.labz-single__content .woocommerce { flex-direction: column; }
	.woocommerce-account .woocommerce-MyAccount-content { flex-direction: column; }
}

/* Category page — ensure inner sections have horizontal padding */
.labz-cathero__inner, .labz-catwhy__inner { padding-left: var(--gutter); padding-right: var(--gutter); }

/* =========================================================================
   Batch 3 — responsive typography, images, spacing, hero/trust/goal/footer
   ========================================================================= */
/* Images that were max-width only */
.labz-why__art img, .labz-goal__art img { width: 100%; }

/* COA lookup input */
.labz-coa__input { padding: 15px 26px; font-size: 14px; }

/* Remove leftover back link if present */
a.labz-post__back { display: none; }

/* Hero inner horizontal padding on tablet/mobile */
@media (max-width: 1024px) {
	.labz-hero__inner { padding-left: var(--gutter); padding-right: var(--gutter); }
}

/* Tablets — paragraph sizing */
@media (max-width: 1024px) {
	p, .labz-prose { font-size: 15px; line-height: 1.65; }
}

/* Mobile typography + spacing */
@media (max-width: 768px) {
	/* Body/text elements → 14px (forced). */
	p, span, input, textarea, select, blockquote, li, td, th, dd, dt {
		font-size: 14px !important; line-height: 1.6;
	}
	.labz-single__content p, .labz-single__content li, .labz-prose { font-size: 14px !important; line-height: 1.65; }
	blockquote, .labz-prose blockquote { font-size: 14px !important; }
	/* Keep gradient/heading display spans at their inherited heading size (don't shrink to 14). */
	.labz-grad-text, .labz-hero__logotype { font-size: inherit !important; }
	.labz-goal-pill__num { font-size: 18px !important; }
	.labz-goal-pill__label { font-size: 15px !important; }
	/* Small/utility text → 12px */
	small, .labz-eyebrow, .labz-badge, .labz-card__meta, .labz-trust__text p,
	.labz-footer__col a, .labz-footer__mail, .labz-shop__count, .labz-shop__sort,
	.labz-coalib__recent-tag, .labz-coalib__recent-meta, .labz-auth__field label,
	.labz-bulk__auto, .labz-bulk__each, .labz-sp__coa-head, .labz-coalib__batch-head,
	.labz-card__cat, .labz-lib-card__tag, .labz-feat__tx span, .labz-help__meta {
		font-size: 12px !important; line-height: 1.5;
	}

	/* Goal pills */
	.labz-goal-pill__label { font-size: 15px; }
	.labz-goal-pill__num { font-size: 18px; }

	/* Section vertical spacing — trim desktop padding on mobile */
	.labz-testi { padding-top: 46px; padding-bottom: 46px; }
	.labz-why { padding-top: 46px; padding-bottom: 46px; }
	.labz-goal { padding-top: 46px; padding-bottom: 46px; }
	.labz-featured { padding-top: 40px; padding-bottom: 40px; }
	.labz-library { padding-top: 40px; padding-bottom: 50px; }
	.labz-hero { padding-top: 30px; padding-bottom: 40px; }
	.labz-why__inner, .labz-goal__inner, .labz-testi__inner { gap: 26px; }

	/* Header & footer logos — larger on mobile for balance */
	.labz-logo img, .labz-logo-link img, .labz-header__logo img { height: auto; width: 100px; max-height: none; }
	.labz-footer__logo img { width: 120px; }
}

/* Trust section horizontally scrollable on mobile */
@media (max-width: 768px) {
	.labz-container.labz-trust__inner {
		flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start;
		-webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 22px;
	}
	.labz-container.labz-trust__inner::-webkit-scrollbar { display: none; }
	.labz-trust__item { flex: 0 0 auto; }
	.labz-trust__divider { display: none; }
}

/* Small phones — a touch smaller still */
@media (max-width: 480px) {
	.labz-goal-pill__label { font-size: 14px; }
	.labz-goal-pill__num { font-size: 17px; }
}

/* =========================================================================
   Buttons — consistent 14px across the site (mostly <a> tags)
   ========================================================================= */
.labz-btn, a.labz-btn,
.wp-element-button, .wp-block-button__link,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.added_to_cart,
.single_add_to_cart_button, .add_to_cart_button,
.labz-card__cta, .labz-auth__submit, .labz-promo__btn, .labz-promo__copy,
.labz-shop__page, .labz-shop__filters-toggle, .labz-shop__sort-btn,
.labz-coalib__batch-dl a, .labz-sp__coa-dl, .labz-btn--primary, .labz-btn--ghost-dark,
.button, a.button {
	font-size: 14px !important;
}

/* Shop main wrapper — no padding (inner containers handle spacing) */
main.labz-shop { padding: 0; }
.labz-shop__toolbar .labz-shop__sort { margin-left: auto; }

/* =========================================================================
   Batch 4 — drawer submenu, footer logo, drawer links, contact pill, shop main
   ========================================================================= */
/* Drawer submenu: force inline/static (kill the hover translateX that mispositioned it) */
.labz-drawer__panel .labz-dropdown,
.labz-drawer__panel .menu-item-has-dropdown:hover > .labz-dropdown {
	position: static !important; transform: none !important; left: auto !important; top: auto !important;
	opacity: 1 !important; visibility: visible !important; min-width: 0 !important; box-shadow: none !important;
	z-index: auto !important; padding: 0 0 8px 16px !important; margin: 0; background: transparent;
}
.labz-drawer__panel .labz-dropdown li a { font-size: 14px !important; color: var(--ink-700); }

/* Mobile drawer nav link size */
.labz-drawer__panel .labz-nav__menu a { font-size: 14px !important; }

/* Contact pill button → 14px everywhere */
.labz-contact-pill, .labz-contact-pill--block { font-size: 14px !important; }

/* Shop main wrapper — no padding (ensure) */
main.labz-shop { padding: 0 !important; }

@media (max-width: 768px) {
	/* Footer logo per spec */
	.labz-footer__logo img { height: auto !important; width: 100px !important; }
	/* Header logo a touch larger for balance */
	.labz-logo img, .labz-logo-link img, .labz-header__logo img { height: auto; width: 90px; max-height: none; }
}

/* Buttons — catch remaining variants at 14px */
.labz-coa__btn, .labz-btn--grad, .labz-btn--primary, .labz-btn--ghost-dark,
.labz-faqpage__cta, .labz-hero__cta .labz-btn, .labz-gate__leave, .labz-auth__link,
.woocommerce-Button, .checkout-button, .wc-block-components-button,
.wp-block-button__link, .added_to_cart, .labz-account__ql strong {
	font-size: 14px !important;
}

/* =========================================================================
   Page banner (.labz-single__head) — responsive
   ========================================================================= */
@media (max-width: 1024px) {
	.labz-single__head { padding: 64px 0 54px; margin-bottom: 44px; }
	.labz-single__head .labz-single__title { font-size: calc(38px * var(--h-scale)); }
}
@media (max-width: 768px) {
	.labz-single__head { padding: 48px 0 40px; margin-bottom: 32px; }
	.labz-single__head-inner { gap: 14px; padding-left: var(--gutter); padding-right: var(--gutter); }
	.labz-single__head .labz-single__title { font-size: 28px; }
	.labz-single__crumbs { font-size: 12px !important; gap: 7px; }
}
@media (max-width: 480px) {
	.labz-single__head { padding: 38px 0 32px; }
	.labz-single__head .labz-single__title { font-size: 24px; }
}

/* =========================================================================
   Testimonials — Swiper carousel
   ========================================================================= */
.labz-testi-carousel { position: relative; margin-top: 40px; margin-bottom: 48px; padding: 0 56px; }
.labz-testi-swiper { overflow: hidden; padding: 6px 2px; }
.labz-testi-swiper .swiper-wrapper { align-items: stretch; }
.labz-testi-swiper .swiper-slide { height: auto; display: flex; }
.labz-testi-swiper .labz-testi-card { height: 100%; width: 100%; margin: 0; }
.labz-testi__nav {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 46px; height: 46px; border-radius: 50%; border: 0; cursor: pointer;
	background: var(--grad); color: #fff; display: inline-flex; align-items: center; justify-content: center;
	box-shadow: 0 14px 30px -14px rgba(0,40,90,.5); transition: filter .18s ease, opacity .18s ease;
}
.labz-testi__nav:hover { filter: brightness(1.1); }
.labz-testi__nav--prev { left: 0; }
.labz-testi__nav--next { right: 0; }
.labz-testi__nav.swiper-button-disabled { opacity: .4; cursor: default; }
.labz-testi__dots.swiper-pagination { position: absolute; left: 0; right: 0; bottom: -30px; margin: 0; display: flex; justify-content: center; gap: 8px; }
.labz-testi__dots .swiper-pagination-bullet { width: 8px; height: 8px; background: #c7d3e6; opacity: 1; transition: width .2s ease, background .2s ease; margin: 0; }
.labz-testi__dots .swiper-pagination-bullet-active { width: 26px; border-radius: 5px; background: var(--navy); }
@media (max-width: 640px) {
	.labz-testi-carousel { padding: 0 12px; margin-bottom: 44px; }
}
@media (max-width: 600px) {
	.labz-testi__nav { top: auto; bottom: 6px; transform: none; width: 40px; height: 40px; }
	.labz-testi__nav--prev { left: 4px; } .labz-testi__nav--next { right: 4px; }
	.labz-testi__dots.swiper-pagination { bottom: -26px; }
}

/* =========================================================================
   Batch 5 — sp tabs scroll, coalib grid, sticky, contact, woo submit buttons
   ========================================================================= */
/* WooCommerce submit buttons → reuse global navy pill styling */
.woocommerce button[type="submit"], .woocommerce input[type="submit"],
.woocommerce #place_order, .woocommerce form .button[type="submit"],
.woocommerce-EditAccountForm button[type="submit"], .woocommerce-Address .button,
.labz-auth__submit, .woocommerce-ResetPassword button[type="submit"] {
	background: var(--grad) !important; color: #fff !important; border: 0 !important; border-radius: 100px !important;
	padding: 13px 30px !important; font-family: var(--font-ui); font-size: 14px !important; cursor: pointer;
	transition: transform .16s ease, filter .16s ease, box-shadow .16s ease;
}
.woocommerce button[type="submit"]:hover, .woocommerce input[type="submit"]:hover,
.woocommerce #place_order:hover, .woocommerce-EditAccountForm button[type="submit"]:hover,
.labz-auth__submit:hover, .woocommerce-ResetPassword button[type="submit"]:hover {
	filter: brightness(1.08); transform: translateY(-2px); box-shadow: 0 16px 30px -18px rgba(0,40,90,.55);
}
/* Auth submit keeps its gradient look */
.labz-auth__submit { background: var(--grad) !important; }

/* Inline password reset panel */
.labz-auth__field { margin-bottom: 10px; }
.labz-auth__lost { border: 0; background: transparent; padding: 0; font-family: var(--font-ui); font-size: 14px; color: var(--navy); cursor: pointer; text-decoration: none; }
.labz-auth__lost:hover { text-decoration: underline; }
[data-auth-reset] { display: none; }
.labz-auth.is-reset .labz-auth__tabs,
.labz-auth.is-reset .labz-auth__form { display: none !important; }
.labz-auth.is-reset [data-auth-reset] { display: flex; flex-direction: column; gap: 16px; }
.labz-auth__reset-title { font-family: var(--font-display); font-weight: 700; font-size: 20px; color: var(--ink-900); text-align: center; }
.labz-auth__reset-note { font-family: var(--font-ui); font-size: 14px; color: var(--ink-700); text-align: center; }

/* Shop filters sticky — cap height so long lists don't overflow the viewport */
@media (min-width: 901px) {
	.labz-shop__filters { position: sticky; top: 100px; max-height: calc(100vh - 120px); overflow-y: auto; }
}
/* Legal TOC sticky (already), cap height too */
.labz-legal__toc { max-height: calc(100vh - 130px); overflow-y: auto; }

/* Contact grid → single column at 1024 and below */
@media (max-width: 1024px) {
	.labz-contact__grid { grid-template-columns: 1fr; gap: 30px; }
	.labz-header__inner, .labz-container.labz-header__inner { justify-content: space-between; }
}

/* Single product tabs — horizontally scrollable on mobile */
@media (max-width: 768px) {
	.labz-sp__tabs {
		flex-wrap: nowrap; overflow-x: auto; gap: 18px; -webkit-overflow-scrolling: touch;
		scrollbar-width: none; padding-bottom: 2px;
	}
	.labz-sp__tabs::-webkit-scrollbar { display: none; }
	.labz-sp__tab { flex: 0 0 auto; white-space: nowrap; font-size: 14px; }
	.labz-sp__title, .labz-single__title { font-size: 24px; }
	.labz-sp__h2 { font-size: 20px; }
	.labz-sp__price, .labz-sp__price .amount { font-size: 26px; }
}

/* COA recent-grid → 2 columns on mobile (was 3, overflowed) */
@media (max-width: 600px) {
	.labz-coalib__recent-grid { grid-template-columns: repeat(2, 1fr); }
}

/* YITH WooCommerce Affiliates styling removed for Evercore Labs LLC rebrand (Section 1). */


/* =========================================================================
   Fix: horizontal scroll from .labz-sp__form (grid items must be shrinkable)
   ========================================================================= */
.labz-sp__top { min-width: 0; }
.labz-sp__top > * { min-width: 0; }
.labz-sp__buy { min-width: 0; }
.labz-sp__form { max-width: 100%; box-sizing: border-box; }
.labz-sp__form .variations,
.labz-sp__form select,
.labz-sp__form input,
.labz-sp__form .single_variation_wrap,
.labz-sp__form .woocommerce-variation-add-to-cart { max-width: 100%; box-sizing: border-box; }
.labz-sp__form form.cart, .labz-sp__buy form.cart { flex-wrap: wrap; max-width: 100%; }
.labz-sp__form .single_add_to_cart_button, .labz-sp__buy .single_add_to_cart_button {
	max-width: 100%; white-space: normal;
}
.labz-swatches { flex-wrap: wrap; max-width: 100%; }

/* =========================================================================
   Product page — contain real overflow sources (no page-level overflow hack)
   ========================================================================= */
/* Gallery (FlexSlider slides can be very wide — clip within the viewport) */
.labz-sp__gallery, .woocommerce-product-gallery,
.woocommerce-product-gallery__wrapper { max-width: 100%; }
.woocommerce-product-gallery .flex-viewport { overflow: hidden; max-width: 100%; }
.woocommerce-product-gallery__image img, .labz-sp__gallery img { max-width: 100%; height: auto; }
.woocommerce-product-gallery ol.flex-control-thumbs { max-width: 100%; display: flex; flex-wrap: wrap; gap: 8px; padding-left: 0; margin-left: 0; }
.woocommerce-product-gallery ol.flex-control-thumbs li { margin: 0; }

/* Trust strip + panels shrinkable */
.labz-sp__strip { max-width: 100%; }
.labz-sp__strip > * { min-width: 0; }
.labz-sp__panels, .labz-sp__panel { max-width: 100%; }
.labz-sp__tabs { max-width: 100%; }

/* Variations table + rows never exceed the form */
.labz-sp__form table.variations, .labz-sp__form table.variations tr,
.labz-sp__form table.variations td, .labz-sp__form table.variations th { max-width: 100%; }
.labz-sp__panel table { display: block; max-width: 100%; overflow-x: auto; }

/* Related / recent products grid shrinkable */
.woocommerce ul.products { min-width: 0; max-width: 100%; }
.woocommerce ul.products li.product, .woocommerce ul.products li.labz-card-li { min-width: 0; max-width: 100%; }
.labz-card, .labz-card__media, .labz-card__media img { max-width: 100%; }
