/* ==============================
   JSUOG 2027 Program CSS
   Soft Poster-Matched Version
============================== */

:root {
  --color-primary: #1F3468;
  --color-primary-soft: #4F70B8;
  --color-secondary: #BFD5F6;
  --color-secondary-light: #EAF2FF;
  --color-bg: #F8FAFD;
  --color-bg-warm: #F7F4EC;
  --color-accent: #C9B97A;

  --color-text: #33415C;
  --color-text-light: #667085;
  --color-white: #FFFFFF;

  --border-soft: rgba(191, 213, 246, 0.75);
  --shadow-soft: 0 8px 24px rgba(31, 52, 104, 0.08);
  --shadow-hover: 0 12px 30px rgba(31, 52, 104, 0.13);

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
}

/* ==============================
   Program Page Styles
============================== */

.program-pdf {
  text-align: center;
  margin: 20px 0 40px;
}

/* ==============================
   Program Day Section
============================== */

.program-day {
  margin-bottom: 50px;
  padding: 24px;

  background: linear-gradient(135deg, var(--color-white), var(--color-bg));
  border-left: 6px solid var(--color-accent);
  border-radius: var(--radius-lg);
  border-top: 1px solid var(--border-soft);
  border-right: 1px solid var(--border-soft);
  border-bottom: 1px solid var(--border-soft);

  box-shadow: var(--shadow-soft);
}

.program-day h3 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;

  margin-bottom: 22px;

  font-size: 1.45em;
  font-weight: 700;
  color: var(--color-primary);
}

.program-day h3 span {
  margin-left: 8px;

  font-size: 0.9em;
  font-weight: 700;
  color: var(--color-text);
}

.program-day h3 span.tokubetsu {
  padding: 4px 12px;

  border-radius: 999px;
  color: var(--color-primary);
  background: var(--color-secondary-light);
  border: 1px solid var(--border-soft);
}

/* ==============================
   Program Item
============================== */

.program-item {
  margin-bottom: 20px;
  padding: 18px;

  background: var(--color-white);
  border: 1px solid rgba(191, 213, 246, 0.65);
  border-radius: var(--radius-md);

  box-shadow: 0 6px 18px rgba(31, 52, 104, 0.06);

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}

.program-item:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
  border-color: var(--color-secondary);
}

.program-item h4 {
  margin: 0 0 8px;

  font-weight: 700;
  color: var(--color-primary);
}

.program-item .affiliation {
  margin: 0 0 6px;

  font-size: 0.95em;
  color: var(--color-text-light);
}

.program-item .topic {
  font-size: 1em;
  color: var(--color-text);
  font-style: italic;
  line-height: 1.7;
}

/* Workshop Highlight */

.program-item.workshop {
  background: linear-gradient(135deg, var(--color-secondary-light), var(--color-white));
  border: 1px solid var(--color-secondary);
  border-left: 5px solid var(--color-accent);
}

.program-item.workshop h4 {
  color: var(--color-primary);
}

/* Program Lists */

.program-item ul {
  margin: 12px 0 0 20px;
  padding: 0;

  list-style: none;
  font-size: 0.95em;
  color: var(--color-text);
}

.program-item ul li {
  position: relative;
  margin-bottom: 8px;
  line-height: 1.7;
}

.program-item ul li::before {
  content: "•";
  position: absolute;
  left: -16px;
  color: var(--color-accent);
  font-weight: 700;
}

/* ==============================
   Speaker Line
============================== */

.speaker-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.speaker-line .sponsor {
  max-width: 100%;
  padding: 4px 10px;

  font-size: 0.9em;
  font-weight: 700;
  color: var(--color-primary);

  background: var(--color-bg-warm);
  border: 1px solid rgba(201, 185, 122, 0.45);
  border-radius: 999px;

  white-space: nowrap;
}

/* ==============================
   Responsive
============================== */

@media (min-width: 769px) {
  .speaker-line {
    gap: 28px;
  }
}

@media (max-width: 768px) {
  .program-day {
    padding: 18px;
    margin-bottom: 36px;
  }

  .program-day h3 {
    font-size: 1.25em;
  }

  .program-item {
    padding: 15px;
  }

  .speaker-line .sponsor {
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .program-day h3 span.tokubetsu {
    flex-basis: 100%;
    margin-left: 0;
    margin-top: 6px;
  }
}

/* ==============================
   Accessibility
============================== */

@media (prefers-reduced-motion: reduce) {
  .program-item {
    transition: none;
  }
}

/* ==============================
   Program Page End
============================== */