/* ============================================================
   cours.css — Math course pages (jeuxdemaths.com)
   ============================================================ */

/* Page container */
.cours-page {
  width: 100%;
  max-width: 840px;
  padding: 16px 16px 56px;
  align-self: flex-start;
}

body:has(.cours-page) {
  align-items: flex-start;
  padding-top: 24px;
}

/* Breadcrumb */
.breadcrumb {
  font-size: .82rem;
  opacity: .75;
  margin-bottom: 20px;
  text-align: left;
}
.breadcrumb a { color: #fff; text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }

/* Content card */
.cours-card {
  background: rgba(255,255,255,.96);
  color: #2d1b4e;
  border-radius: 16px;
  padding: 28px 32px;
  margin-bottom: 20px;
}
.cours-card h1 {
  font-size: 1.75rem;
  color: #5a3299;
  margin-bottom: 14px;
  line-height: 1.25;
}
.cours-card h2 {
  font-size: 1.1rem;
  color: #764ba2;
  margin: 22px 0 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 700;
}
.cours-card h2:first-child { margin-top: 0; }
.cours-card p {
  line-height: 1.7;
  margin-bottom: 10px;
  color: #3a2060;
}
.cours-card ul, .cours-card ol {
  padding-left: 22px;
  line-height: 1.85;
  color: #3a2060;
  margin-bottom: 10px;
}
.cours-card li { margin-bottom: 4px; }
.cours-card strong { color: #5a3299; }
.cours-card a { color: #667eea; }

/* Operation table */
.table-op {
  border-collapse: separate;
  border-spacing: 4px 3px;
  margin: 16px auto;
}
.table-op td {
  padding: 9px 14px;
  text-align: center;
  border-radius: 8px;
  font-size: 1.08rem;
  min-width: 36px;
}
.table-op td.op  { color: #764ba2; font-weight: 700; font-size: 1.15rem; }
.table-op td.eq  { color: #764ba2; }
.table-op td.result {
  background: linear-gradient(135deg, #667eea, #764ba2);
  color: #fff;
  font-weight: 700;
  font-size: 1.2rem;
  min-width: 52px;
}
.table-op tr:nth-child(odd)  td:not(.result) { background: rgba(102,126,234,.1); }
.table-op tr:nth-child(even) td:not(.result) { background: rgba(118,75,162,.08); }

/* Tip boxes */
.tip-box {
  background: linear-gradient(135deg, rgba(102,126,234,.1), rgba(118,75,162,.1));
  border-left: 4px solid #764ba2;
  border-radius: 0 10px 10px 0;
  padding: 12px 16px;
  margin: 10px 0;
}
.tip-box p { margin: 0; color: #2d1b4e; line-height: 1.6; }

/* Game promo section */
.games-grid-cours {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
  margin-top: 14px;
}
.game-card-cours {
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(135deg, #667eea, #764ba2);
  color: #fff;
  border-radius: 12px;
  padding: 16px;
  text-decoration: none;
  transition: transform .18s, opacity .18s;
}
.game-card-cours:hover { transform: translateY(-3px); opacity: .9; }
.game-card-cours .icon { font-size: 1.9rem; flex-shrink: 0; }
.game-card-cours .info strong { display: block; font-size: .95rem; }
.game-card-cours .info span { font-size: .8rem; opacity: .85; }

/* Table links grid (operation overview pages) */
.tables-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
  gap: 10px;
  margin: 14px 0;
}
.table-link {
  display: block;
  background: rgba(102,126,234,.1);
  border: 1.5px solid rgba(118,75,162,.25);
  border-radius: 10px;
  padding: 11px 14px;
  text-decoration: none;
  color: #3a2060;
  font-weight: 600;
  text-align: center;
  font-size: .95rem;
  transition: background .18s, color .18s;
}
.table-link:hover {
  background: linear-gradient(135deg, #667eea, #764ba2);
  color: #fff;
  border-color: transparent;
}

/* Related links row */
.related-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.related-link {
  background: rgba(102,126,234,.12);
  border: 1px solid rgba(102,126,234,.3);
  border-radius: 20px;
  padding: 6px 14px;
  text-decoration: none;
  color: #5a3299;
  font-size: .9rem;
  transition: background .18s, color .18s;
}
.related-link:hover {
  background: linear-gradient(135deg, #667eea, #764ba2);
  color: #fff;
  border-color: transparent;
}

/* Class overview: topic blocks */
.topic-block {
  background: rgba(102,126,234,.07);
  border-radius: 10px;
  padding: 14px 18px;
  margin: 10px 0;
}
.topic-block h3 {
  font-size: 1rem;
  color: #764ba2;
  font-weight: 700;
  margin-bottom: 8px;
}
.topic-block ul {
  margin: 0;
  padding-left: 18px;
}

/* Hub index page: category cards */
.cours-index-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 16px;
}
.cours-index-card {
  display: block;
  background: rgba(102,126,234,.1);
  border: 1.5px solid rgba(118,75,162,.2);
  border-radius: 12px;
  padding: 18px 20px;
  text-decoration: none;
  color: #2d1b4e;
  transition: background .18s, color .18s, transform .18s;
}
.cours-index-card:hover {
  background: linear-gradient(135deg, #667eea, #764ba2);
  color: #fff;
  border-color: transparent;
  transform: translateY(-2px);
}
.cours-index-card strong { display: block; font-size: 1rem; margin-bottom: 4px; }
.cours-index-card span { font-size: .85rem; opacity: .8; }

@media (max-width: 600px) {
  .cours-card { padding: 18px 16px; }
  .cours-card h1 { font-size: 1.35rem; }
  .tables-list { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
  .games-grid-cours { grid-template-columns: 1fr; }
}
