/* ===== Assises de la Jeunesse — one page per edition (layouts/assises.njk) ===== */
.assises{ --peri:#9FB2FF; --rust:#A84E1A; }

/* button variants — `.assises` outranks the page accent (body[data-accent] .btn) */
.btn svg{ width:17px; height:17px; flex:none; }
.assises .btn.light{ background:#fff; color:var(--navy); border-color:#fff; }
.assises .btn.light:hover{ background:var(--haze); border-color:var(--haze); color:var(--navy); }
.assises .btn.ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.assises .btn.ghost:hover{ background:#fff; color:var(--navy); border-color:#fff; }
.assises .btn.outline{ background:transparent; color:var(--sky-deep); border-color:var(--sky-deep); }
.assises .btn.outline:hover{ background:var(--sky-deep); color:#fff; border-color:var(--sky-deep); }

/* ---------- hero ---------- */
.ahero{ position:relative; overflow:hidden; background:var(--navy); color:#fff; }
.ahero::before{ content:""; position:absolute; right:-190px; top:-170px; width:640px; height:640px; border-radius:50%; border:94px solid rgba(255,255,255,.08); }
.ahero::after{ content:""; position:absolute; right:70px; top:150px; width:470px; height:470px; border-radius:50%; border:94px solid rgba(255,255,255,.06); }
.ahero.archive{ background:linear-gradient(rgba(11,6,104,.86),rgba(11,6,104,.86)), var(--hero-img, none) center 35% / cover no-repeat; background-color:var(--navy-deep); }
.ahero.archive::before,.ahero.archive::after{ display:none; }
.ahero .wrap{ position:relative; z-index:1; padding-top:56px; padding-bottom:72px; }
.ahero .htop{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.assises .ahero .crumb{ font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.8); }
.ahero .crumb a:hover{ color:#fff; text-decoration:underline; }
.edsw{ display:inline-flex; align-items:center; gap:4px; padding:4px; border-radius:999px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); }
.edsw .lbl{ font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.78); padding:0 8px 0 12px; }
.edsw a{ display:inline-flex; align-items:center; min-height:40px; padding:0 18px; border-radius:999px; font-family:"Schibsted Grotesk",sans-serif; font-weight:700; font-size:14.5px; color:#fff; transition:background .15s; }
.edsw a:hover{ background:rgba(255,255,255,.14); }
.edsw a.on{ background:#fff; color:var(--navy); }
.ahero .hed{ margin-top:52px; font-family:"IBM Plex Mono",monospace; font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:var(--peri); }
.ahero h1{ font-size:clamp(40px,7vw,96px); font-weight:400; letter-spacing:-.035em; line-height:.98; margin-top:16px; }
.ahero h1 b{ display:block; font-weight:900; }
.ahero .theme{ font-size:clamp(19px,2vw,24px); font-style:italic; font-weight:500; color:rgba(255,255,255,.94); margin-top:24px; max-width:44ch; line-height:1.4; }
.facts{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-top:40px; padding-top:28px; border-top:1px solid rgba(255,255,255,.22); max-width:1020px; }
.facts .k{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--peri); }
.facts b{ display:block; font-family:"Schibsted Grotesk",sans-serif; font-weight:700; font-size:19px; line-height:1.25; margin-top:8px; }
.facts span{ display:block; font-size:14.5px; color:rgba(255,255,255,.82); margin-top:4px; }
.hacts{ display:flex; gap:12px; flex-wrap:wrap; margin-top:36px; }

/* ---------- key figures ---------- */
.ribbon{ background:var(--navy-deep); color:#fff; }
.ribbon .wrap{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.ribbon .st{ padding:28px 26px; border-left:1px solid rgba(255,255,255,.14); }
.ribbon .st:first-child{ border-left:0; padding-left:0; }
.ribbon .st b{ display:block; font-family:"Schibsted Grotesk",sans-serif; font-weight:800; font-size:40px; line-height:1; letter-spacing:-.03em; }
.ribbon .st span{ display:block; font-family:"IBM Plex Mono",monospace; font-size:12px; color:rgba(255,255,255,.75); margin-top:10px; }

/* ---------- note band (reuses .comm) ---------- */
.aband .wrap{ padding-top:34px; padding-bottom:34px; }
.aband .abody p{ font-size:16px; color:var(--ink-60); max-width:72ch; }
.aband .abody a{ color:var(--royal); text-decoration:underline; }

/* ---------- sections ---------- */
.asec.mist{ background:var(--mist); }
.asec.dark{ background:var(--navy); color:#fff; }
.asec .shead h2{ font-size:clamp(30px,4vw,50px); }
.asec.dark .ey{ color:var(--peri); }
.asec.dark .shead h2{ color:#fff; }
.asec.dark .shead .lead{ color:rgba(255,255,255,.82); }
.srow{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }

/* ---------- programme ---------- */
.prog{ margin-top:48px; }
.slot{ display:grid; grid-template-columns:150px minmax(0,1fr); gap:28px; padding:20px 0; border-top:1px solid var(--line-2); }
.slot:first-child{ border-top:0; padding-top:0; }
.slot .t{ font-family:"Schibsted Grotesk",sans-serif; font-weight:700; font-size:18px; color:var(--royal); line-height:1.3; padding-top:2px; }
.slot h3{ font-size:21px; font-weight:700; color:var(--navy); letter-spacing:-.015em; line-height:1.3; }
.slot h3 small{ font-family:"Archivo",sans-serif; font-weight:400; font-size:15px; color:var(--ink-60); letter-spacing:0; }
.slot .who{ font-size:15.5px; color:var(--ink-60); margin-top:6px; }
.slot .who b{ color:var(--ink); font-weight:600; }
.tr{ background:#fff; border:1px solid var(--line); border-radius:var(--rad); padding:30px 32px 28px; box-shadow:0 22px 50px -42px rgba(16,0,144,.4); }
.tr .lab{ font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--royal); }
.tr h3{ font-size:clamp(21px,2.2vw,27px); font-weight:800; line-height:1.2; margin-top:10px; }
.roles{ display:grid; grid-template-columns:150px minmax(0,1fr); gap:12px 24px; margin:22px 0 0; padding-top:20px; border-top:1px solid var(--line); }
.roles dt{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-40); padding-top:3px; }
.roles dd{ margin:0; font-size:15.5px; color:var(--ink-60); line-height:1.5; }
.roles dd b{ color:var(--ink); font-weight:600; }
.roles .cont{ margin-top:-8px; }
.star{ color:var(--royal); font-weight:700; }
.fnote{ font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink-40); margin-top:22px; }

/* ---------- registration ---------- */
.reg{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:64px; align-items:start; }
.ticks{ list-style:none; margin:28px 0 0; padding:0; display:flex; flex-direction:column; gap:14px; }
.ticks li{ display:flex; gap:12px; font-size:15.5px; color:var(--ink-60); line-height:1.5; }
.ticks svg{ flex:none; width:20px; height:20px; color:var(--royal); margin-top:2px; }
.tarifs{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.tarif{ border:1px solid var(--line); border-radius:var(--rad); padding:24px 24px 22px; background:#fff; }
.tarif .k{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-40); }
.tarif b{ display:block; font-family:"Schibsted Grotesk",sans-serif; font-weight:800; font-size:44px; color:var(--navy); letter-spacing:-.03em; line-height:1; margin-top:14px; }
.tarif.hl{ background:var(--haze); border-color:var(--line-2); }
.tarif.hl .k{ color:var(--royal); }
.regcta{ margin-top:20px; display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.regcta .small a{ font-size:14px; color:var(--royal); text-decoration:underline; }

/* ---------- photo mosaics ---------- */
.mosaic{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:210px; gap:12px; margin-top:44px; }
.mosaic.dense{ grid-auto-flow:dense; }
.mosaic figure{ margin:0; border-radius:12px; overflow:hidden; background:var(--mist); }
.asec.dark .mosaic figure{ background:rgba(255,255,255,.06); }
.mosaic img{ width:100%; height:100%; object-fit:cover; }
.mosaic .w2{ grid-column:span 2; }
.mosaic .h2{ grid-row:span 2; }

/* ---------- partners ---------- */
.pgrp{ display:grid; grid-template-columns:220px minmax(0,1fr); gap:28px; padding:28px 0; border-top:1px solid var(--line); }
.srow + .pgrp{ margin-top:36px; }
.pgrp .k{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-40); padding-top:6px; }
.plogos{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; }
.plogos.two{ grid-template-columns:repeat(2,minmax(0,1fr)); max-width:560px; }
.plogo{ min-height:96px; border:1px solid var(--line); border-radius:12px; display:flex; align-items:center; justify-content:center; text-align:center; padding:12px; font-family:"Schibsted Grotesk",sans-serif; font-weight:700; font-size:15.5px; line-height:1.2; color:var(--navy); background:#fff; transition:border-color .15s; }
a.plogo:hover{ border-color:var(--sky); }
.plogo img{ max-height:64px; max-width:100%; width:auto; height:auto; object-fit:contain; }
.plogo.big{ min-height:112px; font-size:24px; letter-spacing:-.01em; }
.plogo.big img{ max-height:72px; }

/* ---------- practical info ---------- */
.infos{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:40px; }
.info{ background:#fff; border-radius:var(--rad); padding:28px 28px 30px; border:1px solid var(--line); }
.info svg{ width:26px; height:26px; color:var(--royal); }
.info h3{ font-size:20px; font-weight:700; color:var(--navy); margin-top:16px; }
.info p{ font-size:15px; color:var(--ink-60); margin-top:8px; }
.info a{ color:var(--royal); text-decoration:underline; }

/* ---------- next edition band ---------- */
.next{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:end; }
.next .acts{ display:flex; gap:12px; flex-wrap:wrap; }

@media(max-width:980px){
  .facts{ grid-template-columns:1fr; gap:18px; }
  .ribbon .wrap{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ribbon .st{ border-left:0; border-top:1px solid rgba(255,255,255,.14); padding-left:0; }
  .reg{ grid-template-columns:1fr; gap:36px; }
  .pgrp{ grid-template-columns:1fr; gap:14px; }
  .plogos{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .infos{ grid-template-columns:1fr; }
  .mosaic{ grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:170px; }
  .next{ grid-template-columns:1fr; gap:28px; }
}
@media(max-width:640px){
  .assises .wrap{ padding-left:24px; padding-right:24px; }
  .ahero .wrap{ padding-top:36px; padding-bottom:52px; }
  .ahero .hed{ margin-top:36px; }
  .edsw .lbl{ display:none; }
  .asec{ padding:64px 0; }
  .slot{ grid-template-columns:1fr; gap:8px; }
  .roles{ grid-template-columns:1fr; gap:2px; }
  .roles dd{ margin-bottom:12px; }
  .roles .cont{ margin-top:0; }
  .tr{ padding:22px 20px; }
  .tarif b{ font-size:34px; }
  .plogos,.plogos.two{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ribbon .st b{ font-size:32px; }
  .btn{ white-space:normal; }
  .aband .wrap{ padding-top:26px; padding-bottom:26px; }
}
