﻿/* ---------------------------------------------------------------------------
 * LCA! Film Festival 2026 — refinement layer
 *
 * Ported into this repository under LCA2026-SITE-010 (decision D-018) from the
 * Living Experience workspace. Design language adopted by the owner.
 *
 * AUTHORITY
 *   assets/css/tokens.css owns every design value. This file consumes tokens
 *   and defines none. It must never redefine a --color-*, --font-*, --duration-*,
 *   --easing-*, --space-* or --display-* custom property.
 *
 * CASCADE CONTRACT
 *   This layer SUPPLEMENTS production CSS; it never replaces it. It is linked
 *   AFTER the page's own stylesheet so it wins only where specificity is equal
 *   or higher. `.btn` itself stays owned by assets/css/components.css.
 *
 * Namespace is `.r06-`. Every rule below is as authored in the source layer
 * except this comment block.
 * ------------------------------------------------------------------------ */

.r06-programme-stage { background:var(--color-navy); color:var(--color-paper); overflow:hidden; --focus:var(--color-yellow); transition:background-color 420ms; }
.r06-programme-stage::before { mask-image:linear-gradient(90deg,transparent,#000); opacity:.10; }
.r06-programme-scene { display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:4rem; min-height:35rem; padding-block:3rem; }
.r06-programme-copy h1 { max-width:22ch; }
.r06-programme-copy .r06-lead { margin-top:1.75rem; }
.r06-programme-date { font-size:.8rem; margin:1.25rem 0 2rem; }
.r06-programme-art { padding:0 1rem; }
.r06-programme-art .r06-caption { font-size:.65rem; opacity:.85; max-width:60ch; }
.r06-programme-stage[data-theme=opening] { background:var(--color-ink); }
.r06-programme-stage[data-theme=industry] { background:var(--color-teal); }
.r06-programme-stage[data-theme=closing] { background:var(--color-coral); color:var(--color-ink); --focus:var(--color-ink); }
.r06-poster-fan--1 { grid-template-columns:1fr; max-width:230px; margin:auto; }
.r06-poster-fan--1 .r06-poster:nth-child(1){transform:rotate(4deg); box-shadow:-22px 18px 0 var(--color-yellow);}
.r06-programme .programme-toolbar { background:var(--color-paper-warm); padding-block:2rem; }
.r06-programme .filters-label { font-family:var(--font-body); font-size:.8rem; }
.r06-programme .programme-toolbar .filter[aria-pressed=true] { background:var(--color-ink); color:var(--color-paper); }
.r06-programme-paper { background:var(--color-paper-warm); --r06-texture-opacity:.035; }
.r06-programme .day-block { padding-block:4rem; gap:3rem; }
.r06-programme .day-heading { border-top:8px solid var(--color-yellow); background:var(--color-yellow); padding:1.5rem; }
.r06-programme .day-heading .day-number { color:var(--color-ink); }
.r06-programme .day-heading .day-venue { font-size:.78rem; }
.r06-programme .day-block[data-day="2"] .day-heading { background:var(--color-aqua); border-color:var(--color-aqua); }
.r06-programme .day-block[data-day="3"] .day-heading { background:var(--color-coral); border-color:var(--color-coral); }
.r06-programme .event-screening { background:var(--color-paper); padding:1.4rem; margin-block:.9rem; border-bottom:0; box-shadow:0 4px 20px #10101006; transition:box-shadow var(--duration-hover),transform var(--duration-hover); }
.r06-programme .event-screening:focus-within,.r06-programme .event-screening:hover { box-shadow:8px 8px 0 var(--color-yellow); transform:translate(-2px,-2px); }
.r06-programme .day-block[data-day="2"] .event-screening:focus-within,.r06-programme .day-block[data-day="2"] .event-screening:hover { box-shadow:8px 8px 0 var(--color-aqua); }
.r06-programme .day-block[data-day="3"] .event-screening:focus-within,.r06-programme .day-block[data-day="3"] .event-screening:hover { box-shadow:8px 8px 0 var(--color-coral); }
.r06-programme .event-screening .event-content { grid-template-columns:minmax(0,1fr) 115px; }
.r06-programme .event-screening .event-poster img { width:115px; height:170px; }
.r06-programme .event-qa { background:var(--color-aqua); margin-inline:0!important; padding-inline:1.25rem; border:0; }
.r06-programme .event-qa .event-note { color:var(--color-ink); }
.r06-programme .event-performance { background:var(--color-navy); color:var(--color-paper); padding:1.2rem; margin-left:0!important; border:0; }
.r06-programme .event-performance .event-note { color:var(--color-paper); }
.r06-programme .event-transition { padding-inline:1rem; }
@media(max-width:1100px){.r06-programme-scene{gap:2rem}.r06-programme .day-block{gap:2rem}.r06-programme .event-screening{grid-template-columns:1fr;gap:.8rem}}
@media(max-width:800px){.r06-programme-scene{grid-template-columns:1fr;min-height:0;padding-block:3rem}.r06-programme-art{max-width:480px;width:100%;margin-inline:auto}.r06-programme .day-heading{position:static}.r06-programme .day-block{padding-block:2.5rem}.r06-programme .day-heading .day-number{font-size:3rem}.r06-programme .day-heading{padding:1.1rem}.r06-programme .event-screening .event-content{grid-template-columns:minmax(0,1fr) 85px}.r06-programme .event-screening .event-poster img{width:85px;height:130px}.r06-programme-copy h1{max-width:24ch}.r06-poster-fan{padding:1.75rem 0}}
/* Content-safe tracks preserve hierarchy when text is enlarged. */
.r06-programme .day-block > *, .r06-programme .event-content > * { min-width:0; }
.r06-programme .event-poster { width:auto; max-width:100%; }
@media(max-width:800px){
 .r06-programme .day-block{grid-template-columns:minmax(0,1fr)}
 .r06-programme .day-heading{grid-template-columns:auto minmax(0,1fr);overflow-wrap:anywhere}
 .r06-programme .event-screening .event-content{column-gap:1rem}
}
