/* ==============================
   JSUOG 2027 Abstract 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;
}

/* ==============================
   Abstract Page
============================== */

.abs-page {
  flex: 1;
  padding: 34px;

  background: linear-gradient(135deg, var(--color-white), var(--color-bg));
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);

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

/* ==============================
   Page Lead
============================== */

.page-lead {
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--color-text-light);
}

/* ==============================
   Lists
============================== */

.list-bullets,
.list-steps {
  margin-left: 1.4rem;
  color: var(--color-text);
}

.list-bullets li {
  margin: 0.45rem 0;
  line-height: 1.7;
}

.list-steps li {
  margin: 0.65rem 0;
  line-height: 1.8;
}

.list-bullets li::marker,
.list-steps li::marker {
  color: var(--color-accent);
}

/* ==============================
   Subtitle
============================== */

.abs-subtitle {
  margin: 0.5rem 0 0.8rem;

  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.6;

  color: var(--color-primary);
}

/* ==============================
   Flex Layout Safety
============================== */

.container {
  align-items: flex-start;
}

.sidebar {
  flex: 0 0 330px;
  min-width: 280px;
}

.page-wrap {
  min-width: 0;
}

/* ==============================
   COI Section
============================== */

#coi {
  scroll-margin-top: 100px;
}

.abs-page .coi-samples {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  align-items: flex-start;

  margin-top: 18px;
}

.abs-page .coi-sample {
  flex: 1 1 320px;
  max-width: 520px;

  text-align: center;
}

.abs-page .coi-sample img {
  width: 100%;
  max-width: 100%;
  height: auto;

  border: 1px solid var(--border-soft);
  border-radius: var(--radius-md);

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

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

.abs-page .coi-sample img:hover {
  transform: translateY(-2px);
  border-color: var(--color-secondary);
  box-shadow: var(--shadow-hover);
}

.abs-page .coi-sample figcaption {
  margin-top: 10px;

  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--color-text-light);
}

/* ==============================
   Wide Content Safety
============================== */

.table-wrap {
  max-width: 100%;
  overflow-x: auto;

  border-radius: var(--radius-md);
}

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

@media (max-width: 768px) {
  .abs-page {
    padding: 22px;
  }

  .sidebar {
    flex: initial;
    min-width: 0;
  }

  .abs-page .coi-sample {
    flex-basis: 100%;
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  .abs-page {
    padding: 18px;
  }

  .page-lead {
    font-size: 0.98rem;
  }

  .abs-subtitle {
    font-size: 1rem;
  }
}

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

@media (prefers-reduced-motion: reduce) {
  .abs-page .coi-sample img {
    transition: none;
  }
}

/* ==============================
   Abstract Page End
============================== */