
.tfp-map-wrapper{margin:18px 0}.tfp-map-description{margin-bottom:12px}.tfp-legend{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}.tfp-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:14px}.tfp-legend-swatch{width:14px;height:14px;border-radius:3px;display:inline-block}.tfp-map-stage{position:relative;max-width:100%;overflow:visible;background:#f7f8fa;border:1px solid #d9dde3;border-radius:14px;box-shadow:0 10px 28px rgba(0,0,0,.08)}.tfp-map-image{display:block;max-width:100%;height:auto;width:100%;border-radius:14px}.tfp-clean-map-spacer{display:block;width:100%;min-height:260px;background:#f7f8fa;border-radius:14px}.tfp-front-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.tfp-display-clean .tfp-front-svg{padding:12px;box-sizing:border-box}.tfp-display-hybrid .tfp-map-image{opacity:.18;filter:grayscale(1);}.tfp-display-image .tfp-map-stage,.tfp-display-hybrid .tfp-map-stage{background:transparent}.tfp-clean-grid-lines line{stroke:rgba(0,0,0,.08);stroke-width:1;vector-effect:non-scaling-stroke}.tfp-hotspot{fill:var(--tfp-booth-color,#1565c0);fill-opacity:.88;stroke:rgba(255,255,255,.92);stroke-width:3;cursor:pointer;pointer-events:auto;filter:drop-shadow(0 2px 3px rgba(0,0,0,.24));transition:fill-opacity .15s ease,filter .15s ease,stroke-width .15s ease}.tfp-display-image .tfp-hotspot{fill-opacity:.18;stroke:var(--tfp-booth-color,#1565c0)}.tfp-hotspot:hover,.tfp-hotspot.is-active{fill-opacity:1;stroke-width:4;filter:drop-shadow(0 5px 8px rgba(0,0,0,.28))}.tfp-display-image .tfp-hotspot:hover,.tfp-display-image .tfp-hotspot.is-active{fill-opacity:.32}.tfp-hotspot-label{fill:#fff;font-weight:800;pointer-events:none;text-anchor:middle;dominant-baseline:middle;letter-spacing:.04em;paint-order:stroke;stroke:rgba(0,0,0,.42);stroke-width:3px;stroke-linejoin:round}.tfp-display-image .tfp-hotspot-label{font-size:12px;stroke:rgba(0,0,0,.8)}.tfp-popup{position:absolute;z-index:20;background:#fff;border:1px solid #dcdcde;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:14px}.tfp-popup h3{margin:0 0 8px;font-size:18px}.tfp-popup p{margin:.45em 0}.tfp-popup-logo img{max-width:120px;height:auto;display:block;margin-bottom:8px}.tfp-booth-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:18px}.tfp-booth-card{border:1px solid #dcdcde;border-radius:10px;padding:14px;background:#fff}.tfp-error{padding:12px;border:1px solid #d63638;background:#fcf0f1}
@media (max-width:700px){.tfp-map-stage{border-radius:10px}.tfp-clean-map-spacer{min-height:180px;border-radius:10px}.tfp-display-clean .tfp-front-svg{padding:6px}.tfp-popup{position:fixed!important;left:12px!important;right:12px!important;top:auto!important;bottom:12px!important;width:auto!important;max-height:55vh;overflow:auto}.tfp-hotspot-label{stroke-width:2px}}

/* Map + live vendor directory */
.tfp-map-and-directory{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:22px;align-items:start}
.tfp-map-and-directory.tfp-directory-left{grid-template-columns:minmax(240px,320px) minmax(0,1fr)}
.tfp-map-and-directory.tfp-directory-left .tfp-map-stage{grid-column:2;grid-row:1}
.tfp-map-and-directory.tfp-directory-left .tfp-vendor-directory{grid-column:1;grid-row:1}
.tfp-map-and-directory.tfp-directory-below{display:block}
.tfp-map-and-directory.tfp-directory-below .tfp-vendor-directory{margin-top:18px;max-height:none}
.tfp-vendor-directory{background:#fff;border:1px solid #dcdcde;border-radius:10px;padding:16px;max-height:72vh;overflow:auto;position:sticky;top:24px}
.tfp-vendor-directory h3{margin:0 0 12px;font-size:20px;line-height:1.2}
.tfp-vendor-directory-list{display:flex;flex-direction:column}
.tfp-vendor-directory-row{display:grid;grid-template-columns:minmax(54px,auto) 1fr;gap:10px;align-items:start;padding:9px 0;border-top:1px solid #eee}
.tfp-vendor-directory-row:first-child{border-top:0}
.tfp-vendor-directory-booth{font-weight:700;white-space:nowrap}
.tfp-vendor-directory-name{min-width:0}
.tfp-vendor-directory-empty{margin:0;color:#646970}
@media (max-width:900px){
  .tfp-map-and-directory,.tfp-map-and-directory.tfp-directory-left{display:block}
  .tfp-vendor-directory{position:static;max-height:none;margin-top:18px}
}

/* v1.9.4: source-geometry floor plan + separate booth-number content layer */
.tfp-front-svg { background: #fff; }
.tfp-hotspot {
    stroke: #111 !important;
    stroke-width: 2 !important;
    vector-effect: non-scaling-stroke;
}
.tfp-hotspot-number {
    fill: #111;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 800;
    pointer-events: none;
    paint-order: stroke;
    stroke: rgba(255,255,255,.78);
    stroke-width: 2px;
    stroke-linejoin: round;
}
.tfp-hotspot-label {
    font-weight: 800;
    pointer-events: none;
}

/* v1.9.5: clickable vendor directory synchronized with booth map */
.tfp-vendor-directory-row {
    display: block;
    padding: 0;
}
.tfp-vendor-directory-trigger {
    appearance: none;
    width: 100%;
    display: grid;
    grid-template-columns: minmax(54px,auto) 1fr 18px;
    gap: 10px;
    align-items: start;
    padding: 10px 4px;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    font: inherit;
    cursor: pointer;
}
.tfp-vendor-directory-trigger:hover,
.tfp-vendor-directory-trigger:focus-visible,
.tfp-vendor-directory-row.is-active .tfp-vendor-directory-trigger {
    background: #f0f6fc;
    outline: none;
}
.tfp-vendor-directory-row.is-active {
    box-shadow: inset 3px 0 0 #2271b1;
}
.tfp-vendor-directory-chevron {
    transition: transform .18s ease;
    line-height: 1;
    margin-top: 2px;
}
.tfp-vendor-directory-row.is-active .tfp-vendor-directory-chevron {
    transform: rotate(180deg);
}
.tfp-vendor-directory-details {
    padding: 2px 12px 14px 68px;
    font-size: 14px;
}
.tfp-vendor-directory-details .tfp-popup-inner h3 {
    display: none;
}
.tfp-vendor-directory-details .tfp-popup-logo img {
    max-width: 90px;
}
.tfp-hotspot.is-active {
    stroke: #ffb900 !important;
    stroke-width: 5 !important;
    filter: drop-shadow(0 0 7px rgba(255,185,0,.9));
}
@media (max-width:700px){
    .tfp-vendor-directory-details { padding-left: 12px; }
}

/* v2.0.0: exact source-map sizing and grid alignment */
.tfp-display-clean .tfp-front-svg {
    padding: 0 !important;
}
.tfp-clean-map-spacer {
    min-height: 0 !important;
}

/* v2.8.11: parent booth blocks become non-interactive visual backgrounds when child booths exist. */
.tfp-layout-parent-background{pointer-events:none!important;cursor:default!important;filter:none!important;}
.tfp-layout-parent-background:hover{fill-opacity:.88!important;stroke-width:2!important;filter:none!important;}
