/* ==================================================
   Responsive base font sizing for Bootstrap
   ==================================================

   Bootstrap uses `rem` units for typography.
   1rem is based on the font size of the <html> element.

   By adjusting the <html> font size at different
   breakpoints, all Bootstrap text scales naturally
   across devices (headings, body text, buttons, forms).
*/

/* --------------------------------------------------
   Mobile first (default)
   Applies to phones and small devices
   -------------------------------------------------- */
html {
  font-size: 16px; /* Safe and readable on small screens */
}

/* --------------------------------------------------
   Tablets and small desktops (Bootstrap md breakpoint)
   Screens ≥ 768px
   -------------------------------------------------- */
@media (min-width: 768px) {
  html {
    font-size: 17px; /* Slightly larger for more screen space */
  }
}

/* --------------------------------------------------
   Large desktops (Bootstrap xl breakpoint)
   Screens ≥ 1200px
   -------------------------------------------------- */
@media (min-width: 1200px) {
  html {
    font-size: 18px; /* Comfortable reading on large displays */
  }
}

/* --------------------------------------------------
   Body defaults
   Ensures consistent scaling and readability
   -------------------------------------------------- */
body {
  font-size: 1rem;        /* Inherits from <html> */
  line-height: 1.6;       /* Improves readability */
}

header.home {
  height: 100vh;
  min-height: 500px;
  background-attachment: scroll;
  background-image: url('/style/img/header-bg.jpg');
  background-position: center center;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  background-size: cover;
  -o-background-size: cover;
}

.link-icon {
  width: 28px;
  height: 28px;
  opacity: 0.6;
  color: white;
}

.navbar .dropdown-menu {
  transition: background-color 0.3s ease;
}

.navbar-home {
  background-color: transparent ! important;
}

.navbar-home:not(.solid) .dropdown-menu {
  background-color: transparent;
  border: none;
  box-shadow: none;
}

.navbar .dropdown-item:hover {
  background-color: rgba(255, 255, 255, 0.15);
}

.navbar-home.solid, 
.navbar-home.solid .dropdown-menu, 
.navbar-other, 
.navbar-other .dropdown-menu {
  background-color: #70acea ! important;
}


.navbar .nav-link, 
.navbar .dropdown-item {
  /* color: blue ! important; */
  color: white ! important;
}

.footer {
  background-color: #70acea ! important;
  color: blue ! important;
}
.paper {
    border-left: solid black 1px;
    border-right: solid black 1px;
    border-top: solid black 1px;
    padding: 2pt;
    padding-left: 5.5ex;
    text-indent: -4.5ex;
}

.paper:last-child {
    border-bottom: solid black 1px;
}

.paper .number {
    display: inline-block;
    width: 4ex;
    text-align: right;
}

.paper .authors {
    font-weight: bold;
}

.paper .title {
    font-style: italic;
}

.paper .invited {
    font-weight: bold;
    font-style: italic;
}

.break {
    padding: 2pt;
    padding-left: 3.5ex;
}

/* Registration fees table */

.registration-fees {
  margin: 2rem auto;              /* center the table */
  border-collapse: collapse;
  border: 3px double #333;        /* strong outer border */
  min-width: 500px;
}

.registration-fees thead th {
  border-bottom: 3px double #333; /* strong separation for header */
  padding: 0.75rem 1rem;
  text-align: center;
  font-weight: bold;
}

.registration-fees th,
.registration-fees td {
  border: 1px solid #555;         /* inner grid lines */
  padding: 0.6rem 1rem;
}

.registration-fees tbody td:first-child {
  text-align: left;               /* conference names */
}

.registration-fees tbody td:not(:first-child) {
  text-align: center;             /* prices */
}

.registration-fees tbody tr:not(:last-child) td {
  border-bottom: 1px solid #777;  /* consistent row separation */
}

/* Optional: improve readability */
.registration-fees tbody tr:nth-child(even) {
  background-color: #f8f8f8;
}

/* ================= Programme hard reset ================= */

.programme,
.programme * {
  box-sizing: border-box;
}

/* Programme block is a DIV now, so theme's `section { padding:150px }` won't touch it */
.programme {
  margin-top: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 150px !important;
}

/* Tight top title spacing */
.programme > h2.programme-title {
  margin: 0 0 2rem 0 !important;
}


/* ===== Day blocks: EXACT spacing control ===== */
.programme .day {
  margin: 0 0 1.5rem 0 !important;   /* ← exactly 1.5rem between days */
  padding: 0 !important;
}

/* Day titles */
.programme .day-title {
  margin: 0.25rem 0 0.5rem 0 !important;
  padding: 0 0 0.25rem 0 !important;
  border-bottom: 2px solid #ddd;
}

/* Slots */
.programme .slot {
  display: flex;
  gap: 1rem;
  padding: 0.6rem 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid #eee;
}

.programme .slot:last-child {
  border-bottom: none;
}

/* Breaks */
.programme .slot.break {
  background: #f8f9fa;
  font-style: italic;
}

/* Time column */
.programme .time {
  flex: 0 0 120px;
  font-weight: 600;
  color: #555;
  white-space: nowrap;
}

/* Lists */
.programme .details ul {
  margin: 0.4rem 0 0 0 !important;
  padding-left: 1.2rem;
}

.programme .details li {
  margin: 0 0 0.4rem 0;
}

/* Tags */
.programme .tag {
  display: inline-block;
  margin-bottom: 0.3rem;
  padding: 0.15rem 0.5rem;
  font-size: 0.8rem;
  border-radius: 4px;
  background: #e9ecef;
}

.programme .tag.session { background: #dee2e6; }
.programme .tag.invited { background: #ced4da; font-weight: 600; }

/* Notes */
.programme .note {
  margin-top: 0.2rem;
  font-size: 0.9rem;
  color: #666;
}

/* Mobile */
@media (max-width: 576px) {
  .programme .slot {
    flex-direction: column;
  }
}

