/* ==========================================================================
   Kizomba Events Worldwide — front public
   Design : celui de One Million Events (éditorial nocturne, typo XXL Montserrat,
   rubriques numérotées, affiches 4:5, grain, comptes à rebours, boutons pilule).
   Couleurs : palette Weezevent — bleu #0032FA, encre #0F0F14, turquoise #2DD2BE,
   gris #98A2B3, fond clair #F0F5FA, rouge #FA3E4E.
   ========================================================================== */
:root {
  --night:#0F0F14; --panel:#17171F; --panel2:#1E1E29; --ink:#FFFFFF; --soft:#98A2B3; --paper:#F0F5FA;
  --hot:#0032FA; --hot-l:#4D74FF; --teal:#2DD2BE; --red:#FA3E4E; --rule:rgba(255,255,255,.09);
}
html, body.kew { background:var(--night); color:var(--ink); font-family:'Montserrat', system-ui, sans-serif; }
body.kew { overflow-x:hidden; -webkit-font-smoothing:antialiased; }
.kew ::selection { background:var(--hot); color:#fff; }
/* Grain argentique (identique One Million Events) */
body.kew::before { content:''; position:fixed; inset:-50%; z-index:100; pointer-events:none; opacity:.06;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grain 1.2s steps(6) infinite; }
@keyframes grain { 0%{transform:translate(0,0)} 20%{transform:translate(-3%,2%)} 40%{transform:translate(2%,-3%)} 60%{transform:translate(-2%,-1%)} 80%{transform:translate(3%,3%)} 100%{transform:translate(0,0)} }
.skip { position:absolute; left:-999px; top:8px; z-index:120; background:#fff; color:var(--night); padding:.5rem 1rem; border-radius:8px; font-weight:700; }
.skip:focus { left:8px; }
.k-wrap { width:100%; max-width:1400px; margin:0 auto; padding:0 16px; }
@media (min-width:768px){ .k-wrap { padding:0 32px; } }

/* ---------- Typo ---------- */
.k-display { font-weight:900; text-transform:uppercase; letter-spacing:-.045em; line-height:.88; font-size:clamp(2.4rem, 6.6vw, 6.4rem); overflow-wrap:break-word; }
.k-h2 { font-weight:900; text-transform:uppercase; letter-spacing:-.035em; line-height:.92; font-size:clamp(2.2rem, 5.6vw, 4.8rem); }
.k-h3 { font-weight:900; text-transform:uppercase; letter-spacing:-.02em; line-height:.98; font-size:clamp(1.5rem, 2.6vw, 2.1rem); margin:.4rem 0 .7rem; }
.d-thin { font-weight:300; letter-spacing:-.02em; }
.d-italic { font-style:italic; font-weight:800; }
.hot { color:var(--teal); }
.blue { color:var(--hot-l); }
.k-mono { font-size:.68rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.k-eyebrow, .k-kicker { display:flex; align-items:center; gap:.75rem; font-size:.7rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--soft); margin-bottom:1.6rem; }
.k-kicker b, .k-eyebrow b { color:var(--ink); font-weight:800; }
.k-kicker::after { content:''; height:1px; flex:1; background:var(--rule); }
.k-kicker.no-rule::after { display:none; }
.k-muted { color:var(--soft); }
.k-small { font-size:.7rem; line-height:1.6; }
.k-lede { font-size:clamp(1rem, 1.3vw, 1.15rem); line-height:1.65; color:#C9CED8; max-width:38rem; }
.k-lede-dark { font-size:clamp(1rem, 1.3vw, 1.12rem); line-height:1.75; color:#C9CED8; max-width:46rem; margin:1.8rem 0; }
.k-link { color:var(--ink); font-weight:700; background:linear-gradient(currentColor,currentColor) 0 100%/100% 1.5px no-repeat; padding-bottom:2px; transition:color .2s; }
.k-link:hover { color:var(--teal); }

/* ---------- Boutons (f-btn One Million Events) ---------- */
.k-btn { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.6rem; font-weight:800; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;
  padding:1rem 1.5rem; border-radius:999px; background:var(--ink); color:var(--night); overflow:hidden; isolation:isolate; transition:color .35s, transform .2s; cursor:pointer; white-space:nowrap; border:0; }
.k-btn::before { content:''; position:absolute; inset:0; z-index:-1; background:var(--hot); transform:translateY(101%); transition:transform .45s cubic-bezier(.7,0,.2,1); border-radius:inherit; }
.k-btn:hover { color:#fff; } .k-btn:hover::before { transform:none; }
.k-btn:active { transform:scale(.97); }
.k-btn:focus-visible, .k-icon-btn:focus-visible, .k-chip:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
.k-btn:disabled { opacity:.45; cursor:wait; }
.k-btn-sm { padding:.75rem 1.15rem; font-size:.68rem; }
.k-btn-hot, .k-btn-white { background:var(--hot); color:#fff; } .k-btn-hot::before, .k-btn-white::before { background:var(--ink); } .k-btn-hot:hover, .k-btn-white:hover { color:var(--night); }
.k-btn-teal { background:var(--teal); color:var(--night); } .k-btn-teal::before { background:var(--ink); } .k-btn-teal:hover { color:var(--night); }
.k-btn-line, .k-btn-ghost { background:transparent; color:var(--ink); box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.35); }
.k-btn .arr { transition:transform .35s; } .k-btn:hover .arr { transform:translateX(4px); }

/* ---------- Bandeau compte à rebours ---------- */
.k-topbar { position:relative; z-index:61; display:flex; align-items:center; justify-content:center; gap:.9rem; height:36px; padding:0 1rem; background:var(--hot); color:#fff;
  font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; overflow:hidden; }
.k-topbar b { font-weight:900; }
.k-topbar .k-dot { background:#fff; }
.k-topbar-cd { font-weight:900; font-variant-numeric:tabular-nums; background:var(--night); color:#fff; padding:.25rem .6rem; border-radius:6px; letter-spacing:.06em; }
.k-topbar-cd span { color:var(--teal); }
.k-topbar .k-go { display:none; align-items:center; gap:.3rem; font-weight:900; }
@media (min-width:640px){ .k-topbar .k-go { display:inline-flex; } }
.k-trunc { overflow:hidden; text-overflow:ellipsis; min-width:0; }

/* ---------- Header ---------- */
.k-head { position:fixed; inset:0 0 auto 0; z-index:60; isolation:isolate; transition:transform .45s cubic-bezier(.7,0,.2,1), background .3s; }
.k-head::before { content:''; position:absolute; left:0; right:0; top:0; bottom:-56px; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, rgba(15,15,20,.7) 0%, rgba(15,15,20,.5) 45%, rgba(15,15,20,0) 100%); transition:opacity .3s; }
.k-head.solid::before { opacity:0; }
.k-head.solid { background:rgba(15,15,20,.8); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--rule); }
.k-head.hide { transform:translateY(-100%); }
.k-head-in { display:flex; align-items:center; gap:1.5rem; height:72px; }
@media (min-width:768px){ .k-head-in { height:80px; } }
.k-brand { display:flex; align-items:center; gap:.75rem; color:#fff; line-height:1; }
.k-brand img { border-radius:12px; width:44px; height:44px; }
.k-brand span { display:flex; flex-direction:column; font-weight:800; font-size:.95rem; letter-spacing:-.01em; }
.k-brand b { font-weight:900; }
.k-brand em { font-style:normal; font-size:.6rem; font-weight:800; letter-spacing:.42em; color:var(--teal); margin-top:.3rem; }
.k-nav { display:none; gap:2rem; margin:0 auto; }
.k-nav a { font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#fff; text-shadow:0 1px 12px rgba(15,15,20,.6); transition:color .2s; }
.k-nav a:hover { color:var(--teal); }
.k-head .k-btn { margin-left:auto; }
@media (min-width:900px){ .k-nav { display:flex; } .k-head .k-btn { margin-left:0; } }
@media (max-width:420px){ .k-head .k-btn span { display:none; } .k-head .k-btn { padding:.75rem; } }

/* ---------- Hero globe ---------- */
.k-hero { position:relative; min-height:100svh; overflow:hidden; display:flex; align-items:center;
  background:radial-gradient(60% 70% at 72% 50%, rgba(0,50,250,.32) 0%, rgba(0,50,250,.08) 45%, transparent 70%), var(--night); }
.k-globe { position:absolute; inset:0; cursor:grab; }
.k-globe:active { cursor:grabbing; }
@media (min-width:1024px){ .k-hero .k-globe { left:36%; } }
.k-hero-txt { position:relative; z-index:2; pointer-events:none; padding-top:140px; padding-bottom:80px; }
.k-hero-txt > * { pointer-events:auto; max-width:min(640px, 100%); }
.k-hero-txt .k-display { margin:1.2rem 0 1.4rem; }
.k-geo { display:inline-flex; align-items:center; gap:.6rem; font-size:.66rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#fff;
  background:rgba(255,255,255,.06); box-shadow:inset 0 0 0 1px var(--rule); padding:.55rem .9rem; border-radius:999px; backdrop-filter:blur(8px); }
.k-dot { width:7px; height:7px; border-radius:999px; background:var(--teal); flex-shrink:0; animation:pulse 1.6s ease-in-out infinite; }
@keyframes pulse { 50% { opacity:.25; transform:scale(.7); } }
.k-search { display:flex; align-items:center; gap:.6rem; margin-top:2rem; padding:.4rem .4rem .4rem 1.2rem; border-radius:999px;
  background:rgba(23,23,31,.85); box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.14); backdrop-filter:blur(12px); transition:box-shadow .2s; }
.k-search:focus-within { box-shadow:inset 0 0 0 1.5px var(--teal); }
.k-search > svg { color:var(--soft); flex-shrink:0; }
.k-search input { flex:1; min-width:0; border:0; outline:0; background:transparent; color:#fff; font-size:1rem; font-weight:500; padding:.6rem 0; }
.k-search input::placeholder { color:var(--soft); }
.k-search .k-btn { padding:.85rem 1.2rem; }
@media (max-width:480px){ .k-search .k-btn span { display:none; } .k-search .k-btn { padding:.85rem; } }
.k-stats { display:flex; gap:2rem; margin-top:2rem; padding-top:1.4rem; border-top:1px solid var(--rule); flex-wrap:wrap; }
.k-stats span { display:flex; flex-direction:column; font-size:.6rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--soft); }
.k-stats b { font-size:2rem; font-weight:900; color:#fff; letter-spacing:-.03em; line-height:1; margin-bottom:.3rem; font-variant-numeric:tabular-nums; }
.k-stats { gap:1.2rem 2rem; }
.k-stat { flex-direction:row !important; align-items:center; gap:.85rem; }
.k-stat > span { display:flex; flex-direction:column; }
.k-stat-ic { position:relative; display:grid; place-items:center; width:48px; height:48px; border-radius:14px; flex-shrink:0; font-style:normal; isolation:isolate; transition:transform .35s cubic-bezier(.2,.8,.1,1); }
.k-stat-ic svg { width:22px; height:22px; stroke-width:2.2; }
.k-stat-ic.blue { background:linear-gradient(145deg, #2f5bff, var(--hot)); color:#fff; box-shadow:0 12px 28px -10px rgba(0,50,250,.8), inset 0 1px 0 rgba(255,255,255,.25); }
.k-stat-ic.teal { background:linear-gradient(145deg, #5fe6d6, var(--teal)); color:var(--night); box-shadow:0 12px 28px -10px rgba(45,210,190,.7), inset 0 1px 0 rgba(255,255,255,.4); }
.k-stat-ic::after { content:''; position:absolute; inset:-5px; z-index:-1; border-radius:18px; border:1px solid currentColor; opacity:0; transform:scale(.85); transition:opacity .35s, transform .35s; }
.k-stat-ic.blue::after { border-color:rgba(77,116,255,.5); } .k-stat-ic.teal::after { border-color:rgba(45,210,190,.5); }
.k-stat:hover .k-stat-ic { transform:translateY(-3px) rotate(-6deg); }
.k-stat:hover .k-stat-ic::after { opacity:1; transform:none; }
@media (max-width:480px){ .k-stats { display:grid; grid-template-columns:1fr 1fr; } .k-stat-ic { width:42px; height:42px; } .k-stats b { font-size:1.7rem; } }
.k-globe-ui { position:absolute; right:16px; bottom:20px; z-index:3; display:flex; gap:.5rem; }
.k-icon-btn { width:44px; height:44px; display:grid; place-items:center; border-radius:999px; background:rgba(255,255,255,.06); color:#fff; box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); backdrop-filter:blur(8px); transition:background .2s, color .2s; }
.k-icon-btn:hover { background:#fff; color:var(--night); }
.k-scroll { position:absolute; left:50%; bottom:22px; z-index:3; translate:-50% 0; font-size:.6rem; font-weight:700; letter-spacing:.3em; text-transform:uppercase; color:var(--soft); display:none; }
@media (min-width:1024px){ .k-scroll { display:block; } }
/* Info-bulles du globe */
.g-label { background:var(--panel); color:#fff; border-radius:14px; padding:.8rem .95rem; box-shadow:0 30px 60px -20px rgba(0,0,0,.8), inset 0 0 0 1px var(--rule); font-family:'Montserrat', sans-serif; min-width:220px; max-width:300px; }
.g-label h4 { font-weight:900; text-transform:uppercase; letter-spacing:-.02em; font-size:1rem; line-height:1.05; margin-bottom:.4rem; }
.g-label p { font-size:.74rem; color:var(--soft); line-height:1.45; margin-top:.3rem; }
.g-label p b { color:#fff; }
.g-label .g-more { color:var(--teal); font-weight:700; }
.g-me { pointer-events:none; transform:translate(-50%,-100%); background:var(--teal); color:var(--night); font:800 .6rem 'Montserrat', sans-serif; letter-spacing:.14em; text-transform:uppercase; padding:.35rem .6rem; border-radius:6px; white-space:nowrap; box-shadow:0 8px 20px -6px rgba(0,0,0,.6); }
.g-me::after { content:''; position:absolute; left:50%; bottom:-5px; margin-left:-5px; border:5px solid transparent; border-bottom:0; border-top-color:var(--teal); }
@media (max-width:1023px){
  .k-hero { align-items:flex-end; }
  .k-hero-txt { padding-top:52vh; padding-bottom:32px; background:linear-gradient(180deg, rgba(15,15,20,0) 0%, rgba(15,15,20,.9) 26%, var(--night) 100%); }
  .k-hero .k-globe { bottom:36%; top:60px; }
}

/* ---------- Sections ---------- */
.k-sec { padding:88px 0 0; }
@media (min-width:768px){ .k-sec { padding:128px 0 0; } }
.k-sec-head { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem 2rem; flex-wrap:wrap; margin-bottom:2.4rem; }
.k-sec-head .k-muted { font-size:.8rem; font-weight:600; }
.k-sec-head .k-muted b { color:#fff; font-weight:900; }
.k-rail { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(250px, 1fr); gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px; scrollbar-width:none; }
.k-rail::-webkit-scrollbar { display:none; }
.k-rail > * { scroll-snap-align:start; }
@media (min-width:1100px){ .k-rail { grid-auto-columns:calc((100% - 60px) / 4); } }

/* ---------- Filtres ---------- */
.k-filters { display:flex; flex-direction:column; gap:1.2rem; margin-bottom:2.6rem; }
.k-chips { display:flex; gap:.5rem; overflow-x:auto; scrollbar-width:none; }
.k-chips::-webkit-scrollbar { display:none; }
.k-chip { flex-shrink:0; display:inline-flex; align-items:center; gap:.4rem; border-radius:999px; padding:.7rem 1.2rem; font-size:.66rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:#fff; background:transparent; box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); transition:background .2s, color .2s; }
.k-chip:hover { box-shadow:inset 0 0 0 1px #fff; }
.k-chip small { color:var(--soft); font-size:.62rem; }
.k-chip[aria-pressed="true"] { background:#fff; color:var(--night); }
.k-chip[aria-pressed="true"] small { color:var(--hot); }
.k-selects { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:.75rem; }
@media (min-width:900px){ .k-selects { grid-template-columns:repeat(4, minmax(0,1fr)); } }
@media (min-width:1200px){ .k-selects { grid-template-columns:repeat(7, minmax(0,1fr)); } }
.k-selects label, .k-form label { display:flex; flex-direction:column; gap:.45rem; min-width:0; }
.k-selects .k-mono, .k-form label > .k-mono, .k-form legend { color:var(--soft); font-size:.6rem; }
.k-selects select, .k-form input, .k-form textarea, .k-form select { width:100%; min-width:0; background:var(--panel); border:0; box-shadow:inset 0 0 0 1px var(--rule); border-radius:12px;
  padding:.8rem .9rem; font-size:.9rem; font-weight:500; color:#fff; outline:none; transition:box-shadow .15s; font-family:inherit; }
.k-selects select:focus, .k-form input:focus, .k-form textarea:focus { box-shadow:inset 0 0 0 1.5px var(--teal); }
.k-selects option, .k-selects optgroup { background:var(--panel); color:#fff; }
.k-reset { align-self:flex-start; display:inline-flex; align-items:center; gap:.4rem; color:var(--teal); font-size:.66rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }

/* ---------- Cartes festival : affiche 4:5 typographique ---------- */
.k-grid { display:grid; grid-template-columns:1fr; gap:3rem 1.5rem; }
@media (min-width:600px){ .k-grid { grid-template-columns:repeat(2, 1fr); } }
@media (min-width:1024px){ .k-grid { grid-template-columns:repeat(3, 1fr); } }
@media (min-width:1300px){ .k-grid { grid-template-columns:repeat(4, 1fr); } }
.k-ev { display:block; color:inherit; min-width:0; }
.k-poster { position:relative; aspect-ratio:4/5; border-radius:16px; overflow:hidden; isolation:isolate; padding:1.2rem; display:flex; flex-direction:column; justify-content:flex-end;
  background:radial-gradient(120% 90% at 100% 0%, rgba(45,210,190,.55) 0%, transparent 55%), radial-gradient(120% 120% at 0% 100%, #0032FA 0%, #0a1f8f 55%, #0b0f33 100%); }
.k-poster.v1 { background:radial-gradient(110% 90% at 0% 0%, rgba(45,210,190,.5) 0%, transparent 55%), radial-gradient(130% 120% at 100% 100%, #0032FA 0%, #0b1a78 55%, #0a0d26 100%); }
.k-poster.v2 { background:radial-gradient(90% 80% at 50% 110%, rgba(45,210,190,.6) 0%, transparent 60%), linear-gradient(160deg, #0032FA 0%, #0a1460 70%, #0f0f14 100%); }
.k-poster.v3 { background:radial-gradient(100% 90% at 100% 100%, rgba(250,62,78,.35) 0%, transparent 55%), radial-gradient(120% 120% at 0% 0%, #0032FA 0%, #0a1a6b 60%, #0f0f14 100%); }
.k-poster::before { content:''; position:absolute; inset:0; z-index:-1; opacity:.18;
  background-image:radial-gradient(rgba(255,255,255,.9) 1.1px, transparent 1.2px); background-size:11px 11px; -webkit-mask-image:radial-gradient(circle at 70% 30%, #000 0, transparent 70%); mask-image:radial-gradient(circle at 70% 30%, #000 0, transparent 70%); }
.k-poster .p-day { font-weight:900; font-size:clamp(4.5rem, 9vw, 6.4rem); line-height:.8; letter-spacing:-.06em; transition:transform .9s cubic-bezier(.2,.8,.1,1); transform-origin:left bottom; }
.k-poster .p-mon { font-weight:900; text-transform:uppercase; letter-spacing:-.02em; font-size:1.4rem; line-height:1; margin-top:.4rem; }
.k-poster .p-city { font-weight:300; text-transform:uppercase; font-size:1.05rem; letter-spacing:.02em; margin-top:.5rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.k-poster .p-flag { position:absolute; right:14px; top:12px; font-size:1.4rem; }
.k-ev:hover .p-day { transform:scale(1.08); }
.k-cd { position:absolute; left:12px; top:12px; font-size:.64rem; font-weight:800; letter-spacing:.08em; font-variant-numeric:tabular-nums; background:rgba(15,15,20,.72); backdrop-filter:blur(8px);
  color:#fff; padding:.4rem .65rem; border-radius:8px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.k-cd b { color:var(--teal); }
.k-poster .go { position:absolute; right:12px; bottom:12px; width:44px; height:44px; border-radius:999px; background:#fff; color:var(--night); display:flex; align-items:center; justify-content:center;
  transform:scale(0) rotate(-45deg); transition:transform .45s cubic-bezier(.2,.8,.1,1); }
.k-ev:hover .go { transform:scale(1) rotate(0); }
.k-badges { position:absolute; left:12px; right:60px; bottom:auto; top:48px; display:flex; flex-wrap:wrap; gap:.35rem; }
.k-ev h3 { font-weight:800; font-size:1.1rem; line-height:1.2; margin-top:1rem; overflow-wrap:anywhere; transition:color .2s; }
.k-ev:hover h3 { color:var(--teal); }
.k-ev .k-loc { font-size:.85rem; color:var(--soft); margin-top:.2rem; }
.k-ev .k-when { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; margin-top:.45rem; font-size:.8rem; font-weight:700; color:var(--hot-l); }
.k-ev .k-when span { color:#fff; font-weight:600; }
.k-tags { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:1.4rem; }
.k-tag { display:inline-flex; align-items:center; gap:.3rem; font-size:.58rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; padding:.34rem .62rem; border-radius:999px; box-shadow:inset 0 0 0 1px var(--rule); color:var(--soft); }
.k-badges .k-tag { background:rgba(15,15,20,.72); backdrop-filter:blur(8px); color:#fff; box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.k-tag-hot, .k-badges .k-tag-hot { background:var(--teal); color:var(--night); box-shadow:none; }
.k-tag-dist { color:var(--teal); box-shadow:inset 0 0 0 1px rgba(45,210,190,.4); }
.k-tag-warn, .k-badges .k-tag-warn { background:#fff; color:var(--night); }
.k-tag-tix, .k-badges .k-tag-tix { background:var(--hot); color:#fff; box-shadow:none; }
.k-empty { text-align:center; padding:4rem 1rem; color:var(--soft); }
.k-empty .k-link { margin-left:.4rem; }

/* ---------- Mur de villes (alternance gras / fin) ---------- */
.k-wall { overflow:hidden; padding:2rem 0; margin-top:96px; }
.k-wall-row { white-space:nowrap; text-transform:uppercase; line-height:1.02; will-change:transform; font-size:clamp(2.4rem, 7vw, 6.2rem); letter-spacing:-.035em; }
.k-wall-row:nth-child(odd) { font-weight:900; }
.k-wall-row:nth-child(even) { font-weight:300; color:var(--soft); }
.k-wall-row .sep { display:inline-block; width:.42em; height:.42em; border-radius:999px; background:var(--hot); margin:0 .35em .12em; vertical-align:middle; }
.k-wall-row:nth-child(even) .sep { background:transparent; box-shadow:inset 0 0 0 2px var(--teal); }

/* ---------- Pays ---------- */
.k-countries { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:2.4rem 2rem; }
.k-cont { font-size:.7rem; font-weight:800; letter-spacing:.22em; text-transform:uppercase; color:var(--teal); margin-bottom:.6rem; }
.k-countries li a { display:flex; justify-content:space-between; gap:.5rem; padding:.7rem 0; border-bottom:1px solid var(--rule); font-weight:600; font-size:.95rem; transition:color .2s, padding .3s; }
.k-countries li a:hover { color:var(--teal); padding-left:.4rem; }
.k-countries li b { font-weight:900; color:var(--soft); font-variant-numeric:tabular-nums; }

/* ---------- Tuiles (organisateurs) ---------- */
.k-tiles { display:grid; gap:20px; }
@media (min-width:1024px){ .k-tiles { grid-template-columns:1fr 1fr; } }
.k-tile { position:relative; border-radius:26px; overflow:hidden; padding:clamp(1.6rem, 3vw, 2.6rem); display:flex; flex-direction:column; align-items:flex-start; gap:.4rem; }
.k-tile.dark { background:var(--panel); box-shadow:inset 0 0 0 1px var(--rule); }
.k-tile.light { background:var(--paper); color:var(--night); }
.k-tile.light .k-lede { color:#4b5260; }
.k-tile.blue { background:radial-gradient(120% 100% at 100% 0%, rgba(45,210,190,.45), transparent 55%), var(--hot); color:#fff; }
.k-tile .k-btn { margin-top:1.4rem; }
.k-tile.light .k-btn { background:var(--night); color:#fff; } .k-tile.light .k-btn::before { background:var(--hot); }
.k-tile.blue .k-btn { background:#fff; color:var(--night); } .k-tile.blue .k-btn::before { background:var(--night); } .k-tile.blue .k-btn:hover { color:#fff; }

/* ---------- Fiche festival ---------- */
.k-fhero { position:relative; padding:150px 0 0; overflow:hidden; background:radial-gradient(60% 80% at 85% 30%, rgba(0,50,250,.35), transparent 70%), var(--night); }
.k-globe-mini { left:auto; width:min(620px, 90vw); right:-10vw; top:40px; bottom:auto; height:620px; opacity:.95; pointer-events:none; }
.k-fhero-in { position:relative; z-index:2; padding-bottom:3rem; }
.k-fhero .k-display { max-width:1000px; margin:1.4rem 0 0; font-size:clamp(2rem, 5.4vw, 4.8rem); overflow-wrap:break-word; }
.k-back { display:inline-flex; align-items:center; gap:.5rem; font-size:.66rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--soft); margin-bottom:2rem; transition:color .2s; }
.k-back:hover { color:#fff; }
.k-fgrid { display:grid; gap:2.5rem; }
@media (min-width:960px){ .k-fgrid { grid-template-columns:minmax(0,1fr) 400px; gap:4rem; } }
.k-facts { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1.5rem 2rem; padding:2rem 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
@media (min-width:640px){ .k-facts { grid-template-columns:repeat(4, minmax(0,1fr)); } }
.k-facts dt { font-size:.6rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--soft); margin-bottom:.5rem; }
.k-facts dd { font-weight:800; font-size:1.05rem; overflow-wrap:anywhere; }
.k-warn { display:inline-block; font-size:.55rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--night); background:#fff; padding:.2rem .45rem; border-radius:5px; vertical-align:middle; }
.cd { display:flex; gap:.4rem; margin-top:2rem; }
.cd div { min-width:4rem; padding:.65rem .4rem; text-align:center; border-radius:10px; background:rgba(255,255,255,.06); box-shadow:inset 0 0 0 1px var(--rule); }
.cd b { display:block; font-weight:900; font-size:1.6rem; font-variant-numeric:tabular-nums; line-height:1; }
.cd small { font-size:.55rem; letter-spacing:.16em; text-transform:uppercase; color:var(--soft); }
.k-note { display:flex; gap:.6rem; align-items:flex-start; background:rgba(255,255,255,.04); box-shadow:inset 0 0 0 1px var(--rule); color:#C9CED8; padding:1rem 1.1rem; border-radius:14px; font-size:.88rem; margin-bottom:1.6rem; }
.k-note svg { flex-shrink:0; margin-top:2px; color:var(--teal); }
.k-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1rem; margin-top:1.6rem; }
.k-fside { display:flex; flex-direction:column; gap:20px; }
@media (min-width:960px){ .k-fside { position:sticky; top:110px; align-self:start; } }
.k-fside .k-tile { min-height:0; }
.k-mini { width:100%; margin-top:.6rem; }
.k-mini li a { display:block; padding:.85rem 0; border-bottom:1px solid var(--rule); }
.k-mini li a:hover b { color:var(--teal); }
.k-mini b { display:block; font-weight:800; font-size:.92rem; transition:color .2s; }
.k-mini span { color:var(--soft); font-size:.6rem; }
.k-fside .k-link { margin-top:1rem; font-size:.8rem; }

/* ---------- Page organisateurs ---------- */
.k-ohero { position:relative; padding:170px 0 0; background:radial-gradient(60% 70% at 90% 10%, rgba(0,50,250,.45), transparent 70%), radial-gradient(40% 50% at 10% 100%, rgba(45,210,190,.12), transparent 70%), var(--night); }
.k-ohero .k-display { margin:1.4rem 0 1.6rem; max-width:1100px; }
.k-plans { display:grid; gap:20px; }
@media (min-width:1024px){ .k-plans { grid-template-columns:1.15fr 1fr 1fr; } }
.k-plan { position:relative; display:flex; flex-direction:column; gap:.3rem; border-radius:26px; padding:2.2rem 1.8rem 1.8rem; background:var(--panel); box-shadow:inset 0 0 0 1px var(--rule); }
.k-plan > .k-btn { margin-top:auto; align-self:flex-start; }
.k-plan-hot { background:radial-gradient(120% 90% at 100% 0%, rgba(45,210,190,.4), transparent 55%), var(--hot); box-shadow:0 40px 80px -40px rgba(0,50,250,.8); }
.k-plan-hot .k-muted, .k-plan-hot .k-checks li { color:rgba(255,255,255,.85); }
.k-plan-hot .k-price { color:#fff; }
.k-plan-hot .k-btn { background:#fff; color:var(--night); } .k-plan-hot .k-btn::before { background:var(--night); } .k-plan-hot .k-btn:hover { color:#fff; }
.k-plan-soft { background:var(--paper); color:var(--night); box-shadow:none; }
.k-plan-soft .k-mono { color:#4b5260; }
.k-plan-soft .k-checks li { color:#374151; } .k-plan-soft .k-checks b { color:var(--night); }
.k-ribbon { position:absolute; top:-12px; left:1.6rem; background:var(--teal); color:var(--night); padding:.4rem .75rem; border-radius:999px; font-size:.58rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.k-price { font-weight:900; font-size:clamp(4.2rem, 7vw, 5.6rem); line-height:.9; letter-spacing:-.06em; color:#fff; margin-top:.5rem; }
.k-price small { font-size:.4em; font-weight:300; letter-spacing:0; }
.k-checks { display:flex; flex-direction:column; gap:.75rem; margin:1.4rem 0 1.8rem; }
.k-checks li { position:relative; padding-left:1.8rem; font-size:.9rem; line-height:1.5; color:#C9CED8; }
.k-checks li::before { content:''; position:absolute; left:0; top:.2rem; width:1.1rem; height:1.1rem; border-radius:50%; background:var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F0F14' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/62% no-repeat; }
.k-checks b { color:#fff; font-weight:800; }
.k-sim, .k-req { display:grid; gap:2.5rem; align-items:start; }
@media (min-width:960px){ .k-sim, .k-req { grid-template-columns:1fr 1fr; gap:4rem; } }
.k-form { display:flex; flex-direction:column; gap:1rem; margin-top:1.8rem; }
.k-card { background:var(--panel); box-shadow:inset 0 0 0 1px var(--rule); border-radius:26px; padding:clamp(1.4rem, 3vw, 2.2rem); }
.k-card.k-form { margin-top:0; }
.k-2 { display:grid; gap:1rem; }
@media (min-width:560px){ .k-2 { grid-template-columns:1fr 1fr; } }
.k-seg { display:flex; flex-wrap:wrap; gap:.5rem; border:0; padding:0; }
.k-seg legend { margin-bottom:.5rem; width:100%; }
.k-seg label { flex-direction:row; }
.k-seg input { position:absolute; opacity:0; pointer-events:none; }
.k-seg span { display:inline-block; padding:.75rem 1.2rem; border-radius:999px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); font-size:.66rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.k-seg input:checked + span { background:#fff; color:var(--night); }
.k-seg input:focus-visible + span { outline:2px solid var(--teal); outline-offset:3px; }
.k-sim-out { display:flex; flex-direction:column; }
.k-big { display:block; font-weight:900; font-size:clamp(2.8rem, 6vw, 4.4rem); letter-spacing:-.05em; color:#fff; line-height:1; margin:.6rem 0 1.2rem; font-variant-numeric:tabular-nums; }
.k-sim-row { display:flex; justify-content:space-between; gap:1rem; padding:.85rem 0; border-top:1px solid var(--rule); font-size:.9rem; color:#C9CED8; }
.k-sim-row b { font-variant-numeric:tabular-nums; white-space:nowrap; color:#fff; font-weight:800; }
.k-sim-save b { color:var(--teal); }
.k-sim-out .k-small { margin-top:1rem; }
.k-feats { display:grid; gap:1px; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); background:var(--rule); border-radius:26px; overflow:hidden; box-shadow:inset 0 0 0 1px var(--rule); }
.k-feat { padding:2rem 1.8rem; background:var(--night); transition:background .3s; }
.k-feat:hover { background:var(--panel); }
.k-feat svg { color:var(--teal); }
.k-feat h3 { font-weight:900; text-transform:uppercase; letter-spacing:-.01em; font-size:1.05rem; margin:1.1rem 0 .5rem; }
.k-feat p { font-size:.9rem; line-height:1.6; }
.k-steps { counter-reset:s; display:flex; flex-direction:column; gap:1.4rem; margin-top:2.2rem; }
.k-steps li { counter-increment:s; position:relative; padding-left:3.6rem; }
.k-steps li::before { content:'0' counter(s); position:absolute; left:0; top:-.1rem; font-weight:900; font-size:1.9rem; letter-spacing:-.05em; color:var(--hot-l); line-height:1; }
.k-steps b { display:block; font-weight:800; } .k-steps span { color:var(--soft); font-size:.9rem; }
.k-hp { position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.k-consent { flex-direction:row !important; align-items:flex-start; gap:.7rem !important; font-size:.85rem; color:#C9CED8; }
.k-consent input { width:auto !important; margin-top:.2rem; accent-color:var(--teal); box-shadow:none !important; }
.k-form .k-btn { align-self:flex-start; }
.k-form-msg { font-weight:700; font-size:.9rem; min-height:1.2em; }
.k-form-msg.ok { color:var(--teal); } .k-form-msg.err { color:var(--red); }

/* ---------- 404 / footer ---------- */
.k-404 { padding-top:200px; padding-bottom:40px; } .k-404 .k-display { margin:.8rem 0 1.4rem; } .k-404 .k-btn { margin-top:2rem; }
.k-foot { margin-top:128px; border-top:1px solid var(--rule); padding:64px 0 40px; }
.k-foot-in { display:grid; gap:2.4rem; }
@media (min-width:768px){ .k-foot-in { grid-template-columns:1fr auto; } .k-foot-in > p { grid-column:1 / -1; } }
.k-foot .k-muted { margin-top:1rem; font-size:.9rem; }
.k-foot nav { display:flex; flex-wrap:wrap; gap:1.6rem; align-content:flex-start; }
.k-foot nav a { font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#fff; transition:color .2s; }
.k-foot nav a:hover { color:var(--teal); }
.k-foot .k-small { color:var(--soft); border-top:1px solid var(--rule); padding-top:1.6rem; }

/* ---------- Apparition au scroll ---------- */
[data-reveal] { opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.2,.8,.1,1), transform .9s cubic-bezier(.2,.8,.1,1); transition-delay:var(--d, 0ms); }
[data-reveal].in { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  body.kew::before, .k-dot { animation:none; }
  [data-reveal] { opacity:1; transform:none; transition:none; }
  .k-btn::before, .k-poster .p-day, .go { transition:none; }
}

/* ---------- Affiches réelles (récupérées par le scanner) ---------- */
.k-poster.has-img { padding:0; background:var(--panel); }
.k-poster.has-img img { position:absolute; inset:0; z-index:-1; width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.2,.8,.1,1), filter .5s; }
.k-poster.has-img::before { display:none; }
.k-ev:hover .k-poster.has-img img { transform:scale(1.06); filter:saturate(1.25); }

/* ---------- À la une (mise en avant payante) ---------- */
.k-feat-grid { display:grid; gap:20px; }
@media (min-width:1024px){ .k-feat-grid { grid-template-columns:repeat(2, 1fr); } .k-feat-grid > :only-child { grid-column:1 / -1; } }
.k-featc { position:relative; display:grid; grid-template-columns:minmax(0,1fr); border-radius:22px; overflow:hidden; isolation:isolate; background:var(--panel); min-height:320px; }
@media (min-width:640px){ .k-featc { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); } }
.k-featc-bg { position:absolute; inset:0; z-index:-2; }
.k-featc-bg img { width:100%; height:100%; object-fit:cover; filter:blur(48px) saturate(1.4); transform:scale(1.25); opacity:.7; }
.k-featc::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(15,15,20,.94) 0%, rgba(15,15,20,.6) 60%, rgba(15,15,20,.2) 100%); }
.k-featc-info { padding:clamp(1.5rem, 3vw, 2.4rem); display:flex; flex-direction:column; justify-content:flex-end; gap:.6rem; }
.k-featc-info .k-h3 { font-size:clamp(1.6rem, 3vw, 2.4rem); margin:0; }
.k-featc-info .cd { margin-top:.6rem; }
.k-featc-info .cd div { min-width:3.2rem; padding:.45rem .3rem; } .k-featc-info .cd b { font-size:1.15rem; }
.k-featc-poster { position:relative; margin:1.2rem; border-radius:16px; overflow:hidden; aspect-ratio:4/5; max-height:420px; justify-self:end; width:calc(100% - 2.4rem); box-shadow:0 50px 90px -30px rgba(0,0,0,.85), 0 0 0 1px rgba(255,255,255,.08); }
.k-featc-poster .k-poster { height:100%; aspect-ratio:auto; border-radius:0; }
@media (max-width:639px){ .k-featc-poster { order:-1; width:62%; justify-self:center; margin:1.4rem auto 0; } }
.k-boosts { display:grid; gap:20px; }
@media (min-width:900px){ .k-boosts { grid-template-columns:repeat(3, 1fr); } }
.k-boost { position:relative; display:flex; flex-direction:column; gap:.3rem; border-radius:26px; padding:2.2rem 1.8rem 1.8rem; background:var(--panel); box-shadow:inset 0 0 0 1px var(--rule); }
.k-boost.hot { background:radial-gradient(120% 90% at 100% 0%, rgba(45,210,190,.4), transparent 55%), var(--hot); }
.k-boost .k-btn { margin-top:auto; align-self:flex-start; }
.k-boost.hot .k-btn { background:#fff; color:var(--night); } .k-boost.hot .k-btn::before { background:var(--night); } .k-boost.hot .k-btn:hover { color:#fff; }
.k-boost .k-price small { font-size:.32em; }
.k-boost.hot .k-checks li { color:rgba(255,255,255,.88); }
/* Chiffres clés : une ligne sur ordinateur, 2 × 2 sur mobile */
.k-hero-txt > .k-stats { display:grid; grid-template-columns:repeat(2, max-content); gap:1.2rem 2rem; max-width:none; }
.k-stat > span { white-space:nowrap; }
@media (min-width:640px){ .k-hero-txt > .k-stats { grid-template-columns:repeat(4, max-content); gap:1.2rem 1.8rem; } }
@media (max-width:1023px){ .k-globe-ui { top:calc(52vh - 58px); bottom:auto; } }
