Jump to content

MediaWiki:Mainpage.css: Difference between revisions

From ZelocoreCMS Wiki
Undid 3 revisions from 102 until 106
Tag: Undo
v3.0 final: TemplateStyles-safe CSS β€” standard flex, no vendor prefixes, no custom properties
Line 1: Line 1:
/* MediaWiki:Mainpage.css - Dedicated CSS for the Main Page layout */
/* ═══════════════════════════════════════════════════════════════════
Β  ZelocoreCMS Wiki β€” Mainpage.css v3.0
Β  Modern world-class design β€” TemplateStyles safe
Β  ═══════════════════════════════════════════════════════════════════ */


/* Hide the page title on Main_Page */
/* ── Hide page title ───────────────────────────────────────────────── */
#firstHeading, .firstHeading, .mw-page-title-main, .page-header__title { display: none !important; }
.mw-parser-output #firstHeading,
.mw-parser-output .firstHeading,
.mw-parser-output .mw-page-title-main { display: none !important; }


/* Top banner */
/* ── Top banner ────────────────────────────────────────────────────── */
#mp-topbanner {
.mw-parser-output #mp-topbanner {
Β Β  background: #cee0f2;
Β Β  background: linear-gradient(90deg, #eff6ff, #f5f3ff);
Β Β  border: 1px solid #a2a9b1;
Β Β  border: 1px solid #c7d2fe;
Β Β  padding: 12px 16px;
Β  border-radius: 12px;
Β Β  margin-bottom: 14px;
Β Β  padding: 10px 20px;
Β Β  margin-bottom: 18px;
Β Β  text-align: center;
Β Β  text-align: center;
Β Β  font-size: 1.05em;
Β Β  font-size: 1em;
Β  color: #1e1b4b;
}
}
.mw-parser-output #mp-topbanner a { color: #2563eb; font-weight: 600; }


/* Two-column layout */
/* ══ HERO ══════════════════════════════════════════════════════════════ */
#mp-upper {
.mw-parser-output #mp-hero {
Β  background: linear-gradient(135deg, #1e1b4b 0%, #2563eb 55%, #7c3aed 100%);
Β  border-radius: 12px;
Β  padding: 48px 32px 38px;
Β  margin-bottom: 26px;
Β  text-align: center;
Β  overflow: hidden;
}
.mw-parser-output #mp-hero-title {
Β  font-size: 2.5em;
Β  font-weight: 800;
Β  color: #ffffff;
Β  letter-spacing: -1px;
Β  margin: 0 0 14px;
Β  text-shadow: 0 2px 12px rgba(0,0,0,.35);
}
.mw-parser-output #mp-hero-subtitle {
Β  font-size: 1.06em;
Β  color: rgba(255,255,255,.85);
Β  max-width: 600px;
Β  margin: 0 auto 28px;
Β  line-height: 1.65;
}
Β 
/* Stats row β€” use flex */
.mw-parser-output #mp-hero-stats {
Β Β  display: flex;
Β Β  display: flex;
Β  justify-content: center;
Β Β  flex-wrap: wrap;
Β Β  flex-wrap: wrap;
Β Β  gap: 15px;
Β Β  gap: 14px;
Β Β  margin-bottom: 14px;
Β Β  margin-bottom: 28px;
Β Β  align-items: flex-start;
}
.mw-parser-output .mp-stat {
Β  display: flex;
Β  flex-direction: column;
Β Β  align-items: center;
Β  background: rgba(255,255,255,.12);
Β  border: 1px solid rgba(255,255,255,.22);
Β  border-radius: 10px;
Β  padding: 12px 20px;
Β  min-width: 80px;
}
.mw-parser-output .mp-stat-num {
Β  font-size: 1.7em;
Β  font-weight: 800;
Β  color: #ffffff;
Β  line-height: 1;
}
.mw-parser-output .mp-stat-label {
Β  font-size: .72em;
Β  color: rgba(255,255,255,.72);
Β  margin-top: 4px;
Β  text-transform: uppercase;
Β  letter-spacing: .5px;
}
}


#mp-left {
/* Hero actions */
Β Β  flex: 1 1 55%;
.mw-parser-output #mp-hero-actions {
Β Β  min-width: 300px;
Β  display: flex;
Β Β  flex-direction: column;
Β  align-items: center;
Β  gap: 12px;
}
.mw-parser-output #mp-hero-links { margin-top: 4px; }
.mw-parser-output #mp-hero-links a {
Β  display: inline-block;
Β  background: rgba(255,255,255,.15);
Β  color: #ffffff !important;
Β  border: 1px solid rgba(255,255,255,.3);
Β  border-radius: 20px;
Β  padding: 7px 16px;
Β  margin: 3px;
Β  font-size: .9em;
Β  font-weight: 700;
Β Β  text-decoration: none !important;
}
}


#mp-right {
/* ══ CATEGORY CARDS ════════════════════════════════════════════════════ */
Β Β  flex: 1 1 40%;
.mw-parser-output #mp-categories { margin-bottom: 26px; }
Β Β  min-width: 300px;
.mw-parser-output .mp-section-title {
Β Β  font-size: 1.1em;
Β  font-weight: 800;
Β  color: #0f172a;
Β  margin-bottom: 12px;
Β  padding-bottom: 7px;
Β Β  border-bottom: 3px solid #2563eb;
Β  display: inline-block;
}
}
.mw-parser-output .mp-cat-grid {
Β  display: flex;
Β  flex-wrap: wrap;
Β  gap: 12px;
}
.mw-parser-output .mp-cat-card {
Β  flex: 1 1 140px;
Β  border-radius: 12px;
Β  padding: 18px 10px;
Β  text-align: center;
Β  border: 1.5px solid #e2e8f0;
Β  transition: transform .22s;
}
.mw-parser-output .mp-cat-card:hover { transform: translateY(-5px); }
.mw-parser-output .mp-cat-card a {
Β  display: flex;
Β  flex-direction: column;
Β  align-items: center;
Β  gap: 5px;
Β  text-decoration: none !important;
Β  color: inherit !important;
}
.mw-parser-output .mp-cat-icon { font-size: 2.2em; line-height: 1; display: block; }
.mw-parser-output .mp-cat-name { font-size: .87em; font-weight: 800; display: block; margin-top: 3px; }
.mw-parser-output .mp-cat-desc { font-size: .72em; color: #64748b; display: block; line-height: 1.3; }
/* Card colour themes */
.mw-parser-output .mp-cat-bloggingΒ  { background: linear-gradient(135deg,#fef3c7,#fde68a); border-color: #f59e0b; }
.mw-parser-output .mp-cat-headlessΒ  { background: linear-gradient(135deg,#ede9fe,#ddd6fe); border-color: #7c3aed; }
.mw-parser-output .mp-cat-ecommerceΒ  { background: linear-gradient(135deg,#dcfce7,#bbf7d0); border-color: #059669; }
.mw-parser-output .mp-cat-enterprise { background: linear-gradient(135deg,#dbeafe,#bfdbfe); border-color: #2563eb; }
.mw-parser-output .mp-cat-opensource { background: linear-gradient(135deg,#fee2e2,#fecaca); border-color: #dc2626; }
.mw-parser-output .mp-cat-saasΒ  Β  Β  { background: linear-gradient(135deg,#e0f2fe,#bae6fd); border-color: #0891b2; }
.mw-parser-output .mp-cat-wikiΒ  Β  Β  { background: linear-gradient(135deg,#f0fdf4,#dcfce7); border-color: #16a34a; }
.mw-parser-output .mp-cat-allΒ  Β  Β  Β  { background: linear-gradient(135deg,#f1f5f9,#e2e8f0); border-color: #94a3b8; }


/* Headings */
/* ══ TWO-COLUMN LAYOUT ═════════════════════════════════════════════════ */
.mp-h2 {
.mw-parser-output #mp-upper {
Β Β  background: #cee0f2;
Β Β  display: flex;
Β  border: 1px solid #a2a9b1;
Β Β  flex-wrap: wrap;
Β Β  border-bottom: none;
Β Β  gap: 18px;
Β Β  padding: 5px 10px;
Β Β  margin-bottom: 26px;
Β Β  font-size: 1em;
Β Β  align-items: flex-start;
Β Β  font-weight: bold;
Β  color: #202122;
Β  margin: 0;
}
}
.mp-h2-yellow { background: #fef6e7; }
.mw-parser-output #mp-left { flex: 1 1 55%; min-width: 300px; }
.mp-h2-green { background: #ecf5ec; }
.mw-parser-output #mp-right { flex: 1 1 38%; min-width: 280px; }
.mp-h2-grayΒ  { background: #dce3ee; }


/* Body of sections */
/* ══ CARDS ══════════════════════════════════════════════════════════════ */
.mp-body {
.mw-parser-output .mp-card {
Β Β  background: #ffffff;
Β Β  background: #ffffff;
Β Β  border: 1px solid #a2a9b1;
Β Β  border: 1px solid #e2e8f0;
Β Β  border-top: none;
Β Β  border-radius: 12px;
Β Β  padding: 10px 12px;
Β Β  overflow: hidden;
Β Β  margin-bottom: 12px;
Β Β  margin-bottom: 16px;
Β Β  font-size: 0.9em;
Β Β  box-shadow: 0 2px 14px rgba(37,99,235,.07);
Β Β  line-height: 1.6;
Β  transition: box-shadow .22s, transform .22s;
Β Β  color: #202122;
}
Β Β  overflow-x: auto; /* Allow tables to scroll on small screens */
.mw-parser-output .mp-card:hover {
Β Β  box-shadow: 0 8px 30px rgba(37,99,235,.16);
Β  transform: translateY(-2px);
}
.mw-parser-output .mp-card-header {
Β  padding: 11px 15px;
Β  font-weight: 800;
Β Β  font-size: .95em;
Β Β  border-bottom: 1px solid #e2e8f0;
}
}
.mp-body ul { margin: 0; padding-left: 1.5em; }
.mw-parser-output .mp-card-header-blueΒ  { background: linear-gradient(90deg,#dbeafe,#eff6ff); color: #1d4ed8; }
.mw-parser-output .mp-card-header-yellow { background: linear-gradient(90deg,#fef9c3,#fefce8); color: #92400e; }
.mw-parser-output .mp-card-header-greenΒ  { background: linear-gradient(90deg,#dcfce7,#f0fdf4); color: #065f46; }
.mw-parser-output .mp-card-header-purple { background: linear-gradient(90deg,#ede9fe,#f5f3ff); color: #5b21b6; }
.mw-parser-output .mp-card-header-grayΒ  { background: linear-gradient(90deg,#f1f5f9,#f8fafc); color: #334155; }
.mw-parser-output .mp-card-body { padding: 13px 15px; font-size: .9em; line-height: 1.65; color: #0f172a; }
.mw-parser-output .mp-card-body ul { margin: 0; padding-left: 1.4em; }
.mw-parser-output .mp-card-body li { margin-bottom: 5px; }
.mw-parser-output .mp-card-body table { width: 100%; overflow-x: auto; display: block; }


/* Portal grid */
/* ══ PORTAL GRID ════════════════════════════════════════════════════════ */
#mp-portals {
.mw-parser-output #mp-portals {
Β Β  margin-top: 14px;
Β Β  background: #ffffff;
Β Β  border: 1px solid #a2a9b1;
Β Β  border: 1px solid #e2e8f0;
Β  border-radius: 12px;
Β  overflow: hidden;
Β  margin-top: 22px;
Β  box-shadow: 0 2px 14px rgba(37,99,235,.07);
}
}
#mp-portals-header {
.mw-parser-output #mp-portals-header {
Β Β  background: #dce3ee;
Β Β  background: linear-gradient(90deg, #1e1b4b, #2563eb);
Β Β  border-bottom: 1px solid #a2a9b1;
Β Β  color: #ffffff;
Β Β  padding: 6px 12px;
Β Β  padding: 12px 18px;
Β Β  font-weight: bold;
Β Β  font-weight: 800;
Β Β  font-size: 0.95em;
Β Β  font-size: 1em;
}
}
.mp-portal-grid {
.mw-parser-output .mp-portal-grid {
Β Β  display: flex;
Β Β  display: flex;
Β Β  flex-wrap: wrap;
Β Β  flex-wrap: wrap;
Β Β  background: #ffffff;
Β Β  background: #ffffff;
}
}
.mp-portal-cell {
.mw-parser-output .mp-portal-cell {
Β Β  flex: 1 1 15%;
Β Β  flex: 1 1 140px;
Β Β  min-width: 120px;
Β Β  border-right: 1px solid #e2e8f0;
Β Β  border-right: 1px solid #eaecf0;
Β Β  border-bottom: 1px solid #e2e8f0;
Β Β  border-bottom: 1px solid #eaecf0;
Β  padding: 16px 10px;
Β Β  padding: 10px 8px;
Β Β  text-align: center;
Β  font-size: .85em;
Β  transition: background .18s;
}
.mw-parser-output .mp-portal-cell:hover { background: #eff6ff; }
.mw-parser-output .mp-portal-cell a { color: #2563eb !important; font-weight: 700; display: block; text-decoration: none; }
.mw-parser-output .mp-portal-icon { font-size: 2em; display: block; margin-bottom: 5px; }
.mw-parser-output .mp-portal-desc { display: block; color: #64748b; font-size: .8em; margin-top: 3px; font-weight: 400; }
Β 
/* ══ CONTRIBUTE CTA ════════════════════════════════════════════════════ */
.mw-parser-output #mp-contribute {
Β  background: linear-gradient(135deg, #059669, #065f46);
Β  border-radius: 12px;
Β Β  padding: 30px 22px;
Β Β  text-align: center;
Β Β  text-align: center;
Β Β  font-size: 0.85em;
Β Β  margin-top: 26px;
Β  color: #ffffff;
}
.mw-parser-output #mp-contribute-title { font-size: 1.25em; font-weight: 800; color: #ffffff; margin-bottom: 9px; }
.mw-parser-output #mp-contribute-descΒ  { color: rgba(255,255,255,.85); margin-bottom: 18px; font-size: .96em; line-height: 1.6; }
.mw-parser-output #mp-contribute a {
Β  display: inline-block;
Β  background: #ffffff;
Β  color: #065f46 !important;
Β  border-radius: 22px;
Β  padding: 8px 20px;
Β  font-weight: 700;
Β  font-size: .9em;
Β  text-decoration: none;
Β  margin: 4px;
}
}
.mp-portal-cell:hover { background: #eaf3fb; }
.mp-portal-cell a { color: #3366cc; font-weight: bold; display: block; text-decoration: none; }
.mp-portal-icon { font-size: 1.8em; display: block; margin-bottom: 4px; }
.mp-portal-desc { display: block; color: #54595d; font-size: 0.85em; margin-top: 2px; font-weight: normal; }


/* Responsive adjustments */
/* ══ RESPONSIVE ════════════════════════════════════════════════════════ */
@media screen and (max-width: 768px) {
@media screen and (max-width: 768px) {
Β Β  #mp-upper { display: block; }
Β Β  .mw-parser-output #mp-hero { padding: 30px 14px 24px; }
Β Β  #mp-left, #mp-right { width: 100%; display: block; }
Β  .mw-parser-output #mp-hero-title { font-size: 1.7em; }
Β Β  .mp-portal-cell { flex: 1 1 45%; }
Β  .mw-parser-output #mp-upper { display: block; }
Β Β  .mw-parser-output #mp-left, .mw-parser-output #mp-right { width: 100%; min-width: unset; }
Β  .mw-parser-output .mp-cat-card { flex: 1 1 calc(50% - 12px); }
Β Β  .mw-parser-output .mp-portal-cell { flex: 1 1 calc(50% - 0px); }
}
}

Revision as of 21:40, 29 July 2026

/* ═══════════════════════════════════════════════════════════════════
   ZelocoreCMS Wiki β€” Mainpage.css  v3.0
   Modern world-class design β€” TemplateStyles safe
   ═══════════════════════════════════════════════════════════════════ */

/* ── Hide page title ───────────────────────────────────────────────── */
.mw-parser-output #firstHeading,
.mw-parser-output .firstHeading,
.mw-parser-output .mw-page-title-main { display: none !important; }

/* ── Top banner ────────────────────────────────────────────────────── */
.mw-parser-output #mp-topbanner {
  background: linear-gradient(90deg, #eff6ff, #f5f3ff);
  border: 1px solid #c7d2fe;
  border-radius: 12px;
  padding: 10px 20px;
  margin-bottom: 18px;
  text-align: center;
  font-size: 1em;
  color: #1e1b4b;
}
.mw-parser-output #mp-topbanner a { color: #2563eb; font-weight: 600; }

/* ══ HERO ══════════════════════════════════════════════════════════════ */
.mw-parser-output #mp-hero {
  background: linear-gradient(135deg, #1e1b4b 0%, #2563eb 55%, #7c3aed 100%);
  border-radius: 12px;
  padding: 48px 32px 38px;
  margin-bottom: 26px;
  text-align: center;
  overflow: hidden;
}
.mw-parser-output #mp-hero-title {
  font-size: 2.5em;
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -1px;
  margin: 0 0 14px;
  text-shadow: 0 2px 12px rgba(0,0,0,.35);
}
.mw-parser-output #mp-hero-subtitle {
  font-size: 1.06em;
  color: rgba(255,255,255,.85);
  max-width: 600px;
  margin: 0 auto 28px;
  line-height: 1.65;
}

/* Stats row β€” use flex */
.mw-parser-output #mp-hero-stats {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 28px;
}
.mw-parser-output .mp-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 10px;
  padding: 12px 20px;
  min-width: 80px;
}
.mw-parser-output .mp-stat-num {
  font-size: 1.7em;
  font-weight: 800;
  color: #ffffff;
  line-height: 1;
}
.mw-parser-output .mp-stat-label {
  font-size: .72em;
  color: rgba(255,255,255,.72);
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: .5px;
}

/* Hero actions */
.mw-parser-output #mp-hero-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.mw-parser-output #mp-hero-links { margin-top: 4px; }
.mw-parser-output #mp-hero-links a {
  display: inline-block;
  background: rgba(255,255,255,.15);
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 20px;
  padding: 7px 16px;
  margin: 3px;
  font-size: .9em;
  font-weight: 700;
  text-decoration: none !important;
}

/* ══ CATEGORY CARDS ════════════════════════════════════════════════════ */
.mw-parser-output #mp-categories { margin-bottom: 26px; }
.mw-parser-output .mp-section-title {
  font-size: 1.1em;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 12px;
  padding-bottom: 7px;
  border-bottom: 3px solid #2563eb;
  display: inline-block;
}
.mw-parser-output .mp-cat-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.mw-parser-output .mp-cat-card {
  flex: 1 1 140px;
  border-radius: 12px;
  padding: 18px 10px;
  text-align: center;
  border: 1.5px solid #e2e8f0;
  transition: transform .22s;
}
.mw-parser-output .mp-cat-card:hover { transform: translateY(-5px); }
.mw-parser-output .mp-cat-card a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  text-decoration: none !important;
  color: inherit !important;
}
.mw-parser-output .mp-cat-icon { font-size: 2.2em; line-height: 1; display: block; }
.mw-parser-output .mp-cat-name { font-size: .87em; font-weight: 800; display: block; margin-top: 3px; }
.mw-parser-output .mp-cat-desc { font-size: .72em; color: #64748b; display: block; line-height: 1.3; }
/* Card colour themes */
.mw-parser-output .mp-cat-blogging   { background: linear-gradient(135deg,#fef3c7,#fde68a); border-color: #f59e0b; }
.mw-parser-output .mp-cat-headless   { background: linear-gradient(135deg,#ede9fe,#ddd6fe); border-color: #7c3aed; }
.mw-parser-output .mp-cat-ecommerce  { background: linear-gradient(135deg,#dcfce7,#bbf7d0); border-color: #059669; }
.mw-parser-output .mp-cat-enterprise { background: linear-gradient(135deg,#dbeafe,#bfdbfe); border-color: #2563eb; }
.mw-parser-output .mp-cat-opensource { background: linear-gradient(135deg,#fee2e2,#fecaca); border-color: #dc2626; }
.mw-parser-output .mp-cat-saas       { background: linear-gradient(135deg,#e0f2fe,#bae6fd); border-color: #0891b2; }
.mw-parser-output .mp-cat-wiki       { background: linear-gradient(135deg,#f0fdf4,#dcfce7); border-color: #16a34a; }
.mw-parser-output .mp-cat-all        { background: linear-gradient(135deg,#f1f5f9,#e2e8f0); border-color: #94a3b8; }

/* ══ TWO-COLUMN LAYOUT ═════════════════════════════════════════════════ */
.mw-parser-output #mp-upper {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-bottom: 26px;
  align-items: flex-start;
}
.mw-parser-output #mp-left  { flex: 1 1 55%; min-width: 300px; }
.mw-parser-output #mp-right { flex: 1 1 38%; min-width: 280px; }

/* ══ CARDS ══════════════════════════════════════════════════════════════ */
.mw-parser-output .mp-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 16px;
  box-shadow: 0 2px 14px rgba(37,99,235,.07);
  transition: box-shadow .22s, transform .22s;
}
.mw-parser-output .mp-card:hover {
  box-shadow: 0 8px 30px rgba(37,99,235,.16);
  transform: translateY(-2px);
}
.mw-parser-output .mp-card-header {
  padding: 11px 15px;
  font-weight: 800;
  font-size: .95em;
  border-bottom: 1px solid #e2e8f0;
}
.mw-parser-output .mp-card-header-blue   { background: linear-gradient(90deg,#dbeafe,#eff6ff); color: #1d4ed8; }
.mw-parser-output .mp-card-header-yellow { background: linear-gradient(90deg,#fef9c3,#fefce8); color: #92400e; }
.mw-parser-output .mp-card-header-green  { background: linear-gradient(90deg,#dcfce7,#f0fdf4); color: #065f46; }
.mw-parser-output .mp-card-header-purple { background: linear-gradient(90deg,#ede9fe,#f5f3ff); color: #5b21b6; }
.mw-parser-output .mp-card-header-gray   { background: linear-gradient(90deg,#f1f5f9,#f8fafc); color: #334155; }
.mw-parser-output .mp-card-body { padding: 13px 15px; font-size: .9em; line-height: 1.65; color: #0f172a; }
.mw-parser-output .mp-card-body ul { margin: 0; padding-left: 1.4em; }
.mw-parser-output .mp-card-body li { margin-bottom: 5px; }
.mw-parser-output .mp-card-body table { width: 100%; overflow-x: auto; display: block; }

/* ══ PORTAL GRID ════════════════════════════════════════════════════════ */
.mw-parser-output #mp-portals {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  margin-top: 22px;
  box-shadow: 0 2px 14px rgba(37,99,235,.07);
}
.mw-parser-output #mp-portals-header {
  background: linear-gradient(90deg, #1e1b4b, #2563eb);
  color: #ffffff;
  padding: 12px 18px;
  font-weight: 800;
  font-size: 1em;
}
.mw-parser-output .mp-portal-grid {
  display: flex;
  flex-wrap: wrap;
  background: #ffffff;
}
.mw-parser-output .mp-portal-cell {
  flex: 1 1 140px;
  border-right: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
  padding: 16px 10px;
  text-align: center;
  font-size: .85em;
  transition: background .18s;
}
.mw-parser-output .mp-portal-cell:hover { background: #eff6ff; }
.mw-parser-output .mp-portal-cell a { color: #2563eb !important; font-weight: 700; display: block; text-decoration: none; }
.mw-parser-output .mp-portal-icon { font-size: 2em; display: block; margin-bottom: 5px; }
.mw-parser-output .mp-portal-desc { display: block; color: #64748b; font-size: .8em; margin-top: 3px; font-weight: 400; }

/* ══ CONTRIBUTE CTA ════════════════════════════════════════════════════ */
.mw-parser-output #mp-contribute {
  background: linear-gradient(135deg, #059669, #065f46);
  border-radius: 12px;
  padding: 30px 22px;
  text-align: center;
  margin-top: 26px;
  color: #ffffff;
}
.mw-parser-output #mp-contribute-title { font-size: 1.25em; font-weight: 800; color: #ffffff; margin-bottom: 9px; }
.mw-parser-output #mp-contribute-desc  { color: rgba(255,255,255,.85); margin-bottom: 18px; font-size: .96em; line-height: 1.6; }
.mw-parser-output #mp-contribute a {
  display: inline-block;
  background: #ffffff;
  color: #065f46 !important;
  border-radius: 22px;
  padding: 8px 20px;
  font-weight: 700;
  font-size: .9em;
  text-decoration: none;
  margin: 4px;
}

/* ══ RESPONSIVE ════════════════════════════════════════════════════════ */
@media screen and (max-width: 768px) {
  .mw-parser-output #mp-hero { padding: 30px 14px 24px; }
  .mw-parser-output #mp-hero-title { font-size: 1.7em; }
  .mw-parser-output #mp-upper { display: block; }
  .mw-parser-output #mp-left, .mw-parser-output #mp-right { width: 100%; min-width: unset; }
  .mw-parser-output .mp-cat-card { flex: 1 1 calc(50% - 12px); }
  .mw-parser-output .mp-portal-cell { flex: 1 1 calc(50% - 0px); }
}