/* ============================================================================
   PI NETWORK — v2 light design layer (2026-11-02)
   Direction: bright, clear, specific — Mintti-style reading environment with
   PI's own brand greens. Loaded AFTER styles.css on every page.
   ----------------------------------------------------------------------------
   Site-wide (all pages): .nv header, .ft footer, .b buttons, .pill
   v2 pages only (body.v2): hero, sections, cards, forms, case-study kit.
   Old dark pages keep their body styles; the header there uses .nv--dark.
   Tokens: brand greens are the Webflow "Base" variables (PiN Green 1/2).
   The brief's #087044 trial colour was NOT adopted — swap --v-brand to test it.
   ============================================================================ */
:root{
  --v-bg:#FFFFFF;--v-bg2:#F7F9F8;--v-ink:#102A22;--v-ink2:#4F6259;--v-line:#DDE6E1;
  --v-brand:#406448;--v-brand-deep:#2F4D33;--v-lime:#99CB52;--v-lime-soft:#EEF6E2;--v-tint:#EAF2EC;
  --v-dark:#102A22;
  --v-r:12px;--v-r-sm:8px;--v-wrap:1160px;
  --v-font:"Inter","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --v-shadow:0 10px 30px rgba(16,42,34,.08);
}

/* ---------- site-wide header ---------- */
.nv{position:sticky;top:0;z-index:800;background:var(--v-bg);border-bottom:1px solid var(--v-line);font-family:var(--v-font);font-size:15px;color:var(--v-ink)}
.nv-wrap{max-width:var(--v-wrap);margin:0 auto;padding:0 24px;min-height:68px;display:flex;align-items:center;gap:28px}
.nv-logo{display:flex;align-items:center;flex:0 0 auto}
.nv-logo img{height:38px;width:auto;display:block}
.nv-panel{display:flex;align-items:center;flex:1 1 auto;gap:20px;min-width:0}
.nv-menu{display:flex;align-items:center;gap:4px;margin:0;padding:0;list-style:none}
.nv-menu>li{position:relative}
.nv-menu a,.nv-menu button{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;border-radius:8px;color:var(--v-ink);font:500 15px/1 var(--v-font);text-decoration:none;background:none;border:0;cursor:pointer;white-space:nowrap}
.nv-menu a:hover,.nv-menu button:hover,.nv-menu a[aria-current="page"]{background:var(--v-bg2);color:var(--v-brand)}
.nv-menu a[aria-current="page"]{color:var(--v-brand);font-weight:600}
.nv-menu svg{width:12px;height:12px;flex:0 0 auto;transition:transform .15s}
.nv-item.open>button svg,.nv-item:hover>button svg{transform:rotate(180deg)}
.nv-sub{position:absolute;left:0;top:calc(100% + 8px);min-width:260px;background:var(--v-bg);border:1px solid var(--v-line);border-radius:var(--v-r);box-shadow:var(--v-shadow);padding:8px;display:none;flex-direction:column;z-index:2}
.nv-sub::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.nv-sub a{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;white-space:normal;border-radius:8px}
.nv-sub a small{font-size:12.5px;color:var(--v-ink2);font-weight:400}
.nv-item.open .nv-sub{display:flex}
@media(hover:hover){.nv-item:hover .nv-sub,.nv-item:focus-within .nv-sub{display:flex}}
.nv-right{margin-left:auto;display:flex;align-items:center;gap:6px}
.nv-right>a{padding:10px 10px;border-radius:8px;color:var(--v-ink2);font:500 14px/1 var(--v-font);text-decoration:none;white-space:nowrap}
.nv-right>a:hover{color:var(--v-brand);background:var(--v-bg2)}
.nv-right>a.b-primary{color:#fff;border:0}.nv-right>a.b-primary:hover{background:var(--v-brand-deep);color:#fff}
.nv-lang{border:1px solid var(--v-line)}
.nv-cta{margin-left:6px}
.nv-burger{display:none;margin-left:auto;width:44px;height:44px;border:1px solid var(--v-line);border-radius:10px;background:var(--v-bg);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.nv-burger span{display:block;width:20px;height:2px;background:var(--v-ink);border-radius:2px;transition:transform .2s,opacity .2s}
.nv.open .nv-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nv.open .nv-burger span:nth-child(2){opacity:0}
.nv.open .nv-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:1040px){
  .nv-burger{display:flex}
  .nv-panel{display:none;flex-direction:column;align-items:stretch;position:absolute;left:0;right:0;top:100%;background:var(--v-bg);border-bottom:1px solid var(--v-line);box-shadow:var(--v-shadow);padding:12px 24px 20px;max-height:calc(100vh - 68px);overflow:auto}
  .nv.open .nv-panel{display:block}
  .nv-menu{flex-direction:column;align-items:stretch;gap:0}
  .nv-menu a,.nv-menu button{width:100%;justify-content:space-between;padding:14px 10px;font-size:16px;border-bottom:1px solid var(--v-line);border-radius:0}
  .nv-sub{position:static;display:none;border:0;box-shadow:none;padding:0 0 6px 12px;min-width:0}
  .nv-sub a{border-bottom:0;padding:10px}
  .nv-right{margin:14px 0 0;flex-wrap:wrap;gap:8px}
  .nv-right>a{border:1px solid var(--v-line)}
  .nv-cta{margin-left:0;width:100%;justify-content:center}
}
/* dark variant for the pages that still open with a dark hero */
.nv--dark{background:#082315;border-bottom-color:rgba(205,233,214,.18);color:#E6F2EA}
.nv--dark .nv-menu a,.nv--dark .nv-menu button,.nv--dark .nv-right>a{color:#E6F2EA}
.nv--dark .nv-menu a:hover,.nv--dark .nv-menu button:hover,.nv--dark .nv-right>a:not(.b-primary):hover{background:rgba(255,255,255,.08);color:#fff}
.nv--dark .nv-menu a[aria-current="page"]{color:#B7F04C;background:rgba(255,255,255,.06)}
.nv--dark .nv-sub{background:#0E3A24;border-color:rgba(205,233,214,.2)}
.nv--dark .nv-sub a small{color:#9DBFAA}
.nv--dark .nv-lang,.nv--dark .nv-right>a{border-color:rgba(205,233,214,.25)}
.nv--dark .nv-burger{background:transparent;border-color:rgba(205,233,214,.3)}
.nv--dark .nv-burger span{background:#E6F2EA}
.nv--dark .nv-logo{background:#fff;border-radius:8px;padding:5px 9px}
@media(max-width:1040px){.nv--dark .nv-panel{background:#082315;border-bottom-color:rgba(205,233,214,.18)}.nv--dark .nv-menu a,.nv--dark .nv-menu button{border-bottom-color:rgba(205,233,214,.14)}}

/* ---------- buttons (site-wide) ---------- */
.b{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:var(--v-r-sm);border:1px solid transparent;font:600 15px/1 var(--v-font);text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .15s;white-space:nowrap}
.b:active{transform:translateY(1px)}
.b-primary{background:var(--v-brand);color:#fff}
.b-primary:hover{background:var(--v-brand-deep);color:#fff}
.b-ghost{background:var(--v-bg);border-color:var(--v-line);color:var(--v-ink)}
.b-ghost:hover{border-color:var(--v-brand);color:var(--v-brand)}
.b-sm{min-height:40px;padding:0 16px;font-size:14px}
.b:focus-visible,.nv a:focus-visible,.nv button:focus-visible{outline:3px solid var(--v-lime);outline-offset:2px}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid var(--v-line);border-radius:999px;background:var(--v-bg);font:500 13px/1 var(--v-font);color:var(--v-ink2)}
@media(max-width:600px){.pill{flex-wrap:wrap;justify-content:center;max-width:100%;padding:8px 12px;line-height:1.4;text-align:center}}
.v2 .hh .pill{max-width:min(100%,560px)}
@media(max-width:600px){.v2 .hh .tr{flex-direction:column;align-items:flex-start;gap:8px;max-width:320px;margin-left:auto;margin-right:auto}.v2 .hh .tr li{align-items:flex-start;text-align:left}.v2 .hh .tr li::before{flex:0 0 auto;margin-top:8px}}
.pill b{display:inline-block;padding:5px 9px;border-radius:999px;background:var(--v-lime-soft);color:var(--v-brand-deep);font-weight:700;font-size:12px;letter-spacing:.02em}

/* ---------- v2 page base ---------- */
body.v2{font:400 17px/1.65 var(--v-font);background:var(--v-bg);color:var(--v-ink)}
.v2 section{padding:0}
.v2 h1,.v2 h2,.v2 h3,.v2 h4{font-family:var(--v-font);color:var(--v-ink);letter-spacing:-.02em}
.v2 h1{font-weight:800;font-size:clamp(34px,5.2vw,62px);line-height:1.04;letter-spacing:-.03em}
.v2 h2{font-weight:800;font-size:clamp(28px,3.4vw,42px);line-height:1.1}
.v2 h3{font-weight:700;font-size:20px;line-height:1.3;letter-spacing:-.01em}
.v2 p{color:var(--v-ink2)}
.v2 .wrap{max-width:var(--v-wrap);padding:0 24px}
.v2 ::selection{background:rgba(153,203,82,.4)}
.v2 .pvbadge{z-index:850}
.v2 .sec{padding:clamp(56px,7vw,96px) 0}
.v2 .sec--alt{background:var(--v-bg2)}
.v2 .sec--dark{background:var(--v-dark);color:#E6F2EA}
.v2 .sec--dark h2,.v2 .sec--dark h3{color:#fff}
.v2 .sec--dark p{color:#C9DBD0}
.v2 .sh{max-width:720px;margin-bottom:clamp(28px,4vw,44px)}
.v2 .sh.center{margin-left:auto;margin-right:auto;text-align:center}
.v2 .sh p{margin-top:14px;font-size:18px}
.v2 .kick{display:inline-block;margin-bottom:14px;font:700 12.5px/1 var(--v-font);letter-spacing:.14em;text-transform:uppercase;color:var(--v-brand)}
.v2 .sec--dark .kick{color:var(--v-lime)}
:is(.v2,.lite) .link{color:var(--v-brand);font-weight:600;text-decoration:none}
:is(.v2,.lite) .link:hover{text-decoration:underline}
.v2 .ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.v2 .ticks li{position:relative;padding-left:26px;color:var(--v-ink2)}
.v2 .ticks li::before{content:"";position:absolute;left:0;top:7px;width:16px;height:16px;border-radius:50%;background:var(--v-lime-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.6 2.6L12 5.6' fill='none' stroke='%232F4D33' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
.v2 .note{font-size:13.5px;color:var(--v-ink2)}
.v2 .ph{display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;border:1.5px dashed #BFD0C6;border-radius:var(--v-r);background:repeating-linear-gradient(135deg,#F7F9F8 0 10px,#F1F5F2 10px 20px);color:var(--v-ink2);font-size:13.5px;line-height:1.5}
.v2 .ph b{display:block;color:var(--v-ink);font-weight:600;margin-bottom:4px}

/* ---------- hero ---------- */
.v2 .hh{padding:clamp(44px,6vw,80px) 0 0;text-align:center}
.v2 .hh .pill{margin-bottom:22px}
.v2 .hh h1{max-width:900px;margin:0 auto}
.v2 .hh h1 em{font-style:normal;color:var(--v-brand)}
.v2 .hh .lead{max-width:640px;margin:22px auto 0;font-size:clamp(17px,1.6vw,20px);line-height:1.6}
.v2 .hh .actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:30px}
.v2 .hh .tr{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 26px;margin:22px 0 0;padding:0;list-style:none;font-size:14px;color:var(--v-ink2)}
.v2 .hh .tr li{display:inline-flex;align-items:center;gap:7px}
.v2 .hh .tr li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--v-lime)}
.v2 .hh-visual{position:relative;max-width:1060px;margin:clamp(34px,5vw,56px) auto 0;padding:0 24px}
.v2 .hh-visual::before{content:"";position:absolute;inset:40px 10% -40px;background:radial-gradient(60% 70% at 50% 60%,rgba(153,203,82,.22),transparent 70%);filter:blur(10px);z-index:0}
.v2 .sitemap{position:relative;z-index:1;width:100%;height:auto;display:block;background:var(--v-bg);border:1px solid var(--v-line);border-radius:16px;box-shadow:var(--v-shadow)}
.v2 .hh-cap{margin:14px 0 0;font-size:13.5px;color:var(--v-ink2);text-align:center}
.v2 .hh-list{display:none;margin:0;padding:16px;list-style:none;border:1px solid var(--v-line);border-radius:14px;background:var(--v-bg);text-align:left}
.v2 .hh-list li{padding:10px 0;border-top:1px solid var(--v-line);font-size:15px;color:var(--v-ink2)}
.v2 .hh-list li:first-child{border-top:0;padding-top:0}
.v2 .hh-list li b{display:block;color:var(--v-ink);font-weight:600}
.v2 .hh-list li.dark{margin-top:6px;padding:14px;border:0;border-radius:10px;background:var(--v-dark);color:#C9DBD0}
.v2 .hh-list li.dark b{color:#fff}
@media(max-width:700px){.v2 .sitemap{display:none}.v2 .hh-list{display:block}.v2 .hh-visual::before{display:none}}
.v2 .hh-after{height:clamp(40px,6vw,72px);background:linear-gradient(180deg,transparent,var(--v-bg2))}

/* ---------- cards & grids ---------- */
.v2 .grid{display:grid;gap:20px}
.v2 .grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.v2 .grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.v2 .grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:960px){.v2 .grid-3,.v2 .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.v2 .grid-2,.v2 .grid-3,.v2 .grid-4{grid-template-columns:1fr}}
.v2 .card{display:flex;flex-direction:column;gap:10px;padding:26px;background:var(--v-bg);border:1px solid var(--v-line);border-radius:var(--v-r);color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}
.v2 a.card:hover{border-color:var(--v-brand);box-shadow:var(--v-shadow);transform:translateY(-2px)}
.v2 .card p{margin:0;font-size:15.5px}
.v2 .card .more{margin-top:auto;padding-top:8px;color:var(--v-brand);font-weight:600;font-size:14.5px}
.v2 .ico{width:44px;height:44px;border-radius:10px;background:var(--v-lime-soft);color:var(--v-brand-deep);display:flex;align-items:center;justify-content:center;margin-bottom:4px}
.v2 .ico svg{width:22px;height:22px}
.v2 .tag{display:inline-block;padding:4px 9px;border-radius:999px;background:var(--v-tint);color:var(--v-brand-deep);font:600 12px/1 var(--v-font);letter-spacing:.02em}
.v2 .tags{display:flex;flex-wrap:wrap;gap:6px;margin:0}

/* featured projects */
.v2 .pj{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px}
@media(max-width:900px){.v2 .pj{grid-template-columns:1fr}}
.v2 .pj-lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;overflow:hidden;padding:0}
@media(max-width:640px){.v2 .pj-lead{grid-template-columns:1fr}}
.v2 .pj-lead .ph{border-radius:0;border:0;border-right:1px solid var(--v-line);min-height:260px}
@media(max-width:640px){.v2 .pj-lead .ph{border-right:0;border-bottom:1px solid var(--v-line);min-height:180px}}
.v2 .pj-lead .body{padding:28px;display:flex;flex-direction:column;gap:12px}
.v2 .pj-side{display:flex;flex-direction:column;gap:20px}
.v2 .pj-side .card{flex:1}
.v2 .pj-meta{font-size:13.5px;color:var(--v-ink2)}

/* services */
.v2 .sv .card h3{display:flex;align-items:center;gap:10px}

/* delivery */
.v2 .steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;counter-reset:step}
@media(max-width:960px){.v2 .steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.v2 .steps{grid-template-columns:1fr}}
.v2 .step{position:relative;padding:22px 20px 20px;background:var(--v-bg);border:1px solid var(--v-line);border-radius:var(--v-r)}
.v2 .step::before{counter-increment:step;content:"0" counter(step);display:inline-block;margin-bottom:12px;font:700 12.5px/1 var(--v-font);letter-spacing:.1em;color:var(--v-brand);padding:6px 8px;border-radius:6px;background:var(--v-lime-soft)}
.v2 .step b{display:block;font-size:17px;color:var(--v-ink);margin-bottom:6px}
.v2 .step p{font-size:14.5px;margin:0}
.v2 .hand{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start;margin-top:clamp(28px,4vw,44px)}
@media(max-width:860px){.v2 .hand{grid-template-columns:1fr}}
.v2 .hand .box{padding:26px;border:1px solid var(--v-line);border-radius:var(--v-r);background:var(--v-bg)}
.v2 .hand .box h3{margin-bottom:12px}
.v2 .tq{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:clamp(28px,4vw,44px)}
@media(max-width:900px){.v2 .tq{grid-template-columns:1fr}}
.v2 .tq figure{margin:0;padding:24px;border:1px solid var(--v-line);border-radius:var(--v-r);background:var(--v-bg);display:flex;flex-direction:column;gap:14px}
.v2 .tq blockquote{margin:0;font-size:15.5px;color:var(--v-ink);line-height:1.6}
.v2 .tq figcaption{font-size:13.5px;color:var(--v-ink2)}
.v2 .tq figcaption b{display:block;color:var(--v-ink);font-weight:600}

/* contact */
:is(.v2,.lite) .ct{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:start}
@media(max-width:900px){:is(.v2,.lite) .ct{grid-template-columns:1fr}}
:is(.v2,.lite) .form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:28px;border:1px solid var(--v-line);border-radius:var(--v-r);background:var(--v-bg)}
@media(max-width:560px){:is(.v2,.lite) .form{grid-template-columns:1fr;padding:20px}}
:is(.v2,.lite) .form .full{grid-column:1 / -1}
:is(.v2,.lite) .form label{display:block;font:600 14px/1.3 var(--v-font);color:var(--v-ink);margin-bottom:6px}
:is(.v2,.lite) .form label small{font-weight:400;color:var(--v-ink2)}
:is(.v2,.lite) .form input,:is(.v2,.lite) .form select,:is(.v2,.lite) .form textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #C9D6CF;border-radius:var(--v-r-sm);background:#fff;font:400 15.5px/1.4 var(--v-font);color:var(--v-ink)}
:is(.v2,.lite) .form textarea{min-height:110px;resize:vertical}
:is(.v2,.lite) .form input:focus,:is(.v2,.lite) .form select:focus,:is(.v2,.lite) .form textarea:focus{outline:3px solid rgba(153,203,82,.55);outline-offset:0;border-color:var(--v-brand)}
:is(.v2,.lite) .form .err{display:none;margin-top:6px;font-size:13px;color:#A32D2D}
:is(.v2,.lite) .form .bad input,:is(.v2,.lite) .form .bad select,:is(.v2,.lite) .form .bad textarea{border-color:#C8403F}
:is(.v2,.lite) .form .bad .err{display:block}
:is(.v2,.lite) .form .fine{font-size:13px;color:var(--v-ink2);margin:0}
:is(.v2,.lite) .form .status{display:none;padding:14px 16px;border-radius:var(--v-r-sm);background:var(--v-lime-soft);color:var(--v-brand-deep);font-size:14.5px;line-height:1.5}
:is(.v2,.lite) .form.sent .status{display:block}
:is(.v2,.lite) .form.sent .status.fail{background:#FBEDEC;color:#8A2626}
:is(.v2,.lite) .ct-info{display:flex;flex-direction:column;gap:22px}
:is(.v2,.lite) .ct-info .box{padding:22px 24px;border:1px solid var(--v-line);border-radius:var(--v-r);background:var(--v-bg)}
:is(.v2,.lite) .ct-info .box h3{margin-bottom:8px}
:is(.v2,.lite) .ct-info a{color:var(--v-brand);font-weight:600;text-decoration:none}
:is(.v2,.lite) .ct-info a:hover{text-decoration:underline}
:is(.v2,.lite) .ct-info p{margin:0;font-size:15px}
:is(.v2,.lite) .ct-info p+p{margin-top:6px}
:is(.v2,.lite) .big{font-size:22px;font-weight:700;color:var(--v-ink)}

/* faq */
.v2 .fq{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.v2 .fq details{border:1px solid var(--v-line);border-radius:var(--v-r);background:var(--v-bg);padding:0 22px}
.v2 .fq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font:600 16.5px/1.35 var(--v-font);color:var(--v-ink)}
.v2 .fq summary::-webkit-details-marker{display:none}
.v2 .fq summary::after{content:"+";font-size:22px;color:var(--v-brand);line-height:1;flex:0 0 auto}
.v2 .fq details[open] summary::after{content:"–"}
.v2 .fq .a{padding:0 0 20px;font-size:15.5px}

/* ---------- case study kit ---------- */
.v2 .cs-hero{padding:clamp(36px,5vw,64px) 0 0}
.v2 .crumbs{font-size:13.5px;color:var(--v-ink2);margin-bottom:18px}
.v2 .crumbs a{color:var(--v-ink2);text-decoration:none}
.v2 .crumbs a:hover{color:var(--v-brand)}
.v2 .cs-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:36px;align-items:start}
@media(max-width:900px){.v2 .cs-top{grid-template-columns:1fr}}
.v2 .cs-top h1{font-size:clamp(32px,4.4vw,54px)}
.v2 .cs-top .lead{margin-top:18px;font-size:18px}
.v2 .facts{margin:26px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;border-top:1px solid var(--v-line);padding-top:20px}
@media(max-width:520px){.v2 .facts{grid-template-columns:1fr}}
.v2 .facts li{font-size:14.5px;color:var(--v-ink2)}
.v2 .facts li b{display:block;color:var(--v-ink);font-weight:600;font-size:15px}
.v2 .cs-top .ph{min-height:320px}
.v2 .cs-sec{padding:clamp(40px,5vw,64px) 0;border-top:1px solid var(--v-line)}
.v2 .cs-row{display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px;align-items:start}
@media(max-width:860px){.v2 .cs-row{grid-template-columns:1fr;gap:16px}}
.v2 .cs-row h2{font-size:clamp(24px,2.6vw,30px);position:sticky;top:88px}
@media(max-width:860px){.v2 .cs-row h2{position:static}}
.v2 .prose p{font-size:17px}
.v2 .prose p+p{margin-top:14px}
.v2 .prose ul{margin:14px 0 0}
.v2 .scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
@media(max-width:560px){.v2 .scope{grid-template-columns:1fr}}
.v2 .scope li{padding:18px 20px;border:1px solid var(--v-line);border-radius:var(--v-r);background:var(--v-bg);font-size:15px;color:var(--v-ink2)}
.v2 .scope li b{display:block;color:var(--v-ink);font-weight:600;margin-bottom:4px;font-size:16px}
.v2 .seq{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;counter-reset:seq}
@media(max-width:960px){.v2 .seq{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.v2 .seq{grid-template-columns:1fr}}
.v2 .seq li{padding:16px;border-radius:var(--v-r);background:var(--v-bg2);font-size:14px;color:var(--v-ink2)}
.v2 .seq li::before{counter-increment:seq;content:counter(seq);display:inline-flex;width:24px;height:24px;border-radius:50%;background:var(--v-brand);color:#fff;font:700 12px/1 var(--v-font);align-items:center;justify-content:center;margin-bottom:10px}
.v2 .seq li b{display:block;color:var(--v-ink);font-weight:600;font-size:15px;margin-bottom:2px}
.v2 .verify{margin-top:18px;padding:14px 16px;border-left:3px solid var(--v-lime);background:var(--v-bg2);font-size:14px;color:var(--v-ink2);border-radius:0 var(--v-r-sm) var(--v-r-sm) 0}
.v2 .cta-band{padding:clamp(40px,5vw,64px) 0}
.v2 .cta-band .in{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:clamp(28px,4vw,44px);border-radius:16px;background:var(--v-dark);color:#fff}
.v2 .cta-band h2{color:#fff;font-size:clamp(24px,2.8vw,34px)}
.v2 .cta-band p{color:#C9DBD0;margin-top:8px;max-width:560px}
.v2 .cta-band .b-primary{background:var(--v-lime);color:var(--v-ink)}
.v2 .cta-band .b-primary:hover{background:#A9D86B}

/* ---------- service / industry page kit (tools/pages_v2.py) ---------- */
.v2 .sp-hero{padding:clamp(36px,5vw,64px) 0 clamp(36px,5vw,56px);border-bottom:1px solid var(--v-line)}
.v2 .sp-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:40px;align-items:start}
@media(max-width:900px){.v2 .sp-top{grid-template-columns:1fr;gap:28px}}
.v2 .sp-top h1{margin-top:18px;font-size:clamp(32px,4.4vw,54px)}
.v2 .sp-top .lead{margin-top:18px;font-size:18px;max-width:640px}
.v2 .sp-top .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.v2 .glance-box{padding:22px 24px;border:1px solid var(--v-line);border-radius:var(--v-r);background:var(--v-bg2)}
.v2 .gl-h{font:700 12.5px/1 var(--v-font);letter-spacing:.14em;text-transform:uppercase;color:var(--v-brand);margin:0 0 12px}
.v2 .glance{margin:0;padding:0;list-style:none}
.v2 .glance li{padding:10px 0;border-top:1px solid var(--v-line);font-size:14.5px;color:var(--v-ink2);line-height:1.5}
.v2 .glance li:first-child{border-top:0;padding-top:0}
.v2 .glance li b{display:block;color:var(--v-ink);font-weight:600}
.v2 .sub-h{margin:26px 0 12px;font-size:17px}
.v2 .cs-sec.alt{background:var(--v-bg2)}
.v2 .steps.n4{grid-template-columns:repeat(4,minmax(0,1fr))}
.v2 .steps.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:960px){.v2 .steps.n4,.v2 .steps.n3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.v2 .steps.n4,.v2 .steps.n3{grid-template-columns:1fr}}
.v2 .card .ticks{margin-top:4px}
.v2 .card .ticks li{font-size:14.5px}
.v2 .rel{max-width:720px}

/* ---------- explainer animation (.xp) — 20 s timeline, plays once when visible ---------- */
.v2 .xp{--t:20s;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);gap:24px;align-items:start}
@media(max-width:860px){.v2 .xp{grid-template-columns:1fr}}
@media(max-width:700px){.v2 .xp-stage{display:none}}
.v2 .xp-stage{position:relative;border:1px solid var(--v-line);border-radius:16px;background:var(--v-bg);overflow:hidden}
.v2 .xp-stage svg{display:block;width:100%;height:auto}
.v2 .xp-stage .n{fill:#fff;stroke:#DDE6E1;stroke-width:1.5}
.v2 .xp-stage .t{font:600 15.5px var(--v-font);fill:#102A22}
.v2 .xp-stage .s{font:400 12.5px var(--v-font);fill:#4F6259}
.v2 .xp-stage .ln{fill:none;stroke:#406448;stroke-width:3;stroke-linecap:round}
.v2 .xp-stage .flow{fill:none;stroke:#99CB52;stroke-width:3;stroke-linecap:round;stroke-dasharray:8 12;animation:xpFlow 1s linear infinite}
.v2 .xp-stage .mon{fill:#102A22}
.v2 .xp-stage .mt{font:600 15px var(--v-font);fill:#fff}
.v2 .xp-stage .ms{font:400 13px var(--v-font);fill:#C9DBD0}
.v2 .xp-stage .chip{font:700 12px var(--v-font);fill:#fff}
.v2 .xp-stage .ft{font:700 20px var(--v-font);fill:#102A22}.v2 .xp-stage .fb{font:400 13.5px var(--v-font);fill:#4F6259}.v2 .xp-stage .fh{font:600 13.5px var(--v-font);fill:#102A22}.v2 .xp-stage .fs{font:400 12px var(--v-font);fill:#4F6259}.v2 .xp-stage .fl{font:600 11px var(--v-font);fill:#fff}
.v2 .xp-side{display:flex;flex-direction:column;gap:10px}
.v2 .xp-cap{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;counter-reset:xp}
.v2 .xp-cap li{position:relative;padding:10px 12px 10px 40px;border-radius:10px;border:1px solid var(--v-line);background:var(--v-bg);font-size:14.5px;color:var(--v-ink2);line-height:1.45}
.v2 .xp-cap li::before{counter-increment:xp;content:counter(xp);position:absolute;left:12px;top:11px;width:20px;height:20px;border-radius:50%;background:var(--v-bg2);color:var(--v-ink2);font:700 11px/20px var(--v-font);text-align:center}
.v2 .xp-cap li b{display:block;color:var(--v-ink);font-weight:600}
.v2 .xp-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--v-ink2)}
.v2 .xp-replay{min-height:36px;padding:0 14px;font-size:13.5px}
.v2 .xp-prog{height:4px;border-radius:2px;background:var(--v-line);overflow:hidden}
.v2 .xp-prog i{display:block;height:100%;width:0;background:var(--v-brand)}
/* timeline: 5 scenes of 20% each. .vNNN = visible in those scenes (opacity); captions .xp-cap li highlight in sync */
.v2 .xp.play .a,.v2 .xp.play .xp-cap li{animation-duration:var(--t);animation-timing-function:step-end;animation-fill-mode:forwards;animation-iteration-count:1}
.v2 .xp.play .xp-prog i{animation:xpProg var(--t) linear forwards}
.v2 .xp.play .v1{animation-name:xp_v1}.v2 .xp.play .v2{animation-name:xp_v2}.v2 .xp.play .v3{animation-name:xp_v3}.v2 .xp.play .v4{animation-name:xp_v4}.v2 .xp.play .v5{animation-name:xp_v5}.v2 .xp.play .v12{animation-name:xp_v12}.v2 .xp.play .v13{animation-name:xp_v13}.v2 .xp.play .v14{animation-name:xp_v14}.v2 .xp.play .v15{animation-name:xp_v15}.v2 .xp.play .v23{animation-name:xp_v23}.v2 .xp.play .v24{animation-name:xp_v24}.v2 .xp.play .v25{animation-name:xp_v25}.v2 .xp.play .v34{animation-name:xp_v34}.v2 .xp.play .v35{animation-name:xp_v35}.v2 .xp.play .v45{animation-name:xp_v45}.v2 .xp.play .v123{animation-name:xp_v123}.v2 .xp.play .v124{animation-name:xp_v124}.v2 .xp.play .v125{animation-name:xp_v125}.v2 .xp.play .v134{animation-name:xp_v134}.v2 .xp.play .v135{animation-name:xp_v135}.v2 .xp.play .v145{animation-name:xp_v145}.v2 .xp.play .v234{animation-name:xp_v234}.v2 .xp.play .v235{animation-name:xp_v235}.v2 .xp.play .v245{animation-name:xp_v245}.v2 .xp.play .v345{animation-name:xp_v345}.v2 .xp.play .v1234{animation-name:xp_v1234}.v2 .xp.play .v1235{animation-name:xp_v1235}.v2 .xp.play .v1245{animation-name:xp_v1245}.v2 .xp.play .v1345{animation-name:xp_v1345}.v2 .xp.play .v2345{animation-name:xp_v2345}.v2 .xp.play .v12345{animation-name:xp_v12345}
.v2 .xp.play .xp-cap li:nth-child(1){animation-name:xpC1}.v2 .xp.play .xp-cap li:nth-child(2){animation-name:xpC2}.v2 .xp.play .xp-cap li:nth-child(3){animation-name:xpC3}.v2 .xp.play .xp-cap li:nth-child(4){animation-name:xpC4}.v2 .xp.play .xp-cap li:nth-child(5){animation-name:xpC5}
/* before play = scene 1; .done (reduced motion) = scene 5 */
.v2 .xp .v2,.v2 .xp .v3,.v2 .xp .v4,.v2 .xp .v5,.v2 .xp .v23,.v2 .xp .v24,.v2 .xp .v25,.v2 .xp .v34,.v2 .xp .v35,.v2 .xp .v45,.v2 .xp .v234,.v2 .xp .v235,.v2 .xp .v245,.v2 .xp .v345,.v2 .xp .v2345{opacity:0}
.v2 .xp.done .v1,.v2 .xp.done .v2,.v2 .xp.done .v3,.v2 .xp.done .v4,.v2 .xp.done .v12,.v2 .xp.done .v13,.v2 .xp.done .v14,.v2 .xp.done .v23,.v2 .xp.done .v24,.v2 .xp.done .v34,.v2 .xp.done .v123,.v2 .xp.done .v124,.v2 .xp.done .v134,.v2 .xp.done .v234,.v2 .xp.done .v1234{opacity:0}
.v2 .xp.done .v5,.v2 .xp.done .v15,.v2 .xp.done .v25,.v2 .xp.done .v35,.v2 .xp.done .v45,.v2 .xp.done .v125,.v2 .xp.done .v135,.v2 .xp.done .v145,.v2 .xp.done .v235,.v2 .xp.done .v245,.v2 .xp.done .v345,.v2 .xp.done .v1235,.v2 .xp.done .v1245,.v2 .xp.done .v1345,.v2 .xp.done .v2345,.v2 .xp.done .v12345{opacity:1}
.v2 .xp .ring{transform-origin:center;transform-box:fill-box;animation:xpRing 1.2s ease-out infinite}
.v2 .xp-stage .warn{fill:#C8403F}.v2 .xp-stage .ok{fill:#406448}
@keyframes xpRing{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.6);opacity:0}}
@keyframes xpFlow{to{stroke-dashoffset:-20}}
@keyframes xpProg{to{width:100%}}
@keyframes xp_v1{0%,19.9%{opacity:1}20%,39.9%{opacity:0}40%,59.9%{opacity:0}60%,79.9%{opacity:0}80%,100%{opacity:0}}@keyframes xp_v2{0%,19.9%{opacity:0}20%,39.9%{opacity:1}40%,59.9%{opacity:0}60%,79.9%{opacity:0}80%,100%{opacity:0}}@keyframes xp_v3{0%,19.9%{opacity:0}20%,39.9%{opacity:0}40%,59.9%{opacity:1}60%,79.9%{opacity:0}80%,100%{opacity:0}}@keyframes xp_v4{0%,19.9%{opacity:0}20%,39.9%{opacity:0}40%,59.9%{opacity:0}60%,79.9%{opacity:1}80%,100%{opacity:0}}@keyframes xp_v5{0%,19.9%{opacity:0}20%,39.9%{opacity:0}40%,59.9%{opacity:0}60%,79.9%{opacity:0}80%,100%{opacity:1}}@keyframes xp_v12{0%,19.9%{opacity:1}20%,39.9%{opacity:1}40%,59.9%{opacity:0}60%,79.9%{opacity:0}80%,100%{opacity:0}}@keyframes xp_v13{0%,19.9%{opacity:1}20%,39.9%{opacity:0}40%,59.9%{opacity:1}60%,79.9%{opacity:0}80%,100%{opacity:0}}@keyframes xp_v14{0%,19.9%{opacity:1}20%,39.9%{opacity:0}40%,59.9%{opacity:0}60%,79.9%{opacity:1}80%,100%{opacity:0}}@keyframes xp_v15{0%,19.9%{opacity:1}20%,39.9%{opacity:0}40%,59.9%{opacity:0}60%,79.9%{opacity:0}80%,100%{opacity:1}}@keyframes xp_v23{0%,19.9%{opacity:0}20%,39.9%{opacity:1}40%,59.9%{opacity:1}60%,79.9%{opacity:0}80%,100%{opacity:0}}@keyframes xp_v24{0%,19.9%{opacity:0}20%,39.9%{opacity:1}40%,59.9%{opacity:0}60%,79.9%{opacity:1}80%,100%{opacity:0}}@keyframes xp_v25{0%,19.9%{opacity:0}20%,39.9%{opacity:1}40%,59.9%{opacity:0}60%,79.9%{opacity:0}80%,100%{opacity:1}}@keyframes xp_v34{0%,19.9%{opacity:0}20%,39.9%{opacity:0}40%,59.9%{opacity:1}60%,79.9%{opacity:1}80%,100%{opacity:0}}@keyframes xp_v35{0%,19.9%{opacity:0}20%,39.9%{opacity:0}40%,59.9%{opacity:1}60%,79.9%{opacity:0}80%,100%{opacity:1}}@keyframes xp_v45{0%,19.9%{opacity:0}20%,39.9%{opacity:0}40%,59.9%{opacity:0}60%,79.9%{opacity:1}80%,100%{opacity:1}}@keyframes xp_v123{0%,19.9%{opacity:1}20%,39.9%{opacity:1}40%,59.9%{opacity:1}60%,79.9%{opacity:0}80%,100%{opacity:0}}@keyframes xp_v124{0%,19.9%{opacity:1}20%,39.9%{opacity:1}40%,59.9%{opacity:0}60%,79.9%{opacity:1}80%,100%{opacity:0}}@keyframes xp_v125{0%,19.9%{opacity:1}20%,39.9%{opacity:1}40%,59.9%{opacity:0}60%,79.9%{opacity:0}80%,100%{opacity:1}}@keyframes xp_v134{0%,19.9%{opacity:1}20%,39.9%{opacity:0}40%,59.9%{opacity:1}60%,79.9%{opacity:1}80%,100%{opacity:0}}@keyframes xp_v135{0%,19.9%{opacity:1}20%,39.9%{opacity:0}40%,59.9%{opacity:1}60%,79.9%{opacity:0}80%,100%{opacity:1}}@keyframes xp_v145{0%,19.9%{opacity:1}20%,39.9%{opacity:0}40%,59.9%{opacity:0}60%,79.9%{opacity:1}80%,100%{opacity:1}}@keyframes xp_v234{0%,19.9%{opacity:0}20%,39.9%{opacity:1}40%,59.9%{opacity:1}60%,79.9%{opacity:1}80%,100%{opacity:0}}@keyframes xp_v235{0%,19.9%{opacity:0}20%,39.9%{opacity:1}40%,59.9%{opacity:1}60%,79.9%{opacity:0}80%,100%{opacity:1}}@keyframes xp_v245{0%,19.9%{opacity:0}20%,39.9%{opacity:1}40%,59.9%{opacity:0}60%,79.9%{opacity:1}80%,100%{opacity:1}}@keyframes xp_v345{0%,19.9%{opacity:0}20%,39.9%{opacity:0}40%,59.9%{opacity:1}60%,79.9%{opacity:1}80%,100%{opacity:1}}@keyframes xp_v1234{0%,19.9%{opacity:1}20%,39.9%{opacity:1}40%,59.9%{opacity:1}60%,79.9%{opacity:1}80%,100%{opacity:0}}@keyframes xp_v1235{0%,19.9%{opacity:1}20%,39.9%{opacity:1}40%,59.9%{opacity:1}60%,79.9%{opacity:0}80%,100%{opacity:1}}@keyframes xp_v1245{0%,19.9%{opacity:1}20%,39.9%{opacity:1}40%,59.9%{opacity:0}60%,79.9%{opacity:1}80%,100%{opacity:1}}@keyframes xp_v1345{0%,19.9%{opacity:1}20%,39.9%{opacity:0}40%,59.9%{opacity:1}60%,79.9%{opacity:1}80%,100%{opacity:1}}@keyframes xp_v2345{0%,19.9%{opacity:0}20%,39.9%{opacity:1}40%,59.9%{opacity:1}60%,79.9%{opacity:1}80%,100%{opacity:1}}@keyframes xp_v12345{0%,19.9%{opacity:1}20%,39.9%{opacity:1}40%,59.9%{opacity:1}60%,79.9%{opacity:1}80%,100%{opacity:1}}
@keyframes xpC1{0%,19.9%{border-color:#406448;background:#EEF6E2}20%,39.9%{border-color:#DDE6E1;background:#fff}40%,59.9%{border-color:#DDE6E1;background:#fff}60%,79.9%{border-color:#DDE6E1;background:#fff}80%,100%{border-color:#DDE6E1;background:#fff}}
@keyframes xpC2{0%,19.9%{border-color:#DDE6E1;background:#fff}20%,39.9%{border-color:#406448;background:#EEF6E2}40%,59.9%{border-color:#DDE6E1;background:#fff}60%,79.9%{border-color:#DDE6E1;background:#fff}80%,100%{border-color:#DDE6E1;background:#fff}}
@keyframes xpC3{0%,19.9%{border-color:#DDE6E1;background:#fff}20%,39.9%{border-color:#DDE6E1;background:#fff}40%,59.9%{border-color:#406448;background:#EEF6E2}60%,79.9%{border-color:#DDE6E1;background:#fff}80%,100%{border-color:#DDE6E1;background:#fff}}
@keyframes xpC4{0%,19.9%{border-color:#DDE6E1;background:#fff}20%,39.9%{border-color:#DDE6E1;background:#fff}40%,59.9%{border-color:#DDE6E1;background:#fff}60%,79.9%{border-color:#406448;background:#EEF6E2}80%,100%{border-color:#DDE6E1;background:#fff}}
@keyframes xpC5{0%,19.9%{border-color:#DDE6E1;background:#fff}20%,39.9%{border-color:#DDE6E1;background:#fff}40%,59.9%{border-color:#DDE6E1;background:#fff}60%,79.9%{border-color:#DDE6E1;background:#fff}80%,100%{border-color:#406448;background:#EEF6E2}}
@media(prefers-reduced-motion:reduce){.v2 .xp .a,.v2 .xp .xp-cap li,.v2 .xp .xp-prog i,.v2 .xp .flow,.v2 .xp .ring{animation:none!important}.v2 .xp .flow{stroke-dasharray:none}.v2 .xp .ring{display:none}.v2 .xp-replay,.v2 .xp-prog{display:none}}

/* ---------- site-wide footer ---------- */
.ft{background:var(--v-bg2);border-top:1px solid var(--v-line);font-family:var(--v-font);color:var(--v-ink2);font-size:14.5px}
.ft-wrap{max-width:var(--v-wrap);margin:0 auto;padding:clamp(40px,5vw,64px) 24px 28px}
.ft-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px}
@media(max-width:900px){.ft-grid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.ft-grid{grid-template-columns:1fr}}
.ft-brand img{height:32px;width:auto;margin-bottom:14px}
.ft-brand p{margin:0 0 8px;max-width:340px;line-height:1.55}
.ft h5{margin:0 0 12px;font:700 12.5px/1 var(--v-font);letter-spacing:.12em;text-transform:uppercase;color:var(--v-ink)}
.ft-col a,.ft-brand a{display:block;color:var(--v-ink2);text-decoration:none;padding:4px 0;line-height:1.45}
.ft-col a:hover,.ft-brand a:hover{color:var(--v-brand)}
.ft-col p{margin:8px 0 0;line-height:1.5}
.ft-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:36px;padding-top:18px;border-top:1px solid var(--v-line);font-size:13px}
.ft-bottom a{color:var(--v-ink2);text-decoration:none}
.ft-bottom a:hover{color:var(--v-brand)}
.ft-bottom .sign{font-weight:600;color:var(--v-brand)}


/* ---------- .lite — light retheme of the legacy "ALL SYSTEMS GREEN" kit ----------
   Applied to every page not rebuilt on body.v2. Content and markup unchanged;
   dark bands become light, decoration is hidden, type switches to Inter. */
body.lite{background:var(--v-bg);color:var(--v-ink);font-family:var(--v-font)}
.lite h1,.lite h2{font-family:var(--v-font);font-weight:800;letter-spacing:-.025em;color:var(--v-ink)}
.lite h3,.lite h4,.lite h5{font-family:var(--v-font);font-weight:700;letter-spacing:-.01em;color:var(--v-ink)}
.lite .wrap{max-width:var(--v-wrap);padding:0 24px}
.lite section{padding:clamp(56px,7vw,96px) 0}
.lite .sec-tight{padding:clamp(40px,5vw,64px) 0}
.lite .eyebrow,.lite .dark .eyebrow,.lite .eyebrow.on-dark{font-family:var(--v-font);font-weight:700;font-size:12.5px;letter-spacing:.14em;color:var(--v-brand)}
.lite .aurora-clip,.lite .aurora,.lite .beam,.lite .rings,.lite .converge,.lite .node-rule,.lite .live,.lite .glyph,.lite .schematic{display:none!important}
.lite .hairline{height:1px;background:var(--v-line);animation:none}
.lite .dark{background:var(--v-tint);color:var(--v-ink);font-size:inherit}
.lite .dark.soft::before{display:none}
.lite .pagehero.dark,.lite .pagehero{background:var(--v-bg);border-bottom:1px solid var(--v-line);min-height:0;padding:clamp(40px,5vw,64px) 0 clamp(40px,5vw,64px)}
.lite .pagehero h1{font-weight:800;font-size:clamp(34px,4.6vw,56px);color:var(--v-ink)}
.lite .pagehero h1 em,.lite .hero h1 em{font-style:normal;color:var(--v-brand)}
.lite .bg-mist{background:var(--v-bg2)}
.lite .dark h1,.lite .dark h2,.lite .dark h3,.lite .dark h4,.lite .dark .sec-head h2{color:var(--v-ink)}
.lite .dark p,.lite .dark .lede,.lite .dark .sec-head .lede,.lite .pagehero .sub,.lite .hero .sub,.lite .standfirst,.lite .lede{color:var(--v-ink2)}
.lite .sub{color:var(--v-ink2)}
.lite .flagship-tag{color:var(--v-brand)}
.lite .gtext{background:none;-webkit-background-clip:initial;background-clip:initial;color:var(--v-brand);-webkit-text-fill-color:var(--v-brand)}
/* the two dark highlights that stay dark */
.lite .callout{background:var(--v-dark)}
.lite .callout .pullquote{color:#fff}
.lite .callout .pullquote-who{color:#C9DBD0}
.lite .callout .eyebrow{color:var(--v-lime)}
.lite .callout p{color:#C9DBD0}
.lite .pullquote{font:600 clamp(20px,2.6vw,28px)/1.4 var(--v-font);font-style:normal;color:var(--v-ink);letter-spacing:-.01em}
.lite .pullquote-who{font-family:var(--v-font);color:var(--v-ink2)}
.lite .terminal{background:var(--v-dark);border-radius:16px;box-shadow:none}
.lite .terminal h2{color:#fff}
.lite .terminal .lede,.lite .terminal p{color:#C9DBD0}
.lite .terminal .eyebrow{color:var(--v-lime)}
.lite .microline{font-family:var(--v-font);color:#C9DBD0}
.lite .statechips--dark .chip-state{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.25);color:#fff}
/* buttons */
.lite .btn{font-family:var(--v-font);font-weight:600;border-radius:8px;letter-spacing:0}
.lite .btn-primary{background:var(--v-brand);color:#fff;box-shadow:none}
.lite .btn-primary:hover{background:var(--v-brand-deep);box-shadow:none}
.lite .btn-ghost{background:var(--v-bg);border-color:var(--v-line);color:var(--v-ink)}
.lite .btn-ghost:hover{border-color:var(--v-brand);color:var(--v-brand);background:var(--v-bg)}
.lite .terminal .btn-ghost{background:transparent;border-color:rgba(255,255,255,.35);color:#fff}
.lite .btn-spark{background:var(--v-lime);color:var(--v-ink);box-shadow:none}
.lite .btn-spark:hover{background:#A9D86B;box-shadow:none}
.lite .btn-outline{border-color:var(--v-brand);color:var(--v-brand)}
/* consoles, tiles, rows */
.lite .console,.lite .porcelain,.lite .contact-console,.lite .m-media,.lite .coverage{background:var(--v-bg);border:1px solid var(--v-line);box-shadow:none;backdrop-filter:none;color:var(--v-ink)}
.lite .console-title{font-family:var(--v-font);font-weight:600;font-size:13px;letter-spacing:0;text-transform:none;color:var(--v-ink2)}
.lite .tile{background:var(--v-bg2);border:1px solid var(--v-line)}
.lite .tile .k{font-family:var(--v-font);font-weight:600;font-size:11.5px;letter-spacing:.06em;color:var(--v-ink2)}
.lite .tile .v{font-family:var(--v-font);color:var(--v-ink)}
.lite .tile .v small,.lite .tile .tick-ico{color:var(--v-brand)}
.lite .crow{color:var(--v-ink2);border-color:var(--v-line)}
.lite .crow b{font-family:var(--v-font);color:var(--v-ink)}
.lite .cpill{background:var(--v-lime-soft);color:var(--v-brand-deep);font-family:var(--v-font);letter-spacing:0;text-transform:none;font-weight:600}
.lite .dotp{background:var(--v-lime)}
/* cards */
.lite .card{background:var(--v-bg);border:1px solid var(--v-line);box-shadow:none}
.lite .card-ico{background:var(--v-lime-soft);color:var(--v-brand-deep);border:0}
.lite .card h3{color:var(--v-ink)}
.lite .card p{color:var(--v-ink2)}
.lite .contact-card{background:var(--v-bg);border:1px solid var(--v-line)}
.lite .tcard{background:var(--v-bg);border:1px solid var(--v-line)}
.lite .tcard blockquote{font-family:var(--v-font);font-style:normal;color:var(--v-ink)}
.lite .tcard .qm{display:none}
.lite .av{background:var(--v-tint);color:var(--v-brand)}
.lite .scard{background:var(--v-bg);border-color:var(--v-line)}
.lite .schip{border-color:var(--v-line);color:var(--v-ink2);font-family:var(--v-font)}
.lite .schip.lead{background:var(--v-lime-soft);color:var(--v-brand-deep);border-color:transparent}
.lite .scard-tag{font-family:var(--v-font);color:var(--v-brand)}
.lite .m-node{background:var(--v-lime-soft);color:var(--v-brand-deep);border-color:var(--v-line)}
.lite .m-eyebrow{font-family:var(--v-font);color:var(--v-brand)}
/* timelines, strips, chips */
.lite .tl::before{background:var(--v-line)}
.lite .tl-step::before{background:var(--v-lime);box-shadow:none}
.lite .tl-step b{font-family:var(--v-font);color:var(--v-ink)}
.lite .tl-step span{color:var(--v-ink2)}
.lite .tl-caption{font-family:var(--v-font);color:var(--v-ink2)}
.lite .snode b{font-family:var(--v-font);color:var(--v-ink2)}
.lite .snode.lit b{color:var(--v-brand)}
.lite .dot{background:#CFDAD3;box-shadow:none}
.lite .dot.lit{background:var(--v-lime);box-shadow:none}
.lite .chip-state{font-family:var(--v-font);border-color:var(--v-line);background:var(--v-bg);color:var(--v-ink)}
.lite .cdot{background:var(--v-lime);box-shadow:none}
.lite .mchip{background:var(--v-bg);border:1px solid var(--v-line);color:var(--v-ink);font-family:var(--v-font)}
.lite .stat .n{color:var(--v-brand);font-family:var(--v-font)}
.lite .stat .d{color:var(--v-ink2);font-family:var(--v-font)}
.lite .coverage-note,.lite .confnote{font-family:var(--v-font);color:var(--v-ink2)}
.lite .ticks li::before{background:var(--v-lime-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.6 2.6L12 5.6' fill='none' stroke='%232F4D33' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat;border:0;box-shadow:none}
/* breadcrumbs, stem locator, faq */
.lite .crumbs{font-family:var(--v-font);letter-spacing:0;text-transform:none;color:var(--v-ink2)}
.lite .crumbs a:hover{color:var(--v-brand)}
.lite .sl-label{font-family:var(--v-font);color:var(--v-ink2)}
.lite .stemloc a{font-family:var(--v-font);letter-spacing:0;text-transform:none;color:var(--v-ink2)}
.lite .stemloc a:hover,.lite .stemloc a.current{color:var(--v-brand)}
.lite .stemloc a::before{background:#CFDAD3;box-shadow:none}
.lite .stemloc a.current::before{background:var(--v-lime)}
.lite .faq details{background:var(--v-bg);border:1px solid var(--v-line);box-shadow:none}
.lite .faq summary{font-family:var(--v-font);color:var(--v-ink)}
.lite .faq-body p{color:var(--v-ink2)}
.lite .plus{color:var(--v-brand)}
/* November kit (customer centre, forms, training, portal) */
.lite .cc-hero .login-card{box-shadow:var(--v-shadow)}
.lite .sidebox.dk{background:var(--v-dark);border-color:var(--v-dark)}
.lite .demo-tag{background:var(--v-lime-soft);color:var(--v-brand-deep)}
.lite .pvbadge{z-index:850}
/* zh pages: styles.css sets serif display faces via html[lang] (0,1,2) — outrank it */
html[lang="zh-Hans"] .lite h1,html[lang="zh-Hans"] .lite h2,html[lang="zh-Hans"] .lite h3,html[lang="zh-Hans"] .lite h4,html[lang="zh-Hans"] .lite h5,html[lang="zh-Hans"] .lite .pullquote,html[lang="zh-Hans"] .lite .tl-caption,html[lang="zh-Hans"] .lite .btn,html[lang="zh-Hans"] .v2 h1,html[lang="zh-Hans"] .v2 h2,html[lang="zh-Hans"] .v2 h3{font-family:var(--v-font)}

/* anchors clear the sticky header */
[id]{scroll-margin-top:84px}
@media(prefers-reduced-motion:reduce){.nv-menu svg,.b,.v2 .card{transition:none}}
@media print{.nv,.ft,.pvbadge,.pia-launch,.pia-panel{display:none!important}}
