/*--------------------------------------------------------------
# AGENDA BASE STYLES & TOKENS
--------------------------------------------------------------*/
.cw-block-agenda {
  /* --- Spacing Scale --- */
  --cw-space-0: 0;
  --cw-space-1: 0.25rem;
  --cw-space-2: 0.5rem;
  --cw-space-3: 0.75rem;
  --cw-space-4: 1rem;
  --cw-space-5: 1.5rem;
  --cw-space-6: 2rem;
  --cw-space-8: 3rem;
  --cw-space-12: 5rem;

  /* --- Design System Token Defaults --- */
  --font-regular: inherit;
  --cw-text-base: 1rem;
  --cw-text-lg: 1.25rem;
  --cw-text-sm: 0.875rem;
  --cw-font-normal: 400;
  --cw-font-bold: 700;
  --cw-leading-normal: 1.5;
  --gray-700: #4a5568;
  --gray-600: #718096;
  --gray-800: #2d3748;
  --gray-200: #e2e8f0;
  --gray-300: #cbd5e0;
  --gray-400: #a0aec0;
  --gray-500: #718096;
  --gray-600: #4a5568;
  --gray-700: #2d3748;
  --gray-800: #1a202c;

  /* --- Border Tokens --- */
  --border-width-base: 0;
  --border-width-thick: 4px;
  --border-width-thin: 1px;
  /* --border-color-base now set via options page */
  --border-color-print: #555;
  /* --border-radius-base now set via options page */
  --border-radius-full: 9999px;

  /* --- Presentation Title Tokens --- */
  /* --presentation-title-font-family now set via options page with inherit fallback */
  /* --presentation-title-font-size-mobile, --presentation-title-font-size-desktop, */
  /* --presentation-title-font-weight, and --presentation-title-color now set via options page */
  --presentation-title-link-color: var(--presentation-title-color);
  --presentation-title-link-decoration: none;
  --presentation-title-line-height: var(--cw-leading-normal);

  /* --- Speaker Name Tokens --- */
  --speaker-name-margin-top: var(--cw-space-2);
  /* --speaker-name-text-size-mobile, --speaker-name-text-size-desktop, */
  /* --speaker-name-text-weight, --speaker-name-text-color, and --speaker-name-link-color now set via options page */
  --speaker-name-link-decoration: none;


  /* --- Speaker Metadata Tokens --- */
  --speaker-meta-margin-top: var(--cw-space-1);
  --speaker-meta-divider-space: var(--cw-space-1);
  --speaker-meta-item-space: var(--cw-space-1);

  /* --- Room Display Tokens (set via options page) --- */
  /* These variables are now generated dynamically from options */

  /* --- Cell Spacing --- */
  /* --cell-y-spacing-mobile and --cell-y-spacing-desktop now set via options page */
  /* --cell-x-spacing-mobile and --cell-x-spacing-desktop now set via options page */
  /* --cell-border-left-width now set via options page */

  /* --- Agenda Row Spacing --- */
  --agenda-row-x-spacing-mobile: var(--cw-space-2);
  --agenda-row-y-spacing-mobile: var(--cw-space-4);
  --agenda-row-x-spacing-desktop: var(--cw-space-4);
  --agenda-row-y-spacing-desktop: var(--cw-space-4);

  /* --- Agenda Header Spacing --- */
  --agenda-header-x-spacing-mobile: var(--cw-space-2);
  --agenda-header-y-spacing-mobile: var(--cw-space-4);
  --agenda-header-x-spacing-desktop: var(--cw-space-4);
  --agenda-header-y-spacing-desktop: var(--cw-space-4);
  /* --above-agenda-day-spacing now set via options page */
  /* --agenda-header-primary-title-font-size now set via options page */
  /* --agenda-header-sub-title-font-size now set via options page */
  /* --agenda-header-primary-title-font-weight now set via options page */
  /* --agenda-header-sub-title-font-weight now set via options page */
  /* --agenda-header-primary-title-font-family now set via options page with inherit fallback */
  /* --agenda-header-sub-title-font-family now set via options page with inherit fallback */
  --agenda-header-primary-title-line-height: 1.25;
  --agenda-header-sub-title-line-height: 1.25;

  /* --- Cell Info Spacing --- */
  --cell-info-x-spacing-mobile: var(--cw-space-2);
  --cell-info-y-spacing-mobile: var(--cw-space-4);
  --cell-info-x-spacing-desktop: var(--cw-space-4);
  --cell-info-y-spacing-desktop: var(--cw-space-4);

  /* --- Timezone Selector Tokens --- */
  --timezone-block-margin: var(--cw-space-5);
  --timezone-title-size: var(--cw-text-lg);
  --timezone-title-margin: var(--cw-space-2);
  --timezone-border-color: var(--gray-400);
  --timezone-border-width: var(--border-width-base);

  /* --- Print Tokens --- */
  --print-day-spacing: 3cm;
  --print-border-color: var(--border-color-print);
  --print-border-width: 0.65pt;
  --print-title-size-large: 38pt;
  --print-title-size-small: 24pt;
}

/*--------------------------------------------------------------
# AGENDA LAYOUT & SPACING
--------------------------------------------------------------*/
.cw-block-agenda .cw-agenda-time-cell {
  padding-left: var(--cell-x-spacing-mobile);
  padding-right: var(--cell-x-spacing-mobile);
  padding-top: var(--cell-y-spacing-mobile);
  padding-bottom: var(--cell-y-spacing-mobile);
  border-left-width: var(--cell-border-left-width);
  border-left-style: solid;
  border-left-color: var(--border-color-base);
}

.cw-block-agenda .cw-agenda-header {
  padding-left: var(--agenda-header-x-spacing-mobile);
  padding-right: var(--agenda-header-x-spacing-mobile);
  padding-top: var(--agenda-header-y-spacing-mobile);
  padding-bottom: var(--agenda-header-y-spacing-mobile);
}

.cw-block-agenda .cw-agenda-header h3 {
  font-size: var(--agenda-header-h3-font-size-mobile);
  font-weight: var(--agenda-header-h3-font-weight);
  font-family: var(--agenda-header-h3-font-family, inherit);
  line-height: 1.25;
  color: var(--agenda-header-h3-color, inherit);
}

.cw-block-agenda .cw-agenda-header h5 {
  font-size: var(--agenda-header-h5-font-size-mobile);
  font-weight: var(--agenda-header-h5-font-weight);
  font-family: var(--agenda-header-h5-font-family, inherit);
  line-height: 1.25;
  color: var(--agenda-header-h5-color, inherit);
}

.cw-block-agenda .cw-agenda-content-cell {
  padding-left: var(--cell-x-spacing-mobile);
  padding-right: var(--cell-x-spacing-mobile);
  padding-top: var(--cell-y-spacing-mobile);
  padding-bottom: var(--cell-y-spacing-mobile);
  border-left-width: var(--cell-border-left-width);
  border-left-style: solid;
  border-left-color: var(--border-color-base);
}

/*--------------------------------------------------------------
# AGENDA TYPOGRAPHY
--------------------------------------------------------------*/
.cw-block-agenda h1,
.cw-block-agenda h2,
.cw-block-agenda h3,
.cw-block-agenda h4,
.cw-block-agenda h5,
.cw-block-agenda h6,
.cw-block-agenda p {
  margin: 0;
}

.cw-agenda-presentation-title {
  font-family: var(--presentation-title-font-family, inherit);
  font-size: var(--presentation-title-font-size-mobile);
  font-weight: var(--presentation-title-font-weight);
  color: var(--presentation-title-color);
  line-height: var(--presentation-title-line-height);
}

.cw-agenda-presentation-link {
  color: var(--presentation-title-link-color);
  text-decoration: var(--presentation-title-link-decoration);
}

.cw-block-agenda .cw-speaker-name {
  font-size: var(--speaker-name-text-size-mobile);
  font-weight: var(--speaker-name-text-weight);
  color: var(--speaker-name-text-color);
}

.cw-block-agenda .cw-speaker-link {
  color: var(--speaker-name-link-color);
  text-decoration: var(--speaker-name-link-decoration);
}

.cw-block-agenda .cw-speaker-meta {
  margin-top: var(--speaker-meta-margin-top);
  font-size: var(--speaker-meta-font-size-mobile);
  font-weight: var(--speaker-meta-font-weight);
  color: var(--speaker-meta-color, inherit);
  font-family: var(--speaker-meta-font-family, inherit);
}

.speaker-content-horizontal .cw-speaker {}

/*--------------------------------------------------------------
# AGENDA FREEFORM TYPOGRAPHY
--------------------------------------------------------------*/
.cw-block-agenda .cw-agenda-freeform strong {
  font-weight: var(--freeform-strong-font-weight);
  color: var(--freeform-strong-color, inherit);
  font-family: var(--freeform-strong-font-family, inherit);
}

/*--------------------------------------------------------------
# AGENDA BORDERS & DIVIDERS
--------------------------------------------------------------*/
.cw-block-agenda .border-b {
  border-bottom-style: solid;
  border-bottom-width: var(--border-width-thin);
  border-bottom-color: var(--border-color-base);
}

.cw-block-agenda header+.cw-agenda-row,
.cw-block-agenda .border-t {
  border-top-style: solid;
  border-top-width: var(--border-width-thin);
  border-top-color: var(--border-color-base);
}

.cw-agenda-row .cw-agenda-presentation,
.cw-agenda-row .cw-agenda-freeform {
  border-bottom-color: var(--border-color-base);
}

/* Remove bottom border when custom border color is set */
.cw-agenda-freeform[style*="border-color"] {
  border-bottom-width: 0 !important;
}

/* Lightened border for content cells in colored rows */
.has-background .cw-agenda-content-cell.border-l-4 {
  border-left-width: var(--cell-border-left-width);
  border-left-style: solid;
}

.cw-block-agenda .agenda-divider {}

/*--------------------------------------------------------------
# AGENDA RESPONSIVE STYLES
--------------------------------------------------------------*/
@media (min-width: 1024px) {
  .cw-block-agenda .cw-agenda-time-cell {
    padding-left: var(--cell-x-spacing-desktop);
    padding-right: var(--cell-x-spacing-desktop);
    padding-top: var(--cell-y-spacing-desktop);
    padding-bottom: var(--cell-y-spacing-desktop);
    border-left-width: 0;
  }

  .cw-block-agenda .cw-agenda-header {
    padding-left: var(--agenda-header-x-spacing-desktop);
    padding-right: var(--agenda-header-x-spacing-desktop);
    padding-top: var(--agenda-header-y-spacing-desktop);
    padding-bottom: var(--agenda-header-y-spacing-desktop);
  }

  .cw-block-agenda .cw-agenda-content-cell {
    padding-left: var(--cell-x-spacing-desktop);
    padding-right: var(--cell-x-spacing-desktop);
    padding-top: var(--cell-y-spacing-desktop);
    padding-bottom: var(--cell-y-spacing-desktop);
  }

  .cw-agenda-presentation-title,
  .cw-agenda-presentation-title a {
    font-size: var(--presentation-title-font-size-desktop);
  }

  .cw-block-agenda .cw-speaker-name {
    font-size: var(--speaker-name-text-size-desktop);
  }

  .cw-block-agenda .cw-speaker-meta {
    font-size: var(--speaker-meta-font-size-desktop);
  }

  .cw-block-agenda .cw-agenda-header h3 {
    font-size: var(--agenda-header-h3-font-size-desktop);
  }

  .cw-block-agenda .cw-agenda-header h5 {
    font-size: var(--agenda-header-h5-font-size-desktop);
  }

  .cw-agenda-row {
    margin-bottom: 0;
    border-top-width: 0;
  }

  .cw-agenda-row:not(.cw-row-type-title_row) {
    margin-bottom: 0;
  }

  .cw-agenda-time-cell:empty {
    display: block;
  }

  .cw-agenda-time-cell:not(:empty) {
    border-bottom-width: 0;
  }
}

.cw-agenda-day+.cw-agenda-day {
  padding-top: var(--above-agenda-day-spacing);
}

/*--------------------------------------------------------------
# AGENDA PRINT STYLES
--------------------------------------------------------------*/
@media print {
  .cw-agenda-day {
    margin-top: 0;
    page-break-inside: avoid;
  }

  .cw-agenda-day+.cw-agenda-day {
    padding-top: var(--print-day-spacing);
  }

  .cw-agenda-shortcode *,
  .cw-agenda-row * {
    border-bottom-color: var(--print-border-color) !important;
    border-bottom-width: 0 !important;
  }

  .cw-agenda-row:nth-child(2):not(.cw-row-type-title_row) {
    border-top-width: 0 !important;
  }

  .cw-agenda-day header h5,
  .cw-agenda-day header h3 {
    font-size: var(--print-title-size-large);
    font-family: var(--text-ultra-light);
  }

  .cw-agenda-day header h5 {
    color: var(--blue-light);
    font-size: var(--print-title-size-small);
    font-family: var(--text-light);
  }

  .cw-agenda-day .border-b,
  .cw-agenda-row .cw-agenda-freeform,
  .cw-agenda-row .cw-agenda-presentation {
    border-bottom-color: transparent !important;
  }

  .cw-agenda-row,
  .cw-agenda-row:nth-child(2):not(.cw-row-type-title_row) {
    position: relative;
    background-color: white;
  }

  .cw-agenda-row:after,
  .cw-agenda-row:nth-child(2):not(.cw-row-type-title_row):after {
    content: "";
    height: var(--print-border-width);
    width: 100%;
    top: 0;
    background: var(--print-border-color);
    z-index: 10000000;
    position: absolute;
    display: block;
  }

  .cw-agenda-row:last-child:before {
    content: "";
    height: var(--print-border-width);
    width: 100%;
    top: 100%;
    background: var(--print-border-color);
    z-index: 10000000;
    position: absolute;
    display: block;
  }

  .cw-agenda-day .-mt-px {
    margin-top: 0;
  }
}

/*--------------------------------------------------------------
# AGENDA UTILITY CLASSES
--------------------------------------------------------------*/
.entry-content .cw-agenda-shortcode .cw-agenda-heading>p+p {
  margin-top: 1rem;
}

.cw-agenda-heading>p.cw-agenda-room {
  color: inherit;
}

.entry-content .cw-agenda-shortcode p+p {
  margin-top: var(--speaker-name-margin-top);
}

.cw-agenda-shortcode {
  color: inherit;
}

.entry-content .cw-row-type-presentation .cw-speaker.mt-2 {
  margin-top: var(--speaker-name-margin-top);
}

.cw-block-agenda .cw-speaker-meta>span:last-child {
  border-right: none;
}

/* Room Display Styling */
.cw-block-agenda .cw-agenda-room {
  background: var(--cw-agenda-room-background);
  color: var(--cw-agenda-room-color);
  font-size: var(--cw-agenda-room-font-size);
  font-weight: var(--cw-agenda-room-font-weight);
  border-radius: var(--cw-agenda-room-border-radius);
  display: inline-block;
  padding: 0.25rem 0.5rem;
  margin: 0;
}

/*--------------------------------------------------------------
# AGENDA SUBSESSION STYLES
--------------------------------------------------------------*/
.subsession-block {
  --subsession-padding-top: .5rem;
  --subsession-padding-bottom: .5rem;
  width: 100%;
}

.agenda-row-padding-y {
  --agenda-row-padding-y: 2rem;
  padding-top: var(--agenda-row-padding-y);
  padding-bottom: var(--agenda-row-padding-y);
}

.subsession-block.contains-subsession-rows>div {
  flex: none;
  padding-top: var(--subsession-padding-top);
  padding-bottom: var(--subsession-padding-bottom);
  border-top-width: 1px;
  border-top-color: var(--light) !important;
}

.subsession-block.contains-subsession-rows>div:first-child {
  border-top-width: 0;
}

/*--------------------------------------------------------------
# AGENDA TIMEZONE SELECTOR
--------------------------------------------------------------*/
.timezone-block {
  margin: var(--timezone-block-margin) 0;
}

div.select-title {
  font-size: var(--timezone-title-size);
  margin-bottom: var(--timezone-title-margin);
}

#select-timezone {
  border: var(--timezone-border-width) solid var(--timezone-border-color);
}

select.hidden#select-timezone {
  display: none;
}

@media (min-width: 1024px) {
  .cw-block-agenda .lg\:border-b-0 {
    border-bottom-width: 0 !important;
  }
}
