:root { --cj-rule: 1px solid currentColor; }

/*
 * Guide Figma : Mattone Black (H1-H3), Mattone Regular/Bold (H4-H5),
 * Inter (H6, H7 et texte). Ajouter les fichiers WOFF2 licenciés dans
 * assets/fonts/ puis décommenter les deux déclarations @font-face ci-dessous.
 */
/* @font-face { font-display: swap; font-family: "Mattone"; font-style: normal; font-weight: 400 900; src: url("../fonts/Mattone-Variable.woff2") format("woff2"); } */
/* @font-face { font-display: swap; font-family: "Inter"; font-style: normal; font-weight: 100 900; src: url("../fonts/Inter-Variable.woff2") format("woff2"); } */

body { font-family: Inter, Arial, Helvetica, sans-serif; }
h1, h2, h3, h4, h5, .wp-block-heading { font-family: Mattone, "Arial Black", Arial, sans-serif; }
h1 { font-size: clamp(3.25rem, 8vw, 6.25rem); font-weight: 900; line-height: .9; letter-spacing: -.055em; }
h2 { font-size: clamp(2.8rem, 6vw, 4.375rem); font-weight: 900; line-height: .92; letter-spacing: -.05em; }
h3 { font-size: clamp(2.25rem, 4.5vw, 3.4375rem); font-weight: 900; line-height: .95; letter-spacing: -.045em; }
h4 { font-size: clamp(1.7rem, 3vw, 2.125rem); font-weight: 400; line-height: 1; letter-spacing: -.035em; }
h5 { font-size: 1.625rem; font-weight: 400; line-height: 1.05; letter-spacing: -.025em; }
h6, .cj-heading--h6 { font-family: Inter, Arial, Helvetica, sans-serif; font-size: 1.5rem; font-weight: 700; line-height: 1.15; }
.cj-heading--h7 { font-family: Inter, Arial, Helvetica, sans-serif; font-size: 1.25rem; font-weight: 400; line-height: 1.2; }

/* Boutons : variantes Figma exposées via les styles du bloc Bouton Gutenberg. */
.wp-block-button__link, .cj-button { align-items: center; border: 1px solid var(--wp--preset--color--ink); border-radius: 999px; display: inline-flex; font-family: Inter, Arial, Helvetica, sans-serif; font-size: .875rem; font-weight: 700; gap: .4em; justify-content: center; line-height: 1; min-height: 2.7rem; padding: .7rem 1.15rem; text-decoration: none; transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease; }
.wp-block-button__link:hover, .cj-button:hover { transform: translateY(-1px); }.wp-block-button__link:focus-visible, .cj-button:focus-visible { outline: 3px solid var(--wp--preset--color--cj-blue); outline-offset: 3px; }.wp-block-button__link:disabled, .wp-block-button.is-style-cj-disabled .wp-block-button__link, .cj-button[aria-disabled="true"], .cj-button:disabled { cursor: not-allowed; opacity: .3; pointer-events: none; }
/* The same rollover treatment is available to PHP links and Gutenberg buttons. */
:is(.wp-block-button__link,.cj-button,.cj-hp-link a,.cj-hp-row-link a,.cj-footer-text-link a,.cj-newsletter-form button)::after { content:'→'; font-family:Inter,sans-serif; display:inline-block; max-width:0; overflow:hidden; opacity:0; vertical-align:middle; margin-left:0; transition:max-width .18s,opacity .18s,margin .18s; }
:is(.wp-block-button__link,.cj-button,.cj-hp-link a,.cj-hp-row-link a,.cj-footer-text-link a,.cj-newsletter-form button):is(:hover,:focus-visible)::after { max-width:1.5em; opacity:1; margin-left:.5em; }
.is-style-cj-arrow .wp-block-button__link::after,.cj-button--arrow::after { max-width:none; opacity:1; margin:0; }
.wp-block-button.is-style-cj-outline .wp-block-button__link, .cj-button--outline { background: transparent; color: var(--wp--preset--color--ink); }.wp-block-button.is-style-cj-outline .wp-block-button__link:hover, .cj-button--outline:hover { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); }
.wp-block-button.is-style-cj-blue .wp-block-button__link, .cj-button--blue { background: var(--wp--preset--color--cj-blue); border-color: var(--wp--preset--color--cj-blue); color: var(--wp--preset--color--paper); }.wp-block-button.is-style-cj-blue .wp-block-button__link:hover, .cj-button--blue:hover { background: var(--wp--preset--color--paper); color: var(--wp--preset--color--cj-blue); }
.wp-block-button.is-style-cj-red .wp-block-button__link, .cj-button--red { background: var(--wp--preset--color--cj-red); border-color: var(--wp--preset--color--cj-red); color: var(--wp--preset--color--paper); }.wp-block-button.is-style-cj-red .wp-block-button__link:hover, .cj-button--red:hover { background: var(--wp--preset--color--paper); color: var(--wp--preset--color--cj-red); }
.wp-block-button.is-style-cj-violet .wp-block-button__link, .cj-button--violet { background: var(--wp--preset--color--cj-violet); border-color: var(--wp--preset--color--cj-violet); color: var(--wp--preset--color--paper); }.wp-block-button.is-style-cj-violet .wp-block-button__link:hover, .cj-button--violet:hover { background: var(--wp--preset--color--paper); color: var(--wp--preset--color--cj-violet); }
.wp-block-button.is-style-cj-link .wp-block-button__link, .cj-button--link { background: transparent; border: 0; border-bottom: 1px solid currentColor; border-radius: 0; color: var(--wp--preset--color--ink); min-height: auto; padding: .15rem 0; }.wp-block-button.is-style-cj-link .wp-block-button__link::after, .cj-button--link::after { content: "→"; font-size: 1.2em; line-height: 0; }.wp-block-button.is-style-cj-link .wp-block-button__link:hover, .cj-button--link:hover { transform: none; }
.wp-block-button.is-style-cj-arrow .wp-block-button__link, .cj-button--arrow { background: var(--wp--preset--color--paper); border-radius: 50%; color: var(--wp--preset--color--ink); font-size: 0; height: 2.8rem; min-height: 2.8rem; padding: 0; width: 2.8rem; }.wp-block-button.is-style-cj-arrow .wp-block-button__link::after, .cj-button--arrow::after { content: "→"; font-family: Arial, sans-serif; font-size: 1.5rem; line-height: 1; }.wp-block-button.is-style-cj-arrow .wp-block-button__link:hover, .cj-button--arrow:hover { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); }
.cj-carousel-control { align-items: center; background: var(--wp--preset--color--paper); border: var(--cj-rule); border-radius: 50%; color: var(--wp--preset--color--ink); display: inline-flex; height: 2.8rem; justify-content: center; width: 2.8rem; }.cj-carousel-control:hover { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); }
.cj-programme { min-height: min(68vh, 780px); align-content: center; display: grid; padding: var(--wp--preset--spacing--60) 1rem; }
.cj-programme h1 { max-width: 12ch; margin-inline: auto; }
.cj-hero, .cj-section { padding-block: var(--wp--preset--spacing--70); }
.cj-hero { gap: clamp(2rem, 7vw, 9rem); }
.cj-eyebrow, .cj-badge { border: var(--cj-rule); border-radius: 999px; display: inline-block; font-size: .7rem; padding: .25rem .5rem; }
.cj-marquee { border-block: var(--cj-rule); margin: 0; overflow: hidden; padding-block: .1em; white-space: nowrap; }
.cj-age-filter { border-bottom: var(--cj-rule); gap: 0; margin-bottom: 2rem; }
.cj-age-filter p, .cj-age-filter .wp-block-button__link { border-inline: var(--cj-rule); margin: 0; padding: .75rem 1rem; }
.cj-rail { gap: 1rem; overflow-x: auto; padding-bottom: 1rem; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.cj-film-card { flex: 0 0 min(78vw, 300px); min-height: 410px; scroll-snap-align: start; }
.cj-film-card h3 { margin-block-start: 1rem; }
.cj-stats { border-block: var(--cj-rule); gap: 0; }
.cj-stats > .wp-block-column { padding: clamp(1.5rem, 4vw, 4rem); }
.cj-stats > .wp-block-column + .wp-block-column { border-left: var(--cj-rule); }
.cj-newsletter { padding: var(--wp--preset--spacing--70) 1rem; }
.cj-films-page, .cj-film-detail, .cj-editorial-page, .cj-podcasts-page { margin-inline: auto; max-width: 1440px; padding: clamp(2rem, 5vw, 5rem) 1rem; }
.cj-filter-bar { border: var(--cj-rule); display: grid; grid-template-columns: auto repeat(5, minmax(8rem, 1fr)); margin-bottom: 2.5rem; overflow: visible; }
.cj-filter-bar__label { align-items: center; background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); display: flex; font-family: Inter, Arial, sans-serif; font-size: .95rem; padding: .75rem 1rem; white-space: nowrap; }
.cj-filter-control { border-left: var(--cj-rule); display: block; position: relative; }.cj-filter-control::after { content: "⌄"; font-size: .9rem; pointer-events: none; position: absolute; right: 1rem; top: 50%; transform: translateY(-55%); }
.cj-filter-control select { appearance: none; background: var(--wp--preset--color--paper); border: 0; border-radius: 0; color: var(--wp--preset--color--ink); cursor: pointer; font: inherit; font-size: .9rem; height: 100%; min-height: 3.3rem; outline: 0; padding: .75rem 2.4rem .75rem 1rem; text-align: center; width: 100%; }.cj-filter-control select:hover { background: var(--wp--preset--color--grey); }.cj-filter-control:focus-within { box-shadow: inset 0 -4px var(--wp--preset--color--ink); }.cj-filter-control select:focus-visible { outline: 3px solid var(--wp--preset--color--cj-blue); outline-offset: -3px; }
.cj-filter-bar__submit { background: var(--wp--preset--color--ink); border: 0; color: var(--wp--preset--color--paper); font: inherit; font-weight: 700; padding: .75rem 1rem; }
.cj-film-grid { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cj-film-grid .cj-film-card { min-height: 0; }
.cj-film-card a { color: inherit; display: block; height: 100%; padding: 1rem; text-decoration: none; }
.cj-film-card img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; }
.cj-film-card--pink { background: var(--wp--preset--color--pink); }.cj-film-card--periwinkle { background: var(--wp--preset--color--periwinkle); }.cj-film-card--lilac { background: var(--wp--preset--color--lilac); }.cj-film-card--lavender { background: var(--wp--preset--color--lavender); }
.cj-film-card h2 { font-size: clamp(1.25rem, 2vw, 2rem); margin-bottom: 0; }
.cj-film-detail__hero { display: grid; gap: clamp(2rem, 5vw, 6rem); grid-template-columns: minmax(250px, .75fr) minmax(0, 1fr); }
.cj-film-detail__hero > img { max-height: 780px; object-fit: cover; width: 100%; }
.cj-film-detail h1 { font-size: clamp(3.25rem, 8vw, 6.25rem); }.cj-film-meta { border-block: var(--cj-rule); font-size: .8rem; padding-block: .75rem; }.cj-film-summary { font-size: 1.2rem; font-weight: 700; }.cj-why { border: var(--cj-rule); padding: 1rem; }.cj-button--pink { background: var(--wp--preset--color--pink); color: var(--wp--preset--color--ink); }
.cj-film-detail__sessions, .cj-workshops { margin-top: var(--wp--preset--spacing--70); }.cj-table-wrap { overflow-x: auto; }.cj-film-detail table { border-collapse: collapse; min-width: 640px; width: 100%; }.cj-film-detail th, .cj-film-detail td { border: var(--cj-rule); padding: .75rem; text-align: left; }.cj-workshop-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, 1fr); }.cj-workshop-grid article { border: var(--cj-rule); padding: 1rem; }

@media (max-width: 781px) {
  .cj-programme { min-height: 55vh; }.wp-block-button__link { min-height: 2.5rem; padding-inline: 1rem; }
  .cj-stats > .wp-block-column + .wp-block-column { border-left: 0; border-top: var(--cj-rule); }
  .cj-marquee { white-space: normal; }
  .cj-filter-bar { display: flex; margin-inline: -1rem; overflow-x: auto; }.cj-filter-bar__label, .cj-filter-control { flex: 0 0 auto; }.cj-filter-control select { min-width: 9rem; }.cj-filter-bar__label { position: sticky; left: 0; z-index: 1; }
  .cj-film-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cj-film-detail__hero, .cj-workshop-grid { grid-template-columns: 1fr; }
}

/* Homepage festival V3 — sections éditables dans patterns/front-page.php. */
.cj-home { overflow: clip; }
.cj-home-hero { align-content: end; box-sizing: border-box; min-height: clamp(34rem, 68vw, 57rem); padding: clamp(2rem, 5vw, 5.25rem) max(1rem, calc((100vw - 1280px) / 2)); position: relative; }
.cj-home-hero::before { background: radial-gradient(circle at 77% 27%, var(--wp--preset--color--pink) 0 8%, transparent 8.3%), radial-gradient(circle at 88% 71%, var(--wp--preset--color--cj-red) 0 12%, transparent 12.3%), radial-gradient(circle at 64% 57%, var(--wp--preset--color--periwinkle) 0 17%, transparent 17.3%); content: ''; inset: 0; opacity: .95; pointer-events: none; position: absolute; }
.cj-home-hero__inner { align-items: end; display: grid !important; gap: clamp(2rem, 8vw, 8rem); grid-template-columns: minmax(0, 1.45fr) minmax(15rem, .55fr); position: relative; }
.cj-home-kicker { font-size: clamp(.7rem, .9vw, .88rem); font-weight: 700; letter-spacing: -.025em; margin: 0 0 1rem; text-transform: uppercase; }
.cj-home-hero__title { font-size: clamp(5.5rem, 14.5vw, 13.6rem); letter-spacing: -.085em; line-height: .72; margin: 0; max-width: 6ch; }
.cj-home-hero__date { border-top: 1px solid currentColor; font-size: clamp(1rem, 1.45vw, 1.35rem); font-weight: 700; margin: clamp(1.6rem, 3vw, 3rem) 0 0; padding-top: .7rem; }
.cj-home-hero__actions { font-size: clamp(.9rem, 1.25vw, 1.1rem); max-width: 22rem; }.cj-home-hero__actions p { margin-top: 0; }
.cj-home-hero .is-style-cj-outline .wp-block-button__link { border-color: currentColor; color: inherit; }.cj-home-hero .is-style-cj-outline .wp-block-button__link:hover { background: var(--wp--preset--color--paper); border-color: var(--wp--preset--color--paper); color: var(--wp--preset--color--cj-blue); }
.cj-home-programme { min-height: clamp(32rem, 58vw, 50rem); padding-block: clamp(4.5rem, 10vw, 10rem); }.cj-home-programme .cj-home-kicker { text-align: center; }.cj-programme__title { font-size: clamp(4rem, 10vw, 9.2rem); line-height: .8; margin: 0 auto; }.cj-programme__intro { font-size: clamp(1rem, 1.5vw, 1.35rem); margin: clamp(1.3rem, 3vw, 2.5rem) auto; max-width: 32rem; }.cj-home-programme .is-style-cj-outline .wp-block-button__link { border-color: currentColor; color: inherit; }.cj-home-programme .is-style-cj-outline .wp-block-button__link:hover { background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink); }
.cj-marquee--full { border: 0; margin-bottom: clamp(2.4rem, 5vw, 5.6rem); margin-left: calc(50% - 50vw); overflow: hidden; padding: 0; width: 100vw; }.cj-marquee--full .cj-marquee__track { animation: cj-section-marquee 26s linear infinite; display: flex; min-width: max-content; width: max-content; }.cj-marquee--full h2 { flex: none; font-size: clamp(3.8rem, 9vw, 8.3rem); font-weight: 900; letter-spacing: -.08em; line-height: .77; margin: 0; padding-right: .24em; white-space: nowrap; }
@keyframes cj-section-marquee { to { transform: translateX(-50%); } }
.cj-heart { padding-top: clamp(4.5rem, 9vw, 9.5rem); }.cj-home-card-grid { gap: clamp(1rem, 2.4vw, 2rem); }.cj-home-card { border-top: 1px solid currentColor; min-height: 20rem; padding: 1.1rem 0 2rem; }.cj-home-card__number { font-size: .75rem; font-weight: 700; margin: 0 0 clamp(2rem, 5vw, 5rem); }.cj-home-card h3 { font-size: clamp(2.35rem, 4.5vw, 4.4rem); max-width: 10ch; }.cj-home-card a, .cj-home-links a { border-bottom: 1px solid currentColor; font-weight: 700; text-decoration: none; }.cj-home-card a:hover, .cj-home-links a:hover { border-bottom-color: transparent; }
.cj-home-resources { padding-top: clamp(4.5rem, 9vw, 9.5rem); }.cj-home-links { gap: clamp(1.5rem, 4vw, 4rem); }.cj-home-links .wp-block-column { border-top: 1px solid currentColor; padding-top: 1rem; }.cj-home-links h3 { font-size: clamp(2.1rem, 3.9vw, 3.8rem); margin-top: 0; }
@media (max-width: 781px) { .cj-home-hero { min-height: 38rem; padding-block: 2rem 3rem; }.cj-home-hero__inner { grid-template-columns: 1fr; }.cj-home-hero__actions { max-width: 27rem; }.cj-marquee--full { margin-bottom: 2.2rem; }.cj-marquee--full .cj-marquee__track { animation-duration: 20s; }.cj-marquee--full h2 { font-size: clamp(3.5rem, 18vw, 5rem); }.cj-home-card { min-height: auto; }.cj-home-card-grid, .cj-home-links { gap: 2.5rem; }}
@media (prefers-reduced-motion: reduce) { .cj-marquee--full .cj-marquee__track { animation: none; } }
