/* home page: social icons, movie detail popup, review popup */
.menu .stu{color:var(--y);font-weight:700;white-space:nowrap}
.menu .check{margin-left:auto}
.menu .check+.stu{margin-left:clamp(12px,2vw,28px)}
@media(max-width:900px){.menu .check,.menu .check+.stu{margin-left:0}}

.social{display:flex;gap:14px;margin-top:6px}
.social a{display:block;width:46px;height:46px;border-radius:12px;transition:transform .15s,filter .15s}
.social a:hover{transform:translateY(-3px) scale(1.05);filter:brightness(1.1)}
.social svg{width:100%;height:100%}
.social .fb svg{border-radius:50%}
.contact .social-t{color:var(--mute);margin:1em 0 .4em}

.poster{cursor:pointer}
.card h3.t{cursor:pointer}.card h3.t:hover{color:var(--y)}
.fav{z-index:3}
.fav[aria-pressed=true]{color:#ff5a5a}

/* generic dark popup */
.xdlg{border:0;border-radius:18px;background:#151515;color:#fff;padding:0;width:min(96vw,1000px);max-height:92dvh;overflow:hidden;position:fixed;inset:0;margin:auto;box-shadow:0 30px 80px #000a}
.xdlg::backdrop{background:#000c;backdrop-filter:blur(3px)}
.xclose{position:absolute;top:10px;right:12px;z-index:5;width:44px;height:44px;border:0;border-radius:50%;background:#000a;color:#fff;font-size:1.8em;line-height:1;cursor:pointer}
.xclose:hover{background:#000}

/* movie detail */
.mgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);height:min(92dvh,640px)}
.minfo{padding:clamp(22px,3vw,44px);display:flex;flex-direction:column;gap:14px;overflow:auto}
.mkick{color:var(--r);letter-spacing:.16em;font-size:.82em}
.mtitle{font:400 clamp(42px,5vw,76px)/.92 var(--bb);letter-spacing:.08em;margin:0;white-space:normal;margin-right:0}
.mth{font-size:1.25em;font-weight:700;color:#e0e0e0;margin-top:-6px}
.mchips{display:flex;flex-wrap:wrap;gap:8px}
.mchips span{border:1px solid #444;border-radius:20px;padding:2px 13px;color:#cfcfcf;font-size:.88em}
.mchips .g{border-color:var(--y);color:var(--y)}
.msyn{color:#cdcdcd;line-height:1.75;white-space:pre-line}
.mdates{color:#aaa;font-size:.92em}
.mdates b{color:var(--y)}
.mprice{display:flex;gap:10px 22px;flex-wrap:wrap;align-items:baseline}
.mprice span{color:#aaa;font-size:.9em}
.mprice b{font:400 1.9em/1 var(--bb);letter-spacing:.05em}
.mprice .st b{color:var(--y)}
.mtimes{display:flex;gap:8px;flex-wrap:wrap}
.mtimes a{border:1px solid var(--y);color:var(--y);border-radius:8px;padding:.1em 1em;transition:background .15s,color .15s}
.mtimes a:hover{background:var(--y);color:#000}
.minfo .btn{margin-top:auto;min-height:52px;font-size:1.05em;align-self:stretch}
.mmedia{position:relative;background:#000;display:grid;place-items:center;overflow:hidden}
.mmedia iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mmedia.fx{display:block}
.mmedia .noimg{color:#555;display:grid;place-items:center;gap:8px}
.mmedia .tag{position:absolute;left:12px;bottom:12px;z-index:2;background:#000a;border:1px solid #fff3;border-radius:20px;padding:2px 12px;font-size:.8em;letter-spacing:.1em;color:#ddd}

/* review */
.rdlg{width:min(94vw,480px)}
.rbody{padding:clamp(22px,3vw,34px)}
.rbody h2{font:400 2.1em/1 var(--bb);letter-spacing:.08em;margin:0 0 4px;white-space:normal}
.rbody .sub{color:#aaa;margin-bottom:16px}
.stars{display:flex;gap:4px;margin:6px 0 14px}
.stars button{background:none;border:0;cursor:pointer;width:46px;height:46px;padding:0;color:#444;transition:transform .12s,color .12s}
.stars button svg{width:100%;height:100%}
.stars button.on{color:var(--y)}
.stars button:hover{transform:scale(1.12)}
.rbody label{display:block;color:#bbb;font-size:.9em;margin-bottom:12px}
.rbody input,.rbody textarea{display:block;width:100%;margin-top:5px;border:1px solid #3a3a3a;border-radius:10px;background:#0d0d0d;color:#fff;padding:12px;font:inherit;font-size:max(16px,1em)}
.rbody textarea{min-height:110px;resize:vertical}
.rbody input:focus,.rbody textarea:focus{outline:2px solid var(--y);outline-offset:1px}
.rbody .err{color:#ff6b6b;margin:0 0 10px}
.rbody .btn{width:100%;min-height:50px;border:0;cursor:pointer;font-family:inherit;font-size:1.02em}
.rbody .btn:disabled{opacity:.5;cursor:not-allowed}
.rdone{text-align:center;padding:10px 0}
.rdone p{color:#ccc;margin:10px 0 18px}

@media(max-width:760px){
  .mgrid{grid-template-columns:1fr;height:auto;max-height:92dvh;overflow:auto}
  .mmedia{order:-1;aspect-ratio:16/9;min-height:0}
  .mmedia.fx.poster-only{aspect-ratio:4/3}
  .minfo{overflow:visible}
  .xdlg{overflow:auto}
}

/* cinema carousel */
.cxd{width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;border-radius:0;border:0;inset:0;margin:0;background:radial-gradient(ellipse 80% 55% at 50% 40%,#2a2a2acc,#0b0b0bf2 70%);backdrop-filter:blur(10px);overflow:hidden}
.cxd[open]{display:flex;flex-direction:column}
.cx-head{text-align:center;padding:clamp(18px,3.4vh,40px) 70px 0}
.cx-head h2{font:400 clamp(40px,6vw,84px)/.95 var(--bb);letter-spacing:.14em;margin:6px 0 6px;white-space:normal;color:#f2f2f2}
.cx-head p{color:#9a9a9a;font-size:.95em}
.cx-wrap{position:relative;flex:1;min-height:0;display:flex;align-items:center}
.cx-track{--cw:clamp(210px,min(26vw,38vh),340px);flex:1;display:flex;align-items:center;gap:clamp(16px,2.6vw,40px);overflow-x:auto;overflow-y:hidden;height:100%;padding:0 calc(50% - var(--cw)/2);scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab;outline:0}
.cx-track::-webkit-scrollbar{display:none}
.cx-track.drag{cursor:grabbing;scroll-snap-type:none}
.cx-card{--k:0;flex:none;width:var(--cw);scroll-snap-align:center;scroll-snap-stop:always;transform:scale(calc(.8 + .2*var(--k)));opacity:calc(.4 + .6*var(--k));transform-origin:center;transition:transform .12s linear,opacity .12s linear;user-select:none;-webkit-user-select:none}
.cx-poster{position:relative;display:block;aspect-ratio:3/4;border-radius:20px;overflow:hidden;background:#222;box-shadow:0 22px 60px #000c,0 0 0 calc(3px*var(--k)) #f4c01acc,0 0 calc(50px*var(--k)) #f4c01a55;display:grid;place-items:center;color:#555}
.cx-poster .badge{font-size:.8em}
.cx-poster>svg{width:30%;height:auto}
.cx-info{margin-top:16px;text-align:center}
.cx-info h3{font:700 clamp(18px,1.9vw,26px)/1.2 inherit;margin:0 0 4px}
.cx-info h3 a:hover{color:var(--y)}
.cx-date{color:var(--y);font-size:.95em;margin-bottom:8px}
.cx-times{display:flex;gap:7px;justify-content:center;flex-wrap:wrap}
.cx-times a{border:1px solid #f4c01a99;color:var(--y);border-radius:8px;padding:0 .8em;font-size:.95em;transition:background .15s,color .15s}
.cx-times a:hover{background:var(--y);color:#000}
.cx-go{display:inline-flex;align-items:center;gap:8px;margin-top:12px;background:var(--y);color:#000;border-radius:10px;padding:0 20px;min-height:42px;font-weight:700;opacity:var(--k);transition:filter .15s}
.cx-go:hover{filter:brightness(1.08)}
.cx-arrow{position:absolute;top:42%;z-index:4;width:56px;height:56px;border-radius:50%;border:1px solid #ffffff2a;background:#000a;color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .15s,transform .15s,opacity .2s}
.cx-arrow:hover{background:var(--y);color:#000;transform:scale(1.08)}
.cx-arrow:disabled{opacity:.25;pointer-events:none}
.cx-arrow svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.cx-arrow.prev{left:clamp(8px,2.4vw,40px)}.cx-arrow.next{right:clamp(8px,2.4vw,40px)}
.cx-dots{display:flex;justify-content:center;gap:8px;padding:6px 0 clamp(14px,3vh,28px);flex-wrap:wrap}
.cx-dots i{width:8px;height:8px;border-radius:50%;background:#555;transition:width .2s,background .2s}
.cx-dots i.on{width:28px;border-radius:8px;background:var(--y)}
@media(max-width:700px){.cx-arrow{display:none}.cx-head{padding:18px 56px 0}}
@media(hover:none){.cx-track{cursor:auto}}

/* next programme: small posters under the main grid */
.upnext{padding-top:0}
.upnext h2{font-size:clamp(22px,2.4vw,36px)}
.grid.small{grid-template-columns:repeat(auto-fill,minmax(120px,150px));gap:clamp(14px,2vw,26px)}
.grid.small .poster{border-radius:10px;font-size:.8em;cursor:pointer}
.grid.small .row{font-size:.82em;margin-top:.5em}
.grid.small .card h3.t{font-size:clamp(14px,1.25vw,17px);margin:.1em 0 0}
.grid.small .badge{font-size:.62em;padding:.35em .4em}
@media(max-width:640px){.grid.small{max-width:none;grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}}
/* next programme / coming soon popups */
.cx-none{flex:none;width:var(--cw);text-align:center;color:#9a9a9a;scroll-snap-align:center}
button.cx-go{border:0;font:inherit;font-weight:700;cursor:pointer}
.cx-poster div.badge{position:absolute}

/* home: one block per screening day */
.days .day+.day{margin-top:clamp(30px,4vw,60px)}
.dayh{display:flex;align-items:center;gap:12px;font-weight:700;font-size:clamp(18px,1.9vw,27px);line-height:1.2;margin:0 0 clamp(14px,1.8vw,26px);padding-bottom:10px;border-bottom:1px solid #333}
.dayh b{background:var(--y);color:#000;border-radius:8px;padding:.05em .6em;font-size:.7em;letter-spacing:.06em}
.daygrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.6vw,44px)}
/* later days: 4 per row, smaller poster + text */
.daygrid.d4{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.8vw,28px)}
.d4 .poster{border-radius:10px;font-size:.78em}
.d4 .card h3.t{font-size:clamp(15px,1.3vw,20px);margin:.15em 0 .25em}
.d4 .row{font-size:.82em}
.d4 .times{gap:6px}
.d4 .times a,.d4 .times span{font-size:.92em;min-width:3.6em;padding:.08em .6em}
.d4 .times small{font-size:.85em}
.d4 .ov{padding:6% 6%;border-radius:10px}
.d4 .ov h3{font-size:1.1em}
.d4 .ov p{font-size:.82em}
.d4 .ov .btn{min-height:38px;font-size:.85em}
.d4 .badge{font-size:.72em;padding:.4em .4em}
.times span{border:1px solid #555;color:#bbb;border-radius:8px;padding:.15em 1.1em;font-size:1.1em;min-width:4.8em;text-align:center}
@media(max-width:1000px){.daygrid{grid-template-columns:repeat(2,minmax(0,1fr))}.daygrid.d4{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.daygrid{grid-template-columns:minmax(0,1fr);max-width:420px}.daygrid.d4{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}}
/* admin: drag to reorder */
.sorthint{margin:-18px 0 18px;color:var(--y);font-size:.92em}
.card[draggable=true]{cursor:grab}
.card.dragging{opacity:.35;outline:2px dashed var(--y);outline-offset:4px;border-radius:14px}

/* hero with a YouTube preview: autoplay (muted) and a taller bar */
.hero.vid{min-height:clamp(430px,43vw,660px)}
.hero-media.has-video{container-type:size;background:#000}
.hero-media.has-video iframe{position:absolute;left:50%;top:50%;width:max(100cqw,177.78cqh);height:max(100cqh,56.25cqw);transform:translate(-50%,-50%);border:0;pointer-events:none}
.hero-media.has-video::after{pointer-events:none}
@media(max-width:900px){.hero.vid{min-height:0}.hero-media.has-video{background:#000}}
