/* menuV3 — Figma 1512px reference, 1280px content. Fluid gutters below it. */
@font-face { font-family: Inter; src: url('../fonts/Inter-Variable.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: Mattone; src: url('../fonts/Mattone-Regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: Mattone; src: url('../fonts/Mattone-Bold.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: Mattone; src: url('../fonts/Mattone-Black.woff2') format('woff2'); font-weight: 900; font-display: swap; }
:root { --cj-content: 80rem; --cj-gutter: max(1.5rem, calc((100% - var(--cj-content)) / 2)); }
.cj-site-header, .cj-footer { box-sizing: border-box; font-family: Inter, sans-serif; font-optical-sizing: none; }
.cj-site-header *, .cj-footer * { box-sizing: border-box; }
body.wp-site-blocks > .cj-site-header, body.wp-site-blocks > #wpadminbar { margin-block:0; }
.cj-site-header { position: fixed; inset:0 0 auto; z-index: 100; color: #000; background: #fff; padding-top: clamp(1.5rem, 4.63vw, 4.375rem); border-bottom: 0; }
body:not(.home):has(.cj-site-header) { padding-top:var(--cj-header-height,162px); }
html { scroll-padding-top:calc(var(--cj-header-height,162px) + 1rem); }
.admin-bar .cj-site-header { top:var(--wp-admin--admin-bar--height,32px); }
.cj-site-header:has(.cj-header-tool[aria-expanded=true]) { max-height:calc(100dvh - var(--wp-admin--admin-bar--height,0px)); overflow-y:auto; overscroll-behavior:contain; }
@media(max-width:600px) { #wpadminbar { position:fixed; } }
/* On the homepage only, the transparent menu sits over the full-height hero. */
.home .cj-site-header { background:transparent; color:#fff; border-bottom:0; }
.home .cj-site-header .cj-logo__dark { display:none; }
.home .cj-site-header .cj-logo__light { display:block !important; }
.home .cj-site-header:has(.cj-header-tool[aria-expanded=true]), .home .cj-site-header:has(.cj-primary-menu .is-open), .home .cj-site-header:has(.cj-primary-nav.is-open) { color:#000; background:#fff; }
.home .cj-site-header:has([aria-expanded=true]) .cj-logo__dark { display:block; }
.home .cj-site-header:has([aria-expanded=true]) .cj-logo__light { display:none !important; }
.home .cj-site-header.is-scrolled { color:#000; background:#fff; }
.home .cj-site-header.is-scrolled .cj-logo__dark { display:block; }
.home .cj-site-header.is-scrolled .cj-logo__light { display:none !important; }
.home .cj-site-header.is-scrolled .cj-language-switch__active { background:#000; color:#fff !important; }
.home .cj-language-switch__active { background:#fff; color:#000; }
.home .cj-site-header:has([aria-expanded=true]) .cj-language-switch__active { background:#000; color:#fff; }
.cj-site-header__inner { display: grid; grid-template-columns: 7.7625rem minmax(0,1fr); grid-template-rows: auto auto auto; gap: 0 1.875rem; width: min(calc(100% - 3rem), var(--cj-content)); margin: auto; }
.cj-site-header__logo { grid-column: 1; grid-row: 1 / 4; align-self: start; height: 5.125rem; display: flex; align-items: center; }
.cj-logo { display: block; width: 7.7625rem; }
.cj-logo img { display: block; width: 100%; height: auto; }
.cj-logo__light { display: none !important; }
.cj-site-header__top { grid-column: 2; display: flex; align-items: center; gap: 3.75rem; min-width: 0; padding-bottom: .8125rem; border-bottom:1px solid; }
.cj-festival-meta { overflow: hidden; flex: 1; min-width: 0; font-size: .75rem; font-weight: 480; white-space: nowrap; }
.cj-meta-track { display: flex; width: max-content; animation: cj-chrome-marquee 28s linear infinite; }
.cj-meta-copy { flex: none; }
.cj-festival-meta:hover .cj-meta-track { animation-play-state: paused; }
.cj-utility-nav { display: none; }
.cj-header-tools { display: flex; align-items: center; gap: .9375rem; flex: none; }
.cj-header-tool { position: relative; display: inline-flex; align-items: center; gap: .625rem; border: 0; border-right: 1px solid; padding: 0 .625rem 0 0; background: none; color: inherit; font: 480 .75rem/normal Inter, sans-serif; white-space: nowrap; text-decoration: none; cursor: pointer; }
.cj-header-tool::after { content: ''; position: absolute; height: 1px; left: 0; right: .625rem; bottom: -.625rem; background: currentColor; opacity:0; transition: opacity .2s; }
.cj-header-tool:hover::after, .cj-header-tool[aria-expanded=true]::after { opacity:1; }
.cj-header-tool:focus-visible, .cj-primary-menu a:focus-visible, .cj-submenu-toggle:focus-visible, .cj-social-link:focus-visible { outline: 2px solid #534ff4; outline-offset: 5px; }
.cj-search-icon { display: inline-block; width: .5625rem; height: .5625rem; border: 1px solid; border-radius: 50%; position: relative; margin-right: .25rem; }
.cj-search-icon::after { content: ''; height: 1px; width: .3125rem; background: currentColor; position: absolute; top: .4375rem; left: .4375rem; transform: rotate(45deg); transform-origin: left; }
.cj-language-switch { display: flex; align-items: center; gap: .3125rem; border: 1px solid; border-radius: 1.5rem; padding: .1875rem .375rem .1875rem .1875rem; font: 480 .75rem/1 Inter,sans-serif; }
.cj-language-switch > span { padding: .1875rem .25rem; }
.cj-language-switch > a { color:inherit; text-decoration:none; }
.cj-language-switch > a.cj-language-switch__active { color:#fff; }
.home .cj-site-header:not(:has([aria-expanded=true])) .cj-language-switch > a.cj-language-switch__active { color:#000; }
.cj-language-switch__active { background: #000; color: #fff; border-radius: 50%; }
.cj-header-expanded { grid-column: 1 / -1; grid-row: 2; }
.cj-header-expanded > [hidden] { display: none !important; }
.cj-header-search { display:flex; align-items:center; gap:1.875rem; margin:0; padding:3.125rem 0 1.875rem; border-bottom:1px solid; }
.cj-header-search input { flex: 1; min-width: 0; border: 0; border-bottom: 1px solid; border-radius: 0; background: #fff; padding: .625rem 0; font: 480 1rem/normal Inter,sans-serif; color: #000; }
.cj-header-search button { display: grid; place-items: center; flex:none; border: 1px solid; border-radius: 50%; background: #000; color: #fff; width: 2rem; height: 2rem; padding:0; cursor: pointer; }
.cj-header-search button .cj-search-icon { margin:0; transform:translate(-1px,-1px); }
.cj-social-panel { padding: 1.875rem; border-block: 1px solid; }
.cj-social-panel .cj-social-links { justify-content: flex-end; padding-inline: min(14.0625rem, 15vw); }
.cj-social-links { display: flex; align-items: center; gap: 1.875rem; }
.cj-social-link { display: inline-flex; align-items: center; justify-content: center; flex: none; }
.cj-social-link img { display: block; width: 1.5625rem; height: 1.5625rem; }
.cj-social-link--youtube img { width: 2.3125rem; }
.cj-social-link:hover { opacity: .6; }
.cj-site-header__bar { grid-column: 2; grid-row: 3; }
.cj-primary-menu, .cj-primary-menu ul { list-style: none; padding: 0; margin: 0; }
.cj-primary-menu { display: flex; align-items: center; justify-content:flex-start; gap: 1.875rem; padding-top:13px; }
.cj-primary-menu > li { display: flex; align-items: baseline; min-width: 0; }
.cj-primary-menu a { text-decoration: none; color: inherit; }
.cj-primary-menu > li > a { padding-bottom: .625rem; font: 670 1rem/normal Inter,sans-serif; }
.cj-primary-menu a span { position: relative; }
.cj-primary-menu a span::after { content: ''; position: absolute; height: 1px; background: currentColor; bottom: -.625rem; left: 0; right: 0; opacity:0; transition: opacity .2s; }
.cj-primary-menu a:hover span::after, .cj-primary-menu a:focus-visible span::after, .cj-primary-menu .is-open > a span::after, .cj-primary-menu a[aria-current=page] span::after { opacity:1; }
.cj-primary-menu .is-open > a span::after { height:3px; }
@media(prefers-reduced-motion:reduce) { .cj-primary-menu a span::after,.cj-header-tool::after { transition:none; } }
.cj-submenu-toggle { background: transparent; color: inherit; border: 0; padding: .25rem .375rem; cursor: pointer; font: inherit; }
.cj-submenu-toggle span[aria-hidden] { display: inline-block; transition: transform .15s; }
.cj-submenu-toggle[aria-expanded=true] span[aria-hidden] { transform: rotate(45deg); }
@media (min-width:801px) { .cj-submenu-toggle { position:absolute; width:1px; height:1px; padding:0; clip-path:inset(50%); overflow:hidden; } .cj-submenu-toggle:focus-visible { position:static; width:auto; height:auto; clip-path:none; padding:.25rem .375rem; } }
.cj-primary-menu .cj-nav-panel { display: none; position: absolute; left: 0; right: 0; top: 100%; border-block: 1px solid #000; color:#000; background: #fff; max-height:calc(100dvh - var(--cj-header-height,162px) - var(--wp-admin--admin-bar--height,0px)); overflow-y:auto; padding: 1.875rem max(1.5rem, calc((100% - 80rem) / 2 + 9.6375rem)); }
.cj-primary-menu .is-open > .cj-nav-panel { display: grid; gap: .9375rem; }
.cj-nav-panel a { display:inline-block; padding-bottom:.625rem; font: 670 1rem/normal Inter,sans-serif; }
@media (min-width:801px) { .cj-primary-menu .cj-nav-panel { padding-left:var(--cj-panel-left, var(--cj-gutter)); padding-right:var(--cj-gutter); } }
.cj-primary-menu .cj-nav-panel .cj-nav-panel { position: static; padding: .9375rem; border: 0; }
.cj-menu-toggle { display: none; }
.cj-access-panel { margin-left:9.6375rem; border-bottom:1px solid; padding:30px 30px 40px; display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.cj-access-panel > p { grid-column:1/-1; margin:0; font:700 16px/1.2 Inter,sans-serif; }
.cj-access-column { display:grid; align-content:start; gap:15px; }
.cj-access-panel a { display:flex; align-items:center; gap:30px; color:inherit; font:700 12px/1.3 Inter,sans-serif; text-decoration:none; }
.cj-access-panel a span { border-bottom:1px solid; padding-block:8px; }
.cj-access-panel a img { width:auto; height:35px; flex:none; object-fit:contain; }
@keyframes cj-chrome-marquee { to { transform: translateX(-50%); } }
/* Shared footer: newsletter, institutions, association, black sitemap. */
.cj-footer { margin: 0; padding: clamp(4rem, 11.9vw, 11.25rem) 0 0; background: #fff; color: #000; width: 100%; }
.cj-footer > * { margin-block: 0; }
.cj-newsletter-marquee { width: 100%; overflow: hidden; border-bottom: 1px solid; }
.cj-newsletter-marquee__track { display: flex; width: max-content; animation: cj-chrome-marquee 28s linear infinite; }
.cj-newsletter-marquee__title { display: block; flex: none; margin: 0 !important; padding-block: .12em; font: 900 clamp(3.25rem, 6.62vw, 6.25rem)/1.2 Mattone,sans-serif; letter-spacing: 0; white-space: pre; }
.cj-newsletter-marquee:hover .cj-newsletter-marquee__track, .cj-newsletter-marquee:focus-within .cj-newsletter-marquee__track { animation-play-state: paused; }
.cj-footer-newsletter { display: grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3.75rem; padding:3.75rem var(--cj-gutter); border-bottom:1px solid; }
.cj-footer-newsletter__copy { margin: 0; font: 700 1.5rem/normal Inter,sans-serif; }
.cj-footer-newsletter__intro .cj-social-links { width:100%; padding:3.75rem 0; margin-top:1.25rem; border-block:1px solid; gap:3.75rem; }
.cj-footer-newsletter__intro .cj-social-link img { width: 2.5rem; height: 2.5rem; }
.cj-footer-newsletter__intro .cj-social-link--youtube img { width: 3.7rem; }
.cj-footer-newsletter__form > h3, .cj-organizer h3, .cj-partners h3 { font: 700 2.125rem/normal Mattone,sans-serif; letter-spacing: 0; margin: 0; }
.cj-footer-newsletter__form > h3 { max-width: 32rem; margin-bottom: 1.25rem; }
.cj-newsletter-form { display: flex; flex-direction: column; align-items: stretch; gap: 1.25rem; }
.cj-newsletter-form input { width: 100%; border: 0; border-bottom: 1px solid; border-radius: 0; padding: .625rem; background: #fff; color: #000; font: 480 .875rem/normal Inter,sans-serif; }
.cj-newsletter-form input::placeholder { color: #000; opacity: 1; }
.cj-newsletter-form button, .cj-footer-text-link a { align-self: flex-start; padding: .625rem 0; border: 0; border-bottom: 1px solid; background: transparent; color: inherit; font: 670 1rem/normal Inter,sans-serif; text-decoration: none; cursor: pointer; }
.cj-newsletter-form button:hover, .cj-footer-text-link a:hover { border-bottom-color: transparent; }
.cj-newsletter-status { font: 400 .875rem/1.4 Inter,sans-serif; }
.cj-partners { padding: 3.75rem var(--cj-gutter); border-bottom: 1px solid; }
.cj-partners h3 { padding-block: 1.25rem; }
.cj-partners__logos { display: flex; align-items: center; justify-content: space-between; gap: 3.125rem; padding-bottom: 1.875rem; }
.cj-partners__logos figure, .cj-organizer figure, .cj-footer-top figure { margin: 0; }
.cj-partners__logos img { display: block; max-width: 100%; height: auto; }
.cj-footer-text-link { margin: 0; }
.cj-footer-text-link a { display: inline-block; }
.cj-organizer { display: flex; align-items: center; gap: 3.75rem; padding: 3.75rem var(--cj-gutter); }
.cj-organizer > figure { flex: 0 0 15.9575rem; }
.cj-organizer img { display: block; width: 100%; height: auto; }
.cj-organizer p:not(.cj-footer-text-link) { margin: 0 0 1.25rem; font: 700 1.5rem/normal Inter,sans-serif; }
.cj-organizer h3 { margin-bottom: 1.25rem; }
.cj-footer-main { background: #000; color: #fff; padding: 3.75rem var(--cj-gutter); }
.cj-footer p:empty { display:none; }
.cj-footer-main > nav { margin-block:0; }
.cj-footer-top > figure { line-height:0; }
.cj-footer-top > *, .cj-footer-follow > * { margin-block:0; }
.cj-footer-top { display:flex; align-items:flex-start; justify-content:space-between; gap:3.75rem; margin-bottom:3.75rem; padding-bottom:30px; border-bottom:1px solid; }
.cj-footer-top figure img { display:block; width:15.625rem; height:auto; }
.cj-footer-follow { display: flex; flex-direction: column; gap: 1.875rem; align-items: flex-end; }
.cj-footer-follow p { margin:0; font:700 1rem/normal Inter,sans-serif; }
.cj-footer-follow .cj-social-links { gap:10px; }
.cj-footer-follow { gap:15px; padding-top:0; }
.cj-footer-main .cj-social-link img { filter: invert(1); }
.cj-footer-menu, .cj-footer-menu ul { list-style: none; margin: 0; padding: 0; }
.cj-footer-menu { display: grid; grid-template-columns: minmax(0,158fr) minmax(0,200fr) minmax(0,232fr) minmax(0,216fr) minmax(0,224fr); gap: 3.75rem; }
.cj-footer-menu a { color:inherit; text-decoration:none; font:670 1rem/normal Inter,sans-serif; }
.cj-footer-menu > li > a { font-size: 1rem; font-weight: 670; }
.cj-footer-menu > li > a { display:inline-block; border-bottom:3px solid; padding-bottom:10px; }
.cj-footer-menu a:hover, .cj-footer-menu a[aria-current=page] { text-decoration: underline; text-underline-offset: .25em; }
.cj-footer-menu ul { display:grid; gap:15px; padding-top:30px; }
.cj-footer-menu .cj-submenu-toggle { display: none; }
@media (max-width: 1100px) {
 .cj-site-header__inner { grid-template-columns: 6rem minmax(0,1fr); gap: 0 1.5rem; }
 .cj-logo { width: 6rem; }
 .cj-site-header__top { gap: 1.5rem; }
 .cj-primary-menu { gap: .75rem; }
 .cj-primary-menu > li > a { font-size: .875rem; }
 .cj-header-tools { gap: .625rem; }
}
@media (max-width: 800px) {
 .cj-footer-newsletter { grid-template-columns: 1fr; padding: 2.5rem 1rem; gap: 2.5rem; }
 .cj-footer-newsletter__copy { font-size: 1.25rem; }
 .cj-footer-newsletter__intro .cj-social-links { padding-block: 1.875rem; gap: 2rem; }
 .cj-footer-newsletter__form > h3, .cj-organizer h3, .cj-partners h3 { font-size: clamp(1.5rem, 5vw, 2.125rem); }
 .cj-partners { padding: 2.5rem 1rem; }
 .cj-partners__logos { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
 .cj-partners__logos img { max-height: 6.25rem; width: auto; }
 .cj-organizer { padding: 2.5rem 1rem; flex-direction: column; align-items: flex-start; gap: 2rem; }
 .cj-organizer > figure { flex: none; width: min(100%,15.9575rem); }
 .cj-organizer p:not(.cj-footer-text-link) { font-size: 1.125rem; }
 .cj-footer-main { padding: 2.5rem 1rem; }
 .cj-footer-top { gap: 2rem; flex-wrap: wrap; }
 .cj-footer-follow { align-items: flex-start; }
 .cj-footer-follow .cj-social-links { gap: 1.25rem; }
 .cj-footer-menu { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem; }
 .cj-site-header { padding-top: 1rem; }
 .cj-site-header__inner { width: calc(100% - 2rem); grid-template-columns: 1fr auto; }
 .cj-site-header__logo { grid-row: 1; height: auto; padding-bottom: 1rem; }
 .cj-site-header__top { grid-row: 2; grid-column: 1 / -1; flex-wrap: wrap; gap: 1rem; padding-block: .625rem; }
 .cj-festival-meta { flex-basis: 100%; }
 .cj-header-tools { width: 100%; justify-content: space-between; gap: .4rem; flex-wrap: wrap; }
 .cj-header-tool { gap: .3rem; padding-right: .4rem; font-size: .6875rem; }
 .cj-header-tool::after { right: .4rem; }
 .cj-language-switch { font-size: .625rem; }
 .cj-site-header__bar { grid-column: 2; grid-row: 1; align-self: center; }
 .cj-menu-toggle { display: block; background: #fff; border: 1px solid; padding: .5rem .875rem; font: 670 .875rem Inter,sans-serif; }
 .cj-primary-nav { display: none; position: absolute; inset: 100% 0 auto; background: #fff; color:#000; padding: 1rem; border-bottom: 1px solid; max-height:calc(100dvh - var(--cj-header-height,203px) - var(--wp-admin--admin-bar--height,0px)); overflow-y: auto; overscroll-behavior:contain; }
 .cj-primary-nav.is-open { display: block; }
 .cj-primary-menu { display: block; }
 .cj-primary-menu > li { display: flex; flex-wrap: wrap; justify-content: space-between; padding: .625rem 0; border-top: 1px solid; }
 .cj-primary-menu > li > a { font-size: 1rem; padding: .5rem 0; }
 .cj-primary-menu .cj-nav-panel { position: static; flex-basis: 100%; border: 0; padding: 1rem; max-height:none; overflow:visible; }
 .cj-header-expanded { grid-row: 3; }
 .cj-header-search { padding: 1rem 0; gap: 1rem; }
 .cj-header-search input { font-size: .875rem; }
 .cj-social-panel { padding: 1.5rem 0; }
 .cj-social-panel .cj-social-links { justify-content: center; padding: 0; }
 .cj-access-panel { margin-left:0; padding:1.5rem 0; }
 .cj-access-panel { grid-template-columns:1fr; }
 .cj-access-panel a { font-size:14px; gap:20px; }
 .cj-access-panel > p { font-size:14px; }
}
@media (prefers-reduced-motion: reduce) { .cj-meta-track, .cj-newsletter-marquee__track { animation: none !important; } }
