/* ---------------------------------------------------------------------------
   DisAgreement Online — homepage and news archive
   Colours are taken from the old purple banner: #660066 with #FFDFAB lettering.
   --------------------------------------------------------------------------- */
:root{
  --purple:#660066;
  --purple-d:#4A004A;
  --gold:#FFDFAB;
  --bg:#0E1626;
  --panel:#17223A;
  --panel-2:#1B2740;
  --line:rgba(150,175,220,.16);
  --text:#E9EFFA;
  --muted:#8FA3C6;
  --dim:#63779B;
  --accent:#E0A32E;
  --live:#7FB63F;
  --focus:#9BC2FF;
  --r:12px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:Barlow,"Segoe UI",system-ui,-apple-system,sans-serif;
  font-size:16px;line-height:1.5;font-variant-numeric:tabular-nums}
a{color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}
.wrap{max-width:960px;margin:0 auto;padding:0 18px}

/* ---------- banner ---------- */
.banner{background:var(--purple);border-bottom:3px solid var(--purple-d)}
.banner .wrap{padding-top:26px;padding-bottom:24px}
.banner h1{
  font-family:Oswald,"Arial Narrow",sans-serif;font-weight:600;font-style:italic;
  font-size:clamp(28px,6.4vw,46px);line-height:1;margin:0;color:var(--gold);
  letter-spacing:.005em;
}
.banner p{margin:10px 0 0;color:#fff;font-weight:600;font-size:clamp(14px,2.6vw,17px);
  line-height:1.35;letter-spacing:.01em}
.banner a{text-decoration:none;display:inline-block}

/* ---------- nav ---------- */
nav{background:var(--panel);border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:20}
nav ul{display:flex;flex-wrap:wrap;gap:2px;list-style:none;margin:0;padding:0}
nav a{display:block;padding:13px 11px;text-decoration:none;color:var(--muted);
  font-family:Oswald,sans-serif;font-size:12.5px;letter-spacing:.045em;
  text-transform:uppercase;border-bottom:2px solid transparent;white-space:nowrap}
nav a:hover{color:var(--text);border-bottom-color:var(--accent);background:var(--panel-2)}

/* ---------- generic ---------- */
main{padding:30px 0 70px}
section{margin-bottom:40px}
h2{font-family:Oswald,sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.11em;font-size:14px;color:var(--accent);margin:0 0 14px}

/* ---------- follow strip ---------- */
.follow{display:flex;flex-wrap:wrap;gap:10px}
.follow a{display:inline-flex;align-items:center;gap:9px;text-decoration:none;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  padding:9px 14px;color:var(--muted);font-size:14.5px;transition:.15s}
.follow a:hover{color:var(--text);border-color:var(--muted)}
.follow img{width:22px;height:22px;display:block;border-radius:4px}

/* ---------- radio shows ---------- */
.show{background:var(--panel);border:1px solid var(--line);
  border-left:3px solid var(--accent);border-radius:0 var(--r) var(--r) 0;
  padding:20px 22px;margin-bottom:16px}
.show h3{font-family:Oswald,sans-serif;font-weight:600;font-size:22px;margin:0;
  color:var(--gold);letter-spacing:.01em}
.show .when{margin:5px 0 0;color:var(--muted);font-size:15px}
.show .when b{color:var(--text);font-weight:600}
.show .body{margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.show .lead{margin:0 0 12px;color:var(--muted);font-size:14px;
  font-family:Oswald,sans-serif;letter-spacing:.09em;text-transform:uppercase}
.show p{margin:0 0 8px}
.show p:last-child{margin-bottom:0}

/* interview cards, one or two side by side */
.guests{display:flex;flex-wrap:wrap;gap:18px}
.guest{flex:0 1 250px;min-width:0}
.guest img{width:100%;max-width:250px;height:auto;display:block;
  border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}
.guest .name{margin:9px 0 0;font-size:17px;font-weight:600;color:var(--text)}
.guest .name a{text-decoration:none;border-bottom:1px solid var(--dim)}
.guest .name a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.guest .note{margin:3px 0 0;color:var(--dim);font-size:13.5px}

.special{margin-top:10px;color:var(--muted)}
.special b{color:var(--text)}

/* ---------- prose (About) ---------- */
.prose{max-width:660px}
.prose h2{margin-top:32px}
.prose h2:first-child{margin-top:0}
.prose p{margin:0 0 13px;color:var(--muted)}
.prose a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--dim)}
.prose a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.prose em{color:var(--text);font-style:italic}
.prose address{font-style:normal;color:var(--text);margin:0 0 13px;
  padding:13px 16px;background:var(--panel);border:1px solid var(--line);
  border-left:3px solid var(--accent);border-radius:0 10px 10px 0;line-height:1.6}

/* ---------- portrait ---------- */
/* figure carries a 40px browser default margin, hence the explicit 0 on the sides */
figure.portrait{margin:20px 0 22px;padding:0;max-width:100%;width:100%}
.portrait img{width:100%;height:auto;display:block;border-radius:10px;
  border:1px solid var(--line);box-shadow:0 6px 22px rgba(0,0,0,.35)}
.portrait figcaption{margin-top:8px;font-family:Oswald,sans-serif;font-size:11px;
  letter-spacing:.11em;text-transform:uppercase;color:var(--dim)}

/* ---------- archive entries ---------- */
.arch{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:0 10px 10px 0;padding:16px 18px;margin:0 0 14px}
.arch h3{font-family:Oswald,sans-serif;font-weight:500;font-size:19px;margin:0;
  letter-spacing:.01em}
.arch h3 a{color:var(--gold);text-decoration:none;border:none}
.arch h3 a:hover{color:var(--accent)}
.arch .range{font-family:Oswald,sans-serif;font-size:12px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--dim);margin:4px 0 9px}
.arch p:last-child{margin-bottom:0}
.prose .note{color:var(--dim);font-size:13.5px;margin-top:20px}

/* ---------- news ---------- */
.news{list-style:none;margin:0;padding:0}
.news li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:0 16px;
  padding:9px 0;border-bottom:1px solid var(--line)}
.news time{font-family:Oswald,sans-serif;font-size:13.5px;color:var(--dim);
  letter-spacing:.03em;padding-top:2px}
.news .what{color:var(--muted)}
.news .what a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--dim)}
.news .what a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.more{margin:16px 0 0;font-size:14.5px}
.more a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--dim)}
.more a:hover{color:var(--text)}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:20px 0 46px;
  color:var(--dim);font-size:14px}
footer a{color:var(--muted)}
footer .wrap{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:baseline}

/* ---------- phones ---------- */
@media (max-width:620px){
  nav a{padding:11px 12px;font-size:12px}
  .show{padding:17px 16px}
  .news li{grid-template-columns:1fr;gap:2px}
  .news time{padding-top:0}
  .guests{gap:14px}
  .guest{flex:1 1 100%}
  .guest img{max-width:100%}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ---------- print ---------- */
@media print{
  body{background:#fff;color:#000}
  nav,.follow{display:none}
  .banner{background:#fff;border-bottom:2px solid #000}
  .banner h1{color:#000} .banner p{color:#000}
  .show{background:none;border-color:#999}
  .show h3{color:#000}
}
