/*
Theme Name: Poliwangi Campus
Theme URI: https://poliwangi.ac.id/
Author: OpenAI
Description: Tema kampus responsif berbasis desain referensi yang diberikan pengguna, dengan slider native, kategori front page, agenda, Direktur Menyapa, serta Custom Post Type Video YouTube.
Version: 1.1.2
Requires at least: 6.2
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: poliwangi-campus
*/

:root {
  --pc-primary: #005aab;
  --pc-navy: #1a284d;
  --pc-navy-2: #003d7a;
  --pc-accent: #ff8f00;
  --pc-danger: #c8102e;
  --pc-light: #f4f6f9;
  --pc-muted: #667085;
  --pc-border: #e2e7ee;
  --pc-text: #111827;
  --pc-white: #fff;
  --pc-radius: 10px;
  --pc-container: 1180px;
  --pc-shadow: 0 10px 30px rgba(16, 24, 40, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--pc-text);
  background: #fff;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
}
img { max-width: 100%; height: auto; }
a { color: var(--pc-primary); text-decoration: none; }
a:hover { text-decoration: underline; }
button, input, textarea, select { font: inherit; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.pc-container { width: min(calc(100% - 32px), var(--pc-container)); margin-inline: auto; }

/* Top utility bar */
.pc-topbar { background: var(--pc-navy); color: #fff; font-size: .86rem; }
.pc-topbar-inner { min-height: 38px; display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.pc-topbar .menu, .pc-header .menu, .pc-footer .menu { list-style: none; padding: 0; margin: 0; }
.pc-topbar .menu { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.pc-topbar a { color: #fff; }
.pc-search-toggle { color:#fff; background:transparent; border:0; cursor:pointer; padding:4px 0; }
.pc-search-panel { display:none; background:#fff; border-bottom:1px solid var(--pc-border); padding:12px 0; }
.pc-search-panel.is-open { display:block; }
.pc-search-form { display:flex; gap:8px; }
.pc-search-form input[type="search"] { flex:1; min-width:0; border:1px solid #cfd6df; border-radius:8px; padding:10px 12px; }
.pc-search-form button { border:0; border-radius:8px; background:var(--pc-primary); color:#fff; padding:10px 18px; cursor:pointer; }

/* Main header */
.pc-header { background: var(--pc-primary); border-bottom: 1px solid rgba(255,255,255,.18); position: sticky; top: 0; z-index: 100; }
.admin-bar .pc-header { top: 32px; }
.pc-header-inner { min-height: 78px; display: flex; align-items: center; gap: 24px; }
.pc-brand { display:flex; align-items:center; gap:12px; margin-right:auto; min-width:0; }
.pc-brand img { width:auto; max-height:58px; }
.pc-brand-text { color: #fff; font-weight:800; letter-spacing:.01em; line-height:1.1; max-width:330px; }
.pc-brand-text small { display:block; font-size:.72rem; font-weight:600; color:rgba(255,255,255,.82); margin-top:4px; }
.pc-primary-nav .menu { display:flex; align-items:center; gap:20px; }
.pc-primary-nav li { position:relative; }
.pc-primary-nav a { color:#fff; font-weight:650; font-size:.94rem; padding:26px 0; display:block; }
.pc-primary-nav .sub-menu { display:none; position:absolute; z-index:150; top:100%; left:-16px; min-width:230px; background:#fff; list-style:none; margin:0; padding:8px; border:1px solid var(--pc-border); border-radius:10px; box-shadow:var(--pc-shadow); }
.pc-primary-nav li:hover > .sub-menu, .pc-primary-nav li:focus-within > .sub-menu { display:block; }
.pc-primary-nav .sub-menu a { color:var(--pc-navy); padding:10px 12px; border-radius:7px; font-weight:550; }
.pc-primary-nav .sub-menu a:hover { background:var(--pc-light); text-decoration:none; }
.pc-menu-toggle { display:none; border:1px solid rgba(255,255,255,.5); background:rgba(0,0,0,.12); color:#fff; border-radius:8px; padding:9px 11px; cursor:pointer; }

/* Hero slider */
.pc-slider { position:relative; overflow:hidden; background:#0d1f3f; }
.pc-slides { position:relative; min-height: clamp(330px, 38vw, 520px); }
.pc-slide { position:absolute; inset:0; opacity:0; pointer-events:none; transition:opacity .55s ease; background-size:cover; background-position:center; }
.pc-slide::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(8,22,46,.74) 0%, rgba(8,22,46,.38) 48%, rgba(8,22,46,.08) 78%); }
.pc-slide.is-active { opacity:1; pointer-events:auto; }
.pc-slide-content { position:relative; z-index:2; color:#fff; min-height:clamp(330px,38vw,520px); display:flex; flex-direction:column; justify-content:center; max-width:760px; padding:52px 0 64px; }
.pc-slide-title { font-size:clamp(2rem,4.2vw,4.2rem); line-height:1.05; margin:0 0 14px; font-weight:800; text-wrap:balance; }
.pc-slide-subtitle { font-size:clamp(1rem,1.7vw,1.3rem); max-width:680px; margin:0 0 24px; color:rgba(255,255,255,.92); }
.pc-btn { display:inline-flex; align-items:center; justify-content:center; width:max-content; max-width:100%; border:2px solid var(--pc-primary); color:var(--pc-primary); padding:9px 15px; border-radius:8px; font-weight:700; transition:.2s ease; }
.pc-btn:hover { background:var(--pc-primary); color:#fff; text-decoration:none; }
.pc-btn-light { border-color:#fff; color:#fff; background:rgba(255,255,255,.05); }
.pc-btn-light:hover { background:#fff; color:var(--pc-navy); }
.pc-slider-nav { position:absolute; z-index:4; inset:auto 0 18px; display:flex; justify-content:center; gap:8px; }
.pc-slider-dot { width:9px; height:9px; border-radius:999px; border:0; background:rgba(255,255,255,.55); padding:0; cursor:pointer; transition:.2s ease; }
.pc-slider-dot.is-active { width:30px; background:#fff; }
.pc-slider-arrow { position:absolute; z-index:4; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.55); background:rgba(0,0,0,.2); color:#fff; cursor:pointer; font-size:1.2rem; }
.pc-slider-prev { left:18px; } .pc-slider-next { right:18px; }

/* Sections */
.pc-section { padding:56px 0 68px; }
.pc-section-alt { background:#f3f5f8; }
.pc-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:28px; }
.pc-section-title { margin:0; font-size:clamp(1.9rem,3.6vw,2.55rem); color:#202b3c; font-weight:780; line-height:1.15; }
.pc-section-title::after { content:""; display:block; width:54px; height:5px; border-radius:999px; background:var(--pc-primary); margin-top:10px; }
.pc-grid { display:grid; gap:24px; }
.pc-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.pc-grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.pc-section-more { display:flex; justify-content:flex-end; margin-top:32px; clear:both; }

/* Headline cards */
.pc-overlay-card { position:relative; height:350px; overflow:hidden; border-radius:8px; background:#dfe4eb; box-shadow:0 4px 18px rgba(16,24,40,.05); }
.pc-overlay-card img { width:100%; height:100%; object-fit:cover; transition:transform 1.05s ease; }
.pc-overlay-card:hover img { transform:scale(1.1); }
.pc-overlay-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.68) 0%,rgba(0,0,0,.05) 66%); }
.pc-overlay-title { position:absolute; z-index:2; left:0; right:0; bottom:0; padding:20px; margin:0; color:#fff; font-size:1rem; line-height:1.35; font-weight:730; }

/* Standard post cards */
.pc-post-card { min-width:0; }
.pc-post-thumb { aspect-ratio:16/10; border-radius:7px; overflow:hidden; background:#e9edf2; }
.pc-post-thumb img { width:100%; height:100%; object-fit:cover; transition:transform 1s ease; }
.pc-post-card:hover .pc-post-thumb img { transform:scale(1.08); }
.pc-post-title { margin:11px 0 7px; font-size:1rem; line-height:1.4; }
.pc-post-title a { color:#172033; }
.pc-post-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:#7a8492; font-size:.8rem; }
.pc-badge { display:inline-flex; background:var(--pc-primary); color:#fff; padding:3px 8px; border-radius:5px; font-size:.7rem; font-weight:700; }
.pc-post-excerpt { color:#596273; font-size:.9rem; margin:8px 0 0; }

/* Director */
.pc-director-card .pc-post-thumb { aspect-ratio:4/3; }

/* Agenda */
.pc-agenda-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.pc-agenda-card { border:1px solid var(--pc-border); border-radius:10px; padding:18px; background:#fff; display:grid; grid-template-columns:74px 1fr; gap:16px; align-items:start; box-shadow:0 2px 10px rgba(16,24,40,.03); }
.pc-agenda-date { background:var(--pc-primary); color:#fff; border-radius:8px; text-align:center; padding:10px 6px; line-height:1; }
.pc-agenda-date strong { display:block; font-size:2rem; }
.pc-agenda-date span { display:block; font-size:.82rem; text-transform:uppercase; margin-top:6px; font-weight:700; }
.pc-agenda-card h3 { margin:0 0 8px; font-size:1rem; line-height:1.35; }
.pc-agenda-card h3 a { color:#172033; }
.pc-agenda-location { grid-column:2; color:#727c8b; font-size:.82rem; }

/* Video */
.pc-video-card { min-width:0; }
.pc-video-thumb { position:relative; aspect-ratio:16/9; overflow:hidden; border-radius:8px; background:#111827; }
.pc-video-thumb img { width:100%; height:100%; object-fit:cover; opacity:.94; transition:transform .7s ease, opacity .3s ease; }
.pc-video-card:hover img { transform:scale(1.05); opacity:.82; }
.pc-play { position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); width:58px; height:42px; border-radius:10px; display:grid; place-items:center; background:#ff0000; color:#fff; font-size:1.15rem; box-shadow:0 8px 24px rgba(0,0,0,.25); }
.pc-video-title { margin:10px 0 5px; font-size:1rem; line-height:1.35; }
.pc-video-title a { color:#172033; }

/* Footer */
.pc-footer { border-top:3px solid var(--pc-navy-2); background:#fff; }
.pc-footer-main { padding:42px 0 28px; }
.pc-footer-brand { margin-bottom:28px; display:grid; grid-template-columns:1.15fr 2fr; gap:34px; }
.pc-footer-site h2 { margin:0 0 10px; color:var(--pc-navy-2); font-size:1.25rem; }
.pc-footer-site p { margin:5px 0; color:#4a5565; font-size:.9rem; }
.pc-footer-menus { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.pc-footer-col-title { font-size:.76rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--pc-navy-2); border-bottom:2px solid var(--pc-navy-2); padding-bottom:7px; margin:0 0 12px; }
.pc-footer .menu li { margin-bottom:3px; }
.pc-footer .menu a { display:block; color:#444; font-size:.86rem; padding:4px 2px; border-radius:6px; transition:.15s ease; }
.pc-footer .menu a:hover { color:var(--pc-navy-2); padding-left:6px; text-decoration:none; }
.pc-footer-bottom { background:var(--pc-navy); color:#fff; font-size:.82rem; padding:14px 0; }
.pc-footer-bottom-inner { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.pc-footer-quick .menu { display:flex; flex-wrap:wrap; gap:8px; }
.pc-footer-quick a { color:#fff; opacity:.9; }

/* Content templates */
.pc-content-wrap { padding:46px 0 64px; }
.pc-entry { max-width:850px; margin-inline:auto; }
.pc-entry-title { font-size:clamp(2rem,4vw,3.2rem); line-height:1.15; margin:0 0 14px; }
.pc-entry-meta { color:var(--pc-muted); margin-bottom:22px; }
.pc-entry-content { font-size:1.03rem; }
.pc-entry-content img { border-radius:8px; }
.pc-archive-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.pc-pagination { margin-top:30px; }
.pc-pagination .nav-links { display:flex; gap:8px; flex-wrap:wrap; }
.pc-pagination a, .pc-pagination span { display:inline-flex; min-width:38px; height:38px; align-items:center; justify-content:center; border:1px solid var(--pc-border); border-radius:7px; padding:0 10px; }
.pc-pagination .current { background:var(--pc-primary); color:#fff; border-color:var(--pc-primary); }
.pc-empty { padding:28px; border:1px dashed #cbd3df; border-radius:10px; color:var(--pc-muted); background:#fafbfc; }
.pc-video-embed { aspect-ratio:16/9; margin:20px 0 26px; background:#111; border-radius:10px; overflow:hidden; }
.pc-video-embed iframe { width:100%; height:100%; border:0; }

@media (max-width: 980px) {
  .pc-menu-toggle { display:block; }
  .pc-primary-nav { display:none; position:absolute; left:0; right:0; top:100%; background:var(--pc-primary); border-top:1px solid var(--pc-border); box-shadow:0 12px 30px rgba(16,24,40,.12); }
  .pc-primary-nav.is-open { display:block; }
  .pc-primary-nav .menu { width:min(calc(100% - 32px), var(--pc-container)); margin:0 auto; display:block; padding:10px 0 18px; }
  .pc-primary-nav a { padding:11px 4px; }
  .pc-primary-nav .sub-menu { display:block; position:static; background:rgba(255,255,255,.08); border:0; box-shadow:none; padding:0 0 0 18px; min-width:0; }
  .pc-primary-nav .sub-menu a { color:#fff; }
  .pc-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pc-agenda-grid { grid-template-columns:1fr; }
  .pc-footer-brand { grid-template-columns:1fr; }
  .pc-footer-menus { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pc-archive-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 700px) {
  .admin-bar .pc-header { top:46px; }
  .pc-topbar-inner { min-height:34px; }
  .pc-topbar .menu { gap:11px; }
  .pc-brand-text { font-size:.93rem; }
  .pc-brand-text small { display:none; }
  .pc-slider-arrow { display:none; }
  .pc-slide::before { background:linear-gradient(90deg,rgba(8,22,46,.75),rgba(8,22,46,.42)); }
  .pc-grid-3, .pc-grid-4 { grid-template-columns:1fr; }
  .pc-overlay-card { height:290px; }
  .pc-section { padding:42px 0 50px; }
  .pc-section-heading { align-items:flex-start; flex-direction:column; margin-bottom:22px; }
  .pc-section-more { margin-top:26px; }
  .pc-footer-menus { grid-template-columns:1fr; }
  .pc-archive-grid { grid-template-columns:1fr; }
}
