.bg-orange{
  background-color: #e17000;
}
.text-blue01{
  color: #01689b;
}

.track .session-speakers a,
.track a.session-title {
  color: #01689b;
  /* text-decoration: underline; */
}

.track .session-speakers a:hover,
.track a.session-title:hover {
  color: #000;
  text-decoration: underline;
}

.track.none {
  color: #fff;  
  width: 100px;
}
.timeslot {
  padding: 45px 0px 45px 10px;
}
.track.orange {
  background-color: #e17000;
  color: #000;
  padding: 10px;
  width: 100%;
}

.track.session {
  background-color: #fff;
  color: #01689b;
  padding: 10px;
}
.track.space.session {

}
.track.session.span-track{

}
.sessions-container a:hover{
  color: #01689b;
}
.schedule-tabs{
  border-bottom: 5px solid #e17000;
}
.schedule-tab{
  font-size: 20px;
  font-weight: 900;
  text-transform: uppercase;

    border-radius: 0;
  background-color: #28335D;
  color: #fff;
}

#schedule-tab-2 {
  background-color: #01689b;
}

.schedule-tab.active,
.schedule-tab:hover,
#schedule-tab-2.active{
  background-color: #e17000;
  /* #01689b; */
  color: #fff;
}
/* 
#schedule-tab-0:before {
  position: absolute;
  content: "";
   width: 0px;
   height: 0px;
   border-style: solid;
   border-width: 0 54px 56px 0px;
   border-color: transparent transparent #28335D transparent;
   transform: rotate(270deg);
   left: -54px;
    top: -1px;
} */
/* #schedule-tab-0:hover:before,
#schedule-tab-0.active:before {
   border-color: transparent transparent #e17000 transparent;
} */

.schedule-container, 
.schedule-mobile-container {
    /* Add transition for opacity and height properties */
    transition: opacity 0.3s ease, height 0.3s ease;
}

.schedule-container.active, 
.schedule-mobile-container.active {
    /* Make the active panel fully visible and restore height */
    opacity: 1;
    height: auto; /* Restore height for active panel */
    z-index: 10;
    position: relative;
}
.text-blue-deep{
  color:#01689b;
}
.schedule-container:not(.active),
.schedule-mobile-container:not(.active) {
    /* Make non-active panels fully transparent and collapse height */
    opacity: 0;
    height: 0;
}
.side_event-row {
  padding: 30px;
  background-color: #01689b;
  color: #fff;
}
body .event-link a {
  background-color: #e17000;
  color: #000;
  padding: 10px;
  margin-top: 10px;
  text-align: center;
}
.event-link a:hover {
  color: #000;
  background-color: #fff;
}
.side_event-row .label{
  width: 200px;
  margin-right: 10px;
}
.side_event-row h3{
  font-size: 24px;
  margin-bottom: 20px;
}
.side_event-row .flex-row{
  margin-bottom: 10px;
}
.publicity{
  display: inline-block;
  background-color: #01689b;
  color: #fff;
  padding: 2px 5px;
  border-radius: 5px;
  display: inline-block;
  margin: 10px 0;
}
.x-star-rating_star-marked{
  border-radius: 100%;
  width: 10px;
  height: 10px;
  background:#01689b;
}
.session_complexity_empty{
  border-radius: 100%;
  width: 10px;
  height: 10px;
  border: 2px solid #01689b;
}
.session-track-details{
  max-width: 60%;
  margin-top: 30px;
  margin-bottom: 30px;
  color: #01689b;
}
.complexity{
  align-items: baseline;
}
.follow-speaker{
  margin-top: auto;
  margin-bottom: 30px;
}
.follow-speaker path{
  fill: #e17000;
}

.schedule-tabs,
.schedule-container:not(.side-event) {
  display: none;
}

.schedule-tabs-mobile{
  display: flex;
}
.schedule-mobile-container {
  display: block;
}

@media screen and (min-width: 768px){
  .schedule-tabs{
    display: flex;
  }

  .schedule-container:not(.side-event) {
    display: block;
  }

  .schedule-tabs-mobile,
  .schedule-mobile-container {
    display: none;
  }
}

.grid-speaker-item:hover h3{
  color: #01689b;
}
.speaker-type{
    position: absolute;
    z-index: 1;
    bottom: 0;
    padding: 4px 10px;
    background-color: #01689b;
    color: #fff;
    border-radius: 0 6px 0 0;
}
.speaker-type.host{
  background-color: #e17000;
}

.speaker-row{
  width: 100%;
}
@media screen and (min-width: 650px){
  .speaker-row{
    width: 50%;
  }
}
.space {
  height: 90px;
  padding: 15px 0 0 10px;
}

.elementor ol {
  list-style: decimal;
  margin-left: 16px;
}
.elementor ul {
  list-style: disc;
  margin-left: 16px;
}
.elementor ol li, .elementor ul li {
  margin-bottom: 16px;
}
.elementor p{
  margin-bottom: 16px;
}

body a.grid-speaker-item {
  color: #154273;
}

body a.grid-speaker-item:hover {
  color: #000;
  text-decoration: underline;
}

/* body.elementor-kit-5 a {
  color: #e17000;
} */

.elementor-shortcode a.speaker-row {
  color: #e17000;
}
.elementor-shortcode a.speaker-row:hover {
  text-decoration: underline;
}

.e-con-inner p a{
  text-decoration: underline;
}

.track-location-title{
     font-size: 18px;
    font-weight: 900;
    margin-bottom: 4px; 
}

.track.stage {
    border-radius: 10px;
    width: 170px;
    font-size: 16px;
}

.schedule-scroll-x {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

.schedule-scroll-x .track-container,
.schedule-scroll-x .sessions-container {
  min-width: max-content;
}

.sessions-row {
  display: inline-flex;
}

.track.session,
.track.space,
.track.orange {
  flex-shrink: 0;
}

.stage {
  width: 150px;
  flex-shrink: 0;
  background: white;
  position: sticky;
  left: 0;
  z-index: 5;

}

.track.session {
  border-radius: 10px;
  padding: 16px;
  margin: 6px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 100px;
}

.track.orange {
  padding: 12px 8px;
  font-weight: bold;
  font-size: 14px;
  text-align: center;
  background-color: #e17000;
  color: #fff;
  border-radius: 6px;
  margin: 6px;
}

.track.stage {
  background-color: #01689b;
  color: #fff;
  font-weight: bold;
  text-align: left;
  padding: 20px 16px;
  border-radius: 10px;
  min-height: 100px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.track-location-title {
  font-size: 12px;
  text-transform: uppercase;
  color: #e17000;
  margin-bottom: 4px;
}

.schedule-scroll-wrapper {
  position: relative;
}

/* Base styles for both scrollbars */
.scrollbar-top,
.scrollbar-bottom {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  height: 16px;
}

.scrollbar-top {
  margin-bottom: 10px;
}

.scrollbar-bottom {
  margin-top: 10px;
}

/* Fake inner div to match scrollable width */
.scrollbar-top::before,
.scrollbar-bottom::before {
  content: "";
  display: block;
  width: 3000px; /* arbitrarily large, adjust via JS below */
  height: 1px;
}

/* Custom scrollbar for modern browsers */
.scrollbar-top::-webkit-scrollbar,
.scrollbar-bottom::-webkit-scrollbar,
.schedule-scroll-x::-webkit-scrollbar {
  height: 10px;
}

.scrollbar-top::-webkit-scrollbar-track,
.scrollbar-bottom::-webkit-scrollbar-track,
.schedule-scroll-x::-webkit-scrollbar-track {
  background: #e5f0f9;
  border-radius: 5px;
}

.scrollbar-top::-webkit-scrollbar-thumb,
.scrollbar-bottom::-webkit-scrollbar-thumb,
.schedule-scroll-x::-webkit-scrollbar-thumb {
  background-color: #01689b; /* blue thumb */
  border-radius: 5px;
}

.scrollbar-top::-webkit-scrollbar-thumb:hover,
.scrollbar-bottom::-webkit-scrollbar-thumb:hover,
.schedule-scroll-x::-webkit-scrollbar-thumb:hover {
  background-color: #e17000; /* orange on hover */
}

/* Firefox support */
.scrollbar-top,
.scrollbar-bottom,
.schedule-scroll-x {
  scrollbar-width: thin;
  scrollbar-color: #01689b #e5f0f9;
}

.sessions-container {
  position: relative !important;
  /* min-height: 100px; */
  display: flex;
}

.track.session {
  box-sizing: border-box;
}

.track.space {
  display: none; /* we don’t need spacer cells anymore */
}

:root{ 
    --slot-w: 170px;            /* min slot width (change in a media query if needed) */
    --row-h:   120px;   /* height of one horizontal lane        */
    --row-gap: 22px;    /* gutter between lanes (matches design)*/
}

.stage-header,
.track-stage           { 
  margin-right: 10px;
  width:200px; 
  flex:0 0 200px; 
  background: #28335D;
  border-radius: 10px;
  padding: 10px;
  display: flex;
  flex-direction: column;
}
.stage-header       { 
  background: transparent;
  flex: 0 0 100px;
  width: 100px;
}

.track-stage .zaal{
    color: #e17000;
    font-size: 19px;
    font-weight: 900;
}
.track-stage .name{
  color: #fff;
  font-weight: 900;
}

.session .title{
  font-weight: 900;
}

.slot                  { width:var(--slot-w); flex:0 0 var(--slot-w); }
.header-cell           {
    color:#e17000;
    padding: 10px;
    font-size: 19px;
    font-weight: 900;
}
.slot.session               { background:#fff;   border-radius:10px; padding:14px; }
.slot.empty                 { background:transparent; }
.slot.break                 { background:#ffe5c0; }   /* example colour for breaks */

.gap-s                 { gap:6px; }

/* scrolling (top / hidden native / bottom) */
.schedule-scroll-wrapper        { position:relative; }
.schedule-scroll-x              { overflow-x:auto; scrollbar-width:none; }
.schedule-scroll-x::-webkit-scrollbar{ height:0; }

.scrollbar.fake-bar>div         { height:1px; }   /* real width set in JS below */

.scrollbar.fake-bar::-webkit-scrollbar,
.schedule-scroll-x::-webkit-scrollbar          { height:10px; }
.scrollbar.fake-bar::-webkit-scrollbar-track,
.schedule-scroll-x::-webkit-scrollbar-track    { background:#e5f0f9; border-radius:5px; }
.scrollbar.fake-bar::-webkit-scrollbar-thumb,
.schedule-scroll-x::-webkit-scrollbar-thumb    { background:#01689b; border-radius:5px; }
.scrollbar.fake-bar::-webkit-scrollbar-thumb:hover,
.schedule-scroll-x::-webkit-scrollbar-thumb:hover{ background:#e17000; }

.scrollbar.fake-bar, .schedule-scroll-x        { scrollbar-color:#01689b #e5f0f9; }
.slot.skip{ visibility:hidden; width:var(--slot-w); flex:0 0 var(--slot-w); }

.scrollbar.fake-bar {
    overflow-x: auto;
    height: 14px;
    margin-top: 31px;
    width: calc(100% - 200px);
    margin-left: 200px;
}

.schedule-header{
  margin-left: -6px;
}

.slot.session.shared {
  background-color: #fbeed8;
  color: #000;
  font-weight: bold;
  justify-content: center;
  text-align: center;
}


.session.break.break--ghost{
    background:#fff;                /* white like the screenshot */
    color:#e17000;                  /* orange text */
    border:2px solid #e17000;       /* thin orange outline */
    border-radius:10px;
}
.session.break.break--ghost .title{
    font-size:12px;
    font-weight:bold;
    text-align:center;
}

/* every ZAAL row (= one track) */
.sessions-row{
    align-items:stretch;                 /* make children fill the lane  */
}

/* vertical gap between lanes */
.sessions-row + .sessions-row{
    margin-top:var(--row-gap);
}

/* generic slot keeps full height and centres its content */
.slot{
    height:100%;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

/* normal session box */
.slot.session{
    border-radius:12px;
    padding:16px;
    box-shadow:0 0 0 2px #CCE0F1 inset; /* thin white outline like mock-up */
}

/* replicated “ghost” break cell (only border, no fill) */
.slot.session.break--ghost{
    background:#fff;
    color:#e17000;
    border:2px solid #e17000;
    box-shadow:none;
}


/* invisible filler keeps width/height but shows nothing */
.slot.skip{
    visibility:hidden;
}

/* ZAAL column box gets same lane height */
.track-stage{
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.slot.session.break,
.slot.session.break--ghost{
    display:flex;
    flex-direction:column;
    justify-content:center;
    text-align:center;
}

/* A ─ replace fixed height with min-height */
.sessions-row{
    min-height:var(--row-h);   /* row can grow but never be smaller   */
    align-items:stretch;
}

/* B ─ let container grow naturally */
.sessions-container{
    position:relative !important;  /* or static – whichever you need  */
    /* height:100px;   <-- remove this line                           */
}

.sessions-container {
  display: flex;
  position: relative !important;
}

.sessions-container.gap-s {
  gap: var(--gap-s, 6px);
}

/* Remove gap only between adjacent empty cells */
.sessions-container .slot.empty + .slot.empty {
  margin-left: -6px; /* negates the gap-s */
}
.slot.empty:first-child {
  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
}

.slot.empty:last-child {
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
}

.slot.session.break,
.slot.session.break--ghost {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  box-shadow: none;
}

/* Base style: empty = transparent with top/bottom border only */
.slot.empty {
  background: transparent;
  border-top: 2px solid #fff;
  border-bottom: 2px solid #fff;
  border-left: none;
  border-right: none;
  border-radius: 0;
  box-shadow: none;
}

/* First in group of empty = add left border + round */
.slot.empty:not(.skip):not(.break--ghost):first-child,
.slot.empty:not(.skip):not(.break--ghost):not(.slot.empty + .slot.empty) {
  border-left: 2px solid #fff;
  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
}

/* Last in group of empty = add right border + round */
.slot.empty:not(.skip):not(.break--ghost):last-child,
.slot.empty:not(.skip):not(.break--ghost):has(+ .slot:not(.empty)),
.slot.empty:not(.skip):not(.break--ghost):not(:has(+ .slot.empty)) {
  border-right: 2px solid #fff;
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
}

/* Ghost break cell = full white border, no background */
.slot.session.break--ghost {
  background: transparent;
  border: 2px solid #fff;
  border-radius: 10px;
  color: #e17000;
  box-shadow: none;
}

/* Normal session = white background, soft inset outline */
.slot.session:not(.break):not(.break--ghost) {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 0 0 2px #CCE0F1 inset;
}

/* new wrapper around scrollable track cells, per-row */
.schedule-scroll-x-row {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  flex: 1 1 auto;
}

/* fix sticky track-stage per row */
.track-stage {
  position: sticky;
  left: 0;
  z-index: 10;
  background: #28335D;
  color: #fff;
  border-radius: 10px;
  padding: 10px;
  width: 100px;
  flex: 0 0 100px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}


.schedule-tabs-container svg#artifact {
    position: absolute;
    top: 116px;
    left: -166px;
    background: #CCE0F1;
}

/* .filter-button{
    position: absolute;
    top: -16px;
    left: 100px;
    height: 40px;
} */

.schedule-tabs-container{
  position: relative;
  z-index: 100;
}
/* Container */
.filter-bar {
  display: flex;
  gap: 10px;
}

/* Button */
.filter-button {
  background: #fff;
  color: #e17000;
  border: 2px solid #e17000;
  border-radius: 24px;
  padding: 8px 16px;
  font-weight: bold;
  cursor: pointer;
}


.filter-group button:hover,
.filter-group button:focus {
    background: #e17000;
}

.filter-group button.clear-btn:hover,
.filter-group button.clear-btn:focus
{
background: transparent;
color: #e17000;
}
/* Dropdown */
.filter-group {
  position: relative;
}

.dropdown {
  position: absolute;
  top: 110%;
  left: 0;
  width: 300px;
  background: white;
  border: 1px solid #ccc;
  box-shadow: 0 5px 10px rgba(0,0,0,0.1);
  padding: 16px;
  display: none;
  z-index: 10;
}

.dropdown ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.dropdown ul li {
  margin-bottom: 10px;
}

.dropdown label {
  display: flex;
  align-items: center;
  font-size: 14px;
  gap: 8px;
}

/* Custom checkbox */
.dropdown input[type="checkbox"] {
  appearance: none;
  width: 16px;
  height: 16px;
  border: 2px solid #01689b;
  border-radius: 3px;
  background: white;
  cursor: pointer;
}

.dropdown input[type="checkbox"]:checked {
  border-color: #e17000;
  background-color: #e17000;
}

/* Actions */
.dropdown-actions {
  display: flex;
  justify-content: space-between;
  margin-top: 12px;
}

.clear-btn {
  background: none;
  border: none;
  color: #e17000;
  font-weight: bold;
  cursor: pointer;
}

.apply-btn {
  background: #fff;
  border: 2px solid #e17000;
  color: #e17000;
  font-weight: bold;
  border-radius: 16px;
  padding: 4px 12px;
  cursor: pointer;
}

.apply-btn:hover,
.clear-btn:hover {
  text-decoration: underline;
}

.schedule-scroll-x.dragging {
  cursor: grabbing;
  cursor: -webkit-grabbing;
}
.schedule-scroll-x {
  cursor: grab;
  cursor: -webkit-grab;
}

  .session.dim        { opacity:.2; transition:opacity .15s ease; cursor:pointer; }
  .filter-button.active{ background:#e17000;  color:#fff; }
.hidden      { display:none!important; }
.hidden-col  .slot.header-cell,
.hidden-col  .slot            { display:none!important; }

.elementor-shortcode{
  position: relative;
  z-index: 1;
}

#filter-reset-popup{
  z-index: 101;
}
.popup-clear-filters{
    max-width: 200px;
    top: 50%;
    position: fixed;
    left: 50%;
    margin-left: -100px;
}

.sessions-container .slot a:not(.session-title) {
  text-decoration: underline;
}

@media screen and (max-width: 768px){
  #artifact {
    display: none;
  }
  .schedule-filter-bar{
    margin-bottom: 40px;
    padding-left: 10px;
  }
  .track-session{
    border: 1px solid;
    margin: 10px;
    border-radius: 3px;
  }
  .track-session.session{
    background-color: #ffe5c0;
  }
}

.schedule-container.active{
  box-shadow: inset -10px 0 10px -10px rgba(0, 0, 0, 0.1);
  position: relative;
  z-index: 10;

}

/* Crisis Management - Lintblauw */
.track-session.crisis-management,
.slot.session.crisis-management {
    background-color: #154273 !important;
    color: #ffffff !important;
}

.track-session.crisis-management a,
.slot.session.crisis-management a {
    color: #ffffff !important;
}

/* Beveiliging van de Keten - (keeping original as not in new set) */
.track-session.securing-the-chain,
.slot.session.securing-the-chain {
    background-color: #42145f !important;
    color: #ffffff !important;
}
.track-session.securing-the-chain a,
.slot.session.securing-the-chain a {
    color: #ffffff !important;
}

/* Menselijke Factor - Paars */
.track-session.human-factor,
.slot.session.human-factor {
    background-color: #01689b !important;
    color: #ffffff !important;
}
.track-session.human-factor a,
.slot.session.human-factor a {
    color: #ffffff !important;
}

/* Kracht van Samenwerkingen - Dark Forest Green */
.track-session.power-of-partnerships,
.slot.session.power-of-partnerships {
    background-color: #007bc7 !important;
    color: #ffffff !important;
}
.track-session.power-of-partnerships a,
.slot.session.power-of-partnerships a {
    color: #ffffff !important;
}

/* Toekomst van Cybersecurity - Mintgroen */
.track-session.future-of-cybersecurity,
.slot.session.future-of-cybersecurity {
    background-color: #76d2b6 !important;
    color: #333333 !important;
}
.track-session.future-of-cybersecurity a,
.slot.session.future-of-cybersecurity a {
    color: #333333 !important;
}

/* Kern van Technologie - Forest Green */
.track-session.core-of-tech,
.slot.session.core-of-tech {
    background-color: #8fcae7 !important;
    color: #000 !important;
}
.track-session.core-of-tech a,
.slot.session.core-of-tech a {
    color: #000 !important;
}

/* Wet- en Regelgeving - Hemelblauw */
.track-session.law-policy,
.slot.session.law-policy {
    background-color: #1b4332 !important;
    color: #ffffff !important;
}
.track-session.law-policy a,
.slot.session.law-policy a {
    color: #ffffff !important;
}

/* Geopolitiek - Deep Purple */
.track-session.geopolitics,
.slot.session.geopolitics {
    background-color: #6a1b9a !important;
    color: #ffffff !important;
}
.track-session.geopolitics a,
.slot.session.geopolitics a {
    color: #ffffff !important;
}

/* Publiek-Private Samenwerkingen - Donkerblauw */
.track-session.public-private-partnerships,
.slot.session.public-private-partnerships {
    background-color: #2e7d32 !important;
    color: #ffffff !important;
}
.track-session.public-private-partnerships a,
.slot.session.public-private-partnerships a {
    color: #ffffff !important;
}

.theme-color-indicator {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  margin-right: 8px;
  flex-shrink: 0;
}

/* Match theme indicator to session block color */
.theme-color-indicator.crisis-management {
  background-color: #154273;
}
.theme-color-indicator.securing-the-chain {
  background-color: #42145f;
}
.theme-color-indicator.human-factor {
  background-color: #01689b;
}
.theme-color-indicator.power-of-partnerships {
  background-color: #007bc7;
}
.theme-color-indicator.future-of-cybersecurity {
  background-color: #76d2b6;
}
.theme-color-indicator.core-of-tech {
  background-color: #8fcae7;
}
.theme-color-indicator.law-policy {
  background-color: #1b4332;
}
.theme-color-indicator.geopolitics {
  background-color: #6a1b9a;
}
.theme-color-indicator.public-private-partnerships {
  background-color: #2e7d32;
}

.slot.empty.middle{
  width: 4px !important;
  flex: 1;
}

.schedule-header {
  --scroll-x-offset: 0px;
  --fixed-top: 70px;
  --fixed-trigger-offset: 20px; /* starts fixing when header is 20px from top */
}

.schedule-header.fixed {
  position: fixed;
  top: var(--fixed-top, 88px);
  z-index: 20;
  background: #CCE0F1;
  will-change: transform;
}

.slot.session[aria-label="Session Networking Lunch from 12:35 to 13:00"]:not(.break):not(.break--ghost){
  background: #ffe5c0;
}