.hidden {
    display: none !important;
}

.bg-g {
    background: #ededed;
    color: #4a4a4a;
}
.bg-lg {
    background: #fafafa;
    color: #4a4a4a;
}

/* --- Exhibz: 2nd level dropdown support --- */
.dropdown-submenu {
    position: relative;
}

/* keep existing Exhibz dropdown-menu styles; only handle placement/visibility */
.dropdown-submenu > .dropdown-menu {
    top: 0;
    left: 100%;
    margin-top: -1px;
    display: none;
}

/* desktop hover opens submenu */
@media (min-width: 992px) {
    .dropdown-submenu:hover > .dropdown-menu {
        display: block;
    }
}

/* optional: align submenu toggle label + chevron like Exhibz */
.dropdown-submenu > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* mobile: submenu opens via JS adding .open */
@media (max-width: 991.98px) {
    .dropdown-submenu.open > .dropdown-menu {
        display: block;
    }

    /* make 2nd level look like an indented list in the collapsed menu */
    .dropdown-submenu > .dropdown-menu {
        position: static;
        left: auto;
        top: auto;
        margin-top: 0;
        padding-left: 15px;
    }
}

:root{
    --vam-header-red:#66021a;
    --vam-grid-line:#d9dce3;
    --vam-time-bg:#f1f2f5;

    /* 30-min row height */
    --slot-h: 52px;
    --ppm: calc(var(--slot-h) / 30);

    /* Colors */
    --c-vqi: #991a1d;
    --c-svn: #c568d1;
    --c-wound: #5b061e;
    --c-plenary: #0b1d42;
    --c-vess: #0197d5;
    --c-break: #211b19;
    --c-sym: #6c3f98;
    --c-edu-ses: #047482;
    --c-edu-sec: #002929;
    --c-edu-inv: #3a52a4;
    --c-edu-rpvi: #653b34;
    --c-federation: #003049;
    --c-intl: #9dc9eb;
    --c-res: #3f1b44;
    --c-events: #4cc1b9;
    --c-industry: #65051b;
    --c-innovation: #db3950;

    --vam-navy: #0f172b;
    --vam-navy-2: #18233f;
    --vam-violet: #933c8f;
    --vam-gold-dark: #f0a300;
    --vam-text: #5f6678;
    --vam-heading: #1b1f2f;
    --vam-border: #ececf3;
    --vam-bg: #f7f8fc;
    --vam-white: #ffffff;
}

.vam-day-title{
    background: var(--vam-header-red);
    color:#fff;
    padding: 10px 14px;
    font-weight: 700;
    letter-spacing:.4px;
    border-radius: .25rem .25rem 0 0;
}

.vam-atglance{
    border: 1px solid var(--vam-grid-line);
    border-top: 0;
    border-radius: 0 0 .25rem .25rem;
    overflow:hidden;
    background:#fff;
}

/* Header row */
.vam-head{
    display:grid;
    grid-template-columns:140px repeat(7, 1fr);
    border-bottom: 1px solid var(--vam-grid-line);
    background:#fff;
}
.vam-head > div{
    padding:10px 6px;
    font-weight:700;
    font-size:13px;
    text-align:center;
    border-right:1px solid var(--vam-grid-line);
    line-height:1.1;
}
.vam-head > div:last-child{ border-right:0; }
.vam-head .vam-h-time{ background: var(--vam-time-bg); }

/* Grid wrapper (background columns + overlay) */
.vam-gridwrap{
    position:relative;
}

/* Background grid columns (time + tracks) */
.vam-gridbg{
    display:grid;
    grid-template-columns:140px repeat(7, 1fr);
    height: calc((var(--day-end) - var(--day-start)) * var(--ppm));
}

.vam-col{
    position:relative;
    border-right:1px solid var(--vam-grid-line);
    background:
            repeating-linear-gradient(
                    to bottom,
                    transparent 0,
                    transparent calc(var(--slot-h) - 1px),
                    var(--vam-grid-line) calc(var(--slot-h) - 1px),
                    var(--vam-grid-line) var(--slot-h)
            );
}
.vam-col:last-child{ border-right:0; }
.vam-time-col{ background: var(--vam-time-bg); }

/* Hour labels only */
.vam-hour-label{
    position:absolute;
    left:0; right:0;
    top: calc((var(--m) - var(--day-start)) * var(--ppm));
    transform: translateY(-50%);
    font-size: 12px;
    font-weight: 900;
    text-align:center;
    color:#222;
    line-height: 1;
}

/* Overlay uses same grid as bg */
.vam-overlay{
    position:absolute;
    inset:0;
    display:grid;
    grid-template-columns:140px repeat(7, 1fr);
    z-index: 5;
    pointer-events:none; /* purely layout */
}

.vam-event{
    pointer-events:auto;
    grid-column: var(--c) / var(--ce);

    position:absolute;
    /* absolute placement inside overlay layer */
    top: calc((var(--s) - var(--day-start)) * var(--ppm));
    height: calc((var(--e) - var(--s)) * var(--ppm));

    /* 1px left/right margin */
    left:1px;
    right:1px;

    /* bottom border only */
    border-bottom: 1px solid #fff;

    color:#fff;
    font-weight:800;
    text-align:center;
    line-height:1.15;

    display:flex;
    align-items:center;
    justify-content:center;

    padding: 10px 8px;
    overflow:hidden;
    word-break: break-word;
}

/* >= 30 minutes */
.vam-event.is-stack{
    flex-direction:column;
    font-size:12px;
}
.vam-event.is-stack .vam-title{ font-weight:900; }
.vam-event.is-stack .vam-time{
    margin-top:6px;
    font-size:11px;
    font-weight:700;
    opacity:.95;
}

/* < 30 minutes (one line) */
.vam-event.is-inline{
    flex-direction:row;
    gap:8px;
    font-size:11px;
    padding: 6px 8px;
    white-space:nowrap;
    text-overflow:ellipsis;
}
.vam-event.is-inline .vam-title{ font-weight:900; }
.vam-event.is-inline .vam-time{ font-weight:800; opacity:.95; }

/* colors */
.trk-vqi{ background:var(--c-vqi); }
.trk-svn{ background:var(--c-svn); }
.trk-wound{ background:var(--c-wound); }
.trk-plenary{ background:var(--c-plenary); }
.trk-break{ background:var(--c-break); }
.trk-sym{ background: var(--c-sym); }
.trk-vess{ background:var(--c-vess); }
.trk-edu-ses{ background:var(--c-edu-ses); }
.trk-edu-sec{ background:var(--c-edu-sec); }
.trk-edu-inv{ background:var(--c-edu-inv); }
.trk-edu-rpvi{ background:var(--c-edu-rpvi); }
.trk-intl{ background:var(--c-intl); }
.trk-federation{ background:var(--c-federation); }
.trk-res{ background:var(--c-res); }
.trk-events{ background:var(--c-events); }
.trk-industry{ background:var(--c-industry); }
.trk-innovation{ background:var(--c-innovation); }

.vam-mobile-pill.trk-vqi{ background:var(--c-vqi); color: #fff; }
.vam-mobile-pill.trk-svn{ background:var(--c-svn); color: #fff; }
.vam-mobile-pill.trk-wound{ background:var(--c-wound); color: #fff; }
.vam-mobile-pill.trk-plenary{ background:var(--c-plenary); color: #fff; }
.vam-mobile-pill.trk-break{ background:var(--c-break); color: #fff; }
.vam-mobile-pill.trk-sym{ background: var(--c-sym); color: #fff; }
.vam-mobile-pill.trk-vess{ background:var(--c-vess); color: #fff; }
.vam-mobile-pill.trk-edu-ses{ background:var(--c-edu-ses); color: #fff; }
.vam-mobile-pill.trk-edu-sec{ background:var(--c-edu-sec); color: #fff; }
.vam-mobile-pill.trk-edu-inv{ background:var(--c-edu-inv); color: #fff; }
.vam-mobile-pill.trk-edu-rpvi{ background:var(--c-edu-rpvi); color: #fff; }
.vam-mobile-pill.trk-intl{ background:var(--c-intl); color: #fff; }
.vam-mobile-pill.trk-federation{ background:var(--c-federation); color: #fff; }
.vam-mobile-pill.trk-res{ background:var(--c-res); color: #fff; }
.vam-mobile-pill.trk-events{ background:var(--c-events); color: #fff; }
.vam-mobile-pill.trk-industry{ background:var(--c-industry); color: #fff; }
.vam-mobile-pill.trk-innovation{ background:var(--c-innovation); color: #fff; }

/* Remove headers completely */
/*.vam-head{*/
/*    display:none;*/
/*}*/

/* Remove horizontal gridlines from Time column only */
.vam-time-col{
    background: var(--vam-time-bg);
}
.vam-time-col{
    background:
            none !important;
}

/* Hour label container */
.vam-hour-label{
    position:absolute;
    left:0;
    right:0;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    font-size:12px;
    color:#222;
}

/* Line extending from time text to right edge of Time column */
.vam-hour-label::after{
    content:"";
    position:absolute;
    left:50%;
    right:6px;
    height:1px;
    background:#bfc4cc;
    top:50%;
    transform:translateY(-50%);
}

/* Keep text readable over the line */
.vam-hour-label span{
    background: var(--vam-time-bg);
    padding:0 6px;
    position:relative;
    z-index:2;
}

/* show/hide */
.vam-desktop{ display:none; }
.vam-mobile{ display:block; }

@media (min-width: 768px){
    .vam-desktop{ display:block; }
    .vam-mobile{ display:none; }
}

/* mobile cards */
.vam-mobile .vam-card{
    border:1px solid var(--vam-grid-line);
    border-radius:.25rem;
    background:#fff;
    overflow:hidden;
    margin-bottom:10px;
}
.vam-mobile .vam-card-time{
    background: var(--vam-time-bg);
    padding:10px 12px;
    font-weight:900;
    font-size:13px;
    border-bottom:1px solid var(--vam-grid-line);
}
.vam-mobile .vam-card-body{
    padding:10px 12px;
}
.vam-mobile .vam-chip{
    display:inline-block;
    color:#fff;
    font-weight:900;
    font-size:12px;
    padding:4px 10px;
    border-radius:999px;
    margin:0 8px 8px 0;
    line-height:1.1;
}
.vam-mobile .vam-card-title{
    font-weight:900;
    font-size:14px;
    margin:0 0 6px 0;
}
.vam-mobile .vam-card-sub{
    margin:0;
    font-size:13px;
    opacity:.9;
}

/* Mobile grouped list */
.vam-mobile-group { margin-bottom: 12px; }
.vam-mobile-time {
    font-weight: 700;
    margin-bottom: 6px;
}

/* Colored session “pill” using your existing track classes */
.vam-mobile-pill{
    display:block;
    padding:10px 12px;
    border-radius:10px;
    margin:6px 0;
    font-weight:700;
    line-height:1.2;
}

/* time text inside pill (optional) */
.vam-mobile-pill .pill-time{
    display:block;
    font-weight:600;
    opacity:.9;
    margin-top:4px;
}

.panel-body a, .ts-exp-wrap a, .reg-rates a {
    color: #fff;
    font-weight: bold;
    text-decoration: underline;
    transition: all 200ms;
}
.panel-body a:hover, .ts-exp-wrap a:hover, .reg-rates a:hover {
    color: #7FE7FF;
    text-decoration: none;
}

.white {
    color: #fff;
}

@media (max-width: 768px) {
    .media { display: block; }
    .ts-footer { padding-top: 470px; }
    #notify input,
    #notify button {
        display: block;
        width: 100%;
        margin-bottom: 12px;
    }
}

.filter-bar{
    position:sticky;
    top:82px;
    z-index:1000;
}

.time-group{
    margin-bottom:40px;
}

.time-header{
    font-size:1em;
    font-weight:700;
    border-bottom:2px solid #e12454;
    padding-bottom:5px;
    margin-bottom:15px;
}

.session-card{
    cursor:pointer;
    border:1px solid #eee;
    transition:all .2s;
}

.session-card:hover{
    box-shadow:0 4px 10px rgba(0,0,0,0.1);
}

.session-title{
    font-weight:600;
    font-size:16px;
}

.session-location{
    font-size:13px;
    color:#777;
}

.session-speakers{
    font-size:13px;
    color:#555;
}

.schedule-date-header{
    font-weight: 700;
    margin-top: 25px;
    padding: 8px;
    background-color: var(--c-sym);
    color: #fff;
}

.time-header{
    font-weight: 600;
    margin: 18px 0 8px;
}

.session-item .small{
    line-height: 1.25;
}

.time-header{
    font-weight:600;
}

#date-tabs li {
    cursor: pointer;
}

.presentation-description p{
    margin-bottom: 10px;
}

.presentation-description ul{
    padding-left: 18px;
}

.presentation-description li{
    margin-bottom: 4px;
}

.session-time-col{
    width: 130px;
    flex: 0 0 130px;
    white-space: nowrap;
    padding-right: 20px;
}

@media (max-width: 576px){
    .session-time-col{
        width: 95px;
        flex: 0 0 95px;
    }
}

mark{
    background: color-mix(in srgb, var(--c-sym) 20%, transparent);
    padding:0 2px;
}

.modal-lg {
    width: 100%;
    max-width: 950px;
}

.btn-height {
    max-height: 38px;
    line-height: 38px;
    padding: 0;
}

.speaker-photo{
    width: 68px;
    height: 68px;
    object-fit: cover;
    object-position: top;
    border-radius: 50%;
    display: block;
}

.presentation-speaker-text{
    line-height: 1.35;
}

.speaker-organization{
    color: #666;
    font-size: 0.95em;
}

.ticket-required {
    max-width: 75px !important;
}

.directory-kicker {
    display: inline-block;
    margin-bottom: 16px;
    padding-left: 14px;
    position: relative;
    color: rgba(255, 255, 255, 0.82);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.directory-kicker:before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--vam-violet);
    transform: translateY(-50%);
}

.directory-title {
    margin: 0 0 14px;
    color: var(--vam-white);
    font-size: 44px;
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.directory-subtitle {
    margin: 0;
    max-width: 760px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 17px;
    line-height: 1.8;
}

.directory-shell {
    margin-top: -75px;
    padding: 20px;
    position: relative;
    z-index: 3;
}

.directory-card {
    border: 0;
    border-radius: 16px;
    background: var(--vam-white);
    box-shadow: 0 18px 50px rgba(15, 23, 43, 0.10);
    overflow: hidden;
}

.directory-card-header {
    padding: 26px 30px;
    border-bottom: 1px solid var(--vam-border);
    background: linear-gradient(180deg, #ffffff 0%, #fbfbfe 100%);
}

.directory-card-header h3 {
    margin: 0 0 6px;
    color: var(--vam-heading);
    font-size: 24px;
    font-weight: 800;
}

.directory-card-header p {
    margin: 0;
    color: var(--vam-text);
    font-size: 15px;
}

.directory-card-body {
    padding: 28px 30px 24px;
}

.directory-toolbar {
    margin-bottom: 22px;
}

.directory-count {
    display: inline-flex;
    align-items: center;
    min-height: 46px;
    color: var(--vam-heading);
    font-weight: 700;
    font-size: 14px;
}

.directory-count .badge {
    margin-left: 10px;
    padding: 0.5rem 0.7rem;
    border-radius: 999px;
    background: rgb(87, 35, 84);
    color: #ffffff;
    font-weight: 800;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.directory-search {
    position: relative;
}

.directory-search i {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: #9aa3b2;
    font-size: 14px;
    pointer-events: none;
}

.directory-search input.form-control {
    height: 46px;
    padding-left: 42px;
    border: 1px solid var(--vam-border);
    border-radius: 999px;
    box-shadow: none;
    font-size: 14px;
    color: var(--vam-heading);
}

.directory-search input.form-control:focus {
    border-color: rgb(147, 60, 143);
    box-shadow: 0 0 0 0.2rem rgb(86, 35, 83);
}

.table-wrap {
    border: 1px solid var(--vam-border);
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}

table.dataTable {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    border-collapse: collapse !important;
}

table.dataTable thead th {
    padding: 18px 20px !important;
    border-bottom: 1px solid var(--vam-border) !important;
    background: #f9fafe;
    color: var(--vam-heading);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
}

table.dataTable tbody td {
    padding: 18px 20px !important;
    border-top: 1px solid #f0f1f6 !important;
    vertical-align: middle;
    color: var(--vam-text);
    font-size: 15px;
}

table.dataTable tbody tr:first-child td {
    border-top: 0 !important;
}

table.dataTable tbody tr:hover {
    background: #fcfcff;
}

.name-cell {
    color: var(--vam-heading);
    font-weight: 700;
    line-height: 1.35;
}

.name-cell small {
    display: block;
    margin-top: 4px;
    color: #98a0b3;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.location-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.38rem 0.72rem;
    border-radius: 999px;
    background: #f5f7fb;
    color: #566074;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.country-cell {
    white-space: nowrap;
    color: var(--vam-heading);
    font-weight: 600;
}

.muted-dash {
    color: #b8bfce;
}

.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
    display: none;
}

.dataTables_wrapper .dataTables_info {
    padding-top: 18px;
    color: var(--vam-text) !important;
    font-size: 14px;
}

.dataTables_wrapper .dataTables_paginate {
    padding-top: 12px;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
    margin: 0 4px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button .page-link,
.dataTables_wrapper .dataTables_paginate .paginate_button > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 14px;
    border: 1px solid var(--vam-border);
    border-radius: 999px;
    background: #fff;
    color: var(--vam-heading) !important;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current .page-link,
.dataTables_wrapper .dataTables_paginate .paginate_button.current > a,
.dataTables_wrapper .dataTables_paginate .paginate_button:hover .page-link,
.dataTables_wrapper .dataTables_paginate .paginate_button:hover > a {
    border-color: var(--vam-violet);
    background: var(--vam-violet);
    color: #ffffff !important;
}

.directory-note {
    margin-top: 18px;
    color: #8a93a6;
    font-size: 13px;
}

td.dtr-control:before {
    top: 50% !important;
    left: 10px !important;
    width: 18px !important;
    height: 18px !important;
    margin-top: -9px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: var(--vam-violet) !important;
    box-shadow: none !important;
    line-height: 18px !important;
    font-weight: 700 !important;
}

.dataTables_info {
    padding-left: 15px;
}
.pagination {
    padding-right: 15px;
}

@media (max-width: 991.98px) {
    .directory-title {
        font-size: 34px;
    }

    .directory-card-header,
    .directory-card-body {
        padding-left: 22px;
        padding-right: 22px;
    }
}

@media (max-width: 767.98px) {
    .directory-hero {
        padding: 90px 0 60px;
    }

    .directory-title {
        font-size: 30px;
    }

    .directory-subtitle {
        font-size: 15px;
        line-height: 1.7;
    }

    .directory-shell {
        margin-top: -24px;
        padding-bottom: 56px;
    }

    .directory-card-header,
    .directory-card-body {
        padding-left: 16px;
        padding-right: 16px;
    }

    table.dataTable thead th,
    table.dataTable tbody td {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .dataTables_wrapper .dataTables_info,
    .dataTables_wrapper .dataTables_paginate {
        text-align: left !important;
        float: none !important;
    }
}

.gallery-item img {
    border-radius: 4px;
    display: block;
}

.gallery-item a[download] {
    font-size: 0.9rem;
}

.page-link {
    color: #2d396d !important;
}

.page-item.active .page-link {
    color: #fff !important;
    background-color: #2d396d;
    border-color: #2d396d;
}

.pagination > .active > a, .pagination > .active > a:hover, .pagination > li > a:hover {
    color: #fff !important;
    background: #007482;
    border: 1px solid transparent;
}