/* Alias de couleurs/polices.
   Défini sur :root ET body : selon la version de WordPress, les variables de
   preset (--wp--preset--*) sont posées sur :root (WP récent) OU sur body (WP
   plus ancien). En couvrant les deux, les alias se résolvent dans tous les cas.
   Valeurs de secours en dur (= couleurs de theme.json) au cas où un preset
   manquerait, pour ne jamais avoir un bouton transparent ou une couleur vide. */
:root, body{
  --bg: var(--wp--preset--color--base, #0A0B11);
  --bg2: var(--wp--preset--color--surface, #111220);
  --panel: var(--wp--preset--color--panel, #161826);
  --ink: var(--wp--preset--color--contrast, #F4F3F8);
  --muted: var(--wp--preset--color--muted, #8B8DA6);
  --blue: var(--wp--preset--color--primary, #4860F0);
  --blue-2: var(--wp--preset--color--primary-2, #6E82FF);
  --red: var(--wp--preset--color--accent, #FF1830);
  --red-2: var(--wp--preset--color--accent-2, #FF4257);
  --line: var(--wp--preset--color--line, #25263A);
  --fdisplay: var(--wp--preset--font-family--display);
  --fmono: var(--wp--preset--font-family--mono);
  --e: cubic-bezier(.22,.61,.36,1);
  --maxw: 1280px;
  --pad: clamp(20px,4.5vw,60px);
}

/* header wordmark : point rouge sur le .tv façon logo */
.wp-block-site-title a{ text-decoration:none; }

.jm-eyebrow{ font-family:var(--fmono); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--blue-2); display:inline-flex; align-items:center; gap:12px; }
.jm-eyebrow::before{ content:""; width:30px; height:2px; background:var(--blue); }
.jm-lbl{ font-family:var(--fmono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--blue-2); margin-bottom:12px; display:flex; align-items:center; gap:10px; }
.jm-lbl::before{ content:""; width:16px; height:2px; background:var(--blue); }

.jm-btn{ position:relative; display:inline-flex; align-items:center; gap:10px; background:var(--blue); color:#fff; font-family:var(--fmono); font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; padding:14px 24px; border-radius:100px; overflow:hidden; isolation:isolate; text-decoration:none; transition:transform .35s var(--e), box-shadow .35s var(--e); }
.jm-btn > span{ position:relative; z-index:2; transition:transform .35s var(--e); }
.jm-btn::before{ content:""; position:absolute; inset:0; z-index:1; background:var(--red); transform:translateY(101%); transition:transform .4s var(--e); }
.jm-btn:hover{ transform:translateY(-3px); box-shadow:0 14px 30px -12px rgba(72,96,240,.7); }
.jm-btn:hover::before{ transform:translateY(0); }
.jm-btn:hover .jm-ar{ transform:translateX(4px); }
.jm-arrow{ font-family:var(--fmono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--blue-2); display:inline-flex; align-items:center; gap:9px; text-decoration:none; position:relative; padding-bottom:3px; white-space:nowrap; }
.jm-arrow::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:var(--blue); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--e); }
.jm-arrow:hover{ color:var(--ink); } .jm-arrow:hover::after{ transform:scaleX(1); } .jm-arrow:hover .jm-ar{ transform:translateX(5px); }
.jm-ar{ transition:transform .35s var(--e); }

/* ---------------- HERO SLIDER ---------------- */
.jm-hero{ position:relative; overflow:hidden; border-bottom:1px solid var(--line); background:#07080f; }
.jm-hero-track{ display:flex; will-change:transform; transition:transform .9s cubic-bezier(.62,.02,.2,1); }
.jm-slide{ position:relative; overflow:hidden; flex:0 0 100%; min-width:100%; box-sizing:border-box; }
/* image du film en PLEIN CADRE (toute la largeur), nette, léger zoom lent façon "billboard" */
.jm-slide-bg{ position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; filter:brightness(.95) saturate(1.04); will-change:transform; animation:jm-kenburns 14s ease-in-out infinite alternate; }
@keyframes jm-kenburns{ from{ transform:scale(1.06) translate(1.6%,1%); } to{ transform:scale(1.09) translate(-1.8%,-1.2%); } }
/* grain argentique très subtil sur la photo */
.jm-slide::before{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.2; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='140'%20height='140'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.9'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3C/filter%3E%3Crect%20width='140'%20height='140'%20filter='url(%23n)'%20opacity='0.55'/%3E%3C/svg%3E"); background-size:150px 150px; }
/* dégradé minimal : juste ce qu'il faut pour lire le texte à gauche + fondu bas vers la page */
.jm-slide::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(7,8,15,.9) 0%, rgba(7,8,15,.55) 26%, rgba(7,8,15,.15) 50%, rgba(7,8,15,0) 76%),
    linear-gradient(0deg, #07080f 0%, rgba(7,8,15,.25) 20%, transparent 42%); }
.jm-slide-inner{ position:relative; z-index:2; box-sizing:border-box; max-width:var(--maxw); margin:0 auto; padding:clamp(28px,3.5vw,52px) var(--pad) clamp(72px,8vw,116px); min-height:calc(100svh - var(--jm-headh, 96px)); display:flex; align-items:flex-end; }
.jm-slide-txt{ min-width:0; max-width:47%; }
.jm-slide-title{ font-family:var(--fdisplay); font-weight:600; font-size:clamp(2.1rem,1.3rem+3.2vw,4rem); line-height:1.04; letter-spacing:-.02em; margin:18px 0; text-wrap:balance; }
.jm-pitch{ color:var(--muted); font-size:1.06rem; max-width:44ch; }
.jm-row{ margin-top:28px; display:flex; gap:22px; flex-wrap:wrap; align-items:center; }
.jm-meta{ font-family:var(--fmono); font-size:.71rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-top:22px; }
/* dans ce format, l'image EST le hero : plus de carte poster ni de pastille play */
.jm-poster, .jm-play{ display:none !important; }

.jm-prev,.jm-next{ position:absolute; bottom:22px; z-index:6; width:46px; height:46px; border-radius:50%; border:1px solid var(--line); background:color-mix(in srgb,var(--bg) 55%,transparent); backdrop-filter:blur(6px); color:var(--ink); cursor:pointer; font-size:1.15rem; display:flex; align-items:center; justify-content:center; transition:background .25s,border-color .25s; }
.jm-prev:hover,.jm-next:hover{ background:var(--blue); border-color:var(--blue); }
.jm-next{ right:22px; } .jm-prev{ right:78px; }
.jm-dots{ position:absolute; z-index:5; left:0; bottom:36px; display:flex; gap:10px; padding-left:var(--pad); }
.jm-dots button{ width:9px; height:9px; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.28); cursor:pointer; transition:width .25s var(--e),background .25s; }
.jm-dots button.on{ background:var(--red); width:26px; border-radius:6px; }
@media (max-width:860px){
  /* mobile : texte SUR l'image (comme desktop). Un fort dégradé sombre en bas
     garantit la lisibilité quelle que soit l'image ; l'image reste cadrée au centre. */
  .jm-slide-inner{ min-height:min(72svh,580px); align-items:flex-end; padding-bottom:clamp(60px,16vw,84px); }
  .jm-slide-txt{ max-width:100%; }
  .jm-slide::after{ background:
    linear-gradient(0deg, #07080f 0%, rgba(7,8,15,.9) 22%, rgba(7,8,15,.55) 42%, rgba(7,8,15,.15) 64%, transparent 84%); }
}

/* ---------------- section heads ---------------- */
.jm-cathead{ max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); display:flex; align-items:flex-end; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-bottom:34px; }
.jm-cathead h2{ font-family:var(--fdisplay); font-weight:600; font-size:clamp(1.7rem,1.2rem+2vw,2.7rem); line-height:1.03; margin:0; }
.jm-count{ color:var(--muted); font-family:var(--fmono); font-size:.85rem; letter-spacing:.05em; }

.jm-cat,.jm-actus-sec{ padding:clamp(56px,6vw,86px) 0 clamp(46px,5vw,72px); }
/* Alternance des fonds (de haut en bas) : bio(base) → actus(surface) →
   docu(base) → fictions(surface) → divers(base). Classes explicites pour
   éviter que le hero fausse le compte de nth-of-type. */
.jm-bio{ background:var(--bg); }
.jm-actus-sec{ background:var(--bg2); }
.jm-cat{ background:var(--bg); }
.jm-cat.jm-mirror{ background:var(--bg2); }

/* ---------------- showcase (1 grande + 2 petites) ---------------- */
.jm-showcase{ max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); display:grid; grid-template-columns:1.5fr 1fr; grid-template-rows:repeat(2,1fr); gap:clamp(14px,1.6vw,22px); }
.jm-card{ position:relative; display:block; border-radius:10px; overflow:hidden; border:1px solid var(--line); min-height:clamp(178px,20vw,214px); text-decoration:none; transition:border-color .4s var(--e),transform .4s var(--e),box-shadow .4s var(--e); }
.jm-card .jm-bg{ position:absolute; inset:0; background:linear-gradient(160deg,#3a3d52,#161824); background-size:cover; background-position:center; transition:transform .7s var(--e); }
.jm-card::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(0,0,0,.75)); }
.jm-card:hover{ border-color:color-mix(in srgb,var(--blue) 60%,var(--line)); box-shadow:0 22px 44px -24px rgba(72,96,240,.6); }
.jm-card:hover .jm-bg{ transform:scale(1.06); }
.jm-card-body{ position:absolute; z-index:2; left:0; right:0; bottom:0; padding:clamp(15px,1.8vw,26px); }
.jm-chip{ display:inline-flex; align-items:center; gap:7px; font-family:var(--fmono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:#fff; border:1px solid rgba(255,255,255,.42); padding:5px 11px; border-radius:100px; margin-bottom:12px; }
.jm-chip::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--red); }
.jm-feature{ grid-column:1; grid-row:1 / span 2; }
.jm-mirror .jm-feature{ grid-column:2; grid-row:1 / span 2; }
.jm-feature .jm-card-body h3{ font-family:var(--fdisplay); font-size:clamp(1.6rem,1.1rem+1.9vw,2.6rem); color:#fff; line-height:1; margin:0; }
.jm-fpitch{ color:rgba(255,255,255,.8); font-size:.95rem; line-height:1.5; max-width:44ch; margin:12px 0 0; }
.jm-mini .jm-card-body h3{ font-family:var(--fdisplay); font-size:1.16rem; color:#fff; line-height:1.02; margin:0; }
.jm-card .jm-play{ width:40px; height:40px; top:15px; right:15px; left:auto; bottom:auto; border-width:1.5px; opacity:0; transform:scale(.82); }
.jm-card .jm-play::after{ border-left-width:10px; border-top-width:6px; border-bottom-width:6px; margin-left:2px; }
.jm-card:hover .jm-play{ opacity:1; transform:scale(1); background:var(--red); border-color:var(--red); }
@media (max-width:900px){ .jm-showcase{ grid-template-columns:1fr 1fr; grid-template-rows:auto; } .jm-feature,.jm-mirror .jm-feature{ grid-column:1 / -1; grid-row:auto; min-height:clamp(280px,52vw,360px); } }
@media (max-width:520px){ .jm-showcase{ grid-template-columns:1fr; } }

/* ---------------- actus ---------------- */
.jm-actus{ max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.4vw,30px); }
.jm-actu{ display:block; border-radius:10px; overflow:hidden; background:var(--panel); border:1px solid var(--line); text-decoration:none; transition:transform .4s var(--e),border-color .4s var(--e); }
.jm-actu:hover{ transform:translateY(-6px); border-color:color-mix(in srgb,var(--blue) 55%,var(--line)); }
.jm-thumb{ position:relative; display:block; aspect-ratio:16/10; overflow:hidden; background:linear-gradient(150deg,#3a4a86,#171a2e); background-size:cover; background-position:center; }
.jm-date{ position:absolute; top:12px; left:12px; font-family:var(--fmono); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; background:rgba(10,11,17,.7); backdrop-filter:blur(4px); color:var(--ink); padding:6px 11px; border-radius:100px; }
.jm-actu-body{ display:block; padding:20px 22px 24px; }
.jm-actu-body h3{ font-family:var(--fdisplay); font-size:1.2rem; margin:0 0 9px; line-height:1.14; color:var(--ink); }
.jm-go{ font-family:var(--fmono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--blue-2); display:inline-flex; gap:7px; transition:gap .3s var(--e),color .3s var(--e); }
.jm-actu:hover .jm-go{ gap:12px; color:var(--red-2); }
@media (max-width:820px){ .jm-actus{ grid-template-columns:1fr; } }

/* ---------------- bio band (statique, éditable) ---------------- */
.jm-bio em{ font-style:italic; color:var(--red); }
.jm-bio-illus{ margin:0; }
.jm-bio-illus img{ display:block; width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:12px; box-shadow:0 26px 54px -26px rgba(0,0,0,.72); }
.jm-pull{ font-family:var(--fdisplay); font-style:italic; font-size:clamp(1.14rem,.9rem+.8vw,1.5rem); line-height:1.4; border-left:2px solid var(--red); padding-left:22px; max-width:42ch; }
.jm-stats{ display:flex; gap:clamp(22px,3vw,46px); flex-wrap:wrap; }
.jm-stats > div{ position:relative; padding-top:15px; }
.jm-stats > div::before{ content:""; position:absolute; top:0; left:0; width:26px; height:2px; background:var(--blue); }
.jm-stats b{ display:block; font-family:var(--fdisplay); font-weight:600; font-size:clamp(1.55rem,1.2rem+1.1vw,2.1rem); font-variant-numeric:tabular-nums; line-height:1; }
.jm-stats span{ display:block; font-family:var(--fmono); font-size:.63rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-top:9px; }

/* ---------------- fiche film (single) ---------------- */
.jm-fwrap{ max-width:1120px; margin:0 auto; padding:0 var(--pad); }
.jm-film-head{ padding-top:clamp(40px,6vw,72px); }
.jm-back{ display:inline-block; font-family:var(--fmono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--blue-2); text-decoration:none; transition:color .25s var(--e); }
.jm-back:hover{ color:var(--ink); }
.jm-film-chip{ margin:20px 0 14px; }
.jm-chip-link{ text-decoration:none; transition:border-color .25s var(--e), color .25s var(--e); }
.jm-chip-link:hover{ border-color:var(--blue); color:#fff; }
.jm-film-title{ font-family:var(--fdisplay); font-weight:600; font-size:clamp(2.3rem,1.5rem+3vw,4.4rem); line-height:1.02; letter-spacing:-.02em; margin:0; text-wrap:balance; }
.jm-film-media{ margin-top:clamp(28px,4vw,44px); }
.jm-video{ position:relative; aspect-ratio:16/9; border-radius:12px; overflow:hidden; background:#000; box-shadow:0 46px 90px -46px rgba(0,0,0,.85); }
.jm-video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.jm-video--still{ background-size:cover; background-position:center; }
.jm-film-body{ padding-top:clamp(30px,4vw,50px); }
.jm-film-synopsis{ font-size:1.16rem; line-height:1.75; max-width:68ch; color:#c9cbdd; }
.jm-film-img{ margin:0; text-align:center; }
.jm-film-img img{ display:inline-block; width:auto; max-width:100%; max-height:min(72vh,640px); height:auto; border-radius:12px; box-shadow:0 40px 80px -46px rgba(0,0,0,.75); }
.jm-film-gallery{ margin-top:clamp(28px,4vw,44px); }
.jm-film-gallery .jm-lbl{ margin-bottom:16px; }
.jm-gallery{ display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px; -webkit-overflow-scrolling:touch; scrollbar-width:thin; }
.jm-gallery .jm-gslide{ flex:0 0 auto; width:min(80%,720px); scroll-snap-align:center; border-radius:10px; overflow:hidden; border:1px solid var(--line); }
.jm-gallery .jm-gslide img{ display:block; width:100%; height:100%; object-fit:cover; aspect-ratio:16/10; transition:transform .5s var(--e); }
.jm-gallery .jm-gslide:hover img{ transform:scale(1.03); }
.jm-related-grid{ grid-template-columns:repeat(3,1fr) !important; grid-template-rows:auto !important; }
@media (max-width:760px){ .jm-related-grid{ grid-template-columns:1fr 1fr !important; } }
@media (max-width:480px){ .jm-related-grid{ grid-template-columns:1fr !important; } }

/* Séparateurs « pellicule » retirés : l'alternance des fonds + l'espacement
   suffisent à séparer les sections (rendu plus épuré). */
.jm-hero, .jm-cat, .jm-actus-sec, .jm-bio{ position:relative; }
.jm-cat, .jm-actus-sec{ border-top:0; }
/* limite basse du header : fin liseré teinté bleu + léger halo (rappel du survol des blocs films) */
header.wp-block-group{ position:relative; z-index:40; border-bottom:1px solid color-mix(in srgb, var(--blue) 42%, var(--line)); box-shadow:0 8px 24px -16px rgba(72,96,240,.5); }
/* supprime l'espacement automatique du thème entre le header et le hero */
main:has(.jm-hero){ margin-top:0; }

/* ---------------- pages : archive Films ---------------- */
.jm-archive{ padding:clamp(44px,6vw,78px) 0 clamp(56px,7vw,96px); }
.jm-archead-title{ font-family:var(--fdisplay); font-weight:600; font-size:clamp(2.4rem,1.6rem+3vw,4.4rem); letter-spacing:-.02em; line-height:1.02; margin:0; }
.jm-filters{ display:flex; gap:10px; flex-wrap:wrap; margin-top:26px; }
.jm-filter{ display:inline-flex; align-items:center; gap:6px; line-height:1; font-family:var(--fmono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; padding:10px 17px; border:1px solid var(--line); border-radius:100px; background:transparent; color:var(--muted) !important; text-decoration:none !important; cursor:pointer; transition:color .25s var(--e), border-color .25s var(--e), background .25s var(--e); }
.jm-filter.is-on{ color:var(--bg) !important; }
.jm-filter:hover{ color:var(--ink); border-color:color-mix(in srgb,var(--blue) 40%,var(--line)); }
.jm-filter.is-on{ background:var(--ink); color:var(--bg); border-color:var(--ink); }
.jm-fn{ opacity:.55; }
.jm-films-grid{ margin-top:34px; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.4vw,30px); }
@media (max-width:900px){ .jm-films-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .jm-films-grid{ grid-template-columns:1fr; } }
.jm-fcard{ display:block; text-decoration:none; }
.jm-fcard.is-hidden{ display:none; }
.jm-fthumb{ position:relative; display:block; aspect-ratio:16/10; border-radius:8px; overflow:hidden; border:1px solid var(--line); background:linear-gradient(160deg,#3a3d52,#161824); background-size:cover; background-position:center; transition:transform .4s var(--e), border-color .4s var(--e), box-shadow .4s var(--e); }
.jm-fcard:hover .jm-fthumb{ transform:translateY(-5px); border-color:color-mix(in srgb,var(--blue) 60%,var(--line)); box-shadow:0 20px 40px -22px rgba(72,96,240,.6); }
.jm-fthumb .jm-play{ width:40px; height:40px; top:14px; right:14px; left:auto; bottom:auto; border-width:1.5px; opacity:0; transform:scale(.82); }
.jm-fthumb .jm-play::after{ border-left:10px solid #fff; border-top:6px solid transparent; border-bottom:6px solid transparent; margin-left:2px; }
.jm-fcard:hover .jm-fthumb .jm-play{ opacity:1; transform:scale(1); background:var(--red); border-color:var(--red); }
.jm-fmeta{ display:block; font-family:var(--fmono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--blue-2); margin-top:12px; }
.jm-ftitle{ display:block; font-family:var(--fdisplay); font-weight:600; font-size:1.14rem; line-height:1.1; color:var(--ink); margin-top:10px; transition:color .3s var(--e); }
.jm-fcard:hover .jm-ftitle{ color:var(--blue-2); }
.jm-type{ position:absolute; top:12px; left:12px; z-index:2; font-family:var(--fmono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; background:rgba(10,11,17,.72); backdrop-filter:blur(4px); color:#fff; padding:5px 10px; border-radius:100px; }
.jm-noresult{ color:var(--muted); font-size:1.12rem; }
.jm-noresult a{ color:var(--blue-2); }
.jm-actus-grid{ margin-top:34px; }
.jm-pagination{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:clamp(32px,4vw,52px); }
.jm-page-btn{ font-family:var(--fmono); font-size:.82rem; min-width:42px; height:42px; padding:0 13px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:7px; color:var(--muted); text-decoration:none; transition:color .25s var(--e), border-color .25s var(--e), background .25s var(--e); }
.jm-page-btn:hover{ color:var(--ink); border-color:color-mix(in srgb,var(--blue) 45%,var(--line)); }
.jm-page-btn.is-on{ background:var(--blue); color:#fff; border-color:var(--blue); }
.jm-page-btn.is-dis{ opacity:.3; pointer-events:none; }
.jm-page-ell{ color:var(--muted); padding:0 4px; }

/* ---------------- contenu rendu (articles, pages, fiches film) ---------------- */
.jm-article :where(p,li){ font-size:1.1rem; line-height:1.78; color:#c9cbdd; }
.jm-article :where(h1,h2,h3,h4){ font-family:var(--fdisplay); color:var(--ink); line-height:1.18; margin-top:1.3em; }
.jm-article :where(h2){ font-size:clamp(1.6rem,1.2rem+1.4vw,2.3rem); }
.jm-article :where(h3){ font-size:1.5rem; }
.jm-article :where(h4){ font-size:clamp(1.3rem,1rem+1vw,1.7rem); font-weight:600; }
.jm-article :where(img){ border-radius:10px; max-width:100%; height:auto; }
.jm-article a{ color:var(--blue-2); }
.jm-article :where(iframe){ max-width:100%; border-radius:10px; }

.jm-film-content{ margin-top:clamp(28px,4vw,44px); }
.jm-film-content > *{ margin-top:0; margin-bottom:1.3em; }
.jm-film-content :where(p,li){ font-size:1.12rem; line-height:1.75; color:#c9cbdd; max-width:70ch; }
.jm-film-content :where(h1,h2,h3,h4){ font-family:var(--fdisplay); color:var(--ink); line-height:1.2; margin-top:1.1em; }
.jm-film-content :where(h2){ font-size:clamp(1.5rem,1.1rem+1.4vw,2.1rem); }
.jm-film-content :where(h3,h4){ font-size:1.4rem; }
.jm-film-content a{ color:var(--blue-2); }
.jm-film-content :where(img){ border-radius:10px; max-width:100%; height:auto; }
.jm-film-content figure{ margin:1.4em 0; }
.jm-film-content .wp-block-embed, .jm-film-content .jm-video{ margin:1.6em 0; }
.jm-film-content iframe{ max-width:100%; border-radius:10px; }

/* ---------------- contact ---------------- */
.jm-form{ display:grid; gap:16px; }
.jm-form label{ display:grid; gap:7px; font-family:var(--fmono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.jm-form input, .jm-form textarea{ background:var(--surface); border:1px solid var(--line); border-radius:9px; padding:13px 15px; color:var(--ink); font-family:var(--fbody); font-size:1rem; }
.jm-form input:focus, .jm-form textarea:focus{ outline:none; border-color:var(--blue); }
.jm-form .jm-btn{ justify-self:start; border:0; cursor:pointer; margin-top:4px; }
.jm-form-note{ font-family:var(--fmono); font-size:.66rem; letter-spacing:.04em; color:var(--muted); }
.jm-contact-info{ display:grid; gap:28px; align-content:start; }
.jm-ci-block .jm-lbl{ margin-bottom:8px; }
.jm-ci-block a{ display:block; color:var(--ink); text-decoration:none; font-size:1.12rem; margin-top:5px; transition:color .25s var(--e); }
.jm-ci-block a:hover{ color:var(--blue-2); }

/* ---------------- logo, en-tête, recherche ---------------- */
.jm-logo{ display:block; width:210px; height:30px; max-width:52vw; background:url("../logo.png") left center/contain no-repeat; }
.jm-menu, .jm-menu a, .jm-menu .wp-block-navigation-item__content, .jm-menu.has-text-color a{ color:#fff !important; }
.jm-menu a, .jm-menu .wp-block-navigation-item__content{ position:relative; font-size:0.87rem; letter-spacing:0.1em; text-decoration:none; padding-bottom:6px; transition:color .25s var(--e); }
.jm-menu a::after, .jm-menu .wp-block-navigation-item__content::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--blue); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--e); }
.jm-menu a:hover::after, .jm-menu .wp-block-navigation-item__content:hover::after{ transform:scaleX(1); }
.jm-menu .current-menu-item > .wp-block-navigation-item__content::after, .jm-menu .current_page_item > .wp-block-navigation-item__content::after, .jm-menu .jm-active::after{ transform:scaleX(1); }

/* portrait du résumé d'accueil (image en paysage, non recadrée) */
.jm-home-portrait{ margin:0; }
.jm-home-portrait img{ display:block; width:100%; height:auto; border-radius:12px; box-shadow:0 30px 60px -34px rgba(0,0,0,.72); }
/* Colonnes du bloc « réalisateur » rendues autonomes : le bloc est généré
   dynamiquement, donc on ne dépend PAS du CSS des colonnes de WordPress. */
.jm-bio .wp-block-columns{ display:flex; flex-wrap:wrap; gap:clamp(32px,5vw,72px); align-items:center; max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); box-sizing:content-box; }
.jm-bio .wp-block-column{ flex:1 1 0%; min-width:0; margin:0; }
.jm-bio .wp-block-column:first-child{ flex:0 0 46%; }
@media (max-width:781px){
  .jm-bio .wp-block-column,
  .jm-bio .wp-block-column:first-child{ flex-basis:100%; }
}
.jm-search .wp-block-search__inside-wrapper{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:1px 1px 1px 8px; transition:border-color .25s var(--e); }
.jm-search .wp-block-search__inside-wrapper:focus-within{ border-color:var(--blue); }
.jm-search input.wp-block-search__input{ background:transparent; border:0; color:var(--ink); padding:5px 4px; font-size:.85rem; min-width:0; height:auto; }
.jm-search input.wp-block-search__input::placeholder{ color:var(--muted); }
.jm-search .wp-block-search__button{ background:transparent; border:0; color:var(--muted); padding:5px 8px; cursor:pointer; transition:color .25s var(--e); }
.jm-search .wp-block-search__button:hover{ color:var(--ink); background:transparent; }
.jm-search .wp-block-search__button svg{ fill:currentColor; width:17px; height:17px; }
.jm-search-page .wp-block-search__inside-wrapper{ background:var(--surface); border:1px solid var(--line); border-radius:7px; padding:2px 2px 2px 8px; }
.jm-search-page input.wp-block-search__input{ background:transparent; border:0; padding:8px 6px; }
.jm-search-page .wp-block-search__button{ background:var(--blue); color:#fff; border-radius:5px; padding:9px 12px; }

/* ---------------- pied de page ---------------- */
.jm-foot{ display:grid; gap:clamp(26px,3.5vw,38px); }
.jm-foot-top{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; padding-bottom:clamp(22px,3vw,32px); border-bottom:1px solid var(--line); }
.jm-foot-logo{ height:26px; width:186px; }
.jm-foot-nav{ display:flex; gap:24px; flex-wrap:wrap; font-family:var(--fmono); font-size:.72rem; letter-spacing:.11em; text-transform:uppercase; }
.jm-foot-nav a, .jm-foot-legal a, .jm-foot-soc a{ color:var(--muted); text-decoration:none; transition:color .25s var(--e); }
.jm-foot-nav a:hover, .jm-foot-legal a:hover, .jm-foot-soc a:hover{ color:var(--ink); }
.jm-foot-bottom{ display:flex; align-items:center; justify-content:space-between; gap:14px 28px; flex-wrap:wrap; }
.jm-foot-legal{ display:flex; gap:20px; flex-wrap:wrap; font-family:var(--fmono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.jm-foot-soc{ display:flex; gap:18px; font-family:var(--fmono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.jm-foot-copy{ font-family:var(--fmono); font-size:.68rem; letter-spacing:.06em; color:var(--muted); }

/* ---------------- divers ---------------- */
.jm-cite{ font-family:var(--fmono); font-size:.78rem; letter-spacing:.05em; color:var(--muted); font-style:normal; margin-top:14px; }
.jm-pull .jm-cite em{ font-style:italic; color:var(--muted); }
.jm-sgrid{ margin-top:6px; }
.jm-scard .wp-block-post-featured-image{ margin:0; border-radius:8px; overflow:hidden; border:1px solid var(--line); aspect-ratio:16/10; background:linear-gradient(160deg,#3a3d52,#161824); transition:border-color .4s var(--e), box-shadow .4s var(--e); }
.jm-scard .wp-block-post-featured-image img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--e); }
.jm-scard:hover .wp-block-post-featured-image{ border-color:color-mix(in srgb,var(--blue) 55%,var(--line)); box-shadow:0 18px 36px -22px rgba(72,96,240,.6); }
.jm-scard:hover .wp-block-post-featured-image img{ transform:scale(1.05); }
.jm-scard .wp-block-post-title a{ color:var(--ink); text-decoration:none; transition:color .25s var(--e); }
.jm-scard:hover .wp-block-post-title a{ color:var(--blue-2); }

/* ---------------- page En 2 mots ---------------- */
.jm-en2mots .jm-portrait{ margin:0; }
.jm-en2mots .jm-portrait img{ display:block; width:100%; height:auto; border-radius:12px; box-shadow:0 30px 60px -34px rgba(0,0,0,.72); }
.jm-en2mots figcaption, .jm-en2mots .wp-element-caption{ font-family:var(--fmono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-top:10px; text-align:left; }
.jm-en2mots-gal.wp-block-gallery{ display:grid !important; gap:clamp(14px,1.8vw,22px); }
.jm-en2mots-gal.columns-3{ grid-template-columns:repeat(3,1fr); }
.jm-en2mots-gal.columns-2{ grid-template-columns:repeat(2,1fr); }
.jm-en2mots-gal figure.wp-block-image{ margin:0; width:100%; }
.jm-en2mots-gal figure.wp-block-image img{ width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; display:block; border-radius:10px; }
@media (max-width:720px){ .jm-en2mots-gal.columns-3{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .jm-en2mots-gal.columns-3, .jm-en2mots-gal.columns-2{ grid-template-columns:1fr; } }
.jm-en2mots strong{ color:var(--ink); font-weight:600; }
.jm-influences .wp-block-image{ margin:0; }
.jm-influences .wp-block-image img{ width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:10px; display:block; }

/* reveal */
.jm-reveal{ opacity:0; transform:translateY(24px); transition:opacity .8s var(--e),transform .8s var(--e); }
.jm-reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .jm-hero-track{ transition:none; } .jm-reveal{ opacity:1; transform:none; transition:none; } .jm-slide-bg{ animation:none; transform:scale(1.03); } }
