/* Pesti Művész Színház — közös alap.
   Egyetlen tokenrendszer, tipográfiai skála és térközrendszer. A 03 Vibrant Modern (felnőtt)
   és a 06 Riviera Pop (gyermek) téma csak a tokeneket és a saját komponenseit írja felül,
   egymást felülíró rétegek nélkül. */

@font-face { font-family:"PMSZ Display"; src:url("/assets/fonts/display.woff2") format("woff2"); font-weight:400 900; font-style:normal; font-display:swap; }
@font-face { font-family:"PMSZ Display"; src:url("/assets/fonts/display-italic.woff2") format("woff2"); font-weight:400 900; font-style:italic; font-display:swap; }
@font-face { font-family:"PMSZ Sans"; src:url("/assets/fonts/sans.woff2") format("woff2"); font-weight:200 800; font-style:normal; font-display:swap; }

/* Olvashatóság: a Bodoni Moda optikai méret tengelyét (opsz 6–96) a böngésző magától a betűmérethez
   igazítaná, így a nagy címek a leghajszálvonalasabb változatot kapnák – telefonon alig látszó vékony
   szárakkal. Rögzített, alacsony optikai mérettel a vékony vonalak is jól láthatók maradnak. */
/* (A „font:” gyorsírás visszaállítaná ezeket, ezért minden elemre kényszerítjük; csak az opsz-tengelyű
   betűket – a Bodonit – érinti, a többinél hatástalan.) */
*, *::before, *::after { font-optical-sizing:none !important; font-variation-settings:"opsz" 14 !important; }

:root {
  /* 03 Vibrant Modern — éjkék, krém, antik arany, visszafogott korall */
  --navy-950:#0B1630; --navy-900:#0F1D38; --navy-800:#172B50; --navy-700:#22396A;
  --cream-50:#FFFCF6; --cream-100:#F8F2E7; --cream-200:#F0E6D3; --cream-300:#E4D5B9;
  --gold-500:#B5853A; --gold-400:#C99C52; --gold-300:#DDBD7E; --gold-line:rgba(181,133,58,.5);
  --coral-700:#A63E2D; --coral-600:#BF4A37; --coral-500:#D9654F; --coral-200:#F4CDBF; --gold-700:#83601F;
  --ink:#13213D; --ink-soft:#4B5672; --ink-faint:#6E7486;

  --bg:var(--cream-100); --surface:var(--cream-50); --text:var(--ink); --text-soft:var(--ink-soft);
  --accent:var(--coral-600); --accent-text:#FFF8EE; --line:var(--gold-line); --focus:#B5853A;

  --f-display:"PMSZ Display", "Playfair Display", Georgia, "Times New Roman", serif;
  --f-sans:"PMSZ Sans", "Manrope", "Segoe UI", Roboto, Arial, sans-serif;
  /* a térkép komponense ezekre a nevekre hivatkozik */
  --serif:var(--f-display); --sans:var(--f-sans);

  /* tipográfiai skála */
  --t-hero:clamp(2.75rem, 1.2rem + 5.6vw, 6rem);
  --t-h1:clamp(2.4rem, 1.4rem + 3.8vw, 4.6rem);
  --t-h2:clamp(1.95rem, 1.35rem + 2.2vw, 3.25rem);
  --t-h3:clamp(1.3rem, 1.12rem + .7vw, 1.65rem);
  --t-lead:clamp(1.1rem, 1rem + .35vw, 1.3rem);
  --t-body:1.0625rem; --t-small:.9rem; --t-micro:.75rem;

  /* térközök */
  --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem; --s-5:1.5rem; --s-6:2rem; --s-7:3rem; --s-8:4rem;
  --section:clamp(3.5rem, 2rem + 5vw, 7rem);
  --gutter:clamp(1rem, .4rem + 2.6vw, 3rem);
  --max:1320px;
  --radius:2px;
  --shadow:0 24px 50px -30px rgba(11,22,48,.45);
}

*,*::before,*::after { box-sizing:border-box; }
[hidden] { display:none !important; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
body { margin:0; background:var(--bg); color:var(--text); font:400 var(--t-body)/1.65 var(--f-sans); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
img,svg,video { display:block; max-width:100%; }
img { height:auto; }
h1,h2,h3,h4 { margin:0; font-family:var(--f-display); font-weight:600; line-height:1.08; letter-spacing:-.01em; text-wrap:balance; }
h1 { font-size:var(--t-h1); }
h2 { font-size:var(--t-h2); }
h3 { font-size:var(--t-h3); line-height:1.18; }
p { margin:0; text-wrap:pretty; }
a { color:inherit; }
ul { margin:0; padding:0; }
button,input,select,textarea { font:inherit; color:inherit; }
:focus-visible { outline:2px solid var(--focus); outline-offset:3px; }
.visually-hidden { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.skip-link { position:absolute; left:var(--s-4); top:-100px; z-index:1000; padding:var(--s-3) var(--s-4); background:var(--navy-900); color:#fff; }
.skip-link:focus { top:var(--s-4); }

.wrap { width:min(100% - 2*var(--gutter), var(--max)); margin-inline:auto; }
.section { padding-block:var(--section); }

.eyebrow { font:700 var(--t-micro)/1.4 var(--f-sans); letter-spacing:.2em; text-transform:uppercase; color:var(--gold-700); }
.lead { font-size:var(--t-lead); line-height:1.55; color:var(--text-soft); }
.data-note { font-size:var(--t-small); color:var(--text-soft); margin-top:var(--s-4); }

/* gombok — egy méretrendszer, sosem törnek szét két sorra */
.button,.outline-button { display:inline-flex; align-items:center; justify-content:center; gap:.6em; min-height:48px; padding:.8rem 1.4rem; border-radius:var(--radius); font:700 .8125rem/1.2 var(--f-sans); letter-spacing:.14em; text-transform:uppercase; text-decoration:none; white-space:nowrap; cursor:pointer; transition:background-color .2s, color .2s, border-color .2s, transform .2s; }
.button { background:var(--accent); color:var(--accent-text); border:1px solid var(--accent); }
.button:hover { background:var(--navy-900); border-color:var(--navy-900); }
.outline-button { background:transparent; color:currentColor; border:1px solid currentColor; }
.outline-button:hover { background:var(--navy-900); color:var(--cream-50); border-color:var(--navy-900); }
.text-link { display:inline-flex; align-items:center; gap:.4em; font:700 .8125rem/1.3 var(--f-sans); letter-spacing:.12em; text-transform:uppercase; text-decoration:none; border-bottom:1px solid var(--gold-500); padding-bottom:.2em; white-space:nowrap; }
.text-link:hover { color:var(--accent); }
.cta-row { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-4) var(--s-5); }
@media (max-width:400px) { .button,.outline-button { white-space:normal; text-align:center; } }

/* fejléc */
.site-frame { min-height:100vh; display:flex; flex-direction:column; }
main { flex:1; }
.header { position:relative; z-index:50; }
/* Egysoros alap (gyermekoldal): márka | navigáció | eszközök. A felnőtt fejléc az adult.css-ben
   kétsoros, a 2026-10-18-ban jóváhagyott elrendezés szerint. */
.header-inner { display:grid; grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"brand nav tools"; align-items:center; column-gap:var(--s-5); min-height:84px; }
.brand { grid-area:brand; display:inline-flex; align-items:center; gap:clamp(.6rem, .3rem + 1vw, 1.15rem); text-decoration:none; color:inherit; min-width:0; }
.brand picture { flex-shrink:0; }
.brand-mark { width:150px; height:auto; }
.brand-word { display:grid; gap:.55rem; line-height:1; min-width:0; }
.brand-word strong { font:500 clamp(1.75rem, 1rem + 1.6vw, 3rem)/.94 var(--f-display); letter-spacing:-.025em; white-space:nowrap; }
.brand-word span { display:flex; align-items:center; gap:.85rem; font:600 clamp(.8rem, .62rem + .4vw, 1.1rem)/1 var(--f-display); letter-spacing:.4em; text-transform:uppercase; white-space:nowrap; padding-left:.2em; }
.brand-word span::before,.brand-word span::after { content:""; flex:1; min-width:.9rem; height:1px; background:var(--gold-500); }
.header-signature { display:none; }
#main-nav { grid-area:nav; display:flex; align-items:center; justify-content:flex-end; gap:clamp(.9rem, .2rem + 1.1vw, 1.7rem); }
#main-nav a { font:700 .78rem/1.2 var(--f-sans); letter-spacing:.12em; text-transform:uppercase; text-decoration:none; padding:.6rem 0; border-bottom:2px solid transparent; white-space:nowrap; }
#main-nav a:hover,#main-nav a[aria-current="page"] { border-color:currentColor; }
.header-tools { grid-area:tools; display:flex; align-items:center; justify-content:flex-end; gap:var(--s-3); }
.search-toggle,.menu-toggle { display:inline-grid; place-items:center; min-width:44px; min-height:44px; padding:0 .7rem; border:1px solid currentColor; border-radius:var(--radius); background:transparent; cursor:pointer; }
.menu-toggle { display:none; gap:.5rem; grid-auto-flow:column; font:700 .75rem/1 var(--f-sans); letter-spacing:.14em; text-transform:uppercase; }
.nav-ticket { min-height:44px; padding:.65rem 1.1rem; }
@media (max-width:1180px) {
  .header-inner { grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"brand . tools"; }
  .brand-mark { width:120px; }
  .menu-toggle { display:inline-grid; }
  #main-nav { display:none; position:absolute; left:0; right:0; top:100%; margin:0; padding:var(--s-4) var(--gutter) var(--s-6); flex-direction:column; align-items:stretch; gap:0; box-shadow:0 30px 40px -30px rgba(0,0,0,.45); }
  #main-nav.is-open { display:flex; }
  #main-nav a { padding:1rem 0; border-bottom:1px solid var(--line); font-size:.85rem; }
}
@media (max-width:760px) {
  .header-inner { min-height:76px; column-gap:var(--s-3); }
  .brand { gap:.5rem; }
  .brand-mark { width:78px; }
  .brand-word { gap:.4rem; }
  .brand-word strong { font-size:clamp(1.05rem, .55rem + 2.6vw, 1.6rem); }
  .brand-word span { font-size:.62rem; letter-spacing:.3em; gap:.45rem; }
  .brand-word span::before,.brand-word span::after { min-width:.45rem; }
  .header-tools { gap:.4rem; }
  .nav-ticket { display:none; }
  .menu-toggle .menu-label { display:none; }
}
@media (max-width:390px) { .brand-mark { width:66px; } }
@media (max-width:350px) { .brand-mark { width:56px; } .brand-word strong { font-size:.98rem; } .brand-word span { letter-spacing:.22em; } }

/* fejléc-részleg címsor */
.section-head { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:var(--s-4) var(--s-6); margin-bottom:var(--s-6); }
.section-head > div { display:grid; gap:var(--s-3); max-width:46rem; }

/* kártyák — plakátkeret */
.show-card { min-width:0; }
.show-card > a { display:grid; gap:var(--s-3); height:100%; text-decoration:none; color:inherit; }
.show-card__frame { position:relative; aspect-ratio:5/7; overflow:hidden; border-radius:var(--radius); isolation:isolate; }
.show-card__frame img { width:100%; height:100%; object-fit:cover; }
.show-card__meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.35rem var(--s-3); padding-top:var(--s-1); min-width:0; }
.show-card__cta { display:inline-flex; align-items:center; gap:.4rem; font:700 .75rem/1.2 var(--f-sans); letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; }
.show-card__cta span { transition:transform .2s; }
.show-card > a:hover .show-card__cta span { transform:translateX(4px); }
.show-card > a:focus-visible { outline-offset:6px; }
.poster-image { position:absolute; inset:0; }

/* események */
.events { list-style:none; display:grid; gap:0; }
.event-row { display:grid; grid-template-columns:4.25rem minmax(0,1fr) auto; align-items:center; gap:var(--s-4); padding:var(--s-4) 0; border-bottom:1px solid var(--line); }
.event-row time { display:grid; justify-items:center; align-content:center; min-height:4.25rem; border:1px solid var(--line); text-transform:uppercase; }
.event-row time span { font:700 .66rem/1 var(--f-sans); letter-spacing:.16em; }
.event-row time strong { font:600 1.65rem/1 var(--f-display); }
.event-info { min-width:0; }
.event-info h3 { font-size:1.18rem; }
.event-info p { font-size:.98rem; line-height:1.4; margin-top:.15rem; overflow-wrap:anywhere; }
.event-info p a { text-decoration-color:var(--gold-500); text-underline-offset:3px; }
.event-info small { display:block; margin-top:.2rem; font-size:.8rem; color:var(--text-soft); overflow-wrap:anywhere; }
.ticket-link { display:inline-flex; align-items:center; gap:.4em; min-height:44px; padding:.55rem 1rem; border:1px solid currentColor; border-radius:var(--radius); font:700 .75rem/1.2 var(--f-sans); letter-spacing:.12em; text-transform:uppercase; text-decoration:none; white-space:nowrap; }
.ticket-link:hover { background:var(--navy-900); color:var(--cream-50); border-color:var(--navy-900); }
@media (max-width:560px) {
  .event-row { grid-template-columns:3.4rem minmax(0,1fr) auto; gap:var(--s-3); }
  .event-row time { min-height:3.4rem; }
  .event-row time strong { font-size:1.4rem; }
  .event-info h3 { font-size:1.05rem; }
  .event-row .ticket-link { padding:.5rem .7rem; letter-spacing:.08em; }
}

/* űrlapok */
label { display:block; font:700 .78rem/1.4 var(--f-sans); letter-spacing:.06em; margin-bottom:.4rem; }
input[type=search],input[type=text],select { width:100%; min-height:48px; padding:.7rem .9rem; border:1px solid var(--gold-400); border-radius:var(--radius); background:var(--cream-50); color:var(--ink); }

/* kereső párbeszédablak */
dialog#search-dialog { width:min(640px, calc(100% - 2rem)); max-height:min(80vh, 720px); padding:var(--s-6); border:1px solid var(--gold-400); border-radius:var(--radius); background:var(--cream-50); color:var(--ink); }
dialog#search-dialog::backdrop { background:rgba(11,22,48,.6); }
.dialog-head { display:flex; justify-content:space-between; align-items:start; gap:var(--s-4); margin-bottom:var(--s-4); }
.close-dialog { min-width:44px; min-height:44px; border:1px solid var(--ink); background:none; font-size:1.4rem; cursor:pointer; }
#search-count { font-size:var(--t-small); margin:var(--s-3) 0; color:var(--text-soft); }
#search-results { display:grid; gap:0; }
.search-result { display:grid; gap:.15rem; padding:.85rem 0; border-bottom:1px solid var(--line); text-decoration:none; }
.search-result strong { font:600 1.12rem/1.25 var(--f-display); }
.search-result small { font-size:.8rem; color:var(--text-soft); }
.search-result:hover strong { color:var(--accent); }

/* lábléc */
footer { margin-top:auto; }
.footer-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr); gap:var(--s-7); padding-block:var(--s-8) var(--s-6); }
.footer-grid p { font-size:.95rem; }
.footer-intro .text-link { justify-self:start; }
.footer-contacts { display:grid; gap:var(--s-4); }
.footer-contacts p { display:grid; gap:.2rem; }
.footer-contacts strong { font:700 .72rem/1.3 var(--f-sans); letter-spacing:.16em; text-transform:uppercase; }
.footer-contacts a { text-decoration:none; }
.footer-contacts a:hover { text-decoration:underline; }
.footer-links { display:grid; gap:.55rem; align-content:start; }
.footer-links a { text-decoration:none; font-size:.95rem; }
.footer-links a:hover { text-decoration:underline; }
.footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--s-3); padding-block:var(--s-5); border-top:1px solid currentColor; font-size:.82rem; opacity:.85; }
/* A fotós és a videós alkotói kredit diszkréten, minden oldalon azonosan látszik. */
.footer-authors { flex:0 0 100%; font-size:.78rem; line-height:1.55; font-weight:400; text-align:right; }
.footer-authors strong { font-weight:650; }
@media (max-width:640px) { .footer-authors { text-align:left; } }

@media (max-width:900px) { .footer-grid { grid-template-columns:1fr; gap:var(--s-6); } }

/* előadásoldal — közös tartalmi blokkok (felnőtt és gyermek) */

.description { font-size:1.06rem; line-height:1.75; max-width:42rem; }
.credits { white-space:pre-line; font-size:.95rem; line-height:1.7; padding:var(--s-5); background:var(--surface); border:1px solid var(--line); }

.show-schedule { padding-top:var(--s-7); border-top:1px solid var(--line); }
.show-schedule h2 { margin:var(--s-2) 0 var(--s-5); }

.flip-schedule { padding-block:clamp(2rem,3.7vw,4rem); background:linear-gradient(160deg,#F8F0E2,#F3E5CF 65%,#FBF7EE); color:var(--navy-900); overflow:hidden; }
.flip-schedule__heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:clamp(.8rem,1.5vw,1.3rem); }
.flip-schedule__heading h2 { font:600 clamp(2rem,4.3vw,4rem)/1.05 var(--f-display); letter-spacing:-.025em; margin:.25rem 0 .1rem; }
.flip-schedule__heading h2 em { color:var(--coral-700); }
.flip-schedule__heading p:not(.eyebrow) { max-width:43rem; line-height:1.55; color:var(--ink-soft); }
.flip-schedule__actions { display:flex; flex-wrap:wrap; gap:1rem; justify-content:flex-end; align-items:center; flex-shrink:0; }
.flip-schedule__arrows { display:flex; gap:.5rem; }
.flip-schedule__arrows button { width:3rem; height:3rem; border:1px solid var(--navy-900); border-radius:50%; background:transparent; color:var(--navy-900); cursor:pointer; font-size:1.45rem; }
.flip-schedule__arrows button:not(:disabled):hover { background:var(--navy-900); color:#FFF8EB; }
.flip-schedule__arrows button:disabled { opacity:.35; cursor:default; }
.flip-schedule__track { display:flex; gap:clamp(1.5rem,3.5vw,3.25rem); padding:.25rem 0 .8rem; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:none; scrollbar-width:none; -webkit-overflow-scrolling:touch; touch-action:auto; cursor:grab; }
.flip-ticket { flex:0 0 clamp(245px,26vw,335px); min-width:0; scroll-snap-align:none; perspective:1200px; }
.flip-ticket__date { min-height:5.3rem; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.9rem; padding:.6rem .8rem .65rem 1.05rem; margin-bottom:.5rem; border-top:1px solid rgba(29,33,47,.24); border-bottom:1px solid rgba(29,33,47,.24); color:var(--navy-900); background:linear-gradient(90deg,rgba(255,255,255,.54),rgba(255,255,255,.08)); }
.flip-ticket__weekday { display:flex; align-items:center; gap:.65rem; font:700 clamp(.73rem,.7rem + .15vw,.85rem)/1.3 var(--f-sans); letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; }
.flip-ticket__weekday::before { content:""; width:2px; height:1.85rem; flex:none; background:var(--coral-600); }
.flip-ticket__date time { display:flex; align-items:center; justify-content:flex-end; gap:.7rem; color:inherit; font-family:var(--f-sans); text-transform:uppercase; white-space:nowrap; }
.flip-ticket__date time strong { font:500 clamp(2.65rem,3vw,3.35rem)/.95 var(--f-display); font-variant-numeric:lining-nums tabular-nums; letter-spacing:-.045em; }
.flip-ticket__date time span { min-width:2.3rem; padding-top:.55rem; font:750 .76rem/1.2 var(--f-sans); letter-spacing:.12em; color:var(--coral-700); }
.flip-ticket__scene { height:clamp(375px,39vw,438px); perspective:1400px; }
.flip-ticket__rotor { position:relative; height:100%; width:100%; transform-style:preserve-3d; transition:none; }
.flip-ticket__face { position:absolute; inset:0; border:1px solid rgba(18,31,50,.15); border-radius:10px; overflow:hidden; backface-visibility:hidden; -webkit-backface-visibility:hidden; box-shadow:0 15px 28px rgba(21,28,44,.17); }
.flip-ticket__front { color:#FFF9ED; background:#152338; }
.flip-ticket__open { display:flex; flex-direction:column; width:100%; height:100%; padding:0; border:0; background:transparent; color:inherit; text-align:left; cursor:pointer; }
.flip-ticket__image { display:flex; flex:1 1 auto; min-height:0; align-items:center; justify-content:center; width:100%; background:radial-gradient(circle at 55% 25%,#34445B,#111E30 72%); }
.flip-ticket__image img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.flip-ticket__art { display:grid; place-items:center; gap:.8rem; color:#D9B775; text-align:center; font:600 1.4rem/1.3 var(--f-display); }
.flip-ticket__art i { font-size:4rem; font-style:normal; }
.flip-ticket__foreground { display:grid; gap:.38rem; padding:.92rem 1.2rem .95rem; flex:0 0 auto; background:linear-gradient(135deg,#17253A,#263E4C); }
.flip-ticket__category { font:700 .65rem/1.2 var(--f-sans); text-transform:uppercase; letter-spacing:.11em; color:#E7C48D; }
.flip-ticket__title { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font:600 clamp(1.2rem,1.65vw,1.55rem)/1.1 var(--f-display); letter-spacing:.005em; }

.flip-ticket__back { transform:rotateY(180deg); padding:1.2rem; display:flex; flex-direction:column; gap:.68rem; background:linear-gradient(140deg,#122238,#233F4B); color:#FFF9ED; }
.flip-ticket__back-kicker { font:700 .65rem/1.3 var(--f-sans); letter-spacing:.16em; text-transform:uppercase; color:#DABD88; }
.flip-ticket__back h3 { font:600 clamp(1.35rem,2vw,1.8rem)/1.1 var(--f-display); overflow-wrap:anywhere; }
.flip-ticket__back time { display:flex; flex-direction:column; gap:.15rem; border-top:1px solid #657580; padding-top:.6rem; }
.flip-ticket__back time span { font:.85rem/1.4 var(--f-sans); }
.flip-ticket__back time strong { font:600 2.1rem/1.1 var(--f-display); color:#F3BB9A; }
.flip-ticket__back p { display:grid; gap:.25rem; font:.88rem/1.45 var(--f-sans); }
.flip-ticket__back p strong { font-size:1rem; }
.flip-ticket__buy { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:auto; min-height:49px; padding:.65rem .9rem; background:#F5B7A4; color:#142238; text-decoration:none; font:750 .83rem/1.2 var(--f-sans); border-radius:4px; }
.flip-ticket__buy:hover { background:#FFF5DD; }
.flip-ticket__details { color:#FFF9ED; font:600 .8rem/1.3 var(--f-sans); text-underline-offset:4px; }
.flip-ticket__close { align-self:flex-end; display:grid; place-items:center; width:2.25rem; height:2.25rem; min-height:36px; border:1px solid rgba(245,183,164,.6); border-radius:50%; background:none; color:#F5B7A4; cursor:pointer; font:500 1.2rem/1 var(--f-sans); }
.flip-ticket__close:hover { background:rgba(255,255,255,.1); }
.flip-ticket__open:focus-visible,.flip-ticket__back :focus-visible,.flip-schedule__arrows button:focus-visible { outline:3px solid #F4B45C; outline-offset:-4px; }
.flip-schedule__note { margin-top:.45rem; font:.78rem/1.55 var(--f-sans); color:var(--ink-soft); }
@media (max-width:860px) { .flip-schedule__heading { align-items:flex-start; flex-direction:column; } .flip-schedule__actions { width:100%; justify-content:space-between; } }
@media (max-width:540px) {
 .flip-schedule__track { margin-inline:calc(-1 * var(--s-4)); padding-inline:var(--s-4); scroll-padding-inline:var(--s-4); }
 .flip-ticket { flex-basis:min(79vw,320px); }
 .flip-ticket__scene { height:405px; }
 .flip-ticket__back { padding:1.1rem; }
 .flip-schedule__actions .text-link { font-size:.78rem; }
}
@media (prefers-reduced-motion:reduce) { .flip-ticket__rotor { transition:none; } .flip-schedule__track { scroll-behavior:auto; } }

/* Native-scrolling poster ribbon: the scroll position drives separately phased
   cards. iOS/WebKit owns touch momentum and natural reversal. */
.flip-schedule__track::-webkit-scrollbar { display:none; }
.flip-belt .flip-ticket__scene,
.flip-belt .flip-ticket__scene * { touch-action:auto; }
.flip-belt .flip-ticket__scene { -webkit-perspective:1400px; user-select:none; -webkit-user-select:none; }
/* 3D csak forgás közben ([data-face=turn]); álló helyzetben lapos kártya, a nem látható oldal rejtve */
.flip-belt .flip-ticket__rotor { -webkit-transform-style:flat; transform-style:flat; transition:none; }
.flip-belt .flip-ticket__face { -webkit-backface-visibility:visible; backface-visibility:visible; }
.flip-belt [data-face="turn"] .flip-ticket__rotor { -webkit-transform-style:preserve-3d; transform-style:preserve-3d; }
.flip-belt [data-face="turn"] .flip-ticket__face { -webkit-backface-visibility:hidden; backface-visibility:hidden; }
.flip-belt [data-face="front"] .flip-ticket__back,.flip-belt [data-face="back"] .flip-ticket__front { visibility:hidden; }
.flip-belt [data-face="back"] .flip-ticket__back { transform:none; }
.flip-belt .flip-ticket__open { cursor:inherit; }
.flip-belt .flip-ticket__image img { -webkit-user-drag:none; pointer-events:none; }
.flip-belt .flip-ticket__scene,.flip-belt .flip-ticket__scene * { -webkit-user-select:none; user-select:none; }
.flip-belt.is-belt-dragging,.flip-belt.is-belt-dragging .flip-ticket__open { cursor:grabbing; }
.flip-belt.is-belt-dragging { scroll-behavior:auto; }
.flip-belt .flip-ticket__scene a,.flip-belt .flip-ticket__scene button { -webkit-tap-highlight-color:transparent; }

/* One ticket layout on the adult homepage; the event category changes just its
   accents. Children keep the same typography, geometry and card silhouettes. */
.flip-ticket--kids .flip-ticket__weekday::before { background:#0D8A90; }
.flip-ticket--kids .flip-ticket__date { color:#17515A; background:linear-gradient(95deg,rgba(227,245,246,.8),rgba(255,247,230,.35)); border-color:rgba(13,93,97,.26); }
.flip-ticket--kids .flip-ticket__date time span { color:#A74052; }
.flip-ticket--kids .flip-ticket__foreground { background:linear-gradient(120deg,#174E59,#276B69); }
.flip-ticket--kids .flip-ticket__category { color:#FFE2A0; }
.flip-ticket--kids .flip-ticket__image { background:radial-gradient(circle at 75% 15%,#4F8284,#143C4C 75%); }
.flip-ticket--kids .flip-ticket__back { background:linear-gradient(150deg,#153F4A,#28635F); }
.flip-ticket--kids .flip-ticket__back-kicker { color:#FFE2A0; }
.flip-ticket--kids .flip-ticket__back time strong { color:#FFC885; }
.flip-ticket--kids .flip-ticket__buy { background:#FFE0A5; color:#103D44; }
.flip-ticket--kids .flip-ticket__buy:hover { background:#FFF4D6; }
.flip-ticket--kids .flip-ticket__close { color:#FFE0A5; border-color:rgba(255,224,165,.6); }
@media (max-width:540px) {
  .flip-ticket__date { padding:.5rem .65rem .5rem .7rem; gap:.5rem; }
  .flip-ticket__weekday { font-size:.72rem; letter-spacing:.08em; gap:.4rem; }
  .flip-ticket__date time { gap:.45rem; }
  .flip-ticket__date time span { font-size:.7rem; }
  .flip-schedule { padding-block:2.2rem; }
  .flip-schedule__heading { margin-bottom:.8rem; }
}

/* 2026-10-21: photographic tickets with a stable, central purchase state.
   The trailing runway allows the final ticket to reach the viewport centre. */
.flip-schedule__track { --ticket-width:clamp(245px,26vw,335px); }
.flip-schedule__track::after {
  content:"";
  display:block;
  flex:0 0 max(0px,calc((100% - var(--ticket-width)) / 2));
  pointer-events:none;
}
.flip-schedule__track > .flip-ticket { flex-basis:var(--ticket-width); }
.flip-ticket__scene { height:clamp(415px,43vw,490px); }
.flip-ticket__open { position:relative; display:block; height:100%; isolation:isolate; }
.flip-ticket__image { position:absolute; inset:0; display:block; width:100%; height:100%; overflow:hidden; background:#273B4B; }
.flip-ticket__image img { width:100%; height:100%; object-fit:cover; display:block; }
.flip-ticket__image .flip-ticket__art { min-height:100%; padding:1rem; }
.flip-ticket__foreground {
  position:absolute;
  z-index:3;
  bottom:0;
  left:0;
  right:0;
  min-height:28%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:.58rem;
  padding:4.8rem 1.35rem 1.4rem;
  background:linear-gradient(0deg,rgba(11,24,40,.98),rgba(11,24,40,.88) 52%,rgba(11,24,40,0));
}
.flip-ticket__category { letter-spacing:.15em; }
.flip-ticket__title { font-size:clamp(1.38rem,1.9vw,1.85rem); line-height:1.08; text-wrap:balance; }
.flip-ticket__back {
  position:absolute;
  padding:1.12rem 1.15rem 1.25rem;
  display:flex;
  flex-direction:column;
  gap:.8rem;
  isolation:isolate;
  overflow:hidden;
  background:#16283B;
  color:#FFF9ED;
}
.flip-ticket__backdrop { position:absolute; z-index:0; inset:0; overflow:hidden; pointer-events:none; }
.flip-ticket__backdrop img { display:block; width:100%; height:100%; object-fit:cover; opacity:.5; }
.flip-ticket__back::before {
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(12,28,46,.7) 0%,rgba(14,30,45,.55) 36%,rgba(13,29,45,.95) 75%,#132B40 100%);
}
.flip-ticket__back > :not(.flip-ticket__backdrop) { position:relative; z-index:2; }
.flip-ticket__back-top { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.flip-ticket__back-kicker { font-size:.68rem; line-height:1.3; }
.flip-ticket__back .flip-ticket__close { flex:none; margin:0; width:2.2rem; height:2.2rem; }
.flip-ticket__back h3 {
  font:600 clamp(1.3rem,1.7vw,1.7rem)/1.13 var(--f-display);
  letter-spacing:-.012em;
  text-wrap:balance;
}
.flip-ticket__back-spacer { flex:1 1 auto; min-height:.5rem; }
.flip-ticket__event-details {
  display:flex;
  flex-direction:column;
  gap:.72rem;
  padding:1.15rem .9rem .72rem;
  border:1px solid rgba(255,255,255,.2);
  border-radius:10px;
  background:rgba(17,39,56,.72);
}
.flip-ticket__back .flip-ticket__event-details time {
  padding:0 0 .62rem;
  border-top:0;
  border-bottom:1px solid rgba(255,255,255,.28);
  gap:.1rem;
  display:flex;
  flex-direction:column;
}
.flip-ticket__back time span { font:600 .84rem/1.28 var(--f-sans); }
.flip-ticket__back time strong {
  font:600 clamp(2rem,2.8vw,2.6rem)/1.07 var(--f-display);
  letter-spacing:.04em;
}
.flip-ticket__back .flip-ticket__venue {
  display:flex;
  flex-direction:column;
  gap:.3rem;
  font:500 .94rem/1.3 var(--f-sans);
  overflow-wrap:anywhere;
}
.flip-ticket__back .flip-ticket__venue strong { font:700 1.13rem/1.2 var(--f-sans); }
.flip-ticket__back .flip-ticket__venue span { font-size:.9rem; }
.flip-ticket__buy {
  margin-top:.25rem;
  min-height:56px;
  padding:.95rem .9rem;
  font:800 .94rem/1.22 var(--f-sans);
  letter-spacing:.035em;
  border-radius:6px;
  box-shadow:0 8px 22px rgba(0,0,0,.13);
}
.flip-ticket__details { align-self:center; font:.78rem/1.3 var(--f-sans); }
.flip-ticket--kids .flip-ticket__foreground { background:linear-gradient(0deg,rgba(248,250,237,.98) 0%,rgba(248,250,237,.9) 48%,rgba(248,250,237,0)); color:#184D54; }
.flip-ticket--kids .flip-ticket__category { color:#B44858; }
.flip-ticket--kids .flip-ticket__title { color:#154850; }
.flip-ticket--kids .flip-ticket__back { background:#EAF6EE; color:#15474C; }
.flip-ticket--kids .flip-ticket__backdrop img { opacity:.68; }
.flip-ticket--kids .flip-ticket__back::before {
  background:linear-gradient(180deg,rgba(255,251,235,.72) 0%,rgba(254,248,228,.52) 35%,rgba(254,249,231,.84) 66%,rgba(255,249,231,.96) 100%);
}
.flip-ticket--kids .flip-ticket__back-kicker { color:#AA3B51; }
.flip-ticket--kids .flip-ticket__back h3 { color:#15474C; }
.flip-ticket--kids .flip-ticket__event-details {
  border-color:rgba(23,87,89,.16);
  background:rgba(255,250,235,.76);
}
.flip-ticket--kids .flip-ticket__event-details time { border-color:rgba(23,87,89,.25); }
.flip-ticket--kids .flip-ticket__back time strong { color:#B43D55; }
.flip-ticket--kids .flip-ticket__buy { background:#E85C68; color:#fff; }
.flip-ticket--kids .flip-ticket__buy:hover { background:#B93D50; }
.flip-ticket--kids .flip-ticket__details { color:#17515A; }
.flip-ticket--kids .flip-ticket__close { color:#144F56; border-color:rgba(22,82,86,.38); }
@media (max-width:540px) {
  .flip-schedule__track { --ticket-width:min(79vw,320px); }
  .flip-ticket__scene { height:430px; }
  .flip-ticket__foreground { padding:3.5rem 1.1rem 1.2rem; }
  .flip-ticket__back { padding:.9rem; gap:.6rem; }
  .flip-ticket__event-details { padding:.88rem .72rem .68rem; gap:.65rem; }
  .flip-ticket__back time strong { font-size:2.12rem; }
  .flip-ticket__back h3 { font-size:1.35rem; }
}

/* ═══ 2026-10-21 — Jegykártyák: telefonos méretezés + felnőtt / gyerek arculat ═══════════════════════
   Telefonon egy kártya töltötte ki a kijelzőt, így minden apró görgetés azonnal forgatta. Most a kártya
   a kijelző ~64%-a, a görgetés mindig egy kártyára áll meg középen (scroll-snap): a középső kártya
   mutatja a jegyoldalt, a két szomszéd a fotót – a forgás csak lapozás közben történik. */
@media (max-width:700px) {
  .flip-schedule__track { --ticket-width:min(64vw, 272px); gap:14px; margin-inline:calc(-1 * var(--gutter)); padding-inline:calc(50% + var(--gutter) - var(--ticket-width) / 2); scroll-padding-inline:0; scroll-snap-type:x mandatory; }
  .flip-schedule__track > .flip-ticket { flex-basis:var(--ticket-width); scroll-snap-align:center; scroll-snap-stop:always; }
  .flip-ticket__scene { height:clamp(360px, 104vw, 420px); }
  .flip-ticket__date { min-height:4.2rem; padding:.45rem .55rem .45rem .7rem; gap:.4rem; }
  .flip-ticket__date time strong { font-size:2.15rem; }
  .flip-ticket__weekday { font-size:.7rem; letter-spacing:.08em; }
  .flip-ticket__foreground { padding:2.6rem .9rem 1rem; }
  .flip-ticket__title { font-size:1.28rem; }
  .flip-ticket__back { padding:.8rem; gap:.5rem; }
  .flip-ticket__back h3 { font-size:1.2rem; }
  .flip-ticket__event-details { padding:.75rem .65rem .6rem; gap:.5rem; }
  .flip-ticket__back time strong { font-size:1.85rem; }
  .flip-ticket__buy { min-height:46px; }
}

/* felnőtt kártya — éjkék, antik arany, belső art deco keret */
.flip-ticket--adult .flip-ticket__face { border:1px solid #A27A33; border-radius:3px; }
.flip-ticket--adult .flip-ticket__front::after { content:""; position:absolute; inset:7px; z-index:3; border:1px solid rgba(226,194,126,.6); pointer-events:none; }
.flip-ticket--adult .flip-ticket__foreground { background:linear-gradient(0deg, rgba(11,22,48,.97) 0%, rgba(11,22,48,.86) 42%, rgba(11,22,48,0)); color:#FBF3E2; }
.flip-ticket--adult .flip-ticket__category { color:#E2C27E; letter-spacing:.2em; }
.flip-ticket--adult .flip-ticket__title { color:#FFF8EA; }
.flip-ticket--adult .flip-ticket__weekday::before { background:#B68B3F; }
.flip-ticket--adult .flip-ticket__date time span { color:#7A5719; }
.flip-ticket--adult .flip-ticket__back-kicker { color:#E2C27E; }
.flip-ticket--adult .flip-ticket__back time strong { color:#E6C886; }
.flip-ticket--adult .flip-ticket__buy { background:linear-gradient(180deg, #E2C27E, #C9A158 55%, #B68B3F); color:#0B1630; border:1px solid #A27A33; }
.flip-ticket--adult .flip-ticket__buy:hover { background:#FFF4DD; }
.flip-ticket--adult .flip-ticket__close { color:#E2C27E; border-color:rgba(226,194,126,.6); }

/* gyerek kártya — a Fogi-oldal napsárga, korall és türkiz világa, kerek fehér kerettel */
.flip-ticket--kids .flip-ticket__date { border:0; border-radius:999px; background:linear-gradient(100deg, #FFE7A3, #FFF6E0 55%, #DDF3F1); color:#0D3B42; padding-inline:1rem .9rem; }
.flip-ticket--kids .flip-ticket__weekday::before { background:#FA6475; border-radius:2px; }
.flip-ticket--kids .flip-ticket__date time strong { font-family:"PMSZ Kids", var(--f-display); font-weight:800; letter-spacing:-.02em; color:#0B5A60; }
.flip-ticket--kids .flip-ticket__date time span { color:#C53A50; }
.flip-ticket--kids .flip-ticket__face { border:3px solid #fff; border-radius:22px; box-shadow:0 18px 30px -16px rgba(13,59,66,.45), 0 0 0 1px rgba(13,59,66,.08); }
.flip-ticket--kids .flip-ticket__front::after { content:"✦ Fogi"; position:absolute; z-index:3; top:.7rem; left:.7rem; padding:.3rem .65rem; border-radius:999px; background:#FFC845; color:#0D3B42; font:800 .72rem/1 "PMSZ Kids", var(--f-sans); letter-spacing:.06em; box-shadow:0 3px 0 rgba(13,59,66,.18); pointer-events:none; }
.flip-ticket--kids .flip-ticket__foreground { background:linear-gradient(0deg, rgba(255,200,69,.98) 0%, rgba(255,226,140,.9) 40%, rgba(255,231,163,0)); color:#0D3B42; }
.flip-ticket--kids .flip-ticket__category { color:#B02D47; letter-spacing:.12em; }
.flip-ticket--kids .flip-ticket__title { font-family:"PMSZ Kids", var(--f-display); font-weight:800; color:#0D3B42; letter-spacing:0; }
.flip-ticket--kids .flip-ticket__back { background:linear-gradient(160deg, #FFF6E0, #FFE7A3 70%, #FFD58A); color:#0D3B42; }
.flip-ticket--kids .flip-ticket__back h3 { font-family:"PMSZ Kids", var(--f-display); font-weight:800; color:#0D3B42; }
.flip-ticket--kids .flip-ticket__back-kicker { color:#0B5A60; }
.flip-ticket--kids .flip-ticket__back time strong { font-family:"PMSZ Kids", var(--f-display); color:#C53A50; }
.flip-ticket--kids .flip-ticket__event-details { background:rgba(255,255,255,.82); border-radius:16px; }
.flip-ticket--kids .flip-ticket__buy { background:#C53A50; color:#fff; border-radius:999px; box-shadow:0 4px 0 rgba(13,59,66,.2); }
.flip-ticket--kids .flip-ticket__buy:hover { background:#0B5A60; }
.flip-ticket--kids .flip-ticket__details { color:#0B5A60; }
.flip-ticket--kids .flip-ticket__close { color:#0B5A60; border-color:rgba(11,90,96,.4); }

/* ═══════════════════════════════════════════════════════════════════════════
   2026-10-21 — Áramló szakaszok, élő közösségi hírfolyam, kétoszlopos lábléc
   ═══════════════════════════════════════════════════════════════════════════ */
/* Görgetésre beúszó blokkok (src/reveal.js). A címek finoman „felemelkednek”. */
@media (prefers-reduced-motion:no-preference) {
  .js-reveal [data-reveal] { opacity:0; transform:translate3d(0,34px,0); transition:opacity .9s cubic-bezier(.2,.65,.25,1), transform 1.05s cubic-bezier(.2,.65,.25,1); transition-delay:var(--reveal-delay,0ms); }
  .js-reveal [data-reveal] :is(h2,.eyebrow,.story-eyebrow) { clip-path:inset(-.3em -.3em 100% -.3em); transform:translate3d(0,.45em,0); transition:clip-path 1.1s cubic-bezier(.2,.65,.25,1), transform 1.1s cubic-bezier(.2,.65,.25,1); transition-delay:calc(var(--reveal-delay,0ms) + 120ms); }
  .js-reveal [data-reveal].is-revealed { opacity:1; transform:none; }
  .js-reveal [data-reveal].is-revealed :is(h2,.eyebrow,.story-eyebrow) { clip-path:inset(-.3em -.3em -.3em -.3em); transform:none; }
}

/* Lábléc: bal oldalt az elérhetőségek, jobb oldalt gombok – rövidebb, nagyobb betűk */
.footer-grid { grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:clamp(1.5rem,4vw,4rem); align-items:start; padding-block:clamp(2rem,3.5vw,3.25rem) clamp(1.25rem,2vw,1.75rem); }
.footer-main { display:grid; gap:1.4rem; }
.footer-intro { display:grid; grid-template-columns:auto minmax(0,1fr); gap:1.25rem; align-items:center; }
.footer-intro > div { display:grid; gap:.5rem; justify-items:start; }
.footer-intro p { margin:0; }
.footer-grid p { font-size:1.02rem; }
.footer-emblem { width:132px; }
.footer-contacts { grid-template-columns:repeat(3,auto); justify-content:start; gap:1rem 2.25rem; }
.footer-contacts a { font-size:1rem; font-weight:500; }
.footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
.footer-links a { display:flex; align-items:center; justify-content:space-between; gap:.6rem; min-height:48px; padding:.65rem 1rem; border:1px solid currentColor; border-radius:10px; font-size:1rem; font-weight:600; text-decoration:none; transition:background-color .2s, color .2s, border-color .2s; }
.footer-links a:hover { text-decoration:none; }
.footer-bottom { font-size:.92rem; padding-block:1rem; }
.footer-authors { font-size:.9rem; }
@media (max-width:900px) {
  .footer-grid { grid-template-columns:minmax(0,1fr); }
  .footer-contacts a { overflow-wrap:anywhere; }
  .footer-contacts { grid-template-columns:1fr; gap:.8rem; }
}
@media (max-width:520px) {
  .footer-intro { grid-template-columns:auto minmax(0,1fr); align-items:start; gap:.9rem; }
  .footer-emblem { width:84px; }
  .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-links a { padding:.6rem .75rem; font-size:.95rem; }
}

/* Közösségi sáv: vékony, kettéosztott – bal fele Facebook, jobb fele Instagram (mindkét főoldalon) */
.social-band { display:grid; grid-template-columns:repeat(auto-fit, minmax(0,1fr)); }
.social-band__half { --bg:#0F1D38; --fg:#FFF8EE; --accent:#E6C886; position:relative; display:flex; align-items:center; justify-content:center; gap:.9rem; min-height:92px; padding:1rem clamp(1rem, 4vw, 3rem); background:var(--bg); color:var(--fg); text-decoration:none; overflow:hidden; isolation:isolate; transition:background-color .25s; }
.social-band__half::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(100deg, transparent 30%, rgba(255,255,255,.14) 50%, transparent 70%); transform:translateX(-120%); transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.social-band__half:hover::before,.social-band__half:focus-visible::before { transform:translateX(120%); }
.social-band__icon { display:grid; place-items:center; width:46px; height:46px; flex:none; border-radius:50%; border:1.5px solid var(--accent); color:var(--accent); transition:background-color .25s, color .25s; }
.social-band__half:hover .social-band__icon,.social-band__half:focus-visible .social-band__icon { background:var(--accent); color:var(--bg); }
.social-band__text { display:grid; gap:.15rem; line-height:1.1; }
.social-band__text small { white-space:nowrap; font-size:.78rem; font-weight:650; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.social-band__text strong { font-size:clamp(1.25rem, 1rem + .8vw, 1.6rem); font-weight:700; }
.social-band__go { font-size:1.2rem; color:var(--accent); transition:transform .25s; }
.social-band__half:hover .social-band__go,.social-band__half:focus-visible .social-band__go { transform:translateX(4px); }
.social-band__half:focus-visible { outline:3px solid var(--accent); outline-offset:-6px; }
@media (max-width:640px) {
  .social-band__half { min-height:76px; gap:.6rem; padding:.75rem .9rem; justify-content:flex-start; }
  .social-band__icon { width:38px; height:38px; }
  .social-band__icon svg { width:18px; height:18px; }
  .social-band__text small { font-size:.66rem; letter-spacing:.1em; }
  .social-band__text strong { font-size:1.05rem; }
  .social-band__go { margin-left:auto; }
}
@media (max-width:360px) { .social-band__go { display:none; } .social-band__half { padding-inline:.7rem; } }
@media (max-width:330px) { .social-band__text small { display:none; } }
@media (max-width:360px) { .footer-links a { padding:.55rem .6rem; font-size:.88rem; overflow-wrap:anywhere; } }

/* Telefonon a jegyszalagon 12 jegy (a többi a „Teljes műsor” alatt): kevesebb kép és réteg a régebbi
   telefonok memóriájának. A rejtett jegyek képei (lusta betöltés) le sem töltődnek. */
@media (max-width:700px) { .flip-schedule__track > .flip-ticket:nth-child(n+13) { display:none; } }
