/* ============================================
   Base
   ============================================ */
dt, dd, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* Palette — CampusA (暖) */
  --campusA-hue:        28;
  --campusA-accent:     hsl(28, 72%, 44%);
  --campusA-accent-dim: hsl(28, 60%, 94%);
  --campusA-border:     hsl(28, 72%, 44%);
  --campusA: #f48fb1;

  /* Palette — CampusB (冷) */
  --campusB-hue:            210;
  --campusB-accent:         hsl(210, 62%, 38%);
  --campusB-accent-dim:     hsl(210, 55%, 93%);
  --campusB-border:         hsl(210, 62%, 38%);
  --campusB: #4fc3f7;

  /* Neutral */
  --bg:           hsl(40, 18%, 97%);
  --surface:      hsl(40, 14%, 99%);
  --text-primary: hsl(30, 12%, 18%);
  --text-muted:   hsl(30, 8%, 48%);
  --rule:         hsl(40, 14%, 88%);
  --shadow:       0 1px 4px hsla(30, 20%, 10%, .07);

  /* Type */
  --font-serif: 'Shippori Mincho', 'Noto Serif JP', Georgia, serif;
  --font-mono:  'DM Mono', 'Courier New', monospace;

  --radius: 3px;
  --transition: 200ms cubic-bezier(.4, 0, .2, 1);
  --border: #2e3248;
}

article a[href^="?"] {
    border-bottom: none;
}

/* ============================================
   li — 共通ベース
   ============================================ */
dd ul li {
  background: var(--surface);
  border-radius: var(--radius);
  padding: .6rem 1rem .6rem 1.1rem;
  border-left: 3px solid transparent;
  box-shadow: var(--shadow);
  position: relative;
  transition:
    transform     var(--transition),
    box-shadow    var(--transition),
    background    var(--transition);
  overflow: hidden;
}

/* subtle shimmer line at top */
dd ul li::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.45) 50%, transparent);
  pointer-events: none;
}

dd ul li:hover {
  transform: translateX(3px);
  box-shadow: 0 3px 10px hsla(30, 20%, 10%, .12);
}

dd ul li a {
  color: var(--text-primary);
  text-decoration: none;
  font-size: .9rem;
  transition: color var(--transition);
}
dd ul li a:hover { color: var(--campusA-accent); }


span.title{
    font-size: 1.2rem;
}

/* ============================================
   .campusA —  (暖色 / Amber)
   ============================================ */
dd ul li.campusA {
  border-left-color: var(--campusA-border);
  background: linear-gradient(
    100deg,
    var(--campusA-accent-dim) 0%,
    var(--surface) 45%
  );
}

dd ul li.campusA a:hover {
  color: var(--campusA-accent);
}

dd ul li.campusA::after {
  background: hsl(28, 60%, 88%);
  color: hsl(28, 55%, 30%);
}

/* ============================================
   .campusB —  (冷色 / Steel Blue)
   ============================================ */
dd ul li.campusB {
  border-left-color: var(--campusB-border);
  background: linear-gradient(
    100deg,
    var(--campusB-accent-dim) 0%,
    var(--surface) 45%
  );
}

dd ul li.campusB a:hover {
  color: var(--campusB-accent);
}

dd ul li.campusB::after {
  background: hsl(210, 50%, 88%);
  color: hsl(210, 50%, 26%);
}


/* ============================================
   span.time — 校時バッジ
   ============================================ */
span.time {
    font-size: 0.9rem;
    font-family: 'DM Mono', monospace;
    font-weight: 500;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    white-space: nowrap;
    flex-shrink: 0;
    margin-top: 0.1rem;

  /* デフォルト（親クラスなし時のフォールバック） */
  background: var(--rule);
  color: white;
}

/* キャンパスA: アンバー系 */
li.campusA span.time {
  background: var(--campusA-accent);
  box-shadow: 0 1px 3px hsla(28, 60%, 30%, .25);
}

/* キャンパスB: スチールブルー系 */
li.campusB span.time {
  background: var(--campusB-accent);
  box-shadow: 0 1px 3px hsla(210, 50%, 20%, .25);
}


/* ============================================
   span.campus — キャンパスバッジ
   ============================================ */
/* campus badge */
dd ul li::after {
  content: attr(data-campus);
  position: absolute;
  right: .8rem;
  top: 50%;
  translate: 0 -50%;
  font-family: var(--font-mono);
  font-size: .6rem;
  letter-spacing: .12em;
  padding: .15rem .45rem;
  border-radius: 2px;
  pointer-events: none;
  opacity: .7;
}

.campus {
    font-size: 0.9rem;
    font-family: 'DM Mono', monospace;
    font-weight: 900;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    white-space: nowrap;
    flex-shrink: 0;
    margin-top: 0.1rem;
  }
  span.campusA {
    background: rgba(244,143,177,0.08);
    color: var(--campusA);
    border: 1px solid rgba(244,143,177,0.25);
  }
  span.campusB {
    background: rgba(79,195,247,0.08);
    color: var(--campusB);
    border: 1px solid rgba(79,195,247,0.25);
  }
