/* Shared look for the public page and the LOC planner, after Apple's Human
   Interface Guidelines: the system typeface, hierarchy from size and weight,
   related content grouped in cards, and a translucent bar for controls. */
:root{
  --bg:#f5f5f7; --card:#fff; --text:#1d1d1f; --text-2:#6e6e73; --text-3:#86868b;
  --line:#d2d2d7; --line-soft:#e8e8ed; --fill:rgba(118,118,128,.12);
  --accent:#0071e3; --link:#0066cc; --bar:rgba(245,245,247,.8);
  --ok:#1d7a34; --ok-bg:#e1f3e5; --warn:#9a5700; --warn-bg:#fdf0d9; --bad:#c9001a; --bad-bg:#fde6e8;
  --radius:18px; --gutter:22px;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#000; --card:#1c1c1e; --text:#f5f5f7; --text-2:#a1a1a6; --text-3:#86868b;
    --line:#424245; --line-soft:#2c2c2e; --fill:rgba(118,118,128,.24);
    --accent:#0a84ff; --link:#2997ff; --bar:rgba(22,22,23,.8);
    --ok:#30d158; --ok-bg:#12331c; --warn:#ffb340; --warn-bg:#3a2a0a; --bad:#ff6961; --bad-bg:#3a1517;
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:17px;line-height:1.47;letter-spacing:-.022em;-webkit-font-smoothing:antialiased}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px;border-radius:6px}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
p{margin:0}
.wrap{max-width:var(--measure,860px);margin-inline:auto;padding-inline:var(--gutter)}

/* bar: controls sit on a material above the content */
.bar{position:sticky;top:0;z-index:10;background:var(--bar);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line-soft)}
.bar .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px 24px;min-height:52px;padding-block:8px}
.bar .name{margin-right:auto;font-size:19px;font-weight:600;letter-spacing:-.015em;color:var(--text)}
.bar .name:hover{text-decoration:none}
.bar .link{font-size:14px;color:var(--text-2)}
.bar .link:hover{color:var(--text);text-decoration:none}

/* type */
.hero{padding-block:clamp(40px,8vw,76px) 34px}
.eyebrow{font-size:19px;font-weight:600;color:var(--text-2);letter-spacing:-.015em}
h1{margin:4px 0 0;font-size:clamp(40px,8vw,64px);line-height:1.06;font-weight:700;letter-spacing:-.028em;text-wrap:balance}
.lead{margin-top:14px;font-size:clamp(21px,3.2vw,28px);line-height:1.2;color:var(--text-2);letter-spacing:-.012em}
h2{margin:0 0 8px;font-size:clamp(28px,4.4vw,36px);line-height:1.12;font-weight:700;letter-spacing:-.022em}
h3{margin:0 0 4px;font-size:13px;line-height:1.3;font-weight:600;color:var(--text-2);letter-spacing:-.005em}
section{padding-top:54px;scroll-margin-top:64px}
.sub{margin-bottom:22px;color:var(--text-2);max-width:60ch}
h2 + .card{margin-top:20px}
.note{font-size:15px;color:var(--text-2)}
.foot{padding-block:54px 44px;font-size:13px;color:var(--text-3)}

/* cards and grouped lists */
.card{background:var(--card);border-radius:var(--radius);overflow:hidden}
.card.pad{padding:28px}
.card > .note{padding:20px var(--gutter)}
.facts{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.15fr) minmax(0,1.5fr)}
.facts > div{padding:20px var(--gutter)}
.facts > div + div{border-left:1px solid var(--line-soft)}
.row{position:relative;display:grid;grid-template-columns:var(--cols);gap:2px 22px;align-items:start;padding:15px var(--gutter)}
.row > *{min-width:0;overflow-wrap:anywhere}
.row + .row::before{content:"";position:absolute;top:0;left:var(--gutter);right:0;border-top:1px solid var(--line-soft)}
.time{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.time small{display:block;font-size:13px;font-weight:400;color:var(--text-3)}
.row.break{background:color-mix(in srgb,var(--bg) 55%,var(--card))}
.row.break .time,.row.break .title{font-weight:400;color:var(--text-2)}

/* public programme */
.programme{--cols:9rem minmax(0,1fr) auto}
.title{font-weight:600}
.by{font-size:15px;color:var(--text-2)}
.chair{padding-top:3px;font-size:13px;color:var(--text-3);text-align:right;white-space:nowrap}

/* actions */
.pill{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:980px;padding:.5em 1.15em;font-size:14px;cursor:pointer}
.pill:hover{text-decoration:none;filter:brightness(1.08)}
.pill.big{font-size:17px;padding:.72em 1.5em}
.split{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 40px;align-items:center}
.split p + p{margin-top:.8em}
.split .action{display:grid;gap:10px;justify-items:start}

@media (max-width:640px){
  .bar .wrap{gap:6px 14px}
  .bar .name{font-size:16px}
  .facts{grid-template-columns:1fr}
  .facts > div + div{border-left:0;border-top:1px solid var(--line-soft)}
  .programme{--cols:1fr}
  .programme .time{font-size:15px;color:var(--text-2)}
  .programme .time small{display:inline;margin-left:8px}
  .chair{text-align:left;padding-top:0}
  .split{grid-template-columns:1fr}
  .card.pad{padding:22px}
}
