/* ===========================================================
   FEST theme stylesheet
   Design tokens match the approved Figma file 1:1.
   =========================================================== */

@font-face {
  font-family: 'Helvetica';
  src: url('../fonts/Helvetica.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Helvetica';
  src: url('../fonts/Helvetica-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root{
  --ink:#100E0C;
  --ink-2:#1A1714;
  --screen:#F2EEE4;
  --screen-dim:#C9C2B2;
  --marquee:#C81E3A;
  --amber:#E8A33D;
  --film-gray:#8A8478;
  --line:#2a2620;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--ink);
  color:var(--screen);
  font-family:'Work Sans',Arial,sans-serif;
  overflow-x:hidden;
}
h1,h2,h3,h4,.mono-head{font-family:'Helvetica',Arial,sans-serif;text-transform:uppercase;letter-spacing:0.01em;font-weight:700;}
.mono{font-family:'JetBrains Mono',monospace;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;background:none;border:none;color:inherit;}
.wrap{max-width:1312px;margin:0 auto;padding:0 32px;}
ul{list-style:none;}

/* ---------- Sprocket strip ---------- */
.sprocket-strip{height:34px;background:#050403;display:flex;align-items:center;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.sprocket-strip .row{display:flex;gap:22px;padding-left:11px;}
.sprocket-strip span{width:12px;height:12px;border-radius:3px;background:var(--ink);flex:none;}

/* ---------- Top bar (CEBEF) ---------- */
.top-bar{background:var(--ink);border-bottom:1px solid var(--line);}
.top-bar-inner{display:flex;justify-content:flex-end;align-items:center;padding:14px 32px;}
.cebef-link{display:inline-flex;opacity:.9;transition:.2s;}
.cebef-link:hover{opacity:1;}
.cebef-logo{height:26px;width:auto;display:block;}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:250;background:rgba(16,14,12,0.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:78px;}
.site-logo .logo-mark{height:34px;width:auto;}
.logo-fallback{font-family:'Helvetica';font-size:26px;font-weight:700;color:var(--screen);}
.logo-fallback em{font-style:normal;color:var(--marquee);}
.nav-links{display:flex;gap:34px;font-size:14px;}
.nav-links a{opacity:.82;transition:.2s;}
.nav-links a:hover,.nav-links .current-menu-item a{opacity:1;color:var(--screen);}
/* Dropdown behavior is desktop-only — scoped to .main-nav specifically so it
   can never leak into .mobile-nav-drawer, which reuses the same .nav-links
   class for its own (always-expanded, non-absolute) submenu styling below. */
.main-nav .nav-links li{position:relative;}
.main-nav .nav-links .sub-menu{list-style:none;display:none;flex-direction:column;position:absolute;top:100%;left:0;min-width:220px;background:var(--ink-2);border:1px solid var(--line);padding:14px 0 10px;z-index:50;gap:0;}
.main-nav .nav-links li:hover>.sub-menu,.main-nav .nav-links li:focus-within>.sub-menu{display:flex;}
.main-nav .nav-links .sub-menu li{width:100%;}
.main-nav .nav-links .sub-menu a{display:block;padding:10px 20px;font-size:13.5px;opacity:.85;white-space:nowrap;}
.main-nav .nav-links .sub-menu a:hover{opacity:1;background:rgba(255,255,255,.04);color:var(--amber);}
.main-nav .nav-links li.menu-item-has-children>a::after{content:'▾';font-size:10px;margin-left:6px;opacity:.6;}
.mobile-nav-drawer .sub-menu{list-style:none;padding-left:18px;margin-top:10px;display:flex;flex-direction:column;gap:14px;border-left:1px solid var(--line);}
.header-actions{display:flex;align-items:center;gap:20px;}
.mobile-nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;flex:none;}
.mobile-nav-toggle span{display:block;width:100%;height:2px;background:var(--screen);transition:.25s;}
.mobile-nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.mobile-nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.mobile-nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-nav-drawer{position:fixed;top:0;right:0;height:100vh;width:min(400px,100vw);background:var(--ink-2);border-left:1px solid var(--line);z-index:200;padding:132px 32px 32px;display:flex;flex-direction:column;gap:32px;transform:translateX(100%);transition:transform .28s ease;overflow-y:auto;}
.mobile-nav-drawer.open{transform:translateX(0);}
.mobile-nav-drawer .nav-links{display:flex;flex-direction:column;gap:22px;font-size:17px;}
.mobile-nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:190;opacity:0;pointer-events:none;transition:opacity .25s ease;}
.mobile-nav-backdrop.open{opacity:1;pointer-events:auto;}
.cta-mobile{align-self:flex-start;}
.lang-switcher{display:flex;align-items:center;gap:30px !important;}
.lang-switcher.mobile{display:flex;gap:10px;}
body.nav-open{overflow:hidden;}
.lang-switcher ul,.lang-switcher ul li{list-style:none !important;list-style-type:none !important;}
.lang-switcher ul{display:flex !important;gap:10px;margin:0 !important;padding:0 !important;}
.lang-switcher li{margin:0 !important;padding:0 !important;}
.lang-switcher a{font-size:12px;letter-spacing:.05em;opacity:.7;margin:0 4px;text-transform:uppercase;}
.lang-switcher a.pll-language-current,.lang-switcher a:hover{opacity:1;color:var(--amber);}
.cta{border:1px solid var(--screen);padding:10px 20px;font-size:13px;letter-spacing:.06em;border-radius:2px;transition:.25s;white-space:nowrap;}
.cta:hover{background:var(--marquee);border-color:var(--marquee);}

/* ---------- Hero ---------- */
.hero--image{position:relative;width:100%;line-height:0;padding:0;}
.hero-bg-img{width:100%;height:auto;object-fit:cover;}

/* ---------- Names band ---------- */
.names-band{background:var(--ink-2);padding:22px 0;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.names-track{display:flex;gap:48px;white-space:nowrap;width:max-content;animation:marquee 32s linear infinite;}
.names-track span{font-size:14px;letter-spacing:.08em;color:var(--screen-dim);}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- Section shell ---------- */
section{padding:96px 0;}
.section-bg{background-image:url('../images/section-bg.jpg');background-size:cover;background-position:center;background-repeat:no-repeat;}
.section-head,.section-head-simple{margin-bottom:56px;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;}
.k{font-size:13px;letter-spacing:.14em;color:var(--amber);margin-bottom:12px;display:block;font-family:'Helvetica';font-weight:700;}
.section-head h2,.section-head-simple h2{font-size:clamp(34px,4.6vw,48px);line-height:1.02;}
.section-head p{max-width:340px;color:var(--screen-dim);font-size:15px;line-height:1.6;font-family:'Work Sans';text-transform:none;letter-spacing:0;font-weight:400;}

/* ---------- Page hero (non-homepage pages) ---------- */
.page-hero{padding:80px 0 40px;}
.page-hero .eyebrow{display:block;font-size:13px;letter-spacing:.14em;color:var(--amber);margin-bottom:16px;font-family:'Helvetica';font-weight:700;}
.page-hero h1{font-size:clamp(48px,7vw,72px);line-height:.95;margin-bottom:16px;}
.page-hero p{color:var(--screen-dim);font-size:16px;max-width:640px;text-transform:none;letter-spacing:0;font-weight:400;font-family:'Work Sans';}
.breadcrumb{padding-top:22px;font-size:13px;color:var(--film-gray);}
.breadcrumb a{color:var(--film-gray);}
.breadcrumb span{color:var(--screen-dim);}

/* ---------- About / content-editable (WYSIWYG) ---------- */
.content-editable{color:var(--screen-dim);line-height:1.75;font-size:15.5px;max-width:720px;}
.content-editable h2,.content-editable h3{color:var(--screen);margin:32px 0 16px;}
.content-editable p{margin-bottom:18px;}
.content-editable strong{color:var(--marquee);}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.about-col-right .content-editable{margin-bottom:28px;}
.venue-tags{display:flex;flex-wrap:wrap;gap:10px 28px;margin-bottom:8px;}
.venue-tags span{font-size:14px;color:var(--screen-dim);}

/* ---------- Festival page: stats row, timeline, guests, venues, org ---------- */
.festival-stats-row{display:flex;gap:0;padding-top:48px;padding-bottom:48px;border-top:1px solid var(--line);flex-wrap:wrap;}
.festival-stats-row .stat{flex:1 1 0;padding:0 24px;border-left:1px solid var(--line);}
.festival-stats-row .stat:first-child{border-left:none;padding-left:0;}
.festival-stats-row .stat b{font-family:'Helvetica';font-size:34px;font-weight:700;display:block;color:var(--amber);}
.festival-stats-row .stat span{font-size:11px;letter-spacing:.06em;color:var(--film-gray);}

.festival-timeline-section,.festival-guests-section,.festival-venues-section,.festival-org-section{padding-top:88px;padding-bottom:88px;}
.timeline{margin-top:32px;}
.timeline-row{display:flex;gap:40px;padding:18px 0;border-bottom:1px solid var(--line);align-items:baseline;}
.timeline-year{width:140px;flex:none;font-family:'Helvetica';font-weight:700;font-size:20px;color:var(--marquee);}
.timeline-desc{font-size:15px;color:var(--screen-dim);}

.venue-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:32px;}
.venue-card{background:var(--ink);padding:26px 24px;}
.venue-card h4{font-size:16px;text-transform:none;font-weight:600;margin-bottom:10px;}
.venue-card p{font-size:13.5px;color:var(--screen-dim);line-height:1.6;text-transform:none;font-family:'Work Sans';}

.org-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.org-grid p{color:var(--screen-dim);line-height:1.75;font-size:15px;text-transform:none;font-family:'Work Sans';max-width:480px;}
.org-facts{display:flex;flex-direction:column;gap:20px;}
.org-fact{display:flex;gap:24px;border-bottom:1px solid var(--line);padding-bottom:18px;}
.org-fact span{width:170px;flex:none;font-size:13px;color:var(--amber);font-weight:600;}
.org-fact p{font-size:13.5px;color:var(--screen-dim);margin:0;max-width:none;}
.stat-row{display:flex;gap:40px;margin-top:44px;}
.stat b{font-family:'Helvetica';font-size:44px;font-weight:700;display:block;color:var(--amber);}
.stat span{font-size:12px;letter-spacing:.08em;color:var(--film-gray);}
.about-cta{margin-top:40px;}

/* ---------- Editions ---------- */
.editions{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);border:1px solid var(--line);}
.edition{background:var(--ink);padding:38px 30px;}
.edition .no{font-family:'Helvetica';font-weight:700;font-size:72px;line-height:.8;color:transparent;-webkit-text-stroke:1px #4a443a;}
.edition .yr{font-size:14px;letter-spacing:.1em;color:var(--amber);margin-top:14px;font-family:'Helvetica';font-weight:700;}
.edition .dt{font-size:13px;color:var(--film-gray);margin-top:4px;}
.edition h3{font-size:20px;margin-top:16px;text-transform:none;letter-spacing:0;}
.edition p{font-size:13.5px;color:var(--screen-dim);margin-top:8px;line-height:1.6;text-transform:none;font-family:'Work Sans';font-weight:400;}
.edition .tag{display:inline-block;margin-top:16px;font-size:11px;letter-spacing:.08em;color:var(--marquee);border:1px solid var(--marquee);padding:4px 10px;border-radius:20px;}

/* ---------- Film cards / grid ---------- */
.film-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.film-card{display:flex;flex-direction:column;position:relative;}
.poster{position:relative;aspect-ratio:2/3;border-radius:3px;overflow:hidden;border:1px solid var(--line);background:var(--ink-2);}
.poster img{width:100%;height:100%;object-fit:cover;}
.poster-placeholder{width:100%;height:100%;background:linear-gradient(155deg,#3a3530,#161310);}
.runtime-tag{position:absolute;top:12px;left:12px;z-index:3;font-size:11px;background:rgba(16,14,12,.55);backdrop-filter:blur(4px);padding:4px 8px;border-radius:20px;border:1px solid rgba(242,238,228,.2);}
.venue-tag{position:absolute;bottom:12px;left:12px;z-index:3;font-size:9.5px;background:rgba(16,14,12,.55);padding:4px 8px;border-radius:20px;border:1px solid rgba(232,163,61,.6);color:var(--amber);}
.wishlist-btn-wrap{position:absolute;top:12px;right:12px;z-index:4;}
.wishlist-btn{width:36px;height:36px;border-radius:50%;background:rgba(16,14,12,.55);backdrop-filter:blur(4px);border:1px solid rgba(242,238,228,.3);display:flex;align-items:center;justify-content:center;transition:.2s;}
.wishlist-btn:hover{border-color:var(--marquee);}
.wishlist-btn svg{width:16px;height:16px;fill:none;stroke:var(--screen);stroke-width:1.6;}
.wishlist-btn.active svg{fill:var(--marquee);stroke:var(--marquee);}
.wishlist-btn.active{border-color:var(--marquee);background:rgba(200,30,58,.18);}
.film-meta{margin-top:14px;}
.film-meta .country{font-size:11px;letter-spacing:.1em;color:var(--film-gray);}
.film-meta h3{font-size:18px;margin-top:4px;text-transform:none;letter-spacing:0;}
.film-actions{display:flex;align-items:center;justify-content:space-between;margin-top:14px;}
.view-more{font-size:12.5px;color:var(--screen-dim);border-bottom:1px solid var(--line);padding-bottom:2px;}
.buy-ticket{font-size:12px;letter-spacing:.04em;background:transparent;color:var(--screen);border:1px solid var(--screen-dim);padding:8px 14px;border-radius:2px;display:inline-block;transition:.2s;}
.buy-ticket:hover{background:var(--marquee);border-color:var(--marquee);}
.program-footer{display:flex;justify-content:center;margin-top:52px;}
.btn-outline-wide{display:inline-block;border:1px solid var(--screen-dim);padding:15px 40px;font-size:13px;letter-spacing:.08em;border-radius:2px;}
.btn-outline-wide:hover{border-color:var(--amber);color:var(--amber);}
.loading-msg{color:var(--film-gray);grid-column:1/-1;text-align:center;padding:60px 0;text-transform:none;}

/* ---------- News cards / grid ---------- */
.news-grid{display:grid;grid-template-columns:repeat(var(--news-cols,3),1fr);gap:2px;background:var(--line);border:1px solid var(--line);}
.news-card{background:var(--ink);display:flex;flex-direction:column;}
.news-thumb{aspect-ratio:16/10;position:relative;background:linear-gradient(155deg,#2a2420,#100e0c);overflow:hidden;}
.news-thumb img{width:100%;height:100%;object-fit:cover;}
.news-tag{position:absolute;bottom:20px;left:20px;font-size:10.5px;letter-spacing:.08em;color:var(--amber);border:1px solid var(--amber);padding:4px 9px;border-radius:20px;}
.news-body{padding:26px 28px 30px;}
.news-date{font-size:11.5px;color:var(--film-gray);}
.news-body h3{font-size:19px;line-height:1.25;margin-top:10px;text-transform:none;letter-spacing:0;}
.news-body p{font-size:13.5px;color:var(--screen-dim);line-height:1.6;margin-top:10px;text-transform:none;font-family:'Work Sans';}
.news-read{display:inline-block;margin-top:16px;font-size:12.5px;border-bottom:1px solid var(--line);padding-bottom:2px;}
.category-filter-row{display:flex;gap:10px;flex-wrap:wrap;padding-bottom:32px;}
.chip{padding:9px 16px;border-radius:20px;border:1px solid var(--line);font-size:13px;color:var(--screen-dim);}
.chip.active{background:var(--marquee);border-color:var(--marquee);color:var(--screen);}
.pagination{display:flex;justify-content:center;gap:10px;margin-top:52px;}
.pagination a,.pagination span{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:2px;font-size:13px;color:var(--screen-dim);}
.pagination .current{background:var(--marquee);border-color:var(--marquee);color:var(--screen);}

/* ---------- Award ---------- */
.award{background:linear-gradient(135deg,var(--ink-2),var(--ink));border:1px solid var(--line);padding:64px 56px;display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center;}
.trophy{width:120px;height:120px;border-radius:50%;border:1px solid var(--amber);display:flex;align-items:center;justify-content:center;font-size:14px;text-align:center;color:var(--amber);margin-bottom:26px;}
.award h3{font-size:clamp(28px,3vw,38px);}
.award p{color:var(--screen-dim);line-height:1.7;font-size:15px;text-transform:none;font-family:'Work Sans';}

/* ---------- Footer ---------- */
.site-footer{padding:70px 0 40px;background:var(--ink) url('../images/section-bg.jpg') center/cover no-repeat;}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;padding-bottom:50px;}
.footer-col h4{font-size:12px;letter-spacing:.1em;color:var(--film-gray);margin-bottom:16px;text-transform:uppercase;}
.footer-brand .site-logo{display:inline-block;margin-bottom:14px;}
.footer-brand .logo-mark{height:46px;}
.footer-tagline{color:var(--screen-dim);font-size:14px;max-width:260px;line-height:1.6;}
.footer-col ul li{margin-bottom:10px;}
.footer-col ul a{font-size:14px;color:var(--screen-dim);}
.footer-col ul a:hover{color:var(--amber);}
.footer-partners{display:flex;align-items:center;gap:32px;flex-wrap:wrap;padding:0 0 20px;}
.footer-partners-secondary{display:flex;align-items:center;gap:32px;flex-wrap:wrap;padding:0 0 36px;border-bottom:1px solid var(--line);margin-bottom:40px;}
.footer-partners .partner-logo{height:56px;width:auto;display:block;opacity:.92;}
.footer-partners-secondary .partner-logo{height:24px;width:auto;display:block;opacity:.85;}
.footer-partners .fest-mark{height:48px;}
.partner-divider{width:1px;height:32px;background:var(--line);flex:none;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:26px;font-size:12.5px;color:var(--film-gray);flex-wrap:wrap;gap:12px;}

/* ---------- Program filter bar ---------- */
.filter-bar{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap;padding-bottom:32px;border-bottom:1px solid var(--line);}
.filter-field{display:flex;flex-direction:column;gap:8px;}
.filter-field label{font-size:11.5px;letter-spacing:.1em;color:var(--film-gray);}
.filter-field select{background:var(--ink-2);border:1px solid var(--line);color:var(--screen);padding:13px 14px;border-radius:2px;font-size:14px;min-width:200px;font-family:'Work Sans';}
.filter-reset{font-size:13px;color:var(--marquee);padding-bottom:13px;}
.results-meta{display:flex;justify-content:space-between;align-items:center;padding:32px 0;flex-wrap:wrap;gap:16px;}
.chips-row{display:flex;gap:10px;flex-wrap:wrap;}
.chip-remove{padding:7px 12px;border-radius:20px;border:1px solid var(--amber);color:var(--amber);font-size:12px;display:inline-flex;align-items:center;gap:6px;}

/* ---------- Single film ---------- */
.film-hero{display:flex;gap:56px;padding-top:40px;padding-bottom:60px;}
.screenings-section,.crew-section,.facts-section,.gallery-section{padding-top:64px;padding-bottom:64px;border-top:1px solid var(--line);}

/* ---------- Film detail: trailer ---------- */
.trailer-section{padding-top:64px;padding-bottom:64px;}
.trailer-note{font-size:13px;color:var(--film-gray);font-style:italic;margin-top:4px;}
.trailer-single{max-width:800px;margin-top:32px;}
.video-frame{position:relative;width:100%;padding-top:56.25%;background:#000;border-radius:4px;overflow:hidden;}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.poster-large{width:360px;flex:none;border-radius:4px;overflow:hidden;border:1px solid var(--line);}
.film-info h1{font-size:clamp(40px,5vw,56px);margin:16px 0;}
.film-info .meta-row{color:var(--screen-dim);font-size:13px;margin-bottom:16px;}
.film-info .director{font-weight:600;font-size:18px;margin-bottom:20px;}
.synopsis{color:var(--screen-dim);line-height:1.75;max-width:680px;margin-bottom:34px;}
.film-actions{display:flex;gap:16px;align-items:center;}
.btn-primary{background:var(--marquee);color:var(--screen);padding:15px 28px;font-size:14px;letter-spacing:.05em;border-radius:2px;display:inline-block;}
.btn-primary:hover{background:#a3172f;}

.screenings-table{width:100%;border-collapse:collapse;}
.screenings-table tr{border-bottom:1px solid var(--line);}
.screenings-table td{padding:22px 16px;}
.screenings-table .date{color:var(--amber);}
.screenings-table .venue strong{display:block;}
.screenings-table .venue span{font-size:12.5px;color:var(--film-gray);}

.crew-row{display:flex;gap:40px;flex-wrap:wrap;}
.crew-card{width:190px;}
.crew-card .avatar{width:64px;height:64px;border-radius:50%;background:var(--ink-2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:'Helvetica';color:var(--amber);margin-bottom:14px;}
.crew-card h4{text-transform:none;font-size:15px;letter-spacing:0;}
.crew-card span{font-size:12.5px;color:var(--screen-dim);}

.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.fact{background:var(--ink);padding:24px;}
.fact span{font-size:11px;letter-spacing:.1em;color:var(--film-gray);display:block;margin-bottom:8px;}
.fact p{font-size:14px;color:var(--screen-dim);}

.gallery-row{display:flex;gap:16px;flex-wrap:wrap;}
.gallery-img{flex:1 1 280px;border-radius:3px;overflow:hidden;border:1px solid var(--line);}

/* ---------- Single Vesti article ---------- */
.article-header{text-align:center;padding-top:32px;}
.article-meta-row{display:flex;gap:14px;justify-content:center;align-items:center;margin-bottom:20px;}
.cat-tag{border:1px solid var(--amber);color:var(--amber);padding:6px 12px;border-radius:20px;font-size:11px;}
.article-header h1{font-size:clamp(32px,4.5vw,50px);max-width:920px;margin:0 auto 18px;}
.article-header .lead{color:var(--screen-dim);max-width:760px;margin:0 auto;font-size:18px;text-transform:none;font-family:'Work Sans';}
.article-hero-img{margin:44px auto;border-radius:4px;overflow:hidden;text-align:center;}
.article-hero-img img{width:100%;height:auto;display:inline-block;object-fit:cover;}
.article-body{max-width:760px;margin:0 auto;color:var(--screen-dim);line-height:1.78;font-size:16.5px;}
.article-body p{margin-bottom:26px;}
.article-body blockquote{border-left:3px solid var(--marquee);padding-left:32px;margin:8px 0 26px;color:var(--screen);font-size:20px;line-height:1.5;font-style:italic;}
.related-news{padding-top:64px;padding-bottom:130px;border-top:1px solid var(--line);}
.share-row{display:flex;gap:16px;align-items:center;border-top:1px solid var(--line);padding-top:24px;margin-top:20px;}
.share-row a,.copy-link{font-size:13px;color:var(--screen-dim);}

/* ---------- Festival subnav (hub + 5 subpages) ---------- */
.festival-subnav{display:flex;gap:10px;flex-wrap:wrap;padding:24px 32px 40px;}
.placeholder-note{color:var(--film-gray);font-size:13px;font-style:italic;padding:24px 0;text-transform:none;}
.content-pending{color:var(--film-gray);font-size:16px;padding:40px 0 80px;text-transform:none;font-style:italic;}

/* ---------- Umetnički direktor ---------- */
.director-hero{display:flex;gap:48px;padding-top:8px;padding-bottom:0;align-items:flex-start;}
.director-portrait{width:280px;height:280px;flex:none;border-radius:4px;overflow:hidden;}
.director-portrait img{width:100%;height:100%;object-fit:cover;}
.director-bio{padding-top:4px;flex:1;max-width:none;}
.director-bio p{margin-bottom:18px;}
.director-bio-full{padding-top:36px;padding-bottom:80px;max-width:1312px;}
.director-bio-full p{margin-bottom:18px;}

/* ---------- Jury / Team person cards ---------- */
.jury-group{padding-bottom:56px;padding-top:0;}
.jury-group h2{font-size:26px;margin-bottom:24px;text-transform:none;}
.dept-label{font-size:13px;letter-spacing:.1em;color:var(--amber);margin-bottom:20px;text-transform:uppercase;font-family:'Helvetica';font-weight:700;}
.jury-grid{display:flex;gap:20px;flex-wrap:wrap;}
.person-card{width:220px;background:var(--ink-2);border:1px solid var(--line);padding:22px 20px;}
.person-card .avatar{width:52px;height:52px;border-radius:50%;background:var(--ink);border:1px solid var(--amber);display:flex;align-items:center;justify-content:center;font-family:'Helvetica';font-weight:700;color:var(--amber);margin-bottom:14px;}
.person-card .avatar.muted{border-color:var(--line);color:var(--film-gray);}
.person-card h4{text-transform:none;font-size:15px;letter-spacing:0;margin-bottom:6px;font-weight:600;}
.person-card h4.muted{color:var(--screen-dim);}
.person-card span{font-size:12.5px;color:var(--screen-dim);line-height:1.45;display:block;}
.person-card span.muted-italic{color:var(--film-gray);font-style:italic;}

/* ---------- Sponzori ---------- */
.sponsor-tier-section{margin-bottom:48px;}
.tier-label{display:block;font-size:12px;letter-spacing:.1em;color:var(--film-gray);margin-bottom:20px;text-transform:uppercase;}
.sponsor-tile-row{display:flex;gap:20px;flex-wrap:wrap;}
.sponsor-grid{display:flex;gap:16px;flex-wrap:wrap;}
.sponsor-tile{background:var(--ink-2);border:1px solid var(--line);padding:28px 24px;display:flex;align-items:center;justify-content:center;flex:1 1 280px;min-height:90px;text-align:center;}
.sponsor-tile.large{flex:1 1 320px;padding:22px 28px;}
.sponsor-tile span{font-size:15px;font-weight:600;color:var(--screen);}

/* ---------- Festivalske blagajne ---------- */
.boxoffice-group{padding-top:0;padding-bottom:48px;}
.boxoffice-group-head{display:flex;align-items:center;gap:16px;margin-bottom:20px;}
.boxoffice-group-head h2{font-size:24px;text-transform:none;}
.site-tag{color:var(--amber);font-size:13px;text-decoration:underline;text-underline-offset:3px;opacity:.85;transition:.2s;}
.site-tag:hover{opacity:1;}
.location-grid{display:flex;gap:16px;flex-wrap:wrap;}
.location-card{background:var(--ink-2);border:1px solid var(--line);padding:22px 26px;flex:1 1 380px;}
.location-card h4{font-size:16px;font-weight:600;text-transform:none;margin-bottom:8px;}
.location-card .address{font-size:13px;color:var(--screen-dim);margin-bottom:6px;}
.location-card .hours{font-size:12px;color:var(--amber);line-height:1.5;}
.location-card .extra{font-size:12.5px;color:var(--film-gray);line-height:1.5;margin-top:6px;}

/* ---------- Arhiva ---------- */
.archive-list{padding-top:8px;padding-bottom:96px;display:flex;flex-direction:column;}
.archive-row{display:flex;align-items:center;gap:28px;padding:26px 8px;border-bottom:1px solid var(--line);transition:.2s;}
.archive-row:hover{background:var(--ink-2);padding-left:16px;}
.archive-row:hover .archive-arrow{opacity:1;transform:translateX(4px);}
.archive-thumb{width:180px;height:112px;flex:none;border-radius:3px;overflow:hidden;border:1px solid var(--line);background:linear-gradient(155deg,#2a2420,#100e0c);}
.archive-thumb img{width:100%;height:100%;object-fit:cover;}
.archive-no{font-family:'Helvetica';font-weight:700;font-size:22px;color:var(--amber);width:50px;flex:none;}
.archive-label{flex:1;font-size:16px;color:var(--screen);}
.archive-dates{color:var(--screen-dim);font-size:13px;}
.archive-arrow{color:var(--amber);opacity:.4;transition:.2s;}

/* ---------- Kontakt ---------- */
.contact-section{display:flex;gap:64px;padding-top:64px;padding-bottom:96px;}
.about-content{padding-top:64px;padding-bottom:96px;max-width:1320px;}
.accreditation-section{padding-top:64px;padding-bottom:96px;}
.accreditation-section .content-editable{margin-bottom:36px;}
.accreditation-download{margin-top:12px;}
.contact-form-card{flex:1;background:var(--ink-2);border:1px solid var(--line);padding:44px;}
.form-row{display:flex;gap:20px;}
.contact-form-card label{display:block;font-size:12px;letter-spacing:.1em;color:var(--film-gray);margin-bottom:22px;flex:1;text-transform:uppercase;}
.contact-form-card input,.contact-form-card textarea{display:block;width:100%;margin-top:10px;background:var(--ink);border:1px solid var(--line);color:var(--screen);padding:14px 16px;border-radius:2px;font-family:'Work Sans';font-size:14px;}
.form-notice{padding:14px 18px;border-radius:2px;margin-bottom:20px;font-size:14px;}
.form-notice.success{background:rgba(80,160,100,.15);border:1px solid #4a9;color:#9dc;}
.form-notice.error{background:rgba(200,30,58,.15);border:1px solid var(--marquee);color:#f7b9c3;}
.contact-info{width:360px;flex:none;}
.info-block{margin-bottom:30px;}
.info-block span{font-size:12px;color:var(--amber);letter-spacing:.08em;display:block;margin-bottom:8px;}
.info-block p{color:var(--screen);font-size:16px;}
.wishlist-guard,.wishlist-empty{text-align:center;padding:60px 20px;color:var(--screen-dim);}

/* ---------- Responsive ---------- */
@media (max-width:1020px){
  .film-grid{grid-template-columns:repeat(2,1fr);}
  .news-grid{grid-template-columns:1fr;}
  .about-grid{grid-template-columns:1fr;}
  .editions{grid-template-columns:1fr;}
  .facts-grid{grid-template-columns:1fr 1fr;}
  .contact-section{flex-direction:column;}
  .film-hero{flex-direction:column;}
  .poster-large{width:100%;max-width:340px;}
  .nav-links{display:none;}
  .mobile-nav-toggle{display:flex;}
  /* The header sits at a higher z-index than the mobile drawer (so the toggle
     button stays clickable while open — see .site-header z-index), which means
     its own contents, including the language switcher, visually sit on top of
     the open drawer too. The drawer already has its own copy of the language
     switcher, so hide the header's version here to avoid the confusing
     double language-switcher overlap. */
  .header-actions{display:none;}
}

@media (max-width:480px){
  /* On phone-width screens, make the drawer cover the full viewport instead of
     leaving a sliver of the page visible on the left — the backdrop's dim
     effect barely reads against this theme's already-dark background, so a
     partial-width drawer just looked like a rendering glitch rather than an
     intentional overlay. */
  .mobile-nav-drawer{width:100vw;border-left:none;}
}

@media (max-width:600px){
  .wrap{padding:0 20px;}
  section{padding:64px 0;}
  .header-inner{height:64px;}
  .site-logo .logo-mark{height:26px;}
  .page-hero{padding:56px 0 28px;}
  .page-hero h1{font-size:clamp(36px,11vw,48px);}
  .section-head{flex-direction:column;align-items:flex-start;gap:16px;}
  .section-head p{max-width:none;}

  /* single-column everything that was 2+ columns */
  .film-grid{grid-template-columns:1fr;}
  .facts-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;gap:32px;}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:8px;}
  .stat-row{flex-direction:column;gap:20px;}
  .award{grid-template-columns:1fr;padding:40px 28px;gap:24px;text-align:left;}
  .trophy{margin-bottom:8px;}
  .crew-row{gap:24px;}
  .crew-card{width:calc(50% - 12px);}

  /* filter bar: stack fields full-width instead of squeezing 4 selects in a row */
  .filter-bar{flex-direction:column;align-items:stretch;}
  .filter-field select{min-width:0;width:100%;}
  .filter-reset{align-self:flex-start;padding-bottom:0;}
  .results-meta{flex-direction:column;align-items:flex-start;}

  /* contact form: stack the name/email pair */
  .form-row{flex-direction:column;gap:0;}
  .contact-form-card{padding:28px 22px;}
  .contact-info{width:100%;}
  .contact-section{padding-top:40px;padding-bottom:56px;}
  .about-content{padding-top:40px;padding-bottom:56px;}

  /* film detail actions wrap instead of overflowing */
  .film-actions{flex-wrap:wrap;}

  /* screenings table → stacked cards, since 4 columns never fit a phone screen */
  .screenings-table,
  .screenings-table tbody,
  .screenings-table tr,
  .screenings-table td{display:block;width:100%;}
  .screenings-table tr{border:1px solid var(--line);border-radius:4px;padding:16px;margin-bottom:12px;}
  .screenings-table td{padding:6px 0;border:none;}
  .screenings-table td[data-label]::before{
    content:attr(data-label);
    display:block;
    font-size:10.5px;
    letter-spacing:.08em;
    color:var(--film-gray);
    text-transform:uppercase;
    margin-bottom:2px;
  }
  .screenings-table td[data-label=""]::before{display:none;}
  .screenings-table .buy-ticket{display:inline-block;margin-top:4px;}

  .article-body{font-size:15.5px;}
  .article-body blockquote{padding-left:20px;font-size:17px;}

  /* Festival subpages */
  .festival-subnav{padding:16px 0 28px;gap:8px;}
  .festival-subnav .chip{font-size:12px;padding:8px 12px;}

  /* Film detail page: several fixed desktop-sized spacing values were never
     scaled down for mobile, so they compounded across the whole page —
     every section header's 56px bottom margin, every section's 64px
     top/bottom padding, plus the hero's own gap, added up to a page that
     felt overly sparse and inconsistent on a narrow screen. */
  .section-head-simple{margin-bottom:28px;}
  .film-hero{gap:28px;padding-top:24px;padding-bottom:32px;}
  .screenings-section,.crew-section,.facts-section,.gallery-section,.trailer-section{padding-top:40px;padding-bottom:40px;}
  .trailer-single{margin-top:16px;}
  .related-news{padding-top:40px;}

  .director-hero{flex-direction:column;gap:24px;padding-bottom:0;}
  .director-portrait{width:180px;height:180px;}
  .director-bio-full{padding-top:24px;padding-bottom:56px;}

  .jury-group h2{font-size:21px;}
  .jury-grid{gap:12px;}
  .person-card{width:100%;}

  .sponsor-tile-row,.sponsor-grid{gap:12px;}
  .sponsor-tile,.sponsor-tile.large{flex:1 1 100%;}

  .boxoffice-group-head{flex-direction:column;align-items:flex-start;gap:4px;}
  .location-grid{gap:12px;}
  .location-card{flex:1 1 100%;padding:18px 20px;}

  .festival-stats-row{flex-direction:column;gap:20px;padding-top:32px;padding-bottom:32px;}
  .festival-stats-row .stat{border-left:none;padding-left:0;}
  .festival-timeline-section,.festival-guests-section,.festival-venues-section,.festival-org-section{padding-top:56px;padding-bottom:56px;}
  .timeline-row{flex-direction:column;gap:4px;padding:14px 0;}
  .timeline-year{width:auto;}
  .venue-cards{grid-template-columns:1fr;}
  .org-grid{grid-template-columns:1fr;gap:32px;}
  .org-fact{flex-direction:column;gap:6px;}
  .org-fact span{width:auto;}

  .archive-row{flex-direction:column;align-items:stretch;gap:12px;padding:18px 8px;}
  .archive-thumb{width:100%;height:180px;order:0;}
  .archive-no{order:1;width:auto;}
  .archive-label{flex:1 1 100%;order:2;}
  .archive-dates{order:3;}
  .archive-arrow{display:none;}

  .top-bar-inner{padding:10px 20px;}
  .cebef-logo{height:20px;}
  .footer-partners{gap:20px;padding:0 0 16px;justify-content:flex-start;}
  .footer-partners-secondary{gap:20px;padding:0 0 24px;justify-content:flex-start;}
  .footer-partners .partner-logo{height:38px;}
  .footer-partners-secondary .partner-logo{height:18px;}
  .footer-partners .fest-mark{height:32px;}
}

@media (prefers-reduced-motion:reduce){
  .names-track{animation:none;}
  .mobile-nav-drawer{transition:none;}
}


li.lang-item::marker {
	display: none !important;
}
