/* SYNO RADIO - charte graphique (couleurs, degrades, halos, cartes, typographie).
   Systeme d'espacement de 8 px. Glow reserve aux boutons, logo, lecteur, LIVE, actifs. */
:root{
  --bg:#050711;--bg2:#090D1C;--card:#0D1224;--line:#1C2948;
  --violet:#8B2CFF;--glow:#B84CFF;--magenta:#FF2BD6;--blue:#246BFF;--cyan:#32D9FF;
  --txt:#F7F8FF;--txt2:#A7ADC2;--txt3:#636B83;--live:#FF3158;
  --g-syno:linear-gradient(135deg,#8B2CFF 0%,#FF2BD6 100%);
  --g-ia:linear-gradient(135deg,#246BFF 0%,#8B2CFF 50%,#FF2BD6 100%);
  --glow-v:0 0 20px rgba(139,44,255,.35),0 0 60px rgba(139,44,255,.12);
  --glow-m:0 0 20px rgba(255,43,214,.35),0 0 60px rgba(255,43,214,.10);
  --r:12px;--head:76px;--mini:72px;
  --f-title:'Space Grotesk',system-ui,sans-serif;--f-text:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:
    radial-gradient(circle at 70% 20%,rgba(139,44,255,.16),transparent 35%),
    radial-gradient(circle at 20% 80%,rgba(255,43,214,.08),transparent 30%),
    linear-gradient(135deg,#050711 0%,#090D1C 50%,#11051B 100%) fixed,#050711;
  color:var(--txt);font:15px/1.6 var(--f-text);min-height:100vh;
  padding-bottom:calc(var(--mini) + 16px);
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.ico{width:20px;height:20px;flex:0 0 auto}
.wrap{max-width:1320px;margin:0 auto;padding:0 24px}
h1,h2,h3,.t{font-family:var(--f-title)}
h2{font-size:clamp(18px,2vw,22px);font-weight:700;letter-spacing:.5px;text-transform:uppercase}
h3{font-size:clamp(16px,1.6vw,20px);font-weight:700}
.micro{font-size:12px;color:var(--txt2);letter-spacing:.3px}
.muted{color:var(--txt2)}

/* ---- En-tete ------------------------------------------------------------- */
.head{position:sticky;top:0;z-index:40;height:var(--head);background:rgba(5,7,17,.82);backdrop-filter:blur(12px);border-bottom:1px solid rgba(28,41,72,.6)}
.head .wrap{height:100%;display:flex;align-items:center;gap:32px}
.brand img{height:54px;width:auto;display:block}
.nav{display:flex;gap:28px;margin:0 auto;font:500 15px var(--f-title)}
.nav a{color:var(--txt2);padding:6px 2px;border-bottom:2px solid transparent;transition:.25s}
.nav a:hover{color:var(--txt)}
.nav a.on{color:var(--txt);border-color:var(--violet)}
.burger{display:none;background:none;border:0;color:var(--txt);cursor:pointer}

/* ---- Boutons ------------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;gap:12px;height:52px;padding:0 28px;border-radius:999px;border:0;cursor:pointer;
  font:700 15px var(--f-title);letter-spacing:.6px;text-transform:uppercase;color:#fff;background:var(--g-syno);box-shadow:var(--glow-v);transition:.25s}
.btn:hover{transform:translateY(-1px);box-shadow:var(--glow-m)}
.btn.small{height:44px;padding:0 20px;font-size:13px}
.btn.ghost{background:transparent;border:1px solid var(--violet);box-shadow:none}
.btn.ghost:hover{border-color:var(--glow);color:var(--glow)}
.btn .disc{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.15)}
.more{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--txt2);transition:.25s}
.more:hover{color:var(--glow)}
.more .ico{width:16px;height:16px}

/* ---- LIVE --------------------------------------------------------------- */
.live{display:inline-flex;align-items:center;gap:8px;font:700 12px var(--f-title);letter-spacing:1.2px;color:#fff;background:rgba(255,49,88,.14);border:1px solid rgba(255,49,88,.45);padding:4px 12px;border-radius:999px}
.live i{width:8px;height:8px;border-radius:50%;background:var(--live);box-shadow:0 0 10px var(--live);animation:pulse 1.5s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}

/* ---- Hero : visuel plein cadre, texte a droite (maquette) ------------------ */
.hero{position:relative;overflow:hidden;min-height:clamp(480px,62vh,720px);display:flex;align-items:center;border-bottom:1px solid rgba(28,41,72,.6);isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:left center}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,7,17,0) 70%,#050711 100%)}
.hero-wave{position:absolute;left:0;right:0;bottom:0;width:100%;height:110px;z-index:-1;opacity:.75}
.hero .wrap{width:100%;max-width:none;display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:center;padding:48px 4vw 64px}
.hero-text{grid-column:2;justify-self:start;text-align:left;max-width:600px}
.hero-tag{position:absolute;right:5vw;top:56px;font:italic 700 22px/1.25 var(--f-title);color:#ff77d9;transform:rotate(-8deg);text-shadow:0 0 18px rgba(255,43,214,.6)}
.kicker{font:500 14px var(--f-title);letter-spacing:4px;color:var(--txt2);text-transform:uppercase}
.kicker b{color:var(--txt)}
.hero h1{font-size:clamp(56px,8vw,104px);line-height:.9;font-weight:800;margin:12px 0 8px;letter-spacing:-1px;text-shadow:0 0 30px rgba(139,44,255,.35)}
.hero h1 span{display:block;background:var(--g-syno);-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic}
.slogan{font:500 15px var(--f-title);letter-spacing:6px;text-transform:uppercase;color:var(--txt);margin-bottom:28px}
.now-card{display:flex;gap:16px;align-items:center;margin-top:24px;padding:12px;border-radius:var(--r);background:rgba(13,18,36,.72);backdrop-filter:blur(8px);border:1px solid var(--line);max-width:460px}
.now-card img{width:72px;height:72px;border-radius:10px;object-fit:cover}
.now-card .micro b{color:var(--txt)}

/* ---- Bandeau des dedicaces ------------------------------------------------ */
.ticker{display:flex;align-items:center;gap:16px;height:52px;background:linear-gradient(90deg,rgba(139,44,255,.22),rgba(255,43,214,.16),rgba(36,107,255,.18));border-bottom:1px solid var(--line);overflow:hidden}
.ticker-label{flex:0 0 auto;display:flex;align-items:center;gap:8px;height:100%;padding:0 18px;background:var(--g-syno);font:700 13px var(--f-title);letter-spacing:1.5px;text-transform:uppercase;box-shadow:var(--glow-m)}
.ticker-label .ico{width:16px;height:16px}
.ticker-track{flex:1;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.ticker-run{display:inline-flex;gap:48px;white-space:nowrap;animation:ticker 60s linear infinite}
.ticker:hover .ticker-run{animation-play-state:paused}
.ticker-item{font-size:14px;color:var(--txt2)}.ticker-item b{color:var(--txt)}
.ticker-cta{flex:0 0 auto;display:flex;align-items:center;gap:8px;margin-right:16px;padding:6px 14px;border:1px solid var(--violet);border-radius:999px;font:600 13px var(--f-title)}
.ticker-cta:hover{color:var(--glow);border-color:var(--glow)}
.ticker-cta .ico{width:14px;height:14px}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* ---- Services ------------------------------------------------------------ */
.services{display:grid;grid-template-columns:repeat(5,1fr);margin:32px 0;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.services div{display:flex;gap:12px;align-items:center;padding:20px;border-right:1px solid var(--line)}
.services div:last-child{border-right:0}
.services .ico{width:28px;height:28px;color:var(--glow)}
.services b{display:block;font:700 13px var(--f-title);letter-spacing:.6px;text-transform:uppercase}
.services span{font-size:12px;color:var(--txt2)}

/* ---- Cartes et grilles --------------------------------------------------- */
.grid2{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-bottom:24px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px;transition:border-color .25s,box-shadow .25s}
.card:hover{border-color:rgba(139,44,255,.55)}
.card-h{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.card-h h2{margin-right:auto}
.card-h>.ico{color:var(--glow)}

/* ---- Le direct ------------------------------------------------------------ */
.direct{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:center}
.cover{position:relative;aspect-ratio:1;border-radius:14px;overflow:hidden;background:var(--g-ia)}
.cover img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.cover.on{box-shadow:var(--glow-v)}
.badge{display:inline-block;font:700 10px var(--f-title);letter-spacing:1px;text-transform:uppercase;padding:3px 8px;border-radius:6px;background:rgba(139,44,255,.18);color:var(--glow);border:1px solid rgba(139,44,255,.35)}
.direct .emission{display:flex;gap:10px;align-items:center;font:600 15px var(--f-title)}
.direct h3{font-size:clamp(22px,2.4vw,28px);margin:8px 0 2px}
.wave{width:100%;height:56px;margin:16px 0 8px}
.bar{height:4px;background:#1a2340;border-radius:4px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--g-syno)}
.times{display:flex;justify-content:space-between;font-size:12px;color:var(--txt2);margin-top:6px}
.ctrl{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:16px}
.pp{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;border:2px solid var(--violet);background:rgba(139,44,255,.12);color:#fff;cursor:pointer;box-shadow:var(--glow-v);transition:.25s}
.pp:hover{transform:scale(1.05)}
.pp .ico{width:24px;height:24px}
.vol{display:flex;align-items:center;gap:10px;color:var(--txt2)}
input[type=range]{accent-color:var(--violet);width:110px}

/* ---- Programme ------------------------------------------------------------ */
.prog li{display:grid;grid-template-columns:56px 1fr auto;gap:14px;align-items:center;padding:10px 0;border-top:1px solid var(--line);list-style:none}
.prog li:first-child{border-top:0}
.prog .thumb{width:56px;height:56px;border-radius:10px;background:var(--g-ia);overflow:hidden}
.prog .thumb img{width:100%;height:100%;object-fit:cover}
.prog .h{font-size:12px;color:var(--txt2)}
.prog b{display:block;font:700 15px var(--f-title)}
.prog li.on b{color:var(--glow)}
.prog li.on .thumb{box-shadow:var(--glow-v)}

/* ---- Derniers titres ------------------------------------------------------ */
.tracks li{display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;padding:10px 0;border-top:1px solid var(--line);list-style:none}
.tracks li:first-child{border-top:0}
.tracks img,.tracks .ph{width:48px;height:48px;border-radius:8px;object-fit:cover;background:var(--g-ia)}
.tracks b{display:block;font:600 14px var(--f-title)}

/* ---- Actualites ----------------------------------------------------------- */
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.news article{background:#0b1020;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:.25s}
.news article:hover{border-color:var(--violet)}
.news article:hover img{transform:scale(1.03)}
.news .img{aspect-ratio:16/9;overflow:hidden;background:var(--g-ia)}
.news img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.news .body{padding:12px 14px 16px}
.news .cat{font:700 10px var(--f-title);letter-spacing:1.2px;color:var(--glow);text-transform:uppercase}
.news h3{font-size:15px;margin:6px 0}
.news p{font-size:13px;color:var(--txt2)}

/* ---- Dedicaces ------------------------------------------------------------ */
.dedis li{list-style:none;padding:12px 0;border-top:1px solid var(--line)}
.dedis li:first-child{border-top:0}
.dedis b{font:700 14px var(--f-title);color:var(--glow)}
.form{display:grid;gap:12px}
.form label{font-size:13px;color:var(--txt2)}
.form input,.form textarea{width:100%;background:#0b1020;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font:inherit}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--violet);box-shadow:0 0 0 3px rgba(139,44,255,.2)}
.msg{font-size:14px;min-height:20px}
.msg.ok{color:#7fe0a3}.msg.err{color:#ffb4ac}

/* ---- Bloc marque / reseaux ------------------------------------------------ */
.brandcard{display:grid;place-items:center;text-align:center;gap:16px;background:radial-gradient(circle at 50% 30%,rgba(255,43,214,.25),transparent 60%),radial-gradient(circle at 50% 90%,rgba(139,44,255,.3),transparent 60%),var(--card)}
.brandcard img{width:min(340px,90%)}
.brandcard .t{font-weight:700;letter-spacing:3px}

/* ---- Mini-lecteur fixe ---------------------------------------------------- */
.mini{position:fixed;left:0;right:0;bottom:0;z-index:50;height:var(--mini);background:rgba(5,7,17,.94);backdrop-filter:blur(12px);border-top:1px solid var(--line)}
.mini .wrap{height:100%;display:grid;grid-template-columns:minmax(0,1.2fr) 1fr auto auto;gap:24px;align-items:center}
.mini .who{display:flex;gap:12px;align-items:center;min-width:0}
.mini .who img{width:48px;height:48px;border-radius:8px;object-fit:cover}
.mini .who b{display:block;font:600 14px var(--f-title);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini canvas{width:100%;height:36px}
.mini .pp{width:44px;height:44px}
.mini .pp .ico{width:18px;height:18px}

/* ---- Pages ---------------------------------------------------------------- */
.page{padding:40px 0}
.page h1{font-size:clamp(32px,4vw,48px);margin-bottom:8px}
.prose{max-width:760px;color:var(--txt2)}
.prose p{margin:12px 0}.prose h2{color:var(--txt);margin-top:24px}

/* ---- Pied de page ---------------------------------------------------------- */
.foot{border-top:1px solid var(--line);padding:24px 0;margin-top:40px;color:var(--txt3);font-size:13px}
.foot .wrap{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}
.foot nav{display:flex;gap:18px}
.foot a:hover{color:var(--glow)}

/* ---- Responsive (charte, section 14) -------------------------------------- */
@media (max-width:1199px){
  .hero .wrap{grid-template-columns:.9fr 1.1fr}.hero-tag{display:none}
  .services{grid-template-columns:repeat(3,1fr)}
  .grid2{grid-template-columns:1fr}
}
@media (max-width:767px){
  .wrap{padding:0 16px}
  .nav{display:none;position:absolute;top:var(--head);left:0;right:0;flex-direction:column;gap:0;background:rgba(5,7,17,.98);border-bottom:1px solid var(--line)}
  .nav.open{display:flex}.nav a{padding:14px 16px;border-bottom:1px solid var(--line)}
  .burger{display:block;margin-left:auto}
  .head .btn{display:none}
  .brand img{height:40px}
  .services{grid-template-columns:1fr 1fr}
  .hero{min-height:auto}.hero .wrap{grid-template-columns:1fr;padding-top:260px}.hero-text{grid-column:1}
  .hero-bg img{object-position:center top}.hero::after{background:linear-gradient(180deg,rgba(5,7,17,0) 20%,rgba(5,7,17,.85) 55%,#050711 100%)}
  .direct{grid-template-columns:1fr}.direct .cover{max-width:260px}
  .news{grid-template-columns:1fr}
  .mini .wrap{grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .mini canvas,.mini .vol{display:none}
  .ticker-cta{display:none}.form-row{grid-template-columns:1fr}
}
/* Mouvements reduits (reglage Windows) : on calme tout, sauf le bandeau des
   dedicaces, qui doit defiler pour etre lu (et s'arrete au survol). */
@media (prefers-reduced-motion:reduce){*:not(.ticker-run){animation:none!important;transition:none!important}.ticker-run{animation-duration:90s!important}}

/* ---- Mix du jour, replays, emissions ---- */
.mix-head{display:grid;grid-template-columns:160px 1fr;gap:20px;align-items:center}
.mix-head h3{font:700 20px var(--f-title);margin-bottom:6px}
.mix-head .btn{margin-top:14px}
.mix-cover{width:160px;height:160px;border-radius:10px;object-fit:cover;box-shadow:var(--glow-v)}
.mix-today{background:radial-gradient(circle at 0% 0%,rgba(255,43,214,.14),transparent 55%),var(--card)}
.mix-list{margin-top:18px}
.mix-list summary{cursor:pointer;font:600 14px var(--f-title);color:var(--txt2);margin-bottom:8px}
.tracks li.seek{cursor:pointer}
.tracks li.seek:hover b,.tracks li.seek.on b{color:var(--glow)}
.mini .seekbar{position:absolute;left:0;right:0;top:-8px;width:100%;margin:0;accent-color:var(--magenta);height:14px;background:transparent}
.mini .back-live{margin-left:10px;background:transparent;border:1px solid var(--magenta);color:var(--txt);border-radius:999px;padding:6px 12px;font:600 12px var(--f-title);cursor:pointer}
.mini .back-live:hover{box-shadow:var(--glow-m)}
.foot .social{display:flex;gap:14px}
.foot .social a{color:var(--txt2)}.foot .social a:hover{color:var(--glow)}
@media (max-width:767px){
  .mix-head{grid-template-columns:96px 1fr;gap:14px}
  .mix-cover{width:96px;height:96px}
}

/* ---- Dedicace : heure d'affichage, confirmation ---- */
.js-dedicace select{width:100%;margin:6px 0 10px;background:var(--bg2);color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit}
.dedi-ok{border:1px solid rgba(255,43,214,.45);border-radius:var(--r);padding:18px;background:radial-gradient(circle at 0 0,rgba(255,43,214,.16),transparent 60%),var(--bg2)}
.dedi-ok-t{display:flex;gap:10px;align-items:center;font:700 16px var(--f-title);color:var(--txt)}
.dedi-ok-t .ico{color:var(--magenta)}
.dedi-ok-m{margin:10px 0 6px}
.dedi-ok .btn{margin-top:10px}

/* ---- Partage ---- */
.share{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 24px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.share span{display:flex;align-items:center;gap:8px;margin-right:auto;color:var(--txt2)}
.share .ico{color:var(--magenta)}
.share .sh{padding:8px 14px;border-radius:999px;border:1px solid var(--violet);color:var(--txt);background:transparent;font:600 13px var(--f-title);cursor:pointer;text-decoration:none}
.share .sh:hover{box-shadow:var(--glow-m);border-color:var(--magenta)}

.seo-intro h2{font-size:20px;margin-bottom:12px}
.seo-intro p{color:var(--txt2);margin-bottom:10px;line-height:1.6}
.seo-intro a{color:var(--glow)}

/* ---- Dedicace partagee ---- */
.dedi-share{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.dedi-share p{margin-bottom:10px}
.dedi-share .btn{margin:0 6px 6px 0}
.dedi-card{padding:34px 28px;background:radial-gradient(circle at 50% 0,rgba(255,43,214,.18),transparent 65%),var(--card)}
.dedi-msg{font:600 clamp(20px,3.4vw,28px)/1.35 var(--f-title);color:var(--txt)}
.dedi-from{margin-top:14px;color:var(--glow);font:600 16px var(--f-title)}
.faq details{border-top:1px solid var(--line);padding:14px 0}
.faq summary{cursor:pointer;font:600 15px var(--f-title)}
.faq details p{margin-top:8px;color:var(--txt2);line-height:1.6}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
/* iPhone : la barre du bas ne masque jamais le lecteur */
.mini{padding-bottom:env(safe-area-inset-bottom);height:calc(var(--mini) + env(safe-area-inset-bottom))}
body{padding-bottom:calc(var(--mini) + 16px + env(safe-area-inset-bottom))}
