/**
 * Styles for plugin-rendered surfaces.
 *
 * Every value references a --nq-* custom property defined by the child theme,
 * with a literal fallback so the plugin still renders correctly if the parent
 * theme is swapped or the child theme is temporarily deactivated. No template
 * hard-codes a hex.
 */

/* ---------------------------------------------------------------- numerics */

/* The brand signature: every number on the site is monospace and tabular so
   figures align in a column and digits never reflow between states. */
.noviq-num,
.noviq-spec .noviq-num,
.woocommerce .noviq-num {
	font-family: var( --nq-font-mono, "IBM Plex Mono", ui-monospace, monospace );
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1;
	letter-spacing: -0.01em;
}

.noviq-seq {
	word-break: break-word;
	line-height: 1.6;
}

/* ------------------------------------------------------------------ blocks */

.noviq-btn {
	display: inline-block;
	padding: 0.625rem 1.25rem;
	border: 1px solid var( --nq-primary, #0a4da8 );
	border-radius: var( --nq-radius, 2px );
	background: var( --nq-primary, #0a4da8 );
	color: var( --nq-text-inverse, #fff );
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.noviq-btn:hover,
.noviq-btn:focus {
	background: var( --nq-primary-hover, #073c87 );
	border-color: var( --nq-primary-hover, #073c87 );
	color: var( --nq-text-inverse, #fff );
}

.noviq-btn:focus-visible {
	outline: 2px solid var( --nq-focus, #0959c3 );
	outline-offset: 2px;
}

.noviq-kicker {
	margin: 0 0 0.5rem;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --nq-text-subtle, #6b6b6d );
}

.noviq-kicker a {
	color: inherit;
}

/* --------------------------------------------------------- spec / lot table */

.noviq-spec {
	width: 100%;
	border-collapse: collapse;
	margin: 1rem 0 1.5rem;
	font-size: 0.9375rem;
}

.noviq-spec th,
.noviq-spec td {
	padding: 0.625rem 0.75rem;
	text-align: left;
	vertical-align: top;
	/* Hairline rules instead of shadows. */
	border-bottom: 1px solid var( --nq-border, #e4e4e6 );
}

.noviq-spec th[scope="row"] {
	width: 40%;
	font-weight: 400;
	color: var( --nq-text-subtle, #6b6b6d );
}

.noviq-spec thead th {
	border-bottom: 1px solid var( --nq-gray-400, #bebec0 );
	font-weight: 500;
}

.noviq-lots {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.noviq-lots th,
.noviq-lots td {
	padding: 0.625rem 0.75rem;
	text-align: left;
	border-bottom: 1px solid var( --nq-border, #e4e4e6 );
}

.noviq-scroll-x {
	overflow-x: auto;
	max-width: 100%;
}

/* ------------------------------------------------------------- volume tiers */

.noviq-tiers {
	margin: 1.25rem 0;
	padding: 0.875rem 1rem;
	border: 1px solid var( --nq-border, #e4e4e6 );
	border-radius: var( --nq-radius, 2px );
	background: var( --nq-bg-alt, #f0f4fb );
}

.noviq-tiers__head {
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --nq-text-subtle, #6b6b6d );
	margin-bottom: 0.5rem;
}

.noviq-tiers__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.noviq-tiers__row {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	padding: 0.25rem 0;
	border-bottom: 1px solid var( --nq-blue-200, #bdc7eb );
}

.noviq-tiers__row:last-child {
	border-bottom: 0;
}

.noviq-tiers__row.is-active {
	font-weight: 500;
	color: var( --nq-primary, #0a4da8 );
}

.noviq-tiers__sep {
	color: var( --nq-text-subtle, #6b6b6d );
	font-size: 0.875rem;
}

.noviq-tiers__pct {
	margin-left: auto;
}

.noviq-tiers__flag {
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 0.125rem 0.375rem;
	border: 1px solid currentColor;
	border-radius: var( --nq-radius, 2px );
}

.noviq-tiers__nudge {
	margin: 0.625rem 0 0;
	font-size: 0.875rem;
	color: var( --nq-primary, #0a4da8 );
}

.noviq-tiers__note {
	margin: 0.375rem 0 0;
	font-size: 0.8125rem;
	color: var( --nq-text-subtle, #6b6b6d );
}

.noviq-tier-state {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
	margin-top: 0.375rem;
	font-size: 0.8125rem;
}

.noviq-tier-active {
	color: var( --nq-primary, #0a4da8 );
	font-weight: 500;
}

.noviq-tier-next {
	color: var( --nq-text-subtle, #6b6b6d );
}

.noviq-price-was {
	text-decoration: line-through;
	color: var( --nq-text-subtle, #6b6b6d );
}

.noviq-price-now {
	color: var( --nq-primary, #0a4da8 );
	font-weight: 500;
}

/* ------------------------------------------------------------------ RUO */

.noviq-ruo {
	border: 1px solid var( --nq-amber-700, #8a5a00 );
	background: var( --nq-amber-50, #fbf3e3 );
	color: var( --nq-amber-700, #8a5a00 );
	border-radius: var( --nq-radius, 2px );
	padding: 0.75rem 1rem;
	margin: 1rem 0;
	font-size: 0.875rem;
	line-height: 1.5;
}

.noviq-ruo--short strong {
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.75rem;
	margin-right: 0.375rem;
}

.noviq-ruo__heading {
	font-size: 0.8125rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0 0 0.375rem;
}

.noviq-ruo--full p,
.noviq-ruo--footer p {
	margin: 0;
	font-size: 0.8125rem;
}

.noviq-ruo--footer {
	margin: 0;
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
	border-radius: 0;
	padding: 1.25rem clamp( 1rem, 5vw, 3rem );
}

/* --------------------------------------------------------- attestation gate */

.noviq-attestation {
	margin: 1rem 0;
	padding: 0.875rem 1rem;
	border: 1px solid var( --nq-gray-400, #bebec0 );
	border-radius: var( --nq-radius, 2px );
	background: var( --nq-bg, #fff );
}

.noviq-attestation__label {
	display: flex;
	gap: 0.625rem;
	align-items: flex-start;
	cursor: pointer;
	font-size: 0.875rem;
	line-height: 1.5;
}

.noviq-attestation__label input {
	margin-top: 0.2rem;
	flex: 0 0 auto;
}

.noviq-attestation__label input:focus-visible {
	outline: 2px solid var( --nq-focus, #0959c3 );
	outline-offset: 2px;
}

/* --------------------------------------------------------------- subscribe */

.noviq-subscribe.is-disabled {
	margin: 1rem 0;
	padding: 0.75rem 1rem;
	border: 1px dashed var( --nq-gray-400, #bebec0 );
	border-radius: var( --nq-radius, 2px );
	color: var( --nq-text-subtle, #6b6b6d );
}

.noviq-subscribe__note {
	margin: 0.25rem 0 0;
	font-size: 0.8125rem;
}

/* ------------------------------------------------------------ empty states */

.noviq-empty {
	border: 1px solid var( --nq-border, #e4e4e6 );
	border-radius: var( --nq-radius, 2px );
	background: var( --nq-bg-alt, #f0f4fb );
	padding: 1.5rem;
	margin: 1rem 0;
}

.noviq-empty__heading {
	margin: 0 0 0.5rem;
	font-size: 1.0625rem;
	font-weight: 500;
}

.noviq-empty__body {
	margin: 0 0 0.75rem;
	color: var( --nq-text-muted, #3e3e40 );
	font-size: 0.9375rem;
	line-height: 1.6;
	max-width: 60ch;
}

/* ---------------------------------------------------------- research hub */

.noviq-hub__area {
	margin: 0 0 2.5rem;
}

.noviq-hub__heading {
	margin: 0 0 0.25rem;
	font-size: 1.25rem;
	font-weight: 500;
}

.noviq-hub__blurb {
	margin: 0 0 1rem;
	color: var( --nq-text-muted, #3e3e40 );
	max-width: 70ch;
	font-size: 0.9375rem;
}

.noviq-hub__list,
.noviq-compare-index {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var( --nq-border, #e4e4e6 );
}

.noviq-hub__item a,
.noviq-compare-index__item a {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	align-items: baseline;
	padding: 0.625rem 0.25rem;
	border-bottom: 1px solid var( --nq-border, #e4e4e6 );
	text-decoration: none;
	color: inherit;
}

.noviq-hub__item a:hover,
.noviq-compare-index__item a:hover {
	background: var( --nq-bg-alt, #f0f4fb );
}

.noviq-hub__mw,
.noviq-compare-index__excerpt {
	color: var( --nq-text-subtle, #6b6b6d );
	font-size: 0.875rem;
	text-align: right;
}

/* ---------------------------------------------------------------- verify */

.noviq-verify__row {
	display: flex;
	gap: 0.5rem;
	margin: 0.375rem 0 1rem;
	flex-wrap: wrap;
}

.noviq-verify__row input {
	flex: 1 1 14rem;
	padding: 0.5rem 0.75rem;
	border: 1px solid var( --nq-gray-400, #bebec0 );
	border-radius: var( --nq-radius, 2px );
}

.noviq-verify__label {
	font-size: 0.8125rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var( --nq-text-subtle, #6b6b6d );
}

.noviq-verify__result {
	border: 1px solid var( --nq-border, #e4e4e6 );
	border-radius: var( --nq-radius, 2px );
	padding: 1rem 1.25rem;
	margin: 1rem 0;
}

.noviq-verify__result--none {
	border-color: var( --nq-amber-700, #8a5a00 );
	background: var( --nq-amber-50, #fbf3e3 );
	color: var( --nq-amber-700, #8a5a00 );
}

.noviq-verify__result h2 {
	margin: 0 0 0.375rem;
	font-size: 1.0625rem;
}

.noviq-verify__note {
	font-size: 0.875rem;
	color: var( --nq-text-subtle, #6b6b6d );
	max-width: 65ch;
}

/* ------------------------------------------------------------- calculator */

.noviq-calc__form {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	align-items: flex-end;
	margin-bottom: 1.25rem;
}

.noviq-calc__field {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	flex: 1 1 12rem;
}

.noviq-calc__field label {
	font-size: 0.8125rem;
	color: var( --nq-text-subtle, #6b6b6d );
}

.noviq-calc__field input {
	padding: 0.5rem 0.75rem;
	border: 1px solid var( --nq-gray-400, #bebec0 );
	border-radius: var( --nq-radius, 2px );
	font-size: 1rem;
}

.noviq-calc__out {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 12rem, 1fr ) );
	gap: 1px;
	background: var( --nq-border, #e4e4e6 );
	border: 1px solid var( --nq-border, #e4e4e6 );
	border-radius: var( --nq-radius, 2px );
	margin: 0;
}

.noviq-calc__row {
	background: var( --nq-bg, #fff );
	padding: 1rem 1.25rem;
}

.noviq-calc__row dt {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var( --nq-text-subtle, #6b6b6d );
	margin-bottom: 0.25rem;
}

.noviq-calc__row dd {
	margin: 0;
	font-size: 1.5rem;
	color: var( --nq-primary, #0a4da8 );
}

.noviq-calc__note {
	margin-top: 0.75rem;
	font-size: 0.8125rem;
	color: var( --nq-text-subtle, #6b6b6d );
	max-width: 65ch;
}

/* ------------------------------------------------------------------ ticker */

.noviq-ticker {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0 1.5rem;
	margin: 0;
	padding: 0.5rem clamp( 1rem, 5vw, 3rem );
	background: var( --nq-bg-inverse, #042f73 );
	color: var( --nq-text-inverse, #fff );
	font-size: 0.75rem;
	letter-spacing: 0.02em;
}

.noviq-ticker__item {
	white-space: nowrap;
}

/* ------------------------------------------------------------------ bundle */

.noviq-bundle {
	margin: 1.25rem 0;
	padding: 0.875rem 1rem;
	border: 1px solid var( --nq-border, #e4e4e6 );
	border-radius: var( --nq-radius, 2px );
}

.noviq-bundle__heading {
	margin: 0 0 0.5rem;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var( --nq-text-subtle, #6b6b6d );
}

.noviq-bundle__list {
	margin: 0;
	padding-left: 1.125rem;
	font-size: 0.9375rem;
}

/* -------------------------------------------------------------- monograph */

.noviq-page {
	max-width: 68rem;
	margin: 0 auto;
	padding: 2rem clamp( 1rem, 5vw, 3rem ) 3rem;
}

.noviq-monograph__title,
.noviq-comparison__title {
	margin: 0 0 0.5rem;
	font-weight: 500;
	letter-spacing: -0.02em;
}

.noviq-monograph__synonyms {
	color: var( --nq-text-subtle, #6b6b6d );
	font-size: 0.875rem;
	margin: 0 0 1rem;
}

.noviq-monograph__precis,
.noviq-comparison__precis,
.noviq-page__lede {
	max-width: 70ch;
	color: var( --nq-text-muted, #3e3e40 );
	line-height: 1.65;
}

.noviq-monograph__source {
	font-size: 0.8125rem;
	color: var( --nq-text-subtle, #6b6b6d );
	max-width: 65ch;
}

.noviq-monograph__product-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var( --nq-border, #e4e4e6 );
}

.noviq-monograph__product-list a {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.625rem 0.25rem;
	border-bottom: 1px solid var( --nq-border, #e4e4e6 );
	text-decoration: none;
	color: inherit;
}

.noviq-monograph__product-list a:hover {
	background: var( --nq-bg-alt, #f0f4fb );
}

.noviq-product-spec__precis {
	max-width: 70ch;
	color: var( --nq-text-muted, #3e3e40 );
}

/* ---------------------------------------------------------------- age gate */

/* Server-rendered alongside the overlay, so the page cannot be scrolled in the
   moment before the script loads. */
body.noviq-age-gate-open {
	overflow: hidden;
}

.noviq-age-gate {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow-y: auto;
	padding: 1.25rem;
	background: rgba( 4, 47, 115, 0.85 );
	backdrop-filter: blur( 3px );
}

.noviq-age-gate__panel {
	width: 100%;
	max-width: 30rem;
	margin: auto;
	padding: clamp( 1.75rem, 4vw, 2.75rem );
	border-radius: var( --nq-r-card, 18px );
	background: var( --nq-bg, #fff );
	box-shadow: 0 24px 60px rgba( 4, 24, 60, 0.35 );
	text-align: center;
}

.noviq-age-gate__brand {
	margin: 0 0 1.25rem;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var( --nq-text-subtle, #6b6b6d );
}

.noviq-age-gate__heading {
	margin: 0 0 1rem;
	font-family: var( --nq-font-display, "Space Grotesk", ui-sans-serif, sans-serif );
	font-size: clamp( 1.375rem, 3.5vw, 1.75rem );
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var( --nq-text, #151515 );
}

.noviq-age-gate__body {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var( --nq-text-muted, #3e3e40 );
}

.noviq-age-gate__actions {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	margin: 1.75rem 0 0;
}

.noviq-age-gate__yes {
	display: block;
	width: 100%;
	padding: 0.8125rem 1.25rem;
	font-size: 1rem;
}

.noviq-age-gate__no,
.noviq-age-gate__back {
	display: block;
	width: 100%;
	padding: 0.8125rem 1.25rem;
	border: 1px solid var( --nq-border-strong, #bebec0 );
	border-radius: var( --nq-r-btn, 11px );
	background: transparent;
	font: inherit;
	font-size: 0.9375rem;
	color: var( --nq-text-muted, #3e3e40 );
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

.noviq-age-gate__no:hover,
.noviq-age-gate__back:hover {
	border-color: var( --nq-text-muted, #3e3e40 );
	color: var( --nq-text, #151515 );
}

.noviq-age-gate__no:focus-visible,
.noviq-age-gate__back:focus-visible {
	outline: 2px solid var( --nq-focus, #0959c3 );
	outline-offset: 2px;
}

.noviq-age-gate__back {
	margin: 1.75rem 0 0;
}

/* The back link is an anchor so it still works without JavaScript, which means
   the theme's `body.noviq a` colour applies to it. It is a secondary button
   here, not a link, so this has to out-specify that rule. */
.noviq-age-gate .noviq-age-gate__panel .noviq-age-gate__back {
	color: var( --nq-text-muted, #3e3e40 );
}

.noviq-age-gate .noviq-age-gate__panel .noviq-age-gate__back:hover {
	color: var( --nq-text, #151515 );
}

.noviq-age-gate__ruo {
	margin: 1.5rem 0 0;
	padding: 1rem 0 0;
	border-top: 1px solid var( --nq-border, #e4e4e6 );
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var( --nq-text-subtle, #6b6b6d );
}

@media ( max-width: 600px ) {
	.noviq-ticker {
		flex-wrap: nowrap;
		overflow-x: auto;
	}

	.noviq-spec th[scope="row"] {
		width: 45%;
	}
}
