/* Cinema: verified archive and ticket grid */
.cinema-program { padding-top: clamp(34px, 5vw, 64px); background: var(--ivory); }
.cinema-program > .container { width: min(calc(100% - 48px), 1600px); }
.cinema-program__heading { margin-bottom: 34px; }.cinema-program__heading h1 { max-width: 820px; margin: 0; font-family: var(--serif); font-size: clamp(2.6rem, 4.5vw, 4.55rem); font-weight: 500; }
.cinema-internal-banner { position: relative; overflow: hidden; margin-bottom: 28px; aspect-ratio: 3 / 1; background: var(--sand); border: 1px solid var(--line); border-radius: 26px; box-shadow: 0 14px 32px rgba(23,23,23,.1); }
.cinema-internal-banner::before { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(90deg, rgba(15,13,12,.8) 0%, rgba(15,13,12,.42) 46%, rgba(15,13,12,.08) 100%); pointer-events: none; }
.cinema-internal-banner::after { position: absolute; z-index: 3; inset: 0; content: ""; border: 1px solid rgba(255,255,255,.42); border-radius: inherit; pointer-events: none; }
.cinema-internal-banner img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.cinema-internal-banner__overlay { position: absolute; z-index: 2; inset: 0; display: flex; padding: clamp(22px, 5vw, 68px); align-items: center; }
.cinema-internal-banner__overlay h1 { max-width: 820px; margin: 0; color: var(--white); font-family: var(--serif); font-size: clamp(2.6rem, 6vw, 5.4rem); font-weight: 500; line-height: .95; }
.cinema-format-toolbar { display: flex; margin-bottom: 24px; padding: 13px 16px; justify-content: space-between; align-items: center; gap: 24px; background: var(--orange-soft); border: 1px solid #e85b24; border-radius: 20px; }
.cinema-format-filters { display: grid; flex: 0 0 auto; grid-template-columns: repeat(3, minmax(88px, 1fr)); gap: 7px; }.cinema-format-filters button { display: inline-flex; min-height: 43px; padding: 8px 13px; justify-content: center; align-items: center; gap: 9px; color: var(--charcoal-deep); background: var(--paper); border: 1px solid #e85b24; border-radius: 999px; font-size: .75rem; font-weight: 900; cursor: pointer; transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease; }.cinema-format-filters button span { display: grid; min-width: 22px; height: 22px; padding-inline: 5px; place-items: center; background: var(--orange-soft); border-radius: 999px; font-size: .61rem; }.cinema-format-filters button:hover { border-color: var(--charcoal); }.cinema-format-filters button.is-active { color: var(--white); background: var(--orange); border-color: var(--charcoal); }.cinema-format-filters button.is-active span { color: var(--white); background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.48); }
.cinema-format-announcement { max-width: 60ch; margin: 0; color: var(--charcoal-deep); font-size: .76rem; font-weight: 700; text-align: right; }
.cinema-program__content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(min(380px, 100%), 520px); gap: 32px; align-items: start; }
.screening-grid { display: grid; min-width: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.cinema-ads { position: sticky; top: calc(var(--header-offset) + 20px); min-width: 0; }
.cinema-ads__heading { margin-bottom: 18px; }
.cinema-ads__heading h2 { margin: 0 0 8px; color: var(--charcoal-deep); font-family: var(--serif); font-size: clamp(1.6rem, 2.5vw, 2.35rem); font-weight: 500; line-height: 1; }
.cinema-ads__heading > p:last-child { margin: 0; color: var(--muted); font-size: .82rem; }
.cinema-ads__grid { display: grid; position: relative; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.cinema-ad-slot { position: relative; min-width: 0; min-height: 600px; }
.cinema-ad-card { position: absolute; inset: 0; min-width: 0; overflow: hidden; visibility: hidden; opacity: 0; background: var(--paper); border: 1.5px solid var(--orange); border-radius: 20px; box-shadow: 0 12px 32px rgba(23,23,23,.12); transform: translateY(7px); transition: opacity 620ms ease, transform 620ms ease, visibility 0s linear 620ms; }
.cinema-ad-card.is-current { z-index: 1; visibility: visible; opacity: 1; pointer-events: auto; transform: translateY(0); transition: opacity 620ms ease, transform 620ms ease, visibility 0s; animation: cinema-ad-card-breathe 4.8s ease-in-out infinite; }
.cinema-ad-card:not(.is-current) { pointer-events: none; }
.cinema-ad-card__border { position: absolute; z-index: 3; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.cinema-ad-card__border rect { fill: none; stroke: var(--orange-light); stroke-width: 1.5; stroke-linecap: round; stroke-dasharray: 18 82; stroke-dashoffset: 100; vector-effect: non-scaling-stroke; animation: cinema-ad-border-run 4.2s linear infinite paused; }
.cinema-ad-card.is-current .cinema-ad-card__border rect { animation-play-state: running; }
.cinema-ad-slot:nth-child(2) .cinema-ad-card.is-current { animation-delay: -2.4s; }
.cinema-ad-slot:nth-child(2) .cinema-ad-card.is-current .cinema-ad-card__border rect { animation-delay: -2.1s; }
.cinema-ad-card__link { position: relative; display: block; min-height: 600px; overflow: hidden; color: var(--white); text-decoration: none; }
.cinema-ad-card__link:hover, .cinema-ad-card__link:focus-visible { color: var(--white); box-shadow: 0 18px 38px rgba(23,23,23,.18); }
.cinema-ad-card__image, .cinema-ad-card__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.cinema-ad-card__image { object-fit: cover; transition: transform 220ms ease; }
.cinema-ad-card__link:hover .cinema-ad-card__image, .cinema-ad-card__link:focus-visible .cinema-ad-card__image { transform: scale(1.05); }
.cinema-ad-card__copy { position: absolute; right: 16px; bottom: 15px; left: 16px; display: flex; flex-direction: column; gap: 5px; }
.cinema-ad-card__copy small { color: var(--orange-light); font-size: .58rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.cinema-ad-card__copy strong { font-family: var(--serif); font-size: clamp(1rem, 1.7vw, 1.35rem); font-weight: 500; line-height: 1.02; }
.cinema-ad-card__copy > span { font-size: .6rem; font-weight: 800; opacity: .85; }
@keyframes cinema-ad-border-run { to { stroke-dashoffset: 0; } }
@keyframes cinema-ad-card-breathe {
  0%, 100% { box-shadow: 0 12px 32px rgba(23,23,23,.12), 0 0 0 0 rgba(232,91,36,0); }
  50% { box-shadow: 0 17px 38px rgba(23,23,23,.17), 0 0 0 6px rgba(232,91,36,.13), 0 0 22px 4px rgba(232,91,36,.1); }
}
.screening-card { display: grid; min-width: 0; overflow: hidden; background: var(--paper); border: 1px solid #ffffff; border-radius: 25px; box-shadow: 0 10px 28px rgba(23,23,23,.08); }
.screening-card__poster { position: relative; isolation: isolate; aspect-ratio: 2 / 3; overflow: hidden; background: var(--sand); }.screening-card__poster-backdrop { position: absolute; z-index: 0; inset: -24px; width: calc(100% + 48px) !important; height: calc(100% + 48px) !important; max-width: none !important; object-fit: cover !important; object-position: center; filter: blur(22px); opacity: .82; transform: scale(1.06); }.screening-card__poster > img:not(.screening-card__poster-backdrop) { position: relative; z-index: 1; display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; background: transparent; }.screening-card__poster .image-fallback { color: var(--charcoal-deep); }
.screening-card__format { position: absolute; top: 14px; right: 14px; display: grid; min-width: 44px; height: 32px; padding-inline: 9px; place-items: center; color: var(--charcoal-deep); background: var(--orange-light); border: 1px solid var(--charcoal-deep); border-radius: 999px; box-shadow: 0 5px 14px rgba(23,23,23,.18); font-size: .67rem; font-weight: 900; }
.screening-ticket { position: relative; display: flex; padding: 24px 22px 21px; flex-direction: column; border-top: 2px dashed #e85b24; }.screening-ticket::before, .screening-ticket::after { position: absolute; top: -13px; width: 24px; height: 24px; content: ""; background: var(--ivory); border-radius: 50%; }.screening-ticket::before { left: -13px; }.screening-ticket::after { right: -13px; }
.screening-ticket__status { margin-bottom: 7px; color: var(--orange-dark); font-size: .57rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }.screening-ticket h3 { min-height: 3.2em; margin: 0 0 15px; color: var(--charcoal-deep); font-family: var(--serif); font-size: 1.35rem; font-weight: 500; line-height: 1.06; }
.screening-ticket__facts { display: grid; margin: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }.screening-ticket__facts > div { min-width: 0; padding: 9px; background: var(--ivory); border-radius: 10px; }.screening-ticket__facts .screening-ticket__date { grid-column: 1 / -1; }.screening-ticket__facts dt { color: var(--muted); font-size: .54rem; font-weight: 800; text-transform: uppercase; }.screening-ticket__facts dd { margin: 3px 0 0; color: var(--charcoal-deep); font-size: .68rem; font-weight: 900; }
.screening-ticket__times { margin-top: 14px; }.screening-ticket__times > span { display: block; margin-bottom: 6px; color: var(--muted); font-size: .56rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }.screening-ticket__times > div { display: flex; flex-wrap: wrap; gap: 6px; }.screening-ticket__times time { padding: 6px 8px; color: var(--charcoal-deep); background: var(--orange-soft); border: 1px solid #e85b24; border-radius: 8px; font-size: .66rem; font-weight: 900; }

.operator-desk { padding-block: clamp(74px, 8vw, 102px); color: var(--ink); background: var(--paper); border-block: 1px solid var(--line); }
.operator-desk__intro { max-width: 860px; margin-bottom: 38px; padding-left: 24px; border-left: 6px solid var(--orange); }.operator-desk .eyebrow { color: var(--orange-dark); }.operator-desk__intro h2 { margin: 0 0 18px; font-family: var(--serif); font-size: clamp(2.6rem, 4.5vw, 4.7rem); font-weight: 500; }.operator-desk__intro > p:last-child { max-width: 650px; margin: 0; color: var(--muted); }
.operator-desk__links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }.operator-desk__links a { display: flex; min-width: 0; min-height: 145px; padding: 23px; flex-direction: column; color: var(--ink); background: var(--orange-soft); border: 1px solid rgba(232,91,36,.28); border-radius: 20px; text-decoration: none; transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease; }.operator-desk__links a:hover, .operator-desk__links a:focus-visible { background: var(--white); border-color: var(--orange); box-shadow: 0 12px 28px rgba(23,23,23,.1); transform: translateY(-3px); }.operator-desk__links span { margin-bottom: 11px; color: var(--orange-dark); font-size: .63rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }.operator-desk__links strong { overflow-wrap: anywhere; color: var(--ink); font-family: var(--serif); font-size: 1.18rem; line-height: 1.2; }.operator-desk__links small { margin-top: auto; padding-top: 18px; color: var(--orange-dark); font-size: .7rem; font-weight: 900; }

.cinema-plans { background: var(--paper); }.cinema-plans__heading { max-width: 790px; margin-bottom: 36px; }.cinema-plans__heading h2 { margin: 0; font-family: var(--serif); font-size: clamp(2.5rem, 4.4vw, 4.4rem); font-weight: 500; }
.cinema-plans__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }.cinema-plan { display: flex; min-width: 0; min-height: 136px; padding: 22px; align-items: center; gap: 17px; color: var(--charcoal-deep); background: var(--ivory); border: 1px solid var(--line); border-radius: 22px; text-decoration: none; transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease; }.cinema-plan:hover, .cinema-plan:focus-visible { background: var(--orange-soft); border-color: var(--charcoal); box-shadow: 0 10px 25px rgba(23,23,23,.1); }
.cinema-plan__icon { display: grid; width: 54px; height: 54px; flex: 0 0 54px; place-items: center; color: var(--charcoal-deep); background: var(--orange-light); border-radius: 16px; }.cinema-plan__icon svg { width: 29px; height: 29px; }.cinema-plan__copy { display: flex; min-width: 0; flex-direction: column; }.cinema-plan__copy strong { font-family: var(--serif); font-size: 1.25rem; line-height: 1.1; }.cinema-plan__copy small { margin-top: 7px; color: var(--muted); font-size: .7rem; font-weight: 800; }



/* Cinema responsive rules */
@media (max-width: 1120px) {
  .screening-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 850px) {
  .cinema-program__heading { grid-template-columns: 1fr; gap: 18px; }
  .cinema-format-toolbar { align-items: stretch; flex-direction: column; }
  .cinema-format-announcement { max-width: none; text-align: left; }
  .cinema-program__content { grid-template-columns: 1fr; }
  .cinema-ads { position: static; }
  .operator-desk__links { grid-template-columns: 1fr; }
  .cinema-plans__grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .cinema-program > .container { width: min(calc(100% - 20px), 1600px); }
  .cinema-format-filters { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cinema-internal-banner { margin-bottom: 22px; aspect-ratio: 1.8 / 1; border-radius: 20px; }
  .cinema-format-filters button { min-width: 0; padding-inline: 9px; }
  .screening-grid { grid-template-columns: 1fr; }
  .cinema-ads__grid { grid-template-columns: 1fr; }
  .cinema-ad-slot { min-height: 360px; }
  .cinema-ad-card__link { min-height: 360px; }
  .screening-ticket h3 { min-height: 0; }
  .operator-desk__links a { min-height: 128px; }
  .cinema-plan { min-height: 118px; }
}

@media (max-width: 410px) {
  .cinema-program > .container { width: min(calc(100% - 12px), 1600px); }
  .cinema-format-filters button { gap: 5px; font-size: .7rem; }
  .screening-ticket { padding-inline: 18px; }
}
