/* v2 components: visual-first homepage */
.ico{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ico-lg{width:36px;height:36px}
.sec-head h2{max-width:760px}.sec-head .lead{font-size:17px;max-width:620px}
/* hero */
.hero-proof{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px}
.badges{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.badge{display:flex;align-items:center;gap:7px;border:1px solid var(--rule-2);border-radius:3px;padding:7px 10px;font:500 12.5px/1 var(--f-mono);color:var(--ink);background:var(--surface)}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
.fnums{display:flex;gap:28px;list-style:none;margin:0;padding:0}
.fnums li{display:flex;flex-direction:column}.fnums b{font:650 22px/1.1 var(--f-head)}.fnums span{font-size:13px;color:var(--ink-2)}
/* lifecycle loop */
.loop{position:relative;width:100%;max-width:560px;aspect-ratio:1;margin-left:auto;container-type:inline-size}
.loop svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.loop .ring{fill:none;stroke:var(--rule-2);stroke-width:.35}
.loop .arc{fill:none;stroke:var(--accent);stroke-width:.5}
.loop .arrow{fill:var(--accent)}
.loop-nodes{list-style:none;margin:0;padding:0}
.loop-node{position:absolute;transform:translate(-50%,-50%);width:33cqw;max-width:180px;background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:9px 11px;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;row-gap:2px}
.loop-node b{font:500 11px/1.5 var(--f-mono);color:var(--accent);grid-row:span 2}
.loop-node strong{font:600 14px/1.25 var(--f-head)}
.loop-node span{font:500 11px/1.3 var(--f-mono);color:var(--ink-2)}
.loop-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;width:36cqw}
.loop-center .logo-mark{font-size:clamp(34px,9cqw,52px)}
.loop-center span{font:500 11px/1.4 var(--f-mono);color:var(--ink-2);text-transform:uppercase;letter-spacing:.08em}
.loop-cap{display:flex;justify-content:space-between;gap:12px;margin-top:8px;max-width:560px;margin-left:auto}
/* offer cards */
.offer{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;color:var(--ink);transition:border-color .15s}
.offer:hover{border-color:var(--ink);color:var(--ink)}
.offer-vis{height:168px;padding:18px;border-bottom:1px solid var(--rule);position:relative;display:flex;flex-direction:column;justify-content:flex-end}
.offer-vis .example{position:absolute;top:12px;right:12px}
.offer-txt{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1}.offer-txt p{color:var(--ink-2);font-size:16px}.offer-txt .go{margin-top:auto;font-weight:600;color:var(--accent)}
.dqpq{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.dqpq li{display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:2px solid var(--rule-2);position:relative}
.dqpq li::before{content:"";position:absolute;top:-6px;left:0;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--accent)}
.dqpq li:last-child{border-top-color:var(--accent)}
.dqpq b{font:600 18px/1 var(--f-head)}.dqpq span{font:500 10.5px/1.3 var(--f-mono);color:var(--ink-2);padding-right:6px}
.spark{width:100%;height:96px}.spark .band{fill:var(--accent-soft)}.spark .lim{stroke:var(--rule-2);stroke-dasharray:2 3;stroke-width:1}.spark .ln{fill:none;stroke:var(--accent);stroke-width:1.75}
.spark text{font:500 10px var(--f-mono);fill:var(--ink-2)}
.more{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin-top:24px}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid var(--rule-2);border-radius:999px;font-size:15px;font-weight:500;color:var(--ink);text-decoration:none}.chip:hover{border-color:var(--ink);color:var(--ink)}
/* delivery models */
.models{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.who{width:100%;border-collapse:collapse}
.who th,.who td{padding:12px 8px;border-bottom:1px solid var(--rule);text-align:center;vertical-align:middle}
.who th:first-child,.who td:first-child{text-align:left;padding-left:0}
.who thead th{vertical-align:bottom;border-bottom:1px solid var(--ink);padding-bottom:14px}
.who thead th b{display:block;font:600 16px/1.2 var(--f-head)}.who thead th span{display:block;font:500 11px/1.3 var(--f-mono);color:var(--ink-2);margin-top:4px}
.who td:first-child{font-size:15px;font-weight:500}
.pill{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:26px;padding:0 8px;border-radius:999px;font:600 12px/1 var(--f-mono)}
.pill.c3{background:var(--accent);color:var(--accent-ink)}.pill.you{border:1px solid var(--ink-2);color:var(--ink)}.pill.both{border:1px dashed var(--accent);color:var(--accent)}
.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;font-size:14px;color:var(--ink-2)}.legend span{display:flex;align-items:center;gap:6px}
.note-box{margin-top:20px;padding:16px 18px;border:1px solid var(--rule);border-radius:var(--r-lg);display:flex;gap:14px;align-items:flex-start;font-size:15.5px;color:var(--ink-2)}.note-box strong{color:var(--ink)}
/* triggers */
.trig{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--ink)}
.trig li{display:flex;flex-direction:column;gap:10px;padding:24px 18px 8px 0}.trig li+li{padding-left:18px;border-left:1px solid var(--rule)}
.trig .ico{color:var(--accent)}.trig strong{font:600 17px/1.25 var(--f-head)}.trig p{font-size:15px;color:var(--ink-2)}.trig .mono{color:var(--accent);font-size:12px;margin-top:auto}
/* monitoring */
.mon{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.dash{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);overflow:hidden}
.dash-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--rule)}
.dash-top strong{font:600 14px var(--f-body)}
.dash-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.6fr) auto;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--rule)}
.dash-row .nm{font-size:14.5px;font-weight:600}.dash-row .nm span{display:block;font:500 11px/1.4 var(--f-mono);color:var(--ink-2);font-weight:500}
.dash-row svg{width:100%;height:34px}.dash-row svg .band{fill:var(--accent-soft)}.dash-row svg .ln{fill:none;stroke:var(--accent);stroke-width:1.5}
.dash-row .val{font:500 15px/1 var(--f-mono);display:flex;align-items:center;gap:8px;justify-content:flex-end;min-width:96px}
.dash-row .val::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--t2)}
.dash-log{padding:12px 18px;display:flex;flex-direction:column;gap:6px;font:500 12px/1.4 var(--f-mono);color:var(--ink-2)}
.feat{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.feat li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:14px;padding:16px 0;border-bottom:1px solid var(--rule);align-items:start}
.feat .ico{color:var(--accent);width:24px;height:24px}.feat strong{display:block;font:600 16px/1.3 var(--f-head)}.feat span{font-size:15px;color:var(--ink-2)}
/* coverage: units + range */
.units{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.units li{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:18px 14px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);font-size:14px;font-weight:500;line-height:1.3}
.units .ico{color:var(--ink)}
.range{margin-top:40px}
.range-bar{position:relative;height:10px;border-radius:5px;background:linear-gradient(90deg,var(--t1) 0%,var(--t1) 25%,var(--t2) 45%,var(--t3) 65%,var(--t4) 100%)}
.range-ticks{position:relative;height:96px;margin-top:6px}
.range-ticks span{position:absolute;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;font:500 11.5px/1.25 var(--f-mono);color:var(--ink-2);text-align:center;white-space:nowrap}
.range-ticks span::before{content:"";width:1px;height:10px;background:var(--ink-2)}
.range-ticks b{color:var(--ink);font-weight:500}.range-ticks span:nth-child(even){top:36px}
.range-bands{position:relative;height:56px;margin-bottom:10px}
.range-bands div{position:absolute;bottom:0;height:24px;border:1px solid var(--accent);border-bottom:0;border-radius:4px 4px 0 0;display:flex;align-items:flex-start}
.range-bands div span{position:absolute;bottom:30px;left:0;font:500 12px/1.2 var(--f-mono);color:var(--ink);white-space:nowrap}
.range-bands div.tbcband{border-style:dashed;border-color:var(--rule-2)}
/* with vs without */
.vs{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);border-top:1px solid var(--ink)}
.vs-h{padding:14px 0;font:500 12px/1.3 var(--f-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);border-bottom:1px solid var(--rule)}
.vs-a,.vs-b,.vs-x{padding:22px 0;border-bottom:1px solid var(--rule);display:flex;align-items:center;gap:12px}
.vs-a{color:var(--ink-2);font-size:18px}.vs-a .ico{color:var(--ink-2)}
.vs-x{justify-content:center;color:var(--accent);font:500 18px var(--f-mono)}
.vs-b{font:600 20px/1.3 var(--f-head)}.vs-b .ico{color:var(--accent)}
/* report anatomy */
.anat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.page{position:relative;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:28px;aspect-ratio:1/1.2;max-width:460px;width:100%;display:flex;flex-direction:column;gap:12px;box-sizing:border-box}
.pg-head{display:flex;justify-content:space-between;padding-bottom:10px;border-bottom:1.5px solid var(--ink);font:500 10.5px var(--f-mono);color:var(--ink-2)}
.pg-line{height:7px;border-radius:2px;background:var(--rule)}
.pg-block{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.pg-block i{height:16px;background:var(--rule);border-radius:2px}
.pg-heat{height:22%;border-radius:3px;background:linear-gradient(110deg,var(--t1),var(--t2) 40%,var(--t3) 75%,var(--t4))}
.pin{position:absolute;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font:600 11px var(--f-mono);transform:translate(-50%,-50%);box-shadow:0 0 0 3px var(--surface)}
.anat-list{list-style:none;margin:0;padding:0;counter-reset:a;border-top:1px solid var(--ink)}
.anat-list li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;padding:12px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.anat-list li::before{counter-increment:a;content:counter(a);width:24px;height:24px;border-radius:50%;border:1px solid var(--accent);color:var(--accent);display:grid;place-items:center;font:600 11px var(--f-mono)}
.anat-list strong{font:600 16px/1.3 var(--f-head)}.anat-list span{display:block;font-size:14.5px;color:var(--ink-2)}
/* europe */
.eu{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.eu-grp h3{font:500 12px/1.3 var(--f-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);padding-bottom:10px;border-bottom:1px solid var(--ink);margin-bottom:4px}
.eu-grp ul{list-style:none;margin:0;padding:0}
.eu-grp li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:8px;padding:12px 0;border-bottom:1px solid var(--rule)}
.eu-grp li b{font:600 18px/1.2 var(--f-head);color:var(--accent)}
.eu-grp li strong{display:block;font-size:15px;font-weight:600;line-height:1.3}.eu-grp li span{display:block;font:500 11.5px/1.45 var(--f-mono);color:var(--ink-2)}
/* track record */
.track{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:stretch}
.track-lbl{display:inline-flex;gap:8px;align-items:center;font:500 11.5px/1.3 var(--f-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);border:1px solid var(--rule-2);border-radius:3px;padding:6px 8px;margin-bottom:16px}
.track p{font-size:17px}
/* soft */
.softs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.soft-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:clamp(22px,3vw,32px);display:grid;grid-template-columns:72px minmax(0,1fr);gap:20px;align-items:start}
.cover{width:72px;height:96px;border:1px solid var(--rule-2);border-radius:3px;padding:8px 7px;display:flex;flex-direction:column;gap:5px;background:var(--bg)}
.cover b{font:700 13px/1 var(--f-head)}.cover b sup{font-size:.6em;color:var(--accent)}.cover i{display:block;height:4px;background:var(--rule-2);border-radius:1px}.cover i:nth-child(3){width:70%}.cover em{margin-top:auto;height:20px;border-radius:2px;background:linear-gradient(90deg,var(--t1),var(--t2),var(--t3),var(--t4))}
.soft-card h3{margin-bottom:6px}.soft-card p{font-size:15px;color:var(--ink-2);margin-bottom:14px}
/* closing */
.close{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.close-path{padding:clamp(24px,3vw,40px);border-radius:var(--r-lg);border:1px solid var(--rule);display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.close-path.main{background:var(--ink);color:var(--bg);border-color:var(--ink)}.close-path.main h2{color:var(--bg)}.close-path.main p{color:color-mix(in oklab,var(--bg) 80%,var(--ink))}
.close-path.main .btn-primary{background:var(--bg);color:var(--ink)}.close-path.main .btn-primary:hover{background:var(--accent);color:var(--accent-ink)}
.routes{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:28px;padding-top:20px;border-top:1px solid var(--rule)}
.routes span{font:500 12px var(--f-mono);color:var(--ink-2);text-transform:uppercase;letter-spacing:.07em}
.routes a{font-weight:600;text-decoration:none}
.clients[hidden]{display:none}
/* responsive */
@media (max-width:1100px){.loop{margin:0 auto}.loop-cap{margin:8px auto 0}.trig{grid-template-columns:repeat(3,minmax(0,1fr))}.trig li:nth-child(4){padding-left:0;border-left:0}.units{grid-template-columns:repeat(5,minmax(0,1fr))}.eu{grid-template-columns:repeat(3,minmax(0,1fr))}.mon{grid-template-columns:1fr}}
@media (max-width:900px){.models,.anat,.track,.softs,.close{grid-template-columns:1fr}.vs-b{font-size:18px}.vs-a{font-size:16px}.page{margin:0 auto}}
@media (max-width:640px){
.loop{aspect-ratio:auto;max-width:none}.loop svg,.loop-center{display:none}
.loop-nodes{border-top:1px solid var(--ink)}
.loop-node{position:static;transform:none;width:auto;max-width:none;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:transparent;padding:12px 0}
.loop-cap{justify-content:flex-start}
.fnums{gap:20px}.hero-proof{flex-direction:column;align-items:flex-start}
.trig{grid-template-columns:1fr}.trig li,.trig li+li{padding:18px 0;border-left:0;border-bottom:1px solid var(--rule)}
.units{grid-template-columns:repeat(3,minmax(0,1fr))}.units li{padding:14px 10px;font-size:13px}
.range-ticks{height:100px}.range-ticks span{font-size:10px;white-space:normal;max-width:80px}.range-bands div span{font-size:10.5px}
.eu{grid-template-columns:1fr 1fr}
.dash-row{grid-template-columns:minmax(0,1fr) auto}.dash-row svg{display:none}
.vs{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr)}.vs-a,.vs-b{font-size:15px}.vs-a .ico,.vs-b .ico{display:none}
.who th,.who td{padding:10px 4px}.who thead th span{display:none}.who thead th b{font-size:13px}.pill{min-width:36px;font-size:11px;padding:0 6px}.who td:first-child{font-size:14px}
.dqpq b{font-size:15px}.dqpq span{font-size:9.5px}
.soft-card{grid-template-columns:1fr}.cover{display:none}}
@media (max-width:420px){.eu{grid-template-columns:1fr}}
/* i18n pages */
.mtbl th:not(:first-child){font:600 16px/1.2 var(--f-head);text-transform:none;letter-spacing:0;color:var(--ink)}
.mtbl td:first-child{width:22%}
.anat-list .plain{font-size:16px;line-height:1.45}
.hero-sub{max-width:600px}
@media (max-width:640px){.mtbl td{padding:4px 0}.mtbl td:not(:first-child)::before{content:attr(data-label) ": ";font:500 12px/1.4 var(--f-mono);color:var(--ink-2)}.mtbl td:first-child{font:600 16px/1.3 var(--f-head);padding-bottom:6px}}
