@font-face{font-family:Corm;src:url(fonts/cormorant.woff2) format('woff2');font-weight:300 700;font-display:swap}
@font-face{font-family:Corm;src:url(fonts/cormorant-italic.woff2) format('woff2');font-style:italic;font-weight:300 700;font-display:swap}
@font-face{font-family:Inter;src:url(fonts/inter.woff2) format('woff2');font-weight:100 900;font-display:swap}

/* Base tokens follow the viewer's Telegram theme; fallbacks for a normal browser */
:root{
  --bg:var(--tg-theme-secondary-bg-color,#f1f2f5);
  --card:var(--tg-theme-section-bg-color,var(--tg-theme-bg-color,#ffffff));
  --fg:var(--tg-theme-text-color,#14161a);
  --hint:var(--tg-theme-hint-color,#6c7380);
  --link:var(--tg-theme-link-color,#2481cc);
  --line:color-mix(in srgb,var(--fg) 10%,transparent);
  --radius:16px;
  --accent:#2481cc;
  --accent-fg:#ffffff;
}
@media (prefers-color-scheme:dark){
  :root:not(.tg){--bg:#0f1115;--card:#1a1d23;--fg:#eef0f3;--hint:#8b93a1;--link:#6ab3f3;color-scheme:dark}
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--fg)}
body{font:15px/1.45 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
img{max-width:100%;display:block}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:var(--link)}

/* Brand accents */
[data-brand=johngems]{--accent:#a9844a;--accent-fg:#fff}
[data-brand=transconnect]{--accent:#d32f2f;--accent-fg:#fff}
[data-brand=transmony]{--accent:#1f3a8a;--accent-fg:#fff}
[data-brand=safex]{--accent:#0aa7c9;--accent-fg:#04131a}

/* Top bar + brand switcher */
.topbar{position:sticky;top:0;z-index:5;background:var(--bg);padding:12px 16px 10px;border-bottom:1px solid var(--line)}
.hello{font-size:13px;color:var(--hint);margin-bottom:8px}
.hello b{color:var(--fg);font-weight:600}
.brands{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.brand-tab{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 4px 7px;border-radius:14px;background:var(--card);border:1.5px solid transparent;transition:border-color .15s,transform .1s}
.brand-tab:active{transform:scale(.97)}
.brand-tab .chip{height:30px;width:100%;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:8px;padding:3px 6px}
.brand-tab .chip img{max-height:24px;width:auto}
.brand-tab span{font-size:11px;font-weight:600;letter-spacing:.01em;color:var(--hint);white-space:nowrap}
.brand-tab[aria-selected=true]{border-color:var(--tab-accent)}
.brand-tab[aria-selected=true] span{color:var(--fg)}

main{padding:14px 16px 0;display:flex;flex-direction:column;gap:14px;outline:none}

/* Shared blocks */
.hero{border-radius:22px;overflow:hidden;position:relative;padding:22px 20px;min-height:220px;display:flex;flex-direction:column;justify-content:flex-end}
.hero h1{font-size:28px;line-height:1.08;letter-spacing:-.01em;text-wrap:balance}
.hero p{font-size:14px;margin-top:8px;max-width:30ch;opacity:.85}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.section{background:var(--card);border-radius:var(--radius);padding:16px}
.section h2{font-size:17px;font-weight:700;margin-bottom:12px;text-wrap:balance}
.section .sub{font-size:13px;color:var(--hint);margin:-8px 0 12px}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 16px;border-radius:12px;font-weight:600;font-size:15px;background:var(--accent);color:var(--accent-fg);text-decoration:none}
.btn svg{width:18px;height:18px}
.btn.ghost{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--fg)}
.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.list{display:flex;flex-direction:column}
.list .row{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-top:1px solid var(--line)}
.list .row:first-child{border-top:0;padding-top:0}
.list .row:last-child{padding-bottom:0}
.ico{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
[data-brand=safex] .ico{color:#0a8fae}
.ico svg{width:19px;height:19px}
.row b{display:block;font-size:15px}
.row small{display:block;color:var(--hint);font-size:13px;margin-top:1px}
.contact{display:flex;flex-direction:column}
.contact button{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line);text-align:left;width:100%}
.contact button:first-child{border-top:0;padding-top:0}
.contact button svg.c{width:20px;height:20px;color:var(--accent);flex:none}
[data-brand=safex] .contact button svg.c{color:#0a8fae}
.contact .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.contact .chev{color:var(--hint);font-size:18px}
.note{font-size:12px;color:var(--hint);line-height:1.5}

/* ---------- John Gems ---------- */
.jg-hero{background:#f5f0e7;color:#1c1813;min-height:300px;padding:0;display:grid;grid-template-columns:1fr 44%;align-items:stretch}
.jg-hero .copy{padding:22px 0 22px 20px;display:flex;flex-direction:column;justify-content:center}
.jg-hero .eyebrow{color:#a9844a}
.jg-hero h1{font-family:Corm,Georgia,serif;font-weight:600;font-size:34px;margin-top:8px}
.jg-hero h1 i{color:#a9844a;font-weight:500}
.jg-hero p{color:#6d6455}
.jg-hero .ph{background:#fff 50% 0/auto 116% no-repeat;border-radius:120px 120px 0 0;margin:18px 16px 0 6px;box-shadow:0 18px 30px rgba(60,40,10,.15)}
.cats{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;margin:0 -16px;padding-left:16px;padding-right:16px;scrollbar-width:none}
.cats::-webkit-scrollbar{display:none}
.cat{flex:none;padding:8px 14px;border-radius:999px;font-size:13px;font-weight:600;background:color-mix(in srgb,var(--fg) 6%,transparent);color:var(--fg)}
.cat[aria-pressed=true]{background:#a9844a;color:#fff}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.prod{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;background:color-mix(in srgb,var(--fg) 4%,transparent);min-width:0}
.prod .im{aspect-ratio:1;background:#f3f3f3;overflow:hidden}
.prod .im img{width:100%;height:116%;object-fit:cover;object-position:50% 0}
.prod .meta{padding:9px 10px 10px;display:flex;flex-direction:column;gap:8px;flex:1}
.prod .nm{font-family:Corm,Georgia,serif;font-weight:700;font-size:16px;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.3em}
.prod .act{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:auto}
.prod .act button{padding:8px 0;border-radius:9px;font-size:12px;font-weight:700}
.prod .act .v{background:#a9844a;color:#fff}
.prod .act .e{background:color-mix(in srgb,#25d366 16%,transparent);color:var(--fg)}
.skel{aspect-ratio:.72;border-radius:14px;background:linear-gradient(90deg,color-mix(in srgb,var(--fg) 5%,transparent),color-mix(in srgb,var(--fg) 10%,transparent),color-mix(in srgb,var(--fg) 5%,transparent));background-size:200% 100%;animation:sk 1.2s infinite}
@keyframes sk{to{background-position:-200% 0}}
.more{margin-top:12px}
.jg-serif{font-family:Corm,Georgia,serif;font-size:19px;font-weight:700}

/* ---------- TransConnect ---------- */
.tc-hero{background:linear-gradient(160deg,#0b1f4d 0%,#13306f 60%,#1a3d86 100%);color:#fff;min-height:290px;padding-right:44%}
.tc-hero .eyebrow{color:#ffd23f}
.tc-hero .ph{position:absolute;right:-4%;bottom:0;top:0;width:54%;background:url(img/tc-phone.svg) center/contain no-repeat}
.tc-hero h1,.tc-hero p,.tc-hero .eyebrow{position:relative}
.promo{border-radius:var(--radius);padding:16px;background:#ffd23f;color:#111;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center}
.promo .pct{grid-row:span 2;font-size:40px;font-weight:900;line-height:1;letter-spacing:-.03em;color:#c62828}
.promo .pct small{font-size:14px;font-weight:800;display:block;letter-spacing:.06em;color:#111}
.promo .lbl{font-size:13px;font-weight:600}
.promo .code{display:flex;gap:8px;align-items:center}
.promo .code b{font:800 20px/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.14em;background:#fff;border:2px dashed #c62828;border-radius:8px;padding:7px 10px}
.promo .code button{font-size:12px;font-weight:700;background:#111;color:#ffd23f;border-radius:8px;padding:9px 11px}
.dests{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.dest{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border-radius:12px;background:color-mix(in srgb,var(--fg) 5%,transparent);font-size:12.5px;font-weight:600;text-align:center}
.dest img,.dest .eu{width:34px;height:23px;border-radius:4px;object-fit:cover;box-shadow:0 0 0 1px var(--line)}
.dest .eu{background:#1f3d99;display:grid;place-items:center}
.steps{display:grid;gap:8px;counter-reset:s}
.step{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;border:1px dashed color-mix(in srgb,var(--fg) 22%,transparent)}
.step:before{counter-increment:s;content:counter(s);flex:none;width:30px;height:30px;border-radius:50%;background:#0b1f4d;color:#ffd23f;font-weight:800;display:grid;place-items:center}
.partner{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--hint)}

/* ---------- TRANSMONY ---------- */
.tm-hero{background:linear-gradient(180deg,rgba(8,20,58,0) 0%,rgba(8,20,58,.25) 38%,rgba(8,20,58,.96) 62%),url(img/tm-skyline.svg) center top/100% auto no-repeat,#08143a;color:#fff;min-height:330px;justify-content:flex-start;padding-top:20px}
.tm-hero .eyebrow{color:#e7c873}
.tm-hero .card{width:62%;margin:2px 0 12px auto;transform:rotate(-7deg);filter:drop-shadow(0 14px 22px rgba(0,0,0,.45))}
.tm-hero h1{font-size:26px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.stats div{padding:12px 4px;border-radius:12px;background:color-mix(in srgb,#1f3a8a 10%,transparent)}
.stats b{display:block;font-size:20px;font-weight:800;color:var(--fg);font-variant-numeric:tabular-nums}
.stats small{font-size:11.5px;color:var(--hint)}
[data-brand=transmony] .btn:not(.ghost){background:#1f3a8a}
.gold{color:#b08a2e}

/* ---------- SAFEX ---------- */
.sx-hero{background:#06121a url(img/sx-market.svg) center/cover;color:#e8f6fb;min-height:280px}
.sx-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,14,20,.25),rgba(4,14,20,.92) 70%)}
.sx-hero>*{position:relative}
.sx-hero .eyebrow{color:#33d1f0;font-family:ui-monospace,Menlo,Consolas,monospace}
.sx-hero svg.candles{position:absolute;top:18px;right:16px;width:46%;opacity:.9}
.ticker{display:flex;gap:14px;font:600 12px ui-monospace,Menlo,Consolas,monospace;color:#9fdcec;margin-top:12px;flex-wrap:wrap}
.ticker .up{color:#2fd27f}
.offices{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.office{display:flex;gap:10px;align-items:center;padding:10px;border-radius:12px;background:color-mix(in srgb,var(--fg) 5%,transparent);font-size:13px;font-weight:600;min-width:0}
.office img{width:28px;height:19px;border-radius:3px;object-fit:cover;box-shadow:0 0 0 1px var(--line);flex:none}
.office small{display:block;font-weight:400;color:var(--hint);font-size:11.5px}
.risk{border-left:3px solid #e0a100;padding:10px 12px;border-radius:8px;background:color-mix(in srgb,#e0a100 10%,transparent);font-size:12.5px;line-height:1.5}

.group-foot{text-align:center;font-size:12px;color:var(--hint);padding:22px 16px 6px}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);opacity:0;background:#111;color:#fff;padding:10px 16px;border-radius:999px;font-size:13px;font-weight:600;transition:.2s;pointer-events:none;z-index:20}
.toast.on{opacity:1;transform:translate(-50%,0)}
@media (min-width:640px){main,.topbar{max-width:600px;margin-inline:auto}.topbar{border-bottom:0}}
[data-brand=transmony] .ico{color:#3d63d1;background:color-mix(in srgb,#3d63d1 14%,transparent)}
.solo-head{display:flex;align-items:center;gap:12px}
.solo-head .chip{height:40px;display:flex;align-items:center;background:#fff;border-radius:10px;padding:4px 10px;box-shadow:0 0 0 1px var(--line)}
.solo-head .chip img{max-height:32px;width:auto}
.solo-head b{font-size:16px}
.solo .hello{margin-bottom:10px}

/* ---------- poster carousel ---------- */
.car{position:relative}
.car-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:22px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.car-track::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;min-width:0;scroll-snap-align:center;scroll-snap-stop:always;position:relative;overflow:hidden;min-height:330px;padding:22px 20px;display:flex;flex-direction:column;justify-content:flex-end;background-size:cover;background-position:center;border-radius:0}
.slide.hero{border-radius:0}
.slide h2{font-size:24px;line-height:1.12;font-weight:800;letter-spacing:-.01em;text-wrap:balance;margin-top:6px}
.slide p{font-size:13.5px;margin-top:6px;opacity:.88;max-width:32ch}
.slide ol{margin:10px 0 0 18px;font-size:14px;line-height:1.7;font-weight:600}
.car-dots{display:flex;justify-content:center;gap:6px;margin-top:9px}
.car-dots i{width:7px;height:7px;border-radius:99px;background:color-mix(in srgb,var(--fg) 22%,transparent);cursor:pointer;transition:width .2s}
.car-dots i.on{width:20px;background:var(--accent)}
.pbtn{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;margin-top:14px;padding:10px 16px;border-radius:999px;font-weight:700;font-size:13.5px;position:relative;z-index:2}
.pbtn.gold{background:#a9844a;color:#fff}.pbtn.red{background:#d32f2f;color:#fff}.pbtn.dark{background:#111;color:#ffd23f}
.pbtn.yellow{background:#ffd23f;color:#111}.pbtn.goldtm{background:#e7c873;color:#14234f}.pbtn.line{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
.pbtn.cyan{background:#0aa7c9;color:#04131a}
.prow{display:flex;gap:8px;flex-wrap:wrap}
/* JG */
.slide.jg-hero{display:grid;grid-template-columns:1fr 42%;padding:0;align-items:stretch}
.slide.jg-hero .copy{justify-content:center}
.jg-site{background-color:#0d0b09;background-size:100% auto;background-repeat:no-repeat;background-position:center 38%;min-height:330px}
.jg-site .cap{display:flex;justify-content:center}
.jg-aura{background:radial-gradient(120% 80% at 50% 0%,#2b2216,#14110d 70%);color:#f3ead8;align-items:center;text-align:center;justify-content:flex-start;padding-top:20px}
.jg-aura h2{font-family:Corm,Georgia,serif;font-weight:600;font-size:34px}.jg-aura h2 i{color:#e2c27f;font-weight:500}
.jg-aura .eyebrow{letter-spacing:.3em}.jg-aura .pbtn{align-self:center}
.jg-aura .trio{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:8px;margin-top:14px;align-items:end;width:100%}
.jg-aura .trio img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 0;border-radius:8px;outline:1px solid #6b5634;outline-offset:3px;background:#fff}
.jg-aura .trio img:nth-child(2){aspect-ratio:3/4.4;outline-color:#c9a462}
/* TC */
.slide.tc-hero{padding-right:44%}
.tc-deal{background:#ffd23f;color:#111;align-items:flex-start}
.tc-deal .big{font-size:64px;font-weight:900;color:#c62828;letter-spacing:-.04em;line-height:.95;margin-top:6px}
.tc-deal .codebig{font:800 30px/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.16em;background:#fff;border:3px dashed #c62828;border-radius:12px;padding:10px 16px;margin-top:10px}
.tc-deal:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:#0b1f4d;opacity:.08}
.tc-airalo{background:linear-gradient(160deg,#0b1f4d,#1a3d86 70%),#0b1f4d;color:#fff}
.tc-airalo:before{content:"";position:absolute;right:-30px;top:-30px;width:170px;height:170px;background:url(img/tc-phone.svg) center/contain no-repeat;opacity:.35}
.tc-airalo .eyebrow,.tc-steps .eyebrow{color:#ffd23f;position:relative}
.tc-airalo h2,.tc-airalo p{position:relative}
.tc-steps{background:linear-gradient(180deg,#13306f,#0b1f4d);color:#fff}
.tc-steps ol li::marker{color:#ffd23f;font-weight:900}
/* TM */
.tm-cardslide{background:radial-gradient(90% 70% at 70% 40%,#253f8f,#08143a 75%);color:#fff;justify-content:flex-start}
.tm-cardslide .eyebrow,.tm-open .eyebrow,.tm-stats .eyebrow{color:#e7c873}
.tm-cardslide .cardbig{width:78%;margin:14px auto 4px;transform:rotate(-6deg);filter:drop-shadow(0 16px 24px rgba(0,0,0,.55))}
.tm-open{background:linear-gradient(180deg,rgba(8,20,58,.1) 0%,rgba(8,20,58,.45) 35%,rgba(8,20,58,.97) 58%),url(img/tm-skyline.svg) center top/100% auto no-repeat,#08143a;color:#fff}
.tm-open ol li::marker{color:#e7c873}
.tm-stats{background:linear-gradient(180deg,rgba(15,31,82,.15) 0%,rgba(15,31,82,.5) 30%,#0f1f52 52%),url(img/tm-skyline.svg) center top/100% auto no-repeat,#0f1f52;color:#fff}
.tm-stats .sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;text-align:center;font-size:12px;color:#cfd8f3}
.tm-stats .sgrid div{background:rgba(255,255,255,.07);border-radius:12px;padding:12px 4px}
.tm-stats .sgrid b{display:block;font-size:24px;color:#e7c873;font-variant-numeric:tabular-nums}
/* SX */
.sx-open,.sx-tools,.sx-global{background:#06121a;color:#e8f6fb}
.sx-open{background:linear-gradient(180deg,rgba(4,14,20,.4),rgba(4,14,20,.95) 65%),url(img/sx-market.svg) center/cover}
.sx-open .eyebrow,.sx-tools .eyebrow,.sx-global .eyebrow{color:#33d1f0;font-family:ui-monospace,Menlo,Consolas,monospace}
.sx-open ol li::marker{color:#33d1f0}
.sx-tools{background:radial-gradient(80% 60% at 80% 10%,#0b3a48,#06121a 70%)}
.sx-tools .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.sx-tools .chips span{font:600 12px ui-monospace,Menlo,Consolas,monospace;padding:6px 10px;border-radius:8px;background:rgba(51,209,240,.12);color:#9fdcec}
.sx-global{background:linear-gradient(180deg,rgba(4,14,20,.55),#06121a 60%),url(img/sx-market.svg) center/cover}
.sx-global .flags{display:flex;gap:8px;margin-top:12px}
.sx-global .flags img{width:36px;height:24px;border-radius:4px;object-fit:cover;box-shadow:0 0 0 1px rgba(255,255,255,.2)}
/* quick tiles */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.tile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border-radius:14px;background:var(--card);font-size:11.5px;font-weight:600;text-align:center;line-height:1.2}
.tile .ti{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
[data-brand=safex] .tile .ti{color:#0a8fae}[data-brand=transmony] .tile .ti{color:#3d63d1}
.tile .ti svg{width:21px;height:21px}
