/* ============================================================
   Single program — სადიპლომო (schema v2 · academic, substance-first).
   Dark page-hero (from news.css) + light academic sections. Modules
   table is the centerpiece; it collapses to cards on mobile.
   ============================================================ */

/* ---------- HERO ---------- */
.pr-hero .page-hero__inner { max-width: 940px; }

.pr-hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.pr-hero__eyebrow > span:first-child {
  font-size: var(--fs-12);
  font-weight: 700;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}
.pr-hero__code {
  font-size: var(--fs-12);
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: var(--r-pill);
  padding: 2px 10px;
}
.pr-hero__en {
  font-size: var(--fs-16);
  color: rgba(255, 255, 255, 0.68);
  margin-top: 4px;
}

.pr-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 32px;
  margin-top: 26px;
}
.pr-stat { display: flex; flex-direction: column; gap: 2px; }
.pr-stat__num {
  font-size: clamp(26px, 4vw, 40px);
  font-weight: 700;
  line-height: 1;
  color: var(--white);
  font-variant-numeric: tabular-nums;
}
.pr-stat__label {
  font-size: var(--fs-11);
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
}

.pr-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}
.pr-chips li {
  font-size: var(--fs-12);
  color: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--r-pill);
  padding: 4px 12px;
}

.pr-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}


/* ---------- SECTION SCAFFOLD ---------- */
.pr-section { background: var(--white); padding: 60px 0; }
.pr-section--soft { background: var(--paper); }
@media (max-width: 767.98px) { .pr-section { padding: 42px 0; } }

.pr-shead { margin-bottom: 26px; }
.pr-shead__title {
  font-size: clamp(22px, 2.6vw, 30px);
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--ink);
}
.pr-shead__summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin-top: 10px;
  font-size: var(--fs-14);
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}
.pr-shead__summary b { color: var(--ink); font-weight: 700; }
.pr-subh { font-size: var(--fs-18); font-weight: 600; color: var(--ink); margin: 30px 0 16px; }

.pr-lead { font-size: var(--fs-16); color: var(--text-muted); line-height: 1.6; max-width: 820px; margin-bottom: 22px; }
.pr-prose-p { color: var(--ink); line-height: 1.7; max-width: 820px; margin-bottom: 16px; }


/* ---------- PROSE / GOAL ---------- */
.pr-prose { max-width: 840px; }
.pr-rte { color: var(--ink); line-height: 1.75; }
.pr-rte p { margin: 0 0 14px; }
.pr-rte--muted { color: var(--text-muted); font-size: var(--fs-14); }
.pr-goal {
  border-left: 3px solid var(--red);
  background: var(--paper);
  padding: 16px 20px;
  border-radius: 0 var(--r-2) var(--r-2) 0;
  margin: 22px 0;
}
.pr-section--soft .pr-goal { background: var(--white); }
.pr-goal__label {
  display: block;
  font-size: var(--fs-11);
  font-weight: 700;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 6px;
}
.pr-goal p { color: var(--ink); line-height: 1.6; }


/* ---------- MODULES TABLE (centerpiece) ---------- */
.pr-modgroup { margin-bottom: 26px; }
.pr-modgroup__title {
  font-size: var(--fs-13);
  font-weight: 700;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 12px;
}
.pr-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: var(--r-3);
  -webkit-overflow-scrolling: touch;
}
.pr-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-14);
  min-width: 560px;
}
.pr-table th {
  text-align: right;
  font-size: var(--fs-11);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  font-weight: 700;
  padding: 12px 14px;
  background: var(--paper);
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.pr-table td {
  text-align: right;
  padding: 11px 14px;
  border-bottom: 1px solid var(--border-soft);
  color: var(--ink);
  vertical-align: top;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.pr-table th.pr-table__n, .pr-table td.pr-table__n { text-align: center; width: 38px; color: var(--text-faint); }
.pr-table th.pr-table__name, .pr-table td.pr-table__name {
  text-align: left;
  width: 42%;
  white-space: normal;
  color: var(--ink);
}
.pr-table__en { display: block; font-size: var(--fs-12); color: var(--text-faint); margin-top: 2px; }
.pr-table tbody tr:hover { background: var(--paper); }
.pr-table__sub td {
  background: var(--paper);
  font-weight: 700;
  border-top: 1px solid var(--border);
  border-bottom: 0;
  color: var(--ink);
}
.pr-wbl {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--red);
  border: 1px solid currentColor;
  border-radius: 4px;
  padding: 0 5px;
  margin-left: 6px;
  vertical-align: middle;
}

/* Modules table → stacked cards on mobile */
@media (max-width: 767.98px) {
  .pr-table-wrap { overflow-x: visible; border: 0; }
  .pr-table { min-width: 0; }
  .pr-table thead { display: none; }
  .pr-table, .pr-table tbody, .pr-table tfoot, .pr-table tr, .pr-table td { display: block; width: 100%; }
  .pr-table tr {
    border: 1px solid var(--border);
    border-radius: var(--r-2);
    margin-bottom: 10px;
    padding: 6px 14px;
    background: var(--white);
  }
  .pr-table td {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    text-align: right;
    border-bottom: 1px solid var(--border-soft);
    padding: 8px 0;
    white-space: normal;
  }
  .pr-table tr td:last-child { border-bottom: 0; }
  .pr-table td::before {
    content: attr(data-label);
    font-weight: 600;
    color: var(--text-muted);
    text-align: left;
  }
  .pr-table td.pr-table__n { display: none; }
  .pr-table td.pr-table__name { text-align: left; font-weight: 600; }
  .pr-table td.pr-table__name::before { content: ""; }
  .pr-table__sub { background: var(--paper); }
  .pr-table__sub td::before { color: var(--ink); }
}


/* ---------- GRAND TOTAL ---------- */
.pr-grandtotal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 20px;
  margin-top: 18px;
  padding: 16px 20px;
  background: var(--ink);
  color: var(--white);
  border-radius: var(--r-3);
  font-variant-numeric: tabular-nums;
}
.pr-grandtotal span { font-size: var(--fs-14); color: rgba(255, 255, 255, 0.78); }
.pr-grandtotal b { color: var(--white); font-weight: 700; }
.pr-grandtotal__label {
  font-size: var(--fs-11);
  font-weight: 700;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6) !important;
}
.pr-grandtotal__big { margin-left: auto; font-size: var(--fs-16); }


/* ---------- QUALIFICATION ---------- */
.pr-qual {
  border: 1px solid var(--border);
  border-radius: var(--r-3);
  padding: 24px;
  background: var(--paper);
  max-width: 760px;
}
.pr-section--soft .pr-qual { background: var(--white); }
.pr-qual__name { font-size: var(--fs-18); font-weight: 600; color: var(--ink); line-height: 1.35; }
.pr-qual__en { font-size: var(--fs-14); color: var(--text-muted); margin-top: 3px; }
.pr-qual__meta { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 16px 0; }
.pr-qual__meta li { font-size: var(--fs-14); color: var(--text-muted); }
.pr-qual__meta li span { font-weight: 700; color: var(--ink); }
.pr-qual__flag { color: var(--red); font-weight: 600; }
.pr-qual__flag::before { content: "✓ "; }
.pr-qual__text { font-size: var(--fs-14); color: var(--text-muted); line-height: 1.6; }


/* ---------- MINI CARDS (audience / sectors / outcomes / value / env) ---------- */
.pr-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}
.pr-card-mini {
  border: 1px solid var(--border);
  border-radius: var(--r-2);
  padding: 18px;
  background: var(--white);
}
.pr-card-mini__icon { font-size: 22px; line-height: 1; display: block; margin-bottom: 8px; }
.pr-card-mini__title { font-size: var(--fs-15); font-weight: 600; color: var(--ink); display: flex; align-items: center; gap: 8px; }
.pr-card-mini__text { font-size: var(--fs-13); color: var(--text-muted); line-height: 1.55; margin-top: 6px; }
.pr-env__code { font-size: 11px; font-weight: 700; color: var(--red); border: 1px solid currentColor; border-radius: 4px; padding: 0 6px; }


/* ---------- LISTS ---------- */
.pr-list { display: grid; gap: 9px; max-width: 860px; }
.pr-list--cols { grid-template-columns: repeat(2, 1fr); gap: 9px 28px; }
@media (max-width: 575.98px) { .pr-list--cols { grid-template-columns: 1fr; } }
.pr-list li { position: relative; padding-left: 20px; font-size: var(--fs-14); color: var(--ink); line-height: 1.5; }
.pr-list li::before { content: ""; position: absolute; left: 2px; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--red); }


/* ---------- CAREER ---------- */
.pr-areas { margin: 6px 0 18px; border-top: 1px solid var(--border-soft); max-width: 920px; }
.pr-areas li { display: flex; flex-wrap: wrap; gap: 6px 18px; padding: 12px 0; border-bottom: 1px solid var(--border-soft); }
.pr-areas__ctx { flex: 1 1 300px; color: var(--ink); font-size: var(--fs-14); line-height: 1.5; }
.pr-areas__role { flex: 1 1 220px; color: var(--red); font-size: var(--fs-14); font-weight: 500; }
.pr-chiprow { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.pr-chip { font-size: var(--fs-13); color: var(--ink); background: var(--paper); border: 1px solid var(--border); border-radius: var(--r-pill); padding: 6px 14px; }
.pr-section--soft .pr-chip { background: var(--white); }
.pr-growth { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 18px; }
.pr-growth__step { font-size: var(--fs-13); font-weight: 600; color: var(--ink); background: var(--white); border: 1px solid var(--border); border-radius: var(--r-2); padding: 8px 12px; }
.pr-growth__arr { color: var(--text-faint); }


/* ---------- CURRICULUM YEARS ---------- */
.pr-years { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.pr-year { border: 1px solid var(--border); border-radius: var(--r-3); overflow: hidden; background: var(--white); }
.pr-year__head { display: flex; align-items: baseline; gap: 10px; padding: 14px 18px; background: var(--paper); border-bottom: 1px solid var(--border); }
.pr-year__label { font-size: var(--fs-15); font-weight: 600; color: var(--ink); }
.pr-year__sem { margin-left: auto; font-size: var(--fs-12); color: var(--text-muted); }
.pr-year__topics { padding: 14px 18px; }
.pr-year__topics li { position: relative; padding-left: 18px; font-size: var(--fs-13); color: var(--text-muted); line-height: 1.5; margin-bottom: 7px; }
.pr-year__topics li:last-child { margin-bottom: 0; }
.pr-year__topics li::before { content: "–"; position: absolute; left: 2px; color: var(--red); }


/* ---------- SHIFTS ---------- */
.pr-shifts { display: grid; gap: 8px; margin-top: 16px; max-width: 720px; }
.pr-shifts li { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; padding: 10px 14px; border: 1px solid var(--border); border-radius: var(--r-2); background: var(--white); }
.pr-shifts__name { font-size: var(--fs-14); font-weight: 600; color: var(--ink); min-width: 110px; }
.pr-shifts__time { font-size: var(--fs-14); color: var(--red); font-variant-numeric: tabular-nums; }
.pr-shifts__note { font-size: var(--fs-13); color: var(--text-muted); margin-left: auto; }


/* ---------- QUOTE ---------- */
.pr-quote { font-size: clamp(18px, 2.4vw, 24px); line-height: 1.5; font-weight: 500; color: var(--ink); border-left: 3px solid var(--red); padding: 4px 0 4px 20px; margin: 0 0 28px; max-width: 860px; }


/* ---------- ADMISSION ---------- */
.pr-req { display: grid; gap: 10px; max-width: 760px; }
.pr-req li { position: relative; padding-left: 26px; font-size: var(--fs-14); color: var(--ink); line-height: 1.5; }
.pr-req li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--red); font-weight: 700; }
.pr-req b { font-weight: 600; }
.pr-note { margin-top: 14px; font-size: var(--fs-13); color: var(--text-muted); font-style: italic; }


/* ---------- INSTITUTION ---------- */
.pr-inst { border: 1px solid var(--border); border-radius: var(--r-3); padding: 22px; background: var(--paper); max-width: 560px; }
.pr-inst__name { font-size: var(--fs-16); font-weight: 600; color: var(--ink); }
.pr-inst__legal { font-size: var(--fs-13); color: var(--text-muted); margin-top: 2px; }
.pr-inst__rows { margin-top: 12px; display: grid; gap: 6px; }
.pr-inst__rows li, .pr-inst__rows a { font-size: var(--fs-14); color: var(--text-muted); }
.pr-inst__rows a:hover { color: var(--red); }


/* ---------- CTA ---------- */
.pr-cta { background: var(--ink); color: var(--white); }
.pr-cta__inner { padding: 48px 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 22px; }
.pr-cta__title { font-size: clamp(20px, 2.6vw, 28px); font-weight: 600; color: var(--white); max-width: 620px; }
.pr-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.btn--ghost-light { color: var(--white); border-color: rgba(255, 255, 255, 0.3); }
.btn--ghost-light:hover { background: rgba(255, 255, 255, 0.1); }
