/* Opt-in shared ZKS primitives. Values follow the homepage programme finder,
   Help Centre and newsletter; existing reference pages are not rethemed. */
.venue-page,.zks-components {
  --zks-red:#c50000; --zks-red-dark:#9f0000; --zks-black:#060c22;
  --zks-heading:#0e1b4d; --zks-text:#2f3138; --zks-muted:#545d70;
  --zks-background:#f6f7fd; --zks-surface:#fff; --zks-border:#e0e5f0;
  --content-width:1180px; --section-spacing:64px; --card-radius:18px;
  --button-radius:50px; --zks-shadow:0 4px 18px rgba(14,27,77,.035);
}
#main .zks-components { max-width:var(--content-width); padding:36px 24px 72px; font-size:16px; line-height:1.75; color:var(--zks-text); }
#main .zks-components h1,#main .zks-components h2,#main .zks-components h3 { font-family:Raleway,sans-serif; font-weight:800; color:var(--zks-heading); }
#main .zks-components h1 { font-size:clamp(36px,4.5vw,60px); line-height:1.08; letter-spacing:-1px; margin:0 0 24px; }
#main .zks-components h2 { font-size:clamp(28px,3vw,38px); line-height:1.2; letter-spacing:-.7px; margin:0 0 22px; }
#main .zks-components h3 { font-size:22px; line-height:1.3; margin:0 0 14px; }
#main .zks-components p { max-width:72ch; margin:0 0 20px; }
#main .zks-components section { margin:0 0 var(--section-spacing); }
#main .zks-components a:not(.zks-button):not(.programme-tile) { color:#ac1538; text-underline-offset:3px; }
#main .zks-components .zks-eyebrow { font-size:12px; font-weight:700; line-height:1.5; letter-spacing:1.8px; color:#b41937; margin:0 0 14px; }
#main .zks-components .zks-panel { border:1px solid var(--zks-border); border-radius:var(--card-radius); padding:clamp(24px,4vw,40px); background:var(--zks-surface); box-shadow:var(--zks-shadow); }
.zks-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:24px 0; }
#main .zks-components a.zks-button { display:inline-flex; justify-content:center; align-items:center; gap:16px; min-height:48px; padding:12px 24px; border:2px solid var(--zks-heading); border-radius:var(--button-radius); background:#fff; color:var(--zks-heading); font-size:14px; font-weight:700; line-height:1.5; text-decoration:none; text-align:center; }
#main .zks-components a.zks-button-primary { background:var(--zks-red); border-color:var(--zks-red); color:#fff; }
#main .zks-components a.zks-button:hover { background:var(--zks-heading); border-color:var(--zks-heading); color:#fff; }
#main .zks-components a.zks-button-primary:hover { background:var(--zks-red-dark); border-color:var(--zks-red-dark); }
#main .zks-components :is(a,button,summary):focus-visible { outline:3px solid var(--zks-heading); outline-offset:4px; }
#main .zks-components .programme-children-grid { margin-top:28px; }
#main .zks-components .programme-options-grid { margin-top:20px; }
#main .zks-components .programme-tile p { font-size:14px; line-height:1.7; }
#main .zks-components .programme-tile h3 { font-size:22px; }
#main .zks-components .programme-supported h3 { color:#fff; }
#main .zks-components .home-trial h2,#main .zks-components .home-trial h3 { color:#fff; }
#main .zks-components .home-trial a:not(.zks-button) { color:#fff; }
#main .zks-components .home-trial :is(a,button):focus-visible { outline-color:#fff; }
@media(max-width:767px) {
 .zks-components { --section-spacing:44px; }
 #main .zks-components { padding:24px 18px 40px; }
 #main .zks-components .programme-children-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:575px) {
 .zks-actions { align-items:stretch; flex-direction:column; }
 .zks-actions .zks-button { width:100%; }
 #main .zks-components .programme-children-grid { grid-template-columns:1fr; }
}
/* Preserve the hub's established dark hero and card hierarchy. */
#main .zks-components .aylesbury-hero h1 { color:#fff; }
#main .zks-components .aylesbury-hero a:not(.zks-button) { color:#fff; }
#main .zks-components .aylesbury-hero a:focus-visible { outline-color:#fff; }
#main .zks-components .aylesbury-week p { color:#d8dff0; }
#main .zks-components .aylesbury-week .aylesbury-seven { color:#fff; }
#main .zks-components .venue-trial > .zks-button { margin-bottom:20px; }
