:root {
  --navy: #063a66;
  --navy-deep: #032947;
  --blue: #0b5d8e;
  --orange: #ff965f;
  --gold: #ffd166;
  --green: #247b5d;
  --red: #b42318;
  --ink: #18212a;
  --muted: #5b6670;
  --paper: #fffdf8;
  --wash: #f2f5f7;
  --line: #d4dbe1;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Arial, Helvetica, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; background: #e9edf2; color: var(--ink); font-family: var(--sans); line-height: 1.58; }
a { color: #075cab; }
a:hover { color: #003d73; }
img { display: block; max-width: 100%; }
.skip-link { position:absolute; top:-100px; left:18px; z-index:100; padding:10px 14px; background:white; color:var(--navy); font-weight:700; }
.skip-link:focus { top: 12px; }
.site-shell { width:min(1180px,100%); min-height:100vh; margin:0 auto; background:var(--paper); box-shadow:0 0 24px rgba(0,0,0,.12); }
.site-header { background:var(--navy); color:white; }
.site-header__bar { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:12px clamp(18px,4vw,42px); border-bottom:1px solid rgba(255,255,255,.22); font-size:.9rem; }
.site-header__bar a { color:white; font-weight:700; text-decoration:none; }
.site-header__bar a:hover { text-decoration:underline; }
.site-header__identity { color:#dcecf7; text-align:right; }
.site-header__masthead { padding:clamp(28px,6vw,66px) clamp(20px,6vw,70px); background:radial-gradient(circle at 87% 20%, rgba(255,209,102,.2) 0 7%, transparent 7.2%), linear-gradient(135deg,var(--navy-deep),var(--navy) 60%,#187054); }
.issue-masthead { padding:clamp(34px,7vw,78px) clamp(20px,7vw,82px) clamp(30px,5vw,55px); background:linear-gradient(135deg,var(--navy-deep),var(--navy) 62%,#195f52); color:white; }
.issue-masthead--archive { padding-top:clamp(28px,5vw,48px); padding-bottom:clamp(26px,4vw,42px); }
.issue-masthead--environmental, .site-header__masthead.issue-masthead--environmental { background:linear-gradient(135deg,#032947,#075a52 62%,#247b5d); }
.archive-masthead--compact { padding-top:clamp(28px,5vw,50px); padding-bottom:clamp(30px,5vw,52px); }
.kicker { margin:0 0 10px; color:var(--gold); font-size:.78rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.site-header h1, .issue-masthead h1 { max-width:820px; margin:0; font-family:var(--serif); font-size:clamp(2.15rem,5vw,4.6rem); font-weight:700; line-height:1.04; letter-spacing:-.025em; }
.site-header__dek, .issue-masthead__dek { max-width:760px; margin:18px 0 0; color:#edf7ff; font-family:var(--serif); font-size:clamp(1.1rem,2.2vw,1.4rem); line-height:1.45; }
.issue-masthead__meta { display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:22px; color:#dcecf7; font-size:.9rem; font-weight:700; }
.issue-masthead__meta span { padding:4px 9px; border:1px solid rgba(255,255,255,.26); border-radius:999px; }
.archive-main { padding:clamp(26px,5vw,58px) clamp(18px,5vw,58px) 70px; }
.archive-intro { margin-bottom:40px; }
.archive-intro h2, .section-heading h2, .issue-section h2 { margin:0; color:var(--navy-deep); font-family:var(--serif); font-size:clamp(1.65rem,3vw,2.35rem); line-height:1.12; }
.archive-intro p { max-width:730px; margin:12px 0 0; font-size:1.05rem; }
.archive-note { padding:17px 18px; border-left:5px solid var(--orange); border-radius:6px; background:#fff3ec; color:#493128; font-size:.95rem; }
.archive-note strong { display:block; margin-bottom:3px; color:#7f2c12; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin:34px 0 16px; padding-bottom:10px; border-bottom:2px solid var(--navy); }
.section-heading p { margin:0; color:var(--muted); font-size:.92rem; }
.course-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
.course-card, .issue-card { position:relative; padding:22px; border:1px solid var(--line); border-radius:10px; background:white; box-shadow:0 3px 10px rgba(3,41,71,.06); }
.course-card--active { border-top:7px solid var(--green); }
.course-card--future { border-top:7px solid #a9b4bd; background:#f8f9fa; }
.status { display:inline-block; margin-bottom:10px; padding:4px 8px; border-radius:999px; background:#e5f4ed; color:#16533e; font-size:.72rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.status--future { background:#e8ecef; color:#525e67; }
.course-card h3, .issue-card h3 { margin:0; color:var(--navy-deep); font-family:var(--serif); font-size:1.48rem; line-height:1.18; }
.course-card p, .issue-card p { margin:10px 0 0; }
.course-code, .issue-card__meta { color:var(--muted); font-size:.88rem; font-weight:700; }
.text-link { display:inline-block; margin-top:16px; font-weight:800; text-decoration:none; }
.text-link:hover { text-decoration:underline; }
.term-nav { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 28px; padding:0; list-style:none; }
.term-nav a, .term-nav span { display:block; padding:8px 12px; border:1px solid var(--line); border-radius:999px; background:white; font-size:.88rem; font-weight:700; text-decoration:none; }
.term-nav [aria-current="page"] { border-color:var(--navy); background:var(--navy); color:white; }
.issue-list { display:grid; gap:14px; }
.issue-card { display:grid; grid-template-columns:118px minmax(0,1fr) auto; gap:18px; align-items:center; }
.issue-card__week { padding-right:18px; border-right:1px solid var(--line); color:var(--navy); font-size:.8rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.issue-card__week strong { display:block; color:var(--ink); font-family:var(--serif); font-size:1.7rem; letter-spacing:0; }
.issue-card__arrow { color:var(--navy); font-size:1.5rem; font-weight:700; }
.issue-card h3 a { color:inherit; text-decoration:none; }
.issue-card h3 a:hover { text-decoration:underline; }
.empty-state { padding:28px; border:2px dashed #acb8c1; border-radius:10px; background:#f7f9fa; text-align:center; }
.empty-state h3 { margin:0; color:var(--navy-deep); font-family:var(--serif); font-size:1.5rem; }
.empty-state p { max-width:600px; margin:8px auto 0; color:var(--muted); }
.issue-shell { display:grid; grid-template-columns:235px minmax(0,1fr); gap:clamp(28px,5vw,64px); padding:clamp(26px,5vw,58px) clamp(18px,6vw,70px) 80px; }
.toc { position:sticky; top:18px; align-self:start; padding:18px; border:1px solid var(--line); border-radius:9px; background:white; }
.toc h2 { margin:0 0 10px; color:var(--navy-deep); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; }
.toc ol { margin:0; padding:0; list-style:none; }
.toc li + li { border-top:1px solid #edf0f2; }
.toc a { display:block; padding:8px 0; color:#184f77; font-size:.88rem; font-weight:700; line-height:1.3; text-decoration:none; }
.toc a:hover { text-decoration:underline; }
.issue-content { min-width:0; max-width:790px; }
.issue-section { margin:0 0 48px; scroll-margin-top:24px; }
.issue-section > h2 { padding-bottom:10px; border-bottom:3px solid var(--navy); }
.section-source-link { color:inherit; text-decoration:none; }
.section-source-link:hover { text-decoration:underline; }
.issue-section h3 { margin:24px 0 7px; color:var(--navy-deep); font-size:1.1rem; }
.issue-section p, .issue-section ul { font-size:1.02rem; }
.issue-content a { overflow-wrap:anywhere; }
.source-update { font-family:Arial, Helvetica, sans-serif; font-size:1.05rem; line-height:1.65; }
.source-update p { margin:.9rem 0; }
.source-update font, .source-update span { font-family:Arial, Helvetica, sans-serif !important; }
.source-update p, .source-update li { font-family:Arial, Helvetica, sans-serif !important; font-size:1.05rem !important; line-height:1.65 !important; }
.source-update h2 { font-family:var(--serif); }
.source-update .source-subhead { margin-top:1.55rem; }
.source-update .source-subhead:first-of-type { margin-top:1.1rem; }
.source-update ul, .source-update ol { padding-left:1.45rem; }
.source-update li + li { margin-top:.45rem; }
.source-list__level-1 { margin-left:1.4rem; }
.source-list__level-2 { margin-left:2.8rem; }
.source-list__level-3 { margin-left:4.2rem; }
.source-list__marker { color:var(--navy-deep); font-weight:800; }
.source-deadline { padding:14px 16px; border-left:7px solid var(--red); background:#fff5f4; font-weight:700; }
.exam-alert { padding:22px; border:2px solid #e1a39e; border-left:9px solid var(--red); border-radius:8px; background:#fff5f4; }
.exam-alert h2 { color:#8e1b12; }
.quote-archive { padding:22px; border:1px solid #d5c18d; border-radius:8px; background:#fff9e8; }
.quote-archive > p { font-family:var(--serif); font-size:1.12rem; }
.source-update blockquote { margin:1.25rem 0; padding:.2rem 0 .2rem 1.25rem; border-left:4px solid #bdc9d2; color:#34424d; }
.source-update img, .source-update img.doc-image { display:block; width:auto; max-width:100%; height:auto; max-height:760px; margin:1.35rem auto; object-fit:contain; border:1px solid var(--line); border-radius:6px; background:white; }
.attention-archive > p { margin:0; padding:1rem 0; border-top:1px solid var(--line); }
.attention-archive > p:first-of-type { border-top:0; }
.visual-archive { padding:22px; border:1px solid var(--line); border-radius:8px; background:white; }
.visual-archive > h2 { margin-bottom:18px; }
.final-update-section:first-child { margin-bottom:34px; font-family:var(--serif); font-size:1.12rem; }
.lede { margin-top:0; font-family:var(--serif); font-size:1.25rem !important; line-height:1.55; }
.need-to-know { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:18px; }
.fact { padding:15px; border:1px solid var(--line); border-radius:8px; background:white; }
.fact__label { display:block; margin-bottom:3px; color:var(--muted); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.reading-list, .attention-list { margin:18px 0 0; padding:0; list-style:none; }
.reading-list li, .attention-item { padding:17px 0; border-top:1px solid var(--line); }
.reading-list li:first-child, .attention-item:first-child { border-top:0; padding-top:4px; }
.reading-list a, .attention-item a { font-weight:800; }
.reading-list p, .attention-item p { margin:4px 0 0; }
.source { color:var(--muted); font-size:.84rem !important; }
.visual-feature { margin:20px 0 0; padding:10px; border:1px solid var(--line); background:white; }
.visual-feature a { display:block; }
.visual-feature img { width:100%; height:auto; }
.visual-feature figcaption { padding:12px 5px 5px; color:#424c55; font-size:.9rem; line-height:1.45; }
.culture-item { padding:22px; border-left:7px solid var(--orange); border-radius:8px; background:#fff3ec; }
.culture-item h3 { margin-top:0; }
.closing-quote { margin:0; padding:30px clamp(20px,5vw,42px); border-top:1px solid #d5c18d; border-bottom:1px solid #d5c18d; background:#fff9e8; color:#28323b; font-family:var(--serif) !important; font-size:clamp(1.25rem,3vw,1.8rem) !important; line-height:1.42 !important; }
.closing-quote footer { margin-top:14px; font-family:var(--sans); font-size:.88rem; font-weight:800; letter-spacing:.04em; }
.back-to-top { position:fixed; right:max(16px,calc((100vw - 1180px)/2 + 18px)); bottom:18px; width:44px; height:44px; border:1px solid rgba(255,255,255,.8); border-radius:50%; background:var(--navy); color:white; font-size:1.15rem; font-weight:800; line-height:42px; text-align:center; text-decoration:none; box-shadow:0 3px 12px rgba(0,0,0,.22); }
.back-to-top:hover { background:var(--navy-deep); color:white; }
.site-footer { display:flex; justify-content:space-between; gap:22px; padding:24px clamp(18px,5vw,58px); background:#d8cde7; font-size:.9rem; }
.site-footer p { margin:0; }
/* Environmental Week One media fallbacks for broken hotlinks. */
img[src$="book-toilets.jpg"], img[src*="Marsh%27s_Library"], img[src*="Marsh"] { content:url("https://commons.wikimedia.org/wiki/Special:FilePath/Dublin_-_Marsh%27s_Library_-_20230428135752.jpg"); }
img[src$="nature-lewis-clark.jpg"], img[src*="elephant-trails"], img[src*="montage-1b_2"] { content:url("https://www.nps.gov/lecl/learn/nature/images/montage-1b_2.jpg"); }
img[src$="chart-cumulative.jpg"], img[src*="cumulative-area-burnt-by-wildfires-last-year.svg?time=2026&country=~Europe"] { content:url("https://ourworldindata.org/grapher/cumulative-area-burnt-by-wildfires-last-year.png?time=2026&country=~Europe%20%28excluding%20Russia%29"); }
img[src$="chart-comparison.jpg"], img[src*="cumulative-area-burnt-by-wildfires-last-year.svg?time=2026&country=FRA"] { content:url("https://ourworldindata.org/grapher/cumulative-area-burnt-by-wildfires-last-year.png?time=2026&country=FRA~ESP~DEU~PRT~GBR~ITA"); }
@media (max-width:760px) {
  .archive-intro, .course-grid, .issue-shell { grid-template-columns:1fr; }
  .site-header__bar, .section-heading, .site-footer { align-items:flex-start; flex-direction:column; }
  .site-header__identity { text-align:left; }
  .issue-card { grid-template-columns:82px minmax(0,1fr); }
  .issue-card__arrow { display:none; }
  .toc { position:static; columns:2; }
  .toc h2 { column-span:all; }
  .need-to-know { grid-template-columns:1fr; }
}
@media (max-width:480px) {
  .toc { columns:1; }
  .issue-card { grid-template-columns:1fr; }
  .issue-card__week { padding:0 0 8px; border-right:0; border-bottom:1px solid var(--line); }
  .issue-card__week strong { display:inline; margin-left:5px; font-size:1.1rem; }
}
@media print {
  body { background:white; }
  .site-shell { box-shadow:none; }
  .site-header__bar, .toc, .back-to-top, .site-footer { display:none; }
  .issue-shell { display:block; padding:30px; }
  .issue-section { break-inside:avoid; }
  a { color:black; }
}
