/* Inner pages: Solutions, Platform, Studio, Contact. */

/* ============ Solutions: jump links + chapters ============ */
.qv-jump { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--s-7); }
.qv-jump a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 1rem; border: 1px solid var(--line-strong); border-radius: var(--r-xs); color: var(--fg-muted); font-size: var(--fs-small); text-decoration: none; transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.qv-jump a:hover { color: #fff; border-color: #fff; }

.qv-chapters { display: grid; gap: var(--section); padding-bottom: var(--section); }
.qv-chapter { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--s-6) var(--grid-gap); align-items: center; scroll-margin-top: calc(var(--header-h) + 2rem); }
.qv-chapter__media { position: relative; grid-column: 1 / span 7; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--r-sm); background: var(--ink-850); }
.qv-chapter__media img { width: 100%; height: 100%; object-fit: cover; }
.qv-chapter__media .qv-loop, .qv-bgfilm__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.qv-bgfilm { position: absolute; inset: 0; overflow: hidden; opacity: 0; transition: opacity 1200ms var(--ease-out); }
.qv-bgfilm.is-playing { opacity: 1; }
/* A 16:9 film covering a 4:3 frame: full height, 133.3% width, centred. */
.qv-bgfilm iframe { position: absolute; top: 0; left: 50%; width: 133.4%; max-width: none; height: 100%; border: 0; transform: translateX(-50%); pointer-events: none; }
.qv-chapter__media.is-ui img { object-position: left top; }
.qv-chapter__media.is-ui::after {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	background: linear-gradient(270deg, var(--ink-950) 0%, rgb(18 18 17 / 0) 26%), linear-gradient(0deg, rgb(18 18 17 / 0.7) 0%, rgb(18 18 17 / 0) 24%);
}
.qv-chapter__text { grid-column: 9 / span 4; display: grid; gap: var(--s-5); justify-items: start; }
.qv-chapter__text .qv-label { margin: 0; }
.qv-chapter__text h2 { font-size: var(--fs-h3); }
.qv-chapter.is-flipped .qv-chapter__media { grid-column: 6 / span 7; grid-row: 1; }
.qv-chapter.is-flipped .qv-chapter__text { grid-column: 1 / span 4; grid-row: 1; }
@media (max-width: 900px) {
	.qv-chapter__media, .qv-chapter__text,
	.qv-chapter.is-flipped .qv-chapter__media, .qv-chapter.is-flipped .qv-chapter__text { grid-column: 1 / -1; grid-row: auto; }
}

/* ============ Steps / principles ============ */
.qv-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grid-gap); margin: var(--s-8) 0 0; padding: 0; list-style: none; }
.qv-step { display: grid; gap: var(--s-4); align-content: start; padding-top: var(--s-5); border-top: 1px solid var(--line-strong); }
.qv-step__n { font: 600 var(--fs-label)/1 var(--font-display); letter-spacing: var(--tracking-label); color: var(--accent); }
.qv-step h3 { font-size: var(--fs-h4); }
.qv-step p { margin: 0; color: var(--fg-muted); }
@media (max-width: 900px) { .qv-steps { grid-template-columns: 1fr; } }

/* ============ Engagement cards ============ */
.qv-engage { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grid-gap); margin: var(--s-8) 0 0; padding: 0; list-style: none; }
.qv-engage__card { display: grid; gap: var(--s-4); align-content: start; min-height: 220px; padding: var(--s-6); transition: transform var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out); }
.qv-engage__card:hover { transform: translateY(-4px); border-color: rgb(255 255 255 / 0.28); }
.qv-engage__card h3 { font-size: var(--fs-h4); }
.qv-engage__card p { margin: 0; }
.qv-engage__card.is-accent { border-color: rgb(209 7 127 / 0.55); }
@media (max-width: 900px) { .qv-engage { grid-template-columns: 1fr; } }

/* ============ Platform page ============ */
.qv-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-8) var(--grid-gap); margin: var(--s-8) 0 0; padding: 0; list-style: none; }
.qv-feature { display: grid; gap: var(--s-3); align-content: start; }
.qv-feature__n { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: var(--s-2); border: 1px solid var(--line-strong); border-radius: var(--r-xs); font: 600 var(--fs-label)/1 var(--font-display); color: var(--fg-strong); }
.qv-feature h3 { font-size: var(--fs-h4); }
.qv-feature p { margin: 0; }
@media (max-width: 900px) { .qv-features { grid-template-columns: 1fr; gap: var(--s-7); } }

.qv-split { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--s-8); align-items: start; }
.qv-split__body { display: grid; gap: var(--s-5); color: var(--fg-muted); padding-top: var(--s-7); }
.qv-split__body p { margin: 0; }
@media (max-width: 900px) { .qv-split { grid-template-columns: 1fr; } .qv-split__body { padding-top: 0; } }

/* ============ Studio ============ */
.qv-banner { margin: 0 auto; }
.qv-banner img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--r-sm); }
.qv-team { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-6) var(--grid-gap); margin: var(--s-8) 0 0; padding: 0; list-style: none; }
.qv-member figure { margin: 0 0 var(--s-4); aspect-ratio: 1; overflow: hidden; border-radius: var(--r-sm); background: var(--ink-850); }
.qv-member img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); transition: filter var(--dur-base) var(--ease-out), transform 1200ms var(--ease-out); }
.qv-member:hover img { filter: none; transform: scale(1.03); }
.qv-member h3 { font-size: var(--fs-h4); }
.qv-member p { margin: 0.2rem 0 0; font-size: var(--fs-small); }
@media (max-width: 900px) { .qv-team { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.qv-tools { display: grid; gap: var(--s-4); margin-top: var(--s-9); padding-top: var(--s-6); border-top: 1px solid var(--line); }
.qv-tools .qv-label { margin: 0; }
.qv-academy { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-6); padding: clamp(1.5rem, 1rem + 2vw, 3rem); }
.qv-academy h2 { font-size: var(--fs-h3); margin-bottom: var(--s-3); }
.qv-academy p { margin: 0; }

/* ============ Contact ============ */
.qv-contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-8) var(--s-9); align-items: start; padding-top: calc(var(--header-h) + var(--section-tight)); padding-bottom: var(--section); }
.qv-contact h1 { font-size: var(--fs-h2); }
.qv-contact .is-quiet { color: var(--fg-subtle); }
.qv-contact .qv-lead { margin-top: var(--s-6); }
.qv-channels { display: grid; gap: var(--s-5); margin: var(--s-8) 0 0; }
.qv-channels dt { margin-bottom: 0.4rem; font: 600 var(--fs-label)/1.2 var(--font-display); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--fg-subtle); }
.qv-channels dd { margin: 0; color: var(--fg-strong); }
.qv-channels .qv-copy { font-size: var(--fs-lead); }
.qv-channels a { text-decoration-color: var(--line-strong); }

.qv-formcard { position: sticky; top: calc(var(--header-h) + 1.5rem); padding: clamp(1.25rem, 0.8rem + 2vw, 2.75rem); }
@media (max-width: 1023px) {
	.qv-contact { grid-template-columns: 1fr; }
	.qv-formcard { position: static; }
}
@media (max-width: 640px) {
	.qv-form__row, .qv-form__row--3 { grid-template-columns: 1fr; }
}

/* The contact page is the CTA: no second call to action in the footer. */
.page-contact-us .qv-footer__cta { display: none; }
.page-contact-us .qv-footer { padding-top: var(--s-8); }
.qv-film__title { margin: 0 0 var(--s-3); }
.qv-person { display: flex; align-items: center; gap: var(--s-5); margin-top: var(--s-7); padding: var(--s-5); border: 1px solid var(--line); border-radius: var(--r-sm); }
.qv-person img { width: 112px; height: 112px; flex: none; object-fit: cover; border-radius: var(--r-sm); }
.qv-person > div { display: grid; gap: 0.35rem; min-width: 0; }
.qv-person p { margin: 0; }
.qv-person__name { font-family: var(--font-display); font-size: var(--fs-h4); line-height: 1.15; color: #fff; text-wrap: balance; }
.qv-person__meta { font-size: var(--fs-small); color: var(--fg-subtle); letter-spacing: 0.02em; }
@media (max-width: 480px) { .qv-person img { width: 88px; height: 88px; } }

/* ============ Join us ============ */
.qv-roles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); margin-top: var(--s-8); }
.qv-role { display: grid; align-content: start; gap: var(--s-4); 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); transition: border-color var(--dur-base) var(--ease-out); }
.qv-role:hover { border-color: rgb(209 7 127 / 0.5); }
.qv-role h3 { margin: 0; font-size: var(--fs-h3); }
.qv-role p { margin: 0; }
.qv-role .qv-btn { justify-self: start; margin-top: var(--s-2); }
.qv-role--open { grid-column: 1 / -1; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr) auto; align-items: center; gap: var(--s-6); }
.qv-role--open .qv-btn { margin-top: 0; }
.qv-join.qv-contact { padding-top: var(--section); }
.qv-join__title { font-size: var(--fs-h2); }
@media (max-width: 900px) { .qv-roles, .qv-role--open { grid-template-columns: 1fr; } }

/* ============ Service pages (visualization, film) ============ */
.qv-films { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-7) var(--grid-gap); margin-top: var(--s-8); }
.qv-film { margin: 0; }
.qv-film--lead { grid-column: 1 / -1; }
.qv-film figcaption { margin-top: var(--s-3); font: 500 var(--fs-small)/1.3 var(--font-display); letter-spacing: 0.02em; }
.qv-film figcaption a { color: var(--fg-strong); text-decoration: none; }
.qv-film figcaption a:hover { text-decoration: underline; text-decoration-color: #d1077f; }
.qv-svc-cta { border-top: 1px solid var(--line); }
.qv-svc-cta h2 { font-size: var(--fs-h2); }
.qv-svc-cta .qv-actions { margin-top: var(--s-6); }
@media (max-width: 640px) { .qv-films { grid-template-columns: 1fr; } }

/* Service heroes over bright renders: darker on the text side so the title always reads. */
.qv-svc-hero .qv-drones-hero__scrim { background: linear-gradient(0deg, var(--bg) 0%, rgb(18 18 17 / 0.4) 30%, transparent 60%), linear-gradient(90deg, rgb(18 18 17 / 0.85) 0%, rgb(18 18 17 / 0.55) 45%, rgb(18 18 17 / 0.12) 100%); }
.qv-svc-hero .qv-drones-hero__content h1 { max-width: 15ch; }
.qv-svc-hero .qv-drones-hero__content h1 .is-quiet { color: rgb(255 255 255 / 0.62); }

/* ============ Quadra Lab ============ */
.qv-lab { display: grid; gap: var(--section-tight); margin-top: var(--s-8); }
.qv-lab__tool { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--s-6) var(--s-8); align-items: start; padding-top: var(--s-7); border-top: 1px solid var(--line); }
.qv-lab__text { position: sticky; top: calc(var(--header-h) + 1.5rem); display: grid; gap: var(--s-4); justify-items: start; }
.qv-lab__text h3 { margin: 0; font-size: var(--fs-h3); }
.qv-lab__text p { margin: 0; }
.qv-lab__lead { color: #fff; font-size: var(--fs-lead); }
.qv-lab__media { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-6) var(--grid-gap); }
.qv-lab__media--1 > *, .qv-lab__media--3 > :first-child { grid-column: 1 / -1; }
.qv-lab__slot { margin: 0; }
.qv-lab__slot img, .qv-lab__slot video { display: block; width: 100%; aspect-ratio: 16 / 10; height: auto; object-fit: cover; border-radius: var(--r-sm); background: var(--ink-850); }
.qv-lab__slot figcaption { margin-top: var(--s-3); font: 600 var(--fs-label)/1.2 var(--font-display); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--fg-subtle); }
.qv-lab__todo { display: grid; place-content: center; gap: 6px; aspect-ratio: 16 / 10; padding: var(--s-4); text-align: center; border: 1px dashed rgb(209 7 127 / 0.55); border-radius: var(--r-sm); background: rgb(209 7 127 / 0.04); color: var(--fg-subtle); font-size: var(--fs-small); }
.qv-lab__todo code { color: #fff; font-size: var(--fs-small); }
@media (max-width: 900px) { .qv-lab__tool { grid-template-columns: 1fr; } .qv-lab__text { position: static; } }

.qv-lab__tool--text { grid-template-columns: minmax(0, 1fr); }
.qv-lab__tool--text .qv-lab__text { position: static; max-width: 46rem; }

/* Contact: secondary lines under a channel (full US address). */
.qv-channels__sub { display: block; margin-top: 4px; font-style: normal; font-size: var(--fs-small); line-height: 1.5; color: var(--fg-subtle); }
/* Sales team panel (platform): two columns inside the split body. */
.qv-features--panel { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: var(--s-4); }
@media (max-width: 640px) { .qv-features--panel { grid-template-columns: 1fr; } }
/* Quadra Immersive (/interactive/): residence still above the VR / AR cards. */
.qv-immersive__media { margin: 0 0 var(--section-tight); }
.qv-immersive__media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r-sm); }
.qv-immersive__media figcaption { margin-top: var(--s-3); font-size: var(--fs-small); }
.qv-immersive__media + .qv-sh + .qv-versus { margin-top: var(--s-7); }
/* Solutions: the chapter list hands over to a light section; one tight gap is enough. */
.qv-chapters { padding-bottom: var(--section-tight); }
