/* Shared type scale for equivalent components, audited 2026-10-15. */
:root{--v-page-title:clamp(42px,4.6vw,76px);--v-section-title:clamp(32px,3.5vw,52px);--v-card-title:24px;--v-lead-size:20px;--v-body-size:17px;--v-label-size:12px}
/* Keep the restored Videtics wordmark proportional on every shared surface. */
header .v-9{width:160px;flex-shrink:0}
.v-9 img,.v-16 img,.vp-console-brand img{display:block;max-width:100%;height:auto;object-fit:contain}
.v-16{width:208px}
@media(max-width:1000px){header .v-9{width:144px}}
/* The logo group must remain centred regardless of how many logos are added. */
#references .v-61{width:100%;align-items:center}
#references .v-61>.v-62{align-self:center;margin-inline:auto;text-align:center;justify-content:center}
#references .v-63{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:32px clamp(40px,7vw,100px);width:100%}
#references .v-63>.v-client-logo{flex:0 1 180px;width:180px;margin:0}
/* Navigation: the resource menu follows the same link scale as other menus. */
.ve-main-menu .ve-menu-column li>a{font-size:16px;line-height:1.4}
.vr-menu-grid small{font-size:13px;line-height:1.45}
main:is(.vs-page,.vr-page,.vd-page) h1{font-size:var(--v-page-title);line-height:1.04;font-weight:400;letter-spacing:-.045em}
main:is(.vs-page,.vr-page) :is(.vs-lead,.vr-lead),main.vd-page .vd-intro>p:not(.v-eyebrow){font-size:var(--v-lead-size);line-height:1.5}
main.vs-page .vs-section>h2,main.vr-page .vr-section>h2{font-size:var(--v-section-title);line-height:1.1;letter-spacing:-.045em}
main.vs-page :is(.vc-card,.vg-card,.vg-milestone,.vs-card-copy) h3,main.vr-page .vr-card h3{font-size:var(--v-card-title);font-weight:400;line-height:1.2;letter-spacing:-.03em}
/* Dense homepage cards intentionally retain their compact 20px headings. */
main:is(.vs-page,.vr-page,.vd-page) :is(.v-eyebrow,.vr-eyebrow){font-size:var(--v-label-size);line-height:1.2;padding:10px 12px;letter-spacing:0;font-weight:400}
main .vr-button,main .vd-next,main .vd-back{font-size:16px;line-height:1.25}
main #faq .v-faq summary,main .vr-faq summary{font-size:20px;line-height:1.3}
main #faq .v-faq p,main .vr-faq p{font-size:16px;line-height:1.6}
@media(max-width:767px){
 :root{--v-card-title:22px;--v-lead-size:18px;--v-label-size:11px}
 .ve-main-menu .ve-menu-column li>a{font-size:17px}
 main #faq .v-faq summary,main .vr-faq summary{font-size:18px}
 #references .v-63{gap:24px 32px}
 #references .v-63>.v-client-logo{flex-basis:120px;width:120px}
}
/* Optical balance: a circular outline needs more height than a solid wordmark. */
#references .v-client-logo img[alt="Dell"]{width:92px;height:92px;max-width:100%}
#references .v-client-logo img[alt="Lenovo"]{width:150px;height:50px;max-width:100%}
@media(max-width:767px){
 #references .v-client-logo img[alt="Dell"]{width:76px;height:76px}
 #references .v-client-logo img[alt="Lenovo"]{width:120px;height:40px}
}

/* Site-wide component contracts. Keep page layouts, share typography and controls. */
:root{--v-control-size:14px;--v-card-body:16px;--v-small-title:20px;--v-rule:#dce3d9}
main:is(.vs-page,.vr-page) :is(.vs-lead,.vr-lead,.vg-hero .vs-lead,.vp-hero .vs-lead,.vpa-hero-copy .vr-lead){font-size:var(--v-lead-size);line-height:1.5}
main:is(.vs-page,.vr-page) :is(.vs-section>h2,.vr-section>h2,.vs-final h2,.vr-feature h2,.vr-directory-title h2,.vpa-workflow h2,.vpa-final h2){font-size:var(--v-section-title);line-height:1.1;font-weight:400;letter-spacing:-.045em}
main:is(.vs-page,.vr-page) :is(.vc-card,.vg-card,.vg-milestone,.vs-card-copy,.vs-sector,.vr-card,.vpa-benefit,.vpa-step,.vpa-panel,.vp-partner) h3{font-size:var(--v-card-title);line-height:1.2;font-weight:400;letter-spacing:-.03em}
main:is(.vs-page,.vr-page) :is(.vc-card,.vg-card,.vg-milestone,.vs-card-copy,.vs-sector,.vr-card,.vpa-benefit,.vpa-step-copy,.vpa-panel)>p:not([class]),main.vr-page .vr-section>p{font-size:var(--v-body-size);line-height:1.6}
main:is(.vs-page,.vr-page) :is(.vpa-node,.vpa-flow-step,.vp-flow-node) h3{font-size:var(--v-small-title);line-height:1.25;letter-spacing:-.025em;font-weight:400}
main:is(.vs-page,.vr-page) :is(.vpa-flow-step p:not(.vpa-flow-number),.vr-card p,.vc-card p,.vpa-detail p){font-size:var(--v-card-body);line-height:1.6}
/* All horizontal section navigation uses the same outlined controls. */
main:is(.vs-page,.vr-page) :is(.vc-toc,.vpa-page-nav,.vr-tabs){display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:10px;padding:24px 0;margin:0 0 48px;border-top:1px solid var(--v-rule);border-bottom:1px solid var(--v-rule)}
main:is(.vs-page,.vr-page) :is(.vc-toc,.vpa-page-nav,.vr-tabs)>p{margin:0;max-width:none;line-height:1.4}
main:is(.vs-page,.vr-page) :is(.vc-toc,.vpa-page-nav,.vr-tabs) a{display:block;box-sizing:border-box;padding:11px 15px;border:1px solid var(--v-rule);border-radius:9px;background:#fff;color:#183020;font-size:var(--v-control-size);font-weight:500;line-height:1.4;text-decoration:none;transition:background .18s,border-color .18s;max-width:100%;overflow-wrap:anywhere}
main:is(.vs-page,.vr-page) :is(.vc-toc,.vpa-page-nav,.vr-tabs) a:hover,main:is(.vs-page,.vr-page) :is(.vc-toc,.vpa-page-nav,.vr-tabs) a:focus-visible{background:#c4fc00;border-color:#c4fc00;text-decoration:none}
main:is(.vs-page,.vr-page) :is(.vc-toc,.vpa-page-nav,.vr-tabs) a:focus-visible{outline:2px solid #183020;outline-offset:3px}
main .vg-toc a{font-size:var(--v-control-size);line-height:1.4;font-weight:500}
main :is(.vpa-profile summary,.vr-faq summary,#faq .v-faq summary){font-size:var(--v-small-title);line-height:1.3;font-weight:400}
main :is(.vr-button,.v-116,.vd-next,.vd-back,.vp-jetson-cta a){font-size:16px;line-height:1.25;font-weight:400}
@media(max-width:767px){:root{--v-body-size:16px;--v-small-title:18px}main:is(.vs-page,.vr-page) :is(.vc-toc,.vpa-page-nav,.vr-tabs){padding:20px 0;gap:8px;margin-bottom:32px}main:is(.vs-page,.vr-page) :is(.vc-toc,.vpa-page-nav,.vr-tabs) a{padding:10px 13px}}
@media(prefers-reduced-motion:reduce){main:is(.vs-page,.vr-page) :is(.vc-toc,.vpa-page-nav,.vr-tabs) a{transition:none}}

/* Home uses the same section scale; its main brand headline remains a display title. */
body.home main h2{font-size:var(--v-section-title);line-height:1.1;letter-spacing:-.045em}

/* Home closing CTA: the same light pixel artwork as the resource feature. */
#demo.v-146{background:#bedee7 url('assets/hero-pixels.svg') center/cover no-repeat;color:#183020}
#demo .v-147{display:none}
#demo :is(.v-149,.v-150,.v-153,.v-152){color:#183020}
#demo a.v-53{background:#183020;color:#fff;border-color:#183020}
#demo a.v-53:is(:hover,:focus-visible){background:#2c4c35;color:#fff;border-color:#2c4c35}
#demo a.v-152:is(:hover,:focus-visible){color:#183020;text-decoration:underline;text-underline-offset:5px}
#demo a:focus-visible{outline:2px solid #183020;outline-offset:4px}
/* Live pixel field is decorative; the original artwork is the no-JS fallback. */
#accueil.has-stream>.v-36 figure{visibility:hidden;animation:none}
#accueil>.v-36>canvas.v-stream{display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#accueil .v-stream-toggle{position:absolute;right:20px;bottom:18px;z-index:5;width:36px;height:36px;padding:0;border:1px solid #18302060;border-radius:50%;background:#eaf4ecdd;color:#183020;font:16px Arial,sans-serif;cursor:pointer;display:grid;place-items:center}
#accueil .v-stream-toggle:hover{background:#c4fc00}#accueil .v-stream-toggle:focus-visible{outline:2px solid #183020;outline-offset:4px}
@media(prefers-reduced-motion:reduce){#accueil>.v-36 figure{animation:none}}

/* Homepage solutions: three balanced cards with coordinated visual feedback. */
#solutions .v-70{max-width:850px;margin-bottom:48px}
#solutions .v-74{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
#solutions .v-75,#solutions .v-75:first-child{grid-row:auto;padding:16px;border:1px solid #ffffff1f;border-radius:24px;background:linear-gradient(160deg,#284735,#203d2c);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}
#solutions .v-76{gap:0;height:100%}
#solutions .v-77,#solutions .v-75:first-child .v-77{position:relative;order:0;aspect-ratio:4/3;max-height:none;margin:0;overflow:hidden;border-radius:16px;isolation:isolate;background:#183020}
#solutions .v-77 img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1);transform:scale(1.01)}
#solutions .v-77:after{content:'';position:absolute;inset:-100% 0 100%;background:linear-gradient(transparent,#c4fc0020 85%,#c4fc0070);border-bottom:1px solid #c4fc0090;pointer-events:none}
#solutions .v-78{padding:26px 12px 12px;gap:20px}
#solutions .v-79{font-size:var(--v-card-title);line-height:1.2;min-height:2.4em;align-items:flex-start;margin:0;letter-spacing:-.03em}
#solutions .v-80{margin-top:10px;background:#c4fc00}
#solutions .v-81{font-size:16px;line-height:1.6;color:#c3d1c7;margin:0}
#solutions .v-82{padding-top:24px;gap:18px;margin-top:auto}
#solutions .v-83{font-size:13px;line-height:1.5;color:#aebfb3;margin:0;padding-top:18px}
#solutions .v-82>.v-4{margin:0}
#solutions a.v-84{display:flex;justify-content:space-between;align-items:center;gap:14px;width:100%;font-size:15px;line-height:1.4;white-space:normal;padding:12px 0;color:#fff;border-radius:0}
#solutions a.v-84:after{content:'↗';display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border:1px solid #ffffff40;border-radius:50%;transition:background .2s,color .2s,transform .2s}
#solutions .v-75:is(:hover,:focus-within){transform:translateY(-6px);border-color:#b8df7970;box-shadow:0 18px 45px #071b1830}
#solutions .v-75:is(:hover,:focus-within) .v-77 img{transform:scale(1.055)}
#solutions .v-75:is(:hover,:focus-within) .v-77:after{animation:v-solution-scan 1.5s ease-out both}
#solutions .v-75:is(:hover,:focus-within) a.v-84:after{background:#c4fc00;color:#183020;border-color:#c4fc00;transform:rotate(45deg)}
#solutions a.v-84:focus-visible{outline:2px solid #c4fc00;outline-offset:5px}
#solutions .v-75.v-solution-enter{animation:v-solution-enter .7s both;animation-delay:var(--solution-delay,0ms)}
#solutions .v-75.v-solution-enter .v-77:after{animation:v-solution-scan 1.5s .3s ease-out both}
@keyframes v-solution-enter{from{opacity:.15;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes v-solution-scan{from{transform:translateY(0)}to{transform:translateY(220%)}}
@media(max-width:1000px){#solutions .v-74{grid-template-columns:1fr}#solutions .v-76{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px}#solutions .v-77,#solutions .v-75:first-child .v-77{aspect-ratio:1;align-self:start}#solutions .v-78{padding:12px 8px 12px 0}#solutions .v-79{min-height:0}}
@media(max-width:600px){#solutions .v-76{display:flex;gap:0}#solutions .v-77,#solutions .v-75:first-child .v-77{aspect-ratio:4/3;width:100%}#solutions .v-78{padding:24px 8px 8px}#solutions .v-70{margin-bottom:32px}}
@media(prefers-reduced-motion:reduce){#solutions .v-75,#solutions .v-77 img,#solutions a.v-84:after{transition:none}#solutions .v-75.v-solution-enter,#solutions .v-75 .v-77:after{animation:none!important}#solutions .v-75:is(:hover,:focus-within),#solutions .v-75:is(:hover,:focus-within) .v-77 img{transform:none}}
