/* ===== Light: Indigo + matcha (default). Dark: amber + black, via data-theme="dark" ===== */
:root{
 --bg:#F3F5FC;--surface:#FFFFFF;--text:#161C25;--muted:#4D5565;--line:rgba(22,28,37,.13);
 --indigo:#4A55B8;--on-indigo:#FFFFFF;--indigo-text:#4A55B8;
 --amber:#E8A33D;--on-amber:#231604;--amber-text:#8F5400;
 --matcha:#9DB87A;--on-matcha:#1B2410;--matcha-text:#4A672A;
 --coral:#EE5A3C;--on-coral:#2B0C06;--coral-text:#B23A1F;
 --accent:var(--indigo);--on-accent:#FFFFFF;--accent-text:var(--indigo-text);
 --box-shadow:0 30px 60px -24px rgba(22,28,37,.18),0 8px 20px rgba(22,28,37,.05);
 --tile-hover:0 18px 36px -18px rgba(22,28,37,.28);
 --r:24px;--gap:14px;
 color-scheme:light;
 box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
:root[data-theme="dark"]{
 --bg:#0D1117;--surface:#161C25;--text:#EDEFF3;--muted:#A3ADBF;--line:rgba(237,239,243,.11);
 --blk:#0C0D10;--blk2:#1A1C21;--cream:#F6F1E7;
 --amber-end:color-mix(in srgb,#E8A33D 68%,#fff);--amber-tag:#231604;--amber-ic:var(--blk);--amber-on-ic:#E8A33D;--amber-text:#F5B85C;
 --coral:#E8A33D;--on-coral:#231604;--coral-end:var(--amber-end);--coral-tag:#231604;--coral-ic:var(--blk);--coral-on-ic:#E8A33D;--coral-text:#F5B85C;
 --indigo:var(--blk2);--on-indigo:var(--cream);--indigo-end:var(--blk);--indigo-tag:#E8A33D;--indigo-ic:#E8A33D;--indigo-on-ic:var(--blk);--indigo-text:#F5B85C;
 --matcha:var(--blk2);--on-matcha:var(--cream);--matcha-end:var(--blk);--matcha-tag:#E8A33D;--matcha-ic:#E8A33D;--matcha-on-ic:var(--blk);--matcha-text:#F5B85C;
 --accent:#E8A33D;--on-accent:#231604;--accent-text:#F5B85C;
 --box-shadow:0 30px 60px -24px rgba(0,0,0,.65),0 8px 20px rgba(0,0,0,.3);
 --tile-hover:0 18px 36px -18px rgba(0,0,0,.7);
 color-scheme:dark}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:calc(72px + env(safe-area-inset-top,0px))}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased;transition:background-color .25s ease,color .25s ease}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:30}
h1,h2,h3{font-family:'Quicksand',sans-serif;line-height:1.15;margin:0}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

/* header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:18px;height:64px}
.brand{display:flex;align-items:center;gap:10px;font:700 18px 'Quicksand',sans-serif;text-decoration:none}
.brand img{width:34px;height:34px;display:block}
nav{display:flex;gap:18px;margin-left:auto;font-size:14px;font-weight:500}
nav a{text-decoration:none;color:var(--muted)}nav a:hover{color:var(--text)}
.lang{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.lang a{color:var(--muted);font:600 12px 'Inter',sans-serif;padding:6px 11px;text-decoration:none}
.lang a[aria-current="true"]{background:var(--accent);color:var(--on-accent)}
.theme{flex:0 0 auto;width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);cursor:pointer;padding:0}
.theme:hover{color:var(--text);border-color:var(--accent)}
.theme svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.theme .moon,:root[data-theme="dark"] .theme .sun{display:none}
:root[data-theme="dark"] .theme .moon{display:block}

/* hero */
.hero{text-align:center}
.hero img{width:104px;height:104px;margin-bottom:18px}
.kicker{font:700 13px 'Quicksand',sans-serif;letter-spacing:2px;text-transform:uppercase;color:var(--accent-text);margin:0 0 10px}
.hero h1{font-size:clamp(34px,6vw,58px);max-width:14ch;margin:0 auto 16px;letter-spacing:-.5px}
.lede{max-width:62ch;margin:0 auto 26px;font-size:18px;color:var(--muted)}
.cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-block;padding:12px 22px;border-radius:999px;font:600 15px 'Inter',sans-serif;text-decoration:none;border:1px solid var(--accent-text);background:var(--surface);color:var(--accent-text);transition:transform .15s ease}
.btn.primary{background:var(--accent);color:var(--on-accent);border-color:transparent}
.btn:hover{transform:translateY(-1px)}
.pills{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.pills li{padding:6px 14px;border-radius:999px;font-size:13px;font-weight:500;background:var(--indigo);color:var(--on-indigo)}
.pills li:nth-child(2){background:var(--amber);color:var(--on-amber)}
.pills li:nth-child(3){background:var(--matcha);color:var(--on-matcha)}
:root[data-theme="dark"] .pills li{box-shadow:inset 0 0 0 1px var(--line)}
.beta{margin:14px auto 0;max-width:60ch;font-size:13.5px;color:var(--muted)}

/* section boxes */
main{padding-bottom:12px;overflow:clip}
main>section{padding:46px 0;overflow-x:clip}
main>section>.wrap,main>.wrap.hero{
 width:calc(100% - 40px);max-width:1040px;margin:0 auto;padding:44px 40px;
 background:var(--surface);border:1px solid var(--line);border-radius:28px;box-shadow:var(--box-shadow)}
main>.wrap.hero{margin-top:28px;margin-bottom:14px;padding:64px 40px 52px}
main>.wrap.hero.hero2{margin-top:0;margin-bottom:48px;padding:26px 40px 24px}
.head{max-width:60ch;margin:0 0 28px}
.head h2{font-size:clamp(26px,4vw,36px);margin-bottom:8px}
.head p{margin:0;color:var(--muted)}

/* grids */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--gap)}
.flow{display:grid;gap:var(--gap);counter-reset:s;padding:0;list-style:none;margin:0}
.priv{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap)}
main #apps .cards,main #apps2 .cards,main #demo .cards,main #demo-top .cards{grid-template-columns:repeat(12,1fr)}
main #apps .card:nth-child(1),main #apps2 .card:nth-child(2){grid-column:span 7}
main #apps .card:nth-child(2),main #apps2 .card:nth-child(1){grid-column:span 5}
main #connect .flow{grid-template-columns:repeat(4,1fr)}
main #connect .flow li:nth-child(1){grid-column:1/3;grid-row:1/3;display:flex;flex-direction:column;justify-content:flex-end;padding:30px}
main #connect .flow li:nth-child(2){grid-column:3/5}
main #connect .flow li:nth-child(3){grid-column:3}
main #connect .flow li:nth-child(4){grid-column:4}
main #why .pt{grid-template-columns:repeat(6,1fr)}
main #why .pt>div:nth-child(1),main #why .pt>div:nth-child(4){grid-column:span 2}
main #why .pt>div:nth-child(2),main #why .pt>div:nth-child(3){grid-column:span 4}
main #privacy .priv{grid-template-columns:repeat(6,1fr)}
main #privacy .priv li{grid-column:span 2}
main #privacy .priv li:nth-child(1),main #privacy .priv li:nth-child(2){grid-column:span 3}
main #start .flow{grid-template-columns:1fr 1fr}
main #start .flow li:nth-child(1){grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;column-gap:22px;align-items:center;padding:30px 32px}

/* ===== tiles: soft (tinted) by default ===== */
main #apps .card,main #apps2 .card,main #connect .flow li,main #why .pt>div,main #privacy .priv li,main #start .flow li,
main #demo .demo-tile,main #demo .order-tile,main #demo .price-tile,main #demo-top .demo-tile,main #demo-top .order-tile{
 --tint:var(--indigo);--on-tint:var(--on-indigo);--tint-text:var(--indigo-text);
 position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);padding:26px;
 background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--tint) 22%,transparent),transparent 58%),color-mix(in srgb,var(--tint) 8%,var(--bg));
 transition:transform .2s ease,box-shadow .25s ease,border-color .25s ease}
main #apps .card:hover,main #apps2 .card:hover,main #connect .flow li:hover,main #why .pt>div:hover,main #privacy .priv li:hover,main #start .flow li:hover,
main #demo .order-tile:hover,main #demo .price-tile:hover,main #demo-top .order-tile:hover{
 border-color:color-mix(in srgb,var(--tint) 50%,var(--line));box-shadow:var(--tile-hover)}

/* colour assignments: one hue per role, as in the four-app lineup.
   In dark, amber + coral read as amber and matcha + indigo read as black, so neighbours alternate. */
main #apps .card:nth-child(1),main #connect .flow li:nth-child(1),main #why .pt>div:nth-child(4),main #privacy .priv li:nth-child(1),main #privacy .priv li:nth-child(5),main #start .flow li:nth-child(1),main #demo .price-tile{--tint:var(--amber);--on-tint:var(--on-amber);--tint-text:var(--amber-text);--tint-end:var(--amber-end);--tint-tag:var(--amber-tag);--tint-ic:var(--amber-ic);--tint-on-ic:var(--amber-on-ic)}
main #apps .card:nth-child(2),main #connect .flow li:nth-child(2),main #why .pt>div:nth-child(2),main #privacy .priv li:nth-child(2),main #demo .order-tile,main #demo-top .order-tile{--tint:var(--matcha);--on-tint:var(--on-matcha);--tint-text:var(--matcha-text);--tint-end:var(--matcha-end);--tint-tag:var(--matcha-tag);--tint-ic:var(--matcha-ic);--tint-on-ic:var(--matcha-on-ic)}
main #apps2 .card:nth-child(1),main #connect .flow li:nth-child(3),main #why .pt>div:nth-child(3),main #privacy .priv li:nth-child(4),main #start .flow li:nth-child(2),main #demo .demo-tile,main #demo-top .demo-tile{--tint:var(--indigo);--on-tint:var(--on-indigo);--tint-text:var(--indigo-text);--tint-end:var(--indigo-end);--tint-tag:var(--indigo-tag);--tint-ic:var(--indigo-ic);--tint-on-ic:var(--indigo-on-ic)}
main #apps2 .card:nth-child(2),main #connect .flow li:nth-child(4),main #why .pt>div:nth-child(1),main #privacy .priv li:nth-child(3),main #start .flow li:nth-child(3){--tint:var(--coral);--on-tint:var(--on-coral);--tint-text:var(--coral-text);--tint-end:var(--coral-end);--tint-tag:var(--coral-tag);--tint-ic:var(--coral-ic);--tint-on-ic:var(--coral-on-ic)}

/* filled tiles: apps, roles, why, privacy and the main call to action */
main #apps .card,main #apps2 .card,main #connect .flow li,main #why .pt>div,main #privacy .priv li,main #start .flow li,main #demo .order-tile,main #demo-top .order-tile,main #demo .demo-tile,main #demo-top .demo-tile{
 background:radial-gradient(circle at 100% 0%,rgba(255,255,255,.22),transparent 55%),var(--tint);color:var(--on-tint);border-color:transparent}
:is(main #apps .card,main #apps2 .card,main #connect .flow li,main #why .pt>div,main #privacy .priv li,main #start .flow li,main #demo .order-tile,main #demo-top .order-tile,main #demo .demo-tile,main #demo-top .demo-tile) :is(h3,p,li,.tag){color:var(--on-tint)}
:is(main #apps .card,main #apps2 .card,main #connect .flow li,main #why .pt>div,main #privacy .priv li,main #start .flow li,main #demo .order-tile,main #demo-top .order-tile,main #demo .demo-tile,main #demo-top .demo-tile) p:not(.tag){opacity:.86}
main #apps .card:hover,main #apps2 .card:hover,main #connect .flow li:hover,main #why .pt>div:hover,main #privacy .priv li:hover,main #start .flow li:hover,main #demo .order-tile:hover,main #demo-top .order-tile:hover{border-color:transparent;transform:translateY(-2px)}

/* dark: amber + black alternating bento, every tile filled */
:root[data-theme="dark"] :is(main #apps .card,main #apps2 .card,main #connect .flow li,main #why .pt>div,main #privacy .priv li,main #start .flow li,main #demo .demo-tile,main #demo .order-tile,main #demo .price-tile,main #demo-top .demo-tile,main #demo-top .order-tile){
 background:linear-gradient(160deg,var(--tint),var(--tint-end));color:var(--on-tint);border-color:transparent}
:root[data-theme="dark"] :is(main #apps .card,main #apps2 .card,main #connect .flow li,main #why .pt>div,main #privacy .priv li,main #start .flow li,main #demo .demo-tile,main #demo .order-tile,main #demo .price-tile,main #demo-top .demo-tile,main #demo-top .order-tile) :is(h3,p,li){color:var(--on-tint)}
:root[data-theme="dark"] :is(main #apps .card,main #apps2 .card,main #connect .flow li,main #why .pt>div,main #privacy .priv li,main #start .flow li,main #demo .demo-tile,main #demo .order-tile,main #demo .price-tile,main #demo-top .demo-tile,main #demo-top .order-tile) .tag{color:var(--tint-tag)}
:root[data-theme="dark"] :is(main #apps .card,main #apps2 .card,main #connect .flow li,main #why .pt>div,main #privacy .priv li,main #start .flow li,main #demo .order-tile,main #demo .price-tile,main #demo-top .order-tile) p:not(.tag){opacity:.8}
:root[data-theme="dark"] :is(main #apps .card,main #apps2 .card,main #connect .flow li,main #why .pt>div,main #privacy .priv li,main #start .flow li,main #demo .order-tile,main #demo .price-tile,main #demo-top .order-tile):hover{border-color:var(--amber)}
:root[data-theme="dark"] main .ic,:root[data-theme="dark"] main #connect .flow li:nth-child(1) .ic{background:var(--tint-ic);color:var(--tint-on-ic)}
:root[data-theme="dark"] main #start .flow li::before,:root[data-theme="dark"] main #start .flow li:nth-child(1)::before{background:var(--tint-ic);color:var(--tint-on-ic)}
:root[data-theme="dark"] :is(main #demo .demo-tile,main #demo-top .demo-tile){--tint:var(--amber);--on-tint:var(--on-amber);--tint-end:var(--amber-end);--tint-tag:var(--amber-tag)}
:root[data-theme="dark"] :is(main #demo .demo-tile,main #demo-top .demo-tile) .btn{background:var(--blk);color:#FFFFFF}
/* tile content */
.card h3{font-size:26px;margin-bottom:2px}
.tag{margin:2px 0 10px;font-size:12px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--tint-text)}
.card p{margin:0 0 12px;font-size:15px;color:var(--muted)}
.card ul{margin:0;padding-left:18px;font-size:14.5px}
.card li{margin:5px 0}
.flow h3{font-size:18px;margin-bottom:6px}.flow p{margin:0;font-size:14.5px;color:var(--muted)}
.pt h3{font-size:22px;margin-bottom:6px}.pt p{margin:0;font-size:15px;color:var(--muted)}
.ic{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:14px;background:color-mix(in srgb,var(--on-tint) 14%,transparent);color:var(--on-tint);margin-bottom:12px}
.ic svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
main #connect .flow li:nth-child(1) h3{font-size:30px}
main #connect .flow li:nth-child(1) p{font-size:16.5px}
main #connect .flow li:nth-child(1) .ic{width:64px;height:64px;border-radius:20px;margin-bottom:auto}
main #connect .flow li:nth-child(1) .ic svg{width:34px;height:34px}
main #privacy .priv li{padding:24px 24px 24px 60px;font-size:16px}
main #privacy .priv li::before{content:"";position:absolute;left:24px;top:31px;width:14px;height:8px;border-left:3px solid var(--on-tint);border-bottom:3px solid var(--on-tint);transform:rotate(-45deg)}
:root[data-theme="dark"] main #privacy .priv li::before{border-color:var(--tint-tag)}
main #start .flow li::before{counter-increment:s;content:counter(s);display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--on-tint);color:var(--tint);font:700 16px 'Quicksand',sans-serif;margin-bottom:16px}
main #start .flow h3{font-size:22px}
main #start .flow li:nth-child(1)::before{grid-row:1/3;width:56px;height:56px;font-size:24px;margin:0;background:var(--on-tint);color:var(--tint)}
main #start .flow li:nth-child(1) h3{font-size:28px;margin:0 0 4px}
main #start .flow li:nth-child(1) p{font-size:17px}

/* download card */
.soon{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.soon span{padding:4px 11px;border:1px dashed var(--line);border-radius:999px;font-size:12.5px;color:var(--muted)}
.soon b{font-weight:600;color:var(--text)}
.contact{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}

/* book a demo, order form, price sheet */
main #demo .demo-tile,main #demo .order-tile,main #demo-top .demo-tile,main #demo-top .order-tile{display:flex;padding:30px}
main #demo .demo-tile,main #demo-top .demo-tile{grid-column:span 7;align-items:center;gap:28px}
main #demo .order-tile,main #demo-top .order-tile{grid-column:span 5;flex-direction:column;justify-content:center}
main #demo .qr{flex:0 0 180px;width:180px;height:180px;background:#fff;border-radius:20px;padding:6px;box-shadow:0 12px 28px -14px rgba(14,31,64,.55)}
main #demo .qr svg,main #demo-top .qr svg{display:block;width:100%;height:100%;border-radius:14px}
main #demo h3{font-size:28px;margin-bottom:6px}
main #demo p{margin:0 0 18px;font-size:16px;color:var(--muted)}
main #demo .demo-tile .btn,main #demo-top .demo-tile .btn{background:#FFFFFF;color:#3A44A0;border-color:transparent}
main #demo .order-tile .btn,main #demo-top .order-tile .btn{align-self:flex-start}
/* buttons and download details inside filled tiles (light) */
:root:not([data-theme="dark"]) :is(main #start .flow li,main #demo .order-tile,main #demo-top .order-tile) .btn{background:transparent;color:var(--on-tint);border-color:var(--on-tint)}
:root:not([data-theme="dark"]) :is(main #start .flow li,main #demo .order-tile,main #demo-top .order-tile) .btn.primary{background:var(--on-tint);color:var(--tint);border-color:transparent}
:root:not([data-theme="dark"]) main #start .flow li :is(.soon span,.soon b){color:var(--on-tint)}
:root:not([data-theme="dark"]) main #start .flow li .soon span{border-color:color-mix(in srgb,var(--on-tint) 30%,transparent)}
/* order form is matcha green in both themes */
:root[data-theme="dark"] :is(main #demo .order-tile,main #demo-top .order-tile){--tint:#9DB87A;--on-tint:#1B2410;--tint-end:color-mix(in srgb,#9DB87A 70%,#fff);--tint-tag:#1B2410}
:root[data-theme="dark"] :is(main #demo .order-tile,main #demo-top .order-tile) .btn{background:#1B2410;color:#9DB87A;border-color:transparent}
/* Zalo buttons are amber in both themes */
a.btn[href*="zalo.me"]{background:var(--amber);color:var(--on-amber);border-color:transparent}
main #demo .price-tile{grid-column:1/-1;padding:30px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 28px}
main #demo .price-tile h3{margin-bottom:6px}
main #demo .price-tile p{margin:0;max-width:560px}
.price-actions{display:flex;flex-wrap:wrap;gap:10px}
:root[data-theme="dark"] main #demo .price-tile .btn.primary{background:var(--blk);color:#FFFFFF}
main #demo-top{padding:8px 0 14px}
main #demo-top>.wrap{padding:14px}
main #demo-top .cards{gap:12px}
main #demo-top .demo-tile,main #demo-top .order-tile{border-radius:20px;padding:16px 22px}
main #demo-top .demo-tile{gap:18px}
main #demo-top .qr{flex:0 0 104px;width:104px;height:104px;background:#fff;border-radius:14px;padding:4px;box-shadow:0 8px 20px -12px rgba(14,31,64,.55)}
main #demo-top h3{font-size:21px;margin-bottom:2px}
main #demo-top p{margin:0 0 10px;font-size:14.5px;line-height:1.45;color:var(--muted)}
main #demo-top .btn{padding:8px 18px;font-size:14px}

/* video, FAQ */
main #video .head{max-width:none;text-align:center;margin-inline:auto}
main #video .head p{margin-inline:auto;max-width:60ch}
main #video .vid{position:relative;max-width:880px;margin:0 auto;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:#0C0D10;border:1px solid var(--line);box-shadow:0 24px 48px -24px rgba(22,28,37,.45)}
main #video .vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.faq{max-width:70ch;display:grid;gap:10px}
.faq details{border:1px solid var(--line);border-radius:14px;background:var(--bg);padding:12px 16px}
.faq details[open]{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.faq summary{cursor:pointer;font:600 16px 'Quicksand',sans-serif}
.faq p{margin:8px 0 0;color:var(--muted);font-size:15px}

/* footer */
footer{padding:34px 0 46px;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted)}
footer .wrap{display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between}
footer .hits{align-items:center;margin-top:18px}
.social{display:flex;gap:8px;margin:0;font-size:inherit;font-weight:400}
.social a{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);text-decoration:none}
.social a:hover{color:var(--text);border-color:var(--accent)}

/* floating cards on scroll */
.fl-on .cards>*,.fl-on .flow li,.fl-on .priv li,.fl-on main>section>.wrap,.fl-on main>.wrap.hero{will-change:transform,opacity}

/* small screens */
@media (max-width:820px){
 main #apps .cards,main #apps2 .cards,main #why .pt,main #privacy .priv,main #start .flow,main #demo .cards,main #demo-top .cards{grid-template-columns:1fr}
 main #connect .flow{grid-template-columns:1fr 1fr}
 main #apps .card,main #apps2 .card,main #why .pt>div,main #privacy .priv li,main #start .flow li,main #demo .demo-tile,main #demo .order-tile,main #demo .price-tile,main #demo-top .demo-tile,main #demo-top .order-tile{grid-column:1/-1!important}
 main #connect .flow li:nth-child(1){grid-column:1/-1;grid-row:auto;min-height:220px}
 main #connect .flow li:nth-child(2){grid-column:1/-1}
 main #connect .flow li:nth-child(3),main #connect .flow li:nth-child(4){grid-column:auto}
 main #start .flow li:nth-child(1){display:block;padding:26px}
 main #start .flow li:nth-child(1)::before{width:40px;height:40px;font-size:18px;margin-bottom:14px}
 main #start .flow li:nth-child(1) h3{font-size:24px}
 main #demo .demo-tile{flex-direction:column;align-items:flex-start;gap:20px}
 main #demo-top>.wrap{padding:12px}
 main #demo-top .qr{flex-basis:88px;width:88px;height:88px}
}
@media (max-width:760px){
 nav{display:none}.lang{margin-left:auto}
 main>section>.wrap,main>.wrap.hero{padding:30px 20px;border-radius:22px}
 main>.wrap.hero{padding:40px 20px 34px}
 main>.wrap.hero.hero2{padding:20px}
}
@media (max-width:480px){main #connect .flow{grid-template-columns:1fr}main #connect .flow li:nth-child(n){grid-column:auto}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn:hover{transform:none}body{transition:none}}

/* ===== Inner pages (apps, international schools) ===== */
.crumbs{margin:0 0 14px;font-size:13px;color:var(--muted)}
.crumbs a{color:var(--accent-text);text-decoration:none}.crumbs a:hover{text-decoration:underline}
main>.wrap.hero.inner{text-align:left;padding:48px 40px 40px}
main>.wrap.hero.inner h1{margin:0 0 14px;max-width:22ch}
main>.wrap.hero.inner .lede{margin:0 0 24px}
main>.wrap.hero.inner .cta{justify-content:flex-start}
.t-amber{--tint:var(--amber);--on-tint:var(--on-amber);--tint-end:var(--amber-end);--tint-tag:var(--amber-tag)}
.t-matcha{--tint:var(--matcha);--on-tint:var(--on-matcha);--tint-end:var(--matcha-end);--tint-tag:var(--matcha-tag)}
.t-indigo{--tint:var(--indigo);--on-tint:var(--on-indigo);--tint-end:var(--indigo-end);--tint-tag:var(--indigo-tag)}
.t-coral{--tint:var(--coral);--on-tint:var(--on-coral);--tint-end:var(--coral-end);--tint-tag:var(--coral-tag)}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.tiles.n4{grid-template-columns:repeat(4,1fr)}.tiles.n2{grid-template-columns:repeat(2,1fr)}
@media (max-width:980px){.tiles,.tiles.n4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.tiles,.tiles.n4,.tiles.n2{grid-template-columns:1fr}}
.tile{border-radius:var(--r);padding:24px;background:radial-gradient(circle at 100% 0%,rgba(255,255,255,.22),transparent 55%),var(--tint);color:var(--on-tint);transition:transform .2s ease}
.tile:hover{transform:translateY(-2px)}
.tile h3{font-size:19px;margin:0 0 6px;color:var(--on-tint)}
.tile p{margin:0;font-size:15px;color:var(--on-tint);opacity:.86}
.tile ul{margin:8px 0 0;padding-left:18px;font-size:14.5px}.tile li{margin:4px 0}
:root[data-theme="dark"] .tile{background:linear-gradient(160deg,var(--tint),var(--tint-end))}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.chips li{padding:6px 13px;border-radius:999px;font-size:13.5px;background:var(--bg);border:1px solid var(--line)}
.table-wrap{overflow-x:auto;border-radius:16px;border:1px solid var(--line)}
.ptable{width:100%;border-collapse:collapse;font-size:14.5px;min-width:520px}
.ptable th{background:#161C25;color:var(--amber);font:700 12.5px 'Inter',sans-serif;text-align:left;padding:11px 14px;letter-spacing:.3px}
.ptable td{padding:11px 14px;border-top:1px solid var(--line);color:var(--muted)}
.ptable td:first-child{font-weight:600;color:var(--text)}
.ptable tr.total td{font-weight:700;color:var(--text);background:color-mix(in srgb,var(--amber) 12%,transparent)}
.note{margin:12px 0 0;font-size:13.5px;font-style:italic;color:var(--muted)}
.section-gap{margin-top:28px}
.cta-band{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 28px;border-radius:var(--r);padding:30px;
 background:radial-gradient(circle at 100% 0%,rgba(255,255,255,.22),transparent 55%),var(--indigo);color:var(--on-indigo)}
.cta-band h2{margin:0 0 6px;font-size:26px;color:var(--on-indigo)}.cta-band p{margin:0;max-width:560px;opacity:.88}
.cta-band .btn{background:#FFFFFF;color:#3A44A0;border-color:transparent}
.cta-band .btn.alt{background:transparent;color:var(--on-indigo);border-color:currentColor}
:root[data-theme="dark"] .cta-band{background:linear-gradient(160deg,var(--amber),var(--amber-end));color:var(--on-amber)}
:root[data-theme="dark"] .cta-band :is(h2,p,.btn.alt){color:var(--on-amber)}
:root[data-theme="dark"] .cta-band .btn{background:#0C0D10;color:#FFFFFF}
.more-apps{display:flex;flex-wrap:wrap;gap:10px}
@media (max-width:760px){main>.wrap.hero.inner{padding:32px 20px}.cta-band{padding:24px}}
.card .more{display:inline-block;margin-top:12px;font-weight:600;font-size:14.5px;color:inherit;text-decoration:underline;text-underline-offset:3px}
footer .sitelinks{margin-top:14px}footer .sitelinks nav{display:flex;flex-wrap:wrap;gap:4px 8px;margin:0;font-size:13.5px}
footer .sitelinks a{color:var(--muted)}footer .sitelinks a:hover{color:var(--text)}
.chips + .table-wrap{margin-top:22px}
:root[data-theme="dark"] .cta-band .btn.alt{background:transparent;color:var(--on-amber);border-color:currentColor}
