/* Topic 11 — Official sources and related topics */
.sources-page {
  --sources-ink: #082b55;
  --sources-copy: #2f5062;
  --sources-teal: #167a70;
  --sources-blue: #0e628d;
  --sources-green: #5b9339;
  --sources-gold: #d59a26;
  --sources-red: #b64c38;
  --sources-cream: #fbf7ec;
  --sources-soft: #eef7f2;
  --sources-warm: #fff5e8;
  --sources-line: rgba(21, 92, 108, .18);
  --sources-shadow: 0 22px 54px rgba(24, 72, 86, .09);
  color: var(--sources-copy);
  background: #fcfaf4;
}

.sources-page main { overflow: hidden; }
.sources-page a { text-decoration: none; }
.sources-page img { display: block; max-width: 100%; }
.sources-page :is(h1,h2,h3,strong) { color: var(--sources-ink); }

.sources-shell { width: min(1180px, calc(100% - 72px)); margin-inline: auto; }
.sources-section { position: relative; padding: 76px 0; }
.sources-section--soft { background: linear-gradient(180deg, rgba(238,247,242,.82), rgba(246,250,247,.7)); }
.sources-section--warm { background: linear-gradient(180deg, rgba(255,245,232,.85), rgba(251,247,236,.72)); }
.sources-section--blue { background: radial-gradient(circle at 82% 10%, rgba(23,111,152,.12), transparent 30%), linear-gradient(180deg,#f4f9fb,#fbf7ec); }
.sources-section--final { background: radial-gradient(circle at 15% 14%, rgba(92,150,59,.12), transparent 28%), linear-gradient(180deg,#f7fbf4,#fbf8ef); }
.sources-section--links { padding-top: 66px; background: #f6f2e8; }

.sources-kicker { margin: 0 0 12px; color: var(--sources-teal); font-size: .78rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.sources-heading { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(280px,.65fr); gap: 42px; align-items: end; margin-bottom: 32px; }
.sources-heading--center { display: block; max-width: 920px; margin: 0 auto 32px; text-align: center; }
.sources-heading h2,
.sources-copy h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.25rem, 4.5vw, 4.35rem); line-height: .98; letter-spacing: -.035em; }
.sources-heading > p,
.sources-heading--center > p,
.sources-copy > p { margin: 14px 0 0; font-size: 1.02rem; line-height: 1.7; }

/* Hero */
.sources-hero { position: relative; padding: 64px 0 74px; background: radial-gradient(circle at 76% 14%, rgba(30,133,149,.16), transparent 30%), radial-gradient(circle at 8% 82%, rgba(215,154,32,.1), transparent 28%), linear-gradient(180deg,#f9f7ef,#eef7f2); }
.sources-hero::after { content: ""; position: absolute; inset: auto 0 0; height: 1px; background: linear-gradient(90deg,transparent,rgba(21,92,108,.2),transparent); }
.sources-hero-grid { display: grid; grid-template-columns: minmax(0,.92fr) minmax(520px,1.08fr); gap: 48px; align-items: center; }
.sources-hero-copy h1 { margin: 0; max-width: 760px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(3rem,5.6vw,5.55rem); line-height: .93; letter-spacing: -.048em; }
.sources-lead { margin: 24px 0 0; max-width: 760px; font-size: 1.08rem; line-height: 1.75; }
.sources-hero-note { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 15px; align-items: center; margin-top: 24px; padding: 17px 20px; border: 1px solid rgba(215,154,32,.3); border-radius: 21px; background: rgba(255,250,237,.88); box-shadow: 0 14px 34px rgba(99,75,33,.06); }
.sources-hero-note > span { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; color: #805400; background: rgba(232,174,52,.2); font-size: 1.45rem; font-weight: 900; }
.sources-hero-note p { margin: 0; line-height: 1.5; }
.sources-quick-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 23px; }
.sources-quick-links a { padding: 12px 15px; border: 1px solid rgba(23,111,152,.2); border-radius: 999px; background: rgba(255,255,255,.78); color: #0b5c8c; font-size: .84rem; font-weight: 900; text-align: center; transition: transform .18s ease, box-shadow .18s ease; }
.sources-quick-links a:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(24,74,91,.1); }
.sources-hero-visual,
.sources-framed-visual,
.sources-wide-visual { margin: 0; padding: 9px; border: 1px solid rgba(21,92,108,.16); border-radius: 30px; background: rgba(255,255,255,.78); box-shadow: var(--sources-shadow); }
.sources-hero-visual img,
.sources-framed-visual img,
.sources-wide-visual img { width: 100%; border-radius: 22px; }
.sources-wide-visual { margin: 0 auto 28px; max-width: 1120px; }

/* Shared blocks */
.sources-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(430px,.92fr); gap: 48px; align-items: center; }
.sources-split--visual-left { grid-template-columns: minmax(430px,.92fr) minmax(0,1fr); }
.sources-copy { min-width: 0; }
.sources-callout,
.sources-question { margin-top: 24px; padding: 17px 20px; border: 1px solid rgba(24,121,111,.24); border-radius: 18px; background: rgba(255,255,255,.84); line-height: 1.55; }
.sources-callout--warning { border-color: rgba(215,154,32,.32); background: rgba(255,249,232,.88); }
.sources-question { border-color: rgba(23,111,152,.25); background: #f1f8fb; }

.sources-check-grid,
.sources-card-grid,
.sources-topic-grid,
.sources-list-grid,
.sources-resource-grid { display: grid; gap: 14px; }
.sources-check-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.sources-card-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.sources-topic-grid { grid-template-columns: repeat(5,minmax(0,1fr)); }
.sources-list-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.sources-resource-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }

.sources-check-grid article,
.sources-card-grid article,
.sources-topic-grid article,
.sources-list-grid article,
.sources-resource-grid article,
.sources-link-panel,
.sources-sequence-list li,
.sources-final-list li { border: 1px solid var(--sources-line); border-radius: 22px; background: rgba(255,255,255,.86); box-shadow: 0 12px 30px rgba(24,74,91,.05); }

.sources-check-grid article,
.sources-card-grid article,
.sources-topic-grid article,
.sources-list-grid article,
.sources-resource-grid article { padding: 22px; }
.sources-check-grid span,
.sources-card-grid span,
.sources-list-grid span { display: grid; place-items: center; width: 42px; height: 34px; margin-bottom: 14px; border-radius: 999px; color: var(--sources-teal); background: rgba(24,121,111,.1); font-size: .78rem; font-weight: 900; }
.sources-card-grid h3,
.sources-check-grid h3,
.sources-list-grid h3,
.sources-resource-grid h3,
.sources-topic-grid h3 { margin: 0 0 8px; font-size: 1.05rem; }
.sources-card-grid p,
.sources-check-grid p,
.sources-list-grid p,
.sources-resource-grid p,
.sources-topic-grid p { margin: 0; line-height: 1.58; }
.sources-card-grid ul,
.sources-resource-grid ul { margin: 10px 0 0; padding-left: 18px; line-height: 1.65; }

.sources-sequence-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.sources-sequence-list li { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 14px; align-items: start; padding: 16px 18px; }
.sources-sequence-list span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: var(--sources-teal); background: rgba(24,121,111,.11); font-weight: 900; }
.sources-sequence-list strong { display: block; margin-bottom: 4px; }
.sources-sequence-list p { margin: 0; line-height: 1.5; }

.sources-inline-pills,
.sources-file-proof,
.sources-links-inline { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.sources-inline-pills span,
.sources-file-proof code,
.sources-links-inline span { padding: 9px 12px; border-radius: 999px; border: 1px solid rgba(23,111,152,.18); background: rgba(242,248,251,.9); color: #26536a; font-size: .82rem; font-weight: 800; }
.sources-inline-pills span.is-warm { border-color: rgba(215,154,32,.22); background: rgba(255,249,232,.88); color: #8a6206; }
.sources-inline-pills span.is-red { border-color: rgba(182,76,56,.22); background: rgba(255,241,236,.88); color: #9a4637; }
.sources-file-proof code { font-family: Consolas, "Courier New", monospace; overflow-wrap: anywhere; }

.sources-programme-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 26px; }
.sources-programme-card { padding: 20px; border: 1px solid var(--sources-line); border-radius: 24px; background: rgba(255,255,255,.88); box-shadow: 0 12px 30px rgba(24,74,91,.06); }
.sources-programme-card h3 { margin: 0 0 8px; font-size: 1.1rem; }
.sources-programme-card p { margin: 0; line-height: 1.55; }
.sources-programme-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.sources-programme-links a { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 14px; border: 1px solid rgba(23,111,152,.2); border-radius: 999px; background: rgba(255,255,255,.94); color: #0b5c8c; font-size: .82rem; font-weight: 900; }

.sources-link-panel { padding: 18px 20px; }
.sources-link-panel strong { display: block; margin-bottom: 8px; }
.sources-link-panel p { margin: 0; line-height: 1.55; }

.sources-topic-grid article { min-height: 185px; display: flex; flex-direction: column; justify-content: space-between; }
.sources-topic-grid p { margin-top: 8px; }
.sources-topic-grid a { display: inline-flex; align-items: center; gap: 9px; margin-top: 15px; color: #0b5c8c; font-weight: 900; }

.sources-final-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.sources-final-list li { position: relative; min-height: 72px; display: flex; align-items: center; padding: 14px 16px 14px 50px; color: #174765; font-size: .9rem; font-weight: 800; }
.sources-final-list li::before { content: "✓"; position: absolute; left: 14px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; color: var(--sources-green); background: rgba(92,150,59,.15); font-weight: 900; }

.sources-next-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 28px; }
.sources-next-links a { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 13px; align-items: center; min-height: 86px; padding: 17px 19px; border: 1px solid rgba(23,111,152,.22); border-radius: 21px; background: rgba(255,255,255,.87); color: var(--sources-ink); box-shadow: 0 12px 30px rgba(24,74,91,.06); transition: transform .18s ease, box-shadow .18s ease; }
.sources-next-links a:hover { transform: translateY(-3px); box-shadow: 0 18px 38px rgba(24,74,91,.1); }
.sources-next-links span { display: grid; place-items: center; min-width: 42px; height: 34px; padding: 0 9px; border-radius: 999px; color: var(--sources-teal); background: rgba(24,121,111,.1); font-size: .78rem; font-weight: 900; }
.sources-next-links strong { font-size: .94rem; line-height: 1.28; }
.sources-next-links em { color: #0b5c8c; font-size: 1.25rem; font-style: normal; font-weight: 900; }
.sources-bottom-back { display: flex; justify-content: center; margin-top: 34px; }
.sources-bottom-back a { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 21px; border: 1px solid rgba(23,111,152,.28); border-radius: 999px; background: rgba(255,255,255,.89); color: #0b5c8c; font-weight: 900; box-shadow: 0 10px 24px rgba(24,74,91,.06); }

@media (max-width: 1280px) {
  .sources-hero-grid,
  .sources-split,
  .sources-split--visual-left { grid-template-columns: 1fr; }
  .sources-hero-copy { max-width: 980px; }
  .sources-hero-visual,
  .sources-framed-visual { max-width: 1000px; margin-inline: auto; }
  .sources-split--visual-left .sources-framed-visual { order: 2; }
  .sources-split--visual-left .sources-copy { order: 1; }
  .sources-heading { grid-template-columns: 1fr; gap: 14px; }
  .sources-card-grid,
  .sources-list-grid,
  .sources-topic-grid,
  .sources-final-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
  .sources-shell { width: min(100% - 40px, 760px); }
  .sources-section { padding: 58px 0; }
  .sources-hero { padding-top: 44px; }
  .sources-hero-copy h1 { font-size: clamp(2.55rem,9.2vw,4rem); }
  .sources-quick-links,
  .sources-check-grid,
  .sources-card-grid,
  .sources-programme-grid,
  .sources-resource-grid,
  .sources-topic-grid,
  .sources-list-grid,
  .sources-next-links,
  .sources-final-list { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .sources-shell { width: calc(100% - 28px); }
  .sources-heading h2,
  .sources-copy h2 { font-size: clamp(2rem,10vw,2.8rem); }
  .sources-hero-note { grid-template-columns: 40px minmax(0,1fr); }
  .sources-hero-visual,
  .sources-framed-visual,
  .sources-wide-visual { padding: 7px; border-radius: 22px; }
  .sources-hero-visual img,
  .sources-framed-visual img,
  .sources-wide-visual img { border-radius: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .sources-page * { scroll-behavior: auto !important; }
  .sources-quick-links a,
  .sources-next-links a { transition: none; }
}
