/* AIBS training calendar: elegant, corporate look.
   Loaded only by calendar.html, after style.min.css. To go back to the old look, remove its <link> from calendar.html. */
.cal27{
  --ink:#0C2A5E;--paper:#fff;--wash:#F5F7FB;--rule:#D6DEEB;--gold:#B08A2E;--mut:#4A5F82;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  background:var(--paper);background-image:none;padding:84px 0 96px;color:var(--ink)}
.cal27 .bl{display:none}
.cal27 .wrap{max-width:1120px}

/* heading block */
.c27top{align-items:flex-end;gap:40px;padding-bottom:34px;border-bottom:1px solid var(--rule);position:relative}
.c27top::after{content:"";position:absolute;left:0;bottom:-1px;width:84px;height:3px;background:var(--gold)}
.c27k{display:none}
.cal27 h2{font:600 clamp(36px,4.6vw,58px)/1.06 var(--serif);letter-spacing:-.015em;color:var(--ink);margin:0 0 16px;max-width:14em}
.cal27 h2 .yr{color:inherit;-webkit-text-stroke:0;font-size:1em;margin-right:.25em}
.c27sub{font-size:19px;line-height:1.55;color:var(--mut);max-width:34em;margin:0 0 26px}

/* buttons */
.cal27 .btn{border:1px solid var(--ink);background:var(--ink);color:#fff;box-shadow:none;border-radius:3px;padding:12px 24px;font-weight:600;letter-spacing:.01em;transition:background .2s,color .2s}
.cal27 .btn:hover{transform:none;box-shadow:none;filter:none;background:#123a7d}
.cal27 .btn.line{background:transparent;color:var(--ink)}
.cal27 .btn.line:hover{background:var(--wash)}

/* key figures: a ruled list instead of stickers */
.stick{display:grid;grid-template-columns:1fr;gap:0;max-width:260px;width:100%;padding:0;border-left:1px solid var(--rule);padding-left:28px;justify-content:stretch}
.sk,.sk.s1,.sk.s2,.sk.s3{width:auto;height:auto;border:0;border-radius:0;box-shadow:none;background:none;transform:none;animation:none;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:14px;text-align:left;padding:12px 0;border-bottom:1px solid var(--rule)}
.sk:last-child{border-bottom:0}
.sk b{font:600 38px/1 var(--serif);min-width:1.7em;color:var(--ink)}
.sk.s3 b{font-size:26px;min-width:0;letter-spacing:.02em}
.sk span{font-weight:400;font-size:16px;color:var(--mut)}

/* month selector */
.c27h{margin:52px 0 20px;font:600 28px var(--serif);letter-spacing:-.005em;gap:16px}
.c27h small{font:400 15px "Source Sans 3",sans-serif;color:var(--mut)}
.mgrid{grid-template-columns:repeat(4,1fr);gap:16px}
.mcard{border:1px solid var(--rule);border-top:3px solid var(--ink);border-radius:2px;background:var(--paper);box-shadow:none;color:var(--ink);transition:border-color .2s,background .2s,box-shadow .2s}
.mcard:hover{transform:none;box-shadow:0 8px 22px rgba(12,42,94,.10);border-color:#9FB1CF;border-top-color:var(--gold)}
.mhead{background:none;color:var(--ink);border-bottom:1px solid var(--rule);padding:14px 18px 12px;font:600 21px var(--serif)}
.holes,.dots{display:none}
.mbody{gap:6px;padding:14px 18px 18px}
.mnum{width:auto;height:auto;border-radius:0;background:none;color:inherit;display:flex;font:600 36px/1 var(--serif);align-items:baseline}
.mnum small{font:400 15px "Source Sans 3",sans-serif;color:var(--mut)}
.mst{align-self:flex-start;transform:none;border:0;border-radius:0;padding:0 0 0 14px;position:relative;font:600 13px "Source Sans 3",sans-serif;letter-spacing:.02em;text-transform:none;color:var(--ink)}
.mst::before{content:"";position:absolute;left:0;top:.42em;width:7px;height:7px;border-radius:50%;background:var(--gold)}
.mc{font-size:14px;line-height:1.45;color:var(--mut)}
.mcard[aria-pressed=true]{background:var(--ink);color:#fff;transform:none;box-shadow:none;border-color:var(--ink);border-top-color:var(--gold)}
.mcard[aria-pressed=true] .mhead{color:#fff;border-bottom-color:rgba(255,255,255,.22)}
.mcard[aria-pressed=true] .mnum small,.mcard[aria-pressed=true] .mc{color:#C9D6EC}
.mcard[aria-pressed=true] .mst{color:#fff}

/* filters */
.c27filters{margin:40px 0 8px;padding:18px 22px;background:var(--wash);border:1px solid var(--rule);border-radius:2px;box-shadow:none}
.c27filters label{font-weight:600;color:var(--ink)}
.c27filters select{border:1px solid #B9C6DB;border-radius:3px;background:#fff;font-weight:400;color:var(--ink)}
.c27topics{gap:8px}
.c27topics button{border:1px solid #B9C6DB;background:#fff;color:var(--ink);border-radius:999px;font:400 14.5px "Source Sans 3",sans-serif;padding:6px 15px;transition:background .15s,color .15s,border-color .15s}
.c27topics button:hover{transform:none;border-color:var(--ink)}
.c27topics button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.c27count{font:400 16px "Source Sans 3",sans-serif;color:var(--mut);margin:16px 0 0}

/* month groups */
.mgroup{margin-top:56px}
.mgroup h3{align-items:baseline;gap:14px;padding-bottom:14px;margin:0 0 22px;border-bottom:1px solid var(--rule);position:relative}
.mgroup h3::after{content:"";position:absolute;left:0;bottom:-1px;width:64px;height:3px;background:var(--gold)}
.mmon{background:none;color:var(--ink);border:0;border-radius:0;box-shadow:none;padding:0;font:600 clamp(32px,3.8vw,44px)/1 var(--serif);letter-spacing:-.012em}
.myr{color:var(--mut);-webkit-text-stroke:0;font:400 clamp(22px,2.6vw,28px) var(--serif)}
.mchip{margin-left:auto;border:0;border-radius:0;background:none;padding:0;font:400 15px "Source Sans 3",sans-serif;letter-spacing:0;text-transform:none;color:var(--mut)}

/* programme cards */
.pgrid{gap:20px}
.pc27{grid-template-columns:150px 1fr;border:1px solid var(--rule);border-radius:2px;background:var(--paper);box-shadow:none;transition:border-color .2s,box-shadow .2s}
.pc27:hover{transform:none;box-shadow:0 10px 26px rgba(12,42,94,.10);border-color:#9FB1CF}
.cityb{background:var(--wash);color:var(--ink);border-right:1px solid var(--rule);padding:18px 16px;gap:6px;justify-content:flex-start}
.cityb b{font:600 22px/1.12 var(--serif);letter-spacing:0}
.cityb span{font:400 14px "Source Sans 3",sans-serif;color:var(--mut);opacity:1}
.pbody{padding:18px 20px;gap:12px}
.pbody h4{font:600 19px/1.28 var(--serif);letter-spacing:0;color:var(--ink)}
.pt{gap:6px}
.tg{background:var(--wash);color:var(--mut);border:1px solid var(--rule);border-radius:2px;font:400 13px "Source Sans 3",sans-serif;padding:2px 9px}
.tg.ai{background:var(--ink);color:#fff;border-color:var(--ink)}
.pa{gap:20px}
.pa .btn{padding:8px 20px;font-size:15px;box-shadow:none}
.pa .link{color:var(--ink);font:600 15.5px "Source Sans 3",sans-serif;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:4px}
.pa .link:hover{text-decoration-color:var(--ink)}
.c27empty{border:1px solid var(--rule);border-radius:2px;background:var(--wash)}
.c27note{color:var(--mut)}

/* keyboard focus stays obvious */
.cal27 button:focus-visible,.cal27 a:focus-visible,.cal27 select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

@media (max-width:1000px){.mgrid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:820px){
  .c27top{align-items:flex-start}
  .stick{border-left:0;padding-left:0;max-width:none;grid-template-columns:repeat(3,auto);gap:0 28px;border-top:1px solid var(--rule);padding-top:6px}
  .sk,.sk.s1,.sk.s2,.sk.s3{flex-direction:column;gap:2px;border-bottom:0;padding:12px 0}
  .sk b{min-width:0}
  .mchip{margin-left:0;width:100%}
}
@media (max-width:640px){
  .cal27{padding:56px 0 64px}
  .mgrid{grid-template-columns:repeat(2,1fr);gap:12px}
  .mhead{font-size:19px;padding:12px 14px 10px}.mbody{padding:12px 14px 14px}
  .mnum{font-size:30px}
  .pc27{grid-template-columns:1fr}
  .cityb{flex-direction:row;align-items:baseline;gap:10px;border-right:0;border-bottom:1px solid var(--rule);padding:12px 16px}
}
@media (prefers-reduced-motion:reduce){.mcard,.pc27,.cal27 .btn{transition:none}}
@media print{.cal27{background:#fff}.pc27{box-shadow:none}}
