

/* A — plan-led: the site plan dominates, facts sit beneath it as a grid. */

/* ---- event fact strip ---- */
.facts{max-width:var(--maxw);margin:0 auto;display:grid;
  grid-template-columns:repeat(4,1fr);gap:var(--gap-md);align-items:start}
.facts .f{display:flex;gap:var(--gap-sm);align-items:flex-start}
.facts .f .k{font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  font-weight:700;color:var(--ink-56);margin:0 0 4px}
.facts .f .v{font-family:var(--f-display);font-weight:700;font-size:var(--t-body-lg);
  letter-spacing:var(--ls-display-tight);color:var(--cream);line-height:1.2}
.facts .f .s{display:block;margin-top:4px;font-size:12.5px;color:var(--ink-84)}
.facts .ico{--ico:22px}

/* ---- the site plan ---- */
.planhead{max-width:var(--maxw);margin:0 auto var(--gap-lg);
  display:flex;gap:var(--gap-md);align-items:flex-end;flex-wrap:wrap}
.planhead .lede{margin:0;max-width:42ch}
.plan{position:relative;max-width:1000px;margin:0 auto}
.planart{width:100%;height:auto;display:block}
.planart path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.planart .shore{stroke:var(--ink-hairline);stroke-width:10}
.planart .spine{stroke:var(--ink-rim);stroke-width:16}
.planart .circuit{stroke:var(--ink-rim);stroke-width:16}
.planart .cas{stroke:var(--navy);stroke-width:30}
.planart .zpath{stroke:var(--accent);stroke-width:14}

.zlab{position:absolute;transform:translate(-50%,-50%);pointer-events:none;
  display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.zlab .zn{font-family:var(--f-display);font-weight:800;font-size:var(--t-body-lg);
  letter-spacing:var(--ls-display-tight);color:var(--cream);line-height:1.1;white-space:nowrap}
.zlab .zs{font-size:var(--t-label);letter-spacing:var(--ls-label);text-transform:uppercase;
  font-weight:700;color:var(--accent)}

.pin{position:absolute;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.pin.l{transform:translate(0,-50%);align-items:flex-start;text-align:left}
.pin.r{transform:translate(-100%,-50%);align-items:flex-end;text-align:right}
.pin .well{width:34px;height:34px;border-radius:var(--r-pill);display:grid;place-items:center;
  background:var(--navy-950);color:var(--ink-94);
  box-shadow:inset 0 0 0 1.5px var(--ink-rim),var(--sh-sm)}
.pin .ico{--ico:17px}
.pin .cap{display:flex;flex-direction:column;gap:2px;line-height:1.1}
.pin .num{font-family:var(--f-mono);font-size:11px;font-weight:700;color:var(--ink-56)}
.pin .txt{font-size:var(--t-label);letter-spacing:var(--ls-tag);text-transform:uppercase;
  font-weight:700;color:var(--ink-90);white-space:nowrap}

.keylist{max-width:var(--maxw);margin:var(--gap-lg) auto 0;display:none;
  grid-template-columns:1fr 1fr;gap:var(--gap-xs) var(--gap-md)}
.keylist li{display:flex;gap:var(--gap-xs);font-size:13px;color:var(--ink-90)}
.keylist .num{font-family:var(--f-mono);font-weight:700;color:var(--ink-56)}

/* ---- fact grid beneath the plan ---- */
.fgrid{max-width:var(--maxw);margin:0 auto;display:grid;gap:var(--gap-md);
  grid-template-columns:repeat(3,1fr)}
.fgrid .card{display:flex;flex-direction:column;gap:var(--gap-sm)}
.fgrid h3{font-size:var(--t-body-lg);font-family:var(--f-display);color:var(--cream)}
.fgrid ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.fgrid li{display:flex;gap:10px;align-items:flex-start;font-size:var(--t-body);color:var(--ink-90)}
.fgrid li .ico{--ico:17px;margin-top:3px;color:var(--ink-56)}
.fgrid .icowell .ico{--ico:24px}
.fgrid .wide{grid-column:span 2}

.times{display:grid;gap:var(--gap-xs)}
.times .row{display:flex;justify-content:space-between;gap:var(--gap-sm);
  padding:10px 0;border-top:1px solid var(--ink-hairline);font-size:var(--t-body)}
.times .row .t{font-family:var(--f-mono);font-weight:700;color:var(--cream)}

@media (max-width:1000px){
  .facts{grid-template-columns:1fr 1fr}
  .fgrid{grid-template-columns:1fr 1fr}
  .fgrid .wide{grid-column:span 2}
}
@media (max-width:760px){
  .pin .txt{display:none}
  .pin.l,.pin.r{transform:translate(-50%,-50%);align-items:center;text-align:center}
  .pin .well{width:26px;height:26px}
  .pin .ico{--ico:14px}
  .zlab .zn{font-size:var(--t-body)}
  .keylist{display:grid}
}
@media (max-width:640px){
  .facts{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr}
  .fgrid .wide{grid-column:span 1}
  .keylist{grid-template-columns:1fr}
}

