/* =============================================
   LEARNTIT — PAST PAPERS INDEX (HUB) PAGE
   Page-specific styles for /resources/past-papers/
   only. Leaf paper-listing pages (e.g.
   /maths/gcse/edexcel/higher/) use their own
   shared past-papers.css — do not add anything
   here that belongs there, and vice versa.

   Relies entirely on global.css for design
   tokens, reset, typography, container, and
   button system.
   ============================================= */

/* ----------------------------------------
   HERO — image left, title/desc/stats right.
   No breadcrumb, no meta line.
---------------------------------------- */
.pp-hero {
  background: var(--color-white);
  padding: 48px 0 56px;
}

.pp-hero-grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  align-items: center;
  gap: 48px;
}

.pp-hero-media {
  width: 100%;
  aspect-ratio: 1 / 0.65;
  max-width: 720px;
  background: var(--color-background);
  border-radius: var(--radius-primary);
  overflow: hidden;
}

.pp-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pp-hero-content {
  display: flex;
  flex-direction: column;
}

.pp-hero-title {
  margin-bottom: 18px;
  max-width: 100%;
}

.pp-hero-desc {
  color: var(--text-secondary);
  max-width: 580px;
  margin-bottom: 28px;
}

.pp-hero-stats {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 28px;
}

.pp-hero-stat {
  display: flex;
  align-items: center;
  gap: 12px;
}

.pp-hero-stat-icon {
  width: 38px;
  height: 38px;
  background: var(--color-primary-bg);
  border-radius: var(--radius-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  font-size: 0.85rem;
  flex-shrink: 0;
}

.pp-hero-stat:nth-child(1) .pp-hero-stat-icon { background: var(--accent-green-bg);  color: var(--accent-green); }
.pp-hero-stat:nth-child(2) .pp-hero-stat-icon { background: var(--accent-orange-bg); color: var(--accent-orange); }
.pp-hero-stat:nth-child(3) .pp-hero-stat-icon { background: var(--accent-purple-bg); color: var(--accent-purple); }

.pp-hero-stat-label {
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 2px;
}

.pp-hero-stat-value {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1;
  font-family: var(--font-heading);
}

/* ----------------------------------------
   SHARED SECTION TITLE
---------------------------------------- */
.pp-hub-section-title {
  margin-bottom: 36px;
}

/* ----------------------------------------
   BROWSE / FINDER WRAPPER SECTIONS
---------------------------------------- */
.pp-hub-browse {
  padding: 56px 0 80px;
}

.pp-hub-included {
  padding: 80px 0;
}

/* ----------------------------------------
   FINDER LAYOUT — left: heading/copy,
   right: the interactive finder card.
---------------------------------------- */
.pp-finder-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 48px;
  align-items: start;
}

.pp-finder-left {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: sticky;
  top: 110px;
}

.pp-finder-left p {
  color: var(--text-secondary);
  max-width: 360px;
}

.pp-finder-right {
  min-width: 0;
}

/* ----------------------------------------
   PAST PAPER FINDER (interactive wizard)
   Click-to-reveal step sequence, same logic
   as the header mega menu (level → board →
   subject → tier) but stacked inline. Step 1
   is static HTML; everything from Step 2
   onward is rendered by script.js. Rendered
   as a bordered card sitting in the right
   column of .pp-finder-layout.
---------------------------------------- */
.pp-finder {
  display: flex;
  flex-direction: column;
  gap: 24px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-primary);
  padding: 32px;
}

/* The board step and every step injected after it land inside
   #pp-finder-rest. It needs the same flex+gap as .pp-finder
   itself, otherwise the injected steps just stack with no
   space between them. */
#pp-finder-rest {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.pp-finder-step {
  animation: pp-finder-step-in var(--transition-medium);
}

@keyframes pp-finder-step-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.pp-finder-step-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 14px;
}

.pp-finder-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 0.75rem;
  flex-shrink: 0;
}

.pp-finder-options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.pp-finder-option {
  border: 1px solid var(--color-border);
  background: var(--color-white);
  padding: 12px 20px;
  border-radius: var(--radius-secondary);
  font-family: var(--font-heading);
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-primary);
  cursor: pointer;
  transition: border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast);
}

.pp-finder-option:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
  opacity: 1;
}

.pp-finder-option.active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}

/* Grouped options (Triple/Combined, AS-Level/A-Level) */
.pp-finder-group {
  margin-bottom: 14px;
}

.pp-finder-group:last-child {
  margin-bottom: 0;
}

.pp-finder-group-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-secondary);
  margin-bottom: 8px;
}

/* Final leaf links — visually distinct from the choice buttons above them */
.pp-finder-leaf {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--color-primary);
  background: var(--color-primary-bg);
  padding: 12px 20px;
  border-radius: var(--radius-secondary);
  font-family: var(--font-heading);
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--color-primary);
  transition: background var(--transition-fast), color var(--transition-fast);
}

.pp-finder-leaf:hover {
  background: var(--color-primary);
  color: var(--color-white);
  opacity: 1;
}

.pp-finder-leaf i {
  font-size: 0.7rem;
}

/* ----------------------------------------
   WHAT'S INCLUDED
---------------------------------------- */
.pp-hub-included-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.pp-hub-included-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-primary);
  padding: 28px 24px;
}

.pp-hub-included-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  margin-bottom: 18px;
}

.pp-hub-included-icon.icon-blue   { background: var(--color-primary-bg); color: var(--color-primary); }
.pp-hub-included-icon.icon-green  { background: var(--accent-green-bg);  color: var(--accent-green); }
.pp-hub-included-icon.icon-orange { background: var(--accent-orange-bg); color: var(--accent-orange); }

.pp-hub-included-card h3 {
  font-size: 1.02rem;
  margin-bottom: 10px;
}

.pp-hub-included-card p {
  color: var(--text-secondary);
  font-size: 0.88rem;
  margin: 0;
}

/* ----------------------------------------
   RESPONSIVE
---------------------------------------- */
@media (max-width: 900px) {
  .pp-hub-included-grid { grid-template-columns: 1fr; }
  .pp-hero-grid { grid-template-columns: 1fr; gap: 24px; }
  .pp-hero-media { max-width: 100%; }
  .pp-finder-layout { grid-template-columns: 1fr; gap: 24px; }
  .pp-finder-left { position: static; top: auto; }
  .pp-finder-left p { max-width: 100%; }
  .pp-finder { padding: 24px; }
}

@media (max-width: 640px) {
  .pp-hero { padding: 32px 0 36px; }
  .pp-hero-media { aspect-ratio: 1 / 0.75; }
  .pp-finder-option { flex: 1 1 auto; text-align: center; }
  .pp-hero-stats { gap: 16px 24px; }
  .pp-finder { padding: 20px; }
}
