/* ═══════════════════════════════════════════════════════════════
   SMART EXPOS & FAIRS — master group site  ·  "Institution" system
   Light corporate: white / navy #0F2440 / gold #E8A020
   Per-brand colour coding via .bdot / .brow[style] from registry
   ═══════════════════════════════════════════════════════════════ */
:root{
  --navy:#0F2440;--navy-2:#1A3A63;--navy-3:#23477A;--blue:#1D6FD8;
  --gold:#E8A020;--gold-d:#C58412;--gold-t:#FDF6E7;
  --ink:#131820;--body:#3C434D;--muted:#6C737D;
  --line:#DFE3E8;--soft:#F4F6F9;--soft-2:#EBEEF3;--w:#fff;
  --wrap:1220px;
  --fd:'Sora',-apple-system,'Segoe UI',sans-serif;
  --fb:'Inter',-apple-system,'Segoe UI',sans-serif;
  --sh1:0 2px 10px rgba(15,36,64,.06);
  --sh2:0 18px 44px rgba(15,36,64,.13);
  --ease:cubic-bezier(.22,.72,.24,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--fb);color:var(--body);background:var(--w);line-height:1.7;font-size:16px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--blue);text-decoration:none;transition:color .2s}
a:hover{color:var(--navy)}
ul{list-style:none}
::selection{background:var(--navy);color:#fff}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
h1,h2,h3,h4{font-family:var(--fd);color:var(--navy);font-weight:800;letter-spacing:-.02em;line-height:1.14}
h1{font-size:46px}h2{font-size:32px;margin-bottom:14px}h3{font-size:20px;margin:20px 0 8px}h4{font-size:16px;margin-bottom:6px}
p{margin-bottom:13px}
strong,b{color:var(--ink)}
h2.sec{position:relative;padding-top:16px;max-width:880px}
h2.sec::before{content:'';position:absolute;top:0;left:0;width:52px;height:5px;background:linear-gradient(90deg,var(--gold) 60%,var(--navy) 60%)}
.kicker{display:flex;align-items:center;gap:10px;font-family:var(--fd);font-size:11.5px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-d);margin-bottom:13px}
.kicker::before{content:'';width:30px;height:2px;background:var(--gold)}
p.sub{font-size:17px;max-width:860px;margin-bottom:12px}
.fineprint{font-size:12.5px;color:var(--muted);line-height:1.6}

/* topbar */
.tb{background:var(--navy);color:rgba(255,255,255,.85);font-size:12.5px}
.tb .wrap{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 28px;flex-wrap:wrap}
.tb a{color:rgba(255,255,255,.85)}
.tb a:hover{color:var(--gold)}
.tb .r{display:flex;gap:18px;flex-wrap:wrap}

/* header */
header{background:rgba(255,255,255,.97);backdrop-filter:blur(10px);position:sticky;top:0;z-index:200;border-bottom:1px solid var(--line);box-shadow:var(--sh1)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 28px}
.logo{display:flex;align-items:center;gap:12px;font-family:var(--fd);font-weight:800;font-size:18px;color:var(--navy);line-height:1.1}
.logo .mk{width:46px;height:46px;border-radius:10px;background:linear-gradient(145deg,var(--navy),var(--navy-3));color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;letter-spacing:-.5px;box-shadow:0 6px 16px rgba(15,36,64,.28)}
.logo .mk b{color:var(--gold)}
.logo em{font-style:normal;color:var(--gold-d)}
.logo small{display:block;font-family:var(--fb);font-size:9px;font-weight:600;color:var(--muted);letter-spacing:.24em;margin-top:3px;text-transform:uppercase}
nav ul{display:flex;align-items:center;gap:0}
nav ul>li>a{display:block;font-family:var(--fd);font-size:12.5px;font-weight:600;color:var(--ink);text-transform:uppercase;letter-spacing:.05em;padding:12px 11px;border-bottom:2px solid transparent;white-space:nowrap}
nav ul>li>a:hover,nav ul>li.on>a{color:var(--navy);border-bottom-color:var(--gold)}
li.dd{position:relative}
li.dd>a::after{content:'▾';margin-left:4px;font-size:9px;opacity:.55}
.ddm{position:absolute;top:100%;left:0;min-width:270px;background:#fff;box-shadow:var(--sh2);border-top:3px solid var(--gold);padding:8px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:all .22s var(--ease);z-index:210}
li.dd:hover .ddm{opacity:1;visibility:visible;transform:translateY(0)}
.ddm a{display:flex;align-items:center;gap:9px;padding:9px 13px;font-size:13.5px;color:var(--body);font-weight:500;border-left:3px solid transparent}
.ddm a:hover{background:var(--soft);color:var(--navy);border-left-color:var(--gold);padding-left:17px}
.bdot{width:9px;height:9px;border-radius:3px;flex-shrink:0;display:inline-block}
.burger{display:none;background:var(--navy);color:#fff;border:0;padding:9px 13px;font-size:17px;cursor:pointer;border-radius:6px}

/* buttons */
.btn{display:inline-block;font-family:var(--fd);font-weight:700;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;padding:13px 26px;border:2px solid transparent;border-radius:6px;cursor:pointer;transition:all .25s var(--ease);text-align:center}
.btn.gold{background:var(--gold);color:#231a05;border-color:var(--gold)}
.btn.gold:hover{background:var(--gold-d);border-color:var(--gold-d);transform:translateY(-2px);box-shadow:0 10px 26px rgba(232,160,32,.4)}
.btn.navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn.navy:hover{background:var(--navy-2);transform:translateY(-2px);box-shadow:0 10px 26px rgba(15,36,64,.3)}
.btn.line{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn.line:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}
.btn.wline{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.btn.wline:hover{background:#fff;color:var(--navy);border-color:#fff}
.btns{display:flex;gap:13px;flex-wrap:wrap;margin-top:24px}

/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(155deg,var(--navy) 0%,#0A1830 75%);color:#fff;padding:72px 0 60px;border-bottom:4px solid var(--gold)}
.hero::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.025) 0 2px,transparent 2px 30px)}
.hero::after{content:'';position:absolute;top:-25%;right:-12%;width:50%;height:160%;background:linear-gradient(150deg,rgba(29,111,216,.22),transparent 65%);transform:skewX(-14deg)}
.hero .wrap{position:relative;z-index:2}
.hero h1{color:#fff;font-size:50px;max-width:19ch;text-wrap:balance;margin-bottom:16px}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero .kicker{color:var(--gold)}
.hero .kicker::before{background:var(--gold)}
.hero p.lead{font-size:18.5px;color:rgba(255,255,255,.82);max-width:640px}
.hero .crumb,.hero .crumb a{color:rgba(255,255,255,.6);font-size:12.5px;font-family:var(--fd);margin-bottom:16px}
.hero .crumb a:hover{color:#fff}
.hero.page{padding:52px 0 44px}
.hero.page h1{font-size:40px}

/* stats band */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:12px;overflow:hidden;margin-top:32px;backdrop-filter:blur(6px)}
.stats>div{padding:22px 24px;border-right:1px solid rgba(255,255,255,.12)}
.stats>div:last-child{border-right:none}
.stats b{display:block;font-family:var(--fd);font-size:32px;font-weight:800;color:var(--gold);line-height:1;font-variant-numeric:tabular-nums}
.stats span{display:block;font-size:12.5px;color:rgba(255,255,255,.75);margin-top:7px;line-height:1.4}

/* sections */
section{padding:66px 0}
section.soft{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.answer{position:relative;background:#fff;border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:0 10px 10px 0;padding:22px 26px;margin:18px 0;box-shadow:var(--sh1)}
.answer p{margin:0;font-size:15.5px;color:var(--ink)}
.answer p+p{margin-top:9px}

/* grids & cards */
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cols4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px 24px;transition:all .3s var(--ease);box-shadow:var(--sh1);position:relative;overflow:hidden}
.card::before{content:'';position:absolute;top:0;left:0;width:0;height:3px;background:var(--gold);transition:width .35s var(--ease)}
.card:hover{transform:translateY(-5px);box-shadow:var(--sh2)}
.card:hover::before{width:100%}
.card h3,.card h4{margin-top:0}
.card p{font-size:14.3px;margin-bottom:0}
.card .ico{width:50px;height:50px;border-radius:12px;background:var(--gold-t);border:1px solid #F3E2BC;display:flex;align-items:center;justify-content:center;font-size:23px;margin-bottom:14px}

/* brand tiles */
.btile{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--bc,var(--navy));border-radius:12px;padding:22px;transition:all .3s var(--ease);box-shadow:var(--sh1);color:var(--body)}
.btile:hover{transform:translateY(-5px);box-shadow:var(--sh2);color:var(--body)}
.btile b{font-family:var(--fd);font-size:18px;color:var(--ink)}
.btile .sec2{font-size:13px;color:var(--muted);line-height:1.5}
.btile .nx{font-size:12.5px;font-family:var(--fd);font-weight:700;color:var(--bc,var(--navy));margin-top:auto;padding-top:8px}
.tierchip,.stchip{display:inline-block;font-family:var(--fd);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border-radius:20px}
.t-flag{background:var(--navy);color:#fff}
.t-grow{background:#DCE6F2;color:var(--navy)}
.t-port{background:var(--soft-2);color:var(--muted)}
.s-act{background:#E4F3E8;color:#1A8838}
.s-lau{background:#E7F0FC;color:var(--blue)}
.s-tbc{background:#FCF2DF;color:#C77700}

/* event cards / calendar rows */
.evrow{display:flex;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:12px;transition:all .25s var(--ease);box-shadow:var(--sh1)}
.evrow:hover{transform:translateX(5px);box-shadow:var(--sh2)}
.dblock{flex-shrink:0;width:74px;text-align:center;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:9px 6px;font-family:var(--fd)}
.dblock b{display:block;font-size:21px;color:var(--navy);line-height:1.05}
.dblock span{display:block;font-size:10.5px;font-weight:700;letter-spacing:.1em;color:var(--gold-d);text-transform:uppercase}
.dblock i{display:block;font-style:normal;font-size:10px;color:var(--muted)}
.evrow .inf{flex:1;min-width:0}
.evrow .inf b{font-family:var(--fd);font-size:16.5px;color:var(--ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.evrow .inf span{display:block;font-size:13px;color:var(--muted)}
.evrow .act{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap}
.evrow .act .btn{padding:9px 16px;font-size:11px}
.yearhd{font-family:var(--fd);font-size:14px;font-weight:800;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;margin:30px 0 14px;padding-bottom:8px;border-bottom:2px solid var(--line)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px}
.fchip{font-family:var(--fd);font-size:12px;font-weight:700;padding:8px 16px;border-radius:22px;border:1.5px solid var(--line);background:#fff;color:var(--body);cursor:pointer;transition:all .2s}
.fchip:hover{border-color:var(--navy);color:var(--navy)}
.fchip.on{background:var(--navy);border-color:var(--navy);color:#fff}

/* tables */
table.data{width:100%;border-collapse:collapse;background:#fff;font-size:14px;margin:18px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--sh1)}
table.data th{background:var(--navy);color:#fff;padding:13px 16px;text-align:left;font-family:var(--fd);font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;border-bottom:3px solid var(--gold)}
table.data td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
table.data tr:last-child td{border-bottom:none}
table.data tr:nth-child(even) td{background:var(--soft)}
table.data tr:hover td{background:var(--gold-t)}
.tblwrap{overflow-x:auto}

/* timeline */
.tl{position:relative;margin:26px 0;padding-left:34px}
.tl::before{content:'';position:absolute;left:10px;top:6px;bottom:6px;width:3px;background:linear-gradient(var(--gold),var(--navy));border-radius:2px}
.tl>div{position:relative;margin-bottom:22px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 20px;box-shadow:var(--sh1)}
.tl>div::before{content:'';position:absolute;left:-30px;top:20px;width:13px;height:13px;border-radius:50%;background:var(--gold);border:3px solid #fff;box-shadow:0 0 0 2px var(--gold)}
.tl .yr{font-family:var(--fd);font-weight:800;font-size:14px;color:var(--gold-d);letter-spacing:.08em}
.tl h4{margin:2px 0 4px}
.tl p{margin:0;font-size:14px}

/* forms */
form.std{background:#fff;border:1px solid var(--line);border-radius:12px;padding:30px;box-shadow:var(--sh2);position:relative;overflow:hidden}
form.std::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--gold) 55%,var(--navy) 55%)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:14px}
.frow.c1{grid-template-columns:1fr}
form.std label{display:block;font-family:var(--fd);font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin-bottom:5px}
form.std input,form.std select,form.std textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:8px;font-family:var(--fb);font-size:14.5px;color:var(--ink);background:var(--soft);transition:all .2s}
form.std input:focus,form.std select:focus,form.std textarea:focus{outline:none;border-color:var(--gold);background:#fff;box-shadow:0 0 0 3px rgba(232,160,32,.18)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--muted);margin:12px 0}
.consent input{width:16px;height:16px;margin-top:2px;accent-color:var(--navy);flex-shrink:0}

/* faq */
details.faq{border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:10px;box-shadow:var(--sh1)}
details.faq[open]{border-left:4px solid var(--gold);box-shadow:var(--sh2)}
details.faq summary{padding:16px 48px 16px 20px;cursor:pointer;font-family:var(--fd);font-weight:600;font-size:15.5px;color:var(--navy);list-style:none;position:relative}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:'+';position:absolute;right:18px;top:11px;font-size:24px;color:var(--gold-d);font-weight:300;transition:transform .25s}
details.faq[open] summary::after{transform:rotate(45deg)}
details.faq p{padding:0 24px 16px 20px;font-size:14.5px;margin:0}

/* partner chips */
.pwall{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.pwall span{background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 16px;font-family:var(--fd);font-size:12.5px;font-weight:600;color:var(--body)}

/* cta band */
.ctab{position:relative;overflow:hidden;background:linear-gradient(150deg,var(--navy),#0A1830 75%);color:#fff;padding:50px 36px;text-align:center;border-radius:16px;margin-top:36px}
.ctab::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.03) 0 2px,transparent 2px 30px)}
.ctab h2{color:#fff;position:relative;margin-bottom:10px}
.ctab p{color:rgba(255,255,255,.82);position:relative;max-width:680px;margin:0 auto 20px}
.ctab .btn{position:relative}

/* footer */
footer{background:#0A1526;color:rgba(255,255,255,.68);padding:0 0 22px;position:relative;overflow:hidden}
footer::before{content:'';display:block;height:4px;background:linear-gradient(90deg,var(--gold) 40%,var(--navy-3) 40%)}
footer::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.018) 0 2px,transparent 2px 30px);pointer-events:none}
footer .wrap{position:relative;z-index:1}
.fgrid{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.2fr;gap:32px;padding:44px 0 28px}
footer h4{color:#fff;font-size:11.5px;text-transform:uppercase;letter-spacing:.16em;margin-bottom:14px;position:relative;padding-bottom:8px}
footer h4::after{content:'';position:absolute;left:0;bottom:0;width:24px;height:2px;background:var(--gold)}
footer li{margin-bottom:8px;font-size:13.2px}
footer a{color:rgba(255,255,255,.68)}
footer a:hover{color:#fff}
.fbot{border-top:1px solid rgba(255,255,255,.1);padding-top:18px;text-align:center;font-size:12.3px;color:rgba(255,255,255,.45)}
.flogo{display:flex;align-items:center;gap:12px;margin-bottom:14px;color:#fff;font-family:var(--fd);font-weight:800;font-size:18px;line-height:1.1}
.flogo .mk{width:48px;height:48px;border-radius:10px;background:linear-gradient(145deg,var(--gold),var(--gold-d));color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.flogo small{display:block;font-family:var(--fb);font-size:9px;font-weight:600;color:rgba(255,255,255,.5);letter-spacing:.24em;margin-top:3px;text-transform:uppercase}

/* reveal */
html.js .rv{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
html.js .rv.rv-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html.js .rv{opacity:1;transform:none;transition:none}*,*::before,*::after{animation:none!important;transition:none!important}}

@media(max-width:1120px){
  .burger{display:block}
  nav ul{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;box-shadow:var(--sh2);padding:12px;flex-direction:column;align-items:stretch;max-height:76vh;overflow-y:auto}
  nav ul.open{display:flex}
  nav ul>li>a{padding:13px 14px;border-bottom:1px solid var(--line)}
  .ddm{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border-top:0;border-left:3px solid var(--gold-t);min-width:0}
}
@media(max-width:900px){
  h1,.hero h1{font-size:33px}
  h2{font-size:25px}
  .cols2,.cols3,.cols4,.fgrid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .stats>div{border-bottom:1px solid rgba(255,255,255,.12)}
  .frow{grid-template-columns:1fr}
  section{padding:46px 0}
  .evrow{flex-wrap:wrap}
}
@media(max-width:540px){.stats{grid-template-columns:1fr}}

/* ── event logos, galleries, partner logos (v3.1) ── */
.evlogo{width:var(--evw,150px);height:var(--evh,64px);object-fit:contain;border:1px solid var(--line);border-radius:10px;background:#fff;padding:7px 10px;flex-shrink:0}
.evlogo-ph{width:var(--evh,64px);display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-weight:800;font-size:22px;color:#fff;background:var(--bc,var(--navy));border:none;padding:0}
.ggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gshot{display:block;position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh1);aspect-ratio:4/3;background:var(--soft)}
.gshot img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.gshot:hover img{transform:scale(1.05)}
.gshot span{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(10,21,38,.85));color:#fff;font-size:12.5px;padding:18px 12px 10px}
.gcard{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh1);background:#fff;transition:all .3s var(--ease);color:var(--body)}
.gcard:hover{transform:translateY(-5px);box-shadow:var(--sh2);color:var(--body)}
.gcard img{width:100%;aspect-ratio:16/10;object-fit:cover}
.gcard span{display:block;padding:14px 16px;font-size:13.5px}
.gcard b{font-family:var(--fd);color:var(--ink)}
.gcard i{font-style:normal;color:var(--muted);font-size:12.5px}
.plogo{display:inline-flex;flex-direction:column;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 18px}
.plogo img{height:44px;width:auto;object-fit:contain}
.plogo i{font-style:normal;font-size:11px;color:var(--muted)}
@media(max-width:900px){.ggrid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.ggrid{grid-template-columns:1fr}.evlogo{width:calc(var(--evw,150px)*.72);height:calc(var(--evh,64px)*.72);padding:5px 7px}.evlogo-ph{width:calc(var(--evh,64px)*.72)}}
