/* ================================================================
   TYPOGRAPHY — Inter replaces helvetica/arial
   ================================================================ */
html,
button,
input,
select,
textarea {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

html {
  background: #f8f9fa;
  color: #37474f;
  font: normal 400 10px/1.5em 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ================================================================
   HEADINGS
   ================================================================ */
h1, h2, h3, h4, h5, h6 {
  color: #1a3161;
  font-weight: 600;
}

.section-title {
  font-weight: 700;
  color: #1a3161;
  padding-bottom: 0.2em;
  border-bottom: 3px solid #1565c0;
  display: inline-block;
  margin-bottom: 0.7em;
}

/* ================================================================
   NAVIGATION
   ================================================================ */
nav {
  background: #1a3161;
}

.nav-link {
  color: #cfd8e3;
  font-weight: 500;
}

.nav-link:active,
.nav-link:hover,
.nav-link:focus,
.nav-link.current {
  color: #ffffff;
}

/* ================================================================
   HEADER
   ================================================================ */
.header {
  background-color: #1a3161;
}

.logo-link,
.tagline,
.call-action-area .price {
  color: #ffffff;
  text-shadow: none;
}

.tagline {
  font-size: 4em;   /* theme: 2em — bump up for visibility */
}

.logo-name {
  font-size: 8em;          /* theme: 10em — slightly smaller for long titles */
  font-weight: 300;        /* Inter Light — slim strokes */
  line-height: 1.25;       /* theme inherits 1em from heading reset — needs breathing room */
  letter-spacing: -0.01em; /* theme: -0.04em — ease the tightness */
  margin-bottom: 0.4em;    /* theme: 0 — add space before tagline */
}

@media only screen and (max-width: 1024px) {
  .logo-name { font-size: 6em; }
  .tagline    { font-size: 3em; }
}

@media only screen and (max-width: 768px) {
  .logo-name { font-size: 4.5em; }
  .tagline    { font-size: 2.4em; }
}

@media only screen and (max-width: 480px) {
  .logo-name { font-size: 3.2em; }
  .tagline    { font-size: 1.8em; }
}

@media only screen and (max-width: 321px) {
  .logo-name { font-size: 2.6em; }
  .tagline    { font-size: 1.5em; }
}

/* ================================================================
   BUTTONS — reset theme's clunky top:-5px jump effect on both types
   ================================================================ */
.call-action-area .call-action-link,
.btn {
  position: relative;
  top: 0;                   /* theme sets -5px; kill that */
  background-image: none;
  filter: none;
  text-shadow: none;
  box-shadow: none;
  border-radius: 5px;
  font-weight: 500;
  letter-spacing: 0.02em;
  transition: background 0.18s ease, color 0.18s ease,
              border-color 0.18s ease, opacity 0.18s ease;
}

.call-action-area .call-action-link:hover,
.call-action-area .call-action-link:focus,
.btn:hover,
.btn:focus {
  top: 0;                   /* override theme's hover top:0 (redundant but safe) */
  box-shadow: none;
}

/* Header CTA — outlined on dark background */
.call-action-area .call-action-link {
  background: transparent;
  border: 1.5px solid rgba(255, 255, 255, 0.75);
  color: #ffffff;
  padding: 10px 24px;
  font-size: 1.5em;
}

.call-action-area .call-action-link:hover,
.call-action-area .call-action-link:focus {
  background: rgba(255, 255, 255, 0.12);
  border-color: #ffffff;
  color: #ffffff;
}

/* Content buttons — plain text link style, matches paragraph */
.btn {
  background: transparent;
  border: none;
  border-radius: 0;
  color: #1565c0;
  padding: 0;
  font-size: inherit;   /* match surrounding paragraph size */
  font-weight: 400;
  letter-spacing: 0;
  display: inline;
  transition: text-decoration 0s;
}

.btn:hover,
.btn:focus {
  background: transparent;
  color: #1565c0;       /* no color change */
  text-decoration: underline;
}

/* ================================================================
   CONTENT LISTS — theme's 10px base + missing li font-size makes them tiny;
   the * reset also strips list-style, so restore bullets/numbers here
   ================================================================ */
.content ul,
.content ol {
  margin-bottom: 1.4em;
  padding-left: 2em;
}

.content ul {
  list-style: disc;
}

.content ol {
  list-style: decimal;
}

.content li:not(.speakers-item) {
  font-size: 1.6em;
  line-height: 1.6em;
  margin-bottom: 0.3em;
}

/* ================================================================
   CONTENT LINKS
   ================================================================ */
.content a {
  color: #1565c0;
}

.content a:hover,
.content a:focus {
  color: #0d47a1;
  text-decoration: underline;
}

/* ================================================================
   LOCATION SECTION
   ================================================================ */
.location-subtitle {
  font-size: 2.4em;
  font-weight: 600;
  margin-top: 1.2em;
  margin-bottom: 0.4em;
}

.location-area {
  margin: 1.6em 0;
}

.location-travel p {
  font-size: 1.6em;
  line-height: 1.6em;
  margin-bottom: 1em;
}

/* ================================================================
   ABOUT SECTION — reset theme's card box so it matches other sections
   ================================================================ */
.about {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  margin: 0;
}

/* ================================================================
   SCHEDULE TABLE
   ================================================================ */
.schedule-day td {
  background: #1a3161;
  color: #ffffff;
  font-weight: 600;
  font-size: 1.3em;
  letter-spacing: 0.02em;
  padding: 10px 30px;
  border-bottom: none;
}

.schedule-tbl {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
}

.schedule-tbl table {
  background: #ffffff;
}

.schedule-tbl td,
.schedule-tbl th {
  border-bottom: 1px solid #e9ecef;
}

.schedule-tbl th {
  color: #1a3161;
}

.schedule-tbl tbody tr:nth-child(2n+1) {
  background: #f8f9fa;
}

.schedule-tbl tbody tr:hover {
  background: #e8f0fe;
}

.schedule-slot {
  color: #1a3161;
}

.schedule-coffee,
.schedule-closing,
.schedule-lunch,
.schedule-other {
  color: #37474f;
}

/* ================================================================
   SPEAKER BADGE + SEPARATORS
   ================================================================ */
.speech-time {
  background: #1565c0;
  color: #ffffff;
  border-radius: 6px;
}

.speakers-item {
  border-bottom: 1px solid #dee2e6;
}

/* ================================================================
   LOCATION MAP AREA
   ================================================================ */
.location-area {
  background: #e9ecef;
  border: 1px solid #dee2e6;
  border-radius: 6px;
}

/* ================================================================
   FOOTER
   ================================================================ */
.footer p {
  color: #6c757d;
}

/* ================================================================
   DARK MODE
   ================================================================ */
@media (prefers-color-scheme: dark) {
  html {
    background: #121212;
    color: #e0e0e0;
  }

  h1, h2, h3, h4, h5, h6 {
    color: #90b8f8;
  }

  .section-title {
    color: #90b8f8;
    border-bottom-color: #1565c0;
  }

  nav {
    background: #0d1b2a;
  }

  .header {
    background-color: #0d1b2a;
  }

  .logo-link,
  .tagline {
    color: #e0e0e0;
  }

  .schedule-tbl {
    background: #1e1e1e;
    border-color: #333;
    box-shadow: none;
  }

  .schedule-tbl table {
    background: #1e1e1e;
    color: #e0e0e0;
  }

  .schedule-tbl th {
    color: #90b8f8;
    background: #1e1e1e !important;
  }

  .schedule-tbl td,
  .schedule-tbl th {
    border-bottom-color: #333 !important;
  }

  .schedule-tbl tbody tr:nth-child(2n+1) {
    background: rgba(255, 255, 255, 0.04) !important;
  }

  .schedule-tbl tbody tr:hover {
    background: rgba(21, 101, 192, 0.15) !important;
  }

  .schedule-slot {
    color: #e0e0e0;
  }

  .schedule-coffee,
  .schedule-closing,
  .schedule-lunch,
  .schedule-other {
    color: #b0c4de;
  }

  .location-area {
    background: #2d2d2d;
    border-color: #444;
  }

  .content a {
    color: #90b8f8;
  }

  .content a:hover,
  .content a:focus {
    color: #bbdefb;
  }

  .footer p {
    color: #9e9e9e;
  }
}
