/* Full-width day banners. Keep the programme body in its existing content column. */
.abbpf.abbpf-date-bars .af-day,
.abbpf.abbpf-date-bars .af-day[open],
.abbpf.abbpf-date-bars section.af-day {
    margin-bottom:var(--af-day-gap,0px);
}
.abbpf.abbpf-date-bars .af-day.af-day-last {margin-bottom:0}
.abbpf.abbpf-date-bars .af-schedule>.af-day:first-of-type>.af-day-heading {
    border-top:var(--af-day-top-divider-height,3px) solid var(--af-day-top-divider-color,#080808);
}
.abbpf.abbpf-date-bars .af-day[open]+.af-day>.af-day-heading,
.abbpf.abbpf-date-bars section.af-day+.af-day>.af-day-heading {
    box-shadow:inset 0 var(--af-day-top-divider-height,3px) 0 var(--af-day-top-divider-color,#080808);
}
/* Occupy the existing bottom padding, outside the collapsible film content. */
.abbpf.abbpf-date-bars .af-day-tail {
    --af-day-tail-height:var(--af-padding);
    display:block;
    height:var(--af-day-tail-height);
    margin:0 0 calc(-1 * var(--af-day-tail-height));
    padding:0;
    border:0;
    background:var(--af-accent);
    pointer-events:none;
}
.abbpf.abbpf-date-bars .af-day-heading {
    justify-content:var(--af-date-heading-justify,flex-start);
    padding:var(--af-day-bar-padding,8px) 48px var(--af-day-bar-padding,8px) 22px;
    isolation:isolate;
}
.abbpf.abbpf-date-bars .af-day-heading h2 {
    display:flex;
    justify-content:var(--af-date-heading-justify,flex-start);
    width:100%;
    margin:0;
}
.abbpf.abbpf-date-bars summary.af-day-heading:focus-visible {
    outline:3px solid currentColor;
    outline-offset:-5px;
}
/* Native sticky can continue behind the incoming bar. The negative margin cancels
   this extra content height, so dates, anchors and all-closed spacing stay put. */
.abbpf.abbpf-sticky-overlap .af-day[open]:not(.af-day-last),
.abbpf.abbpf-sticky-overlap section.af-day:not(.af-day-last) {
    margin-bottom:calc(-1 * var(--af-day-overlap-height,0px));
}
.abbpf.abbpf-sticky-overlap .af-day[open]:not(.af-day-last)>.af-day-events,
.abbpf.abbpf-sticky-overlap section.af-day:not(.af-day-last)>.af-day-events {
    padding-bottom:calc(var(--af-day-overlap-height,0px) + var(--af-day-gap,0px));
}
.abbpf.abbpf-date-bars .af-day-chevron {
    position:absolute;
    right:22px;
    top:50%;
    margin:0;
    transform:translateY(-70%) rotate(45deg);
}
.abbpf.abbpf-date-bars .af-day[open]>.af-day-heading .af-day-chevron {
    margin:0;
    transform:translateY(-25%) rotate(225deg);
}
.abbpf.abbpf-date-bars:not(.af-day-separator-none) .af-day:not(.af-day-last)>.af-day-heading,
.abbpf.abbpf-date-bars:not(.af-day-separator-none) .af-day.af-day-last>.af-day-heading,
.abbpf.abbpf-date-bars:not(.af-day-separator-none) .af-day[open]>.af-day-heading,
.abbpf.abbpf-date-bars:not(.af-day-separator-none) section.af-day>.af-day-heading {
    padding-bottom:calc(var(--af-day-bar-padding,8px) + var(--af-day-separator-height,16px));
}
.abbpf.abbpf-date-bars:not(.af-day-separator-none) .af-day:not(.af-day-last)>.af-day-heading::after,
.abbpf.abbpf-date-bars:not(.af-day-separator-none) .af-day.af-day-last>.af-day-heading::after,
.abbpf.abbpf-date-bars:not(.af-day-separator-none) .af-day[open]>.af-day-heading::after,
.abbpf.abbpf-date-bars:not(.af-day-separator-none) section.af-day>.af-day-heading::after {
    content:"";
    display:block;
    position:absolute;
    pointer-events:none;
    left:0;
    right:0;
    bottom:0;
    height:var(--af-day-separator-height,16px);
}
.abbpf.af-day-separator-zigzag .af-day-heading::after {
    background-color:var(--af-day-separator-color,#080808);
    -webkit-mask:var(--af-day-zigzag) left center / var(--af-day-separator-width,44px) var(--af-day-separator-height,16px) repeat-x;
    mask:var(--af-day-zigzag) left center / var(--af-day-separator-width,44px) var(--af-day-separator-height,16px) repeat-x;
}
/* Open curtains and the final closed day end at the stroke, with transparency below. */
.abbpf.abbpf-date-bars.af-day-separator-zigzag .af-day[open]>.af-day-heading,
.abbpf.abbpf-date-bars.af-day-separator-zigzag .af-day.af-day-last>.af-day-heading,
.abbpf.abbpf-date-bars.af-day-separator-zigzag section.af-day>.af-day-heading {
    background:linear-gradient(var(--af-accent),var(--af-accent)) left top / 100% calc(100% - var(--af-day-separator-height,16px)) no-repeat;
}
.abbpf.abbpf-date-bars.af-day-separator-zigzag .af-day[open]>.af-day-heading::before,
.abbpf.abbpf-date-bars.af-day-separator-zigzag .af-day.af-day-last>.af-day-heading::before,
.abbpf.abbpf-date-bars.af-day-separator-zigzag section.af-day>.af-day-heading::before {
    content:"";
    position:absolute;
    pointer-events:none;
    left:0;
    right:0;
    bottom:0;
    height:calc(var(--af-day-separator-height,16px) + 1px);
    background-color:var(--af-accent);
    /* One opaque pixel overlaps the flat red background above the cut. */
    -webkit-mask:var(--af-day-zigzag-fill) left center / var(--af-day-separator-width,44px) calc(var(--af-day-separator-height,16px) + 1px) repeat-x;
    mask:var(--af-day-zigzag-fill) left center / var(--af-day-separator-width,44px) calc(var(--af-day-separator-height,16px) + 1px) repeat-x;
}
/* The final closed curtain joins the red closing strip; open film content stays visible. */
.abbpf.abbpf-date-bars.af-day-separator-zigzag details.af-day.af-day-last:not([open])>.af-day-heading {
    background:var(--af-accent);
}
.abbpf.af-day-separator-dots .af-day-heading::after {
    background:radial-gradient(circle,var(--af-day-separator-color,#080808) 0 var(--af-day-separator-thickness,3px),transparent calc(var(--af-day-separator-thickness,3px) + .5px)) left center / var(--af-day-separator-width,44px) 100% repeat-x;
}
.abbpf.af-day-separator-line .af-day-heading::after {
    background:linear-gradient(var(--af-day-separator-color,#080808),var(--af-day-separator-color,#080808)) center / 100% var(--af-day-separator-thickness,3px) no-repeat;
}
.abbpf .af-date-accessible {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    clip-path:inset(50%);
    white-space:nowrap;
    border:0;
}
.abbpf .af-date {
    --af-date-current-size:var(--af-date-size,54px);
    display:inline-flex;
    flex:none;
    justify-content:center;
    align-items:center;
    max-width:100%;
    color:var(--af-date-ink,inherit);
    background:var(--af-date-background,transparent);
    font-family:var(--af-heading-font);
    font-weight:var(--af-heading-weight);
    font-style:normal;
    text-align:center;
    line-height:1;
    vertical-align:middle;
}
.abbpf .af-date-box,.abbpf .af-date-circle {
    padding:var(--af-date-padding,6px) calc(var(--af-date-padding,6px) + 6px);
    border:var(--af-date-border,2px) solid currentColor;
}
.abbpf .af-date-box {border-radius:var(--af-date-radius,0px)}
.abbpf .af-date-circle {
    border-radius:50%;
    aspect-ratio:1;
    min-width:calc(var(--af-date-current-size) * 1.85 + var(--af-date-padding,6px) * 2);
    min-height:calc(var(--af-date-current-size) * 1.85 + var(--af-date-padding,6px) * 2);
}
.abbpf .af-date-visual {
    display:grid;
    grid-template-columns:max-content max-content;
    grid-template-areas:"number meta";
    align-items:center;
    justify-content:center;
    gap:4px 9px;
}
.abbpf .af-date-has-weekday .af-date-visual {grid-template-areas:"weekday weekday" "number meta"}
.abbpf .af-date-order-month_first .af-date-visual {grid-template-areas:"meta number"}
.abbpf .af-date-order-month_first.af-date-has-weekday .af-date-visual {grid-template-areas:"weekday weekday" "meta number"}
.abbpf .af-date-weekday {
    grid-area:weekday;
    font-family:var(--af-body-font);
    font-weight:600;
    font-size:clamp(10px,calc(var(--af-date-current-size) * .22),18px);
    line-height:1.2;
}
.abbpf .af-date-number {grid-area:number;font-size:var(--af-date-current-size);line-height:.96}
.abbpf .af-date-meta {grid-area:meta;display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.abbpf .af-date-order-month_first .af-date-meta {align-items:flex-end}
.abbpf .af-date-month {font-size:clamp(13px,calc(var(--af-date-current-size) * .36),32px);line-height:1.1}
.abbpf .af-date-year {font-family:var(--af-body-font);font-weight:600;font-size:clamp(10px,calc(var(--af-date-current-size) * .25),22px);line-height:1.1}
.abbpf .af-date-divider {margin-right:3px}
.abbpf .af-date-order-month_first .af-date-divider {margin-left:3px;margin-right:0}
.abbpf .af-date-format-long .af-date-month {font-size:clamp(12px,calc(var(--af-date-current-size) * .26),22px)}
.abbpf .af-date-text {line-height:1.2}
.abbpf .af-date-heading-extended {
    display:block;
    color:inherit;
    background:transparent;
    font-size:inherit;
    line-height:1.2;
    text-align:var(--af-date-heading-align,left);
    white-space:normal;
}
.abbpf .af-calendar-nav {
    justify-content:var(--af-date-justify,center);
    gap:12px;
    margin-bottom:28px;
    align-items:stretch;
}
.abbpf .af-calendar-nav a {display:flex;text-decoration:none;justify-content:center;align-items:center;border-radius:var(--af-date-radius,0px)}
.abbpf .af-calendar-nav a:focus-visible {outline:2px solid currentColor;outline-offset:5px}
.abbpf .af-calendar-nav a .af-date {transition:background-color .15s,color .15s,border-color .15s}
.abbpf .af-calendar-nav a:hover .af-date,
.abbpf .af-calendar-nav a:focus-visible .af-date {
    background:var(--af-date-hover-background,var(--af-accent));
    color:var(--af-date-hover-ink,var(--af-on-accent));
    border-color:var(--af-date-hover-border,var(--af-accent));
}
.abbpf .af-date-context-nav {--af-date-current-size:var(--af-date-nav-size,34px);height:100%}
.abbpf .af-date-context-nav.af-date-text {font-family:var(--af-body-font);text-decoration:underline;text-underline-offset:5px}
.abbpf.abbpf-days-full-bleed .af-day-heading,
.abbpf.abbpf-days-full-bleed .af-day-tail {
    --af-day-bleed-fallback:var(--af-padding);
    width:calc(100% + var(--af-day-bleed-left,var(--af-day-bleed-fallback)) + var(--af-day-bleed-right,var(--af-day-bleed-fallback)));
    max-width:none;
    margin-left:calc(-1 * var(--af-day-bleed-left,var(--af-day-bleed-fallback)));
    margin-right:calc(-1 * var(--af-day-bleed-right,var(--af-day-bleed-fallback)));
}
@container(max-width:760px) {
    .abbpf.abbpf-days-full-bleed .af-day-heading,
    .abbpf.abbpf-days-full-bleed .af-day-tail {
        --af-day-bleed-fallback:var(--af-mobile-inset);
    }
    .abbpf.abbpf-date-bars .af-day-tail {--af-day-tail-height:var(--af-mobile-inset)}
    .abbpf.abbpf-date-bars .af-day-heading {padding-left:18px;padding-right:44px}
    .abbpf.abbpf-date-bars .af-day-chevron {right:17px}
    .abbpf .af-calendar-nav {gap:10px;margin-bottom:24px}
    .abbpf .af-date-context-heading {--af-date-current-size:min(var(--af-date-size,54px),64px)}
    .abbpf .af-date-context-nav {--af-date-current-size:min(var(--af-date-nav-size,34px),42px)}
}
@media(prefers-reduced-motion:reduce) {
    .abbpf .af-calendar-nav a .af-date {transition:none}
}
@media print {
    .abbpf.abbpf-date-bars .af-day>.af-day-heading {box-shadow:none!important}
    .abbpf.abbpf-date-bars .af-day-tail {display:none}
    .abbpf.abbpf-sticky-overlap .af-day[open]:not(.af-day-last),
    .abbpf.abbpf-sticky-overlap section.af-day:not(.af-day-last) {margin-bottom:var(--af-day-gap,0px)}
    .abbpf.abbpf-sticky-overlap .af-day[open]:not(.af-day-last)>.af-day-events,
    .abbpf.abbpf-sticky-overlap section.af-day:not(.af-day-last)>.af-day-events {padding-bottom:0}
    .abbpf.abbpf-days-full-bleed .af-day-heading {
        width:auto;
        max-width:100%;
        margin-left:0;
        margin-right:0;
    }
    .abbpf.abbpf-date-bars .af-day-heading {padding-bottom:var(--af-day-bar-padding,8px)!important}
    .abbpf.abbpf-date-bars .af-day-heading::before,
    .abbpf.abbpf-date-bars .af-day-heading::after {display:none!important}
    .abbpf.abbpf-date-bars.af-day-separator-zigzag details.af-day.af-day-last:not([open])>.af-day-heading,
    .abbpf.abbpf-date-bars.af-day-separator-zigzag .af-day[open]>.af-day-heading,
    .abbpf.abbpf-date-bars.af-day-separator-zigzag .af-day.af-day-last>.af-day-heading,
    .abbpf.abbpf-date-bars.af-day-separator-zigzag section.af-day>.af-day-heading {background:transparent}
}
