:root {
  --pq-primary: #087f5b;
  --pq-primary-dark: #056044;
  --pq-primary-bright: #009970;
  --pq-primary-soft: #e8f7f1;
  --pq-ink: #16231f;
  --pq-muted: #60706a;
  --pq-line: #dce7e2;
  --pq-surface: #fff;
  --pq-background: #f5f8f7;
  --pq-shadow: 0 16px 42px rgba(18, 63, 49, .09);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; color: var(--pq-ink); background: var(--pq-background); font-family: "Poppins", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body.pq-menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
img { max-width: 100%; }
.pq-shell { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.pq-skip { position: fixed; z-index: 2000; top: 9px; left: 12px; padding: 9px 13px; transform: translateY(-150%); border-radius: 9px; color: var(--pq-primary-dark); background: #fff; font-size: 13px; font-weight: 700; }
.pq-skip:focus { transform: none; }

.pq-topbar { position: sticky; z-index: 1000; top: 0; height: 72px; color: #fff; background: linear-gradient(90deg, var(--pq-primary-dark), var(--pq-primary-bright)); border-bottom: 1px solid rgba(255,255,255,.12); box-shadow: 0 6px 24px rgba(5,96,68,.16); }
.pq-topbar-inner { display: flex; width: min(1388px, calc(100% - 40px)); height: 72px; margin: 0 auto; align-items: center; justify-content: space-between; }
.pq-brand { display: inline-flex; align-items: center; }
.pq-brand img { display: block; width: auto; height: 46px; object-fit: contain; }
.pq-topbar a,
.pq-topbar a:hover,
.pq-topbar a:focus,
.pq-topbar a:focus-visible,
.pq-mobile-nav a,
.pq-mobile-nav a:hover,
.pq-mobile-nav a:focus,
.pq-mobile-nav a:focus-visible {
  text-decoration: none !important;
}
.pq-nav { display: flex; align-items: center; gap: 4px; }
.pq-nav a { padding: 10px 13px; border-radius: 10px; color: #e4fff5; font-size: 13px; font-weight: 700; transition: 160ms ease; }
.pq-nav a:hover, .pq-nav a:focus-visible { color: #fff; background: rgba(255,255,255,.12); outline: none; }
.pq-nav .pq-nav-cta { margin-left: 7px; color: var(--pq-primary-dark); background: #fff; }
.pq-nav .pq-nav-cta:hover, .pq-nav .pq-nav-cta:focus-visible { color: var(--pq-primary-dark); background: #dcfff1; }
.pq-menu-button { display: none; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.3); border-radius: 10px; color: #fff; background: rgba(255,255,255,.1); cursor: pointer; font-weight: 700; }
.pq-mobile-nav { position: fixed; z-index: 999; top: 72px; right: 0; left: 0; padding: 16px 20px 22px; border-bottom: 1px solid var(--pq-line); background: #fff; box-shadow: 0 20px 36px rgba(18,63,49,.16); }
.pq-mobile-nav[hidden] { display: none; }
.pq-mobile-nav a { display: flex; padding: 13px 12px; justify-content: space-between; border-radius: 9px; color: var(--pq-ink); font-size: 14px; font-weight: 700; }
.pq-mobile-nav a:hover, .pq-mobile-nav a:focus-visible { color: var(--pq-primary-dark); background: var(--pq-primary-soft); outline: none; }

.pq-hero { position: relative; overflow: hidden; padding: 64px 0 62px; background: radial-gradient(circle at 13% 15%, rgba(0,153,112,.1), transparent 25rem), radial-gradient(circle at 88% 75%, rgba(0,153,112,.08), transparent 23rem), var(--pq-background); }
.pq-hero::after { position: absolute; right: -30px; bottom: -65px; content: "PYQ"; color: rgba(8,127,91,.04); font-size: clamp(160px, 24vw, 350px); font-weight: 800; letter-spacing: -.09em; line-height: 1; pointer-events: none; }
.pq-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(340px, .75fr); gap: 65px; align-items: center; }
.pq-kicker { margin: 0 0 11px; color: var(--pq-primary); font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.pq-hero h1 { max-width: 760px; margin: 0; color: #10221c; font-size: clamp(42px, 5.2vw, 67px); font-weight: 800; letter-spacing: -.055em; line-height: 1.04; }
.pq-hero h1 em { color: var(--pq-primary); font-style: normal; }
.pq-hero-copy > p:not(.pq-kicker) { max-width: 660px; margin: 21px 0 0; color: #52625c; font-size: 15px; line-height: 1.75; }
.pq-hero-actions { display: flex; margin-top: 27px; flex-wrap: wrap; gap: 11px; }
.pq-button { display: inline-flex; min-height: 49px; padding: 0 19px; align-items: center; justify-content: center; gap: 9px; border: 1px solid var(--pq-line); border-radius: 11px; color: var(--pq-primary-dark); background: #fff; cursor: pointer; font-size: 13px; font-weight: 700; transition: 170ms ease; }
.pq-button.primary { border-color: var(--pq-primary); color: #fff; background: var(--pq-primary); box-shadow: 0 11px 25px rgba(8,127,91,.21); }
.pq-button:hover, .pq-button:focus-visible { transform: translateY(-2px); outline: none; box-shadow: 0 14px 29px rgba(8,127,91,.16); }
.pq-hero-summary { padding: 24px; border: 1px solid rgba(8,127,91,.15); border-radius: 21px; background: rgba(255,255,255,.92); box-shadow: var(--pq-shadow); }
.pq-hero-summary > span { color: #788781; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pq-summary-grid { display: grid; margin-top: 15px; grid-template-columns: 1fr 1fr; gap: 10px; }
.pq-summary-grid div { padding: 17px; border-radius: 13px; background: var(--pq-primary-soft); }
.pq-summary-grid strong, .pq-summary-grid small { display: block; }
.pq-summary-grid strong { color: var(--pq-primary-dark); font-size: 24px; }
.pq-summary-grid small { margin-top: 3px; color: var(--pq-muted); font-size: 10px; line-height: 1.45; }
.pq-summary-note { display: flex; margin: 15px 0 0; align-items: flex-start; gap: 8px; color: var(--pq-muted); font-size: 10px; line-height: 1.55; }
.pq-summary-note i { color: var(--pq-primary); font-size: 14px; }

.pq-section { padding: 82px 0; }
.pq-heading { max-width: 690px; margin: 0 auto 34px; text-align: center; }
.pq-heading h2 { margin: 0; font-size: clamp(30px, 3.5vw, 44px); font-weight: 800; letter-spacing: -.045em; line-height: 1.15; }
.pq-heading > p:last-child { margin: 13px 0 0; color: var(--pq-muted); font-size: 13px; line-height: 1.7; }
.pq-selector { overflow: hidden; border: 1px solid var(--pq-line); border-radius: 23px; background: #fff; box-shadow: var(--pq-shadow); }
.pq-year-tabs { display: flex; padding: 17px; gap: 9px; border-bottom: 1px solid var(--pq-line); background: #f8fbfa; }
.pq-year-tab { display: inline-flex; min-height: 46px; padding: 0 18px; align-items: center; gap: 9px; border: 1px solid var(--pq-line); border-radius: 11px; color: #43514c; background: #fff; cursor: pointer; font-size: 12px; font-weight: 800; }
.pq-year-tab.is-active { border-color: var(--pq-primary); color: #fff; background: var(--pq-primary); box-shadow: 0 9px 20px rgba(8,127,91,.18); }
.pq-year-tab[disabled] { color: #9ba7a2; background: #f3f6f5; cursor: not-allowed; }
.pq-branch-panel { padding: 30px; }
.pq-branch-panel[hidden] { display: none; }
.pq-panel-heading { display: flex; margin-bottom: 20px; align-items: end; justify-content: space-between; gap: 20px; }
.pq-panel-heading h3 { margin: 0; font-size: 21px; }
.pq-panel-heading p { margin: 4px 0 0; color: var(--pq-muted); font-size: 11px; }
.pq-panel-heading > span { color: var(--pq-muted); font-size: 10px; font-weight: 700; }
.pq-branch-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pq-branch-card { display: grid; min-height: 108px; padding: 17px; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 13px; border: 1px solid var(--pq-line); border-radius: 15px; background: #fff; transition: 170ms ease; }
.pq-branch-card:hover, .pq-branch-card:focus-visible { border-color: #9dcfbc; background: #f7fcfa; transform: translateY(-3px); outline: none; box-shadow: 0 13px 30px rgba(18,63,49,.08); }
.pq-branch-code { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 12px; color: var(--pq-primary); background: var(--pq-primary-soft); font-size: 12px; font-weight: 800; }
.pq-branch-card strong, .pq-branch-card small { display: block; }
.pq-branch-card strong { font-size: 13px; }
.pq-branch-card small { margin-top: 4px; color: var(--pq-muted); font-size: 9px; line-height: 1.4; }
.pq-branch-card > i { color: var(--pq-primary); font-size: 11px; }
.pq-branch-card.is-unavailable { color: #89958f; background: #f8faf9; pointer-events: none; }
.pq-branch-card.is-unavailable .pq-branch-code { color: #86938d; background: #edf1ef; }

.pq-info-section { padding: 0 0 82px; }
.pq-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.pq-info-card { padding: 24px; border: 1px solid var(--pq-line); border-radius: 17px; background: #fff; }
.pq-info-card span { display: grid; width: 43px; height: 43px; place-items: center; border-radius: 12px; color: var(--pq-primary); background: var(--pq-primary-soft); }
.pq-info-card h3 { margin: 15px 0 6px; font-size: 15px; }
.pq-info-card p { margin: 0; color: var(--pq-muted); font-size: 10px; line-height: 1.65; }

/* Branch paper pages */
body.papers-modern { min-height: 100vh; background: var(--pq-background) !important; background-image: none !important; }
.papers-modern > .loader, .papers-modern > .topnav, .papers-modern > h1, .papers-modern > h2, .papers-modern > .container { display: none !important; }
.pq-page-hero { padding: 48px 0 35px; }
.pq-breadcrumb { display: flex; margin-bottom: 16px; align-items: center; flex-wrap: wrap; gap: 7px; color: var(--pq-muted); font-size: 10px; font-weight: 600; }
.pq-breadcrumb a:hover { color: var(--pq-primary); }
.pq-page-hero-card { position: relative; overflow: hidden; padding: 38px 42px; border-radius: 24px; color: #fff; background: linear-gradient(125deg, var(--pq-primary-dark), var(--pq-primary-bright)); box-shadow: 0 20px 50px rgba(5,96,68,.17); }
.pq-page-hero-card::after { position: absolute; right: 22px; bottom: -70px; content: attr(data-branch); color: rgba(255,255,255,.075); font-size: 175px; font-weight: 800; letter-spacing: -.07em; line-height: 1; }
.pq-page-hero-card > * { position: relative; z-index: 1; }
.pq-page-hero-card .pq-kicker { color: #a8f4d8; }
.pq-page-hero-card h1 { max-width: 760px; margin: 0; font-size: clamp(31px, 4.2vw, 50px); font-weight: 800; letter-spacing: -.045em; line-height: 1.12; }
.pq-page-hero-card p { max-width: 660px; margin: 13px 0 0; color: #d8f4e9; font-size: 12px; line-height: 1.7; }
.pq-page-stats { display: flex; margin-top: 21px; flex-wrap: wrap; gap: 9px; }
.pq-page-stats span { padding: 8px 12px; border: 1px solid rgba(255,255,255,.2); border-radius: 99px; background: rgba(255,255,255,.1); font-size: 10px; font-weight: 700; }
.pq-paper-main { padding: 0 0 80px; }
.pq-paper-toolbar { position: sticky; z-index: 50; top: 88px; display: grid; margin: 0 0 28px; padding: 18px; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: end; border: 1px solid var(--pq-line); border-radius: 17px; background: rgba(255,255,255,.94); box-shadow: 0 12px 34px rgba(18,63,49,.07); backdrop-filter: blur(10px); }
.pq-search label { display: block; margin-bottom: 7px; color: #6d7b76; font-size: 9px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.pq-search-control { position: relative; }
.pq-search-control i { position: absolute; top: 50%; left: 14px; color: #71817b; transform: translateY(-50%); }
.pq-search input { width: 100%; height: 45px; padding: 0 14px 0 40px; border: 1px solid var(--pq-line); border-radius: 11px; color: var(--pq-ink); background: #fbfdfc; outline: none; font-size: 12px; }
.pq-search input:focus { border-color: #74bea2; box-shadow: 0 0 0 3px rgba(8,127,91,.09); }
.pq-back-link { display: inline-flex; min-height: 45px; padding: 0 15px; align-items: center; gap: 8px; border: 1px solid var(--pq-line); border-radius: 11px; color: var(--pq-primary-dark); background: #fff; font-size: 11px; font-weight: 800; }
.pq-semester-group + .pq-semester-group { margin-top: 42px; }
.pq-group-heading { display: flex; margin-bottom: 15px; align-items: center; justify-content: space-between; gap: 15px; }
.pq-group-heading h2 { margin: 0; font-size: 22px; letter-spacing: -.025em; }
.pq-group-heading span { color: var(--pq-muted); font-size: 10px; }
.pq-paper-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.pq-paper-card { display: grid; min-height: 142px; padding: 20px; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; border: 1px solid var(--pq-line); border-radius: 17px; background: #fff; box-shadow: 0 8px 24px rgba(18,63,49,.04); transition: 170ms ease; }
.pq-paper-card:hover { border-color: #add5c6; box-shadow: 0 14px 34px rgba(18,63,49,.08); transform: translateY(-2px); }
.pq-subject-code { display: block; margin-bottom: 6px; color: var(--pq-primary); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pq-paper-card h3 { margin: 0; font-size: 16px; letter-spacing: -.015em; line-height: 1.4; }
.pq-paper-card p { margin: 8px 0 0; color: var(--pq-muted); font-size: 9px; }
.pq-paper-actions { display: flex; max-width: 190px; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.pq-paper-link { display: inline-flex; min-height: 39px; padding: 0 12px; align-items: center; gap: 7px; border-radius: 10px; color: #fff; background: var(--pq-primary); font-size: 10px; font-weight: 800; }
.pq-paper-link:hover, .pq-paper-link:focus-visible { background: var(--pq-primary-dark); outline: none; }
.pq-paper-unavailable { display: inline-flex; min-height: 39px; padding: 0 12px; align-items: center; gap: 7px; border: 1px solid var(--pq-line); border-radius: 10px; color: #86938e; background: #f5f7f6; font-size: 9px; font-weight: 700; }
.pq-empty { grid-column: 1 / -1; padding: 42px; border: 1px dashed #bfd2cb; border-radius: 17px; color: var(--pq-muted); background: #fff; text-align: center; font-size: 12px; }

.pq-footer-engraving { position: relative; isolation: isolate; display: grid; min-height: 165px; overflow: hidden; place-items: center; background: radial-gradient(circle at center, rgba(8,127,91,.08), transparent 23rem), var(--pq-background); }
.pq-footer-engraving img { position: absolute; z-index: 0; top: 50%; left: 50%; width: min(500px, 82vw); max-height: 140px; transform: translate(-50%, -43%); object-fit: contain; opacity: .09; mix-blend-mode: multiply; }
.pq-footer-engraving p { position: relative; z-index: 1; margin: 0; color: #53635d; font-size: 12px; font-weight: 700; letter-spacing: .03em; }
.pq-footer-engraving i { color: #e03131; }
.pq-footer-bottom { color: #fff; background: linear-gradient(90deg, var(--pq-primary-dark), var(--pq-primary-bright)); }
.pq-footer-bottom .pq-shell { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 20px; }
.pq-footer-bottom p { margin: 0; font-size: 10px; font-weight: 600; }
.pq-footer-bottom a { font-size: 10px; font-weight: 700; }

@media (max-width: 900px) {
  .pq-nav { display: none; }
  .pq-menu-button { display: inline-flex; }
  .pq-hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .pq-hero-copy { text-align: center; }
  .pq-hero-copy > p { margin-inline: auto !important; }
  .pq-hero-actions { justify-content: center; }
  .pq-hero-summary { width: min(100%, 600px); margin: auto; }
  .pq-branch-grid { grid-template-columns: 1fr 1fr; }
  .pq-paper-toolbar { top: 82px; }
}

@media (max-width: 620px) {
  .pq-shell { width: calc(100% - 24px); }
  .pq-topbar-inner { width: calc(100% - 24px); }
  .pq-brand img { height: 40px; max-width: 235px; }
  .pq-hero { padding: 45px 0 50px; }
  .pq-hero h1 { font-size: 40px; }
  .pq-hero-copy > p:not(.pq-kicker) { font-size: 13px; }
  .pq-hero-actions { display: grid; }
  .pq-button { width: 100%; }
  .pq-section { padding: 64px 0; }
  .pq-year-tabs { display: grid; grid-template-columns: 1fr 1fr; }
  .pq-year-tab { justify-content: center; padding-inline: 10px; }
  .pq-branch-panel { padding: 20px; }
  .pq-panel-heading { align-items: flex-start; flex-direction: column; gap: 6px; }
  .pq-branch-grid, .pq-info-grid, .pq-paper-grid { grid-template-columns: 1fr; }
  .pq-info-section { padding-bottom: 64px; }
  .pq-page-hero { padding-top: 32px; }
  .pq-page-hero-card { padding: 30px 22px; border-radius: 20px; }
  .pq-paper-toolbar { position: static; grid-template-columns: 1fr; }
  .pq-back-link { justify-content: center; }
  .pq-paper-card { min-height: 0; padding: 18px; grid-template-columns: 1fr; gap: 15px; }
  .pq-paper-actions { max-width: none; justify-content: flex-start; }
  .pq-footer-bottom .pq-shell { padding: 16px 0; flex-direction: column; justify-content: center; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
