/* Concators public home: the cinematic hero stage, services, ecosystem, process and contact blocks.
   Loaded after theme-concators.css and scoped to body.pub-theme-concators, so other tenants' sites are not affected.
   Colours come only from the --cv-* tokens defined in theme-concators.css. No CDN, no remote font or image. */

body.pub-theme-concators {
    --cv-glass: rgba(255, 255, 255, .06);
    --cv-glass-line: rgba(255, 255, 255, .14);
    --cv-glow-blue: rgba(37, 99, 235, .45);
    --cv-glow-orange: rgba(245, 166, 35, .35);
}

.pub-theme-concators .cv-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.pub-theme-concators section[id] { scroll-margin-top: 4.5rem; }

/* ---------- hero with the stage ---------- */
.pub-theme-concators .cv-stage-brand { position: relative; width: min(100%, 320px); margin: .8rem auto 0; overflow: hidden; border-radius: .5rem; filter: drop-shadow(0 0 10px var(--cv-glow-blue)); }
.pub-theme-concators .cv-stage-brand .vx-engagex-wordmark { display: block; }
.pub-theme-concators .cv-stage-brand img { display: block; width: 100%; height: auto; }
.pub-theme-concators .cv-stage-brand-sweep { pointer-events: none; position: absolute; inset: 0; opacity: 0; background: linear-gradient(110deg, transparent 32%, rgba(255,255,255,.35) 49%, var(--cv-glow-orange) 52%, transparent 65%); transform: translateX(-110%); }
.pub-theme-concators .cv-stage-brand[data-logo-motion="running"] .cv-stage-brand-sweep,
.pub-theme-concators .cv-stage-brand[data-logo-motion="paused"] .cv-stage-brand-sweep { animation: cv-logo-sweep 1.8s ease-in-out both; }
.pub-theme-concators .cv-stage-brand[data-logo-motion="paused"] .cv-stage-brand-sweep { animation-play-state: paused; }
@keyframes cv-logo-sweep { from { opacity: 0; transform: translateX(-110%); } 20% { opacity: 1; } 80% { opacity: 1; } to { opacity: 0; transform: translateX(110%); } }
@media (prefers-reduced-motion: reduce) { .pub-theme-concators .cv-stage-brand-sweep { animation: none !important; opacity: 0 !important; } }
.pub-theme-concators .cv-hero--stage .cv-wrap { max-width: 1180px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 2.5rem; align-items: center; text-align: left; }
.pub-theme-concators .cv-hero--stage .cv-actions { justify-content: flex-start; }
.pub-theme-concators .cv-hero--stage p { margin-left: 0; margin-right: 0; }
.pub-theme-concators .cv-hero--stage .cv-hero-copy { min-width: 0; }
.pub-theme-concators .cv-btn--solid { background: var(--cv-navy); color: #fff; }
.pub-theme-concators .cv-btn--solid:hover { background: var(--cv-blue); color: #fff; }
.pub-theme-concators .cv-actions--section { margin-top: 2.25rem; }
.pub-theme-concators .cv-btn:focus-visible, .pub-theme-concators .cv-card-link:focus-visible, .pub-theme-concators .cv-stage button:focus-visible, .pub-theme-concators .cv-contact-list a:focus-visible { outline: 3px solid var(--cv-orange); outline-offset: 3px; }

.pub-theme-concators .cv-stage { position: relative; width: 100%; max-width: 560px; margin: 0 auto; }
.pub-theme-concators .cv-stage-view { position: relative; width: 100%; aspect-ratio: 1 / 1; border-radius: var(--cv-radius); background: radial-gradient(60% 60% at 50% 45%, var(--cv-glow-blue), transparent 70%); overflow: hidden; }
.pub-theme-concators .cv-stage-poster, .pub-theme-concators .cv-stage-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.pub-theme-concators .cv-stage-canvas { opacity: 0; transition: opacity .6s ease; touch-action: pan-y; cursor: grab; }
.pub-theme-concators .cv-stage-canvas:active { cursor: grabbing; }
.pub-theme-concators .cv-stage.is-live .cv-stage-canvas { opacity: 1; }
.pub-theme-concators .cv-stage.is-live .cv-stage-poster { opacity: 0; transition: opacity .6s ease; }
.pub-theme-concators .cv-stage-controls { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-top: 1rem; }
.pub-theme-concators .cv-stage-mode, .pub-theme-concators .cv-stage-motion { min-height: 44px; padding: .55rem 1rem; border-radius: 999px; border: 1px solid var(--cv-glass-line); background: var(--cv-glass); color: #fff; font: inherit; font-size: .9rem; font-weight: 600; cursor: pointer; transition: background .2s, border-color .2s; }
.pub-theme-concators .cv-stage-mode:hover, .pub-theme-concators .cv-stage-motion:hover { background: rgba(255, 255, 255, .14); }
.pub-theme-concators .cv-stage-mode[aria-pressed="true"], .pub-theme-concators .cv-stage-motion[aria-pressed="true"] { background: var(--cv-orange); border-color: var(--cv-orange); color: var(--cv-navy); }
.pub-theme-concators .cv-stage-note { margin: .75rem 0 0; font-size: .8rem; color: rgba(255, 255, 255, .72); text-align: center; }
.pub-theme-concators .cv-hero--stage .cv-stage-note { max-width: none; }

/* ---------- cards ---------- */
.pub-theme-concators .cv-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 760px) { .pub-theme-concators .cv-grid--three { grid-template-columns: 1fr; } }
.pub-theme-concators .cv-card--service, .pub-theme-concators .cv-card--eco { overflow: hidden; }
.pub-theme-concators .cv-card--service::before, .pub-theme-concators .cv-card--eco::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: linear-gradient(90deg, var(--cv-blue), var(--cv-orange)); opacity: 0; transition: opacity .2s; }
.pub-theme-concators .cv-card--service:hover::before, .pub-theme-concators .cv-card--eco:hover::before { opacity: 1; }
.pub-theme-concators .cv-card-link { display: inline-flex; align-items: center; gap: .35rem; margin-top: 1rem; font-weight: 700; color: var(--cv-blue); text-decoration: none; }
.pub-theme-concators .cv-card-link:hover { color: var(--cv-navy); text-decoration: underline; }

/* ---------- delivery process ---------- */
.pub-theme-concators .cv-process { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.4rem; counter-reset: none; }
.pub-theme-concators .cv-process-step { position: relative; padding-top: 3.6rem; }
.pub-theme-concators .cv-process-step::before { content: ""; position: absolute; top: 1.35rem; left: 2.9rem; right: -1.4rem; height: 2px; background: linear-gradient(90deg, var(--cv-blue), rgba(37, 99, 235, .15)); }
.pub-theme-concators .cv-process-step:last-child::before { display: none; }
.pub-theme-concators .cv-process-no { position: absolute; top: 0; left: 0; width: 2.7rem; height: 2.7rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--cv-blue); color: #fff; font-weight: 800; box-shadow: 0 0 0 6px rgba(37, 99, 235, .12); }
.pub-theme-concators .cv-process-step h3 { font-size: 1.1rem; font-weight: 700; color: var(--cv-navy); margin-bottom: .35rem; }
.pub-theme-concators .cv-process-step p { margin: 0; color: var(--cv-muted); }

/* ---------- contact block in the call to action ---------- */
.pub-theme-concators .cv-contact-list { list-style: none; margin: 1.75rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .75rem 2rem; justify-content: center; color: rgba(255, 255, 255, .88); }
.pub-theme-concators .cv-contact-list a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.pub-theme-concators .cv-contact-list i { color: var(--cv-orange); margin-right: .35rem; }

/* ---------- responsive ---------- */
@media (max-width: 980px) {
    .pub-theme-concators .cv-hero--stage .cv-wrap { grid-template-columns: 1fr; text-align: center; }
    .pub-theme-concators .cv-hero--stage .cv-actions { justify-content: center; }
    .pub-theme-concators .cv-hero--stage p { margin-left: auto; margin-right: auto; }
    .pub-theme-concators .cv-stage { max-width: min(460px, 78vw); }
    .pub-theme-concators .cv-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pub-theme-concators .cv-process-step::before { display: none; }
}
@media (max-width: 560px) {
    .pub-theme-concators .cv-process { grid-template-columns: 1fr; }
    .pub-theme-concators .cv-stage-mode, .pub-theme-concators .cv-stage-motion { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
    .pub-theme-concators .cv-stage-canvas, .pub-theme-concators .cv-stage.is-live .cv-stage-poster, .pub-theme-concators .cv-card--service::before, .pub-theme-concators .cv-card--eco::before, .pub-theme-concators .cv-stage-mode { transition: none; }
}

/* touch targets: inline contact links are at least 24 px tall (WCAG 2.5.8) */
.pub-theme-concators .cv-contact-list a, .pub-theme-concators .pub-footer p a { display: inline-block; min-height: 24px; line-height: 24px; }
