/* ==========================================================================
   Cornerstone Peptide Co. — all-slate design system
   Canvas reference: 1440px desktop boards, 390px mobile boards.
   ========================================================================== */

:root {
	--cs-bg: #141C25;
	--cs-band: #1A2430;
	--cs-raised: #1F2A37;
	--cs-frame: #202B38;
	--cs-line: #2A3644;
	--cs-text: #E9EDF1;
	--cs-muted: #9BA7B4;
	--cs-accent: #7FA4FF;
	--cs-ok: #6FCF97;
	--cs-deep: #0B1017;
	--cs-sans: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
	--cs-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
	/* Side gutter: 48px on the 1440 board, centred content beyond 1440. */
	--g: max(48px, calc((100vw - 1344px) / 2));
}
@media (max-width: 1100px) { :root { --g: 32px; } }
@media (max-width: 768px)  { :root { --g: 20px; } }

html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--cs-bg); color: var(--cs-text); font-family: var(--cs-sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--cs-text); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--cs-accent); }
:focus-visible { outline: 2px solid var(--cs-accent); outline-offset: 2px; }
::selection { background: var(--cs-accent); color: var(--cs-bg); }
h1, h2, h3, h4 { margin: 0; font-weight: 500; }
p { margin: 0; }
button, input, select, textarea { font-family: inherit; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
main.wp-block-group { margin: 0; }
.is-layout-flow > * + *, .is-layout-constrained > * + * { margin-block-start: 0; }
.cs-desktop-only { }
.cs-mobile-only { display: none !important; }
@media (max-width: 768px) {
	.cs-desktop-only { display: none !important; }
	.cs-mobile-only { display: revert !important; }
}

[hidden] { display: none !important; }

/* ---------- Type helpers ---------- */
.cs-mono { font-family: var(--cs-mono); }
.cs-eyebrow, p.cs-eyebrow { font-family: var(--cs-mono); font-size: 12px; letter-spacing: 2px; color: var(--cs-muted); text-transform: uppercase; line-height: 1.4; }
.cs-num { font-family: var(--cs-mono); font-size: 12px; color: var(--cs-accent); }
.cs-muted { color: var(--cs-muted); }
.cs-accent { color: var(--cs-accent); }
.cs-display { font-weight: 500; font-size: clamp(52px, 7.2vw, 104px); line-height: .98; letter-spacing: -3.5px; }
.cs-h1 { font-weight: 500; font-size: clamp(44px, 5vw, 72px); line-height: 1.02; letter-spacing: -2.5px; }
.cs-h2 { font-weight: 500; font-size: clamp(30px, 3.4vw, 48px); line-height: 1.05; letter-spacing: -1.2px; }
.cs-h3 { font-weight: 500; font-size: clamp(26px, 2.8vw, 40px); line-height: 1.05; letter-spacing: -1px; }
.cs-lead { font-size: 18px; line-height: 1.6; color: var(--cs-muted); }
.cs-body { font-size: 17px; line-height: 1.7; color: var(--cs-muted); }
.cs-small { font-size: 14px; line-height: 1.6; color: var(--cs-muted); }
@media (max-width: 768px) {
	.cs-display { letter-spacing: -2px; }
	.cs-h1 { letter-spacing: -1.5px; }
	.cs-h2 { letter-spacing: -.8px; }
	.cs-eyebrow, p.cs-eyebrow { font-size: 11px; letter-spacing: 1.8px; }
	.cs-lead { font-size: 16px; }
}

/* ---------- Buttons ---------- */
.cs-btn, .wp-block-button .wp-block-button__link, .woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px;
	background: var(--cs-text); color: var(--cs-bg); border: 1px solid var(--cs-text); border-radius: 0;
	font-family: var(--cs-sans); font-size: 15px; font-weight: 500; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background .15s, color .15s, border-color .15s;
}
.cs-btn:hover, .wp-block-button .wp-block-button__link:hover, .woocommerce .button:hover, .woocommerce button.button:hover, .woocommerce a.button:hover { background: #fff; border-color: #fff; color: var(--cs-bg); }
.cs-btn--ghost, .wp-block-button.is-style-cs-ghost .wp-block-button__link { background: transparent; color: var(--cs-text); border: 1px solid var(--cs-text); }
.cs-btn--ghost:hover, .wp-block-button.is-style-cs-ghost .wp-block-button__link:hover { background: var(--cs-text); color: var(--cs-bg); }
.cs-btn--block { width: 100%; }
.cs-btn--tall { min-height: 60px; font-size: 16px; }
.cs-btn[disabled], .cs-btn.is-disabled { opacity: .45; cursor: not-allowed; }
.wp-block-buttons { display: flex; gap: 12px; flex-wrap: wrap; }
.wp-block-buttons > .wp-block-button { margin: 0; }
@media (max-width: 768px) {
	.cs-hero .wp-block-buttons { flex-direction: column; gap: 10px; }
	.cs-hero .wp-block-buttons .wp-block-button, .cs-hero .wp-block-buttons .wp-block-button__link { width: 100%; }
}
.cs-textlink { font-size: 15px; color: var(--cs-text); text-decoration: underline; }

/* ---------- Photo placeholder frame ---------- */
.cs-ph { position: relative; display: flex; align-items: flex-end; padding: 20px; background: var(--cs-frame); border: 1px solid var(--cs-line); overflow: hidden; }
.cs-ph::before { content: ""; position: absolute; inset: 0; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><line x1='0' y1='0' x2='100' y2='100' stroke='%232A3644' stroke-width='0.2' vector-effect='non-scaling-stroke'/><line x1='100' y1='0' x2='0' y2='100' stroke='%232A3644' stroke-width='0.2' vector-effect='non-scaling-stroke'/></svg>") no-repeat center / 100% 100%; }
.cs-ph--plain::before { display: none; }
.cs-ph__label { position: relative; font-family: var(--cs-mono); font-size: 11px; letter-spacing: 1.5px; color: var(--cs-muted); text-transform: uppercase; }
.cs-ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cs-ph.has-image::before { display: none; }
@media (max-width: 768px) { .cs-ph { padding: 12px; } .cs-ph__label { font-size: 10px; letter-spacing: 1.2px; } }

/* ---------- Top bar + header ---------- */
.cs-topbar { height: 36px; display: flex; align-items: center; justify-content: space-between; padding: 0 var(--g); border-bottom: 1px solid var(--cs-line); font-family: var(--cs-mono); font-size: 11px; letter-spacing: 1.5px; color: var(--cs-muted); text-transform: uppercase; }
.cs-topbar p { margin: 0; }
.cs-topbar .cs-topbar__short { display: none; }
@media (max-width: 768px) {
	.cs-topbar { height: 32px; justify-content: center; font-size: 9px; letter-spacing: 1.2px; }
	.cs-topbar .cs-topbar__left, .cs-topbar .cs-topbar__right { display: none; }
	.cs-topbar .cs-topbar__short { display: block; }
}
.cs-header { height: 80px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 var(--g); border-bottom: 1px solid var(--cs-line); position: relative; z-index: 50; background: var(--cs-bg); }
.cs-header .wp-block-site-title, .cs-brand { margin: 0; font-weight: 600; font-size: 22px; letter-spacing: 4px; line-height: 1; text-align: center; }
.cs-header .wp-block-site-title a, .cs-brand a { color: var(--cs-text); text-decoration: none; }
.cs-header .wp-block-site-title a:hover { color: var(--cs-text); }
/* core/navigation in the header */
.cs-header .wp-block-navigation { gap: 32px; font-size: 14px; }
.cs-header .wp-block-navigation .wp-block-navigation-item__content { color: var(--cs-text); text-decoration: none; padding: 0; }
.cs-header .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--cs-accent); }
.cs-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content { color: var(--cs-text); }
.cs-header .wp-block-navigation__responsive-container-open { color: var(--cs-text); width: 44px; height: 44px; margin-left: -12px; }
.cs-header .wp-block-navigation__responsive-container-open svg { width: 24px; height: 24px; }
.cs-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--cs-bg) !important; color: var(--cs-text) !important; padding: 20px var(--g); }
.cs-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 64px; gap: 0; align-items: stretch; }
.cs-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0; align-items: stretch; width: 100%; }
.cs-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { border-bottom: 1px solid var(--cs-line); width: 100%; }
.cs-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 22px; padding: 18px 0; width: 100%; }
.cs-header .wp-block-navigation__responsive-close { max-width: none; }
.cs-header .wp-block-navigation__responsive-container-close { color: var(--cs-text); top: 20px; right: auto; left: var(--g); }
.cs-actions { display: flex; justify-content: flex-end; align-items: center; gap: 24px; font-size: 14px; }
.cs-actions a { text-decoration: none; color: var(--cs-text); }
.cs-actions a:hover { color: var(--cs-accent); }
.cs-actions__icon { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; position: relative; }
.cs-actions__icon svg { width: 22px; height: 22px; }
.cs-actions__badge { position: absolute; top: 6px; right: 4px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--cs-accent); color: var(--cs-bg); font-family: var(--cs-mono); font-size: 10px; line-height: 16px; text-align: center; }
.cs-actions__badge[data-count="0"] { display: none; }
@media (max-width: 900px) {
	.cs-header { height: 64px; padding: 0 10px; grid-template-columns: 44px 1fr 44px; }
	.cs-header .wp-block-site-title, .cs-brand { font-size: 15px; letter-spacing: 1.5px; white-space: nowrap; }
	.cs-header .wp-block-navigation__responsive-container-open { margin-left: 0; }
	.cs-actions__text { display: none; }
	.cs-actions__icon { display: inline-flex; }
	.cs-header .wp-block-navigation { gap: 0; }
}
@media (min-width: 901px) {
	.cs-header .wp-block-navigation__responsive-container-open { display: none !important; }
	.cs-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: block; position: static; width: auto; background: none; }
	.cs-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; }
}
@media (max-width: 900px) {
	.cs-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
	.cs-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
}

/* Checkout header */
.cs-header--checkout { grid-template-columns: 1fr 1fr; }
.cs-header--checkout .wp-block-site-title { text-align: left; }
.cs-header--checkout .cs-secure { justify-self: end; font-family: var(--cs-mono); font-size: 12px; letter-spacing: 1.5px; color: var(--cs-muted); text-transform: uppercase; }
@media (max-width: 900px) { .cs-header--checkout { grid-template-columns: 1fr auto; padding: 0 var(--g); } }

/* Breadcrumb */
.cs-crumbs { padding: 20px var(--g); font-family: var(--cs-mono); font-size: 12px; letter-spacing: 1px; color: var(--cs-muted); border-bottom: 1px solid var(--cs-line); text-transform: uppercase; }
.cs-crumbs a { color: var(--cs-muted); text-decoration: none; }
.cs-crumbs a:hover { color: var(--cs-text); }
@media (max-width: 768px) { .cs-crumbs { padding: 14px var(--g); font-size: 10px; border-bottom: 0; } }

/* ---------- Footer ---------- */
.cs-footer { display: flex; flex-direction: column; gap: 48px; padding: 56px var(--g) 48px; border-top: 1px solid var(--cs-line); }
.cs-footer__top { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.cs-footer .wp-block-site-title { margin: 0; font-weight: 600; font-size: 20px; letter-spacing: 4px; }
.cs-footer .wp-block-site-title a { text-decoration: none; color: var(--cs-text); }
.cs-footer__links { display: flex; gap: 32px; font-size: 14px; flex-wrap: wrap; }
.cs-footer__links p { margin: 0; }
.cs-footer__links a { text-decoration: none; color: var(--cs-text); }
.cs-footer__links a:hover { color: var(--cs-accent); }
.cs-footer__links .cs-footer__nav { display: none; }
.cs-footer__legal { max-width: 960px; font-size: 12px; line-height: 1.7; color: var(--cs-muted); }
@media (max-width: 768px) {
	.cs-footer { gap: 28px; padding: 40px var(--g) 36px; }
	.cs-footer__top { flex-direction: column; align-items: stretch; gap: 20px; }
	.cs-footer .wp-block-site-title { font-size: 18px; letter-spacing: 3px; }
	.cs-footer__links { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 16px; }
	.cs-footer__links .cs-footer__nav { display: block; }
}

/* ---------- Generic sections ---------- */
.cs-sec { padding: 72px var(--g); border-bottom: 1px solid var(--cs-line); }
.cs-sec--band { background: var(--cs-band); }
.cs-sec--tight { padding-top: 48px; padding-bottom: 48px; }
.cs-sec--flush { padding: 0; }
.cs-row-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 32px; }
@media (max-width: 768px) { .cs-sec { padding: 40px var(--g); } .cs-row-head { margin-bottom: 20px; } }

/* Page hero (interior pages) */
.cs-pagehero { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end; padding: 96px var(--g) 72px; border-bottom: 1px solid var(--cs-line); }
.cs-pagehero__main { display: flex; flex-direction: column; gap: 20px; }
.cs-pagehero .cs-lead { max-width: 560px; }
.cs-pagehero--short { padding-top: 80px; padding-bottom: 56px; }
@media (max-width: 900px) { .cs-pagehero { grid-template-columns: 1fr; gap: 20px; padding: 40px var(--g) 32px; } }

/* ---------- Forms ---------- */
.cs-field { display: flex; flex-direction: column; gap: 8px; }
.cs-field label, .cs-label { font-size: 13px; font-weight: 500; color: var(--cs-muted); }
.cs-input, .cs-field input:not([type=checkbox]):not([type=radio]), .cs-field select, .cs-field textarea,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text, .select2-container .select2-selection--single {
	width: 100%; min-height: 52px; padding: 0 16px; background: transparent; color: var(--cs-text); border: 1px solid var(--cs-line); border-radius: 0; font-size: 15px; font-family: var(--cs-sans);
}
.cs-field textarea, .woocommerce form .form-row textarea { padding: 14px 16px; min-height: 120px; resize: vertical; line-height: 1.5; }
.cs-field select, .woocommerce form .form-row select, .cs-select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23E9EDF1' stroke-width='1.4'/></svg>"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px; }
.cs-select { min-height: 44px; background-color: var(--cs-bg); color: var(--cs-text); border: 1px solid var(--cs-line); padding: 0 40px 0 14px; font-size: 14px; border-radius: 0; }
.cs-field select option, .cs-select option { background: var(--cs-bg); color: var(--cs-text); }
.cs-input:focus, .cs-field input:focus, .cs-field select:focus, .cs-field textarea:focus, .woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { outline: none; border-color: var(--cs-text); }
.cs-input::placeholder, .cs-field input::placeholder, .cs-field textarea::placeholder, .woocommerce form .form-row input::placeholder { color: #6E7B89; }
.cs-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 16px; }
@media (max-width: 768px) { .cs-grid2 { grid-template-columns: 1fr; } }
.cs-inline-form { display: flex; }
.cs-inline-form input { flex: 1 1 auto; min-width: 0; height: 52px; padding: 0 16px; border: 1px solid var(--cs-text); border-right: 0; background: transparent; color: var(--cs-text); font-family: var(--cs-mono); font-size: 14px; border-radius: 0; }
.cs-inline-form input:focus { outline: none; background: rgba(233,237,241,.03); }
.cs-inline-form input::placeholder { color: #6E7B89; }
.cs-inline-form button { height: 54px; margin: -1px 0; padding: 0 28px; border: 0; background: var(--cs-text); color: var(--cs-bg); font-size: 15px; font-weight: 500; cursor: pointer; border-radius: 0; }
.cs-inline-form button:hover { background: #fff; }
.cs-inline-form--sans input { font-family: var(--cs-sans); }
@media (max-width: 768px) {
	.cs-inline-form--stack { flex-direction: column; gap: 14px; }
	.cs-inline-form--stack input { border-right: 1px solid var(--cs-text); }
	.cs-inline-form--stack button { margin: 0; height: 52px; }
}
.cs-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.cs-formnote { font-size: 13px; color: var(--cs-muted); line-height: 1.6; }
.cs-alert { padding: 14px 16px; border: 1px solid var(--cs-line); background: var(--cs-band); font-size: 14px; line-height: 1.6; }
.cs-alert--ok { border-color: rgba(111,207,151,.5); }
.cs-alert--err { border-color: rgba(255,120,120,.55); }

/* Key/value table (COA card rows) */
.cs-kv { display: grid; grid-template-columns: 160px 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--cs-line); font-family: var(--cs-mono); font-size: 13px; }
.cs-kv > span:first-child { color: var(--cs-muted); text-transform: uppercase; }
.cs-kv--wide { grid-template-columns: 180px 1fr; padding: 13px 0; }
.cs-coacard { display: flex; flex-direction: column; padding: 32px; background: var(--cs-band); border: 1px solid var(--cs-line); }
.cs-coacard--dark { background: var(--cs-bg); padding: 40px; }
.cs-coacard__head { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--cs-text); font-family: var(--cs-mono); font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; }
.cs-coacard__head .cs-accent { color: var(--cs-accent); }
.cs-coacard__link { padding-top: 20px; font-size: 15px; font-weight: 500; }
.cs-coacard__empty { padding: 20px 0 4px; font-size: 14px; line-height: 1.6; color: var(--cs-muted); }
@media (max-width: 768px) {
	.cs-coacard { padding: 20px; }
	.cs-kv { grid-template-columns: 1fr auto; font-size: 12px; }
	.cs-kv > span:last-child { text-align: right; }
}

/* Status dot */
.cs-dot { display: inline-block; width: 8px; height: 8px; border-radius: 4px; background: var(--cs-ok); vertical-align: middle; }
.cs-dot--out { background: var(--cs-muted); }

/* ==========================================================================
   Homepage
   ========================================================================== */
.cs-hero { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--cs-line); }
.cs-hero__copy { display: flex; flex-direction: column; justify-content: space-between; gap: 48px; padding: 72px 48px 56px var(--g); }
.cs-hero__bottom { display: flex; flex-direction: column; gap: 32px; }
.cs-hero__bottom .cs-lead { max-width: 480px; }
.cs-hero__media { border-left: 1px solid var(--cs-line); }
.cs-hero__media .cs-ph { height: 640px; }
@media (max-width: 900px) {
	.cs-hero { grid-template-columns: 1fr; border-bottom: 0; }
	.cs-hero__copy { gap: 22px; padding: 40px var(--g) 32px; justify-content: flex-start; }
	.cs-hero__bottom { gap: 22px; }
	.cs-hero__media { border-left: 0; padding: 0 var(--g); }
	.cs-hero__media .cs-ph { height: 340px; }
}
.cs-stats { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--cs-line); }
.cs-stat { display: flex; flex-direction: column; gap: 10px; padding: 32px; border-left: 1px solid var(--cs-line); }
.cs-stat:first-child { border-left: 0; padding-left: var(--g); }
.cs-stat__value { font-weight: 500; font-size: 56px; letter-spacing: -1.5px; line-height: 1.1; }
.cs-stat__label { font-size: 14px; color: var(--cs-muted); }
@media (max-width: 900px) {
	.cs-stats { grid-template-columns: 1fr 1fr; gap: 10px; padding: 32px var(--g); border-bottom: 0; }
	.cs-stat, .cs-stat:first-child { padding: 20px; border: 1px solid var(--cs-line); gap: 6px; }
	.cs-stat__value { font-size: 32px; letter-spacing: -1px; }
	.cs-stat__label { font-size: 13px; }
}
.cs-chain { display: grid; grid-template-columns: 360px 1fr; border-bottom: 1px solid var(--cs-line); }
.cs-chain__intro { display: flex; flex-direction: column; gap: 20px; padding: 56px 48px 56px var(--g); }
.cs-chain__intro h2 { font-size: 40px; line-height: 1.05; letter-spacing: -1px; }
.cs-chain__steps { display: grid; grid-template-columns: repeat(4, 1fr); }
.cs-step { display: flex; flex-direction: column; gap: 14px; padding: 36px 32px; border-left: 1px solid var(--cs-line); }
.cs-step:last-child { padding-right: var(--g); }
.cs-step__title { font-weight: 500; font-size: 26px; letter-spacing: -.5px; }
.cs-step__text { font-size: 15px; line-height: 1.6; color: var(--cs-muted); }
@media (max-width: 1100px) { .cs-chain { grid-template-columns: 1fr; } .cs-chain__intro { padding-bottom: 8px; } .cs-step:first-child { border-left: 0; padding-left: var(--g); } }
@media (max-width: 768px) {
	.cs-chain { padding: 24px var(--g) 40px; }
	.cs-chain__intro { padding: 0 0 16px; gap: 16px; }
	.cs-chain__intro h2 { font-size: 30px; letter-spacing: -.8px; }
	.cs-chain__steps { grid-template-columns: 1fr; }
	.cs-step, .cs-step:first-child, .cs-step:last-child { display: grid; grid-template-columns: 36px 1fr; gap: 6px 12px; padding: 18px 0; border-left: 0; border-top: 1px solid var(--cs-line); }
	.cs-step .cs-num { grid-row: span 2; }
	.cs-step__title { font-size: 19px; letter-spacing: 0; }
	.cs-step__text { font-size: 14px; line-height: 1.55; }
}

/* Product cards (home + related + catalog) */
.cs-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.cs-card { display: flex; flex-direction: column; color: var(--cs-text); text-decoration: none; border: 1px solid var(--cs-line); background: var(--cs-bg); transition: border-color .15s; }
.cs-card:hover { color: var(--cs-text); border-color: #3C4A5B; }
.cs-card .cs-ph { height: 300px; border-width: 0 0 1px 0; }
.cs-card__body { display: flex; flex-direction: column; gap: 12px; padding: 24px; }
.cs-card__row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.cs-card__name { font-weight: 500; font-size: 24px; }
.cs-card__price { font-size: 16px; white-space: nowrap; }
.cs-card__meta { display: flex; justify-content: space-between; gap: 8px; font-family: var(--cs-mono); font-size: 11px; color: var(--cs-muted); }
.cs-card--cat .cs-card__meta { text-transform: uppercase; }
.cs-card__meta span:last-child { text-transform: none; }
.cs-card__foot { display: flex; justify-content: space-between; gap: 8px; padding-top: 12px; border-top: 1px solid var(--cs-line); font-family: var(--cs-mono); font-size: 11px; color: var(--cs-muted); text-transform: uppercase; }
.cs-card__foot .cs-accent { color: var(--cs-accent); }
/* Catalog variant */
.cs-card--cat .cs-ph { height: 260px; }
.cs-card--cat .cs-card__body { gap: 6px; padding: 20px; }
.cs-card--cat .cs-card__area { font-family: var(--cs-mono); font-size: 11px; letter-spacing: 1.5px; color: var(--cs-muted); text-transform: uppercase; margin-bottom: 6px; }
.cs-card--cat .cs-card__name { font-size: 22px; }
.cs-card--cat .cs-card__meta .cs-accent { color: var(--cs-accent); }
/* Related variant */
.cs-card--mini .cs-ph { height: 220px; }
.cs-card--mini .cs-card__body { padding: 20px; }
.cs-card--mini .cs-card__name { font-size: 17px; }
.cs-card.is-draft { opacity: .6; }
@media (max-width: 1100px) { .cs-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) {
	.cs-cards { gap: 10px; }
	.cs-card .cs-ph, .cs-card--cat .cs-ph, .cs-card--mini .cs-ph { height: 150px; }
	.cs-card__body, .cs-card--cat .cs-card__body, .cs-card--mini .cs-card__body { padding: 12px; gap: 3px; }
	.cs-card__row { flex-direction: column; gap: 3px; }
	.cs-card__name, .cs-card--cat .cs-card__name, .cs-card--mini .cs-card__name { font-size: 16px; }
	.cs-card__price { font-size: 15px; order: 3; }
	.cs-card__meta { font-size: 10px; }
	.cs-card__meta > span:last-child, .cs-card__foot, .cs-card--cat .cs-card__area { display: none; }
	.cs-card__body { display: grid; }
	.cs-card__body .cs-card__row { display: contents; }
	.cs-card__body .cs-card__name { order: 1; } .cs-card__body .cs-card__meta { order: 2; } .cs-card__body .cs-card__price { order: 3; margin-top: 6px; }
}

/* COA band on the homepage */
.cs-coaband { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; padding: 80px var(--g); background: var(--cs-band); border-bottom: 1px solid var(--cs-line); }
.cs-coaband__copy { display: flex; flex-direction: column; gap: 24px; }
.cs-coaband__copy .cs-body { font-size: 17px; line-height: 1.6; }
.cs-coaband .cs-label { color: var(--cs-text); padding-top: 8px; margin-bottom: -12px; }
@media (max-width: 900px) {
	.cs-coaband { grid-template-columns: 1fr; gap: 20px; padding: 40px var(--g); }
	.cs-coaband .cs-coacard--dark, .cs-coaband__copy .cs-body { display: none; }
	.cs-coaband__copy { gap: 20px; }
}

/* Research areas list */
.cs-areas { border-top: 1px solid var(--cs-text); }
.cs-area { display: grid; grid-template-columns: 56px 1fr 1fr 110px 24px; align-items: center; gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--cs-line); color: var(--cs-text); text-decoration: none; }
.cs-area:hover { color: var(--cs-text); background: rgba(127,164,255,.03); }
.cs-area:hover .cs-area__arrow { color: var(--cs-accent); transform: translateX(3px); }
.cs-area__name { font-size: 26px; letter-spacing: -.5px; font-weight: 400; }
.cs-area__list { font-size: 15px; color: var(--cs-muted); }
.cs-area__count { font-family: var(--cs-mono); font-size: 12px; letter-spacing: 1px; color: var(--cs-muted); text-transform: uppercase; }
.cs-area__short { display: none; }
.cs-area__arrow { font-size: 18px; transition: transform .15s; justify-self: end; }
@media (max-width: 900px) {
	.cs-area { grid-template-columns: 1fr 24px; padding: 18px 0; }
	.cs-area__num, .cs-area__list, .cs-area__count { display: none; }
	.cs-area__name { font-size: 17px; letter-spacing: 0; }
	.cs-area__name .cs-area__full { display: none; }
	.cs-area__name .cs-area__short { display: inline; }
	.cs-sec--areas .cs-row-link { display: none; }
	.cs-sec--areas .cs-row-head h2 { font-family: var(--cs-mono); font-size: 11px; letter-spacing: 1.8px; color: var(--cs-muted); text-transform: uppercase; font-weight: 400; }
	.cs-areas--home { border-top-color: var(--cs-text); }
}

/* Lot release signup band */
.cs-signup { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end; padding: 72px var(--g); background: var(--cs-band); border-bottom: 1px solid var(--cs-line); }
.cs-signup__copy { display: flex; flex-direction: column; gap: 14px; }
.cs-signup__copy h2 { font-size: 40px; letter-spacing: -1px; }
.cs-signup__form { display: flex; flex-direction: column; gap: 10px; }
.cs-signup__form .cs-inline-form input { font-family: var(--cs-sans); border-color: var(--cs-text); }
@media (max-width: 768px) { .cs-signup { grid-template-columns: 1fr; gap: 24px; padding: 40px var(--g); } .cs-signup__copy h2 { font-size: 28px; } }
.cs-home-hide-mobile { }
@media (max-width: 768px) { .cs-home-hide-mobile { display: none !important; } }

/* ==========================================================================
   Catalog
   ========================================================================== */
.cs-catalog { display: grid; grid-template-columns: 220px 1fr; gap: 48px; padding: 48px var(--g) 80px; }
.cs-filter__title { padding-bottom: 14px; border-bottom: 1px solid var(--cs-text); }
.cs-filter__list { list-style: none; margin: 0; padding: 0; }
.cs-filter__list a { display: flex; justify-content: space-between; gap: 8px; padding: 13px 0; border-bottom: 1px solid var(--cs-line); font-size: 14px; color: var(--cs-muted); text-decoration: none; }
.cs-filter__list a:hover, .cs-filter__list a.is-active { color: var(--cs-text); }
.cs-filter__list a span:last-child { font-family: var(--cs-mono); font-size: 12px; }
.cs-catalog__bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; }
.cs-search { position: relative; flex: 0 1 460px; }
.cs-search input { width: 100%; height: 50px; padding: 0 16px 0 44px; background: transparent; color: var(--cs-text); border: 1px solid var(--cs-line); font-size: 14px; border-radius: 0; }
.cs-search input:focus { outline: none; border-color: var(--cs-text); }
.cs-search svg { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 14px; height: 14px; color: var(--cs-muted); }
.cs-sort { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--cs-muted); }
.cs-sort .cs-select { height: 50px; }
.cs-catalog .cs-cards { grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cs-catalog__empty { padding: 48px 0; color: var(--cs-muted); }
.cs-catalog__more { display: none; }
.cs-mfilters { display: none; }
@media (max-width: 1100px) { .cs-catalog { grid-template-columns: 1fr; gap: 20px; } .cs-filter { display: none; } .cs-mfilters { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .cs-catalog__bar .cs-sort { display: none; } .cs-search { flex: 1 1 auto; } }
@media (max-width: 768px) {
	.cs-catalog { padding: 0 var(--g) 40px; gap: 10px; }
	.cs-catalog .cs-cards { grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
	.cs-catalog__bar { margin: 0; }
	.cs-mfilters .cs-select { width: 100%; height: 52px; text-align: center; text-align-last: center; font-size: 15px; }
	.cs-catalog.is-collapsed .cs-card.is-extra { display: none; }
	.cs-catalog.is-collapsed .cs-catalog__more { display: flex; margin-top: 20px; }
}
.cs-cathero { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end; padding: 80px var(--g) 48px; border-bottom: 1px solid var(--cs-line); }
.cs-cathero__main { display: flex; flex-direction: column; gap: 14px; }
.cs-cathero .cs-h1 { font-size: 64px; letter-spacing: -2px; }
.cs-cathero .cs-lead { font-size: 16px; justify-self: end; max-width: 460px; }
@media (max-width: 900px) { .cs-cathero { grid-template-columns: 1fr; padding: 32px var(--g) 20px; border-bottom: 0; gap: 12px; } .cs-cathero .cs-h1 { font-size: 40px; letter-spacing: -1.2px; } .cs-cathero .cs-lead { display: none; } }

/* ==========================================================================
   Product page
   ========================================================================== */
.cs-pmain { display: grid; grid-template-columns: 1.1fr 1fr; border-bottom: 1px solid var(--cs-line); }
.cs-gallery { display: flex; flex-direction: column; gap: 12px; padding: 40px 48px 40px var(--g); border-right: 1px solid var(--cs-line); }
.cs-gallery__main { height: 620px; padding: 16px; }
.cs-gallery__thumbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.cs-gallery__thumbs .cs-ph { height: 140px; padding: 16px; }
.cs-buy { display: flex; flex-direction: column; gap: 32px; padding: 56px var(--g) 56px 48px; }
.cs-buy__head { display: flex; flex-direction: column; gap: 14px; }
.cs-buy__head .cs-h1 { font-size: 72px; letter-spacing: -2.5px; line-height: 1; }
.cs-buy__alias { font-size: 17px; color: var(--cs-muted); }
.cs-badges { display: flex; flex-wrap: wrap; gap: 8px 24px; font-family: var(--cs-mono); font-size: 12px; letter-spacing: 1px; color: var(--cs-muted); text-transform: uppercase; }
.cs-badges .cs-accent { color: var(--cs-accent); }
.cs-price { font-size: 36px; font-weight: 500; line-height: 1; }
.cs-price del { color: var(--cs-muted); font-size: .6em; margin-right: 8px; }
.cs-price ins { text-decoration: none; }
.cs-stockline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; font-size: 14px; }
.cs-stockline__stock { display: inline-flex; align-items: center; gap: 8px; }
.cs-stockline__cutoff { color: var(--cs-muted); }
.cs-optgroup { display: flex; flex-direction: column; gap: 12px; }
.cs-optgroup--tight { gap: 10px; }
.cs-tiers { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--cs-line); }
.cs-tier { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-left: 1px solid var(--cs-line); }
.cs-tier:first-child { border-left: 0; }
.cs-tier.is-current { background: var(--cs-raised); }
.cs-tier__qty { font-family: var(--cs-mono); font-size: 11px; color: var(--cs-muted); }
.cs-tier__price { font-size: 17px; font-weight: 500; }
.cs-tier__note { font-size: 12px; color: var(--cs-muted); }
.cs-tier__note.cs-accent { color: var(--cs-accent); }
.cs-sizes { display: flex; flex-wrap: wrap; gap: 10px; }
.cs-size { height: 52px; padding: 0 24px; border: 1px solid var(--cs-line); background: transparent; color: var(--cs-text); font-family: var(--cs-mono); font-size: 14px; cursor: pointer; border-radius: 0; }
.cs-size:hover { border-color: #4A5A6C; }
.cs-size.is-selected { border-color: var(--cs-text); background: var(--cs-raised); }
.cs-size.is-out { color: var(--cs-muted); text-decoration: line-through; text-decoration-color: rgba(155,167,180,.6); }
.cs-size.is-out.is-selected { text-decoration: none; }
.cs-qty { display: flex; align-items: center; width: 160px; height: 52px; border: 1px solid var(--cs-line); }
.cs-qty button { width: 52px; height: 50px; border: 0; background: transparent; color: var(--cs-text); font-size: 20px; cursor: pointer; }
.cs-qty button:hover { color: var(--cs-accent); }
.cs-qty input { flex: 1 1 auto; min-width: 0; width: 40px; height: 50px; border: 0; background: transparent; color: var(--cs-text); text-align: center; font-family: var(--cs-mono); font-size: 15px; -moz-appearance: textfield; }
.cs-qty input::-webkit-outer-spin-button, .cs-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cs-buy__form { display: flex; flex-direction: column; gap: 32px; }
.cs-buy__cta { display: flex; flex-direction: column; gap: 32px; }
.cs-buy__atc { min-height: 60px; font-size: 16px; width: 100%; border: 0; }
.cs-assure { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding-top: 24px; border-top: 1px solid var(--cs-line); font-size: 13px; color: var(--cs-muted); }
.cs-notify { display: flex; flex-direction: column; gap: 12px; padding: 24px; border: 1px solid var(--cs-line); background: var(--cs-band); }
.cs-notify__head { font-family: var(--cs-mono); font-size: 12px; letter-spacing: 1.5px; color: var(--cs-accent); text-transform: uppercase; }
.cs-notify__text { font-size: 15px; line-height: 1.6; color: var(--cs-muted); }
.cs-notify .cs-label { color: var(--cs-muted); margin-top: 4px; }
.cs-notify .cs-inline-form input { font-family: var(--cs-sans); height: 48px; }
.cs-notify .cs-inline-form button { height: 50px; }
.cs-notify__msg:empty { display: none; }
.cs-draftnote { padding: 12px 14px; border: 1px dashed #6E7B89; font-size: 13px; color: var(--cs-muted); }
@media (max-width: 1100px) { .cs-pmain { grid-template-columns: 1fr; } .cs-gallery { border-right: 0; padding-right: var(--g); } .cs-buy { padding-left: var(--g); } .cs-gallery__main { height: 520px; } }
@media (max-width: 768px) {
	.cs-gallery { padding: 0 var(--g); gap: 8px; }
	.cs-gallery__main { height: 360px; padding: 12px; }
	.cs-gallery__thumbs { gap: 8px; }
	.cs-gallery__thumbs .cs-ph { height: 90px; padding: 12px; }
	.cs-buy { padding: 28px var(--g) 36px; gap: 22px; }
	.cs-buy__head { gap: 8px; }
	.cs-buy__head .cs-h1 { font-size: 44px; letter-spacing: -1.5px; }
	.cs-buy__alias { font-size: 15px; }
	.cs-badges { font-size: 11px; gap: 6px 16px; }
	.cs-price { font-size: 30px; }
	.cs-tier { padding: 10px; }
	.cs-tier__price { font-size: 15px; }
	.cs-sizes { display: grid; grid-template-columns: 1fr 1fr; }
	.cs-size { padding: 0 10px; font-size: 13px; }
	.cs-buy__cta { flex-direction: row; gap: 10px; }
	.cs-buy__form { gap: 20px; }
	.cs-buy__cta .cs-optgroup .cs-eyebrow { display: none; }
	.cs-qty { width: 132px; height: 56px; }
	.cs-qty button { width: 44px; height: 54px; font-size: 18px; }
	.cs-buy__atc { min-height: 56px; flex: 1 1 auto; }
	.cs-assure { display: block; padding-top: 0; border-top: 0; }
	.cs-assure span:not(:last-child)::after { content: " · "; }
}

/* Specs + COA */
.cs-pdetail { display: grid; grid-template-columns: 1.3fr 1fr; gap: 80px; padding: 80px var(--g); border-bottom: 1px solid var(--cs-line); }
.cs-pdetail__col { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.cs-specs { border-top: 1px solid var(--cs-text); }
.cs-spec { display: grid; grid-template-columns: 220px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--cs-line); font-size: 15px; line-height: 1.5; }
.cs-spec__k { font-family: var(--cs-mono); font-size: 12px; letter-spacing: 1px; color: var(--cs-muted); padding-top: 2px; text-transform: uppercase; }
.cs-spec__v { min-width: 0; overflow-wrap: anywhere; }
.cs-spec__v.is-seq { font-family: var(--cs-mono); font-size: 14px; }
.cs-coanote { font-size: 14px; line-height: 1.6; color: var(--cs-muted); }
@media (max-width: 900px) {
	.cs-pdetail { grid-template-columns: 1fr; gap: 0; padding: 0; border-bottom: 0; }
	.cs-pdetail__col { padding: 36px var(--g); gap: 16px; border-bottom: 1px solid var(--cs-line); }
	.cs-pdetail__col:last-child { background: var(--cs-band); }
	.cs-pdetail__col > .cs-h3 { display: none; }
	.cs-pdetail__col:last-child .cs-coacard { padding: 0; border: 0; background: none; }
	.cs-spec { grid-template-columns: 1fr; gap: 6px; padding: 14px 0; font-size: 16px; }
	.cs-spec__k { font-size: 11px; }
	.cs-spec__v.is-seq { font-family: var(--cs-sans); font-size: 16px; }
}

/* Literature */
.cs-lit { display: grid; grid-template-columns: 1.3fr 1fr; gap: 80px; padding: 80px var(--g); border-bottom: 1px solid var(--cs-line); }
.cs-lit__col { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.cs-lit__disclaimer { font-size: 14px; line-height: 1.7; color: var(--cs-muted); }
.cs-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cs-chip { padding: 7px 12px; border: 1px solid var(--cs-line); font-family: var(--cs-mono); font-size: 12px; color: var(--cs-muted); }
.cs-refs { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--cs-text); counter-reset: ref; }
.cs-refs li { display: grid; grid-template-columns: 32px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--cs-line); font-size: 14px; line-height: 1.55; color: var(--cs-muted); counter-increment: ref; }
.cs-refs li::before { content: counter(ref, decimal-leading-zero); font-family: var(--cs-mono); font-size: 12px; color: var(--cs-accent); padding-top: 2px; }
.cs-refs a { color: var(--cs-text); font-size: 12px; }
@media (max-width: 900px) { .cs-lit { grid-template-columns: 1fr; gap: 40px; padding: 40px var(--g); } }
.cs-related { padding: 72px var(--g) 80px; border-bottom: 1px solid var(--cs-line); }
.cs-related .cs-h3 { margin-bottom: 32px; }
@media (max-width: 768px) { .cs-related { padding: 40px var(--g); } .cs-related .cs-h3 { margin-bottom: 20px; font-size: 26px; } }

/* ==========================================================================
   COA library
   ========================================================================== */
.cs-coahero { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end; padding: 80px var(--g) 56px; border-bottom: 1px solid var(--cs-line); }
.cs-coahero__lookup { display: flex; flex-direction: column; gap: 12px; }
.cs-coahero__lookup .cs-label { color: var(--cs-text); font-size: 14px; }
@media (max-width: 900px) { .cs-coahero { grid-template-columns: 1fr; gap: 24px; padding: 32px var(--g); } }
.cs-coaresult { padding: 40px var(--g); border-bottom: 1px solid var(--cs-line); background: var(--cs-band); }
.cs-coaresult__inner { max-width: 640px; }
.cs-coaresult .cs-coacard { background: var(--cs-bg); }
.cs-coalib { padding: 40px var(--g) 72px; }
.cs-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.cs-tab { display: inline-flex; align-items: center; height: 36px; padding: 0 16px; border: 1px solid var(--cs-line); font-size: 14px; color: var(--cs-muted); text-decoration: none; background: transparent; cursor: pointer; }
.cs-tab:hover { color: var(--cs-text); }
.cs-tab.is-active { border-color: var(--cs-text); color: var(--cs-text); }
.cs-coalib__bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 20px; }
.cs-coalib__count { font-family: var(--cs-mono); font-size: 12px; letter-spacing: 1px; color: var(--cs-muted); text-transform: uppercase; }
.cs-table { width: 100%; border-collapse: collapse; }
.cs-table th { padding: 12px 0; border-bottom: 1px solid var(--cs-text); text-align: left; font-family: var(--cs-mono); font-size: 11px; letter-spacing: 1.5px; font-weight: 400; color: var(--cs-muted); text-transform: uppercase; }
.cs-table td { padding: 16px 12px 16px 0; border-bottom: 1px solid var(--cs-line); font-size: 15px; vertical-align: middle; }
.cs-table td.m { font-family: var(--cs-mono); font-size: 13px; color: var(--cs-muted); }
.cs-table td.mw { font-family: var(--cs-mono); font-size: 13px; }
.cs-table .cs-status { font-family: var(--cs-mono); font-size: 12px; letter-spacing: 1px; color: var(--cs-accent); text-transform: uppercase; }
.cs-table .cs-status.is-archived { color: var(--cs-muted); }
.cs-table tbody tr:first-child td { padding-top: 24px; }
.cs-table__empty { padding: 32px 0 !important; color: var(--cs-muted); }
.cs-coalib__foot { margin-top: 28px; font-size: 14px; color: var(--cs-muted); }
@media (max-width: 768px) {
	.cs-coalib { padding: 24px var(--g) 40px; }
	.cs-coalib__bar { flex-direction: column; align-items: flex-start; }
	.cs-table thead { display: none; }
	.cs-table, .cs-table tbody, .cs-table tr { display: block; }
	.cs-table tr { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 14px 0; border-bottom: 1px solid var(--cs-line); }
	.cs-table td, .cs-table tbody tr:first-child td { padding: 0; border: 0; font-size: 12px; }
	.cs-table td:nth-child(1) { font-size: 16px; }
	.cs-table td:nth-child(2) { grid-column: 2; grid-row: 1; text-align: right; }
	.cs-table td:nth-child(3) { grid-column: 1 / -1; color: var(--cs-text); }
	.cs-table td:nth-child(4), .cs-table td:nth-child(5) { display: inline; }
	.cs-table td:nth-child(6) { grid-column: 1; }
	.cs-table td:nth-child(7) { grid-column: 2; text-align: right; font-size: 14px; }
}

/* ==========================================================================
   Quality and testing
   ========================================================================== */
.cs-qhero { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end; padding: 120px var(--g) 96px; }
.cs-qhero .cs-display { font-size: clamp(48px, 6vw, 92px); letter-spacing: -3px; }
.cs-qhero__main { display: flex; flex-direction: column; gap: 28px; }
.cs-qhero .cs-lead { max-width: 560px; }
.cs-checks { padding: 0 var(--g); }
.cs-check { display: grid; grid-template-columns: 176px 1fr 1fr; gap: 0 32px; padding: 72px 0; border-top: 1px solid var(--cs-line); }
.cs-check__num { font-family: var(--cs-mono); font-size: 14px; color: var(--cs-accent); }
.cs-check__title { display: flex; flex-direction: column; gap: 12px; }
.cs-check__title .cs-eyebrow { font-size: 11px; }
.cs-check__title h2 { font-size: 36px; letter-spacing: -1px; line-height: 1.1; }
.cs-check__body { display: flex; flex-direction: column; gap: 28px; }
.cs-check__body > p { font-size: 17px; line-height: 1.7; color: var(--cs-muted); }
.cs-ask { padding: 24px; background: var(--cs-band); border: 1px solid var(--cs-line); display: flex; flex-direction: column; gap: 8px; }
.cs-ask p:first-child { font-family: var(--cs-mono); font-size: 11px; letter-spacing: 1.5px; color: var(--cs-accent); text-transform: uppercase; }
.cs-ask p:last-child { font-size: 15px; line-height: 1.6; }
@media (max-width: 900px) {
	.cs-qhero { grid-template-columns: 1fr; gap: 20px; padding: 40px var(--g) 36px; }
	.cs-check { grid-template-columns: 1fr; gap: 16px; padding: 36px 0; }
	.cs-check__title h2 { font-size: 26px; letter-spacing: -.5px; }
	.cs-check__body > p { font-size: 16px; }
	.cs-ask { padding: 18px; }
}
.cs-reading { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; padding: 96px var(--g); background: var(--cs-band); border-top: 1px solid var(--cs-line); border-bottom: 1px solid var(--cs-line); }
.cs-reading__copy { display: flex; flex-direction: column; gap: 24px; }
.cs-legend { border-top: 1px solid var(--cs-text); }
.cs-legend__row { display: grid; grid-template-columns: 38px 1fr; gap: 18px; padding: 16px 0; border-bottom: 1px solid var(--cs-line); }
.cs-legend__row > p:first-child { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--cs-accent); font-family: var(--cs-mono); font-size: 12px; color: var(--cs-accent); }
.cs-legend__row .cs-legend__t { font-size: 17px; }
.cs-legend__row .cs-legend__d { font-size: 14px; color: var(--cs-muted); margin-top: 2px; }
.cs-reading .cs-coacard { align-self: start; margin-top: 128px; background: var(--cs-bg); padding: 40px; }
.cs-reading .cs-kv { grid-template-columns: 22px 170px 1fr; font-size: 13px; }
.cs-reading .cs-kv > span:first-child { color: var(--cs-accent); }
.cs-reading .cs-kv > span:nth-child(2) { color: var(--cs-muted); }
@media (max-width: 900px) {
	.cs-reading { grid-template-columns: 1fr; gap: 28px; padding: 40px var(--g); }
	.cs-reading .cs-coacard { margin-top: 0; padding: 20px; }
	.cs-reading .cs-kv { grid-template-columns: 18px 1fr; }
	.cs-reading .cs-kv > span:last-child { grid-column: 2; text-align: left; }
}
.cs-cta { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 64px var(--g); border-bottom: 1px solid var(--cs-line); }
.cs-cta h2 { font-size: 40px; letter-spacing: -1px; }
@media (max-width: 768px) { .cs-cta { flex-direction: column; align-items: stretch; padding: 40px var(--g); } .cs-cta h2 { font-size: 28px; } .cs-cta .wp-block-buttons { flex-direction: column; } .cs-cta .wp-block-button__link { width: 100%; } }

/* ==========================================================================
   Research library + summary
   ========================================================================== */
.cs-rlib { padding: 56px var(--g) 80px; }
.cs-rlib__bar { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin-bottom: 20px; }
.cs-rlib__bar .cs-tabs { max-width: 800px; }
.cs-rlib__bar .cs-search { flex: 0 0 360px; }
.cs-rlib__bar .cs-search input { height: 46px; padding-left: 16px; }
.cs-rgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cs-rcard { display: flex; flex-direction: column; gap: 12px; min-height: 296px; padding: 28px; border: 1px solid var(--cs-line); color: var(--cs-text); text-decoration: none; }
.cs-rcard:hover { color: var(--cs-text); border-color: #3C4A5B; }
.cs-rcard__area { font-family: var(--cs-mono); font-size: 11px; letter-spacing: 1.5px; color: var(--cs-muted); text-transform: uppercase; }
.cs-rcard__name { font-size: 28px; font-weight: 400; letter-spacing: -.5px; }
.cs-rcard__text { font-size: 15px; line-height: 1.6; color: var(--cs-muted); }
.cs-rcard__foot { display: flex; justify-content: space-between; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--cs-line); font-family: var(--cs-mono); font-size: 11px; letter-spacing: 1px; color: var(--cs-muted); text-transform: uppercase; }
.cs-rcard__foot span:last-child { color: var(--cs-accent); }
@media (max-width: 1100px) { .cs-rgrid { grid-template-columns: 1fr 1fr; } .cs-rlib__bar { flex-direction: column; } .cs-rlib__bar .cs-search { flex: 0 0 auto; width: 100%; } }
@media (max-width: 768px) { .cs-rlib { padding: 24px var(--g) 40px; } .cs-rgrid { grid-template-columns: 1fr; gap: 12px; } .cs-rcard { min-height: 0; padding: 20px; } .cs-rcard__name { font-size: 24px; } .cs-rlib__bar .cs-tabs { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; padding-bottom: 4px; } .cs-tab { white-space: nowrap; } }

.cs-rsum { display: grid; grid-template-columns: 1fr 380px; gap: 96px; padding: 72px var(--g) 96px; }
.cs-rsum__main { max-width: 860px; min-width: 0; }
.cs-rsum__head { display: flex; flex-direction: column; gap: 18px; padding-bottom: 40px; border-bottom: 1px solid var(--cs-line); }
.cs-rsum__head .cs-h1 { font-size: 64px; letter-spacing: -2px; }
.cs-rsum__head .cs-lead { max-width: 680px; }
.cs-rsum__content h2 { font-size: 26px; letter-spacing: -.3px; margin: 0 0 14px; padding-top: 32px; font-weight: 400; }
.cs-rsum__content p { font-size: 17px; line-height: 1.75; color: var(--cs-muted); }
.cs-rsum__content p + p { margin-top: 16px; }
.cs-rsum__content ul { margin: 0; padding-left: 20px; color: var(--cs-muted); font-size: 17px; line-height: 1.75; }
.cs-rsum__content > .wp-block-group { padding-bottom: 32px; border-bottom: 1px solid var(--cs-line); }
.cs-rsum__content > .wp-block-group:last-child { border-bottom: 0; }
.cs-rsum__aside { display: flex; flex-direction: column; gap: 32px; }
.cs-rsum__card { display: flex; flex-direction: column; gap: 14px; padding: 28px; background: var(--cs-band); border: 1px solid var(--cs-line); }
.cs-rsum__card .cs-rsum__cname { font-size: 22px; }
.cs-rsum__card .cs-rsum__cmeta { font-family: var(--cs-mono); font-size: 11px; letter-spacing: 1px; color: var(--cs-muted); text-transform: uppercase; }
.cs-rsum__refs { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--cs-text); counter-reset: ref; }
.cs-rsum__refs li { display: grid; grid-template-columns: 22px 1fr; gap: 8px; padding: 14px 0; border-bottom: 1px solid var(--cs-line); font-size: 14px; line-height: 1.5; color: var(--cs-muted); counter-increment: ref; }
.cs-rsum__refs li::before { content: counter(ref); font-family: var(--cs-mono); font-size: 12px; color: var(--cs-accent); }
.cs-rsum__refs a { display: inline-block; margin-top: 4px; color: var(--cs-text); font-size: 12px; }
@media (max-width: 1100px) { .cs-rsum { grid-template-columns: 1fr; gap: 48px; } }
@media (max-width: 768px) { .cs-rsum { padding: 32px var(--g) 48px; } .cs-rsum__head .cs-h1 { font-size: 44px; letter-spacing: -1.5px; } .cs-rsum__content h2 { font-size: 22px; } .cs-rsum__content p { font-size: 16px; } }

/* ==========================================================================
   About / FAQ / Contact / Wholesale
   ========================================================================== */
.cs-why { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--cs-line); }
.cs-why .cs-ph { height: 520px; border-width: 0 1px 0 0; }
.cs-why__copy { display: flex; flex-direction: column; justify-content: center; gap: 24px; padding: 72px var(--g) 72px 64px; }
.cs-why__copy h2 { font-size: 48px; letter-spacing: -1.2px; }
.cs-why__copy p { font-size: 17px; line-height: 1.7; color: var(--cs-muted); }
@media (max-width: 900px) { .cs-why { grid-template-columns: 1fr; } .cs-why .cs-ph { height: 300px; border-width: 0 0 1px 0; } .cs-why__copy { padding: 40px var(--g); } .cs-why__copy h2 { font-size: 30px; } }
.cs-pillars { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--cs-line); }
.cs-pillar { display: flex; flex-direction: column; gap: 14px; padding: 40px 32px; border-left: 1px solid var(--cs-line); }
.cs-pillar:first-child { border-left: 0; padding-left: var(--g); }
.cs-pillar:last-child { padding-right: var(--g); }
.cs-pillar h3 { font-size: 26px; letter-spacing: -.5px; }
.cs-pillar p:last-child { font-size: 15px; line-height: 1.6; color: var(--cs-muted); }
@media (max-width: 900px) { .cs-pillars { grid-template-columns: 1fr; } .cs-pillar, .cs-pillar:first-child, .cs-pillar:last-child { border-left: 0; border-top: 1px solid var(--cs-line); padding: 28px var(--g); } .cs-pillar:first-child { border-top: 0; } }

.cs-faq { padding: 20px var(--g) 80px; }
.cs-faqsec { display: grid; grid-template-columns: 320px 1fr; padding-top: 36px; margin-top: 32px; border-top: 1px solid var(--cs-text); }
.cs-faqsec:first-child { margin-top: 0; }
.cs-faqsec__items { display: flex; flex-direction: column; }
.cs-qa { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; padding: 0 0 28px; margin-bottom: 20px; border-bottom: 1px solid var(--cs-line); }
.cs-qa h3 { font-size: 18px; font-weight: 400; line-height: 1.4; }
.cs-qa p { font-size: 15px; line-height: 1.75; color: var(--cs-muted); }
@media (max-width: 900px) { .cs-faq { padding: 8px var(--g) 40px; } .cs-faqsec { grid-template-columns: 1fr; gap: 20px; padding-top: 24px; } .cs-qa { grid-template-columns: 1fr; gap: 10px; padding-bottom: 20px; } }

.cs-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 96px; padding: 48px var(--g) 80px; }
.cs-contact__info { border-top: 1px solid var(--cs-text); align-self: start; }
.cs-contact__row { padding: 18px 0; border-bottom: 1px solid var(--cs-line); display: flex; flex-direction: column; gap: 6px; }
.cs-contact__row p:first-child { font-family: var(--cs-mono); font-size: 11px; letter-spacing: 1.5px; color: var(--cs-muted); text-transform: uppercase; }
.cs-contact__row p:last-child { font-size: 17px; }
.cs-form { display: flex; flex-direction: column; gap: 20px; }
.cs-form .cs-btn { align-self: flex-start; min-width: 170px; }
@media (max-width: 900px) { .cs-contact { grid-template-columns: 1fr; gap: 40px; padding: 32px var(--g) 48px; } .cs-form .cs-btn { align-self: stretch; } }

.cs-wholesale { display: grid; grid-template-columns: 1fr 1fr; gap: 96px; padding: 96px var(--g); }
.cs-wholesale__copy { display: flex; flex-direction: column; gap: 24px; }
.cs-wholesale__copy .cs-h2 { font-size: 64px; letter-spacing: -2px; line-height: 1.02; }
.cs-numlist { border-top: 1px solid var(--cs-text); margin-top: 16px; }
.cs-numlist__row { display: grid; grid-template-columns: 40px 1fr; padding: 16px 0; border-bottom: 1px solid var(--cs-line); font-size: 17px; }
.cs-numlist__row > p:first-child { font-family: var(--cs-mono); font-size: 12px; color: var(--cs-accent); padding-top: 3px; }
.cs-panel { padding: 40px; background: var(--cs-band); border: 1px solid var(--cs-line); display: flex; flex-direction: column; gap: 20px; align-self: start; }
.cs-panel h2 { font-size: 32px; letter-spacing: -.6px; }
.cs-panel .cs-btn { width: 100%; }
@media (max-width: 900px) { .cs-wholesale { grid-template-columns: 1fr; gap: 40px; padding: 40px var(--g); } .cs-wholesale__copy .cs-h2 { font-size: 40px; letter-spacing: -1.2px; } .cs-panel { padding: 24px; } }

/* ==========================================================================
   Age check
   ========================================================================== */
.cs-agegate { position: fixed; inset: 0; z-index: 99999; display: none; align-items: center; justify-content: center; padding: 20px; background: var(--cs-deep); }
html.cs-age-pending .cs-agegate { display: flex; }
html.cs-age-pending body { overflow: hidden; }
.cs-agegate__box { width: 100%; max-width: 676px; display: flex; flex-direction: column; gap: 28px; padding: 56px; background: var(--cs-bg); border: 1px solid var(--cs-line); }
.cs-agegate__brand { font-weight: 600; font-size: 20px; letter-spacing: 4px; }
.cs-agegate__title { font-size: 36px; line-height: 1.12; letter-spacing: -.8px; font-weight: 400; }
.cs-agegate__text { font-size: 15px; line-height: 1.75; color: var(--cs-muted); }
.cs-agegate__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cs-agegate__btns .cs-btn--ghost { border-color: var(--cs-line); }
.cs-agegate__denied { display: none; font-size: 15px; color: var(--cs-muted); }
.cs-agegate.is-denied .cs-agegate__btns { display: none; }
.cs-agegate.is-denied .cs-agegate__denied { display: block; }
@media (max-width: 600px) { .cs-agegate__box { padding: 32px 24px; gap: 20px; } .cs-agegate__title { font-size: 26px; } .cs-agegate__btns { grid-template-columns: 1fr; } }

/* ==========================================================================
   WooCommerce — shared
   ========================================================================== */
.woocommerce-notices-wrapper:empty { display: none; }
.cs-notices { padding: 0 var(--g); }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
	list-style: none; margin: 16px 0 !important; padding: 14px 18px !important; background: var(--cs-band) !important; color: var(--cs-text) !important; border: 1px solid var(--cs-line) !important; border-left: 2px solid var(--cs-accent) !important; font-size: 14px; line-height: 1.6; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; border-radius: 0 !important;
}
.woocommerce-error { border-left-color: #FF8A8A !important; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none !important; }
.woocommerce-message .button, .woocommerce-info .button { min-height: 36px; padding: 0 14px; font-size: 13px; order: 2; margin-left: auto; }
.woocommerce-error li { margin: 0; }
.woocommerce form .form-row { margin: 0 0 18px; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 500; color: var(--cs-muted); line-height: 1.4; }
.woocommerce form .form-row .required { color: var(--cs-muted); text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { color: #6E7B89; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: #FF8A8A; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 8px); float: left; }
.woocommerce form .form-row-last { float: right; }
.woocommerce form .form-row-wide { clear: both; }
.woocommerce form .clear, .woocommerce-page form .clear { clear: both; }
.select2-container--default .select2-selection--single { background: transparent; height: 52px; display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--cs-text); line-height: 50px; padding-left: 0; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 50px; right: 10px; }
.select2-dropdown { background: var(--cs-bg); color: var(--cs-text); border-color: var(--cs-line); border-radius: 0; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--cs-raised); color: var(--cs-text); }
.select2-container--default .select2-search--dropdown .select2-search__field { background: var(--cs-bg); color: var(--cs-text); border-color: var(--cs-line); }
.woocommerce .blockUI.blockOverlay { background: rgba(20,28,37,.6) !important; }
.woocommerce .quantity .qty { width: 56px; }
.woocommerce-password-strength { margin-top: 8px; padding: 6px 10px; font-size: 12px; background: var(--cs-band); color: var(--cs-text); border: 1px solid var(--cs-line); }
.woocommerce-password-hint { display: block; margin-top: 6px; font-size: 12px; color: var(--cs-muted); }
.woocommerce form .show-password-input { color: var(--cs-muted); }
.woocommerce-page .wp-block-post-content > .woocommerce { width: 100%; }
.cs-shortcode-page { padding: 0; }

/* Line item (cart, checkout, account, confirmation) */
.cs-li { display: grid; grid-template-columns: 64px 1fr auto; gap: 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--cs-line); }
.cs-li__img { width: 64px; height: 64px; background: var(--cs-frame); border: 1px solid var(--cs-line); overflow: hidden; }
.cs-li__img img { width: 100%; height: 100%; object-fit: cover; }
.cs-li__name { font-size: 16px; }
.cs-li__name a { text-decoration: none; }
.cs-li__meta { margin-top: 4px; font-family: var(--cs-mono); font-size: 11px; letter-spacing: .5px; color: var(--cs-muted); text-transform: uppercase; }
.cs-li__meta .cs-accent { display: block; margin-top: 4px; color: var(--cs-accent); font-size: 10px; letter-spacing: 1px; }
.cs-li__price { font-size: 15px; white-space: nowrap; }

/* ---------- Cart ---------- */
.cs-cart { display: grid; grid-template-columns: 1fr 440px; gap: 64px; padding: 64px var(--g) 96px; align-items: start; }
.cs-cart__head { display: flex; flex-direction: column; gap: 14px; padding-bottom: 28px; border-bottom: 1px solid var(--cs-text); }
.cs-cart__head .cs-h1 { font-size: 64px; letter-spacing: -2px; }
.cs-cart .cs-li { grid-template-columns: 98px 1fr 134px 110px 40px; gap: 24px; padding: 24px 0; }
.cs-cart .cs-li__img { width: 98px; height: 98px; }
.cs-cart .cs-li__name { font-size: 20px; }
.cs-cart .cs-li__price { text-align: right; font-size: 16px; }
.cs-cart .cs-qty { width: 134px; height: 46px; }
.cs-cart .cs-qty button { width: 44px; height: 44px; font-size: 16px; }
.cs-cart .cs-qty input { height: 44px; font-size: 14px; }
.cs-cart__remove { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; color: var(--cs-muted); text-decoration: none; font-size: 22px; line-height: 1; }
.cs-cart__remove:hover { color: var(--cs-text); }
.cs-cart__foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 24px; }
.cs-cart__update { background: none; border: 0; color: var(--cs-muted); font-size: 14px; text-decoration: underline; cursor: pointer; padding: 0; }
.cs-cart__update[disabled] { opacity: .5; cursor: default; }
.cs-summary { display: flex; flex-direction: column; gap: 14px; padding: 36px; background: var(--cs-band); border: 1px solid var(--cs-line); position: sticky; top: 24px; }
.cs-summary__title { padding-bottom: 18px; border-bottom: 1px solid var(--cs-text); }
.cs-summary__row { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; color: var(--cs-muted); }
.cs-summary__row span:last-child { color: var(--cs-text); text-align: right; }
.cs-summary__total { display: flex; justify-content: space-between; padding-top: 18px; margin-top: 4px; border-top: 1px solid var(--cs-line); font-size: 24px; }
.cs-summary__nudge { padding: 14px 16px; border: 1px solid var(--cs-line); font-size: 13px; color: var(--cs-muted); line-height: 1.5; }
.cs-summary .cs-btn { width: 100%; }
.cs-summary__fine { font-size: 13px; line-height: 1.6; color: var(--cs-muted); }
.cs-cart-empty { padding: 96px var(--g); display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
@media (max-width: 1100px) { .cs-cart { grid-template-columns: 1fr; gap: 40px; } .cs-summary { position: static; } }
@media (max-width: 768px) {
	.cs-cart { padding: 32px var(--g) 48px; }
	.cs-cart__head .cs-h1 { font-size: 40px; letter-spacing: -1.2px; }
	.cs-cart .cs-li { grid-template-columns: 72px 1fr 32px; grid-template-areas: "img info rm" "img qty price"; gap: 10px 14px; }
	.cs-cart .cs-li__img { grid-area: img; width: 72px; height: 72px; }
	.cs-cart .cs-li > div:nth-child(2) { grid-area: info; }
	.cs-cart .cs-li .cs-qty { grid-area: qty; width: 116px; height: 40px; }
	.cs-cart .cs-li .cs-qty button { width: 36px; height: 38px; }
	.cs-cart .cs-li .cs-qty input { height: 38px; }
	.cs-cart .cs-li__price { grid-area: price; }
	.cs-cart__remove { grid-area: rm; }
	.cs-cart .cs-li__name { font-size: 17px; }
	.cs-summary { padding: 24px; }
}

/* ---------- Checkout ---------- */
.cs-checkout-wrap { padding: 0; }
form.cs-checkout { display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100vh - 80px); margin: 0; }
.cs-checkout__form { padding: 64px 64px 96px var(--g); }
.cs-checkout__side { padding: 64px var(--g) 96px 48px; background: var(--cs-band); border-left: 1px solid var(--cs-line); }
.cs-checkout__side-inner { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 0; }
.cs-cstep { margin-bottom: 40px; }
.cs-cstep__title { margin-bottom: 20px; }
.cs-checkout .woocommerce-billing-fields h3, .cs-checkout .woocommerce-shipping-fields h3, .cs-checkout .woocommerce-additional-fields > h3 { display: none; }
.cs-checkout .woocommerce-billing-fields__field-wrapper, .cs-checkout .woocommerce-additional-fields__field-wrapper { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0 12px; }
.cs-checkout .form-row { grid-column: span 6; float: none !important; width: auto !important; }
.cs-checkout .form-row-first, .cs-checkout .form-row-last { grid-column: span 3; }
.cs-checkout .cs-col-third { grid-column: span 2; }
.cs-checkout #billing_country_field { display: none !important; }
.woocommerce-page main .woocommerce, .cs-main .woocommerce { max-width: none; margin: 0; }
.cs-checkout .woocommerce-account-fields { margin-top: 8px; }
.cs-checkout .woocommerce-account-fields .form-row { margin-bottom: 12px; }
.cs-checkout .create-account label.checkbox, .cs-checkout label.woocommerce-form__label-for-checkbox { display: flex; gap: 10px; align-items: center; font-size: 14px; color: var(--cs-text); }
.cs-checkout .woocommerce-form-login-toggle .woocommerce-info { margin-top: 0 !important; }
.cs-checkout .woocommerce-form-coupon-toggle { display: none; }
.cs-payment { min-height: 110px; padding: 28px 24px; border: 1px dashed var(--cs-line); }
.cs-payment ul.wc_payment_methods { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.cs-payment .wc_payment_method > label { font-size: 15px; display: inline-flex; gap: 10px; align-items: center; }
.cs-payment .payment_box { margin-top: 12px; padding: 16px; background: var(--cs-band); border: 1px solid var(--cs-line); font-size: 14px; color: var(--cs-muted); }
.cs-payment .payment_box::before { display: none; }
.cs-payment .woocommerce-notice, .cs-payment__empty { font-family: var(--cs-mono); font-size: 12px; letter-spacing: 1.5px; color: var(--cs-muted); text-transform: uppercase; background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; }
.cs-payment .woocommerce-privacy-policy-text, .cs-checkout .woocommerce-privacy-policy-text { display: none; }
.cs-review__title { padding-bottom: 18px; border-bottom: 1px solid var(--cs-text); }
.cs-review .cs-li { grid-template-columns: 56px 1fr auto; padding: 14px 0; }
.cs-review .cs-li__img { width: 56px; height: 56px; }
.cs-review__totals { padding: 20px 0 0; display: flex; flex-direction: column; gap: 10px; }
.cs-review__totals .cs-summary__row { color: var(--cs-muted); }
.cs-review__totals .cs-summary__total { font-size: 22px; margin-top: 8px; }
.cs-review__totals .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; text-align: right; }
.cs-review__totals .woocommerce-shipping-methods li { display: flex; gap: 8px; justify-content: flex-end; align-items: center; font-size: 14px; }
.cs-review__totals .woocommerce-shipping-methods label { color: var(--cs-text); }
.cs-ack { display: grid; grid-template-columns: 18px 1fr; gap: 12px; margin: 28px 0 24px !important; font-size: 14px; line-height: 1.6; color: var(--cs-muted); }
.cs-ack input { width: 16px; height: 16px; margin: 3px 0 0; accent-color: var(--cs-text); }
.cs-ack a { color: var(--cs-text); }
.cs-ack .required { display: none; }
.cs-checkout #place_order { width: 100%; min-height: 60px; font-size: 16px; }
.cs-checkout__fine { margin-top: 24px; font-size: 14px; color: var(--cs-muted); line-height: 1.6; }
@media (max-width: 900px) {
	form.cs-checkout { grid-template-columns: 1fr; min-height: 0; }
	.cs-checkout__form { padding: 32px var(--g) 8px; }
	.cs-checkout__side { padding: 32px var(--g) 48px; border-left: 0; border-top: 1px solid var(--cs-line); }
	.cs-checkout .form-row-first, .cs-checkout .form-row-last, .cs-checkout .cs-col-third { grid-column: span 6; }
	.cs-checkout #billing_state_field, .cs-checkout #billing_postcode_field { grid-column: span 3; }
}

/* ---------- Order confirmation ---------- */
.cs-thanks { padding: 80px var(--g) 96px; max-width: calc(1000px + var(--g)); }
.cs-thanks__head { display: flex; flex-direction: column; gap: 18px; }
.cs-thanks__head .cs-h1 { font-size: 64px; letter-spacing: -2px; }
.cs-thanks__head .cs-lead { font-size: 17px; }
.cs-thanks__head .cs-lead code { font-family: var(--cs-mono); color: var(--cs-text); font-size: 16px; }
.cs-next { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 48px 0; }
.cs-next__card { display: flex; flex-direction: column; gap: 10px; padding: 24px; border: 1px solid var(--cs-line); }
.cs-next__card h3 { font-size: 18px; font-weight: 400; }
.cs-next__card p:last-child { font-size: 14px; line-height: 1.6; color: var(--cs-muted); }
.cs-items__title { padding-bottom: 14px; border-bottom: 1px solid var(--cs-text); }
.cs-items .cs-li { grid-template-columns: 74px 1fr 100px 120px 110px; gap: 16px; }
.cs-items .cs-li__img { width: 74px; height: 74px; }
.cs-items .cs-li__name { font-size: 17px; }
.cs-items .cs-li__qty { font-family: var(--cs-mono); font-size: 12px; color: var(--cs-muted); }
.cs-items .cs-li__coa { text-align: right; font-size: 14px; }
.cs-thanks__btns { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 40px; }
@media (max-width: 768px) {
	.cs-thanks { padding: 40px var(--g) 56px; }
	.cs-thanks__head .cs-h1 { font-size: 38px; letter-spacing: -1.2px; }
	.cs-next { grid-template-columns: 1fr; margin: 28px 0; }
	.cs-items .cs-li { grid-template-columns: 56px 1fr auto; grid-template-areas: "img info price" "img qty coa"; gap: 4px 14px; }
	.cs-items .cs-li__img { grid-area: img; width: 56px; height: 56px; }
	.cs-items .cs-li > div:nth-child(2) { grid-area: info; }
	.cs-items .cs-li__qty { grid-area: qty; }
	.cs-items .cs-li__price { grid-area: price; text-align: right; }
	.cs-items .cs-li__coa { grid-area: coa; }
	.cs-thanks__btns .cs-btn { width: 100%; }
}

/* ---------- My account ---------- */
.cs-account { display: grid; grid-template-columns: 220px 1fr; gap: 64px; padding: 64px var(--g) 96px; align-items: start; }
.cs-account__nav .cs-eyebrow { padding-bottom: 14px; border-bottom: 1px solid var(--cs-text); }
.cs-account__nav ul { list-style: none; margin: 0; padding: 0; }
.cs-account__nav a { display: block; padding: 16px 0; border-bottom: 1px solid var(--cs-line); font-size: 15px; color: var(--cs-muted); text-decoration: none; }
.cs-account__nav .is-active a, .cs-account__nav a:hover { color: var(--cs-text); }
.cs-account__main { min-width: 0; }
.cs-account__head { display: flex; flex-direction: column; gap: 12px; margin-bottom: 28px; }
.cs-account__head .cs-h1 { font-size: 64px; letter-spacing: -2px; }
.cs-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 36px; }
.cs-kpi { display: flex; flex-direction: column; gap: 8px; padding: 24px; border: 1px solid var(--cs-line); }
.cs-kpi p:first-child { font-family: var(--cs-mono); font-size: 11px; letter-spacing: 1.5px; color: var(--cs-muted); text-transform: uppercase; }
.cs-kpi p:last-child { font-size: 22px; }
.cs-otable td .cs-actions-cell { display: flex; justify-content: flex-end; gap: 16px; }
.cs-otable th:last-child, .cs-otable td:last-child { text-align: right; padding-right: 0; }
.cs-otable td:first-child a { font-family: var(--cs-mono); font-weight: 500; }
.cs-otable td a { font-size: 14px; }
.cs-order__back { font-size: 14px; color: var(--cs-muted); text-decoration: none; }
.cs-order__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin: 12px 0 40px; flex-wrap: wrap; }
.cs-order__head .cs-h1 { font-size: 64px; letter-spacing: -2px; }
.cs-order__head .cs-small { margin-top: 12px; }
.cs-order__btns { display: flex; gap: 12px; flex-wrap: wrap; }
.cs-progress { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 32px; }
.cs-progress__step { padding-top: 16px; border-top: 2px solid var(--cs-line); }
.cs-progress__step.is-done { border-top-color: var(--cs-accent); }
.cs-progress__step p:first-child { font-size: 15px; }
.cs-progress__step p:last-child { margin-top: 6px; font-family: var(--cs-mono); font-size: 11px; letter-spacing: 1px; color: var(--cs-muted); text-transform: uppercase; }
.cs-progress__step:not(.is-done) p:first-child { color: var(--cs-muted); }
.cs-tracking { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 24px; margin-bottom: 40px; background: var(--cs-band); border: 1px solid var(--cs-line); font-size: 15px; }
.cs-tracking code { font-family: var(--cs-mono); font-size: 14px; }
.cs-order__foot { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 32px; margin-top: 40px; }
.cs-order__foot address { font-style: normal; font-size: 15px; line-height: 1.6; }
.cs-order__foot .cs-eyebrow { font-size: 11px; margin-bottom: 10px; }
.cs-order__totals { display: flex; flex-direction: column; gap: 6px; }
.cs-order__totals .cs-summary__row { font-size: 14px; }
.cs-account .woocommerce-Addresses, .cs-account .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.cs-account .woocommerce-Address { padding: 28px; border: 1px solid var(--cs-line); }
.cs-account .woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 16px; }
.cs-account .woocommerce-Address-title h2 { font-size: 22px; }
.cs-account .woocommerce-Address address { font-style: normal; color: var(--cs-muted); line-height: 1.7; }
.cs-account .woocommerce-address-fields__field-wrapper, .cs-account .woocommerce-EditAccountForm { max-width: 640px; }
.cs-account fieldset { border: 1px solid var(--cs-line); padding: 24px; margin: 24px 0; }
.cs-account legend { padding: 0 8px; font-family: var(--cs-mono); font-size: 12px; letter-spacing: 1.5px; color: var(--cs-muted); text-transform: uppercase; }
.cs-account p.woocommerce-Message, .cs-account .woocommerce-info { margin-top: 0 !important; }
.cs-alertlist .cs-li { grid-template-columns: 64px 1fr auto; }
@media (max-width: 900px) {
	.cs-account { grid-template-columns: 1fr; gap: 28px; padding: 32px var(--g) 48px; }
	.cs-account__nav ul { display: flex; overflow-x: auto; gap: 20px; border-bottom: 1px solid var(--cs-line); }
	.cs-account__nav a { border: 0; white-space: nowrap; padding: 12px 0; }
	.cs-account__nav .is-active a { border-bottom: 1px solid var(--cs-text); }
	.cs-account__nav .cs-eyebrow { display: none; }
	.cs-account__head .cs-h1, .cs-order__head .cs-h1 { font-size: 40px; letter-spacing: -1.2px; }
	.cs-kpis { grid-template-columns: 1fr; gap: 10px; }
	.cs-progress { grid-template-columns: 1fr 1fr; }
	.cs-order__foot { grid-template-columns: 1fr; }
	.cs-account .woocommerce-Addresses, .cs-account .u-columns { grid-template-columns: 1fr; }
	.cs-otable thead { display: none; }
	.cs-otable, .cs-otable tbody, .cs-otable tr { display: block; }
	.cs-otable tr { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 16px 0; border-bottom: 1px solid var(--cs-line); }
	.cs-otable td, .cs-table.cs-otable tbody tr:first-child td { padding: 0; border: 0; font-size: 14px; }
	.cs-otable td:last-child { grid-column: 1 / -1; text-align: left; }
	.cs-otable td .cs-actions-cell { justify-content: flex-start; margin-top: 6px; }
	.cs-tracking { flex-direction: column; align-items: flex-start; }
}

/* ---------- Sign in / register ---------- */
.cs-login { display: grid; grid-template-columns: 1fr 1fr; }
.cs-login__col { display: flex; flex-direction: column; gap: 20px; padding: 64px 64px 96px var(--g); }
.cs-login__col + .cs-login__col { border-left: 1px solid var(--cs-line); padding: 64px var(--g) 96px 64px; }
.cs-login__col h2 { font-size: 36px; letter-spacing: -.8px; margin-bottom: 8px; }
.cs-login form { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.cs-login .woocommerce-form-login__rememberme { display: none; }
.cs-login .cs-btn { width: 100%; }
.cs-login .lost_password a { font-size: 14px; color: var(--cs-muted); }
.cs-login .woocommerce-privacy-policy-text { font-size: 13px; color: var(--cs-muted); margin-bottom: 16px; }
@media (max-width: 900px) { .cs-login { grid-template-columns: 1fr; } .cs-login__col, .cs-login__col + .cs-login__col { padding: 32px var(--g); border-left: 0; } .cs-login__col + .cs-login__col { border-top: 1px solid var(--cs-line); } }

/* ---------- Order tracking ---------- */
.cs-track { display: grid; grid-template-columns: 1fr 1fr; gap: 96px; padding: 96px var(--g) 120px; }
.cs-track__copy { display: flex; flex-direction: column; gap: 20px; }
.cs-track form.track_order { margin: 0; display: flex; flex-direction: column; }
.cs-track form.track_order .form-row { width: 100% !important; float: none !important; }
.cs-track form.track_order .cs-btn { width: 100%; }
.cs-track__signin { margin-top: 16px; font-size: 14px; }
.cs-track__signin a { color: var(--cs-muted); }
.cs-track-result { padding: 0 var(--g) 80px; }
@media (max-width: 900px) { .cs-track { grid-template-columns: 1fr; gap: 32px; padding: 40px var(--g) 56px; } }

/* ==========================================================================
   Legal pages
   ========================================================================== */
.cs-legal { display: grid; grid-template-columns: 280px minmax(0, 780px); gap: 96px; padding: 64px var(--g) 96px; }
.cs-legal__nav { display: flex; flex-direction: column; gap: 32px; position: sticky; top: 24px; align-self: start; }
.cs-legal__docs { display: flex; flex-direction: column; gap: 4px; margin-top: 14px; }
.cs-legal__docs a { font-size: 15px; color: var(--cs-muted); text-decoration: none; }
.cs-legal__docs a.is-active, .cs-legal__docs a:hover { color: var(--cs-text); }
.cs-legal__toc { margin-top: 14px; border-top: 1px solid var(--cs-text); }
.cs-legal__toc a { display: block; padding: 12px 0; border-bottom: 1px solid var(--cs-line); font-size: 14px; color: var(--cs-muted); text-decoration: none; }
.cs-legal__toc a:hover, .cs-legal__toc a.is-active { color: var(--cs-text); }
.cs-legal__body { min-width: 0; }
.cs-legal__head { display: flex; flex-direction: column; gap: 14px; padding-bottom: 28px; border-bottom: 1px solid var(--cs-line); }
.cs-legal__head .wp-block-post-title { font-size: 64px; letter-spacing: -2px; line-height: 1.02; }
.cs-legal__content h2 { font-size: 22px; font-weight: 400; margin: 0; padding-top: 32px; scroll-margin-top: 24px; }
.cs-legal__content h2 + * { margin-top: 12px; }
.cs-legal__content p, .cs-legal__content li { font-size: 16px; line-height: 1.8; color: var(--cs-muted); }
.cs-legal__content p + p { margin-top: 12px; }
.cs-legal__content ul { margin: 12px 0 0; padding-left: 20px; }
.cs-legal__content .cs-legal__sec { padding-bottom: 28px; border-bottom: 1px solid var(--cs-line); }
.cs-legal__content .cs-legal__draft { margin-top: 28px; padding: 14px 16px; border: 1px dashed #6E7B89; font-size: 14px; }
@media (max-width: 900px) {
	.cs-legal { grid-template-columns: 1fr; gap: 24px; padding: 32px var(--g) 56px; }
	.cs-legal__nav { position: static; }
	.cs-legal__toc { display: none; }
	.cs-legal__docs { flex-direction: row; flex-wrap: wrap; gap: 8px 20px; }
	.cs-legal__head .wp-block-post-title { font-size: 40px; letter-spacing: -1.2px; }
}

/* ---------- 404 + generic page ---------- */
.cs-404 { display: flex; flex-direction: column; gap: 24px; align-items: flex-start; padding: 140px var(--g) 160px; }
.cs-404 .cs-display { font-size: clamp(56px, 8vw, 120px); }
.cs-404__search { width: min(560px, 100%); }
@media (max-width: 768px) { .cs-404 { padding: 64px var(--g) 80px; } }
.cs-page { padding: 72px var(--g) 96px; }
.cs-page .wp-block-post-title { font-size: 64px; letter-spacing: -2px; margin-bottom: 32px; }
.cs-page__content { max-width: 860px; }
.cs-page__content > * + * { margin-top: 16px; }
.cs-page__content p, .cs-page__content li { font-size: 17px; line-height: 1.75; color: var(--cs-muted); }
.cs-page__content h2 { font-size: 28px; margin-top: 40px; }
@media (max-width: 768px) { .cs-page { padding: 32px var(--g) 56px; } .cs-page .wp-block-post-title { font-size: 40px; } }

/* Editor tweaks */
.editor-styles-wrapper { background: var(--cs-bg); color: var(--cs-text); }
.editor-styles-wrapper .cs-ph { min-height: 120px; }
.cs-checkout .cs-ack label, .cs-ack label { font-weight: 400; }
.cs-account__nav li { padding: 0 !important; margin: 0 !important; }
.cs-account__nav a, .woocommerce-account .woocommerce-MyAccount-navigation .is-active a { text-decoration: none !important; }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button { float: right; min-height: 36px; padding: 0 16px; margin-left: 16px; background: transparent !important; color: var(--cs-text) !important; border: 1px solid var(--cs-text) !important; font-size: 13px; }

/* Scale large type and the hero to viewport height too, so shorter laptop screens don't feel zoomed in. */
.cs-display { font-size: clamp(44px, min(6vw, 10.5vh), 92px); }
.cs-qhero .cs-display { font-size: clamp(44px, min(5.6vw, 10vh), 84px); }
.cs-h1 { font-size: clamp(36px, min(4.4vw, 8.5vh), 64px); }
.cs-hero__copy { padding-top: clamp(40px, 7vh, 72px); padding-bottom: clamp(32px, 5vh, 56px); gap: 32px; }
.cs-hero__media .cs-ph { height: clamp(380px, 68vh, 640px); }
.cs-stat__value { font-size: clamp(34px, min(3.6vw, 6.5vh), 52px); }
.cs-qhero { padding-top: clamp(56px, 11vh, 120px); padding-bottom: clamp(48px, 9vh, 96px); }
@media (max-width: 768px) { .cs-hero__media .cs-ph { height: 340px; } .cs-stat__value { font-size: 32px; } }

/* Logo mark beside the site name */
.wp-block-site-title a { display: inline-flex; align-items: center; gap: 14px; }
.wp-block-site-title a::before { content: ""; flex: none; width: 30px; height: 30px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M92 8H8v84h84V72H28V28h64z' fill='%23E9EDF1'/%3E%3Crect x='8' y='72' width='20' height='20' fill='%237FA4FF'/%3E%3C/svg%3E") center / contain no-repeat; }
.cs-footer .wp-block-site-title a::before { width: 26px; height: 26px; }
@media (max-width: 900px) { .cs-header .wp-block-site-title a { gap: 8px; } .cs-header .wp-block-site-title a::before { width: 20px; height: 20px; } }

/* Mobile: hide the empty "On this page" heading; one empty-cart message only */
@media (max-width: 900px) { .cs-legal__nav > div:has(.cs-legal__toc) { display: none; } }
.woocommerce-info.cart-empty, .wc-empty-cart-message { display: none; }
