/* ==========================================================================
   KingdeeAI Malaysia — brand stylesheet
   Brand tokens locked from agency-vault/.../brand/design-system
   Kingdee Blue #2183E9 · Deep #005CA9 · Ink #28235F · Cyan #00CCFE
   Font: Montserrat (brand standard)
   ========================================================================== */

:root{
  --blue:#2183E9; --deep:#0360C3; --ink:#28235F; --cyan:#00AEEE;
  --teal:#05C8C8; --purple:#A06EFF; --gold:#DBB07D;
  /* design-system accents */
  --indigo:#6366F1; --violet:#A78BFA; --bright:#0066FF;
  --btn-r:6px; --btn-glow:0 8px 18px rgba(33,131,233,.28);
  --bg:#0a1430; --bg2:#0e1c3d; --line:#26345a;
  --txt:#e8eef7; --mut:#8ea2c4;
  /* light surfaces — soft-black text like the real Lingee site (rgba(0,0,0,.82)) */
  --l-bg:#f6f7fb; --l-bg2:#ffffff; --l-ink:#1c2026; --l-head:#14161c; --l-mut:#6b7280; --l-line:#e9ebf1;
  /* Lingee signature gradient: purple -> blue */
  --grad:linear-gradient(95deg,#9b8cff 0%,#5b6dff 52%,#2f86f0 100%);
  --maxw:1200px; --r:16px; --r-lg:22px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --shadow:0 18px 50px -18px rgba(20,30,70,.22);
  --glow:0 0 0 1px rgba(123,108,255,.18), 0 30px 70px -26px rgba(91,109,255,.45);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; font-family:"PingFang SC","Helvetica Neue",Helvetica,Arial,"Microsoft YaHei",-apple-system,sans-serif;
  background:var(--l-bg); color:var(--l-ink); line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
a{color:inherit; text-decoration:none}
img{max-width:100%; height:auto; display:block}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px}
section{position:relative}

/* ---------- type ---------- */
h1,h2,h3,h4{margin:0; line-height:1.14; letter-spacing:-.02em; font-weight:800; color:var(--l-head)}
.eyebrow{
  font-size:12.5px; letter-spacing:.22em; text-transform:uppercase;
  font-weight:800; color:var(--blue); margin-bottom:14px; display:inline-flex; gap:9px; align-items:center;
}
.eyebrow::before{content:""; width:22px; height:2px; background:linear-gradient(90deg,var(--blue),var(--cyan)); display:inline-block}
.hl{background:linear-gradient(92deg,#6b78ff,#2f86f0); -webkit-background-clip:text; background-clip:text; color:transparent}
.lead{font-size:clamp(16px,1.6vw,18.5px); color:var(--l-mut); max-width:60ch}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:15px;
  padding:13px 26px; border-radius:var(--btn-r); cursor:pointer; border:1px solid transparent;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s;
  white-space:nowrap;
}
.btn-primary{background:var(--blue); color:#fff; box-shadow:var(--btn-glow)}
.btn-primary:hover{background:#1a72d3; transform:translateY(-2px); box-shadow:0 12px 26px rgba(33,131,233,.4)}
.btn-ghost{background:rgba(255,255,255,.06); color:#fff; border-color:rgba(255,255,255,.22)}
.btn-ghost:hover{background:rgba(255,255,255,.14); transform:translateY(-2px)}
.btn-light{background:var(--l-ink); color:#fff}
.btn-light:hover{transform:translateY(-2px); box-shadow:var(--shadow)}
.btn-outline{background:transparent; color:var(--l-ink); border-color:var(--l-line)}
.btn-outline:hover{border-color:var(--blue); color:var(--blue)}
.btn .arr{transition:transform .25s var(--ease)}
.btn:hover .arr{transform:translateX(3px)}

/* ---------- Lingee^AIOS wordmark (monkey removed) ---------- */
.lingee{font-weight:800; letter-spacing:-.03em; display:inline-flex; align-items:flex-start; line-height:1}
.lingee .word{background:linear-gradient(95deg,#3b8dff,#8a6bff 60%,#c06bd8); -webkit-background-clip:text; background-clip:text; color:transparent; padding-bottom:.18em}
.lingee .sup{
  font-size:.42em; font-weight:800; letter-spacing:.06em; margin-left:.08em; margin-top:.12em;
  color:var(--cyan); -webkit-text-fill-color:var(--cyan); transform:translateY(-.1em);
}
.lingee.on-dark .word{background:linear-gradient(95deg,#7fb6ff,#b49bff 60%,#e3a6ff); -webkit-background-clip:text; background-clip:text; color:transparent}

/* ---------- header ---------- */
header.nav{
  position:sticky; top:0; z-index:60; background:rgba(255,255,255,.82);
  backdrop-filter:saturate(150%) blur(8px); border-bottom:1px solid var(--l-line);
  transition:box-shadow .3s;
}
header.nav.scrolled{box-shadow:0 10px 30px -18px rgba(12,23,51,.35)}
.nav-in{display:flex; align-items:center; gap:30px; height:72px}
.brand{display:flex; align-items:center; gap:10px; font-weight:800}
.brand img{height:30px; width:auto}
.nav-links{display:flex; align-items:center; gap:30px; margin-left:8px; font-weight:600; font-size:15px; color:#33415f}
.nav-links a{position:relative; padding:6px 0; transition:color .2s}
.nav-links a::after{content:""; position:absolute; left:0; bottom:-2px; height:2px; width:0; background:linear-gradient(90deg,var(--blue),var(--cyan)); transition:width .25s var(--ease)}
.nav-links a:hover{color:var(--blue)} .nav-links a:hover::after{width:100%}
.nav-cta{margin-left:auto; display:flex; align-items:center; gap:14px}
.nav-toggle{display:none; background:none; border:0; cursor:pointer; flex-direction:column; gap:5px; padding:8px}
.nav-toggle span{width:24px; height:2px; background:var(--l-ink); border-radius:2px; transition:.3s}

/* nav mega-menu (AI+ ERP dropdown) */
.nav-item{position:relative; display:flex; align-items:center; height:72px}
.has-mega>a .caret{font-size:10px; margin-left:4px; opacity:.6; display:inline-block; transition:transform .2s}
.has-mega:hover>a .caret{transform:rotate(180deg)}
.has-mega::after{content:""; position:absolute; top:100%; left:-20px; right:-20px; height:16px}
.mega{position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px); background:#fff; border:1px solid var(--l-line); border-top:0; border-radius:0 0 16px 16px; box-shadow:0 24px 46px -20px rgba(20,30,70,.26); padding:24px 26px; display:grid; grid-template-columns:repeat(2,minmax(196px,1fr)); gap:26px; opacity:0; visibility:hidden; transition:opacity .2s var(--ease), transform .2s var(--ease); z-index:70}
.has-mega:hover .mega{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0)}
.mega-col h5{font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--l-mut); font-weight:800; margin:0 0 12px; padding-bottom:11px; border-bottom:1px solid var(--l-line)}
.mega a{display:block; padding:7px 0; font-size:14px; color:#3a3f49; font-weight:600; transition:color .15s}
.mega a::after{content:none}
.mega a:hover{color:var(--blue)}
.mega.mega--mini{grid-template-columns:1fr; min-width:248px; gap:0; padding:14px 16px}
.mega.mega--mini a{padding:9px 10px; border-radius:9px; font-size:14px; white-space:nowrap}
.mega.mega--mini a:hover{color:var(--blue)}

/* ---------- hero ---------- */
.hero{
  background:
    radial-gradient(900px 520px at 80% -6%, rgba(123,108,255,.20), transparent 60%),
    radial-gradient(760px 520px at 6% 4%, rgba(150,170,255,.18), transparent 58%),
    linear-gradient(178deg,#eef0fe 0%,#f4f1fe 30%,#ffffff 78%);
  color:var(--l-ink); padding:64px 0 70px; overflow:hidden; position:relative;
}
.hero::before{ /* soft glow only — no diagonal streaks */
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(680px 360px at 78% 12%, rgba(123,108,255,.16), transparent 65%);
}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; position:relative}
.hero .eyebrow{color:var(--blue)}
.hero h1{font-size:clamp(33px,4.4vw,56px); color:var(--l-ink)}
.hero p.sub{font-size:clamp(16px,1.7vw,19px); color:var(--l-mut); margin:20px 0 30px; max-width:54ch}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap}
.hero-meta{display:flex; gap:26px; margin-top:34px; flex-wrap:wrap}
.hero-meta .m b{font-size:24px; color:var(--l-ink); display:block; letter-spacing:-.02em} .hero-meta .m span{font-size:12.5px; color:var(--l-mut)}

/* interactive AI assistant box — white card, like the reference search box */
.ai-box{
  background:#fff; border:1px solid var(--l-line); border-radius:var(--r-lg); padding:22px;
  box-shadow:0 34px 80px -32px rgba(20,42,96,.34), 0 0 0 1px rgba(35,134,238,.04); position:relative;
}
.ai-box::before{content:""; position:absolute; inset:-1px; border-radius:inherit; padding:1px; background:linear-gradient(120deg,rgba(35,134,238,.35),rgba(0,204,254,.25),transparent 60%); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none}
.ai-box .ai-head{display:flex; align-items:center; gap:10px; margin-bottom:14px}
.ai-box .ai-dot{width:34px; height:34px; border-radius:10px; background:linear-gradient(135deg,var(--blue),var(--cyan)); display:grid; place-items:center; box-shadow:0 8px 18px -6px rgba(35,134,238,.6)}
.ai-box .ai-dot svg{width:18px;height:18px}
.ai-box .ai-title{font-weight:700; font-size:15px; color:var(--l-ink)} .ai-box .ai-title span{display:block; font-size:12px; color:var(--l-mut); font-weight:500}
.ai-field{display:flex; gap:10px; align-items:center; background:#f4f7fd; border:1px solid var(--l-line); border-radius:14px; padding:8px 8px 8px 16px}
.ai-field input{flex:1; background:none; border:0; outline:0; color:var(--l-ink); font-family:inherit; font-size:14.5px}
.ai-field input::placeholder{color:#93a3c2}
.ai-send{background:linear-gradient(120deg,var(--blue),var(--deep)); border:0; color:#fff; font-weight:800; border-radius:10px; padding:10px 16px; cursor:pointer; font-family:inherit; transition:transform .2s, box-shadow .2s; box-shadow:0 10px 22px -10px rgba(35,134,238,.7)}
.ai-send:hover{transform:translateY(-1px)}
.ai-chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px}
.ai-chip{font-size:12.5px; color:#44557a; background:#eef3fb; border:1px solid var(--l-line); padding:7px 13px; border-radius:999px; cursor:pointer; transition:.2s}
.ai-chip:hover{background:rgba(35,134,238,.1); border-color:var(--blue); color:var(--blue)}
.ai-answer{margin-top:14px; font-size:13.5px; color:#33415f; background:#f3f8ff; border:1px solid rgba(35,134,238,.2); border-left:3px solid var(--blue); border-radius:12px; padding:13px 15px; display:none}
.ai-answer.show{display:block; animation:fadeUp .4s var(--ease)}

/* ====== Lingee agent-workspace chat module (the hero "gimmick") ====== */
.aw{position:relative; max-width:1140px; margin:30px auto 0; background:#fff; border:1px solid var(--l-line); border-radius:18px; box-shadow:0 50px 100px -45px rgba(40,40,90,.45); overflow:hidden}
.aw::before{content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad); z-index:3}
.aw-top{height:52px; display:flex; align-items:center; gap:10px; padding:0 20px; border-bottom:1px solid var(--l-line)}
.aw-top .dots{display:flex; gap:6px} .aw-top .dots i{width:10px;height:10px;border-radius:50%;background:#e6e8ef;display:block}
.aw-body{display:grid; grid-template-columns:246px 1fr; min-height:498px}
.aw-side{background:#f7f8fb; border-right:1px solid var(--l-line); padding:14px 12px; display:flex; flex-direction:column; font-size:13.5px}
.aw-tabs{display:flex; gap:6px; margin-bottom:12px}
.aw-tab{flex:1; display:flex; align-items:center; justify-content:center; gap:6px; font-size:13px; font-weight:600; padding:8px 6px; border-radius:9px; color:#5a6172; cursor:pointer; transition:.2s}
.aw-tab.active{background:#15171d; color:#fff}
.aw-tab:not(.active):hover{background:#eef1f7}
.aw-grp{display:flex; align-items:center; gap:9px; padding:9px 10px; border-radius:9px; color:#262a33; font-weight:600; cursor:pointer}
.aw-grp .chev{margin-left:auto; color:#b3b9c6; font-size:11px}
.aw-grp:hover{background:#eef1f7}
.aw-sub{display:block; padding:7px 10px 7px 36px; color:#6b7280; font-size:13px; border-radius:8px; cursor:pointer; transition:.15s}
.aw-sub:hover{color:#2f86f0; background:#eef1f7}
.aw-item{display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:9px; color:#3a3f49; font-weight:600; cursor:pointer; transition:.15s}
.aw-item:hover{background:#eef1f7}
.aw-item.active{background:#e9f0ff; color:#2f6fef}
.aw-item .ic{width:16px; text-align:center; opacity:.85}
.aw-divider{height:1px; background:var(--l-line); margin:12px 6px}
.aw-hist-h{display:flex; justify-content:space-between; align-items:center; font-size:12.5px; color:#9298a4; padding:0 10px 4px} .aw-hist-h span{cursor:pointer}
.aw-hist a{display:block; padding:7px 10px; color:#5a6172; font-size:13px; border-radius:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; cursor:pointer}
.aw-hist a:hover{background:#eef1f7}
.aw-user{margin-top:auto; display:flex; align-items:center; gap:9px; padding:12px 8px 4px; border-top:1px solid var(--l-line)}
.aw-user .av{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#9b8cff,#5b6dff); flex:0 0 auto}
.aw-user b{font-size:13.5px; font-weight:600} .aw-user .acts{margin-left:auto; display:flex; gap:12px; color:#b3b9c6}

.aw-chat{display:flex; flex-direction:column; padding:30px 36px 34px; position:relative; background:
  radial-gradient(520px 300px at 88% 0%, rgba(123,108,255,.05), transparent 70%)}
.aw-greet{margin:auto auto 20px; font-size:clamp(22px,2.5vw,33px); font-weight:700; color:#1c2026; text-align:center; letter-spacing:-.01em}
.aw-greet .hl{background:linear-gradient(92deg,#6b78ff,#2f86f0); -webkit-background-clip:text; background-clip:text; color:transparent}
.aw-feed{flex:1; display:flex; flex-direction:column; gap:12px; justify-content:flex-end; max-width:760px; width:100%; margin:0 auto 14px; overflow:hidden}
.aw-bubble{align-self:flex-start; max-width:90%; background:#f4f6fb; border:1px solid #e7eaf2; border-radius:14px; border-top-left-radius:4px; padding:12px 15px; font-size:14px; color:#2b2f38; animation:fadeUp .35s var(--ease)}
.aw-bubble.me{align-self:flex-end; background:linear-gradient(120deg,#eef1ff,#e7ecff); border-color:#dfe4ff; border-radius:14px; border-top-right-radius:4px; color:#2a2f4a}
.aw-input{max-width:760px; width:100%; margin:0 auto; background:#fff; border:1px solid #e3e6ee; border-radius:16px; box-shadow:0 14px 34px -18px rgba(40,40,90,.28); padding:14px 16px 10px}
.aw-input textarea{width:100%; border:0; outline:0; font-family:inherit; font-size:14.5px; color:#1c2026; resize:none; min-height:26px; max-height:90px; background:none; line-height:1.5}
.aw-input textarea::placeholder{color:#a2a8b4}
.aw-input-row{display:flex; align-items:center; gap:8px; margin-top:8px}
.aw-pill{display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:#5a6172; background:#f2f4f8; border:1px solid #e7eaf1; padding:6px 12px; border-radius:999px; cursor:pointer; transition:.2s}
.aw-pill:hover{border-color:#9b8cff; color:#5b6dff}
.aw-ic{width:30px;height:30px;border-radius:8px; display:grid;place-items:center; color:#878e9a; cursor:pointer; font-size:16px; transition:.2s} .aw-ic:hover{background:#f2f4f8}
.aw-mic{width:36px;height:36px;border-radius:50%; background:#f2f4f8; display:grid;place-items:center; color:#878e9a; cursor:pointer; margin-left:auto}
.aw-send{width:36px;height:36px;border-radius:50%; background:var(--grad); color:#fff; border:0; display:grid;place-items:center; cursor:pointer; box-shadow:0 8px 18px -8px rgba(91,109,255,.7); transition:transform .2s} .aw-send:hover{transform:translateY(-1px)}
.aw-chips{display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:14px auto 0; max-width:760px}
.aw-chip{font-size:12.5px; color:#5a6172; background:#fff; border:1px solid var(--l-line); padding:7px 13px; border-radius:999px; cursor:pointer; transition:.2s}
.aw-chip:hover{border-color:#9b8cff; color:#5b6dff; background:#f7f6ff}
/* demo tab panes */
.aw-pane{display:none}
.aw-pane.on{display:block}
.aw-convo{display:flex; flex-direction:column; gap:12px; max-width:760px; margin:0 auto; padding:8px 0 4px}
.aw-skill-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; max-width:560px; margin:20px auto 0}
.aw-skill{background:#f6f8fc; border:1px solid var(--l-line); border-radius:14px; padding:16px; cursor:pointer; transition:transform .2s, border-color .2s, background .2s}
.aw-skill:hover{border-color:#9b8cff; background:#f7f6ff; transform:translateY(-2px)}
.aw-skill b{display:block; font-size:14.5px; color:var(--l-ink); margin-bottom:5px}
.aw-skill span{font-size:12.5px; color:var(--l-mut)}
@media(max-width:820px){ .aw-body{grid-template-columns:1fr} .aw-side{display:none} .aw-chat{padding:26px 18px} .aw-skill-grid{grid-template-columns:1fr} }

/* logo strip */
.trustbar{background:var(--l-bg2); border-bottom:1px solid var(--l-line); padding:22px 0}
.trustbar .wrap{display:flex; align-items:center; gap:30px; flex-wrap:wrap; justify-content:center}
.trustbar .tlabel{font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--l-mut); font-weight:700}
.trustbar .names{display:flex; gap:30px; flex-wrap:wrap; color:#33415f; font-weight:800; font-size:16px; opacity:.7}

/* ---------- generic section ---------- */
.sec{padding:84px 0}
.sec.tight{padding:62px 0}
.sec-head{max-width:720px; margin-bottom:46px}
.sec-head.center{margin:0 auto 50px; text-align:center}
.sec-head h2{font-size:clamp(26px,3vw,40px)}
.sec-head p{margin-top:16px}
/* light alternate band */
.alt{background:
  radial-gradient(600px 360px at 92% 0%, rgba(0,204,254,.07), transparent 60%),
  linear-gradient(180deg,#f7faff,#eef4fd)}
.alt2{background:var(--l-bg2)}

/* stat cards */
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.stat{background:#fff; border:1px solid rgba(87,93,108,.1); border-radius:16px; padding:30px 26px; transition:transform .3s var(--ease), box-shadow .3s}
.stat:hover{transform:translateY(-4px); box-shadow:var(--shadow)}
.stat b{font-size:clamp(34px,3.6vw,48px); color:#0066FF; display:block; letter-spacing:-.02em; font-weight:700}
.stat span{color:var(--l-mut); font-size:13.5px; font-weight:500; margin-top:10px; display:block; line-height:1.5}

/* product blocks */
.prod{display:grid; grid-template-columns:1fr 1fr; gap:54px; align-items:center}
.prod.rev .prod-media{order:2}
.prod-media{border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--l-line); background:linear-gradient(160deg,#eaf1fd,#dde8fa); box-shadow:var(--shadow); aspect-ratio:4/3; position:relative}
.prod-media img{width:100%; height:100%; object-fit:cover}
.prod-media .ph{position:absolute; inset:0; display:grid; place-items:center; color:#8aa0c8; font-size:13px; gap:8px; text-align:center}
.prod-media.contain{background:#fff} .prod-media.contain img{object-fit:contain; padding:20px}
.feat-list{margin:22px 0 26px; display:grid; gap:14px}
.feat-list .f{display:flex; gap:13px; align-items:flex-start}
.feat-list .ic{flex:0 0 auto; width:30px; height:30px; border-radius:9px; background:linear-gradient(135deg,rgba(35,134,238,.14),rgba(0,204,254,.14)); display:grid; place-items:center; color:var(--blue)}
.feat-list .f b{display:block; font-size:15.5px} .feat-list .f p{margin:2px 0 0; font-size:14px; color:var(--l-mut)}

/* mode cards (Chat/Work/Build) — light */
.modes{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.mode{background:#fff; border:1px solid var(--l-line); border-radius:var(--r); padding:26px; transition:.3s var(--ease); position:relative; overflow:hidden}
.mode::before{content:""; position:absolute; left:0; top:0; height:3px; width:100%; background:linear-gradient(90deg,var(--blue),var(--cyan)); opacity:0; transition:.3s}
.mode:hover{transform:translateY(-5px); box-shadow:var(--shadow); border-color:rgba(35,134,238,.3)}
.mode:hover::before{opacity:1}
.mode .tag{font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--blue)}
.mode h3{font-size:21px; margin:10px 0; color:var(--l-ink)}
.mode p{font-size:14px; color:var(--l-mut); margin:0}

/* solutions / industries */
.ind-tabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:30px}
.ind-tab{padding:10px 18px; border-radius:999px; border:1px solid var(--l-line); background:#fff; font-weight:700; font-size:14px; cursor:pointer; color:#44557a; transition:.2s}
.ind-tab.active{background:var(--l-ink); color:#fff; border-color:var(--l-ink)}
.ind-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.ind-card{position:relative; border-radius:var(--r); overflow:hidden; min-height:220px; border:1px solid var(--l-line); background:#0c1838; color:#fff; display:flex; flex-direction:column; justify-content:flex-end; padding:22px; transition:.35s var(--ease)}
.ind-card .bgimg{position:absolute; inset:0; background-size:cover; background-position:center; opacity:.55; transition:.5s var(--ease)}
.ind-card::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,18,42,.1),rgba(8,18,42,.92))}
.ind-card>*{position:relative; z-index:2}
.ind-card h3{font-size:19px} .ind-card p{font-size:13px; color:#c4d2ee; margin:8px 0 0; max-height:0; opacity:0; overflow:hidden; transition:.4s var(--ease)}
.ind-card .more{font-size:13px; font-weight:700; color:var(--cyan); margin-top:12px; opacity:0; transform:translateY(6px); transition:.35s var(--ease)}
.ind-card:hover{transform:translateY(-5px); box-shadow:var(--glow)}
.ind-card:hover .bgimg{opacity:.7; transform:scale(1.06)}
.ind-card:hover p{max-height:120px; opacity:1; margin-top:8px}
.ind-card:hover .more{opacity:1; transform:none}

/* partner wall */
.partners{display:grid; grid-template-columns:repeat(6,1fr); gap:14px}
.ptier{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:34px}
.ptier .pt{background:var(--l-bg2); border:1px solid var(--l-line); border-radius:var(--r); padding:22px}
.ptier .pt b{font-size:16px} .ptier .pt .ab{font-size:12px; font-weight:800; color:var(--blue); letter-spacing:.06em} .ptier .pt p{font-size:13px; color:var(--l-mut); margin:6px 0 0}
.plogos{display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px; margin-top:18px}
.plogo{height:62px; border:1px solid var(--l-line); border-radius:12px; background:#fff; display:grid; place-items:center; font-weight:800; color:#7f8eaa; font-size:14px; transition:.25s}
.plogo:hover{border-color:var(--blue); color:var(--blue); transform:translateY(-3px)}

/* architecture stack rows */
.arch-row{display:flex; gap:18px; align-items:center; background:#fff; border:1px solid var(--l-line); border-radius:14px; padding:16px 20px; transition:transform .25s var(--ease), box-shadow .25s}
.arch-row:hover{transform:translateX(6px); box-shadow:var(--shadow); border-color:rgba(35,134,238,.3)}
.arch-row .al{flex:0 0 auto; width:48px; height:48px; border-radius:11px; background:linear-gradient(135deg,var(--blue),var(--cyan)); color:#fff; font-weight:800; font-size:16px; display:grid; place-items:center; letter-spacing:-.02em}
.arch-row b{font-size:16.5px} .arch-row p{margin:2px 0 0; color:var(--l-mut); font-size:14px}

/* FAQ */
.faq{max-width:840px; margin:0 auto}
.faq-item{border-bottom:1px solid var(--l-line)}
.faq-q{width:100%; text-align:left; background:none; border:0; cursor:pointer; font-family:inherit; font-weight:700; font-size:16.5px; color:var(--l-ink); padding:22px 44px 22px 0; position:relative; display:flex; align-items:center; gap:12px}
.faq-q::after{content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); font-size:24px; font-weight:400; color:var(--blue); transition:transform .3s}
.faq-item.open .faq-q::after{transform:translateY(-50%) rotate(45deg)}
.faq-q:hover{color:var(--blue)} .faq-q:hover::after{color:var(--blue)}
.faq-a{max-height:0; overflow:hidden; transition:max-height .35s var(--ease)}
.faq-a p{padding:0 0 22px; margin:0; color:var(--l-mut); font-size:15px; max-width:74ch}

/* CTA band */
.cta-band{background:radial-gradient(700px 400px at 80% 20%,rgba(0,204,254,.25),transparent 60%),linear-gradient(125deg,var(--ink),var(--deep) 60%,var(--blue)); color:#fff; border-radius:26px; padding:56px; text-align:center; box-shadow:var(--shadow); overflow:hidden; position:relative}
.cta-band h2{font-size:clamp(26px,3vw,38px); color:#fff}
.cta-band p{color:#cfe0fb; margin:16px auto 28px; max-width:52ch}
.cta-band .hero-cta{justify-content:center}

/* ===== homepage assistant search box ("What can I help you with?") ===== */
.assistant{text-align:center}
.as-box{max-width:740px; margin:0 auto; background:#fff; border:1px solid var(--l-line); border-radius:16px; box-shadow:0 26px 60px -32px rgba(40,40,90,.32); padding:8px 8px 8px 20px; display:flex; align-items:center; gap:12px; position:relative}
.as-box::before{content:""; position:absolute; inset:-1px; border-radius:inherit; padding:1px; background:linear-gradient(120deg,rgba(123,108,255,.4),rgba(47,134,240,.3),transparent 60%); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none}
.as-box .as-ico{color:#9b8cff; font-size:18px}
.as-box input{flex:1; border:0; outline:0; font-family:inherit; font-size:14.5px; color:var(--l-ink); background:none; padding:12px 0}
.as-box input::placeholder{color:#a2a8b4}
.as-send{background:var(--grad); color:#fff; border:0; border-radius:12px; padding:12px 22px; font-weight:700; cursor:pointer; font-family:inherit; white-space:nowrap; transition:transform .2s}
.as-send:hover{transform:translateY(-1px)}
.as-chips{display:flex; flex-wrap:wrap; gap:9px; justify-content:center; margin-top:18px}
.as-chip{font-size:13px; color:#5a6172; background:#fff; border:1px solid var(--l-line); padding:8px 15px; border-radius:999px; cursor:pointer; transition:.2s}
.as-chip:hover{border-color:#9b8cff; color:#5b6dff; background:#f8f7ff}
.as-answer{max-width:700px; margin:18px auto 0; text-align:left; background:#f3f8ff; border:1px solid rgba(35,134,238,.2); border-left:3px solid var(--blue); border-radius:12px; padding:14px 16px; font-size:14px; color:#33415f; display:none}
.as-answer.show{display:block; animation:fadeUp .35s var(--ease)}

/* ===== product lineup cards — flex accordion (hover expands, like kingdee.com) ===== */
.plineup{display:flex; gap:18px; align-items:stretch}
.prodcard{flex:1 1 0; min-width:0; background:#fff; border:1px solid var(--l-line); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; transition:flex-grow .45s var(--ease), box-shadow .35s var(--ease), border-color .35s}
.prodcard:hover{flex-grow:1.55; box-shadow:var(--shadow); border-color:rgba(123,108,255,.35)}
/* keep both the reveal AND the flex-accordion transitions on product cards */
.plineup.stagger > .prodcard{transition:opacity .7s var(--ease), transform .7s var(--ease), flex-grow .45s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease)}
.prodcard .pimg{height:158px; background-size:cover; background-position:center; background-color:#dde7f5; transition:filter .4s} .prodcard:hover .pimg{filter:saturate(1.1) brightness(1.03)}
.prodcard .pbody{padding:20px; display:flex; flex-direction:column; flex:1}
.prodcard h3{font-size:17px; margin-bottom:5px}
.prodcard .ptag{font-size:12px; color:var(--l-mut); margin-bottom:12px}
.prodcard .pb-list{list-style:none; padding:0; margin:0 0 16px; font-size:12.5px; color:var(--l-mut); display:grid; gap:7px}
.prodcard .pb-list li{padding-left:18px; position:relative}
.prodcard .pb-list li::before{content:"✓"; position:absolute; left:0; color:var(--blue); font-weight:800; font-size:11px}
.prodcard .pacts{margin-top:auto; display:flex; gap:8px}
.prodcard .pacts a{font-size:13px; font-weight:700; padding:9px 15px; border-radius:999px; transition:.2s}
.prodcard .pacts .pa1{background:var(--grad); color:#fff}
.prodcard .pacts .pa2{border:1px solid var(--l-line); color:#44557a}
.prodcard .pacts .pa2:hover{border-color:var(--blue); color:var(--blue)}

/* ===== dark-overlay accordion (products + industries) — like kingdee.com ===== */
.acc{display:flex; gap:14px; min-height:460px}
.acc-card{flex:1 1 0; min-width:0; position:relative; border-radius:18px; overflow:hidden; cursor:pointer; color:#fff; display:flex; flex-direction:column; justify-content:flex-end; padding:26px; transition:flex-grow .4s var(--ease); background:#0c1838}
.acc-card .bg{position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; transition:transform .35s var(--ease); filter:saturate(.92)}
/* match kingdee.com/cn: flat neutral 50% black overlay (muted look), + bottom darkening for text */
.acc-card::after{content:""; position:absolute; inset:0; z-index:1; background:rgba(0,0,0,.5); transition:background .3s}
.acc-card::before{content:""; position:absolute; left:0; right:0; bottom:0; height:62%; z-index:2; background:linear-gradient(180deg,transparent,rgba(0,0,0,.72)); pointer-events:none}
.acc-card:hover::after,.acc-card.active::after{background:rgba(0,0,0,.42)}
.acc-card > *{position:relative; z-index:3}
.acc-card .tag{align-self:flex-start; font-size:12px; font-weight:500; background:rgba(255,255,255,.16); padding:5px 11px; border-radius:7px; margin-bottom:12px; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px)}
.acc-card h3{font-size:22px; color:#fff; letter-spacing:-.01em}
.acc-card .detail{max-height:0; opacity:0; overflow:hidden; transition:max-height .45s var(--ease), opacity .35s var(--ease)}
.acc-card .detail ul{list-style:none; padding:0; margin:14px 0 18px; display:grid; gap:8px}
.acc-card .detail li{font-size:13.5px; color:#dbe4f5; padding-left:20px; position:relative; white-space:nowrap}
.acc-card .detail li::before{content:"✓"; position:absolute; left:0; color:#6ea8ff; font-weight:800}
.acc-card .detail p{font-size:13.5px; color:#dbe4f5; margin:14px 0 18px; max-width:32ch}
.acc-card .acts{display:flex; gap:10px}
.acc-card .acts a{font-size:13px; font-weight:700; padding:10px 16px; border-radius:999px; white-space:nowrap; transition:.2s}
.acc-card .acts .a1{background:#fff; color:#14213d} .acc-card .acts .a1:hover{background:#e8f0ff}
.acc-card .acts .a2{border:1px solid rgba(255,255,255,.55); color:#fff} .acc-card .acts .a2:hover{background:rgba(255,255,255,.14)}
.acc-card.active{flex-grow:2.6}
.acc-card.active .detail{max-height:300px; opacity:1}
.acc-card.active .bg{transform:scale(1.1)}
.acc:hover .acc-card.active:not(:hover){flex-grow:1}
.acc:hover .acc-card.active:not(:hover) .detail{max-height:0; opacity:0}
.acc-card:hover{flex-grow:2.6}
.acc-card:hover .detail{max-height:300px; opacity:1}
.acc-card:hover .bg{transform:scale(1.1)}
/* square tiles variant (industries): inactive ~square, active wide rectangle */
.acc.tiles{height:240px; min-height:0}
.acc.tiles .acc-card{padding:22px}
.acc.tiles .acc-card.active{flex-grow:2}
.acc.tiles .acc-card h3{font-size:19px}
.acc.tiles .acc-card .detail p{margin:10px 0 14px}
@media(max-width:1000px){ .acc.tiles{height:auto} }
@media(max-width:820px){ .acc{flex-direction:column; min-height:0; gap:14px} .acc-card{flex:0 0 auto; min-height:200px; height:auto} .acc-card .detail{max-height:none; opacity:1; overflow:visible} }

/* ===== case-study quote band ===== */
.quoteband{background:radial-gradient(600px 300px at 85% 0,rgba(123,108,255,.25),transparent 60%),linear-gradient(160deg,#0a1430,#152a57); color:#fff; border-radius:22px; padding:54px; text-align:center; box-shadow:var(--shadow)}
.quoteband .qmark{font-size:40px; color:#5b6dff; line-height:.6}
.quoteband .q{font-size:clamp(17px,1.9vw,23px); max-width:62ch; margin:14px auto 18px; line-height:1.6; color:#e8eef7; font-weight:600}
.quoteband .qby{color:#9fb4d8; font-size:14px}
.qslides{position:relative}
.qslide{opacity:0; visibility:hidden; position:absolute; inset:0; transition:opacity .7s var(--ease); pointer-events:none}
.qslide.on{opacity:1; visibility:visible; position:relative; pointer-events:auto}
.qdots{display:flex; gap:9px; justify-content:center; margin-top:22px}
.qdot{width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.28); cursor:pointer; transition:.25s var(--ease); border:0; padding:0}
.qdot.on{background:#8a9bff; width:24px; border-radius:5px}

/* ===== dark case + logo wall (full-bleed) ===== */
.dark-case{background:radial-gradient(720px 380px at 82% 8%, rgba(91,109,255,.22), transparent 60%), linear-gradient(160deg,#0a1430,#0f1f43)}
.dark-case .qmark{font-size:46px; color:#5b6dff; line-height:.5; text-align:center}
.case-quote{max-width:920px; margin:0 auto; text-align:center}
.dark-case .q{font-size:clamp(18px,2vw,25px); color:#eef3fb; line-height:1.6; font-weight:500; margin:16px auto; max-width:62ch}
.dark-case .qby{color:#9fb4d8; font-size:14px}
.dark-case .qdots{margin-top:22px}
.logo-wall-wrap{margin-top:50px; border-top:1px solid rgba(255,255,255,.08); padding-top:36px; text-align:center}
.logo-wall-wrap .tlabel{display:block; color:#8ea2c4; font-size:13px; margin-bottom:26px; font-weight:500}
.logo-wall{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:28px 50px}
.logo-wall img{height:28px; width:auto; opacity:.8; transition:opacity .25s}
.logo-wall img:hover{opacity:1}
@media(max-width:760px){ .logo-wall{gap:22px 32px} .logo-wall img{height:22px} }

/* ===== lingee customer logos (light band) ===== */
.cust-logos-band{background:#fff; border-top:1px solid var(--l-line); border-bottom:1px solid var(--l-line); padding:28px 0}
.cust-logos{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:26px 54px}
.cust-logos img{height:30px; width:auto; opacity:.65; filter:grayscale(100%); transition:.25s}
.cust-logos img:hover{opacity:1; filter:none}

/* ===== security cert badges ===== */
.certs{display:flex; flex-wrap:wrap; justify-content:center; gap:30px 42px; margin-top:8px}
.cert{display:flex; flex-direction:column; align-items:center; text-align:center; width:128px; transition:transform .25s var(--ease)}
.cert:hover{transform:translateY(-4px)}
.cert img{height:84px; width:auto; margin-bottom:12px}
.cert span{font-size:13px; font-weight:700; color:var(--l-head); line-height:1.45}
.cert small{font-weight:500; color:var(--l-mut); font-size:11.5px}
@media(max-width:600px){ .cert{width:40%} }

/* ===== lingee mode cards (.ai-card) ===== */
.ai-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.ai-card{border-radius:32px; padding:34px 28px; transition:transform .3s var(--ease)}
.ai-card:hover{transform:translateY(-6px)}
.ai-card.c-blue{background:linear-gradient(180deg,#d1deff,#e8f1ff)}
.ai-card.c-purple{background:linear-gradient(180deg,#e5dffe,#f3f2ff)}
.ai-card.c-pink{background:linear-gradient(0deg,#fff3f2 5%,#fadcd8 100%)}
.ai-ico{width:60px; height:60px; border-radius:16px; display:grid; place-items:center; margin-bottom:20px; box-shadow:0 10px 22px -8px rgba(60,80,180,.45)}
.ai-ico.i-blue{background:linear-gradient(135deg,#5b8cff,#3b6fff)}
.ai-ico.i-purple{background:linear-gradient(135deg,#9b6bff,#6d4bff)}
.ai-ico.i-pink{background:linear-gradient(135deg,#ff7a9c,#ff5b78)}
.ai-ico svg{width:30px; height:30px}
.ai-card h3{font-size:21px; color:#14171e; margin-bottom:9px}
.ai-card p{font-size:14px; color:#5a6172; margin:0; line-height:1.6}

/* ===== lingee feature rows (.cap-row) — colour panels, alternating ===== */
.cap-list{display:grid; gap:60px}
.cap-row{display:flex; flex-direction:row; gap:60px; align-items:center}
.cap-row.rev{flex-direction:row-reverse}
.cap-row__media{flex:1 1 0; min-width:0; border-radius:28px; overflow:hidden; background:linear-gradient(135deg,#d1deff,#e8f1ff)}
.cap-row__media.m-purple{background:linear-gradient(135deg,#e5dffe,#f3f2ff)}
.cap-row__media.m-mint{background:linear-gradient(135deg,#d3f1ea,#eafaf5)}
.cap-row__media.m-pink{background:linear-gradient(135deg,#fadcd8,#fff3f2)}
.cap-row__media img{width:100%; display:block; transition:transform .5s var(--ease)}
.cap-row:hover .cap-row__media img{transform:scale(1.035)}
.cap-row__txt{flex:1 1 0; min-width:0}
.cap-row__title{font-size:clamp(23px,2.5vw,34px); font-weight:700; color:#13161c; margin:12px 0 14px}
.cap-row__txt p{color:var(--l-mut); font-size:15px; margin:0 0 10px; max-width:46ch}
@media(max-width:860px){ .cap-row,.cap-row.rev{flex-direction:column; gap:26px} .cap-list{gap:44px} .cap-row__media,.cap-row__txt{flex:none; width:100%} }

/* ===== lingee finance agents ===== */
.finance__head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:40px}
.finance__lead{max-width:660px}
.finance__lead h2{font-size:clamp(26px,3vw,38px)}
.finance__lead p{color:var(--l-mut); margin-top:14px; font-size:15.5px}
.finance__grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px}
.agent{background:linear-gradient(#fff,rgba(255,255,255,.5)); border-radius:24px; padding:26px; box-shadow:0 8px 20px 0 rgb(224,233,255); transition:transform .3s var(--ease), box-shadow .3s}
.agent:hover{transform:translateY(-6px); box-shadow:0 12px 24px 0 rgba(200,213,250,.5)}
.agent__icon{width:40px; height:40px; margin-bottom:16px}
.agent__icon img{width:40px; height:40px; display:block}
.agent__title{font-size:17px; color:#14171e; margin-bottom:10px}
.agent p{font-size:13.5px; color:var(--l-mut); margin:0; line-height:1.6}
@media(max-width:960px){ .finance__grid{grid-template-columns:repeat(2,1fr)} .finance__head{flex-direction:column; align-items:flex-start} }
@media(max-width:560px){ .finance__grid{grid-template-columns:1fr} .ai-cards{grid-template-columns:1fr} }

/* ===== AI+ ERP value-chain module grid ===== */
.mod-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.mod{background:#fff; border:1px solid var(--l-line); border-radius:16px; padding:22px; transition:transform .3s var(--ease), box-shadow .3s, border-color .3s}
.mod:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:rgba(35,134,238,.28)}
.mod .ci{width:42px; height:42px; border-radius:11px; background:linear-gradient(135deg,rgba(35,134,238,.14),rgba(0,204,254,.14)); display:grid; place-items:center; color:var(--blue); font-size:19px; margin-bottom:14px}
.mod h3{font-size:16px; margin-bottom:6px}
.mod p{font-size:13px; color:var(--l-mut); margin:0}
@media(max-width:900px){ .mod-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:520px){ .mod-grid{grid-template-columns:1fr} }

/* ===== AI+ ERP case band (dark, photo bg) ===== */
.case-band{position:relative; padding:82px 0; color:#fff; overflow:hidden; background:#0a1430}
.case-band .case-bg{position:absolute; inset:0; background-size:cover; background-position:center right}
.case-band::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,16,40,.94) 0%,rgba(8,16,40,.74) 52%,rgba(8,16,40,.42) 100%)}
.case-inner{position:relative; z-index:2; max-width:630px}
.case-inner h2{color:#fff; font-size:clamp(24px,2.8vw,34px); margin:10px 0 14px}
.case-inner p{color:#cdd9ef; font-size:15.5px; margin:0 0 6px}

/* ===== AI Suite hero — full-bleed banner image + text overlay (like ai_suite_cn) ===== */
.xc-hero{position:relative; min-height:440px; display:flex; align-items:center; background:#dfe7f3 url('../img/aierp/hero.webp') center right / cover no-repeat; overflow:hidden}
.xc-hero::before{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(225,232,245,.92) 0%,rgba(225,232,245,.55) 34%,rgba(225,232,245,0) 58%)}
.xc-hero .wrap{position:relative; z-index:2; width:100%; padding:40px 24px}
.xc-hero .xc-label{font-size:clamp(20px,2vw,30px); font-weight:400; color:#0c0e12; line-height:1.4}
.xc-hero h1{font-size:clamp(28px,3.4vw,44px); font-weight:400; color:#0c0e12; margin:6px 0 14px; max-width:18ch; line-height:1.22}
.xc-hero p{font-size:clamp(15px,1.45vw,18px); color:#1c2230; max-width:50ch; margin:0 0 26px; line-height:1.5}
@media(max-width:760px){ .xc-hero{min-height:auto; padding:50px 0; background-position:74% center} .xc-hero::before{background:linear-gradient(90deg,rgba(225,232,245,.94),rgba(225,232,245,.55))} .xc-hero h1,.xc-hero p{max-width:none} }

/* ===== Why-choose (arch diagram + features + laurel badges) ===== */
.whyx-intro{max-width:none; margin:13px auto 0; text-align:center; color:#575d6c; font-size:14px; line-height:1.5}
.whyx-box{display:flex; align-items:center; justify-content:space-between; gap:30px; margin-top:24px}
.whyx-gl{flex:0 0 60%; min-width:0} .whyx-gl img{width:100%; display:block}
.whyx-gr{flex:0 0 37%; display:flex; flex-direction:column; gap:30px}
.whyx-gr .item h3{font-size:20px; font-weight:700; color:#333; margin-bottom:8px}
.whyx-gr .item p{font-size:14px; color:#575d6c; margin:0; line-height:1.5}
.whyx-badges{display:flex; justify-content:center; gap:clamp(40px,8vw,110px); margin-top:40px; flex-wrap:wrap}
.whyx-badge{display:flex; align-items:flex-start; gap:8px}
.whyx-badge>img{height:62px; width:auto}
.whyx-badge .txt{text-align:center; padding-top:6px; max-width:160px}
.whyx-badge .txt h3{font-size:20px; font-weight:700; color:#0084F6; margin:0 0 9px; line-height:1.3}
.whyx-badge .txt p{font-size:12.5px; color:#8a909c; margin:0; line-height:1.6}
@media(max-width:860px){ .whyx-box{flex-direction:column; gap:30px} .whyx-gl,.whyx-gr{flex:none; width:100%} .whyx-badges{gap:24px 40px} }

/* ===== Value-chain cards (real icons, hover-reveal button) ===== */
.vc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px 18px}
.vc-card{position:relative; overflow:hidden; background:#fff; border:0; border-radius:8px; padding:18px 24px 26px; min-height:205px; transition:box-shadow .4s var(--ease)}
.vc-card:hover{box-shadow:0 12px 30px -12px rgba(20,40,90,.2)}
/* icon fades out on hover (real .hometh .g_svg) */
.vc-card .vc-ico{position:relative; top:0; width:34px; height:34px; margin-bottom:20px; opacity:1; transition:.4s var(--ease)}
.vc-card .vc-ico img{width:34px; height:34px; object-fit:contain; display:block}
/* text block slides up by icon height+margin (34+20=54px); real moves -0.82rem */
.vc-card .vc-txt{position:relative; top:0; transition:.4s var(--ease)}
.vc-card .vc-txt h3{font-size:22px; font-weight:700; color:#333; margin-bottom:10px; transition:.4s var(--ease)}
.vc-card .vc-txt p{font-size:14px; color:#575d6c; margin:0; line-height:1.5}
/* button anchored just below the text (top:100%), revealed on hover (real .g_a) */
.vc-card .vc-btn{position:absolute; top:100%; left:0; margin-top:16px; display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:#fff; background:linear-gradient(135deg,#0068DD,#00AEEE); padding:9px 18px; border-radius:5px; opacity:0; overflow:hidden; transition:.4s var(--ease)}
.vc-card:hover .vc-ico{opacity:0}
.vc-card:hover .vc-txt{top:-54px}
.vc-card:hover .vc-btn{opacity:1}
@media(max-width:900px){ .vc-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:520px){ .vc-grid{grid-template-columns:1fr} }

/* ===== AI+ ERP page scope (theme-blue): blue buttons + tighter section rhythm ===== */
.theme-blue .btn-primary{background:var(--blue); box-shadow:var(--btn-glow)}
.theme-blue .btn-primary:hover{background:#1a72d3; box-shadow:0 12px 26px rgba(33,131,233,.4)}
.theme-blue .hl{background:linear-gradient(92deg,#0068DD,#00AEEE); -webkit-background-clip:text; background-clip:text; color:transparent}
.theme-blue .sec{padding:54px 0}
.theme-blue #modules{background:#f4f8ff}
.theme-blue .public-title h2,.theme-blue .sec-head h2{color:#252b3a}

/* ===== Swiper — hero banner + insights slider ===== */
.hero-swiper{width:100%}
.hero-swiper .swiper-slide{height:auto}
.hero-visual img{width:100%; border-radius:20px; box-shadow:var(--shadow); display:block}
.hero-pagination{position:static !important; margin-top:24px; text-align:center}
.insights-swiper{position:relative; padding:8px 2px 50px}
.insights-swiper .swiper-slide{height:auto; display:flex}
.insights-swiper .pcard{width:100%}
.swiper-pagination-bullet{background:#9aa6c4; opacity:.5; width:9px; height:9px; transition:.25s var(--ease)}
.swiper-pagination-bullet-active{background:var(--blue); opacity:1; width:26px; border-radius:5px}
.insights-swiper .swiper-button-prev,.insights-swiper .swiper-button-next{color:var(--blue); width:46px; height:46px; margin-top:-30px; background:#fff; border:1px solid var(--l-line); border-radius:50%; box-shadow:var(--shadow); transition:transform .2s, border-color .2s}
.insights-swiper .swiper-button-prev:hover,.insights-swiper .swiper-button-next:hover{border-color:var(--blue); transform:scale(1.06)}
.insights-swiper .swiper-button-prev:after,.insights-swiper .swiper-button-next:after{font-size:15px; font-weight:800}
.insights-pagination{bottom:8px !important}
/* graceful fallback if Swiper hasn't initialised / CDN blocked */
.hero-swiper:not(.swiper-initialized) .swiper-slide:not(:first-child){display:none}
.insights-swiper:not(.swiper-initialized) .swiper-wrapper{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.insights-swiper:not(.swiper-initialized) .swiper-slide:nth-child(n+4){display:none}
.insights-swiper:not(.swiper-initialized) .swiper-button-prev,.insights-swiper:not(.swiper-initialized) .swiper-button-next{display:none}
@media(max-width:760px){ .insights-swiper .swiper-button-prev,.insights-swiper .swiper-button-next{display:none} .insights-swiper:not(.swiper-initialized) .swiper-wrapper{grid-template-columns:1fr} }

/* ===== page banner hero (About / Partners) ===== */
.banner{position:relative; min-height:300px; display:flex; align-items:center; color:#fff; overflow:hidden; background:linear-gradient(120deg,#0c1838,#1a3a7a)}
.banner .bg{position:absolute; inset:0; background-size:cover; background-position:center}
.banner::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,18,42,.78),rgba(8,18,42,.25))}
.banner .wrap{position:relative; z-index:2; width:100%; padding:54px 24px}
.banner h1{font-size:clamp(28px,3.6vw,46px); color:#fff; max-width:18ch}
.banner p{color:#d6e2f8; max-width:62ch; margin:16px 0 0; font-size:16px}
.banner.light{background:#eef2fb; color:var(--l-head)} .banner.light::after{display:none} .banner.light h1{color:var(--l-head)} .banner.light p{color:var(--l-mut)}

/* generic equal grids */
.grid4{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.grid2{display:grid; grid-template-columns:repeat(2,1fr); gap:22px}
.card{background:var(--l-bg2); border:1px solid var(--l-line); border-radius:var(--r); padding:24px; transition:transform .3s var(--ease), box-shadow .3s}
.card:hover{transform:translateY(-4px); box-shadow:var(--shadow)}
.card h3{font-size:17px; margin-bottom:9px} .card p{font-size:13.5px; color:var(--l-mut); margin:0}
.card .ci{width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,rgba(123,108,255,.14),rgba(47,134,240,.14)); display:grid;place-items:center; color:var(--blue); margin-bottom:14px; font-size:19px}

/* partner-type cards (image top) */
.pcard{background:#fff; border:1px solid var(--l-line); border-radius:var(--r); overflow:hidden; transition:transform .3s var(--ease), box-shadow .3s}
.pcard:hover{transform:translateY(-4px); box-shadow:var(--shadow)}
.pcard .pc-img{height:180px; background-size:cover; background-position:center; background-color:#dfe7f5}
.pcard .pc-body{padding:22px}
.pcard .ab{font-size:12px; font-weight:800; color:var(--blue); letter-spacing:.05em}
.pcard h3{font-size:18px; margin:4px 0 10px} .pcard p{font-size:13.5px; color:var(--l-mut); margin:0}

/* partner-recruitment: navy-on-light banner + step cards */
.banner.rec{background:#eef1f6; color:#031543; min-height:380px}
.banner.rec::after{background:linear-gradient(90deg,rgba(238,241,246,.96) 0%,rgba(238,241,246,.6) 40%,rgba(238,241,246,0) 64%)}
.banner.rec h1{color:#031543; font-size:clamp(26px,2.9vw,37px); font-weight:700; line-height:1.2; max-width:600px}
.banner.rec p{color:#3a4458}
.step-card{position:relative; background:#fff; border:0; border-radius:10px; box-shadow:0 8px 24px rgba(149,157,165,.2); padding:0 0 8px; overflow:hidden; transition:transform .3s var(--ease), box-shadow .3s}
.step-card:hover{transform:translateY(-4px); box-shadow:0 14px 30px rgba(149,157,165,.34)}
.step-badge{display:inline-block; margin-top:15px; background:#45c9ff; color:#fff; font-size:16px; font-weight:700; height:34px; line-height:34px; padding:0 20px; border-radius:0 20px 20px 0}
.step-body{padding:14px 26px 20px}
.step-card h3{font-size:20px; font-weight:700; color:#031543; margin:0 0 10px}
.step-card p{font-size:14px; color:var(--l-mut); margin:0; line-height:1.6}
.feat-ico{width:46px; height:46px; margin-bottom:14px} .feat-ico img{width:100%; height:100%; object-fit:contain; display:block}
/* about: photo hero band + executive cards */
.hero-photo{height:clamp(220px,24vw,340px); background-size:cover; background-position:center; background-color:#0c1838}
/* sticky section sub-menu (About pages) */
.submenu{position:sticky; top:63px; z-index:55; background:#fff; border-bottom:1px solid var(--l-line)}
.submenu-in{display:flex; align-items:center; height:60px; overflow-x:auto}
.submenu-label{font-weight:800; color:var(--l-head); font-size:16px; white-space:nowrap; padding-right:22px; margin-right:22px; border-right:1px solid var(--l-line)}
.submenu-links{display:flex; gap:30px}
.submenu-links a{font-size:15px; color:#33415f; font-weight:600; padding:6px 0; white-space:nowrap; position:relative; transition:color .2s}
.submenu-links a::after{content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--blue); transition:width .25s var(--ease)}
.submenu-links a:hover,.submenu-links a.active{color:var(--blue)} .submenu-links a.active::after,.submenu-links a:hover::after{width:100%}
[id^="section"]{scroll-margin-top:130px}
/* awards image wall + story image timeline */
.award-wall{display:grid; grid-template-columns:repeat(4,1fr); gap:26px 20px; align-items:center; justify-items:center}
.award-wall img{width:100%; max-width:240px; height:auto; display:block}
.story-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:30px 26px; margin-top:8px}
.story-card .sc-img{height:172px; border-radius:12px; background:#e9eef6 center/cover; margin-bottom:14px}
.story-card .yr{display:block; font-size:26px; font-weight:800; color:var(--l-head); line-height:1; margin-bottom:8px}
.story-card p{font-size:13.5px; color:var(--l-mut); margin:0; line-height:1.6}
@media(max-width:900px){ .award-wall{grid-template-columns:repeat(2,1fr)} .story-grid{grid-template-columns:1fr} }

/* ===== INTERACTIONS ===== */
/* executive bio overlay (real .grid-ov: scale-in springy on hover) */
.exec-card{position:relative}
.exec-card .grid-ov{position:absolute; inset:0; background:#fff; z-index:6; opacity:0; visibility:hidden; transform:scale(.5); padding:22px 20px; overflow-y:auto; text-align:left;
  transition:opacity .5s ease, visibility .5s ease, transform .5s cubic-bezier(0.6,-0.28,0.735,0.045)}
.exec-card:hover .grid-ov{opacity:1; visibility:visible; transform:scale(1);
  transition:opacity .5s ease, visibility .5s ease, transform .5s cubic-bezier(0.175,0.885,0.32,1.275)}
.exec-card .grid-ov h3{font-size:17px; color:var(--l-head); margin:0 0 2px}
.exec-card .grid-ov .role{display:block; font-size:12.5px; color:var(--blue); font-weight:600; margin:0 0 12px}
.exec-card .grid-ov p{font-size:11.5px; color:var(--l-mut); line-height:1.55; margin:0 0 9px}
.exec-card .grid-ov::-webkit-scrollbar{width:5px} .exec-card .grid-ov::-webkit-scrollbar-thumb{background:#cdd6e6; border-radius:3px}

/* image zoom on hover (real .img-effect) */
.img-effect{overflow:hidden}
.img-effect .pc-img,.img-effect img,.img-effect .prod-media img{transition:transform .6s ease}
.img-effect:hover .pc-img,.img-effect:hover img,.img-effect:hover .prod-media img{transform:scale(1.1)}

/* generic carousel (Slick-equivalent) */
.carousel{position:relative}
.car-viewport{overflow:hidden}
.car-track{display:flex; transition:transform 1s ease; will-change:transform}
.car-slide{flex:0 0 auto; box-sizing:border-box; padding:6px 11px}
.award-car .car-slide img{max-width:230px; width:100%; height:auto; margin:0 auto; display:block}
.news-link{display:inline-block; margin-top:14px; font-size:14px; font-weight:600; color:var(--blue)}
/* ESG ratings static wall + reports grid with show-more */
.rating-wall{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:24px 26px; margin-top:16px; max-width:1140px; margin-inline:auto}
.rating-wall img{width:clamp(250px,23vw,344px); height:auto; display:block}
.rep-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px}
.rep-card{display:flex; flex-direction:column; align-items:center; text-align:center; background:#fff; border:1px solid var(--l-line); border-radius:var(--r); padding:38px 24px 30px; transition:transform .3s var(--ease), box-shadow .3s}
.rep-card:hover{transform:translateY(-4px); box-shadow:var(--shadow)}
.rep-card .rep-thumb{height:120px; margin-bottom:22px; display:flex; align-items:center; justify-content:center}
.rep-card .rep-thumb img{height:100%; width:auto; object-fit:contain; box-shadow:0 6px 18px rgba(20,40,90,.16)}
.rep-card h3{font-size:14.5px; font-weight:700; color:var(--l-head); margin:0; text-transform:uppercase; letter-spacing:.02em; line-height:1.45}
.rep-hide{display:none}
.rep-grid.expanded .rep-hide{display:flex}
.rep-more{text-align:center; margin-top:34px}
.rep-more-btn{display:inline-flex; align-items:center; gap:12px; background:none; border:0; cursor:pointer; font-family:inherit; font-size:15px; font-weight:600; color:var(--blue)}
.rep-more-btn .chev{width:38px; height:38px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-size:13px; transition:transform .3s}
.rep-more.open .rep-more-btn .chev{transform:rotate(180deg)}
@media(max-width:820px){ .rep-grid{grid-template-columns:repeat(2,1fr)} } @media(max-width:520px){ .rep-grid{grid-template-columns:1fr} }
/* ESG sub-page (Environment/Social/Governance/ESG Policies tabs) */
.esg-tabs{display:grid; grid-template-columns:260px 1fr; gap:46px; align-items:start}
.esg-tabnav{position:sticky; top:88px; background:#fff; border:1px solid var(--l-line); border-radius:var(--r); box-shadow:var(--shadow); overflow:hidden}
.esg-tabnav button{display:block; width:100%; text-align:left; background:none; font-family:inherit; padding:18px 24px; font-size:16px; font-weight:700; color:var(--l-head); border:0; border-bottom:1px solid var(--l-line); border-left:3px solid transparent; cursor:pointer; transition:color .2s, border-color .2s, background .2s}
.esg-tabnav button:last-child{border-bottom:0}
.esg-tabnav button:hover{color:var(--blue)}
.esg-tabnav button.active{color:var(--blue); border-left-color:var(--blue); background:linear-gradient(90deg,rgba(0,134,241,.06),transparent)}
.esg-pane{display:none} .esg-pane.active{display:block; animation:fadeIn .35s ease}
@keyframes fadeIn{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}
.esg-pane h2{font-size:clamp(28px,3.4vw,40px); color:var(--l-head); margin:0 0 22px}
.esg-pane h3{font-size:22px; color:var(--l-head); margin:32px 0 14px}
.esg-pane h4{font-size:16.5px; color:var(--l-head); margin:22px 0 8px}
.esg-pane p{font-size:15px; color:var(--l-mut); line-height:1.75; margin:0 0 12px}
.esg-pane p b{color:var(--l-head)}
.esg-pane ul{margin:0 0 14px; padding-left:20px} .esg-pane li{font-size:15px; color:var(--l-mut); line-height:1.7; margin-bottom:7px}
.esg-pane .tlink{display:inline-flex; align-items:center; gap:7px; color:var(--blue); font-weight:600; font-size:15px; margin:2px 0 8px}
.esg-imgs{display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin:18px 0}
.esg-imgs img{width:100%; border-radius:12px; display:block}
.esg-table{width:100%; border-collapse:collapse; margin:16px 0; font-size:13.5px}
.esg-table th,.esg-table td{border:1px solid var(--l-line); padding:12px 14px; text-align:left; vertical-align:top; color:var(--l-mut); line-height:1.6}
.esg-table th{background:#f4f8ff; color:var(--l-head); font-weight:700}
.esg-table ul{margin:0; padding-left:18px}
.policy-group{margin-bottom:28px}
.policy-list{display:flex; flex-direction:column; gap:10px}
.policy-list a{display:flex; align-items:center; gap:11px; padding:15px 18px; background:#fff; border:1px solid var(--l-line); border-radius:10px; color:var(--l-head); font-weight:600; font-size:14.5px; transition:border-color .2s, box-shadow .2s, color .2s}
.policy-list a:hover{border-color:var(--blue); color:var(--blue); box-shadow:var(--shadow)}
.policy-list a::before{content:"\1F4C4"; font-size:17px}
@media(max-width:820px){ .esg-tabs{grid-template-columns:1fr} .esg-tabnav{position:static; display:flex; overflow-x:auto} .esg-tabnav button{border-bottom:0; border-left:0; border-bottom:3px solid transparent; white-space:nowrap} .esg-tabnav button.active{border-left:0; border-bottom-color:var(--blue)} .esg-imgs{grid-template-columns:1fr} }
/* trust security-lifecycle phase columns (header tab + bubble card) */
.lc-title{text-align:center; font-size:clamp(22px,2.6vw,30px); color:var(--l-head); font-weight:800; margin:46px 0 8px}
.phase{padding:0 9px}
/* equal-height phase cards (scoped to the trust lifecycle sliders) */
.carousel.lifecycle .car-track{align-items:stretch}
.carousel.lifecycle .car-slide{display:flex}
.carousel.lifecycle .phase{flex:1; display:flex; flex-direction:column}
.carousel.lifecycle .phase-card{flex:1 1 auto}
.phase-head{background:#fff; border-radius:10px; box-shadow:0 8px 22px rgba(20,40,90,.08); padding:18px 14px; text-align:center; font-weight:700; color:var(--l-head); font-size:17px}
.phase-card{position:relative; background:#fff; border-radius:10px; box-shadow:0 8px 22px rgba(20,40,90,.08); padding:24px 22px; margin-top:24px}
.phase-card::before{content:""; position:absolute; top:-8px; left:50%; transform:translateX(-50%) rotate(45deg); width:17px; height:17px; background:#fff}
.phase-card ul{margin:0; padding:0; list-style:none}
.phase-card li{position:relative; padding-left:18px; font-size:14px; color:var(--l-mut); line-height:1.5; margin-bottom:13px}
.phase-card li::before{content:""; position:absolute; left:0; top:7px; width:6px; height:6px; border-radius:50%; background:var(--blue)}
.phase-card li:last-child{margin-bottom:0}
.car-slide>.card,.car-slide>.pcard{height:100%; margin:0}
.car-arrow{position:absolute; top:50%; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; background:#fff; box-shadow:0 8px 24px rgba(20,40,90,.16); border:1px solid var(--l-line); color:var(--blue); font-size:18px; display:flex; align-items:center; justify-content:center; cursor:pointer; opacity:.5; transition:opacity .2s linear; z-index:5}
.car-arrow:hover{opacity:1}
.car-arrow.disabled{opacity:0; visibility:hidden}
.car-arrow.prev{left:-6px} .car-arrow.next{right:-6px}
.carousel.arrows-outside .car-arrow.prev{left:-50px} .carousel.arrows-outside .car-arrow.next{right:-50px}
@media(max-width:1100px){ .carousel.arrows-outside .car-arrow.prev{left:-6px} .carousel.arrows-outside .car-arrow.next{right:-6px} }

/* horizontal history timeline — exact clone of real .story-slider */
.story-wrap{position:relative; margin-top:18px; overflow:hidden}
.story-wrap::before{content:""; position:absolute; left:0; right:0; top:250px; height:1px; background:#999; z-index:0}
.story-track{display:flex; overflow-x:auto; cursor:grab; scrollbar-width:none; -ms-overflow-style:none; position:relative; z-index:1}
.story-track::-webkit-scrollbar{display:none}
.story-track.dragging{cursor:grabbing}
.story-box{flex:0 0 460px; position:relative; display:flex; flex-direction:column; height:500px; margin-bottom:170px; padding:0 18px}
.story-box::before{content:""; width:15px; height:15px; background:var(--blue); border-radius:50%; position:absolute; left:18px; top:250px; margin-top:-7px; z-index:2}
.story-box .story-image{height:250px; display:flex; align-items:flex-end; padding-bottom:30px}
.story-box .story-image img{max-width:86%; max-height:100%; border-radius:10px; object-fit:cover; display:block}
.story-box .story-info{height:250px; display:flex; align-items:flex-start; padding-top:30px}
.story-box .story-info p{font-size:15px; color:var(--l-mut); margin:0; line-height:1.6; max-width:88%}
.story-box .story-year{position:absolute; left:18px; bottom:-130px; color:#999; font-size:clamp(38px,3.4vw,50px); font-weight:300; line-height:1; padding-bottom:14px}
.story-box .story-year::before{content:""; position:absolute; left:0; bottom:0; height:6px; width:0; background:var(--blue); border-radius:5px; transition:width .35s ease}
.story-box.active .story-year{color:#333} .story-box.active .story-year::before{width:64px}
.story-box.even{flex-direction:column-reverse}
.story-box.even .story-image{align-items:flex-start; padding-top:30px; padding-bottom:0}
.story-box.even .story-info{align-items:flex-end; padding-bottom:30px; padding-top:0}
.story-box.story-end{flex:0 0 320px; justify-content:center; align-items:flex-start; background:#f6f6f6; padding-left:50px}
.story-box.story-end .end{font-size:32px; font-weight:800; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1.2}
.story-progress{position:relative; height:3px; background:#e6e6e6; margin-top:-26px; border-radius:3px; z-index:3}
.story-progress span{position:absolute; left:0; top:0; height:100%; width:18%; background:var(--blue); border-radius:3px}
@media(max-width:760px){ .story-wrap::before{display:none} .story-box{flex:0 0 84vw; height:auto; margin-bottom:30px; padding:0 12px} .story-box,.story-box.even{flex-direction:column} .story-box::before{display:none} .story-box .story-image,.story-box .story-info{height:auto; padding:0 0 12px} .story-box .story-year{position:static; margin:6px 0} .story-progress{margin-top:18px} }
.exec-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.exec-card{background:#fff; border:1px solid var(--l-line); border-radius:var(--r); overflow:hidden; transition:transform .3s var(--ease), box-shadow .3s}
.exec-card:hover{transform:translateY(-4px); box-shadow:var(--shadow)}
.exec-card .ph{aspect-ratio:1/1; background:#e9eef6 center/cover}
.exec-card .nm{padding:16px 18px 18px; border-top:3px solid var(--blue)}
.exec-card h3{font-size:18px; color:var(--l-head); margin:0 0 4px}
.exec-card p{font-size:13px; color:var(--l-mut); margin:0; line-height:1.5}
@media(max-width:820px){ .exec-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:520px){ .exec-grid{grid-template-columns:1fr} }
.sp-grid{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:22px 38px; margin-top:34px}
.sp-grid img{height:46px; width:auto; max-width:170px; object-fit:contain; opacity:.9; transition:opacity .2s, transform .2s}
.sp-grid img:hover{opacity:1; transform:scale(1.04)}
.pcard .pc-img.plain{background-color:#e9eef6}

/* fast facts */
.facts{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.fact{background:#fff; border:1px solid var(--l-line); border-radius:var(--r); padding:24px}
.fact b{font-size:30px; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; letter-spacing:-.02em}
.fact .lbl{font-weight:700; color:var(--l-head); margin-left:6px; font-size:15px}
.fact p{margin:12px 0 0; font-size:13.5px; color:var(--l-mut); border-top:1px solid var(--l-line); padding-top:12px}

/* awards */
.awards{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.award{text-align:center; padding:22px 14px; border:1px solid var(--l-line); border-radius:var(--r); background:#fff; transition:.3s}
.award:hover{box-shadow:var(--shadow); transform:translateY(-3px)}
.award .src{font-size:12px; color:var(--l-mut); font-weight:700}
.award .rk{font-size:24px; font-weight:800; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; margin:4px 0}
.award p{font-size:12.5px; color:var(--l-mut); margin:6px 0 0}
.award .laurel{color:#9bb0e8}

/* timeline (Our Story) */
.tline{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:30px; position:relative}
.tline::before{content:""; position:absolute; top:14px; left:6%; right:6%; height:2px; background:linear-gradient(90deg,var(--blue),#9b8cff)}
.tnode{position:relative; padding-top:40px}
.tnode::before{content:""; position:absolute; top:7px; left:0; width:16px;height:16px; border-radius:50%; background:#fff; border:4px solid var(--blue)}
.tnode .yr{font-size:30px; font-weight:800; color:var(--l-head); position:absolute; top:-2px; left:28px; line-height:1}
.tnode p{font-size:13.5px; color:var(--l-mut); margin:8px 0 0}

@media(max-width:900px){
  .grid4,.awards{grid-template-columns:repeat(2,1fr)} .facts,.grid3,.tline{grid-template-columns:1fr}
  .plineup{display:grid; grid-template-columns:repeat(2,1fr)} .prodcard{flex:none}
  .tline::before{display:none} .tnode{padding-top:34px}
  .as-box{flex-wrap:wrap} .quoteband{padding:38px 24px}
}
@media(max-width:560px){ .plineup{grid-template-columns:1fr} }

/* footer — LIGHT, matching kingdeeai.com.my */
footer.ft{background:#f4f6fb; color:#5a6172; padding:58px 0 26px; border-top:1px solid var(--l-line)}
.ft-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px}
.ft h4{font-size:15px; color:var(--l-head); margin-bottom:14px; font-weight:700}
.ft a{display:block; color:#5a6172; font-size:14px; padding:6px 0; transition:.2s} .ft a:hover{color:var(--blue)}
.ft .ft-brand img{height:30px; width:auto; margin-bottom:18px}
.ft-contact{display:inline-flex; align-items:center; gap:9px; font-weight:700; color:var(--l-head); font-size:14.5px; margin-bottom:16px}
.ft-social{display:flex; gap:10px}
.ft-social a{width:40px; height:40px; border-radius:50%; border:1px solid var(--l-line); display:grid; place-items:center; color:#6b7280; padding:0; background:#fff}
.ft-social a:hover{border-color:var(--blue); color:var(--blue)}
.ft-bot{border-top:1px solid var(--l-line); margin-top:40px; padding-top:22px; text-align:center; font-size:12.5px; color:#8a909c}

/* reveal on scroll — fadeInUp (animate.css feel) + WOW-style 0.2s stagger */
.reveal{opacity:0; transform:translateY(34px); transition:opacity .8s var(--ease), transform .8s var(--ease)}
.reveal.in{opacity:1; transform:none}
/* staggered grids: children fade up in sequence */
.stagger > *{opacity:0; transform:translateY(30px); transition:opacity .7s var(--ease), transform .7s var(--ease)}
.stagger.in > *{opacity:1; transform:none}
.stagger.in > *:nth-child(1){transition-delay:.00s}
.stagger.in > *:nth-child(2){transition-delay:.10s}
.stagger.in > *:nth-child(3){transition-delay:.20s}
.stagger.in > *:nth-child(4){transition-delay:.30s}
.stagger.in > *:nth-child(5){transition-delay:.40s}
.stagger.in > *:nth-child(6){transition-delay:.50s}
.stagger.in > *:nth-child(7){transition-delay:.60s}
.stagger.in > *:nth-child(8){transition-delay:.70s}
@media(prefers-reduced-motion:reduce){ .reveal,.stagger>*{transition:none!important; opacity:1!important; transform:none!important} }
@keyframes fadeUp{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}

/* ---------- responsive ---------- */
@media(max-width:960px){
  .hero-grid,.prod,.prod.rev .prod-media{grid-template-columns:1fr; order:0}
  .stats{grid-template-columns:repeat(2,1fr)} .modes{grid-template-columns:1fr}
  .ind-grid{grid-template-columns:repeat(2,1fr)} .ptier{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr 1fr} .partners{grid-template-columns:repeat(3,1fr)}
  .cta-band{padding:40px 26px}
}
@media(max-width:680px){
  .nav-links,.nav-cta .btn{display:none}
  .nav-toggle{display:flex}
  .nav-links.open{display:flex; position:absolute; top:72px; left:0; right:0; flex-direction:column; background:#fff; padding:16px 24px; gap:6px; border-bottom:1px solid var(--l-line); box-shadow:var(--shadow); max-height:80vh; overflow-y:auto}
  .nav-item{display:block; height:auto} .has-mega::after{display:none}
  .mega{position:static; transform:none; opacity:1; visibility:visible; box-shadow:none; border:0; padding:6px 0 8px; grid-template-columns:1fr 1fr; gap:14px; min-width:0}
  .mega-col h5{margin-bottom:8px; padding-bottom:7px} .mega a{padding:5px 0; font-size:13px}
  .ind-grid,.stats{grid-template-columns:1fr} .ft-grid{grid-template-columns:1fr}
  .hero-meta{gap:18px}
  .sec{padding:60px 0}
}
.tc-list{list-style:none; margin:0; padding:0}
.tc-list li{position:relative; padding-left:18px; font-size:14px; color:var(--l-mut); line-height:1.5; margin-bottom:9px}
.tc-list li::before{content:""; position:absolute; left:0; top:7px; width:6px; height:6px; border-radius:50%; background:var(--blue)}
.tc-list li:last-child{margin-bottom:0}
/* trust lifecycle: connector line + blue active/hover tab */
.phase-head{position:relative; transition:background .18s ease, color .18s ease}
.phase-head::before{content:""; position:absolute; top:50%; left:-9px; right:-9px; height:1px; background:#dfe3e8; z-index:-1}
.phase-head:hover{background:var(--blue); color:#fff; cursor:pointer}
/* trust asset cards: icon+title inline, divider, link list w/ external-link icon */
.tc-card{background:#fff; border-radius:16px; box-shadow:0 10px 30px rgba(20,40,90,.06); text-align:left; display:flex; flex-direction:column; overflow:hidden}
.tc-card-head{display:flex; align-items:center; gap:16px; padding:30px 30px 22px; border-bottom:1px solid #ececec}
.tc-card-head .feat-ico{margin:0; width:auto; height:auto; min-height:0; background:none; box-shadow:none; padding:0; border-radius:0}
.tc-card-head .feat-ico img{width:46px; height:46px; object-fit:contain}
.tc-card-head h3{margin:0; font-size:22px; color:var(--l-head)}
.tc-card-body{padding:24px 30px 32px; display:flex; flex-direction:column; gap:16px}
.tc-link{display:inline-flex; align-items:center; gap:7px; color:var(--l-head); font-size:15px; text-decoration:none; transition:color .15s}
.tc-link:hover{color:var(--blue)}
.tc-link .ext{width:14px; height:14px; flex:none; background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%230086F1' viewBox='0 0 16 16'><path d='M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5z'/><path d='M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z'/></svg>") no-repeat center/contain}
/* trust report: 2-col, bordered card, grey italic note */
.report-row{display:grid; grid-template-columns:5fr 7fr; gap:44px; align-items:center; max-width:1120px; margin:0 auto}
.report-left h2{margin:0 0 18px; color:var(--l-head)}
.report-card{border:1px solid #e6e6e6; border-radius:16px; overflow:hidden}
.report-email{display:flex; align-items:center; gap:12px; padding:24px 40px; border-bottom:1px solid #ececec; font-size:22px; font-weight:700; color:var(--l-head)}
.report-email a{color:var(--blue); text-decoration:none; font-weight:700}
.report-body{padding:24px 40px 38px}
.report-body p{margin:0 0 20px; font-size:18px; font-weight:600; color:var(--l-head); line-height:1.55}
.report-note{background:#f5f5f5; border-radius:15px; padding:18px 20px}
.report-note em{font-style:italic; color:var(--l-mut); font-size:15px; line-height:1.7}
@media(max-width:860px){ .report-row{grid-template-columns:1fr; gap:26px} .report-email{padding:20px 24px; font-size:19px} .report-body{padding:20px 24px 28px} }
/* trust diagrams: plain image, no frame / no background */
.prod-media.plain{background:none; border:0; box-shadow:none; aspect-ratio:auto; overflow:visible; border-radius:0}
.prod-media.plain img{width:100%; height:auto; object-fit:contain; padding:0}
/* ============ PRODUCT TEMPLATE (AI+ERP pages) ============ */
.pt-hero{position:relative; min-height:480px; display:flex; align-items:center; background:#e9f0fa; overflow:hidden}
.pt-hero .bg{position:absolute; inset:0; background-size:cover; background-position:right center}
.pt-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,#eaf1fb 20%,rgba(234,241,251,.55) 46%,rgba(234,241,251,0) 68%)}
.pt-hero .wrap{position:relative; z-index:2; width:100%}
.pt-hero h1{font-size:clamp(30px,3.5vw,44px); color:var(--l-head); line-height:1.18; margin:0; max-width:13ch}
.pt-hero p{font-size:18px; color:#4a5568; max-width:36ch; margin:18px 0 26px; line-height:1.55}
/* section heading shared */
.pt-h{text-align:center; font-size:clamp(24px,2.8vw,34px); color:var(--l-head); font-weight:800; margin:0 auto 14px; max-width:32ch; text-wrap:balance}
.pt-sub{text-align:center; color:var(--l-mut); max-width:60ch; margin:0 auto 46px; font-size:16px; line-height:1.6}
/* feature 6-card grid */
.pt-feat-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px}
.pt-feat-card{background:#fff; border:1px solid #eef0f4; border-radius:14px; padding:30px 34px; transition:box-shadow .22s,transform .22s}
.pt-feat-card:hover{box-shadow:0 16px 40px rgba(20,40,90,.09); transform:translateY(-3px)}
.pt-feat-card h3{font-size:20px; color:var(--l-head); margin:0 0 12px}
.pt-feat-card p{font-size:15px; color:var(--l-mut); margin:0; line-height:1.65}
/* section2 tabs */
.pt-tabnav{display:flex; flex-wrap:wrap; justify-content:center; gap:4px 24px; border-bottom:1px solid #e6e9ef; margin:0 auto 42px; max-width:1180px}
.pt-tabnav button{background:none; border:0; padding:14px 2px; font-size:15px; color:var(--l-mut); cursor:pointer; position:relative; font-weight:500; white-space:nowrap}
.pt-tabnav button.active{color:var(--blue); font-weight:600}
.pt-tabnav button.active::after{content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--blue)}
.pt-tab-pane{display:none; grid-template-columns:1.05fr 1fr; gap:54px; align-items:center}
.pt-tab-pane.active{display:grid}
.pt-tab-media img{width:100%; height:auto; display:block}
.pt-tab-copy h3{font-size:clamp(20px,1.9vw,26px); color:var(--l-head); margin:0 0 24px; line-height:1.35}
.pt-tab-li{margin-bottom:18px; font-size:15px; line-height:1.6}
.pt-tab-li b{color:var(--l-head); font-weight:700}
.pt-tab-li span{color:var(--l-mut)}
.pt-tab-copy .btn{margin-top:6px}
/* section3 dark customer case */
.pt-case{position:relative; min-height:380px; padding:56px 0; display:flex; align-items:center; color:#fff; background:#0a2238; overflow:hidden}
.pt-case .bg{position:absolute; inset:0; background-size:cover; background-position:center right}
.pt-case::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,26,46,.94) 28%,rgba(8,26,46,.45) 64%,rgba(8,26,46,.15))}
.pt-case .wrap{position:relative; z-index:2; width:100%}
.pt-case .logo{height:40px; width:auto; margin-bottom:24px; filter:brightness(0) invert(1)}
.pt-case h2{font-size:clamp(22px,2.4vw,30px); color:#fff; max-width:20ch; margin:0 0 14px}
.pt-case p{color:#cfe0f2; max-width:44ch; margin:0 0 26px; line-height:1.6}
.btn-outline-light{display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(255,255,255,.6); color:#fff; padding:11px 26px; border-radius:30px; text-decoration:none; font-weight:600; transition:background .2s}
.btn-outline-light:hover{background:rgba(255,255,255,.14)}
/* section4 news cards */
.pt-news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.pt-news-card{background:#fff; border:1px solid #eef0f4; border-radius:14px; overflow:hidden; transition:box-shadow .22s,transform .22s}
.pt-news-card:hover{box-shadow:0 16px 40px rgba(20,40,90,.09); transform:translateY(-3px)}
.pt-news-thumb{aspect-ratio:16/10; overflow:hidden}
.pt-news-thumb img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease}
.pt-news-card:hover .pt-news-thumb img{transform:scale(1.06)}
.pt-news-card .body{padding:22px 24px 26px}
.pt-news-card h3{font-size:16px; color:var(--l-head); line-height:1.5; margin:0 0 18px; min-height:72px; font-weight:600}
.pt-news-card .more{color:var(--blue); font-size:14px; font-weight:600; text-decoration:none}
/* section5 analyst awards */
.pt-awards{display:grid; grid-template-columns:repeat(3,1fr); gap:36px; text-align:center}
.pt-award img{height:92px; width:auto; margin:0 auto 20px; display:block}
.pt-award h3{font-size:18px; color:var(--l-head); margin:0 auto 10px; max-width:26ch; line-height:1.4}
.pt-award p{font-size:13px; color:var(--l-mut); margin:0; line-height:1.5}
@media(max-width:860px){
  .pt-feat-grid{grid-template-columns:1fr} .pt-news-grid{grid-template-columns:1fr} .pt-awards{grid-template-columns:1fr; gap:40px}
  .pt-tab-pane.active{grid-template-columns:1fr; gap:26px} .pt-tabnav{gap:24px; overflow-x:auto; justify-content:flex-start}
  .pt-hero::after{background:linear-gradient(180deg,rgba(234,241,251,.7),rgba(234,241,251,.95))}
}
.pt-tab-para{font-size:16px; color:var(--l-mut); line-height:1.7; margin:0 0 24px}
/* ===== INDUSTRY TEMPLATE additions ===== */
.pt-icard-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch}
.pt-icard{background:#fff; border:1px solid #eef0f4; border-radius:14px; padding:30px 30px; transition:box-shadow .22s,transform .22s}
.pt-icard:hover{box-shadow:0 16px 40px rgba(20,40,90,.09); transform:translateY(-3px)}
.pt-icard img{width:46px; height:46px; object-fit:contain; margin-bottom:18px; display:block}
.pt-icard h3{font-size:19px; color:var(--l-head); margin:0 0 10px}
.pt-icard p{font-size:14px; color:var(--l-mut); margin:0; line-height:1.65}
.pt-diagram{max-width:1040px; margin:0 auto; text-align:center}
.pt-diagram img{width:100%; height:auto; display:block}
@media(max-width:860px){ .pt-icard-grid{grid-template-columns:1fr} }
/* all-industries grid */
.pt-ind-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch}
.pt-ind-card{background:#fff; border:1px solid #eef0f4; border-radius:14px; padding:28px 30px; display:flex; flex-direction:column; transition:box-shadow .22s,transform .22s}
.pt-ind-card:hover{box-shadow:0 16px 40px rgba(20,40,90,.09); transform:translateY(-3px)}
.pt-ind-card img{width:40px; height:40px; object-fit:contain; margin-bottom:16px}
.pt-ind-card h3{font-size:19px; color:var(--l-head); margin:0 0 10px}
.pt-ind-card p{font-size:14px; color:var(--l-mut); margin:0 0 16px; line-height:1.6; flex:1}
.pt-ind-card .more{color:var(--blue); font-size:14px; font-weight:600; text-decoration:none; margin-top:auto}
@media(max-width:860px){ .pt-ind-grid{grid-template-columns:1fr} }

/* ============ BRANDING UNIFY → Kingdee design system ============ */
/* Display headings: large + LIGHT (300), like kingdee.com/cn — sizes harmonised */
.hero h1, .pt-hero h1, .banner h1, .banner.rec h1, .xc-hero h1{
  font-weight:300; letter-spacing:-.012em; line-height:1.15;
}
.hero h1, .pt-hero h1{ font-size:clamp(33px,4.4vw,54px) }
.banner h1{ font-size:clamp(30px,4vw,50px) }
.xc-hero h1{ font-size:clamp(30px,3.6vw,48px) }
.banner.rec h1{ font-size:clamp(28px,3.4vw,46px) }
/* Section titles stay BOLD (700), consistent */
.sec-head h2, .pt-h, .esg-pane h2, .lc-title, .finance__lead h2, .cap-row__title{ font-weight:700 }

/* ============ MOBILE-FIRST POLISH (responsive) ============ */
.mobile-cta{display:none}
@media(min-width:821px){ .mobile-cta{display:none !important} }
@media(max-width:820px){
  /* hamburger -> X */
  .nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle.active span:nth-child(2){opacity:0}
  .nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  /* drawer: full-height, roomy */
  .nav-links.open{top:72px; padding:14px 22px 26px; gap:0; max-height:calc(100dvh - 72px); box-shadow:0 24px 44px -12px rgba(20,30,70,.22)}
  .nav-links>a,.nav-item>a{padding:14px 0; font-size:16px; font-weight:600; border-bottom:1px solid var(--l-line)}
  .nav-links>a::after{display:none}
  /* mega -> single roomy column */
  .mega{grid-template-columns:1fr !important; gap:0; padding:2px 0 6px}
  .mega-col{margin-top:2px}
  .mega-col h5{margin:12px 0 2px; font-size:11px; border-bottom:0; padding-bottom:4px}
  .mega a{padding:12px 0 !important; font-size:15px !important; border-bottom:1px solid #f1f3f7}
  /* CTA at the bottom of the drawer */
  .nav-links.open .mobile-cta{display:inline-flex !important; width:100%; justify-content:center; margin-top:18px; padding:15px}
}
@media(max-width:768px){
  /* tighter vertical rhythm */
  .sec{padding:52px 0}
  .sec.tight{padding:40px 0}
  .wrap{padding:0 20px}
  .sec-head{margin-bottom:30px} .sec-head.center{margin-bottom:32px}
  .pt-sub{margin-bottom:34px}
  /* heroes: comfortable on phone */
  .pt-hero{min-height:auto; padding:46px 0 42px}
  .pt-hero p{font-size:16px; max-width:none}
  .banner{min-height:auto}
  /* full-width primary CTAs in heroes/cta */
  .pt-hero .btn,.banner .btn,.cta-band .btn,.pt-case .btn-outline-light{width:100%; justify-content:center}
  .hero-cta{flex-direction:column; align-items:stretch; width:100%}
  .hero-cta .btn{width:100%; justify-content:center}
  /* grids -> single column safety net */
  .stats{grid-template-columns:1fr 1fr; gap:12px}
  .pt-feat-grid,.pt-news-grid,.pt-awards,.pt-icard-grid,.pt-ind-grid,.grid3,.grid2{grid-template-columns:1fr}
  .pt-feat-card,.pt-icard,.pt-ind-card,.card,.tc-card{padding:24px 22px}
  /* tabs: stack content, scrollable nav */
  .pt-tab-pane.active{grid-template-columns:1fr; gap:22px}
  .pt-tabnav{gap:18px; overflow-x:auto; justify-content:flex-start; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; max-width:none}
  .pt-tabnav button{white-space:nowrap; flex:0 0 auto; font-size:15px}
  /* dark customer-case band */
  .pt-case{min-height:auto; padding:46px 0}
  .pt-case h2{font-size:clamp(22px,6.4vw,28px)}
  /* report 2-col -> stack */
  .report-row{grid-template-columns:1fr}
  /* wide diagrams: scroll instead of shrinking unreadably */
  .pt-diagram{overflow-x:auto; -webkit-overflow-scrolling:touch}
  .pt-diagram img{min-width:580px}
  /* sticky sub-nav: let it scroll */
  .submenu .submenu-in{overflow-x:auto; -webkit-overflow-scrolling:touch}
  /* footer */
  .ft-grid{grid-template-columns:1fr 1fr; gap:26px}
}
@media(max-width:440px){
  .stats{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr; gap:22px}
  .pt-tabnav{gap:14px}
}

/* fix: neutralise desktop hover-transform on the mobile mega menu (was shifting items off-screen on tap) */
@media(max-width:820px){
  .mega, .has-mega:hover .mega{ transform:none !important; left:auto !important; right:auto !important; }
}

/* ===== mobile: suggestion chips become a swipeable horizontal carousel ===== */
@media(max-width:768px){
  .as-chips,.aw-chips,.ai-chips{
    flex-wrap:nowrap; justify-content:flex-start;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
    padding:2px 20px 6px; margin-left:-20px; margin-right:-20px;
    scrollbar-width:none;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 26px),transparent 100%);
            mask-image:linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 26px),transparent 100%);
  }
  .as-chips::-webkit-scrollbar,.aw-chips::-webkit-scrollbar,.ai-chips::-webkit-scrollbar{display:none}
  .as-chip,.aw-chip,.ai-chip{flex:0 0 auto; scroll-snap-align:start; white-space:nowrap}
}
.acc.tiles .acc-card:hover{flex-grow:2}

/* ============ LINGEE INTERACTIVE APP DEMO ============ */
.lingee-app{max-width:1200px; margin:0 auto; background:#fff; border:1px solid var(--l-line); border-radius:18px; overflow:hidden; box-shadow:0 40px 90px -40px rgba(20,40,90,.3); display:grid; grid-template-columns:248px 1fr; height:660px; font-size:14px; color:var(--l-ink)}
.la-side{background:#f7f8fb; border-right:1px solid var(--l-line); display:flex; flex-direction:column; min-height:0}
.la-brand{display:flex; align-items:center; gap:9px; padding:18px 18px 10px; font-weight:800; color:var(--l-head); font-size:15px}
.la-brand .dots{display:inline-flex; gap:2px} .la-brand .dots i{width:6px;height:6px;border-radius:50%;display:block}
.la-tabs{display:flex; gap:6px; padding:6px 14px 12px; border-bottom:1px solid var(--l-line)}
.la-tab{flex:1; text-align:center; padding:7px 0; font-size:13px; color:var(--l-mut); border-radius:8px; cursor:pointer; font-weight:600; transition:.15s}
.la-tab.on{background:#e9eef6; color:var(--l-head)}
.la-menu{flex:1; overflow-y:auto; padding:8px 10px 10px; scrollbar-width:thin}
.la-grp{display:flex; align-items:center; gap:7px; padding:10px 8px 4px; color:var(--l-head); font-weight:700; font-size:13px}
.la-grp .ic{color:var(--blue)}
.la-sub{display:block; padding:9px 12px 9px 30px; color:var(--l-mut); border-radius:8px; cursor:pointer; font-size:13.5px; transition:.15s}
.la-sub:hover{background:#eef2f8}
.la-sub.on{background:#e7f0fd; color:var(--blue); font-weight:600}
.la-item{display:flex; align-items:center; gap:9px; padding:9px 9px; color:var(--l-ink); border-radius:8px; cursor:pointer; font-size:13.5px; transition:.15s}
.la-item:hover{background:#eef2f8} .la-item .ic{color:#8a93a6}
.la-hist{display:flex; justify-content:space-between; padding:14px 9px 4px; color:var(--l-mut); font-size:12px; font-weight:700}
.la-hist .more{color:var(--blue); cursor:pointer; font-weight:600}
.la-hi{padding:8px 9px; color:var(--l-mut); font-size:13px; border-radius:7px; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.la-hi:hover{background:#eef2f8; color:var(--l-ink)}
.la-user{border-top:1px solid var(--l-line); padding:12px 14px; display:flex; align-items:center; gap:10px}
.la-user .av{width:30px; height:30px; border-radius:50%; background:var(--g-cyan); flex:none}
.la-user b{font-size:13.5px; color:var(--l-head)} .la-user .sp{margin-left:auto; color:#9aa3b2}
.la-roles{display:flex; gap:6px; padding:10px 12px; border-top:1px solid var(--l-line); background:#f2f4f9}
.la-role{flex:1; text-align:center; font-size:11.5px; padding:7px 4px; border-radius:8px; cursor:pointer; color:var(--l-mut); border:1px solid transparent; line-height:1.3}
.la-role.on{background:#fff; border-color:#d7e2f2; color:var(--blue); font-weight:600; box-shadow:0 2px 6px rgba(20,40,90,.06)}
.la-role span{display:block; font-size:10px; color:#9aa3b2; font-weight:500}
.la-role.on span{color:#7da7dd}
/* main */
.la-main{display:flex; flex-direction:column; min-height:0; background:#fbfcfe}
.la-head{display:flex; align-items:center; gap:14px; padding:18px 26px; border-bottom:1px solid var(--l-line); flex:none}
.la-head .av{width:44px; height:44px; border-radius:50%; flex:none; background-size:cover; background-position:center; box-shadow:0 4px 12px rgba(20,40,90,.12)}
.la-head h4{margin:0; font-size:16px; color:var(--l-head); display:flex; align-items:center; gap:8px}
.la-head p{margin:3px 0 0; font-size:13px; color:var(--l-mut)}
.la-time{margin-left:auto; font-size:12px; color:var(--blue); background:#eef4fd; border:1px solid #d7e6fb; padding:7px 13px; border-radius:20px; white-space:nowrap}
.la-body{flex:1; overflow-y:auto; padding:22px 26px}
.la-pane{display:none}
.la-pane.on{display:block; animation:laFade .35s var(--ease)}
@keyframes laFade{from{opacity:0; transform:translateY(10px)} to{opacity:1; transform:none}}
.la-card{background:#fff; border:1px solid var(--l-line); border-radius:14px; padding:22px 24px; margin-bottom:18px}
.la-card-h{display:flex; align-items:center; gap:8px; font-weight:700; color:var(--l-head); margin-bottom:18px; font-size:15px}
.la-card-h .stamp{margin-left:auto; font-size:12px; color:#9aa3b2; font-weight:500}
.la-metrics{display:grid; grid-template-columns:repeat(4,1fr); gap:20px}
.la-metric .k{font-size:13px; color:var(--l-mut)}
.la-metric .v{font-size:26px; font-weight:800; color:var(--l-head); margin:7px 0 5px; letter-spacing:-.02em; line-height:1}
.la-metric .v small{font-size:14px; font-weight:600; color:var(--l-mut)}
.la-metric .d{font-size:12px; color:var(--l-mut); display:flex; gap:8px; align-items:center}
.up{color:#16a34a; font-weight:700} .down{color:#dc2626; font-weight:700}
.la-grid2{display:grid; grid-template-columns:1.5fr 1fr; gap:20px; align-items:start}
.la-p{font-size:13.5px; color:#4a5568; line-height:1.7; margin:18px 0 0}
.la-alert{background:#fef2f2; border:1px solid #fecaca; border-radius:10px; padding:13px 15px; color:#b91c1c; font-size:13px; line-height:1.6; display:flex; gap:10px; margin-top:16px}
.la-alert .bang{font-weight:800; flex:none}
.la-side-h{font-size:14px; font-weight:700; color:var(--l-head); margin:0 0 14px}
.la-dc{background:#fff; border:1px solid var(--l-line); border-radius:12px; padding:18px; margin-bottom:14px}
.la-dc .when{font-size:12px; font-weight:700; color:var(--blue); background:#eef4fd; padding:3px 10px; border-radius:6px; display:inline-block; margin-bottom:10px}
.la-dc h5{margin:0 0 7px; font-size:14.5px; color:var(--l-head)}
.la-dc p{margin:0; font-size:12.5px; color:var(--l-mut); line-height:1.6}
.la-dc .meta{background:#f7f8fb; border-radius:8px; padding:9px 11px; font-size:12px; color:#6b7686; margin:12px 0}
.la-acts{display:flex; gap:9px}
.la-acts .b1{background:var(--blue); color:#fff; border:0; padding:9px 18px; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer; transition:.15s}
.la-acts .b1:hover{background:#1a72d3} .la-acts .b1.done{background:#16a34a}
.la-acts .b2{background:#fff; color:var(--l-mut); border:1px solid var(--l-line); padding:9px 18px; border-radius:8px; font-size:13px; cursor:pointer; transition:.15s}
.la-acts .b2:hover{background:#f4f6fa}
.la-cols2{display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start}
.la-tag{display:inline-block; font-size:11px; font-weight:700; color:#3577d6; background:#eaf2fd; padding:4px 10px; border-radius:6px; margin-bottom:12px}
.la-ins-h{font-size:15px; font-weight:700; color:var(--l-head); line-height:1.45; margin:0 0 8px}
.la-ins-p{font-size:13px; color:var(--l-mut); line-height:1.65; margin:0}
.la-ins-stats{display:flex; gap:24px; margin:16px 0}
.la-ins-stats b{display:block; font-size:20px; font-weight:800; color:var(--l-head)}
.la-ins-stats span{font-size:11.5px; color:#9aa3b2}
.la-row{background:#f6f8fb; border-radius:9px; padding:11px 13px; margin-top:10px; font-size:12.5px; color:#55617a; line-height:1.55; display:flex; gap:8px}
.la-row .rl{font-weight:700; color:var(--l-head); flex:none}
.la-row.warn{background:#fff7ed} .la-row.warn .rl{color:#c2620c}
.la-row .pill{margin-left:auto; flex:none; font-size:11px; color:var(--blue); border:1px solid #d7e6fb; border-radius:6px; padding:2px 9px; align-self:center}
.la-chart svg{width:100%; height:120px; display:block}
.la-bar{display:grid; grid-template-columns:108px 1fr 120px; gap:14px; align-items:center; padding:10px 0; font-size:13px; color:var(--l-ink)}
.la-bar .track{height:9px; background:#eef0f4; border-radius:5px; overflow:hidden}
.la-bar .fill{height:100%; border-radius:5px; background:var(--blue); width:0; transition:width 1s var(--ease)}
.la-bar .amt{text-align:right; font-size:13px; color:var(--l-mut)} .la-bar .amt b{color:var(--l-head)}
.la-tiles3{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:6px}
.la-tile{border:1px solid var(--l-line); border-radius:12px; padding:18px 20px; cursor:pointer; transition:.15s}
.la-tile.on{border-color:var(--blue); background:#f3f8ff}
.la-tile .tk{font-size:13px; color:var(--l-mut)} .la-tile .tn{font-size:30px; font-weight:800; color:var(--l-head); margin:4px 0 2px} .la-tile .ts{font-size:12px; color:#9aa3b2}
.la-slot{display:grid; grid-template-columns:64px 1fr; gap:16px; padding:20px 0; border-top:1px solid var(--l-line)}
.la-slot .st{color:var(--blue); font-weight:700; font-size:14px}
.la-slot h5{margin:0 0 4px; font-size:14.5px; color:var(--l-head)} .la-slot .sm{font-size:12.5px; color:#9aa3b2; margin-bottom:14px}
.la-slot .lbl{font-size:13px; font-weight:700; color:var(--l-head); margin:14px 0 8px}
.chips{display:flex; gap:8px; flex-wrap:wrap} .chip{background:#eef4fd; color:#2b6fc4; border:1px solid #d7e6fb; padding:6px 12px; border-radius:8px; font-size:12px}
.la-ai{background:#f4f8ff; border:1px solid #dbe9fc; border-radius:10px; padding:14px 16px; margin-top:16px; font-size:12.5px; color:#46618a; line-height:1.65}
.la-ai b{color:var(--blue)}
@media(max-width:960px){
  .lingee-app{grid-template-columns:1fr; height:auto}
  .la-side{border-right:0; border-bottom:1px solid var(--l-line)}
  .la-menu{display:flex; gap:4px; overflow-x:auto; padding:8px 12px}
  .la-grp,.la-hist,.la-hi,.la-item{display:none}
  .la-sub{flex:0 0 auto; padding:8px 14px; white-space:nowrap}
  .la-roles,.la-user{display:none}
  .la-metrics{grid-template-columns:1fr 1fr} .la-grid2,.la-cols2{grid-template-columns:1fr} .la-tiles3{grid-template-columns:1fr}
  .la-body{padding:18px}
  .la-bar{grid-template-columns:84px 1fr 92px; gap:10px}
}

/* ============ LINGEE APP — premium polish (Kingdee brand) ============ */
.lingee-demo{background:radial-gradient(900px 520px at 50% 26%, rgba(33,131,233,.06), transparent 70%)}
.lingee-app{position:relative; border-radius:22px; border-color:#e8edf5; box-shadow:0 1px 0 rgba(255,255,255,.7) inset, 0 50px 110px -46px rgba(28,72,140,.42), 0 16px 44px -28px rgba(33,131,233,.18)}
.lingee-app::after{content:""; position:absolute; inset:0; border-radius:22px; padding:1px; background:linear-gradient(155deg, rgba(33,131,233,.32), rgba(99,102,241,.12) 38%, transparent 66%); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; z-index:4}
/* sidebar */
.la-side{background:linear-gradient(180deg,#fafbfd,#f4f6fb)}
.la-brand{font-size:16px; letter-spacing:-.01em}
.la-tab.on{background:#fff; color:var(--blue); box-shadow:0 2px 7px rgba(20,40,90,.09)}
.la-sub{position:relative}
.la-sub.on{background:linear-gradient(90deg,#e7f0fd,#eef5ff); box-shadow:inset 0 0 0 1px rgba(33,131,233,.12)}
.la-sub.on::before{content:""; position:absolute; left:14px; top:50%; transform:translateY(-50%); width:5px; height:5px; border-radius:50%; background:var(--blue); box-shadow:0 0 0 3px rgba(33,131,233,.16)}
.la-role.on{box-shadow:0 3px 10px rgba(33,131,233,.16)}
/* header */
.la-head{background:linear-gradient(180deg,#fff,#fcfdff)}
.la-head .av{box-shadow:0 7px 18px rgba(33,131,233,.32), 0 0 0 4px rgba(33,131,233,.08)}
.la-head h4{letter-spacing:-.01em} .la-time{box-shadow:0 2px 9px rgba(33,131,233,.12)}
.la-main{background:linear-gradient(180deg,#fcfdff,#f7fafe)}
/* cards: tinted soft elevation + hover */
.la-card{border-color:#edf1f7; border-radius:16px; box-shadow:0 1px 2px rgba(20,40,90,.04), 0 14px 34px -20px rgba(28,72,140,.16)}
.la-dc{transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s}
.la-dc:hover{transform:translateY(-2px); box-shadow:0 18px 38px -22px rgba(28,72,140,.3); border-color:#d9e5f5}
/* numbers */
.la-metric .v,.la-tile .tn,.la-bar .amt b{font-variant-numeric:tabular-nums; letter-spacing:-.02em}
.la-metric .v{letter-spacing:-.03em}
/* delta -> subtle pills */
.up,.down{display:inline-flex; align-items:center; gap:3px; padding:2px 8px; border-radius:7px; font-size:11.5px; font-weight:700; line-height:1.55; white-space:nowrap}
.up{color:#0f9d58; background:rgba(16,157,88,.1)} .down{color:#dc2626; background:rgba(220,38,38,.09)}
/* confirm button glow (brand) */
.la-acts .b1{box-shadow:0 7px 16px rgba(33,131,233,.32)} .la-acts .b1:hover{box-shadow:0 9px 20px rgba(33,131,233,.4)}
.la-acts .b1.done{box-shadow:0 7px 16px rgba(16,157,88,.3)}
/* bars: gradient fill, rounded track */
.la-bar .track{height:10px; background:#eef1f6}
.la-bar .fill{background:linear-gradient(90deg,#2183E9,#3aa6ff); box-shadow:0 1px 5px rgba(33,131,233,.32)}
/* chart: animated line draw */
.la-chart svg{height:140px}
.la-line{stroke-dasharray:1500; stroke-dashoffset:1500; animation:laDraw 1.5s var(--ease) .15s forwards}
@keyframes laDraw{to{stroke-dashoffset:0}}
/* insight refinements */
.la-tag{background:linear-gradient(135deg,#eaf2fd,#eef0ff); box-shadow:inset 0 0 0 1px rgba(33,131,233,.1)}
.la-ins-stats b{letter-spacing:-.02em; font-variant-numeric:tabular-nums}
.la-row .pill{box-shadow:0 1px 4px rgba(33,131,233,.12)}
/* schedule */
.la-tile{transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s} .la-tile:hover{transform:translateY(-2px); border-color:#cfe0f5}
.la-tile.on{box-shadow:0 12px 28px -16px rgba(33,131,233,.42)}
.chip{box-shadow:0 1px 3px rgba(33,131,233,.1)}
/* refined thin scrollbars */
.la-menu,.la-body{scrollbar-width:thin; scrollbar-color:#dde3ec transparent}
.la-menu::-webkit-scrollbar,.la-body::-webkit-scrollbar{width:7px}
.la-menu::-webkit-scrollbar-thumb,.la-body::-webkit-scrollbar-thumb{background:#dde3ec; border-radius:4px}
.la-menu::-webkit-scrollbar-thumb:hover,.la-body::-webkit-scrollbar-thumb:hover{background:#c6d0dd}

/* ===== Lingee app — Chat & Dev tabs ===== */
.la-screen{display:none}
.la-screen.on{display:flex; flex-direction:column; flex:1; min-height:0}
.la-sbm{display:none} .la-sbm.on{display:block}
.la-newbtn{display:flex; align-items:center; gap:8px; justify-content:center; margin:4px 0 10px; padding:11px; border:1px solid #dbe2ec; border-radius:10px; background:#fff; color:var(--l-head); font-weight:600; font-size:13.5px; cursor:pointer; transition:.15s; box-shadow:0 2px 6px rgba(20,40,90,.05)}
.la-newbtn:hover{border-color:var(--blue); color:var(--blue)}
/* chat screen */
.la-chat{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:26px 30px; min-height:480px}
.la-greet{font-size:clamp(22px,2.4vw,30px); font-weight:300; color:var(--l-head); text-align:center; margin-bottom:36px; letter-spacing:-.01em}
.la-greet .hl{position:relative; color:var(--blue); font-weight:600; white-space:nowrap}
.la-greet .sq{position:absolute; left:2%; bottom:-12px; width:96%; height:14px}
.la-composer{width:100%; max-width:680px; background:#fff; border:1px solid #e3e9f1; border-radius:16px; padding:14px 16px; box-shadow:0 14px 36px -20px rgba(28,72,140,.28)}
.la-composer textarea{width:100%; border:0; resize:none; font-family:inherit; font-size:14px; color:var(--l-ink); background:none; outline:none; padding:4px 2px 12px; line-height:1.5}
.la-composer textarea::placeholder{color:#9aa3b2}
.la-composer-row{display:flex; align-items:center; gap:9px}
.la-cic{color:#8a93a6; font-size:15px; cursor:pointer; flex:none}
.la-skill{font-size:12.5px; color:#55617a; background:#f1f4f9; border:1px solid #e6eaf1; border-radius:9px; padding:6px 11px; cursor:pointer; transition:.15s; white-space:nowrap}
.la-skill:hover{border-color:var(--blue); color:var(--blue); background:#eef5ff}
.la-send{width:34px; height:34px; border-radius:50%; background:var(--blue); color:#fff; border:0; cursor:pointer; font-size:16px; box-shadow:0 6px 14px rgba(33,131,233,.36); flex:none}
.la-prompts{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:730px; margin-top:24px}
.la-prompt{font-size:13px; color:#55617a; background:#fff; border:1px solid var(--l-line); border-radius:20px; padding:9px 16px; cursor:pointer; transition:.15s}
.la-prompt:hover{border-color:var(--blue); color:var(--blue); transform:translateY(-1px); box-shadow:0 6px 14px -8px rgba(33,131,233,.4)}
/* dev screen */
.la-app-head{display:flex; align-items:center; gap:14px; margin-bottom:18px}
.la-app-ico{width:46px; height:46px; border-radius:13px; background:linear-gradient(135deg,#2183E9,#00AEEE); display:grid; place-items:center; font-size:22px; box-shadow:0 8px 18px rgba(33,131,233,.3)}
.la-app-head h4{margin:0; font-size:17px; color:var(--l-head); letter-spacing:-.01em} .la-app-head p{margin:3px 0 0; font-size:13px; color:var(--l-mut)}
.la-app-time{margin-left:auto; font-size:12px; color:#9aa3b2}
.la-filters{display:flex; gap:10px; margin-bottom:18px; flex-wrap:wrap}
.la-fl{font-size:12.5px; color:var(--l-mut); background:#fff; border:1px solid var(--l-line); border-radius:9px; padding:8px 13px} .la-fl b{color:var(--l-head); font-weight:600}
.la-kpis{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:18px}
.la-kpi{background:#fff; border:1px solid var(--l-line); border-radius:14px; padding:16px 18px; border-left:3px solid var(--blue); box-shadow:0 12px 30px -20px rgba(28,72,140,.16)}
.la-kpi.g{border-left-color:#16a34a} .la-kpi.r{border-left-color:#dc2626} .la-kpi.v{border-left-color:#6366F1}
.la-kpi .kk{font-size:12.5px; color:var(--l-mut)} .la-kpi .kv{font-size:25px; font-weight:800; color:var(--l-head); margin:7px 0 5px; letter-spacing:-.02em; font-variant-numeric:tabular-nums} .la-kpi .kd{font-size:11.5px; color:var(--l-mut)}
.la-combo svg{width:100%; height:152px; display:block}
.la-xaxis{display:flex; justify-content:space-between; font-size:11px; color:#9aa3b2; margin-top:7px; padding:0 8px}
.la-legend{display:flex; gap:18px; justify-content:center; margin-top:14px; font-size:12px; color:var(--l-mut)}
.la-legend .lg{display:flex; align-items:center; gap:6px} .la-legend .lg::before{content:""; width:10px; height:10px; border-radius:3px} .la-legend .lg.b::before{background:#2183E9} .la-legend .lg.g::before{background:#22c55e; border-radius:50%}
.la-rank{display:grid; grid-template-columns:24px 132px 1fr 52px; gap:12px; align-items:center; padding:11px 0; font-size:13px; border-top:1px solid #f1f4f8}
.la-rank:first-of-type{border-top:0; padding-top:2px}
.la-rank .rk{width:22px; height:22px; border-radius:7px; background:#eef1f6; color:#8a93a6; font-size:12px; font-weight:700; display:grid; place-items:center}
.la-rank .rk.one{background:#f5a623; color:#fff} .la-rank .rk.two{background:#aab4c2; color:#fff} .la-rank .rk.three{background:#cd8b4e; color:#fff}
.la-rank .rn{color:var(--l-head); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.la-rank .track{height:8px; background:#eef1f6; border-radius:5px; overflow:hidden}
.la-rank .fill{height:100%; background:linear-gradient(90deg,#2183E9,#41a6ff); border-radius:5px; width:0; transition:width 1s var(--ease)}
.la-rank b{text-align:right; font-variant-numeric:tabular-nums; color:var(--l-head)}
@media(max-width:960px){ .la-kpis{grid-template-columns:1fr 1fr} .la-greet{font-size:22px} .la-rank{grid-template-columns:22px 110px 1fr 48px} }

/* ===== Lingee app — brand, account, richer Work dashboard ===== */
.la-brand{letter-spacing:-.02em}
.la-brand .aios{color:var(--blue); font-weight:800; margin-left:1px}
/* real user account (bottom-left) */
.la-user .av{width:32px; height:32px; border-radius:50%; background-size:cover; background-position:center; box-shadow:0 2px 8px rgba(20,40,90,.18); flex:none}
.la-user b{font-size:13.5px; color:var(--l-head)}
.la-user .uic{color:#9aa3b2; cursor:pointer; display:inline-flex; transition:.15s} .la-user .uic svg{width:17px; height:17px}
.la-user .uic:first-of-type{margin-left:auto} .la-user .uic:hover{color:var(--blue)}
/* persona header avatar already cover via .la-head .av */
.la-card-h2{display:flex; align-items:center; gap:9px; font-weight:700; color:var(--l-head); margin-bottom:16px; font-size:14.5px}
.la-card-h2 .hi{width:4px; height:15px; border-radius:3px; flex:none; background:var(--blue)}
.la-card-h2 .hi.c{background:#00AEEE} .la-card-h2 .hi.v{background:#A78BFA} .la-card-h2 .hi.g{background:#22c55e} .la-card-h2 .hi.a{background:#f59e0b}
.la-xaxis{display:flex; justify-content:space-between; font-size:11px; color:#9aa3b2; margin-top:8px; padding:0 2px}
/* clean row list */
.la-list{display:flex; flex-direction:column}
.lr{display:flex; align-items:center; justify-content:space-between; padding:11px 12px; border-radius:9px; font-size:13.5px; color:#4a5568}
.lr.hl{background:#f5f7fb}
.lr .rv{font-weight:700; color:var(--l-head); font-variant-numeric:tabular-nums; display:flex; align-items:center; gap:9px}
.lr .rv i{font-style:normal; font-size:11.5px}
/* tip box */
.la-tip{position:relative; background:#f1f7ff; border:1px solid #dcecfd; border-radius:10px; padding:11px 14px 11px 36px; margin-top:14px; font-size:12.5px; color:#3f6090; line-height:1.55}
.la-tip::before{content:""; position:absolute; left:13px; top:13px; width:13px; height:13px; border-radius:50%; background:var(--blue); box-shadow:0 0 0 3px rgba(33,131,233,.16)}
/* goal donut + list */
.la-goalwrap{display:grid; grid-template-columns:150px 1fr; gap:22px; align-items:center}
.la-donut{position:relative; width:150px; height:150px}
.la-donut svg{width:100%; height:100%}
.la-donut .dc{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center}
.la-donut .dc b{font-size:30px; font-weight:800; color:var(--l-head); letter-spacing:-.03em} .la-donut .dc span{font-size:11px; color:#9aa3b2; margin-top:2px}
.dval{animation:laRing 1.3s var(--ease) .25s forwards}
@keyframes laRing{from{stroke-dashoffset:326.7} to{stroke-dashoffset:71.9}}
.la-goals{display:flex; flex-direction:column; gap:2px}
.gl{display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; font-size:13px; color:#4a5568}
.gl:hover{background:#f5f7fb}
.gl i{width:8px; height:8px; border-radius:50%; flex:none} .gl span{flex:1} .gl b{color:var(--l-head); font-variant-numeric:tabular-nums}
/* insights feed (masonry) */
.la-feed{column-count:2; column-gap:20px}
.la-card2{break-inside:avoid; background:#fff; border:1px solid #edf1f7; border-radius:16px; padding:20px 22px; margin:0 0 20px; box-shadow:0 1px 2px rgba(20,40,90,.04), 0 14px 34px -22px rgba(28,72,140,.16)}
.la-card2 .fh{display:flex; align-items:center; margin-bottom:13px}
.la-card2 .ago{margin-left:auto; font-size:11.5px; color:#9aa3b2}
.la-tag.amber{background:linear-gradient(135deg,#fff1e2,#fff6ec); color:#c2620c; box-shadow:inset 0 0 0 1px rgba(194,98,12,.12)}
.la-tag.green{background:linear-gradient(135deg,#e7f8ee,#eefbf3); color:#0f9d58; box-shadow:inset 0 0 0 1px rgba(16,157,88,.14)}
.la-card2 .ih{font-size:15px; font-weight:700; color:var(--l-head); line-height:1.45; margin:0 0 9px}
.la-card2 .ip{font-size:13px; color:var(--l-mut); line-height:1.65; margin:0}
.istats{display:flex; gap:22px; margin:15px 0}
.istats b{display:block; font-size:19px; font-weight:800; color:var(--l-head); letter-spacing:-.02em; font-variant-numeric:tabular-nums}
.istats span{font-size:11px; color:#9aa3b2}
.la-rec{background:#f6f8fb; border-radius:10px; padding:12px 14px; margin-top:11px}
.la-rec .rh{display:flex; align-items:center; justify-content:space-between; margin-bottom:5px}
.la-rec b{font-size:12.5px; color:var(--l-head); font-weight:700}
.la-rec p{margin:4px 0 0; font-size:12.5px; color:#55617a; line-height:1.6}
.la-rec.warn{background:#fff7ed} .la-rec.warn b{color:#c2620c}
.la-rec.ghost{background:#f3f8ff}
.rb{font-size:11.5px; color:var(--blue); background:#fff; border:1px solid #d7e6fb; border-radius:7px; padding:5px 12px; cursor:pointer; font-weight:600; white-space:nowrap; transition:.15s; flex:none}
.rb:hover{background:#eef5ff} .rb.solid{background:var(--blue); color:#fff; border-color:var(--blue); box-shadow:0 4px 11px rgba(33,131,233,.3)} .rb.solid:hover{background:#1a72d3}
.opts-l{font-size:11.5px; font-weight:700; color:#8a93a6; text-transform:uppercase; letter-spacing:.05em; margin:15px 0 9px}
.la-opt{display:flex; gap:11px; align-items:flex-start; background:#fff; border:1px solid #eef1f7; border-radius:10px; padding:11px 13px; margin-bottom:8px; font-size:12.5px; color:#55617a; line-height:1.55}
.la-opt b{color:var(--l-head)} .la-opt i{font-style:normal; color:var(--blue); font-weight:600}
.la-opt .ol{width:22px; height:22px; border-radius:7px; flex:none; display:grid; place-items:center; font-size:12px; font-weight:800; color:#fff}
.la-opt .ol.a{background:#2183E9} .la-opt .ol.b{background:#6366F1} .la-opt .ol.c{background:#00AEEE}
.la-attr{font-size:11px; color:#aab2c0; margin-top:13px; padding-top:12px; border-top:1px solid #f1f4f8}
/* people / avatar chips */
.la-people{display:flex; align-items:center; gap:0; margin-top:13px; flex-wrap:wrap}
.la-people .who{font-size:12px; color:#8a93a6; margin-right:10px}
.la-people .ac{width:26px; height:26px; border-radius:50%; background-size:cover; background-position:center; border:2px solid #fff; margin-left:-7px; box-shadow:0 1px 4px rgba(20,40,90,.18); flex:none}
.la-people .ac:first-of-type{margin-left:0}
.la-people .nm{font-size:12px; color:#6b7686; margin-left:11px}
.la-people .notify{margin-left:auto}
@media(max-width:960px){
  .la-feed{column-count:1}
  .la-goalwrap{grid-template-columns:1fr; justify-items:center} .la-goals{width:100%; margin-top:10px}
  .istats{gap:16px}
  .la-people .notify{margin-left:0; margin-top:8px}
}

/* Summary metrics — cleaner, less cramped */
.la-grid2{grid-template-columns:1.7fr 1fr}
.la-metrics{gap:16px}
.la-metric .k{font-size:12.5px; line-height:1.35}
.la-metric .v{font-size:23px; white-space:nowrap; margin:8px 0 6px}
.la-metric .d{flex-direction:column; align-items:flex-start; gap:5px; font-size:11.5px}
@media(max-width:960px){ .la-grid2{grid-template-columns:1fr} }

/* Analysis/Dev — even card gaps (equal-height rows, uniform spacing) */
.la-cols2{align-items:stretch; gap:18px; margin-bottom:18px}
.la-cols2 .la-card{margin-bottom:0}
.la-pane[data-pane="analysis"] .la-cols2:last-child{margin-bottom:0}
/* Summary metrics — reserve 2 label lines so all 4 values align */
.la-metric{display:flex; flex-direction:column}
.la-metric .k{min-height:2.7em}
.la-metric .d{margin-top:auto}

/* ===== Lingee AIOS wordmark logo ===== */
.lingee-logo{height:clamp(52px,9vw,98px); width:auto; display:block; margin:0 auto 22px}
.la-brand img{height:19px; width:auto; display:block}
@media(max-width:600px){ .lingee-logo{margin-bottom:16px} }

/* footer icons (SVG) */
.ft-social a svg{width:18px; height:18px}
.ft-contact svg{width:18px; height:18px; color:var(--blue)}

/* AI+ ERP — "Unlock AI, Data & App Value" (text left / diagram right) */
.whyx-box--rev .whyx-gr{flex:0 0 40%}
.whyx-box--rev .whyx-gl{flex:0 0 56%}
.whyx-box--rev .whyx-gr .item{margin-bottom:0}

/* ============ MOBILE — Pass 1: nav accordion · footer accordion · tap targets · sticky CTA ============ */
@media(max-width:820px){
  /* tap targets >=44px */
  .nav-toggle{padding:11px 9px; min-width:46px; min-height:46px; align-items:center; justify-content:center}
  .mega a{padding:13px 0 !important}
  /* drawer: stretch children full-width + left-align (was inheriting desktop align-items:center) */
  .nav-links.open{align-items:stretch}
  .nav-links.open>a{display:block; text-align:left}
  /* nav drawer: collapsible submenus — tap the chevron to expand, label still navigates */
  .has-mega>a{display:flex; align-items:center}
  .has-mega>a .caret{margin-left:auto; opacity:.5; font-size:13px; transition:transform .25s var(--ease); padding:16px 8px 16px 22px; margin:-16px -8px -16px 0}
  .has-mega.open>a .caret{transform:rotate(180deg); opacity:.95; color:var(--blue)}
  .has-mega .mega{max-height:0; overflow:hidden; padding-top:0 !important; padding-bottom:0 !important; transition:max-height .35s var(--ease), padding .2s}
  .has-mega.open .mega{max-height:820px; padding-bottom:10px !important}
}
/* footer: tap-to-expand columns */
@media(max-width:768px){
  .ft-grid{grid-template-columns:1fr !important; gap:0}
  .ft-brand{margin-bottom:22px}
  .ft-grid>div:not(.ft-brand)>h4{cursor:pointer; display:flex; align-items:center; justify-content:space-between; margin:0; padding:15px 0; border-top:1px solid var(--l-line); font-size:15px}
  .ft-grid>div:not(.ft-brand)>h4::after{content:"\2304"; font-size:18px; color:#9aa3b2; transition:transform .25s}
  .ft-grid>div:not(.ft-brand).ftopen>h4::after{transform:rotate(180deg)}
  .ft-grid>div:not(.ft-brand)>a{display:none; padding:11px 0 11px 2px; min-height:44px; align-items:center}
  .ft-grid>div:not(.ft-brand).ftopen>a{display:flex}
  .ft-grid>div:not(.ft-brand).ftopen{padding-bottom:8px}
}
/* sticky mobile CTA bar */
.m-stickbar{position:fixed; left:0; right:0; bottom:0; z-index:60; display:none; padding:10px 14px; padding-bottom:calc(10px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.97); -webkit-backdrop-filter:saturate(160%) blur(10px); backdrop-filter:saturate(160%) blur(10px); border-top:1px solid var(--l-line); box-shadow:0 -8px 22px -14px rgba(20,30,70,.3); transform:translateY(125%); transition:transform .3s var(--ease)}
.m-stickbar .btn{width:100%; justify-content:center; padding:15px; font-size:16px}
.m-stickbar.show{transform:translateY(0)}
@media(max-width:768px){ .m-stickbar{display:block} }

/* ============ MOBILE — Pass 2: tap-to-zoom for dense diagrams ============ */
@media(max-width:820px){
  .zoom-able{position:relative}
  .zoom-able>img,[data-zoom]{cursor:zoom-in}
  .zoom-able::after{content:"\2922  Tap to zoom"; position:absolute; right:10px; bottom:10px; background:rgba(15,23,42,.82); color:#fff; font-size:11.5px; font-weight:600; letter-spacing:.02em; padding:6px 10px; border-radius:8px; pointer-events:none; box-shadow:0 4px 12px -4px rgba(0,0,0,.4)}
  /* industry diagrams: fit to width on mobile (tap to zoom for detail) instead of horizontal-scroll */
  .pt-diagram{overflow:visible !important}
  .pt-diagram img{min-width:0 !important}
}
.zoom-ov{position:fixed; inset:0; z-index:200; background:#0b1220; display:none; align-items:center; justify-content:center; touch-action:none; overscroll-behavior:contain}
.zoom-ov.show{display:flex}
.zoom-stage{width:100%; height:100%; display:flex; align-items:center; justify-content:center; overflow:hidden; touch-action:none}
.zoom-img{max-width:100%; max-height:100%; transform-origin:center center; will-change:transform; -webkit-user-select:none; user-select:none; -webkit-user-drag:none}
.zoom-close{position:fixed; top:calc(12px + env(safe-area-inset-top)); right:14px; z-index:2; width:46px; height:46px; border-radius:50%; border:0; background:rgba(255,255,255,.16); color:#fff; font-size:25px; line-height:46px; text-align:center; cursor:pointer; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px)}
.zoom-hint{position:fixed; bottom:calc(20px + env(safe-area-inset-bottom)); left:0; right:0; text-align:center; color:rgba(255,255,255,.72); font-size:13px; pointer-events:none; transition:opacity .5s}

/* ============ MOBILE — Pass 3: Lingee demo preview + launch ============ */
.demo-preview{display:none}
@media(max-width:820px){
  #lingeeApp{display:none}
  .demo-preview{display:block; position:relative; border-radius:16px; overflow:hidden; border:1px solid var(--l-line); box-shadow:0 18px 40px -22px rgba(20,40,90,.45); cursor:pointer}
  .demo-preview>img{width:100%; display:block}
  .demo-preview::before{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,18,32,0) 42%,rgba(11,18,32,.5) 100%); pointer-events:none}
  .demo-preview::after{content:"A real look inside Lingee AIOS"; position:absolute; top:12px; left:12px; background:rgba(255,255,255,.92); color:#16203a; font-size:11px; font-weight:700; letter-spacing:.02em; padding:5px 10px; border-radius:7px; pointer-events:none}
  .demo-launch{position:absolute; left:50%; bottom:18px; transform:translateX(-50%); display:inline-flex; align-items:center; gap:9px; background:var(--blue); color:#fff; text-decoration:none; border:0; border-radius:30px; padding:14px 24px; font-size:15px; font-weight:700; box-shadow:0 10px 24px -6px rgba(33,131,233,.65); cursor:pointer; white-space:nowrap}
  .demo-launch .dl-play{font-size:11px; transform:translateY(.5px)}
  .demo-launch:active{transform:translateX(-50%) scale(.97)}
}

/* ===== homepage hero — full-bleed banner background (bg-1, no card) ===== */
.hero--bg{
  background: url('../img/hero-bg.webp?v=1') center center / cover no-repeat, #eef1fb;
}
.hero--bg::before{ display:none; }
.hero--bg .hero-grid{ grid-template-columns:1fr; min-height:clamp(380px,38vw,520px); align-items:center; }
.hero--bg .hero-head{ max-width:600px; }
@media(max-width:768px){
  .hero--bg{
    background:
      linear-gradient(180deg, rgba(248,250,254,.72) 0%, rgba(248,250,254,.2) 44%, rgba(248,250,254,0) 74%),
      url('../img/hero-bg.webp?v=1') center / cover no-repeat, #eef1fb;
  }
  .hero--bg .hero-grid{ min-height:clamp(320px,64vw,420px); }
}

/* ===== branded lead form modal (Demo + Partner) ===== */
.kf-ov{position:fixed; inset:0; z-index:300; display:none; align-items:flex-start; justify-content:center; background:rgba(12,20,40,.62); overflow-y:auto; padding:5vh 16px}
.kf-ov.show{display:flex}
.kf-modal{background:radial-gradient(130% 100% at 100% 0%,#dfeafe 0%,rgba(223,234,254,0) 52%),linear-gradient(158deg,#e9f2ff 0%,#f4f9ff 46%,#ffffff 100%); width:100%; max-width:560px; border-radius:18px; box-shadow:0 40px 90px -30px rgba(15,30,80,.55); overflow:hidden; transform:translateY(14px); opacity:0; transition:.25s var(--ease)}
.kf-ov.show .kf-modal{transform:none; opacity:1}
.kf-head{position:relative; padding:26px 28px 6px; background:transparent}
.kf-head img{height:30px; width:auto; margin-bottom:12px}
.kf-head h3{font-size:21px; font-weight:800; color:#0e1b3a; letter-spacing:-.01em}
.kf-head p{font-size:13.5px; color:var(--l-mut); margin-top:5px; max-width:42ch}
.kf-x{position:absolute; top:14px; right:14px; width:34px; height:34px; border:1px solid var(--l-line); border-radius:50%; background:#fff; color:#6b7280; font-size:18px; line-height:1; cursor:pointer; transition:.15s}
.kf-x:hover{color:var(--blue); border-color:var(--blue)}
.kf-body{padding:22px 28px 26px}
.kf-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 16px}
.kf-field{display:flex; flex-direction:column; gap:6px; margin-bottom:15px}
.kf-field:not(.full){grid-column:auto}
.kf-field.full{grid-column:1 / -1}
.kf-field label{font-size:12.5px; font-weight:700; color:#3a445e}
.kf-field label .req{color:#e8830c}
.kf-field input,.kf-field select,.kf-field textarea{font:inherit; font-size:16px; padding:11px 13px; border:1px solid #d6e2f5; border-radius:10px; background:#fff; color:var(--l-ink); width:100%; transition:.15s}
.kf-field textarea{min-height:84px; resize:vertical}
.kf-field input:focus,.kf-field select:focus,.kf-field textarea:focus{outline:0; border-color:var(--blue); background:#fff; box-shadow:0 0 0 3px rgba(33,131,233,.14)}
.kf-field.err input,.kf-field.err select,.kf-field.err textarea{border-color:#dc2626; background:#fef5f5}
.kf-em{font-size:11.5px; color:#dc2626; display:none}
.kf-field.err .kf-em{display:block}
.kf-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.kf-submit{width:100%; margin-top:4px; padding:14px; border:0; border-radius:11px; background:var(--blue); color:#fff; font-size:15.5px; font-weight:700; cursor:pointer; transition:.15s}
.kf-submit:hover{background:#1a6fce}
.kf-submit:disabled{opacity:.7; cursor:default}
.kf-foot{font-size:11.5px; color:var(--l-mut); text-align:center; margin-top:12px}
.kf-ok{display:none; text-align:center; padding:34px 28px 40px}
.kf-ok .ic{width:58px; height:58px; border-radius:50%; background:#eafaf1; color:#0c8a4d; display:grid; place-items:center; margin:0 auto 16px; font-size:28px; font-weight:800}
.kf-ok h3{font-size:20px; font-weight:800; color:var(--l-ink)}
.kf-ok p{font-size:14px; color:var(--l-mut); margin-top:8px}
.kf-modal.done .kf-body{display:none}
.kf-modal.done .kf-ok{display:block}
@media(max-width:560px){ .kf-grid{grid-template-columns:1fr} .kf-ov{padding:0} .kf-modal{max-width:none; min-height:100dvh; border-radius:0} }

/* form selects: custom chevron + grayed placeholder + height match */
.kf-field select{appearance:none; -webkit-appearance:none; -moz-appearance:none; padding-right:40px; line-height:1.35; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center}
.kf-field select:required:invalid{color:#98a2b3}
.kf-field select option{color:var(--l-ink)}
.kf-field select option[value=""]{color:#98a2b3}
.kf-field input,.kf-field select{height:46px}

/* ============ homepage hero — AIOS plasma orb + animated insight cards ============ */
@property --oa{syntax:"<angle>"; inherits:true; initial-value:0deg}
.aios-stage{position:absolute; top:50%; right:3%; transform:translateY(-50%); width:min(48%,580px); height:80%; max-height:540px; pointer-events:none; z-index:2}
.aios-stage::before{content:""; position:absolute; inset:-6% -2%; border-radius:50%; background:radial-gradient(closest-side, rgba(248,250,254,.5), rgba(248,250,254,0) 72%)}
/* ===== ORB HOST — drop-in slot for your own orb animation =====
   1) Paste the orb HTML inside <div class="aios-orb-host"> in index.html
   2) Paste the orb's COMPILED (plain) CSS at the very END of this file
      — skip its `body{}` and `*{}` rules so it doesn't override the site
   3) Resize with --orb-size below                                        */
.aios-stage{--orb-scale:1.38}
.aios-orb-host{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); display:grid; place-items:center; filter:drop-shadow(0 0 60px rgba(120,140,240,.42))}
.aios-orb-host > .ai{transform:scale(var(--orb-scale))}   /* keep the orb's vmin proportions, just scale it to fit the hero */
/* insight cards */
.aios-card{position:absolute; background:rgba(255,255,255,.95); border:1px solid rgba(255,255,255,.85); border-radius:14px; box-shadow:0 20px 44px -20px rgba(20,40,90,.45); padding:11px 14px; font-size:12.5px; line-height:1.35; color:#16203a; font-weight:600; white-space:nowrap; opacity:0; will-change:transform,opacity; animation:cardCycle 15s ease-in-out infinite}
.card-chat .dot{display:inline-block; width:8px; height:8px; border-radius:50%; background:#2183e9; margin-right:8px; vertical-align:0}
.card-chat .dot.live{animation:dotLive 1.6s ease-out infinite}
.card-chat .dot.warn{background:#e8830c}
.card-chart{display:flex; align-items:center; gap:11px}
.cc-meta{display:flex; flex-direction:column; gap:1px}
.cc-meta b{font-size:12.5px; color:#16203a} .cc-meta span{font-size:11px; color:#6b7488; font-weight:600}
.card-user,.card-agent{display:flex; align-items:center; gap:10px}
.card-user .cu-av{width:30px; height:30px; border-radius:50%; object-fit:cover; flex:0 0 auto}
.cu-txt{display:flex; flex-direction:column; gap:1px}
.cu-txt b{font-size:12.5px; color:#16203a} .cu-txt span{font-size:11px; color:#6b7488; font-weight:600}
.cu-pill{font-size:11px; font-weight:800; color:#fff; background:#2183e9; padding:5px 11px; border-radius:20px; margin-left:2px}
.card-agent .ag-ic{width:26px; height:26px; border-radius:8px; background:#eafaf1; color:#0c8a4d; display:grid; place-items:center; font-weight:800; font-size:13px; flex:0 0 auto}
.donut-val{animation:donutDraw 15s ease-out infinite}
.line-val{stroke-dasharray:210; animation:lineDraw 15s ease-out infinite}
/* positions + stagger (6 cards) */
/* 4-quadrant layout: cards hug the orb; only cross-quadrant cards are ever co-visible (round-robin) so no collisions */
.k1{top:36%; left:8%}      .k2{top:9.1%; left:35.6%}   .k3{top:53.8%; left:61.4%} .k4{top:78.7%; left:17.9%}
.k5{top:28.3%; left:10%}   .k6{top:24.1%; left:57.4%}  .k7{top:65.1%; left:58.6%} .k8{top:74.6%; left:13.1%}
.k9{top:22.8%; left:23.6%} .k10{top:36%; left:59.5%}   .k11{top:60.9%; left:43%}  .k12{top:54.7%; left:10.3%}
/* round-robin through the 4 quadrants (Q1 TL -> Q3 TR -> Q4 BR -> Q2 BL) -> the ~3 on screen are always different quadrants */
.k1{animation-delay:0s} .k2{animation-delay:1.25s} .k3{animation-delay:2.5s} .k4{animation-delay:3.75s} .k5{animation-delay:5s} .k6{animation-delay:6.25s}
.k7{animation-delay:7.5s} .k8{animation-delay:8.75s} .k9{animation-delay:10s} .k10{animation-delay:11.25s} .k11{animation-delay:12.5s} .k12{animation-delay:13.75s}
.k3 .donut-val{animation-delay:2.5s}  .k4 .line-val{animation-delay:3.75s}
@keyframes cardCycle{0%{opacity:0; transform:translateY(14px) scale(.95)} 3%{opacity:1; transform:translateY(0) scale(1)} 22%{opacity:1; transform:translateY(0) scale(1)} 25%{opacity:0; transform:translateY(-10px) scale(.98)} 100%{opacity:0; transform:translateY(-10px) scale(.98)}}
@keyframes donutDraw{0%{stroke-dashoffset:97.4} 12%,100%{stroke-dashoffset:22}}
@keyframes lineDraw{0%{stroke-dashoffset:210} 14%,100%{stroke-dashoffset:0}}
@keyframes dotLive{0%{box-shadow:0 0 0 0 rgba(33,131,233,.5)} 70%,100%{box-shadow:0 0 0 7px rgba(33,131,233,0)}}
@media(max-width:980px){ .aios-stage{display:none} }
@media(prefers-reduced-motion:reduce){ .aios-orb,.orb-glass,.orb-glass .blob,.orb-rings::before,.orb-rings::after{animation:none} .aios-card{animation:none; opacity:1} .donut-val,.line-val{animation:none} }

@property --a {
  syntax: "<angle>";
  inherits: true;
  initial-value: 0deg;
}

@property --l {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}
@property --x {
  syntax: "<length>";
  inherits: false;
  initial-value: 0;
}
@property --y {
  syntax: "<length>";
  inherits: false;
  initial-value: 0;
}

@property --o {
  syntax: "<number>";
  inherits: false;
  initial-value: 0;
}

@property --value {
  syntax: "<angle>";
  inherits: true;
  initial-value: 0deg;
}

@property --width-ratio {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}

@property --scale {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}

:root {
  --count: 4;
  --radius: 6vmin;
  --width: 1vmin;

  /* speed controls */
  --blob-speed: 7.5s;
  --ring-speed: 12s;

  /* palette */
  --bg-core: #8b86ff;
  --shell-bg: #b8b7ff;
  --blob-1a: #7f5cff;
  --blob-1b: #6ee7f9;
  --blob-2a: #ff7aa2;
  --blob-2b: #ffd6e6;
  --blob-3a: #d98cff;
  --blob-4a: #5f63ff;
  --ring-1: #ffffff;
  --ring-2: #7dd3fc;
  --ring-3: #818cf8;
  --ring-4: #e879f9;
  --ring-5: #fef08a;
}

.ai {
  --s: 40vmin;
  --p: calc(var(--s) / 4);
  width: var(--s);
  aspect-ratio: 1;
  --bg-color: color-mix(in srgb, var(--bg-core), transparent 90%);
  background:
    radial-gradient(60% 75% at center, var(--bg-color) 50%, transparent 50%),
    radial-gradient(75% 60% at center, var(--bg-color) 50%, transparent 50%);
  padding: var(--p);
  display: grid;
  place-items: center;
  position: relative;
  border-radius: 50%;
  transform: scale(1.4);
}

@keyframes ai {
  from {
    --a: 360deg;
    --l: 0.35;
    --o: 1;
  }

  30% {
    --l: 1.2;
  }

  70% {
    --o: 0.5;
    --l: 0.15;
  }

  98% {
    --o: 0.75;
  }

  to {
    --a: 0deg;
    --l: 0.35;
    --o: 1;
  }
}

.ai .c {
  position: absolute;
  width: 10vmin;
  aspect-ratio: 1;
  border-radius: 50%;
  --offset-per-item: calc(360deg / var(--count));
  --current-angle-offset: calc(var(--offset-per-item) * var(--i) + var(--a));
  translate: calc(cos(var(--current-angle-offset)) * var(--radius) + var(--x, 0))
    calc(sin(var(--current-angle-offset)) * var(--radius) * -1);
  scale: calc(0.6 + var(--l));
  animation: ai var(--blob-speed) cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
  transition: opacity 0.5s linear;
  opacity: var(--o, 1);
}

.ai .c:nth-child(1) { --i: 0; }
.ai .c:nth-child(2) { --i: 1; }
.ai .c:nth-child(3) { --i: 2; }
.ai .c:nth-child(4) { --i: 3; }

.ai .c1 {
  background: radial-gradient(50% 50% at center, var(--blob-1a), var(--blob-1b));
  --x: 1vmin;
  width: 16vmin;
  animation-timing-function: cubic-bezier(0.2, 0.6, 0.35, 1);
}

.ai .c2 {
  background: radial-gradient(50% 50% at center, var(--blob-2a), var(--blob-2b));
  width: 15vmin;
}

.ai .c3 {
  background: radial-gradient(50% 50% at center, var(--blob-3a), transparent);
  width: 5vmin;
  opacity: 0.6;
  --x: -1vmin;
}

.ai .c4 {
  background: radial-gradient(50% 50% at center, var(--blob-4a), #c7d2fe);
  animation-timing-function: cubic-bezier(0.3, 0.05, 0.7, 0.45);
}

.ai .container {
  overflow: hidden;
  background: var(--shell-bg);
  width: 100%;
  border-radius: 50%;
  aspect-ratio: 1;
  position: relative;
  display: grid;
  place-items: center;
}

.ai .glass {
  overflow: hidden;
  position: absolute;
  --w: 0.5vmin;
  inset: calc(var(--p) - var(--w));
  border-radius: 50%;
  backdrop-filter: blur(1.3vmin);
  box-shadow: 0 0 8vmin color-mix(in srgb, black, transparent 70%);
  background: radial-gradient(
    10vmin at 70% 30%,
    rgba(255, 255, 255, 0.7),
    transparent
  );
}

.ai .glass::after {
  content: "";
  position: absolute;
  inset: 0;
  --c: rgba(255, 255, 255, 0.03);
  --w: 0.0625rem;
  --g: 0.1875rem;
  background: repeating-linear-gradient(
    var(--c),
    var(--c),
    var(--w),
    transparent var(--w),
    transparent calc(var(--w) + var(--g))
  );
  border-radius: inherit;
  border: 1vmin rgba(255, 255, 255, 0.1) solid;
}

.ai .rings {
  aspect-ratio: 1;
  border-radius: 50%;
  position: absolute;
  inset: 0;
  perspective: 11rem;
  opacity: 0.9;
}

.ai .rings::before,
.ai .rings::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  --width-ratio: 1;
  border: calc(var(--width) * var(--width-ratio)) solid transparent;
  mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
  background: linear-gradient(
    var(--ring-1),
    var(--ring-2),
    var(--ring-3),
    var(--ring-4),
    var(--ring-5)
  ) border-box;
  mask-composite: exclude;
  animation: ring var(--ring-speed) ease-in-out infinite;
  --start: 180deg;
  --value: var(--start);
  --scale: 1;
  transform: rotateY(var(--value)) rotateX(var(--value)) rotateZ(var(--value)) scale(var(--scale));
}

.ai .rings::before {
  --start: 180deg;
}

.ai .rings::after {
  --start: 90deg;
}

@keyframes ring {
  from {
    --value: var(--start);
    --scale: 1;
  }
  50% {
    --scale: 1.15;
    --width-ratio: 1.35;
  }
  70% {
    --scale: 1;
    --value: calc(var(--start) + 180deg);
    --width-ratio: 1;
  }
  80% {
    --scale: 1.15;
    --width-ratio: 1.35;
  }
  to {
    --value: calc(var(--start) + 360deg);
    --scale: 1;
    --width-ratio: 1;
  }
}
/* ESG page — mobile: stack each section as title -> image -> content (desktop unchanged) */
@media(max-width:860px){
  .prod--stack{display:flex; flex-direction:column; align-items:flex-start; text-align:left; gap:10px}
  .prod--stack .prod-copy{display:contents}
  .prod--stack .eyebrow{order:1}
  .prod--stack h2{order:2; margin-bottom:2px}
  .prod--stack .prod-media{order:3; flex:none; width:100%; margin:8px 0}
  .prod--stack .lead{order:4}
  .prod--stack .btn{order:5; align-self:flex-start; margin-top:4px}
}

/* ===== Lingee demo iframe — scaled desktop dashboard, auto-playing ===== */
.demo-frame{position:relative; width:100%; max-width:1180px; margin:38px auto 0; aspect-ratio:1180/660; overflow:hidden; border-radius:20px; box-shadow:var(--shadow); background:#eef2f9; scroll-margin-top:96px}
.lingee-frame{position:absolute; top:0; left:0; width:1180px; height:660px; border:0; transform-origin:top left; display:block}
.demo-cta{display:none}
@media(max-width:820px){
  .lingee-frame{pointer-events:none}
  /* button sits BELOW the frame (no longer overlays the auto-play), outlined "See it in action" style */
  .demo-cta{display:flex; align-items:center; justify-content:center; gap:8px; width:100%; margin:14px auto 0; background:#fff; border:1px solid #dfe5ee; color:#16203a; text-decoration:none; border-radius:14px; padding:16px 20px; font-size:16px; font-weight:700; box-shadow:0 1px 2px rgba(20,30,60,.04)}
  .demo-cta:active{transform:scale(.99)}
}

/* ===== homepage assistant — auto-playing smart-search demo ===== */
.as-box{cursor:default}
.as-field{flex:1; min-width:0; overflow:hidden; white-space:nowrap; height:44px; line-height:44px; font-size:14.5px; color:var(--l-ink); text-align:left}
.as-text{white-space:nowrap}
.as-caret{display:none; width:2px; height:18px; background:var(--blue); margin-left:1px; border-radius:1px; vertical-align:-3px}
.as-box.caret .as-caret{display:inline-block; animation:asCaret 1s step-end infinite}
@keyframes asCaret{0%,50%{opacity:1} 51%,100%{opacity:0}}
.as-send.press{transform:scale(.94); filter:brightness(.96)}
.as-chip{user-select:none}
.as-chip.sel{border-color:#9b8cff; color:#5b6dff; background:#f1efff; box-shadow:0 6px 16px -8px rgba(123,108,255,.55)}
.as-out{min-height:104px; max-width:700px; margin:0 auto; position:relative}
.as-think{display:none; align-items:center; gap:9px; justify-content:flex-start; max-width:700px; margin:18px auto 0; text-align:left; color:#6b7488; font-size:13.5px}
.as-think.show{display:flex; animation:fadeUp .3s var(--ease)}
.as-think .as-ico2{color:#9b8cff}
.as-think.show .as-think-txt{background:linear-gradient(90deg,#9aa3b5 25%,#cdd3de 50%,#9aa3b5 75%); background-size:200% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:asShimmer 1.2s linear infinite}
@keyframes asShimmer{to{background-position:-200% 0}}
.as-dots{display:inline-flex; gap:4px}
.as-dots i{width:5px; height:5px; border-radius:50%; background:#b7bdca; display:block; animation:asDot 1s ease-in-out infinite}
.as-dots i:nth-child(2){animation-delay:.18s} .as-dots i:nth-child(3){animation-delay:.36s}
@keyframes asDot{0%,100%{opacity:.3; transform:translateY(0)} 50%{opacity:1; transform:translateY(-3px)}}
.as-ans-txt{margin:0}
.as-tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:11px}
.as-tag{font-size:12px; font-weight:700; color:#3b6fd6; background:#e7f0ff; border:1px solid rgba(35,134,238,.25); padding:5px 11px; border-radius:999px; opacity:0; transform:translateY(6px); transition:opacity .3s var(--ease), transform .3s var(--ease)}
.as-tag.in{opacity:1; transform:none}
.as-tag.metric{color:#0c8a4d; background:#eafaf1; border-color:rgba(12,138,77,.25)}
@media(prefers-reduced-motion:reduce){ .as-box.caret .as-caret,.as-dots i,.as-think.show .as-think-txt{animation:none} }

/* ===== pause heavy animations when their section is scrolled off-screen (CPU/battery) ===== */
.apaused, .apaused *{animation-play-state:paused !important}
.apaused .rings::before, .apaused .rings::after{animation-play-state:paused !important}

/* pause the orb while a modal is open OR the tab is hidden — orb is covered/not visible then, so zero visual change, and it stops the form's backdrop-blur from re-rendering an animating orb every frame */
body.modal-open .aios-stage, body.modal-open .aios-stage *,
body.tab-hidden .aios-stage, body.tab-hidden .aios-stage *{animation-play-state:paused !important}
body.modal-open .aios-stage .rings::before, body.modal-open .aios-stage .rings::after,
body.tab-hidden .aios-stage .rings::before, body.tab-hidden .aios-stage .rings::after{animation-play-state:paused !important}

/* custom dropdown — replaces native <select> (which renders oversized/clipped on mobile); fully controllable + testable */
.kf-sel{position:relative}
.kf-sel-btn{font:inherit; font-size:16px; height:46px; width:100%; display:flex; align-items:center; text-align:left; padding:0 40px 0 13px; border:1px solid #d6e2f5; border-radius:10px; background:#fff; color:var(--l-ink); cursor:pointer; transition:.15s; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center}
.kf-sel-val{color:#98a2b3}
.kf-sel.chosen .kf-sel-val{color:var(--l-ink)}
.kf-sel.open .kf-sel-btn{outline:0; border-color:var(--blue); box-shadow:0 0 0 3px rgba(33,131,233,.14)}
.kf-sel-list{position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:6; background:#fff; border:1px solid #d6e2f5; border-radius:10px; box-shadow:0 18px 44px -16px rgba(20,40,90,.4); list-style:none; margin:0; padding:5px; max-height:230px; overflow-y:auto; display:none}
.kf-sel.open .kf-sel-list{display:block}
.kf-sel.up .kf-sel-list{top:auto; bottom:calc(100% + 6px)}
.kf-sel-list li{padding:11px 12px; border-radius:7px; font-size:15px; color:var(--l-ink); cursor:pointer}
.kf-sel-list li:hover,.kf-sel-list li.on{background:#eef4ff; color:var(--blue)}
.kf-field.err .kf-sel-btn{border-color:#dc2626; background:#fef5f5}
.kf-field input::placeholder,.kf-field textarea::placeholder{color:#aab4c5}
