:root{--navy:#0F2D52;--navy-dark:#0A1F3A;--navy-soft:#1C426F;--gold:#C79F3E;--gold-light:#E2C06F;--paper:#F7F6F2;--line:#E4E1D8;--ink:#1A2230;--muted:#5E6878;
--bs-primary:#0F2D52;--bs-primary-rgb:15,45,82;--bs-link-color:#0F2D52;--bs-link-hover-color:#0A1F3A;--bs-body-color:#1A2230;--bs-body-bg:#F7F6F2;--bs-body-font-family:'Public Sans',system-ui,sans-serif;--bs-border-color:#E4E1D8}
body{background:var(--paper);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,.navbar-brand{font-family:'Bitter',Georgia,serif;letter-spacing:-.005em}
a{text-underline-offset:3px}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.btn-primary{--bs-btn-bg:#0F2D52;--bs-btn-border-color:#0F2D52;--bs-btn-hover-bg:#0A1F3A;--bs-btn-hover-border-color:#0A1F3A;--bs-btn-active-bg:#0A1F3A}
.btn-outline-primary{--bs-btn-color:#0F2D52;--bs-btn-border-color:#0F2D52;--bs-btn-hover-bg:#0F2D52;--bs-btn-hover-border-color:#0F2D52}
.btn-gold{background:var(--gold);color:#101828;font-weight:600;border:0;border-radius:4px}.btn-gold:hover{background:var(--gold-light);color:#101828}
.pagination{--bs-pagination-active-bg:#0F2D52;--bs-pagination-active-border-color:#0F2D52;--bs-pagination-color:#0F2D52}
.form-control:focus,.form-select:focus{border-color:var(--navy-soft);box-shadow:0 0 0 .2rem rgba(15,45,82,.15)}

/* Navigasi */
.site-nav{background:var(--navy-dark);box-shadow:0 1px 0 rgba(255,255,255,.06),0 4px 14px rgba(10,31,58,.25);padding:.6rem 0}
.site-nav .navbar-brand{color:#fff;font-size:1.05rem;font-weight:600;display:flex;align-items:center;gap:.7rem}
.site-nav .nav-link{color:#fff;opacity:.82;font-size:.93rem;padding:.6rem .8rem!important}
.site-nav .nav-link:hover,.site-nav .nav-link.active{opacity:1;box-shadow:inset 0 -3px 0 var(--gold)}
.navbar-toggler{border-color:rgba(255,255,255,.4)}.navbar-toggler-icon{filter:invert(1)}
.brand-mark{background:var(--gold);color:var(--navy-dark);padding:.15rem .5rem;border-radius:3px;font-weight:700;letter-spacing:.04em}
.dropdown-menu{border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 30px rgba(10,31,58,.15)}

/* Hero */
.hero{color:#fff;padding:4.5rem 0 6rem;background:radial-gradient(900px 380px at 88% -10%,rgba(199,159,62,.22),transparent 60%),linear-gradient(135deg,var(--navy-dark),var(--navy) 70%)}
.eyebrow{color:var(--gold-light);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;margin-bottom:.9rem;display:flex;align-items:center;gap:.7rem}
.eyebrow::before{content:"";width:2.2rem;height:2px;background:var(--gold)}
.hero h1{font-size:clamp(2rem,4.4vw,3.3rem);line-height:1.15;font-weight:700;max-width:16ch}
.lead-sm{color:#c9d5e4;font-size:1.08rem;max-width:48ch;margin:1.1rem 0 1.8rem}
.hero-search{display:flex;align-items:center;background:#fff;border-radius:6px;padding:.35rem .35rem .35rem 1rem;max-width:560px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.hero-search i{color:var(--muted)}.hero-search input{flex:1;border:0;outline:0;padding:.65rem .75rem;font-size:1rem;min-width:0;background:transparent}
.hero-search .btn{padding:.6rem 1.5rem}
.panel{background:#fff;color:var(--ink);border-radius:8px;padding:1.4rem;border-top:3px solid var(--gold);box-shadow:0 14px 34px rgba(0,0,0,.25)}
.panel-title{letter-spacing:.08em;color:var(--navy);font-family:'Public Sans',sans-serif;font-weight:700}
.panel a{text-decoration:none}.panel a:hover .fw-semibold,.panel .small:hover{text-decoration:underline}
.ann{display:block;color:var(--ink);padding:.8rem 0;border-top:1px solid var(--line)}.ann:first-of-type{border-top:0}
.ann .fw-semibold{line-height:1.35;margin-top:.1rem}

/* Statistik */
.stats{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);border-radius:8px;margin-top:-3rem;position:relative;box-shadow:0 8px 24px rgba(10,31,58,.1)}
.stats-item{padding:1.3rem 1rem;text-align:center;border-left:1px solid var(--line)}.stats-item:first-child{border-left:0}
.stats-item b{display:block;font:700 2rem/1.1 'Bitter',serif;color:var(--navy)}.stats-item span{font-size:.82rem;color:var(--muted);letter-spacing:.03em}
@media(max-width:767px){.stats{grid-template-columns:repeat(2,1fr)}.stats-item:nth-child(3){border-left:0}.stats-item:nth-child(n+3){border-top:1px solid var(--line)}}

/* Seksi */
.section{margin-top:4.2rem}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:1.5rem;padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.sec-head h2{font-size:1.65rem;font-weight:700;margin:0;color:var(--navy)}
.sec-head>a{font-size:.9rem;font-weight:600;text-decoration:none;white-space:nowrap}.sec-head>a:hover{text-decoration:underline}
.eyebrow-dark{color:var(--gold);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;margin-bottom:.3rem}
.vm{background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:6px;padding:1.4rem;height:100%;line-height:1.7}
.section-title{font-size:1.4rem;margin-bottom:1rem}

/* Kartu fakultas */
.fak-card{background:#fff;border:1px solid var(--line);border-top:3px solid var(--navy);border-radius:6px;padding:1.6rem;height:100%;transition:border-color .2s,box-shadow .2s}
.fak-card:hover{border-top-color:var(--gold);box-shadow:0 12px 28px rgba(10,31,58,.12)}
.fak-icon{width:46px;height:46px;border-radius:50%;background:#EEF2F7;color:var(--navy);display:grid;place-items:center;font-size:1.3rem;margin-bottom:1rem}
.fak-card h3{font-size:1.15rem;font-weight:700;margin-bottom:.4rem}.fak-card h3 a{color:var(--navy);text-decoration:none}.fak-card h3 a:hover{text-decoration:underline}
.fak-card ul{list-style:none;padding:0;margin:1rem 0 0}
.fak-card li a{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0;border-top:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:.93rem}
.fak-card li a i{color:var(--gold);font-size:.75rem;transition:transform .15s}.fak-card li a:hover{color:var(--navy);font-weight:600}.fak-card li a:hover i{transform:translateX(3px)}

/* Berita */
.post-card{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;transition:transform .2s,box-shadow .2s}
.post-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(10,31,58,.12)}
.post-card img,.cover-ph{height:170px;object-fit:cover;width:100%}
.cover-ph{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#E8EDF4,#D5DEEA);color:var(--navy);font:700 1.7rem 'Bitter',serif;letter-spacing:.04em;border-radius:0}
.post-card .card-body{padding:1.1rem 1.25rem 1.3rem}.post-card .card-title{font-size:1.02rem;line-height:1.4;font-weight:700}
.post-card .card-title a:hover{color:var(--navy);text-decoration:underline!important}

/* Banner */
.banner-wrap{margin-top:2rem;border-radius:8px;overflow:hidden}
.banner-slide{min-height:260px;background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:2rem 0 2.6rem;position:relative}
.banner-slide::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,31,58,.88),rgba(10,31,58,.05))}
.banner-slide>div{position:relative}

/* Halaman unit */
.unit-banner{background:linear-gradient(135deg,var(--navy-dark),var(--navy));color:#fff;padding:1.75rem 0 0;border-bottom:4px solid var(--gold)}
.unit-banner .breadcrumb{margin-bottom:1.2rem}.unit-banner .breadcrumb a{color:#cfd9e6;text-decoration:none}.unit-banner .breadcrumb a:hover{text-decoration:underline}
.unit-banner .breadcrumb-item.active,.unit-banner .breadcrumb-item+.breadcrumb-item::before{color:#9fb1c7}
.unit-banner h1{font-size:clamp(1.7rem,3.5vw,2.5rem);font-weight:700;max-width:28ch}
.unit-banner .eyebrow{margin-bottom:.5rem}
.unit-banner .nav{margin-bottom:-4px}
.unit-banner .nav-link{color:#cfd9e6;border:0;border-bottom:4px solid transparent;border-radius:0;padding:.9rem 1.1rem}
.unit-banner .nav-link:hover{color:#fff}.unit-banner .nav-link.active{background:none;color:#fff;border-bottom-color:var(--gold)}
.article-body{max-width:70ch;font-size:1.05rem;line-height:1.8}

/* Tabel dokumen */
.table-wrap{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.table-wrap .table{--bs-table-bg:transparent}
.table-wrap thead th{font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);background:#FAF9F6;border-bottom:1px solid var(--line);padding:.85rem 1rem}
.table-wrap td{padding:.95rem 1rem}

/* Footer */
.site-footer{background:var(--navy-dark);color:#b9c6d8;border-top:4px solid var(--gold);margin-top:5rem}
.site-footer a{color:#fff;text-decoration:none;opacity:.9}.site-footer a:hover{text-decoration:underline;opacity:1}
.site-footer li{margin-bottom:.35rem}

/* Admin */
.admin-side{background:var(--navy-dark);min-height:100vh}.admin-side .nav-link{color:#cfd9e6;border-radius:6px}
.admin-side .nav-link:hover,.admin-side .nav-link.active{background:rgba(255,255,255,.1);color:#fff}
.stat{background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:6px;padding:1.1rem}
.stat b{font:700 1.9rem 'Bitter',serif;display:block;color:var(--navy)}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Slider promosi layar penuh */
.hero-carousel{background:var(--navy-dark)}
.hero-carousel .banner-slide{min-height:clamp(240px,36vw,440px);padding:2rem 0 3.4rem}
.hero-carousel h2{font-size:clamp(1.4rem,3vw,2.3rem);font-weight:700;max-width:26ch}
.hero-carousel p{font-size:1.05rem;max-width:60ch;opacity:.92}
.hero-carousel .carousel-indicators{margin-bottom:1rem}
.hero-carousel .carousel-indicators [data-bs-target]{width:28px;height:4px;border:0;border-radius:2px}
.hero-carousel .carousel-indicators .active{background:var(--gold)}
.hero-carousel .carousel-control-prev,.hero-carousel .carousel-control-next{width:6%}
.hero-carousel+.hero{padding-top:3.5rem}

/* Lembaga */
.lem-card{display:flex;gap:1.1rem;background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:6px;padding:1.5rem;height:100%;text-decoration:none;color:var(--ink);transition:box-shadow .2s,transform .2s}
.lem-card:hover{box-shadow:0 12px 28px rgba(10,31,58,.12);transform:translateY(-2px)}
.lem-card h3{font-size:1.05rem;font-weight:700;color:var(--navy);margin:.1rem 0 .4rem}
.lem-short{font-size:.74rem;font-weight:700;letter-spacing:.12em;color:var(--gold)}
.lem-card .more{font-size:.88rem;font-weight:600;color:var(--navy)}
.lem-card .fak-icon{flex:none;margin:0}

/* Video profil */
.video-sec{background:#fff;border:1px solid var(--line);border-radius:8px;padding:2rem;margin-left:0;margin-right:0}
.video-sec h2{font-size:1.65rem;font-weight:700;color:var(--navy)}
.video-frame{border-radius:6px;overflow:hidden;box-shadow:0 14px 34px rgba(10,31,58,.25);background:#000}

/* Mitra kerjasama (marquee tanpa JS) */
.marquee{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:8px;padding:1.4rem 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 40s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.logo-item{flex:none;width:170px;height:70px;display:flex;align-items:center;justify-content:center;padding:0 1.5rem}
.logo-item img{max-width:100%;max-height:100%;object-fit:contain;filter:grayscale(1);opacity:.75;transition:filter .2s,opacity .2s}
.logo-item:hover img{filter:none;opacity:1}
@keyframes marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}.marquee-track [aria-hidden]{display:none}}

/* Alumni */
.snap-row{display:flex;gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.25rem .25rem 1rem;scrollbar-width:thin}
.alumni-card{flex:0 0 min(340px,85%);scroll-snap-align:start;margin:0;background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:6px;padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between;gap:1.2rem}
.alumni-card blockquote{margin:0;font-family:'Bitter',serif;font-size:1.02rem;line-height:1.6;color:var(--ink)}
.alumni-card figcaption{display:flex;align-items:center;gap:.8rem}
.alumni-card img,.avatar-ph{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none}
.avatar-ph{display:grid;place-items:center;background:var(--navy);color:#fff;font:700 1.2rem 'Bitter',serif}
.alumni-card b{display:block;color:var(--navy)}.alumni-card small{display:block;color:var(--muted);line-height:1.35}
