/* Sections: home, work, case study, generic pages. */

/* ============ Hero (CinematicMedia + headline) ============ */
.qv-hero {
	position: relative;
	display: grid;
	min-height: 100svh;
	align-items: end;
	color: #fff;
	overflow: hidden;
	background: var(--ink-950);
}
.qv-hero__media { position: absolute; inset: 0; }
.qv-hero__poster, .qv-hero__video, .qv-hero__video iframe {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	border: 0;
}
/* Cover-fit for a 16:9 iframe at any viewport ratio. */
.qv-hero__video { overflow: hidden; opacity: 0; transition: opacity 1200ms var(--ease-out); container-type: size; }
.qv-hero__video.is-playing { opacity: 1; }
.qv-hero__video iframe {
	top: 50%; left: 50%; right: auto; bottom: auto;
	width: max(100cqw, 177.78cqh); height: max(100cqh, 56.25cqw);
	max-width: none;
	transform: translate(-50%, -50%);
	pointer-events: none;
}
.qv-hero__poster { transform: scale(1.04); transition: transform 2400ms var(--ease-out); }
.is-loaded .qv-hero__poster { transform: none; }
.qv-hero__scrim {
	position: absolute; inset: 0;
	background:
		linear-gradient(180deg, rgb(18 18 17 / 0.55) 0%, rgb(18 18 17 / 0) 22%),
		linear-gradient(90deg, rgb(18 18 17 / 0.62) 0%, rgb(18 18 17 / 0.28) 42%, rgb(18 18 17 / 0) 70%),
		linear-gradient(0deg, rgb(18 18 17 / 0.92) 0%, rgb(18 18 17 / 0.4) 40%, rgb(18 18 17 / 0) 66%);
}
.qv-hero__content {
	position: relative;
	z-index: 2;
	padding-top: calc(var(--header-h) + var(--s-8));
	padding-bottom: clamp(3rem, 2rem + 4vw, 6rem);
}
.qv-hero__label { color: rgb(255 255 255 / 0.7); }
.qv-hero__title { max-width: 16ch; font-size: clamp(2.75rem, 1rem + 6vw, 7.25rem); color: #fff; }
.qv-hero__line { display: block; overflow: hidden; padding-bottom: 0.06em; margin-bottom: -0.06em; }
.qv-hero__line > span { display: inline-block; }
.qv-hero__line.is-quiet { color: rgb(255 255 255 / 0.62); }
.js .qv-hero__line > span { transform: translateY(105%); }
.js .is-loaded .qv-hero__line > span { transform: none; transition: transform 1300ms var(--ease-out); }
.js .is-loaded .qv-hero__line + .qv-hero__line > span { transition-delay: 110ms; }
.qv-hero__foot {
	display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between;
	gap: var(--s-6) var(--s-8);
	margin-top: clamp(2rem, 1rem + 3vw, 3.5rem);
}
.qv-hero__sub { max-width: 40ch; margin: 0; text-wrap: balance; font-size: var(--fs-lead); font-weight: 300; line-height: 1.5; color: rgb(255 255 255 / 0.78); }
.js .qv-hero__foot, .js .qv-hero__label { opacity: 0; transform: translateY(16px); }
.js .is-loaded .qv-hero__foot, .js .is-loaded .qv-hero__label { opacity: 1; transform: none; transition: opacity var(--dur-slow) var(--ease-out) 300ms, transform var(--dur-slow) var(--ease-out) 300ms; }

.qv-hero__scroll {
	position: absolute; left: 50%; bottom: 1.4rem; z-index: 2;
	display: grid; place-items: start center;
	width: 26px; height: 42px; margin-left: -13px;
	border: 1px solid rgb(255 255 255 / 0.35); border-radius: 13px;
}
.qv-hero__scroll span { width: 2px; height: 8px; margin-top: 8px; background: #fff; border-radius: 1px; animation: qv-scroll 2.2s var(--ease-in-out) infinite; }
@keyframes qv-scroll { 0% { transform: translateY(0); opacity: 0; } 30% { opacity: 1; } 80%, 100% { transform: translateY(14px); opacity: 0; } }
@media (max-width: 900px) { .qv-hero__scroll { display: none; } }

/* ============ Statement ============ */
.qv-intro .qv-grid { row-gap: var(--s-6); align-items: start; }
.qv-intro__label { grid-column: 1 / span 3; margin-top: 0.7rem; }
.qv-intro__text { grid-column: 4 / span 9; margin: 0; }
.qv-intro__aside { grid-column: 4 / span 9; display: grid; gap: var(--s-5); justify-items: start; margin-top: var(--s-5); }
@media (max-width: 900px) {
	.qv-intro__label, .qv-intro__text, .qv-intro__aside { grid-column: 1 / -1; }
}

/* ============ Featured work (asymmetric) ============ */
.qv-featured { padding-top: 0; }
.qv-featured__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--s-6); margin-bottom: var(--s-8); }
.qv-featured__grid {
	--row-h: clamp(300px, 34vw, 560px);
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--s-8) var(--grid-gap);
	align-items: start;
}
/* Every row is two cards of equal height (or one full-width break): no empty pockets. */
.qv-feat { grid-column: span var(--span, 6); min-width: 0; }
.qv-featured .qv-card__media { aspect-ratio: auto; height: var(--row-h); }
.qv-feat[data-full='1'] .qv-card__media { height: clamp(320px, 40vw, 680px); }
@media (max-width: 900px) {
	.qv-featured__grid { grid-template-columns: minmax(0, 1fr); gap: var(--s-7) 0; }
	.qv-feat { grid-column: 1 / -1; }
	.qv-featured .qv-card__media, .qv-feat[data-full='1'] .qv-card__media { height: auto; aspect-ratio: 4 / 3; }
}

/* ============ Scroll scene ============ */
.qv-scene { position: relative; padding-block: var(--section) 0; background: var(--ink-900); }
.qv-scene__sh { margin-bottom: var(--s-8); }
.qv-scene__stage {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: var(--s-8);
	align-items: start;
	padding-bottom: var(--section);
}
.qv-scene__media {
	position: sticky;
	top: calc(var(--header-h) + 2rem);
	height: calc(100svh - var(--header-h) - 4rem);
	min-height: 420px;
	overflow: hidden;
	border-radius: var(--r-sm);
	background: var(--ink-850);
}
.qv-scene__frame { position: absolute; inset: 0; margin: 0; opacity: 0; transform: scale(1.06); transition: opacity 1100ms var(--ease-out), transform 1600ms var(--ease-out); }
.qv-scene__frame.is-active { opacity: 1; transform: none; }
.qv-scene__frame img { width: 100%; height: 100%; object-fit: cover; }
/* Only the platform capture fades at its edges: it is a UI screenshot cropped by the frame. */
.qv-scene__frame.is-ui img, .qv-scene__mobile-media.is-ui img { object-position: left top; }
.qv-scene__frame.is-ui::after, .qv-scene__mobile-media.is-ui::after {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	background:
		linear-gradient(270deg, var(--ink-900) 0%, rgb(28 28 25 / 0.55) 9%, rgb(28 28 25 / 0) 24%),
		linear-gradient(0deg, rgb(28 28 25 / 0.75) 0%, rgb(28 28 25 / 0) 22%);
}
.qv-scene__mobile-media { position: relative; }
.qv-loop { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.qv-scene__mobile-media .qv-loop { position: static; aspect-ratio: 4 / 3; }

.qv-scene__progress {
	/* Top right: the platform capture has its own buttons bottom-left, and its right edge fades to dark. */
	position: absolute; right: var(--s-4); top: var(--s-4); z-index: 3;
	display: flex; gap: 2px; padding: 4px;
}
.qv-scene__progress span {
	padding: 0.55rem 0.8rem;
	border-radius: 8px;
	font: 600 0.6875rem/1 var(--font-display); letter-spacing: 0.12em; text-transform: uppercase;
	color: rgb(255 255 255 / 0.5);
	transition: color var(--dur-base) var(--ease-out), background-color var(--dur-base) var(--ease-out);
}
.qv-scene__progress span.is-active { color: #fff; background: rgb(255 255 255 / 0.14); }
.qv-scene__steps { margin: 0; padding: 0; list-style: none; }
.qv-scene__step {
	display: grid; align-content: center; gap: var(--s-4);
	min-height: 78svh;
	padding-block: var(--s-8);
	opacity: 0.32;
	transition: opacity var(--dur-base) var(--ease-out);
}
.qv-scene__step.is-active { opacity: 1; }
.qv-scene__step h3 { font-size: var(--fs-h3); }
.qv-scene__step .qv-label { margin-bottom: 0; }
.qv-scene__step .qv-btn--text { justify-self: start; margin-top: var(--s-3); }
.qv-scene__mobile-media { display: none; }
@media (max-width: 900px) {
	.qv-scene__stage { grid-template-columns: 1fr; }
	.qv-scene__media { display: none; }
	.qv-scene__step { min-height: 0; opacity: 1; padding-block: var(--s-6); }
	.qv-scene__mobile-media { display: block; margin: 0 0 var(--s-3); aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--r-sm); }
	.qv-scene__mobile-media img { width: 100%; height: 100%; object-fit: cover; }
}

/* ============ Platform (live embed) ============ */
.qv-platform__head { margin-bottom: var(--s-8); }
.qv-platform__stage {
	position: relative;
	margin: 0;
	aspect-ratio: 16 / 10;
	border-radius: var(--r-sm);
	overflow: hidden;
	box-shadow: var(--shadow-media), 0 0 0 1px var(--line);
	background: var(--ink-900);
}
.qv-platform__poster, .qv-platform__frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; object-position: left top; }
.qv-platform__frame { opacity: 0; pointer-events: none; transition: opacity 900ms var(--ease-out); }
.qv-platform__stage.is-loaded .qv-platform__frame { opacity: 1; }
.qv-platform__stage.is-interactive .qv-platform__frame { pointer-events: auto; }
.qv-platform__activate {
	position: absolute; inset: 0; z-index: 2;
	display: grid; place-items: center;
	border: 0; padding: 0;
	background: linear-gradient(0deg, rgb(18 18 17 / 0.45), rgb(18 18 17 / 0.05) 55%);
	color: #fff;
	transition: opacity var(--dur-base) var(--ease-out), visibility 0s linear var(--dur-base);
}
.qv-platform__activate:hover .qv-play__btn { transform: scale(1.04); }
.qv-platform__stage.is-interactive .qv-platform__activate { opacity: 0; visibility: hidden; }
.qv-platform__chip {
	display: flex; align-items: center; gap: 0.6rem;
	margin: var(--s-4) 0 0;
	font-size: var(--fs-small); color: var(--fg-subtle);
}
.qv-platform__open {
	position: absolute; right: var(--s-4); top: var(--s-4); z-index: 3;
	display: grid; place-items: center; width: 44px; height: 44px; color: #fff;
}
.qv-platform__open .qv-icon { width: 20px; height: 20px; }
.qv-dot { width: 8px; height: 8px; border-radius: 50%; background: #93ab8c; box-shadow: 0 0 0 4px rgb(147 171 140 / 0.2); animation: qv-live 2.4s var(--ease-in-out) infinite; }
.qv-platform__chip + .qv-platform__actions { margin-top: var(--s-6); }
/* Virtual tour, under Every screen */
.qv-vtour { margin-top: var(--section-tight); padding-top: var(--section-tight); border-top: 1px solid var(--line); }
.qv-vtour .qv-platform__poster { object-position: center; }
/* The whole tour (its left bar and bottom menu) fits under the site header. */
.qv-vtour__stage { width: 100%; aspect-ratio: 16 / 9; max-height: calc(100svh - 128px); scroll-margin-top: 16px; } /* + html scroll-padding (header) */
@media (max-width: 640px) { .qv-platform__stage.qv-vtour__stage { aspect-ratio: 3 / 4; max-height: calc(100svh - 112px); scroll-margin-top: 12px; } }
@keyframes qv-live { 50% { box-shadow: 0 0 0 7px rgb(147 171 140 / 0); } }
.qv-platform__actions { margin-top: var(--s-7); }

/* Every screen */
.qv-multi { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: var(--s-6) var(--s-8); align-items: center; margin-top: var(--section-tight); padding-top: var(--section-tight); border-top: 1px solid var(--line); }
.qv-multi__text { display: grid; gap: var(--s-4); }
.qv-multi__text .qv-label { margin: 0; }
.qv-multi__text h3 { font-size: var(--fs-h3); }
.qv-multi__media { margin: 0; }
.qv-multi__media img { display: block; width: 100%; max-width: 100%; height: auto; }
.qv-multi__media { position: relative; }
.qv-multi__spot { position: absolute; display: block; outline: none; -webkit-tap-highlight-color: transparent; }
.qv-multi__tip { position: absolute; left: 50%; top: 0; display: flex; align-items: center; gap: 8px; padding: 7px 11px; white-space: nowrap; font: 600 var(--fs-label)/1 var(--font-display); letter-spacing: 0.1em; text-transform: uppercase; color: #fff; background: rgb(18 18 17 / 0.72); border: 1px solid var(--line-strong); border-radius: var(--r-xs); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); opacity: 0; transform: translate(-50%, calc(-100% - 4px)); transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); pointer-events: none; }
.qv-multi__tip::before { content: ''; width: 6px; height: 6px; background: #d1077f; }
.qv-multi__spot:hover .qv-multi__tip, .qv-multi__spot:focus .qv-multi__tip { opacity: 1; transform: translate(-50%, calc(-100% - 12px)); }
@media (max-width: 900px) { .qv-multi { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
	.qv-platform__stage { aspect-ratio: 3 / 4; }
}

/* ============ Solutions (light editorial list) ============ */
.qv-solutions .qv-sh { margin-bottom: var(--s-8); }
.qv-solutions__list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.qv-solution a {
	display: grid;
	grid-template-columns: 4rem minmax(0, 5fr) minmax(0, 5fr) 3rem;
	align-items: center;
	gap: var(--s-5);
	padding-block: clamp(1.25rem, 0.8rem + 1.5vw, 2.25rem);
	border-bottom: 1px solid var(--line);
	color: inherit;
	text-decoration: none;
	transition: padding var(--dur-base) var(--ease-out);
}
.qv-solution__n { font: 600 var(--fs-label)/1 var(--font-display); letter-spacing: var(--tracking-label); color: var(--fg-subtle); }
.qv-solution__name { font: 500 var(--fs-h3)/1.1 var(--font-display); letter-spacing: -0.02em; color: var(--fg-strong); }
.qv-solution__desc { color: var(--fg-muted); }
.qv-solution__icon { justify-self: end; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line-strong); border-radius: var(--r-xs); color: var(--fg-strong); transition: background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.qv-solution__icon .qv-icon { width: 18px; height: 18px; transition: transform var(--dur-base) var(--ease-out); }
.qv-solution a:hover { padding-inline: var(--s-4); }
.qv-solution a:hover .qv-solution__icon { background: var(--magenta); border-color: var(--magenta); color: #fff; }
.qv-solution a:hover .qv-solution__icon .qv-icon { transform: translateX(2px); }
@media (max-width: 900px) {
	.qv-solution a { grid-template-columns: 2.5rem minmax(0, 1fr) 44px; }
	.qv-solution__desc { grid-column: 2 / 3; grid-row: 2; font-size: var(--fs-small); margin-top: -0.75rem; }
}

/* ============ Clients ============ */
.qv-clients-section { border-top: 1px solid var(--line); }
.qv-clients-section__label { display: flex; justify-content: center; margin-bottom: var(--s-8); }

/* ============ Page hero (Work, pages, case study) ============ */
.qv-pagehead { padding-top: calc(var(--header-h) + var(--section-tight)); padding-bottom: var(--section-tight); }
.qv-pagehead h1 { font-size: var(--fs-h2); max-width: 20ch; }
.qv-pagehead .is-quiet { color: var(--fg-subtle); }
.qv-pagehead .qv-lead { margin-top: var(--s-6); }

/* ============ Work archive (editorial grid) ============ */
.qv-work { padding-bottom: var(--section); }
.qv-work__grid {
	--row-h: clamp(280px, 30vw, 500px);
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--s-8) var(--grid-gap);
	align-items: start;
}
/* Same rhythm as the home grid: 7+5, 5+7, then one full-width row. Every row the same height, no empty pockets. */
.qv-work__grid > .qv-card { grid-column: span 6; min-width: 0; }
.qv-work__grid > .qv-card .qv-card__media { aspect-ratio: auto; height: var(--row-h); }
.qv-work__grid > .qv-card:nth-child(5n + 1), .qv-work__grid > .qv-card:nth-child(5n + 4) { grid-column: span 7; }
.qv-work__grid > .qv-card:nth-child(5n + 2), .qv-work__grid > .qv-card:nth-child(5n + 3) { grid-column: span 5; }
.qv-work__grid > .qv-card:nth-child(5n + 5) { grid-column: 1 / -1; }
.qv-work__grid > .qv-card:nth-child(5n + 5) .qv-card__media { height: clamp(320px, 40vw, 680px); }
.qv-work__grid > .qv-card.is-hidden { display: none; }
.qv-work__grid.is-filtered > .qv-card { grid-column: span 4 !important; }
.qv-work__grid.is-filtered > .qv-card .qv-card__media { height: auto !important; aspect-ratio: 4 / 3; }
.qv-work__empty { grid-column: 1 / -1; color: var(--fg-subtle); }
@media (max-width: 900px) {
	.qv-work__grid { gap: var(--s-7) var(--grid-gap); }
	.qv-work__grid > .qv-card { grid-column: 1 / -1 !important; margin-top: 0 !important; }
	.qv-work__grid > .qv-card .qv-card__media, .qv-work__grid > .qv-card:nth-child(5n + 5) .qv-card__media { height: auto; aspect-ratio: 4 / 3; }
	.qv-work__grid.is-filtered > .qv-card { grid-column: 1 / -1 !important; }
}
@media (min-width: 641px) and (max-width: 900px) {
	.qv-work__grid > .qv-card, .qv-work__grid.is-filtered > .qv-card { grid-column: span 6 !important; }
}

/* ============ Case study ============ */
.qv-case-hero { position: relative; min-height: 92svh; display: grid; align-items: end; color: #fff; overflow: hidden; }
.qv-case-hero__media { position: absolute; inset: 0; }
.qv-case-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.qv-case-hero__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(18 18 17 / 0.7) 0%, rgb(18 18 17 / 0) 24%), linear-gradient(0deg, rgb(18 18 17 / 0.92) 0%, rgb(18 18 17 / 0.3) 48%, rgb(18 18 17 / 0.1) 100%); }
.qv-case-hero__content { position: relative; z-index: 2; padding-top: calc(var(--header-h) + var(--s-8)); padding-bottom: var(--s-8); }
.qv-case-hero h1 { font-size: var(--fs-display); max-width: 14ch; }
.qv-case-hero .qv-label { color: rgb(255 255 255 / 0.7); }
.qv-case-meta { margin-top: calc(var(--s-8) * -1 + var(--s-4)); position: relative; z-index: 3; padding: var(--s-6); }
.qv-case-intro { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap); }
.qv-case-intro__lead { grid-column: 1 / span 7; }
.qv-case-intro__lead .qv-statement { font-size: var(--fs-h3); line-height: 1.22; margin-bottom: var(--s-7); }
.qv-case-intro__side { grid-column: 9 / span 4; display: grid; gap: var(--s-6); align-content: start; }
.qv-case-block { display: grid; gap: var(--s-4); }
.qv-case-block h2 { font-size: var(--fs-h4); }
@media (max-width: 900px) {
	.qv-case-intro__lead, .qv-case-intro__side { grid-column: 1 / -1; }
}

/* MediaSequence: alternating full / pair / offset. */
.qv-seq { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--grid-gap); row-gap: clamp(1rem, 0.5rem + 2vw, 2.5rem); }
.qv-seq > figure { margin: 0; overflow: hidden; border-radius: var(--r-sm); background: var(--ink-850); }
.qv-seq > figure img { width: 100%; height: 100%; object-fit: cover; }
.qv-seq > figure:nth-child(3n + 1) { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
.qv-seq > figure:nth-child(3n + 2) { grid-column: 1 / span 7; }
.qv-seq > figure:nth-child(3n + 3) { grid-column: 8 / span 5; }
/* Pairs share one height so no empty pocket opens beside the shorter image; a lone last image goes full width. */
.qv-seq > figure:nth-child(3n + 2), .qv-seq > figure:nth-child(3n + 3) { height: clamp(260px, 32vw, 620px); }
.qv-seq > figure:nth-child(3n + 2):last-child { grid-column: 1 / -1; height: auto; aspect-ratio: 16 / 9; }
@media (max-width: 640px) { .qv-seq > figure { grid-column: 1 / -1 !important; aspect-ratio: 4 / 3 !important; height: auto !important; } }

.qv-casenav { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.qv-casenav a { position: relative; display: grid; gap: var(--s-3); padding: var(--s-8) var(--gutter); color: inherit; text-decoration: none; overflow: hidden; }
.qv-casenav a + a { border-left: 1px solid var(--line); text-align: right; justify-items: end; }
.qv-casenav__title { font: 500 var(--fs-h3)/1.1 var(--font-display); letter-spacing: -0.02em; color: var(--fg-strong); transition: transform var(--dur-base) var(--ease-out); }
.qv-casenav a:hover .qv-casenav__title { transform: translateX(6px); }
.qv-casenav a + a:hover .qv-casenav__title { transform: translateX(-6px); }
@media (max-width: 640px) { .qv-casenav { grid-template-columns: 1fr; } .qv-casenav a + a { border-left: 0; border-top: 1px solid var(--line); text-align: left; justify-items: start; } }

/* ============ Generic page ============ */
.qv-page { padding-bottom: var(--section); }
.qv-page .qv-prose { margin-inline: auto; }
.qv-sectors { margin: var(--s-4) 0 var(--s-5); }
/* Sectors: a wide band of badges under the statement; the paragraph above keeps its reading width. */
.qv-intro__aside > p { max-width: 34rem; }
.qv-intro__aside { container-type: inline-size; }
.qv-intro__aside .qv-sectors { display: grid; grid-template-columns: repeat(3, max-content); justify-content: start; }
@container (min-width: 640px) { .qv-intro__aside .qv-sectors { grid-template-columns: repeat(5, max-content); } }

/* ============ Drones page: service tabs, day/night compare, FAQ ============ */
.qv-tabs__list { position: static; margin-bottom: var(--s-7); }
.qv-filters button[aria-selected='true'] { color: #fff; background: rgb(255 255 255 / 0.14); box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.12); }
.qv-tabs__panel { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--s-6) var(--s-8); align-items: center; }
.qv-tabs__panel[hidden] { display: none; }
.qv-tabs__text { display: grid; gap: var(--s-3); }
.qv-tabs__text .qv-label, .qv-tabs__text p { margin: 0; }
.qv-tabs__text h3 { font-size: var(--fs-h3); }
.qv-tabs__media { border-radius: var(--r-sm); overflow: hidden; }
.qv-compare { --pos: 50%; position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--r-sm); background: var(--ink-900); user-select: none; }
.qv-compare img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.qv-compare__after { clip-path: inset(0 0 0 var(--pos)); }
.qv-compare__line { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; background: #fff; transform: translateX(-1px); pointer-events: none; }
/* Square handle: brand pixel in the centre, chevrons either side (the cursor's language, not a generic circle). */
.qv-compare__line::after { content: ''; position: absolute; top: 50%; left: 50%; width: 48px; height: 48px; border: 2px solid #fff; border-radius: 2px; background: rgb(18 18 17 / 0.5) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='square'%3E%3Cpath d='M15 19l-5 5 5 5M33 19l5 5-5 5'/%3E%3C/svg%3E") center / 48px 48px no-repeat; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transform: translate(-50%, -50%); }
.qv-compare__line::before { content: ''; position: absolute; top: 50%; left: 50%; z-index: 1; width: 8px; height: 8px; background: #d1077f; transform: translate(-50%, -50%); }
.qv-compare__tag { position: absolute; top: var(--s-4); z-index: 1; padding: 0.35rem 0.7rem; border-radius: 2px; background: rgb(12 12 12 / 0.7); color: #fff; font: 500 var(--fs-label)/1 var(--font-sans); letter-spacing: 0.08em; text-transform: uppercase; pointer-events: none; }
.qv-compare__tag--before { left: var(--s-4); }
.qv-compare__tag--after { right: var(--s-4); }
.qv-compare input[type='range'] { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.qv-compare:focus-within .qv-compare__line::after { box-shadow: 0 0 0 3px #d1077f; }
.qv-compare__pairs { display: flex; gap: var(--s-3); margin-top: var(--s-4); }
.qv-compare__pairs button { width: 120px; aspect-ratio: 16 / 9; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-sm); background: none; opacity: 0.55; transition: opacity var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.qv-compare__pairs button[aria-pressed='true'], .qv-compare__pairs button:hover { opacity: 1; border-color: #fff; }
.qv-compare__pairs img { width: 100%; height: 100%; object-fit: cover; }
.qv-faq details { padding: var(--s-4) 0; border-bottom: 1px solid var(--line); }
.qv-faq details:first-child { border-top: 1px solid var(--line); }
.qv-faq summary { cursor: pointer; font: 500 var(--fs-h4)/1.3 var(--font-display); color: #fff; list-style: none; }
.qv-faq summary::-webkit-details-marker { display: none; }
.qv-faq summary::after { content: '+'; float: right; color: var(--fg-subtle); }
.qv-faq details[open] summary::after { content: '\2013'; }
.qv-faq details p { margin: var(--s-3) 0 0; }
@media (max-width: 900px) {
	.qv-tabs__panel { grid-template-columns: 1fr; }
	.qv-compare { aspect-ratio: 4 / 3; }
	.qv-compare__pairs button { width: 88px; }
}

/* ============ Drones: hero film, wide headers, gallery ============ */
.qv-drones-hero { position: relative; display: flex; align-items: flex-end; min-height: 100svh; padding: calc(var(--header-h) + var(--s-9)) 0 var(--s-9); overflow: hidden; isolation: isolate; }
.qv-drones-hero__media { position: absolute; inset: 0; z-index: -1; }
.qv-drones-hero__media img, .qv-drones-hero__media video { width: 100%; height: 100%; object-fit: cover; }
.qv-drones-hero__scrim { position: absolute; inset: 0; background: linear-gradient(0deg, var(--bg) 0%, rgb(18 18 17 / 0.72) 18%, rgb(18 18 17 / 0.3) 55%, rgb(18 18 17 / 0.2) 100%); }
.qv-drones-hero__content { display: grid; gap: var(--s-4); }
.qv-drones-hero__content h1 { font-size: var(--fs-display); max-width: 14ch; }
.qv-drones-hero__content .qv-lead { max-width: 56ch; margin: 0; }
.qv-sh--wide .qv-lead { max-width: none; }
.qv-sh--wide + .qv-tabs, .qv-sh--wide + .qv-compare { margin-top: var(--s-7); }
.qv-tabs__media iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.qv-tabs__media[data-tab-film] iframe { opacity: 0; transition: opacity 600ms var(--ease-out); }
.qv-tabs__media[data-tab-film].is-playing iframe { opacity: 1; }
.qv-tabs__media[data-tab-embed] { background: var(--ink-900); }
.qv-drones-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grid-gap); }
.qv-drones-gallery figure { margin: 0; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--r-sm); }
.qv-drones-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--ease-out); }
.qv-drones-gallery figure:hover img { transform: scale(1.03); }
.qv-drones-gallery__more { margin-top: var(--s-6); }
@media (max-width: 900px) {
	.qv-drones-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.qv-drones-hero { min-height: 100svh; }
}

/* ============ Back to top: a brand square that takes the floating CTA's place near the footer ============ */
.qv-totop {
	position: fixed; right: var(--gutter); bottom: calc(var(--s-5) + env(safe-area-inset-bottom)); z-index: 91;
	display: grid; place-items: center; width: 48px; height: 48px; padding: 0;
	border: 0; border-radius: 2px; background: #d1077f; color: #fff; cursor: pointer;
	opacity: 0; visibility: hidden; transform: translateY(12px);
	transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), visibility 0s linear var(--dur-base), background-color var(--dur-fast) var(--ease-out);
}
.qv-totop.is-on { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.qv-totop:hover { background: #e0158f; }
.qv-totop:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.qv-totop svg { width: 20px; height: 20px; }

/* ============ Wide section headers, shoot groups, lightbox ============ */
.qv-sh.qv-sh--wide { max-width: none; }
.qv-shoots { display: grid; gap: var(--s-9); }
.qv-shoot__title { font-size: var(--fs-h2); margin: 0 0 var(--s-3); }
.qv-shoot__text { max-width: 70ch; margin: 0 0 var(--s-6); }
.qv-shoot__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grid-gap); }
.qv-shoot__grid figure { margin: 0; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--r-sm); background: var(--ink-850); }
.qv-shoot__grid img { width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--ease-out); }
.qv-shoot__grid figure:hover img, .qv-seq > figure:hover img { transform: scale(1.03); }
@media (max-width: 640px) { .qv-shoot__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Two or four images: two columns, so a row never ends with an empty slot. */
.qv-shoot__grid:has(> figure:nth-child(2):last-child), .qv-shoot__grid:has(> figure:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.qv-case-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); margin-top: var(--s-7); padding-top: var(--s-6); border-top: 1px solid var(--line); }
@media (max-width: 640px) { .qv-case-pair { grid-template-columns: 1fr; } }
.qv-lightbox { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; background: rgb(12 12 12 / 0.95); opacity: 0; visibility: hidden; transition: opacity 300ms var(--ease-out), visibility 0s linear 300ms; }
.qv-lightbox.is-open { opacity: 1; visibility: visible; transition-delay: 0s; }
.qv-lightbox img { max-width: calc(100vw - 2 * var(--gutter) - 112px); max-height: calc(100svh - 120px); object-fit: contain; border-radius: 2px; }
.qv-lightbox button { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid rgb(255 255 255 / 0.25); border-radius: 2px; background: rgb(255 255 255 / 0.06); color: #fff; cursor: pointer; }
.qv-lightbox button:hover { background: rgb(255 255 255 / 0.14); }
.qv-lightbox button svg { width: 20px; height: 20px; }
.qv-lightbox__close { top: var(--s-5); right: var(--s-5); }
.qv-lightbox__prev { left: var(--s-5); top: 50%; transform: translateY(-50%); }
.qv-lightbox__next { right: var(--s-5); top: 50%; transform: translateY(-50%); }
.qv-lightbox__count { position: absolute; bottom: var(--s-5); left: 50%; transform: translateX(-50%); color: var(--fg-subtle); font: 500 var(--fs-label)/1 var(--font-sans); letter-spacing: 0.1em; }
@media (max-width: 640px) { .qv-lightbox img { max-width: 100vw; } .qv-lightbox__prev, .qv-lightbox__next { top: auto; bottom: var(--s-4); transform: none; } }

/* ============ Cookie notice + legal pages ============ */
.qv-consent { position: fixed; left: var(--gutter); bottom: calc(var(--s-5) + env(safe-area-inset-bottom)); z-index: 150; display: grid; gap: var(--s-4); width: min(440px, calc(100vw - 2 * var(--gutter))); padding: var(--s-5); border: 1px solid var(--line-strong, rgb(255 255 255 / 0.18)); border-radius: var(--r-sm); background: rgb(18 18 17 / 0.94); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 20px 60px rgb(0 0 0 / 0.45); }
.qv-consent[hidden] { display: none; }
.qv-consent p { margin: 0; font-size: var(--fs-small); color: var(--fg-muted, #c9c9c4); }
.qv-consent a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.qv-consent__actions { display: flex; flex-wrap: wrap; gap: var(--s-3); }
.qv-consent .qv-btn { min-height: 44px; }
.qv-legal h2 { font-size: var(--fs-h4); margin-top: var(--s-7); }
.qv-legal p { max-width: 72ch; }
.qv-check a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* ============ Link-in-bio page (/links/) ============ */
.qv-linkpage { background: var(--bg); }
.qv-linkpage .qv-progress, .qv-linkpage .qv-totop { display: none !important; }
.qv-links { display: grid; gap: var(--s-6); width: min(520px, calc(100% - 2 * var(--gutter))); margin: 0 auto; padding: var(--s-6) 0 var(--s-8); }
.qv-links__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--r-sm); background: var(--ink-900) url("/wp-content/uploads/2026/10/qv-drones-hero-poster.jpg") center / cover no-repeat; }
.qv-links__media video { width: 100%; height: 100%; object-fit: cover; }
.qv-links__head { display: grid; gap: var(--s-3); }
.qv-links__head .qv-label, .qv-links__head p { margin: 0; }
.qv-links__logo .qv-logo { width: auto; height: 40px; }
.qv-links__head h1 { margin: var(--s-2) 0 0; font-size: clamp(1.9rem, 7vw, 2.6rem); line-height: 1.04; }
.qv-links__head h1 span { display: block; }
.qv-links__head h1 .is-quiet { color: var(--fg-subtle); }
.qv-links__list { display: grid; gap: var(--s-3); }
.qv-links__btn { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); min-height: 60px; padding: 0 var(--s-5); border: 1px solid var(--line-strong, rgb(255 255 255 / 0.18)); border-radius: 2px; background: rgb(255 255 255 / 0.03); color: #fff; font: 600 var(--fs-label)/1.2 var(--font-display); letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); }
.qv-links__btn:hover { background: rgb(255 255 255 / 0.08); border-color: #fff; transform: translateY(-1px); }
.qv-links__btn.is-primary { background: #d1077f; border-color: #d1077f; }
.qv-links__btn.is-primary:hover { background: #e0158f; border-color: #e0158f; }
.qv-links__btn .qv-icon { flex: none; width: 18px; height: 18px; }
.qv-links__social { justify-content: center; }
.qv-links__lang { display: flex; justify-content: center; }
.qv-links__foot { margin: 0; text-align: center; color: var(--fg-subtle); font-size: var(--fs-small); }

/* Interactive page */
.qv-features.qv-features--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .qv-features.qv-features--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .qv-features.qv-features--4 { grid-template-columns: 1fr; } }
.qv-interactive__demo { margin-top: var(--s-7); }

/* ============ Platform page: problem, journey, real views, platform vs interactive ============ */
.qv-scattered { margin: var(--s-5) 0; }
.qv-scattered .qv-badge { text-decoration: line-through; text-decoration-color: rgb(209 7 127 / 0.8); color: var(--fg-subtle); }
.qv-platform__answer { color: #fff; font-size: var(--fs-lead); }
.qv-journey { display: grid; gap: 0; margin: var(--s-8) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.qv-journey__step { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--s-4) var(--s-8); padding: var(--s-7) 0; border-bottom: 1px solid var(--line); }
.qv-journey__head { display: flex; align-items: center; gap: var(--s-4); }
.qv-journey__head h3 { margin: 0; font-size: var(--fs-h3); }
.qv-journey__body { display: grid; gap: var(--s-3); }
.qv-journey__body p { margin: 0; }
.qv-journey__lead { color: #fff; font-size: var(--fs-lead); }
.qv-views { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s-6) var(--s-8); align-items: center; }
.qv-views__media { margin: 0; overflow: hidden; border-radius: var(--r-sm); aspect-ratio: 16 / 10; }
.qv-views__media img { width: 100%; height: 100%; object-fit: cover; }
.qv-views__text { display: grid; gap: var(--s-5); justify-items: start; }
.qv-versus { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); margin-top: var(--s-8); }
.qv-versus__card { display: grid; align-content: start; gap: var(--s-4); padding: var(--s-7); border: 1px solid var(--line); border-radius: var(--r-sm); background: rgb(255 255 255 / 0.02); }
.qv-versus__card.is-current { border-color: rgb(209 7 127 / 0.6); }
.qv-versus__card h3 { margin: 0; font-size: var(--fs-h3); }
.qv-versus__card .qv-label { margin: 0; }
.qv-versus__card ul { display: grid; gap: var(--s-3); margin: 0; padding: 0; list-style: none; }
.qv-versus__card li { position: relative; padding-left: var(--s-5); color: var(--fg-muted, #c9c9c4); }
.qv-versus__card li::before { content: ''; position: absolute; left: 0; top: 0.55em; width: 6px; height: 6px; background: #d1077f; }
.qv-journey__step { align-items: start; }
.qv-views .qv-sh__title { font-size: clamp(2rem, 3.4vw, 3.25rem); }
a.qv-views__media { display: block; }
a.qv-views__media img { transition: transform 0.8s var(--ease-out, ease); }
a.qv-views__media:hover img { transform: scale(1.03); }
.qv-platform__note { margin-top: var(--s-6) !important; font-size: var(--fs-small); }
@media (max-width: 900px) {
	.qv-journey__step, .qv-views, .qv-versus { grid-template-columns: 1fr; }
}

/* Platform problem: loose files that converge into the platform. */
.qv-converge { position: relative; height: clamp(280px, 26vw, 380px); margin: var(--s-6) 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-sm); background: radial-gradient(circle at 50% 50%, rgb(209 7 127 / calc(var(--p, 0) * 0.16)), transparent 62%); }
.qv-converge__chips { margin: 0; padding: 0; list-style: none; }
.qv-converge .qv-badge { position: absolute; left: 50%; top: 50%; white-space: nowrap; background: var(--bg); transform: translate(-50%, -50%); will-change: transform, opacity; transition: border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out); }
.qv-converge .qv-badge:hover { border-color: #d1077f; color: #fff; }
.qv-converge__card { position: absolute; left: 50%; top: 50%; display: grid; justify-items: center; gap: 8px; padding: var(--s-5) var(--s-7); text-align: center; border: 1px solid rgb(209 7 127 / 0.6); border-radius: var(--r-sm); opacity: var(--c, 0); transform: translate(-50%, -50%) scale(calc(0.85 + var(--c, 0) * 0.15)); pointer-events: none; }
.qv-converge__px { width: 14px; height: 14px; background: #d1077f; }
.qv-converge__card strong { font: 600 var(--fs-h4)/1.1 var(--font-display); color: #fff; }
.qv-converge__card span:last-child { font-size: var(--fs-small); color: var(--fg-subtle); }
/* "Every screen" opening its own section: no double gap above it. */
.qv-container > .qv-multi:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.qv-converge__card { width: max-content; max-width: 90%; }

/* ============ Lifecycle: concept to closing (home) ============ */
.qv-lifecycle__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-7) var(--grid-gap); margin: var(--s-8) 0 0; padding: 0; list-style: none; counter-reset: none; }
.qv-lifecycle__stage { display: grid; gap: var(--s-4); align-content: start; padding-top: var(--s-5); border-top: 1px solid var(--line-strong); }
.qv-lifecycle__n { margin: 0; font: 600 var(--fs-label)/1 var(--font-display); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--accent); }
.qv-lifecycle__stage h3 { margin: 0; font-size: var(--fs-h4); }
.qv-lifecycle__stage .qv-quiet { margin: 0; }
.qv-lifecycle__stage .qv-badges { margin-top: var(--s-2); }
.qv-lifecycle__actions { margin-top: var(--s-8); }
@media (max-width: 1100px) { .qv-lifecycle__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .qv-lifecycle__list { grid-template-columns: 1fr; } }

/* ============ Product line ============ */
.qv-products__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--grid-gap); margin: var(--s-8) 0 0; padding: 0; list-style: none; }
.qv-product { display: flex; }
.qv-product__link { position: relative; display: grid; gap: var(--s-4); align-content: start; width: 100%; padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem); border: 1px solid var(--line); border-radius: var(--r-sm); background: rgb(255 255 255 / 0.02); color: inherit; text-decoration: none; transition: border-color var(--dur-base) var(--ease-out), background-color var(--dur-base) var(--ease-out); }
.qv-product__link:hover, .qv-product__link:focus-visible { border-color: var(--line-strong); background: rgb(255 255 255 / 0.04); }
.qv-product__kind { margin: 0; font: 600 var(--fs-label)/1 var(--font-display); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--accent); }
.qv-product__name { margin: 0; font-size: var(--fs-h3); }
.qv-product__brand { display: block; margin-bottom: 0.35em; font: 500 var(--fs-label)/1 var(--font-display); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--fg-subtle); }
.qv-product .qv-quiet { margin: 0; }
.qv-product__icon { position: absolute; top: clamp(1.5rem, 1rem + 1.5vw, 2.5rem); right: clamp(1.5rem, 1rem + 1.5vw, 2.5rem); color: var(--fg-subtle); transition: transform var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out); }
.qv-product__link:hover .qv-product__icon { transform: translateX(4px); color: var(--accent); }
@media (max-width: 1100px) { .qv-products__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
	.qv-products__list { grid-template-columns: 1fr; }
}

/* Platform journey with one clip per moment: head | text | clip. */
.qv-journey__step.has-clip { grid-template-columns: minmax(0, 3fr) minmax(0, 5fr) minmax(0, 5fr); align-items: center; }
.qv-journey__clip { position: relative; margin: 0; aspect-ratio: 16 / 10; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--ink-850); }
.qv-journey__clip video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1100px) { .qv-journey__step.has-clip { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .qv-journey__step.has-clip .qv-journey__head { grid-column: 1 / -1; } }
@media (max-width: 760px) { .qv-journey__step.has-clip { grid-template-columns: 1fr; } }

/* Two dark sections in a row must not add up their padding (same rule as .qv-featured after the intro). */
.qv-featured + .qv-lifecycle,
.qv-platform + .qv-products,
.qv-pagehead + .qv-products { padding-top: 0; }
/* Into a section with a slightly different ground, one tight gap is enough. */
.qv-lifecycle + .qv-scene,
.qv-scene + .qv-platform { padding-top: var(--section-tight); }
.qv-lifecycle, .qv-products { padding-bottom: var(--section-tight); }
/* Runs of tight sections (platform, interactive, drones): one gap between them, not two. */
.qv-section:not(.is-light) + .qv-section--tight:not(.is-light):not(.qv-clients-section) { padding-top: 0; }
/* A dark section followed by another dark section closes with the tight gap. */
.qv-section:not(.is-light):has(+ .qv-section:not(.is-light):not(.qv-clients-section)) { padding-bottom: var(--section-tight); }
.qv-products__more { display: flex; flex-wrap: wrap; gap: var(--s-4) var(--s-7); margin: var(--s-7) 0 0; }

/* Signature: the complete package, a full-width card above the four specialties. */
.qv-product.is-lead { grid-column: 1 / -1; }
.qv-product.is-lead .qv-product__link { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; column-gap: var(--s-8); border-color: rgb(209 7 127 / 0.45); background: linear-gradient(110deg, rgb(209 7 127 / 0.07), rgb(255 255 255 / 0.02) 55%); }
.qv-product.is-lead .qv-product__link:hover { border-color: rgb(209 7 127 / 0.75); }
.qv-product.is-lead .qv-product__kind, .qv-product.is-lead .qv-product__name { grid-column: 1; }
.qv-product.is-lead .qv-quiet, .qv-product.is-lead .qv-badges { grid-column: 2; }
.qv-product.is-lead .qv-quiet { grid-row: 1 / span 2; align-self: end; font-size: var(--fs-lead); }
.qv-product.is-lead .qv-badges { grid-row: 3; }
.qv-product.is-lead .qv-product__name { font-size: clamp(2rem, 1.4rem + 2vw, 3.25rem); }
@media (max-width: 760px) {
	.qv-product.is-lead .qv-product__link { grid-template-columns: 1fr; }
	.qv-product.is-lead .qv-quiet, .qv-product.is-lead .qv-badges { grid-column: 1; grid-row: auto; }
	.qv-product.is-lead .qv-quiet { font-size: inherit; }
}

/* Hero status: one live signal under the lead, links to the short form in the footer. */
.qv-hero__info { display: grid; gap: var(--s-5); justify-items: start; }
.qv-hero__status {
	display: inline-flex; align-items: center; gap: 10px;
	font: 600 12px/1 var(--font-display); letter-spacing: 0.14em; text-transform: uppercase;
	color: rgb(255 255 255 / 0.82); text-decoration: none;
	transition: color var(--dur-base) var(--ease-out);
}
.qv-hero__status:hover, .qv-hero__status:focus-visible { color: #fff; }
.qv-hero__status i { width: 8px; height: 8px; flex: none; background: var(--magenta); animation: qv-px-blink 2.4s steps(2, jump-none) infinite; }
@keyframes qv-px-blink { 50% { opacity: 0.25; } }
@media (prefers-reduced-motion: reduce) { .qv-hero__status i { animation: none; } }
