/* Scoped to exhibitors so parking and transport panels retain their layouts. */
.booth-card #btnSetStart { background:#dce5f0; border-color:#c9d5e5; color:#304b70; }
.booth-card #btnSetStart:hover { background:#cedbed; border-color:#afc1da; }
#categoryQrButton { position:fixed; z-index:30; top:calc(env(safe-area-inset-top, 0px) + 12px); left:50%; transform:translateX(-50%); display:block; width:max-content; max-width:calc(100% - 112px); margin:0; font:inherit; font-size:clamp(14px,2.5vw,20px); font-weight:800; line-height:1.4; padding:12px 20px; border:1px solid #10264e; border-radius:24px; background:#10264e; color:white; cursor:pointer; box-shadow:0 3px 12px #0002; }
#categoryQrButton:hover { background:#1b396a; }
#categoryQrButton:focus-visible { outline:3px solid #8ca9d5; outline-offset:3px; }
#categoryQrDialog { width:min(380px,calc(100% - 48px)); max-height:85dvh; overflow:auto; padding:24px; border:0; border-radius:20px; text-align:center; color:#202532; }
#categoryQrDialog::backdrop { background:#0007; }
#categoryQrImage { width:min(280px,100%); margin:12px auto; }
#categoryQrImage svg { width:100%; height:auto; display:block; }
#categoryQrDialog button { margin-top:16px; padding:8px 24px; cursor:pointer; }
#info.booth-card { padding:24px; border:0; color:#202532; }
.booth-card .infoHead { display:block; position:relative; }
.booth-card #logo { width:48px; height:48px; object-fit:contain; margin:0 0 20px; }
.booth-card .infoName { font-size:21px; line-height:1.4; }
.booth-card .infoTitleActions { position:absolute; right:0; top:0; }
.booth-card #companyIntro { color:#8b91a0; font-size:13px; line-height:1.65; margin:6px 0 14px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.booth-card #infoBooth { background:linear-gradient(100deg,#ff8c36,#fa510b); color:white; padding:5px 14px; border-radius:9px; font-size:12px; font-weight:800; box-shadow:0 3px 7px #f9651922; }
.booth-card .kv { font-size:12px; line-height:1.6; margin-top:14px; grid-template-columns:64px minmax(0,1fr); }
.booth-card .kv .k { color:#969dab; }
.booth-card .kv .v { color:#697384; overflow-wrap:anywhere; }
.booth-card .productRail { gap:8px; }
.booth-card .productCard { flex:0 0 calc((100% - 16px)/3); min-width:0; border:none; background:white; box-shadow:none; }
.booth-card .productMedia { height:auto; aspect-ratio:1; border:1px solid #f0f2f6; border-radius:9px; overflow:hidden; background:white; }
.booth-card .productMedia img { width:100%; height:100%; object-fit:contain; }
.booth-card .productMeta { padding:6px 0; text-align:center; }
.booth-card .productCategory { display:none; }
.booth-card .productNameText { font-size:11px; color:#8b93a2; white-space:normal; }
.booth-card .productAction { font-size:10px; padding:4px 6px; }
.booth-card .productCard > .productAction { position:static; display:inline-block; margin:6px 0; }
.booth-card > .btnRow { margin-top:12px; }
.booth-card > .btnRow .btn { font-size:12px; padding:7px; background:#f7f8fa; color:#687284; border:1px solid #eceef2; }
#boothContactActions:not([hidden]) { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:24px; }
#boothContactActions a, #boothContactActions button { font:inherit; font-size:13px; font-weight:700; line-height:1.4; padding:12px 6px; border:1px solid #fa590d; border-radius:9px; background:#fff; color:#f45b0d; text-align:center; text-decoration:none; cursor:pointer; }
#boothContactActions a { background:#f45b0d; color:white; }
#boothContactStatus { grid-column:1/-1; color:#737b89; font-size:12px; margin:0; }
.introVideoRequest { position:absolute; z-index:3; bottom:150px; left:50%; transform:translateX(-50%); padding:12px 18px; border:1px solid #ffffff55; border-radius:24px; background:#222; color:white; cursor:pointer; white-space:nowrap; }
/* Company / product layout supplied on October 26. */
.booth-card .infoHead { display:grid; grid-template-columns:116px minmax(0,1fr); gap:20px; }
.booth-card #logo { width:116px; height:116px; border:0; border-radius:0; background:transparent; object-fit:contain; margin:0; padding:0; box-sizing:border-box; }
.booth-card .infoHead > div { min-width:0; }
.booth-card .infoTitleRow { padding-right:66px; }
.booth-card .infoTitleActions { gap:4px; }
.booth-card .infoName { font-size:20px; }
.booth-card #companyIntro { display:none; }
.booth-card #infoBooth { background:none; color:#647084; padding:4px 0; box-shadow:none; font-weight:500; }
.booth-card .kv { margin-top:4px; gap:3px 20px; grid-template-columns:max-content minmax(0,1fr); }
.booth-card .kv .k { min-width:64px; white-space:nowrap; }
.booth-card .productRail { scroll-snap-type:x mandatory; overflow-x:auto; padding-bottom:8px; }
.booth-card .productCard { flex:0 0 calc((100% - 40px)/3.3); scroll-snap-align:start; min-width:130px; }
.booth-card .productMeta { text-align:left; padding:8px 2px; }
.booth-card .productNameText { font-size:14px; color:#273245; font-weight:700; }
.booth-card .productDescription { margin-top:5px; font-size:12px; line-height:1.6; color:#7d8797; overflow-wrap:anywhere; }
.booth-card .productDescription { white-space:pre-line; max-height:8em; overflow-y:auto; touch-action:pan-y; overscroll-behavior-y:contain; scrollbar-width:thin; -webkit-overflow-scrolling:touch; cursor:grab; }
.booth-card .productDescription:active { cursor:grabbing; }
.booth-card .productDescription:focus-visible { outline:2px solid #657184; outline-offset:2px; }
.booth-card .kv .value-only { grid-column:1/-1; }
.booth-card .productRail { touch-action:pan-x pan-y; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; }
.booth-card #infoBooth { font-size:16px; font-weight:600; line-height:1.65; padding:6px 0; overflow-wrap:anywhere; }
.booth-card .infoName { font-size:24px; }
.booth-card .kv { font-size:14px; }
.booth-card .productNameText { font-size:16px; }
.booth-card .productDescription { font-size:14px; }
#routeModeHint { display:none; }
.routePhoneButton { display:block; width:min(420px,calc(100% - 32px)); margin:18px auto; padding:12px 20px; border:1px solid #142c49; border-radius:999px; background:#06235e; color:white; font-family:inherit; font-size:22px; font-weight:800; cursor:pointer; }
.routePhoneButton[hidden], .routeQrOverlay[hidden] { display:none; }
.routeQrOverlay { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:20px; box-sizing:border-box; background:rgba(8,18,39,.42); }
.routeQrDialog { position:relative; width:min(470px,100%); max-height:calc(100dvh - 40px); overflow:auto; padding:24px 20px; box-sizing:border-box; border:2px solid #123646; border-radius:64px; background:#06235e; color:white; text-align:center; box-shadow:0 20px 70px #0003; }
.closeRouteQr { position:absolute; right:28px; top:26px; border:0; background:transparent; color:white; font-family:inherit; font-size:16px; cursor:pointer; padding:6px; }
.routeQrBrand { width:210px; height:64px; margin:0 auto 12px; overflow:hidden; }
.routeQrBrand img { display:block; width:210px; height:auto; filter:grayscale(1) brightness(2.2); }
.routeQrDialog h2 { font-size:25px; margin:8px 0 24px; }
.routeQrCode { width:min(280px,100%); aspect-ratio:1; margin:0 auto; background:white; border-radius:8px; overflow:hidden; }
.routeQrCode:empty { background:transparent; }
.routeQrCode svg { display:block; width:100%; height:100%; }
#routeQrStatus { font-size:14px; }
.routeQrCaption { font-size:18px; line-height:1.65; font-weight:700; margin:18px 0 4px; }
@media(max-width:480px) {
  .booth-card .infoName { font-size:21px; }
  .booth-card #infoBooth { font-size:15px; }
  .routeQrDialog { border-radius:42px; padding:24px 16px; }
  .routeQrBrand { width:180px; height:56px; }
  .routeQrBrand img { width:180px; }
  .closeRouteQr { right:16px; top:14px; font-size:14px; }
  .routeQrDialog h2 { font-size:22px; }
  .routeQrCaption { font-size:15px; }
  .routePhoneButton { font-size:19px; }
}
.booth-card .productEmpty { width:100%; padding:28px 12px; box-sizing:border-box; background:#f8f9fb; color:#8791a0; text-align:center; border-radius:10px; }
.booth-card .productSectionHead:not(.hidden) { display:flex; margin-bottom:10px; }
.booth-card .productSectionTitle { display:none; }
.booth-card .productSectionSub { font-size:12px; color:#8791a0; }
.booth-card .productRail:focus-visible { outline:2px solid #fc6a20; outline-offset:3px; }
.booth-card .englishPending { color:#8b93a2; font-size:11px; margin:4px 0; }
.productScrollButtons { display:flex; justify-content:flex-end; gap:6px; margin-top:4px; }
.productScrollButtons button { border:1px solid #e4e8ed; border-radius:50%; background:white; color:#657184; width:32px; height:32px; cursor:pointer; }
.productRail:has(.productEmpty) + .productScrollButtons { display:none; }
.searchHeading { text-align:center; font-size:18px; font-weight:800; margin:0 0 14px; color:#252b39; }
.categoryFilters #catRow { display:flex; flex-wrap:wrap; justify-content:center; gap:7px; padding:0; margin:0 0 14px; max-height:180px; overflow-y:auto; }
.categoryFilters .chip { padding:9px 15px; min-height:36px; font-family:inherit; font-size:12px; font-weight:700; line-height:1.3; }
.keyboardRow:first-child { padding-bottom:7px; border-bottom:1px solid #f0f1f4; }
.keyboardRow { gap:clamp(2px,2.5vw,18px); }
.keyboardKey { min-width:20px; padding:0 2px; }
@media(max-width:480px) {
  .categoryFilters .chip { padding:8px 11px; font-size:11px; }
  .categoryFilters #catRow { max-height:156px; }
  .keyboardRow { gap:clamp(2px,1.7vw,10px); }
  .keyboardKey { font-size:16px; }
}
@media(max-width:480px) {
  #info.booth-card { padding:20px 16px; }
  .booth-card .infoHead { grid-template-columns:88px minmax(0,1fr); gap:12px; }
  .booth-card #logo { width:88px; height:88px; }
  .booth-card .infoName { font-size:21px; }
  .booth-card .infoTitleRow { padding-right:0; margin-top:38px; }
  .booth-card .productCard { flex-basis:42%; min-width:120px; }
}
