@font-face{font-family:Arvo;src:url("/assets/arvo-latin-700-normal.woff2") format("woff2");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("/assets/barlow-condensed-latin-700-normal.woff2") format("woff2");font-style:normal;font-weight:700;font-display:swap}
/* FOF-012 launch palette: ink, paper/dry-straw, brick and cobalt only. Signal
   yellow is gone from the launch interface, and "bone" is the owner's
   shorthand for the existing paper token rather than a separate colour. */
:root{--ink:#151A18;--paper:#E7DDC0;--brick:#D55E3E;--cobalt:#2142B5;--display:Arvo,Georgia,serif;--coordinate:"Barlow Condensed","Arial Narrow",Arial,sans-serif;color:var(--paper);background:var(--ink);font-synthesis:none}
*{box-sizing:border-box}
html{background:var(--ink);scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--coordinate);font-weight:700;text-transform:uppercase}
button,input,select,textarea{font:inherit;border-radius:0}
button,a{color:inherit}
a{text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid currentColor;outline-offset:3px}
[hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;left:8px;top:8px;z-index:1000;padding:12px;background:var(--paper);color:var(--ink);transform:translateY(-160%)}
.skip-link:focus{transform:none}
.fixture-banner{min-height:24px;padding:4px 30px;background:var(--paper);color:var(--ink);font-size:13px;line-height:1.2;letter-spacing:.08em;text-align:center;border-bottom:2px solid var(--ink)}
.site-header{min-height:96px;display:grid;grid-template-columns:auto minmax(360px,1fr);align-items:center;gap:18px 56px;padding:20px 30px 18px;border-bottom:4px solid var(--brick);background:var(--ink)}
.site-header:not(.is-browse){grid-template-columns:1fr}
.site-header.is-browse{grid-template-areas:"brand controls" "dates dates" "search search"}
.is-browse .brand-block{grid-area:brand}
.is-browse .browse-controls{grid-area:controls}
.is-browse .date-nav{grid-area:dates}
.is-browse .header-search{grid-area:search}
.brand-block{display:grid;align-content:center;justify-items:start}
.wordmark{font-family:var(--display);font-size:35px;line-height:1;color:var(--brick);letter-spacing:.035em;text-decoration:none;white-space:nowrap}
.search-toggle,.quick-view{appearance:none;border:0;background:none;padding:0;color:var(--paper);text-decoration:underline;text-underline-offset:5px;cursor:pointer;letter-spacing:.055em}
.browse-controls{display:flex;align-items:center;justify-content:flex-end;gap:16px;font-size:28px;line-height:1}
.gauge-views{display:flex;align-items:center;gap:16px}
.gauge-views>span{opacity:.55}
.quick-view{position:relative;min-width:58px;min-height:44px;text-align:center;text-decoration:none}
.quick-view.is-active{color:var(--brick)}
.quick-view.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:7px;background:var(--brick)}
/* SEARCH sits at the same size as the gauge views it shares the row with, so
   the header reads as one set of controls at every breakpoint. */
.search-toggle{margin-left:24px;min-height:44px}
.search-toggle[aria-expanded=true]{color:var(--brick)}
.date-nav{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:18px;letter-spacing:.06em}
.date-step{appearance:none;min-height:44px;border:0;border-bottom:2px solid currentColor;background:none;color:var(--paper);padding:0 2px;cursor:pointer;letter-spacing:.06em}
.date-step[disabled]{opacity:.45;cursor:default;border-bottom-color:transparent}
.date-select{display:block}
.date-select select{min-height:44px;max-width:100%;border:2px solid var(--paper);background:var(--ink);color:var(--paper);padding:6px 10px;letter-spacing:.05em;cursor:pointer}
.date-nav.is-active .date-select select{border-color:var(--paper);background:var(--paper);color:var(--ink)}
.header-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px 16px;padding-top:12px;border-top:2px solid var(--brick)}
.header-search label{color:var(--brick);font-size:16px;letter-spacing:.1em}
.header-search input{min-width:0;min-height:44px;border:0;border-bottom:3px solid var(--paper);padding:6px 0;background:transparent;color:var(--paper);font-family:var(--display);font-size:clamp(20px,2.2vw,30px);text-transform:none}
.header-search button{min-height:44px;border:0;border-bottom:2px solid currentColor;background:none;color:var(--paper);padding:0 2px;cursor:pointer;font-size:16px;letter-spacing:.06em}
/* Day breaker: ink with paper text, so it reads as a dark rule between days
   while paper joins the listing rotation. It stays distinguishable without
   colour — a full-width sticky heading banded by heavy paper rules, which stay
   visible against the brick row that always follows it. */
.date-heading{position:sticky;top:0;z-index:4;min-height:68px;display:grid;grid-template-columns:264px 1fr;align-items:center;border-top:4px solid var(--paper);border-bottom:3px solid var(--paper);background:var(--ink);color:var(--paper)}
.date-heading>span{padding-left:30px;font-size:18px;letter-spacing:.07em}
.date-heading h2{margin:0;padding-left:56px;font-family:var(--display);font-size:30px;line-height:1}
.showing-list{display:block}
.showing-row{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100px;border-bottom:2px solid var(--ink);color:var(--local-fg)}
.time-field,.listing-field{position:relative}
.time-field{display:flex;align-items:center;padding:8px 30px;border-right:3px solid var(--local-fg)}
.time-field time{font-size:20px;font-variant-numeric:tabular-nums;line-height:1}
.listing-field{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title title" "meta action";align-content:center;align-items:end;column-gap:24px;row-gap:8px;padding:8px 30px 8px 48px}
.row-title{grid-area:title;margin:0;font-family:var(--display);font-size:30px;line-height:1.03;letter-spacing:-.015em;text-wrap:balance}
.row-destination{text-decoration:none}
.row-title.is-multi{font-size:24px;line-height:1.08}
.row-title.is-multi .row-destination{display:flex;gap:14px;align-items:stretch}
.programme-bracket{width:12px;min-width:12px;border-left:3px solid currentColor;border-top:3px solid currentColor;border-bottom:3px solid currentColor}
.film-stack{display:grid;gap:4px}
.film-line{display:grid;grid-template-columns:24px 1fr;gap:8px}
.film-line>span{font-family:var(--coordinate);font-size:13px;letter-spacing:.035em}
.row-meta{grid-area:meta;min-width:0;margin:0;font-size:18px;line-height:1.15;letter-spacing:.025em;white-space:nowrap}
.row-cinema{font-size:inherit;line-height:inherit;letter-spacing:inherit}
.row-action{grid-area:action;justify-self:end;display:inline-flex;gap:7px;align-items:center;min-height:44px;font-size:18px;line-height:1.1;letter-spacing:.025em;text-align:right;white-space:nowrap}
.row-action.is-state{text-decoration:none}
.is-cancelled .time-field time,.is-cancelled .row-title{text-decoration:line-through;text-decoration-thickness:3px}
/* Listing cycle: each visible row is one treatment whose time and title share a
   single colour, rotating brick, cobalt then paper in chronological order. Ink
   left the rotation when it became the day breaker. Each row takes the
   foreground that clears WCAG AA on it — paper on brick measures 2.82:1, so
   brick rows carry ink text. Owner-selected, 3 August 2026. */
.showing-row.slot-0{--local-fg:var(--ink);background:var(--brick)}
.showing-row.slot-1{--local-fg:var(--paper);background:var(--cobalt)}
.showing-row.slot-2{--local-fg:var(--ink);background:var(--paper)}
.showing-row:hover .listing-field,.showing-row:focus-within .listing-field{box-shadow:inset 0 0 0 2px var(--local-fg)}
.empty-state{min-height:360px;padding:64px 30px;background:var(--paper);color:var(--ink)}
.empty-state h2{max-width:900px;margin:0 0 16px;font-family:var(--display);font-size:clamp(40px,6vw,92px);line-height:.95}
.empty-state p{max-width:660px;font-size:20px;text-transform:none}
.empty-state button{min-height:44px;border:0;border-bottom:2px solid currentColor;background:none;padding:12px 0;cursor:pointer}
.site-footer{min-height:112px;display:flex;justify-content:space-between;gap:32px;align-items:start;padding:28px 30px;border-top:4px solid var(--brick);background:var(--ink);font-size:16px;letter-spacing:.05em}
.site-footer strong{font-family:var(--display);font-size:22px;color:var(--brick)}.primary-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px 28px}.primary-nav a[aria-current=page]{color:var(--brick);text-decoration-thickness:4px}
.page-lead{min-height:420px;display:grid;align-content:center;gap:16px;padding:64px 30px;border-bottom:4px solid var(--brick);background:var(--ink)}
.page-lead>span{color:var(--brick);font-size:18px;letter-spacing:.14em}
.page-lead h1{max-width:1400px;margin:0;font-family:var(--display);font-size:clamp(56px,8vw,140px);line-height:.9;letter-spacing:-.025em;text-wrap:balance}
.page-lead p{max-width:980px;margin:0;font-size:20px;line-height:1.25;letter-spacing:.035em}
/* FOF-012 About: one restrained sentence at one readable size. There is no
   display headline and no secondary paragraph, and the size does not scale
   with the viewport, so the treatment stays a single typographic level. */
.about-lead{min-height:220px;gap:18px}
.about-lead h1{font-family:var(--coordinate);font-size:18px;line-height:1;letter-spacing:.14em;color:var(--brick)}
.about-copy{display:grid;gap:20px;max-width:760px}
.about-copy p{max-width:none;font-family:var(--display);font-size:20px;line-height:1.45;letter-spacing:0;text-transform:none;text-wrap:balance}
.editorial-band{min-height:330px;display:grid;grid-template-columns:minmax(180px,1fr) minmax(360px,2fr);gap:48px;align-content:center;padding:56px 30px;border-bottom:2px solid var(--ink)}
.editorial-band h2{margin:0;font-size:20px;letter-spacing:.12em}
.editorial-band p{max-width:1040px;margin:0 0 20px;font-family:var(--display);font-size:clamp(28px,3.2vw,56px);line-height:1.08;text-transform:none}
.editorial-band.paper{background:var(--paper);color:var(--ink)}.editorial-band.brick{background:var(--brick);color:var(--ink)}.editorial-band.cobalt{background:var(--cobalt);color:var(--paper)}.editorial-band.ink{background:var(--ink);color:var(--paper)}
.coverage-list{display:block}
.cinema-directory{padding:48px 30px;background:var(--paper);color:var(--ink)}.cinema-directory h2{margin:0 0 24px;color:var(--brick);font-size:18px;letter-spacing:.12em}.cinema-directory ul{margin:0;padding:0;list-style:none;columns:2;column-gap:48px}.cinema-directory li{break-inside:avoid;margin:0 0 14px;font-family:var(--display);font-size:clamp(24px,2.5vw,40px);line-height:1.05}
.coverage-row{min-height:138px;display:grid;grid-template-columns:1fr 1.1fr;border-bottom:2px solid var(--ink)}
.coverage-row>div{padding:24px 30px}.coverage-row h2{margin:0 0 6px;font-family:var(--display);font-size:clamp(25px,3vw,48px);line-height:1}.coverage-row>div:last-child{display:grid;grid-template-columns:1fr auto;gap:6px 24px}.coverage-row p{grid-column:1/-1;margin:0;font-size:16px;text-transform:none}.coverage-row time{font-variant-numeric:tabular-nums}
.coverage-row.slot-0{background:var(--paper);color:var(--ink)}.coverage-row.slot-1{background:var(--cobalt);color:var(--paper)}.coverage-row.slot-2{background:var(--brick);color:var(--ink)}.coverage-row.slot-3{background:var(--ink);color:var(--paper)}
.trust-note{min-height:300px;padding:56px 30px;background:var(--paper);color:var(--ink)}.trust-note h2{font-size:18px;letter-spacing:.12em}.trust-note p{max-width:980px;font-family:var(--display);font-size:clamp(28px,4vw,58px);line-height:1.05;text-transform:none}
.unavailable-state{min-height:320px;padding:56px 30px;background:var(--brick);color:var(--ink)}.unavailable-state h2{margin:0 0 20px;font-family:var(--display);font-size:clamp(42px,6vw,90px)}.unavailable-state p{max-width:900px;font-size:22px;line-height:1.35;text-transform:none}
@media(max-width:1279px){.site-header{grid-template-columns:auto minmax(0,1fr);padding-left:20px;padding-right:20px}.wordmark{font-size:29px}.browse-controls{font-size:23px;gap:10px}.gauge-views{gap:10px}.search-toggle{margin-left:12px}.date-heading{grid-template-columns:176px 1fr}.date-heading h2{padding-left:32px}.showing-row{grid-template-columns:176px minmax(0,1fr);min-height:98px}.time-field{padding-left:20px}.time-field time{font-size:19px}.listing-field{padding:10px 20px 10px 30px;column-gap:18px;row-gap:8px}.row-title{font-size:26px}.row-meta,.row-action{font-size:18px}}
@media(max-width:767px){html{scroll-behavior:auto}.fixture-banner{min-height:24px;padding:4px 10px;font-size:12px;line-height:1.2}.site-header{min-height:132px;grid-template-columns:1fr;gap:14px;padding:16px 12px 18px}.site-header.is-browse{grid-template-areas:"brand" "controls" "dates" "search"}.site-header:not(.is-browse){min-height:68px}.brand-block{display:grid}.wordmark{font-size:29px}.browse-controls{justify-content:flex-start;gap:9px;font-size:18px;line-height:1}.gauge-views{gap:9px}.quick-view{min-width:44px;min-height:44px;display:grid;place-items:center}.quick-view.is-active::after{bottom:0;height:5px}.search-toggle{margin-left:auto;min-height:44px}.date-nav{gap:8px 10px;font-size:16px}.date-select{flex:1 1 140px;min-width:0}.date-select select{width:100%;font-size:16px}.date-step{font-size:16px}.header-search{grid-template-columns:minmax(0,1fr) auto auto;gap:8px 12px;padding-top:10px}.header-search label{grid-column:1/-1}.header-search input{font-size:22px}.date-heading{min-height:68px;grid-template-columns:72px 1fr}.date-heading>span{padding-left:10px;font-size:18px}.date-heading h2{padding-left:12px;font-size:23px}.showing-row{grid-template-columns:72px minmax(0,1fr);min-height:126px}.time-field{align-items:flex-start;padding:22px 9px;border-right-width:2px}.time-field time{font-size:19px}.listing-field{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title title" "meta action";align-content:center;column-gap:4px;row-gap:20px;padding:18px 6px 18px 10px}.row-title{font-size:23px;line-height:1.04}.row-title.is-multi{font-size:19px;line-height:1.1}.row-title.is-multi .row-destination{gap:9px}.programme-bracket{width:10px;min-width:10px}.film-line{grid-template-columns:20px 1fr;gap:5px}.film-line>span{font-size:11px}.row-meta,.row-action{font-size:18px;line-height:1.12}.row-action{gap:0;min-height:44px}.empty-state{min-height:280px;padding:40px 12px}.empty-state h2{font-size:42px}.site-footer{min-height:150px;display:grid;grid-template-columns:1fr;gap:22px;padding:28px 12px}.primary-nav{display:grid;grid-template-columns:repeat(2,max-content);justify-content:start;gap:12px 24px}.primary-nav a{display:inline-flex;align-items:center;min-height:32px}.page-lead{min-height:330px;padding:40px 12px}.page-lead h1{font-size:50px}.page-lead p{font-size:16px}.about-lead{min-height:180px;gap:16px}.about-lead h1{font-size:16px}.editorial-band{min-height:300px;grid-template-columns:1fr;gap:24px;padding:40px 12px}.editorial-band p{font-size:28px}.coverage-row{grid-template-columns:1fr;min-height:180px}.coverage-row>div{padding:18px 12px}.coverage-row h2{font-size:27px}.coverage-row>div:last-child{border-top:2px solid currentColor}.trust-note{padding:40px 12px}.unavailable-state{padding:40px 12px}.unavailable-state h2{font-size:42px}}
@media(max-width:767px){.cinema-directory{padding:36px 12px}.cinema-directory ul{columns:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(print){.fixture-banner,.browse-controls,.date-nav,.header-search,.primary-nav,.site-footer,.scope-band{display:none}.site-header{min-height:auto;display:block}.date-heading{position:static}.showing-row{break-inside:avoid}}
