/* Halaman per kampus partner (/kampus-partner/<slug>/ & /en/partner-campuses/<slug>/).
   Semua kelas berawalan kd- supaya tidak bentrok dengan style.css. */

/* hero */
.kd-hero{padding-bottom:64px}
.kd-hero .crumb{flex-wrap:wrap}
.kd-hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr);gap:48px;align-items:center}
.kd-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.kd-cats span{background:var(--yellow);color:var(--navy);font-weight:800;font-size:12px;letter-spacing:.05em;text-transform:uppercase;padding:6px 14px;border-radius:999px}
.kd-hero h1{font-size:clamp(30px,4.2vw,50px);font-weight:800;line-height:1.12}
.kd-loc{display:flex;align-items:center;gap:10px;margin-top:14px;font-weight:600;color:#fff;font-size:15.5px}
.kd-loc .fl{box-shadow:none}
.kd-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.kd-acts .btn svg{width:18px;height:18px}
.kd-logo{background:#fff;border-radius:var(--r);min-height:220px;display:grid;place-items:center;padding:32px;box-shadow:0 24px 48px rgba(0,0,0,.28);transform:rotate(2deg)}
.kd-logo img{max-height:120px;max-width:86%;width:auto;object-fit:contain}
.kd-logo img.tall{max-height:150px}
.kd-logo img.slim{max-width:70%}

/* sekilas */
.kd-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:64px;align-items:center}
.kd-split.kd-top{align-items:start}
.kd-split h2{margin-bottom:18px}
.kd-prose p{color:var(--muted);font-size:16.5px}
.kd-prose p+p{margin-top:14px}
.kd-facts{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 14px 36px rgba(18,28,69,.07);padding:10px 28px}
.kd-facts div{display:grid;grid-template-columns:136px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.kd-facts div:last-child{border-bottom:0}
.kd-facts dt{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding-top:2px}
.kd-facts dd{font-size:15px;font-weight:600}
.kd-facts a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}

/* program */
.kd-progs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.kd-prog{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 22px 20px;box-shadow:0 10px 26px rgba(18,28,69,.06)}
.kd-prog h3{font-size:16.5px;line-height:1.35;font-weight:700;padding-right:52px}
.kd-prog p{font-size:14px;color:var(--muted);margin-top:8px}
.kd-lang{position:absolute;top:18px;right:18px;font-size:11.5px;font-weight:800;letter-spacing:.04em;color:var(--blue);background:var(--soft);border-radius:8px;padding:4px 8px}

/* biaya */
.kd-note{color:var(--muted);font-size:15px}
.kd-note+.kd-note{margin-top:12px}
.kd-note a,.kd-src a{color:var(--blue);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.kd-table{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 14px 36px rgba(18,28,69,.07);overflow:hidden}
.kd-table table{width:100%;border-collapse:collapse;font-size:15px}
.kd-table thead th{background:var(--navy);color:#fff;text-align:left;font-size:13px;letter-spacing:.05em;text-transform:uppercase;padding:14px 22px}
.kd-table tbody th{text-align:left;font-weight:600;padding:16px 22px;width:46%;vertical-align:top}
.kd-table td{padding:16px 22px;font-weight:700;color:var(--navy);vertical-align:top}
.kd-table tbody tr+tr{border-top:1px solid var(--line)}
.kd-table tbody tr:nth-child(even){background:#fafbff}

/* syarat */
.kd-reqs{list-style:none;display:grid;gap:10px;margin-top:22px}
.kd-reqs li{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;font-size:15px}
.kd-reqs svg{flex:none;width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;padding:4px;margin-top:1px}
.kd-h3{font-size:clamp(24px,2.6vw,32px);margin-bottom:20px}
.kd-steps-cta{margin-top:22px}
.kd-steps-cta svg{width:18px;height:18px}

/* alumni */
.kd-algrid{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
.kd-al{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 22px 16px 16px;box-shadow:0 10px 26px rgba(18,28,69,.06);min-width:280px;max-width:380px}
.kd-al img,.kd-al .ini{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.kd-al .ini{display:grid;place-items:center;background:var(--navy);color:var(--yellow);font-weight:800;font-size:24px}
.kd-al b{display:block;font-size:16px}
.kd-al span{display:block;font-size:13.5px;color:var(--muted);line-height:1.4}
.kd-center{text-align:center;margin-top:32px}
.kd-link{color:var(--blue);font-weight:700}

/* kampus lain */
.kd-related{background:var(--soft)}
.kd-alumni+.kd-related{background:var(--soft)}
.kd-rels{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.kd-rel{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:0 10px 26px rgba(18,28,69,.06);transition:transform .2s,box-shadow .2s}
.kd-rel:hover{transform:translateY(-4px);box-shadow:0 22px 46px rgba(18,28,69,.13)}
.kd-rel-logo{height:110px;display:grid;place-items:center;padding:18px 26px;border-bottom:1px solid var(--line)}
.kd-rel-logo img{max-height:60px;max-width:72%;width:auto;object-fit:contain}
.kd-rel-logo img.tall{max-height:78px}
.kd-rel-logo img.slim{max-width:52%}
.kd-rel-bd{padding:16px 20px 20px;display:flex;flex-direction:column;gap:4px}
.kd-rel-bd small{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);font-weight:600}
.kd-rel-bd b{font-size:16px;line-height:1.3}
.kd-rel-bd em{font-style:normal;color:var(--green-d);font-weight:700;font-size:14px;margin-top:6px}

/* sumber */
.kd-src{padding:48px 0 56px}
.kd-src h2{font-size:18px;font-weight:700}
.kd-src p{color:var(--muted);font-size:14px;margin-top:8px;max-width:860px}
.kd-src ul{margin:12px 0 0 18px;font-size:14px;display:grid;gap:4px}
.kd-src+.band{padding-top:0}

@media (max-width:1100px){
  .kd-progs{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .kd-hero-grid{grid-template-columns:1fr;gap:28px}
  .kd-logo{min-height:150px;max-width:420px;transform:none;padding:24px}
  .kd-logo img{max-height:90px}
  .kd-logo img.tall{max-height:110px}
  .kd-split{grid-template-columns:1fr;gap:32px}
  /* HP & tablet: kartu jadi slider geser, bukan ditumpuk */
  .kd-progs,.kd-rels{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(80%,320px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1*var(--gutter));padding:6px var(--gutter) 20px;scroll-padding:0 var(--gutter);scrollbar-width:none}
  .kd-progs::-webkit-scrollbar,.kd-rels::-webkit-scrollbar{display:none}
  .kd-progs>*,.kd-rels>*{scroll-snap-align:start}
  .kd-rel:hover{transform:none}
}
@media (max-width:560px){
  .kd-hero{padding-bottom:48px}
  .kd-hero .stats{gap:20px}
  .kd-hero .stats div{min-width:0;flex:1 1 30%}
  .kd-hero .stats b{font-size:24px}
  .kd-acts{flex-direction:column;align-items:stretch}
  .kd-acts .btn{white-space:normal}
  .kd-logo{min-height:120px}
  .kd-facts{padding:4px 18px}
  .kd-facts div{grid-template-columns:1fr;gap:2px;padding:12px 0}
  .kd-table thead th,.kd-table tbody th,.kd-table td{padding:12px 14px}
  .kd-table table{font-size:14px}
  .kd-table tbody th{width:44%}
  .kd-reqs li{padding:12px 14px;font-size:14.5px}
  .kd-al{min-width:0;width:100%}
  .kd-steps-cta{width:100%;white-space:normal}
}

/* foto kampus (Wikimedia Commons, kredit wajib tampil) */
.kd-gal-sec{padding-top:0}
.kd-gal{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.kd-gal-1{grid-template-columns:1fr;max-width:820px;margin:0 auto}
.kd-ph{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:0 14px 36px rgba(18,28,69,.08)}
.kd-ph img{width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--soft)}
.kd-ph figcaption{padding:14px 20px 16px}
.kd-ph figcaption b{display:block;font-size:15.5px}
.kd-ph figcaption span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.kd-ph figcaption a{text-decoration:underline;text-underline-offset:2px}
@media (max-width:900px){
  .kd-gal:not(.kd-gal-1){grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(85%,420px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1*var(--gutter));padding:6px var(--gutter) 20px;scroll-padding:0 var(--gutter);scrollbar-width:none}
  .kd-gal::-webkit-scrollbar{display:none}
  .kd-gal>*{scroll-snap-align:start}
  .kd-ph figcaption{padding:12px 16px 14px}
}
