/* Előadásoldalak – saját világ darabonként. A téma a --w-deep / --w-accent / --w-soft változókból jön
   (data/show-worlds.json); a felnőtt (03) és a gyermek (06) bőr ugyanazt a vázat öltözteti. */

.show-world { --w-gold:#C99C52; --w-cream:#FFFCF6; position:relative; overflow-x:clip; }
.motif .d:not([fill]) { fill:var(--w-deep); } .motif .d[stroke-width] { stroke:var(--w-deep); }
.motif .a:not([fill]) { fill:var(--w-accent); } .motif .a[stroke-width] { stroke:var(--w-accent); }
.motif .g:not([fill]) { fill:var(--w-gold); } .motif .g[stroke-width] { stroke:var(--w-gold); }
.motif .s:not([fill]) { fill:var(--w-soft); } .motif .s[stroke-width] { stroke:var(--w-soft); }
.motif .l:not([fill]) { fill:#fff; } .motif .l[stroke-width] { stroke:#fff; }
.corner-deco .gs { stroke:var(--w-gold); }

/* ---------- nyitány ---------- */
.sw-hero { position:relative; isolation:isolate; overflow:hidden; padding-block:clamp(1.5rem, 1rem + 2vw, 3rem) clamp(2.5rem, 1.5rem + 3vw, 4.5rem);
  background:radial-gradient(60% 80% at 85% 30%, color-mix(in srgb, var(--w-accent) 22%, transparent), transparent 70%), radial-gradient(45% 60% at 0% 0%, color-mix(in srgb, var(--w-soft) 90%, transparent), transparent 75%), var(--w-cream); }

.sw-float { position:absolute; z-index:-1; width:clamp(90px, 6rem + 8vw, 220px); opacity:.16; pointer-events:none; }
.sw-float--1 { left:-30px; bottom:-20px; transform:rotate(-14deg); }
.sw-float--2 { right:2%; top:4%; width:clamp(70px, 4rem + 5vw, 150px); opacity:.2; transform:rotate(12deg); }
.sw-hero__grid { position:relative; display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:clamp(1.25rem, .5rem + 3vw, 3.5rem); align-items:center; }
.sw-hero__panel { position:relative; display:grid; gap:var(--s-4); justify-items:start; padding:clamp(1.5rem, 1rem + 2.5vw, 3.25rem); background:rgba(255,252,246,.94); border:1px solid var(--w-gold); outline:1px solid color-mix(in srgb, var(--w-gold) 55%, transparent); outline-offset:-10px; box-shadow:0 30px 60px -40px rgba(15,29,56,.45); }
.corner-deco { position:absolute; width:clamp(56px, 3rem + 3vw, 96px); pointer-events:none; }
.corner-deco.is-tl { left:6px; top:6px; }
.corner-deco.is-br { right:6px; bottom:6px; transform:rotate(180deg); }
.sw-back { position:relative; font:700 .72rem/1.3 var(--f-sans); letter-spacing:.12em; text-transform:uppercase; color:var(--w-deep); text-decoration:none; padding:.3rem 0; }
.sw-back:hover { color:var(--w-accent); }
.sw-keywords { font:700 .72rem/1.5 var(--f-sans); letter-spacing:.2em; text-transform:uppercase; color:var(--w-ink); }
.sw-keywords span { color:var(--w-gold); }
.sw-title { display:grid; gap:.02em; line-height:.9; letter-spacing:-.02em; overflow-wrap:normal; hyphens:manual; }
.sw-title.has-long-word .sw-title__a,.sw-title.has-long-word .sw-title__b { font-size:clamp(2.2rem, .9rem + 4vw, 5rem); }
.sw-title__a { font-size:clamp(2.9rem, 1.2rem + 5.4vw, 6.4rem); font-style:italic; font-weight:600; color:var(--w-ink); text-shadow:0 2px 0 rgba(255,255,255,.6); }
.sw-title__b { font-size:clamp(2.5rem, 1.1rem + 4.4vw, 5.4rem); font-weight:600; color:var(--w-deep); }
.sw-title.has-sub .sw-title__a { font-size:clamp(2.3rem, 1rem + 3.8vw, 4.6rem); }
.sw-title.has-sub .sw-title__b { font-size:clamp(1.25rem, .9rem + 1.2vw, 1.9rem); font-style:italic; font-weight:500; line-height:1.15; margin-top:.35em; }
.sw-flourish { width:min(240px, 70%); color:var(--w-gold); }
.sw-lead { font-size:var(--t-lead); line-height:1.55; color:var(--ink-soft); max-width:32rem; }
.sw-ticket { background:var(--w-accent); border-color:var(--w-accent); color:var(--w-on-accent); border-radius:999px; padding-inline:1.6rem; box-shadow:0 10px 24px -12px var(--w-accent); }
.sw-ticket:hover { background:var(--w-deep); border-color:var(--w-deep); color:#fff; }

.sw-hero__stage { position:relative; margin:0; }
.sw-stage__frame { position:relative; overflow:hidden; aspect-ratio:5/4; border:10px solid var(--w-cream); outline:1px solid var(--w-gold); box-shadow:0 40px 70px -40px rgba(15,29,56,.6); background:radial-gradient(circle at 50% 40%, var(--w-soft), var(--w-deep)); }
.sw-stage__frame > img { width:100%; height:100%; object-fit:cover; }
.sw-hero__stage.is-poster .sw-stage__frame > img { object-fit:contain; padding:6% 18% 2%; filter:drop-shadow(0 20px 30px rgba(0,0,0,.35)); }
.sw-stage__frame > .sw-illustration { position:absolute; inset:0; }
.sw-curtain { position:absolute; top:0; bottom:0; width:11%; z-index:2; pointer-events:none; background:repeating-linear-gradient(90deg, var(--w-accent) 0 14px, color-mix(in srgb, var(--w-accent) 70%, #000) 14px 20px, color-mix(in srgb, var(--w-accent) 85%, #fff) 20px 30px); box-shadow:inset 0 0 24px rgba(0,0,0,.25); }
.sw-curtain--l { left:0; transform-origin:left top; border-bottom-right-radius:100% 30%; }
.sw-curtain--r { right:0; transform-origin:right top; border-bottom-left-radius:100% 30%; }
.sw-valance { position:absolute; top:0; left:0; right:0; height:9%; z-index:3; background:radial-gradient(circle at 50% 0, color-mix(in srgb, var(--w-accent) 80%, #000) 70%, transparent 71%) 0 0/56px 100% repeat-x; filter:drop-shadow(0 3px 0 var(--w-gold)); }
.sw-quote { position:absolute; left:-1.5rem; bottom:-1.5rem; z-index:4; max-width:min(19rem, 70%); margin:0; padding:1rem 1.25rem; background:var(--w-cream); border:1px solid var(--w-gold); box-shadow:0 18px 36px -24px rgba(15,29,56,.6); }
.sw-quote p { font:italic 500 clamp(1.05rem, .9rem + .5vw, 1.4rem)/1.25 var(--f-display); color:var(--w-deep); }

/* ---------- következő előadások ---------- */
.sw-dates { position:relative; z-index:2; background:#fff; border-block:1px solid color-mix(in srgb, var(--w-gold) 60%, transparent); box-shadow:0 1px 0 #fff inset; }
.sw-dates__inner { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:var(--s-5); padding-block:var(--s-4); }
.sw-dates__label { font:600 1.05rem/1.15 var(--f-display); letter-spacing:.08em; text-transform:uppercase; color:var(--w-deep); }
.sw-dates ol { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); }
.sw-dates li a { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.7rem; min-height:56px; padding:.4rem .9rem; border-left:1px solid color-mix(in srgb, var(--w-gold) 50%, transparent); text-decoration:none; color:var(--w-deep); transition:background-color .2s; }
.sw-dates li a:hover { background:color-mix(in srgb, var(--w-soft) 70%, #fff); }
.sw-dates time { display:grid; justify-items:center; line-height:1; text-transform:uppercase; }
.sw-dates time span { font:700 .6rem/1.2 var(--f-sans); letter-spacing:.14em; }
.sw-dates time strong { font:600 2rem/1 var(--f-display); }
.sw-dates__info { display:grid; min-width:0; }
.sw-dates__info b { font:600 1rem/1.2 var(--f-display); color:var(--w-ink); overflow-wrap:anywhere; }
.sw-dates__info small { font-size:.74rem; color:var(--ink-soft); }
.sw-dates__go { display:grid; place-items:center; width:26px; height:26px; border-radius:50%; border:1px solid var(--w-ink); color:var(--w-ink); font-size:1.1rem; }
.sw-dates.is-empty .sw-dates__inner { grid-template-columns:auto minmax(0,1fr) auto; }
.sw-dates.is-empty .sw-dates__label { color:var(--w-ink); }
.sw-dates__note { font-size:.92rem; color:var(--ink-soft); }

/* ---------- történet ---------- */
.sw-story { padding-block:var(--section) calc(var(--section) * .7); background:linear-gradient(180deg, color-mix(in srgb, var(--w-soft) 45%, var(--w-cream)), var(--w-cream)); }

.sw-story__text { display:grid; gap:var(--s-4); justify-items:start; }
.sw-eyebrow { font:700 .74rem/1.3 var(--f-sans); letter-spacing:.22em; text-transform:uppercase; color:var(--w-ink); }
.sw-story__text h2 { color:var(--w-ink); font-size:clamp(2rem, 1.3rem + 2vw, 3.1rem); }
.sw-story__text .description { font-size:1rem; line-height:1.75; color:var(--ink); }
.sw-story__text .outline-button { color:var(--w-deep); border-radius:999px; }

/* illusztráció ott, ahol nincs fotó */
.sw-illustration { position:relative; width:100%; height:100%; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle at 50% 60%, var(--w-soft) 0 30%, transparent 31%), repeating-conic-gradient(from -90deg at 50% 60%, color-mix(in srgb, var(--w-gold) 30%, transparent) 0 4deg, transparent 4deg 12deg), var(--w-deep); }
.sw-illustration__motif { width:52%; position:relative; z-index:1; filter:drop-shadow(0 10px 18px rgba(0,0,0,.35)); }
.sw-illustration__motif2 { position:absolute; width:24%; right:8%; top:10%; opacity:.85; }
.sw-illustration.is-world { background:none; }
.sw-illustration.is-world .world-scene { position:absolute; inset:0; width:100%; height:100%; }
.sw-illustration.is-world .sw-illustration__motif { width:34%; margin-top:18%; }
.sw-illustration.is-world.is-alt .world-scene { transform:scaleX(-1); }
.sw-illustration.is-alt { background:radial-gradient(circle at 50% 40%, var(--w-accent) 0 26%, transparent 27%), repeating-conic-gradient(from 0deg at 50% 40%, color-mix(in srgb, var(--w-soft) 40%, transparent) 0 6deg, transparent 6deg 18deg), var(--w-deep); }
.sw-illustration.is-world.is-alt { background:none; }

/* ---------- szereposztás listaként ---------- */
.sw-section-head { display:flex; align-items:center; gap:var(--s-4); margin-bottom:var(--s-5); }
.sw-section-head h2 { font-size:clamp(1.3rem, 1rem + 1vw, 1.8rem); letter-spacing:.14em; text-transform:uppercase; color:var(--w-deep); white-space:nowrap; }
.sw-rule { flex:1; height:5px; border-block:1px solid color-mix(in srgb, var(--w-gold) 70%, transparent); }
.sw-castlist { padding-block:calc(var(--section) * .8); background:#fff; border-block:1px solid color-mix(in srgb, var(--w-gold) 40%, transparent); }
.sw-castlist__grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:clamp(1.5rem, 1rem + 3vw, 4.5rem); align-items:start; }
.sw-castlist h2 { font-size:clamp(1.9rem, 1.3rem + 1.8vw, 2.8rem); color:var(--w-deep); margin:.3rem 0 var(--s-5); }
.sw-castlist__list { list-style:none; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:.15rem 2.5rem; }
.sw-castlist__list li { display:flex; align-items:baseline; gap:.5rem; padding:.55rem 0; border-bottom:1px solid color-mix(in srgb, var(--w-gold) 30%, transparent); min-width:0; }
.sw-castlist__role { font:italic 500 1.02rem/1.3 var(--f-display); color:var(--w-ink); flex:0 1 auto; min-width:0; overflow-wrap:anywhere; }
.sw-castlist__dots { flex:1 1 1rem; min-width:1rem; border-bottom:1px dotted color-mix(in srgb, var(--w-gold) 70%, transparent); transform:translateY(-.25em); }
.sw-castlist__name { font:700 .78rem/1.35 var(--f-sans); letter-spacing:.06em; text-transform:uppercase; color:var(--w-deep); text-align:right; flex:0 1 auto; min-width:0; }
.sw-castlist__list li.is-name .sw-castlist__name { text-align:left; font-size:.9rem; }
.sw-castlist__side { display:grid; gap:var(--s-3); padding:clamp(1.25rem, 1rem + 1.5vw, 2rem); background:color-mix(in srgb, var(--w-soft) 55%, #fff); border:1px solid color-mix(in srgb, var(--w-gold) 50%, transparent); }
@media (max-width:900px) { .sw-castlist__grid { grid-template-columns:minmax(0,1fr); } }
@media (max-width:640px) { .sw-castlist__list { grid-template-columns:minmax(0,1fr); } }
.sw-creators { list-style:none; display:grid; gap:.4rem; }
.sw-creators li { font-size:.92rem; line-height:1.45; }
.sw-creators span { font:700 .7rem/1.3 var(--f-sans); letter-spacing:.12em; text-transform:uppercase; color:var(--w-ink); margin-right:.35rem; }
.sw-castlist details summary { cursor:pointer; min-height:44px; display:flex; align-items:center; font:700 .76rem/1.3 var(--f-sans); letter-spacing:.12em; text-transform:uppercase; color:var(--w-deep); }
.sw-castlist .credits { margin-top:var(--s-2); background:#fff; }

/* ---------- galéria ---------- */
.sw-gallery { padding-bottom:calc(var(--section) * .7); }
.sw-gallery .carousel-controls button { width:44px; height:44px; border-radius:50%; border:1px solid var(--w-deep); background:#fff; color:var(--w-deep); font-size:1.4rem; cursor:pointer; }
.sw-gallery .carousel-controls button:hover { background:var(--w-deep); border-color:var(--w-deep); color:#fff; }
.sw-gallery__track { list-style:none; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(260px, 31%); gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:var(--s-3); scrollbar-width:thin; scrollbar-color:var(--w-gold) transparent; }
.sw-gallery__track li { scroll-snap-align:start; }
.sw-gallery__track figure { margin:0; }
.sw-gallery__track img { width:100%; aspect-ratio:4/3; object-fit:cover; border:6px solid #fff; outline:1px solid color-mix(in srgb, var(--w-gold) 60%, transparent); background:var(--w-soft); }
.sw-gallery__track img.is-poster-img { object-fit:contain; }
.sw-gallery__track figcaption { margin-top:.4rem; font-size:.74rem; color:var(--ink-soft); }

/* ---------- tematikus zárósáv ---------- */
.sw-band { position:relative; overflow:hidden; isolation:isolate; padding-block:clamp(3rem, 2rem + 4vw, 6rem); color:#FFF8EE; text-align:center;
  background:radial-gradient(60% 90% at 50% 120%, color-mix(in srgb, var(--w-accent) 55%, transparent), transparent 70%), var(--w-deep); }
.sw-band::before { content:""; position:absolute; inset:0; z-index:-1; background-image:repeating-conic-gradient(from -90deg at 50% 120%, rgba(255,255,255,.06) 0 1.4deg, transparent 1.4deg 6deg); }
.sw-band.has-photo { background:linear-gradient(90deg, color-mix(in srgb, var(--w-deep) 92%, transparent), color-mix(in srgb, var(--w-deep) 78%, transparent) 50%, color-mix(in srgb, var(--w-deep) 92%, transparent)), var(--band-img) center 30% / cover no-repeat, var(--w-deep); }
.sw-band.has-photo::before { background-image:repeating-conic-gradient(from -90deg at 50% 120%, rgba(255,255,255,.05) 0 1.2deg, transparent 1.2deg 6deg); }
.sw-band::after { content:""; position:absolute; inset:12px; border:1px solid color-mix(in srgb, var(--w-gold) 60%, transparent); pointer-events:none; }
.sw-band__inner { display:grid; justify-items:center; gap:var(--s-4); max-width:44rem; }
.sw-band .sw-eyebrow { color:var(--w-gold); }
.sw-band h2 { font-size:clamp(2.1rem, 1.4rem + 2.4vw, 3.6rem); color:#FFF8EE; }
.sw-band p:not(.sw-eyebrow) { font-size:var(--t-lead); color:rgba(255,248,238,.88); }
.sw-band .button { background:var(--w-accent); border-color:var(--w-accent); color:var(--w-on-accent); border-radius:999px; }
.sw-band .button:hover { background:#FFF8EE; border-color:#FFF8EE; color:var(--w-deep); }
.sw-band__art { position:absolute; z-index:-1; width:clamp(120px, 6rem + 12vw, 300px); opacity:.5; }
.sw-band__art--l { left:3%; bottom:-6%; transform:rotate(-10deg); }
.sw-band__art--r { right:3%; top:-4%; transform:rotate(10deg); opacity:.35; }

/* ---------- időpontok és alkotók ---------- */
.sw-tail { padding-block:var(--section); }
.sw-tail .show-schedule { padding-top:0; border:0; }
.sw-tail .show-schedule h2 { color:var(--w-deep); }

.more-dates summary { cursor:pointer; min-height:44px; display:flex; align-items:center; font:700 .8rem/1.3 var(--f-sans); letter-spacing:.12em; text-transform:uppercase; color:var(--w-ink); }

/* ---------- mozgás ---------- */
/* felúszó szakaszok görgetéskor – csak ahol a böngésző ismeri a görgetéshez kötött animációt;
   máshol a tartalom egyszerűen látszik, semmi nem marad rejtve */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion:no-preference) {
    .reveal { animation:sw-reveal linear both; animation-timeline:view(); animation-range:entry 0% cover 28%; }
  }
}
@keyframes sw-reveal { from { transform:translateY(46px) scale(.97); } }
@media (prefers-reduced-motion:no-preference) {
  .sw-curtain--l,.sw-curtain--r { animation:sw-curtain 1.8s .2s cubic-bezier(.3,.7,.2,1) both; }
  .sw-float { animation:sw-bob 7s ease-in-out infinite; }
  .sw-float--2 { animation-duration:9s; animation-delay:-3s; }
  .sw-band__art { animation:sw-bob 8s ease-in-out infinite; }
  .sw-title__a { animation:sw-rise .9s .15s cubic-bezier(.2,.7,.2,1) both; }
  .sw-title__b { animation:sw-rise .9s .3s cubic-bezier(.2,.7,.2,1) both; }
  .sw-quote { animation:sw-rise .8s 1.2s cubic-bezier(.2,.7,.2,1) both; }
}
@keyframes sw-curtain { from { transform:scaleX(3.4); } to { transform:scaleX(1); } }
@keyframes sw-bob { 50% { translate:0 -12px; } }
@keyframes sw-rise { from { opacity:0; transform:translateY(18px); } }

/* ---------- reszponzív ---------- */
@media (max-width:1100px) {
  
  .sw-story__text { grid-column:1 / -1; grid-row:1; }
  .sw-dates__inner,.sw-dates.is-empty .sw-dates__inner { grid-template-columns:1fr; gap:var(--s-3); }
  .sw-dates ol { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .sw-dates li a { border-left:0; border-top:1px solid color-mix(in srgb, var(--w-gold) 40%, transparent); }
  
}
@media (max-width:900px) {
  .sw-hero__grid { grid-template-columns:1fr; }
  .sw-quote { left:.5rem; bottom:-1.25rem; }
  .sw-hero__stage { margin-bottom:1.5rem; }
}
@media (max-width:640px) {
  
  
  .sw-dates ol { grid-template-columns:1fr; }
  
  
  .sw-gallery__track { grid-auto-columns:82%; }
  .sw-hero__panel { outline-offset:-7px; }
  .sw-stage__frame { border-width:6px; }
  .sw-hero__stage.is-poster .sw-stage__frame > img { padding:6% 14% 2%; }
}

/* ---------- gyermek-bőr (06 Riviera Pop) ---------- */
.show-world--kids { --w-gold:#FFC845; --w-cream:#FFF6EA; }
.show-world--kids .sw-hero { background:none; }
.show-world--kids .sw-hero > .world-scene { position:absolute; inset:0; width:100%; height:100%; z-index:-2; }
.show-world--kids .sw-hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(255,246,234,.55), rgba(255,246,234,.1) 60%, transparent); }
.show-world--kids .sw-hero__panel { border-radius:30px; border:3px solid #fff; outline:3px solid var(--w-gold); outline-offset:0; background:rgba(255,255,255,.93); box-shadow:0 30px 60px -30px rgba(6,63,70,.55); }
.show-world--kids .corner-deco { display:none; }
.show-world--kids .sw-keywords { font-family:var(--f-sans); font-weight:900; letter-spacing:.12em; }
.show-world--kids .sw-title { line-height:.95; }
.show-world--kids .sw-title__a { font-style:normal; font-weight:800; text-shadow:0 4px 0 color-mix(in srgb, var(--w-accent) 55%, transparent); }
.show-world--kids .sw-title__b { font-weight:800; }
.show-world--kids .sw-title.has-sub .sw-title__b { font-style:normal; }
.show-world--kids .sw-stage__frame { border-radius:999px 999px 28px 28px; border:10px solid #fff; outline:4px solid var(--w-gold); aspect-ratio:4/4.4; }
.show-world--kids .sw-hero__stage.is-poster .sw-stage__frame > img { padding:16% 14% 4%; }
.show-world--kids .sw-curtain { background:repeating-linear-gradient(90deg, #C8344E 0 12px, #A92440 12px 18px, #D84A60 18px 28px); }
.show-world--kids .sw-valance { background:radial-gradient(circle at 50% 0, #C8344E 70%, transparent 71%) 0 0/48px 100% repeat-x; height:7%; }
.show-world--kids .sw-quote { border-radius:24px 24px 24px 6px; border:3px solid var(--w-gold); }
.show-world--kids .sw-quote p { font-family:var(--f-display); font-style:normal; font-weight:800; }
.show-world--kids .sw-dates { background:#fff; }
.show-world--kids .sw-dates li a { border-radius:18px; border:0; margin:.2rem; background:color-mix(in srgb, var(--w-soft) 70%, #fff); }
.show-world--kids .sw-dates__label { font-family:var(--f-display); font-weight:800; }
.show-world--kids .sw-cast__card,.show-world--kids .sw-gallery__track img { border-radius:24px; }
.show-world--kids .sw-cast__card { overflow:hidden; border:3px solid #fff; outline:2px solid color-mix(in srgb, var(--w-accent) 40%, transparent); }
.show-world--kids .sw-section-head h2 { font-family:var(--f-display); font-weight:800; letter-spacing:.06em; }
.show-world--kids .sw-band { border-radius:40px 40px 0 0; }
.show-world--kids .sw-band::after { border-radius:30px; border:2px dashed rgba(255,255,255,.35); }

@media (prefers-reduced-motion:no-preference) {
  .show-world--kids .sw-float { animation:sw-bob 4.5s ease-in-out infinite, sw-spin 18s linear infinite; }
}
@keyframes sw-spin { to { rotate:360deg; } }
@media (max-width:900px) { .show-world--kids .sw-hero::after { background:rgba(255,246,234,.35); } }
.sw-band .cta-row { justify-content:center; }

/* ======================================================================
   Felnőtt előadásoldal – plakátszerű, elegáns nyitókép. A fotó egészben, élesen,
   eredeti színeivel; csak a szöveg felőli széle olvad a lapba. Semmi nincs a képen.
   ====================================================================== */
.show-world--adult { --section:clamp(2.25rem, 1.5rem + 2.6vw, 4rem); }
.sw-poster { position:relative; isolation:isolate; overflow:hidden; display:grid; align-items:center; min-height:clamp(540px, 44vw, 760px); padding:0; background:var(--w-cream); }
.sw-poster__media { position:absolute; inset:0 0 0 auto; width:min(66%, 1240px); margin:0; z-index:-1; }
.sw-poster__img { width:100%; height:100%; object-fit:cover; object-position:50% 35%;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, rgba(0,0,0,.55) 14%, #000 32%); mask-image:linear-gradient(90deg, transparent 0, rgba(0,0,0,.55) 14%, #000 32%); }
.sw-poster__grid { position:relative; padding-block:clamp(2.25rem, 1.25rem + 3vw, 4.5rem); }
.sw-poster__panel { display:grid; gap:var(--s-4); justify-items:start; width:min(100%, 36rem, 39vw); }
.sw-poster .sw-title__a { font-size:clamp(3rem, 1.1rem + 5.6vw, 7rem); }
.sw-poster .sw-title__b { font-size:clamp(2.5rem, 1rem + 4.4vw, 5.6rem); }
.sw-poster .sw-title.has-long-word .sw-title__a,.sw-poster .sw-title.has-long-word .sw-title__b { font-size:clamp(2rem, .7rem + 3.3vw, 4.3rem); }
.sw-poster .sw-title.has-sub .sw-title__a { font-size:clamp(2.4rem, 1rem + 4vw, 5.2rem); }
.sw-poster .sw-title.has-sub .sw-title__b { font-size:clamp(1.25rem, .9rem + 1.1vw, 2rem); }
.sw-poster .sw-lead { color:var(--ink); }
/* fotó nélkül: tipográfiai nyitókompozíció a darab kulcsszavaiból (Art Deco, plakát nélkül) */
.sw-poster__media.is-type { display:grid; place-items:center; width:52%; background:radial-gradient(ellipse 80% 70% at 50% 45%, color-mix(in srgb, var(--w-accent) 28%, var(--w-deep)), var(--w-deep)); }
.sw-poster__media.is-type::before { content:""; position:absolute; inset:18px; border:1px solid color-mix(in srgb, var(--w-gold) 70%, transparent); outline:1px solid color-mix(in srgb, var(--w-gold) 35%, transparent); outline-offset:6px; pointer-events:none; }
.sw-typeart { position:relative; display:grid; justify-items:center; gap:.15em; padding:2rem; text-align:center; color:#FFF8EE; }
.sw-typeart__w { font:600 clamp(1.6rem, .8rem + 2.4vw, 3.4rem)/1.05 var(--f-display); letter-spacing:.01em; }
.sw-typeart__w.is-0 { font-size:clamp(2.4rem, 1rem + 4vw, 5.4rem); font-style:italic; color:var(--w-gold); }
.sw-typeart__w.is-2 { font-style:italic; }
.sw-typeart__w.is-3 { font:700 clamp(.8rem, .6rem + .5vw, 1.1rem)/1.4 var(--f-sans); letter-spacing:.32em; text-transform:uppercase; color:color-mix(in srgb, var(--w-soft) 85%, #fff); margin-top:.4em; }
.sw-typeart__rule { width:min(220px, 60%); height:7px; border-block:1px solid var(--w-gold); margin:.6em 0; }
.sw-band__print img  { width:100%; height:auto; box-shadow:0 34px 60px -32px rgba(15,29,56,.55); }
.sw-band__print figcaption  { margin-top:.6rem; text-align:center; font:700 .62rem/1.3 var(--f-sans); letter-spacing:.1em; text-transform:uppercase; color:var(--w-deep); }

/* történet: két teljes, vágatlan fotó a szöveg két oldalán */
.sw-tale { padding-block:clamp(2.25rem, 1.5rem + 2.5vw, 3.75rem); background:linear-gradient(180deg, color-mix(in srgb, var(--w-soft) 35%, var(--w-cream)), var(--w-cream)); }

.show-world--adult .sw-castlist { padding-block:clamp(2rem, 1.25rem + 2vw, 3.25rem); }
.show-world--adult .sw-tail { padding-block:clamp(2rem, 1.25rem + 2vw, 3.25rem); }

/* galéria: természetes képarány, nincs vágás */
.show-world--adult .sw-gallery { padding-block:clamp(1.75rem, 1rem + 2vw, 3rem); }
.show-world--adult .sw-gallery__track { display:flex; gap:14px; grid-auto-flow:unset; }
.show-world--adult .sw-gallery__track li { flex:0 0 auto; height:clamp(210px, 18vw + 60px, 330px); aspect-ratio:var(--ar); }
.show-world--adult .sw-gallery__track figure { height:100%; }
.show-world--adult .sw-gallery__track img { width:100%; height:100%; aspect-ratio:auto; object-fit:contain; border:0; outline:0; border-radius:4px; background:none; box-shadow:0 18px 30px -24px rgba(15,29,56,.55); }

/* zárósáv: tiszta tipográfia, mellette a valódi plakát – dísz nélkül */
.sw-band--plain { text-align:left; }
.sw-band--plain::before { display:none; }
.sw-band__layout { display:grid; grid-template-columns:minmax(0,1fr); align-items:center; gap:clamp(1.5rem, 1rem + 3vw, 4rem); }
.sw-band--plain.has-print .sw-band__layout { grid-template-columns:minmax(0,1fr) auto; }
.sw-band--plain .sw-band__inner { justify-items:start; max-width:46rem; }
.sw-band--plain .cta-row { justify-content:flex-start; }
.sw-band__print { margin:0; width:clamp(150px, 6rem + 9vw, 250px); }
.sw-band__print figcaption { color:rgba(255,248,238,.85); }
.sw-band .text-link { color:#FFF8EE; }

@media (prefers-reduced-motion:no-preference) {
  .sw-poster__img { animation:sw-poster-in 1.4s cubic-bezier(.2,.7,.2,1) both; }
}
@keyframes sw-poster-in { from { transform:scale(1.04); } }

@media (max-width:900px) {
  .sw-poster { display:block; min-height:0; }
  .sw-poster__media { position:relative; inset:auto; width:100%; height:auto; aspect-ratio:3/2; z-index:0; }
  .sw-poster__img { -webkit-mask-image:linear-gradient(0deg, transparent 0, #000 18%); mask-image:linear-gradient(0deg, transparent 0, #000 18%); }
  .sw-poster__media.is-type { width:100%; aspect-ratio:auto; min-height:300px; }
  .sw-poster__grid { margin-top:-1.5rem; padding-top:0; }
  .sw-poster__panel { width:100%; }
  
  
  .sw-band--plain.has-print .sw-band__layout { grid-template-columns:minmax(0,1fr); }
  .sw-band__print { justify-self:center; }
}
@media (max-width:640px) {
  
  .show-world--adult .sw-gallery__track li { height:220px; }
}

/* gyermekoldal: a valódi fotó egészben, élesen, függöny és felirat nélkül */
.show-world--kids .sw-hero__stage.is-photo .sw-stage__frame { border-radius:28px; border:0; outline:0; background:none; box-shadow:0 30px 60px -30px rgba(6,63,70,.5); }
.show-world--kids .sw-hero__stage.is-photo .sw-stage__frame > img { object-fit:cover; }

.show-world--kids .sw-gallery__track img { aspect-ratio:auto; height:clamp(200px, 16vw + 60px, 300px); width:auto; max-width:none; object-fit:contain; }
.show-world--kids .sw-gallery__track { grid-auto-columns:max-content; }
.sw-archive-note { width:fit-content; max-width:100%; margin:.7rem 0 0 auto; padding:.35rem .8rem; border-radius:999px; background:rgba(255,255,255,.94); font:600 .78rem/1.4 var(--f-sans); color:#2F3B3D; box-shadow:0 6px 16px -10px rgba(6,63,70,.5); }

/* 2026-10-21 — Olvashatóság: a felnőtt arculat nagyobb betűskálájához igazítva */
.atelier03 .csokos-back,
.atelier03 .csokos-hero__kicker,
.atelier03 .csokos-hero__kicker span,
.atelier03 .csokos-hero__secondary,
.atelier03 .csokos-hero__lower,
.atelier03 .csokos-hero__lower a,
.atelier03 .csokos-upcoming__all,
.atelier03 .csokos-text-link { font-size:.84rem; }
.atelier03 .csokos-label { font-size:.86rem; }
.atelier03 .csokos-credit dt { font-size:.9rem; }
.atelier03 .csokos-gallery__photo figcaption { font-size:.84rem; }
.atelier03 .csokos-story__details summary { font-size:.9rem; }
.atelier03 .csokos-upcoming__label,
.atelier03 .csokos-upcoming__none { font-size:.9rem; }

/* ═══════════════════════════════════════════════════════════════════════════
   2026-10-21 — Történet: egyetlen, a háttérbe olvadó kép. Asztalon a fotó a sáv jobb
   oldalát tölti ki saját képarányához közel (alig vágva), balra-fel-le elhalványulva,
   a szöveg mellette él; iPaden és telefonon a kép a sáv tetején, lefelé a szövegbe olvad.
   ═══════════════════════════════════════════════════════════════════════════ */
.sw-blend { --bh:clamp(26rem, 36vw, 38rem); --mw:min(58vw, calc(var(--bh) * clamp(1, var(--ar, 1.5), 1.7)));
  position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:center; min-height:var(--bh); padding-block:clamp(2.25rem, 1.5rem + 2vw, 3.5rem); }
.sw-blend__grid { position:relative; z-index:1; }
.sw-blend .sw-story__text { max-width:min(44rem, calc(100% - var(--mw) + (100vw - 100%) / 2 + 5rem)); }
.sw-blend .sw-story__text .description { font-size:1.06rem; }
.sw-blend__media { position:absolute; z-index:0; inset:0 0 0 auto; width:var(--mw); margin:0;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, rgba(0,0,0,.5) 16%, #000 38%), linear-gradient(180deg, transparent 0, #000 12%, #000 88%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg, transparent 0, rgba(0,0,0,.5) 16%, #000 38%), linear-gradient(180deg, transparent 0, #000 12%, #000 88%, transparent 100%);
  mask-composite:intersect; }
.sw-blend__media > img { display:block; width:100%; height:100%; object-fit:cover; }
.sw-blend__media > img:not([style]) { object-position:50% 30%; }
.sw-blend__media > .sw-illustration { position:absolute; inset:0; }
.sw-blend.is-art { --ar:1.3; }
.sw-blend.no-media { min-height:0; }
.sw-blend.no-media .sw-story__text { max-width:none; justify-items:stretch; }
.sw-blend.no-media .description { max-width:none; columns:2 20rem; column-gap:3rem; }
.sw-blend.no-media .sw-story__text > .outline-button { justify-self:start; }
@media (max-width:1100px) {
  .sw-blend { display:block; min-height:0; padding-top:0; }
  .sw-blend__media { position:relative; inset:auto; width:100%; height:auto; aspect-ratio:clamp(1.3, var(--ar, 1.5), 2); max-height:62vh;
    -webkit-mask-image:linear-gradient(180deg, #000 62%, transparent 100%); mask-image:linear-gradient(180deg, #000 62%, transparent 100%); }
  .sw-blend .sw-story__text { max-width:none; margin-top:-2.25rem; }
  .sw-blend.no-media { padding-top:clamp(2.25rem, 1.5rem + 2vw, 3.5rem); }
  .sw-blend.no-media .sw-story__text { margin-top:0; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   2026-10-21 — Plakát teljes képernyőn: a plakátra kattintva sötét, teljes képernyős
   nézet; a kép a képernyőhöz igazodik, koppintásra eredeti méretre nagyít.
   ═══════════════════════════════════════════════════════════════════════════ */
[data-poster-zoom] { cursor:zoom-in; }
[data-poster-zoom]:focus-visible { outline:3px solid var(--w-gold, #C9A24A); outline-offset:4px; }
html.has-lightbox { overflow:hidden; }
.poster-lightbox { position:fixed; inset:0; width:100vw; height:100vh; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:rgba(8,12,22,.94); color:#fff; overscroll-behavior:contain; }
.poster-lightbox::backdrop { background:rgba(8,12,22,.94); }
.poster-lightbox__stage { position:absolute; inset:0; display:grid; place-items:center; overflow:auto; padding:1rem .75rem 2.75rem; }
.poster-lightbox__img { display:block; max-width:calc(100vw - 1.5rem); max-height:calc(100vh - 3.75rem); max-height:calc(100dvh - 3.75rem); width:auto; height:auto; object-fit:contain; cursor:zoom-in; box-shadow:0 30px 80px rgba(0,0,0,.55); }
.poster-lightbox.is-zoomed .poster-lightbox__stage { display:block; padding:0; }
.poster-lightbox.is-zoomed .poster-lightbox__img { max-width:none; max-height:none; width:max(100%, 1200px); margin:0 auto; cursor:zoom-out; }
.poster-lightbox__close { position:absolute; top:max(.75rem, env(safe-area-inset-top)); right:max(.75rem, env(safe-area-inset-right)); z-index:2; width:48px; height:48px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.55); border-radius:50%; background:rgba(8,12,22,.7); color:#fff; font:400 2rem/1 var(--f-sans, sans-serif); cursor:pointer; }
.poster-lightbox__close:hover,.poster-lightbox__close:focus-visible { background:#fff; color:#0B1630; outline:none; }
.poster-lightbox__hint { position:absolute; left:0; right:0; bottom:max(.6rem, env(safe-area-inset-bottom)); margin:0; text-align:center; font:600 .8rem/1.3 var(--f-sans, sans-serif); letter-spacing:.04em; color:rgba(255,255,255,.78); pointer-events:none; }
.poster-lightbox.is-zoomed .poster-lightbox__hint { display:none; }
