:root{
  --primary:#0759a8;--secondary:#28a9e2;--ink:#16324a;--muted:#6b7f91;--soft:#f2f6fa;--page-bg:#fff;--card-bg:#fff;--footer:#092a4b;--line:#d7e3ee;--radius:8px;--shell:1180px;--section-space:58px;--card-columns:3;--shadow:0 12px 30px rgba(9,48,82,.12)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--page-bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;padding-bottom:74px}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}.shell{width:min(var(--shell),calc(100% - 34px));margin:auto}.info-banner{background:var(--primary);color:white;font-size:14px}.info-banner .shell{padding:8px 0;text-align:center}.info-banner a{color:white;margin-left:10px;font-weight:700}.station-top{background:#fff;border-bottom:1px solid var(--line)}.station-top-inner{min-height:115px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}.brand{display:flex;justify-content:center;align-items:center;text-decoration:none;min-width:240px}.brand img{display:block;max-width:330px;max-height:92px;object-fit:contain}.brand strong{color:var(--primary);font-size:26px;letter-spacing:.05em;display:none}.social-small{display:flex;gap:9px;align-items:center}.social-small a,.footer-center a{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;text-decoration:none;background:var(--soft);color:var(--primary);font-size:13px;font-weight:700}.listen-top{justify-self:end;background:var(--primary);color:#fff;border:0;border-radius:999px;padding:12px 20px;font-weight:800;cursor:pointer}.main-header{background:var(--primary);position:relative;z-index:50}.main-header.sticky{position:sticky;top:0}.nav-wrap{display:flex;align-items:center;justify-content:center}.menu-btn{display:none;border:0;background:transparent;color:#fff;font-weight:800;padding:14px 0}#mainNav{display:flex;align-items:stretch;justify-content:center}.nav-root{display:flex;align-items:center;gap:7px;min-height:52px;padding:0 21px;color:#fff;background:transparent;border:0;text-decoration:none;font-weight:800;cursor:pointer}.nav-root:hover,.nav-group.open>.nav-root,.nav-group:hover>.nav-root{background:rgba(255,255,255,.13)}.nav-group{position:relative}.dropdown{position:absolute;top:100%;left:0;min-width:220px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:7px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.16s;border-radius:0 0 8px 8px}.nav-group:hover .dropdown,.nav-group.open .dropdown{opacity:1;visibility:visible;transform:none}.dropdown a,.dropdown button{display:block;width:100%;text-align:left;padding:11px 13px;border:0;background:transparent;color:var(--ink);text-decoration:none;cursor:pointer;border-radius:6px}.dropdown a:hover,.dropdown button:hover{background:var(--soft);color:var(--primary)}
.hero-slider{position:relative;height:500px;background:#dce7f1;overflow:hidden}.slides,.slide{height:100%}.slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .7s ease}.slide.active{opacity:1;z-index:1}.slide-link{position:absolute;inset:0;z-index:2}.slide-caption{position:absolute;left:max(7vw,30px);bottom:50px;z-index:3;background:rgba(0,48,91,.84);color:#fff;padding:18px 22px;max-width:640px;border-radius:var(--radius)}.slide-caption h2{margin:0 0 7px;font-size:32px}.slide-caption p{margin:0}.placeholder-slide{position:relative;opacity:1;background:linear-gradient(120deg,var(--primary),var(--secondary))}.slider-arrow{position:absolute;z-index:5;top:50%;transform:translateY(-50%);border:0;width:46px;height:70px;background:rgba(0,0,0,.28);color:white;font-size:42px;line-height:1;cursor:pointer}.slider-arrow.prev{left:0}.slider-arrow.next{right:0}.slider-dots{position:absolute;z-index:6;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:8px}.slider-dots button{width:10px;height:10px;padding:0;border-radius:50%;border:1px solid white;background:rgba(255,255,255,.45);cursor:pointer}.slider-dots button.active{background:white}.banner-overlay-logo{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:280px;max-width:45vw;max-height:48%;object-fit:contain;filter:drop-shadow(0 3px 8px rgba(0,0,0,.25));pointer-events:none}.banner-overlay-logo.logo-left{left:7%;transform:translate(0,-50%)}.banner-overlay-logo.logo-right{left:auto;right:7%;transform:translate(0,-50%)}
.dedication-ticker{display:grid;grid-template-columns:auto 1fr auto;align-items:center;background:#072f58;color:#fff;overflow:hidden;min-height:48px}.ticker-label{align-self:stretch;display:flex;align-items:center;padding:0 20px;background:var(--secondary);font-weight:900;text-transform:uppercase}.dedication-track-clip{overflow:hidden}.dedication-track{display:flex;gap:44px;width:max-content;white-space:nowrap;padding-left:100%;animation:ded-scroll 42s linear infinite}.dedication-track span{padding:13px 0}.ticker-action{padding:0 18px;color:#fff;font-weight:800;text-decoration:none}@keyframes ded-scroll{to{transform:translateX(-100%)}}.current-strip{background:#fff;border-bottom:1px solid var(--line)}.current-strip-inner{min-height:64px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center}.current-strip strong{font-size:13px;color:var(--primary)}.live-pulse{display:inline-block;width:9px;height:9px;border-radius:50%;background:#ef3b50;box-shadow:0 0 0 5px rgba(239,59,80,.13);margin-right:8px}.current-song{text-align:center;font-weight:800}.strip-play{border:0;border-radius:999px;background:var(--primary);color:#fff;padding:9px 17px;font-weight:800;cursor:pointer}
.content-section{padding-top:var(--section-space);padding-bottom:var(--section-space)}.section-soft{background:var(--soft)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px}.section-heading span,.ded-copy>span{color:var(--primary);font-size:12px;font-weight:900;letter-spacing:.12em}.section-heading h2,.ded-copy h2{font-size:34px;margin:5px 0 0}.see-all{border:0;background:transparent;color:var(--primary);font-weight:800;cursor:pointer}.article-grid{display:grid;grid-template-columns:repeat(var(--card-columns),minmax(0,1fr));gap:22px}.article-card{background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);cursor:pointer;display:flex;flex-direction:column;min-width:0}.article-media{height:190px;background:#dfe9f2 center/cover no-repeat}.article-body{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1}.tag{align-self:flex-start;color:var(--primary);font-weight:900;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.article-body h3{margin:0;font-size:20px;line-height:1.22}.article-body p{margin:0;color:var(--muted);line-height:1.48}.article-body time{margin-top:auto;color:#8a9aa7;font-size:12px}.article-link{align-self:flex-start;color:var(--primary);font-weight:800}.event-date{color:var(--primary);font-weight:700}.games-grid .article-card:first-child{grid-column:span 2}.tracks-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px}.track-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);min-width:0}.track-cover{height:165px;background:#dfe9f2;display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:38px;position:relative;overflow:hidden}.track-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#eef3f7}.track-cover-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.track-cover.has-cover .track-cover-fallback{visibility:hidden}.track-info{padding:14px}.track-time{font-size:12px;color:var(--secondary);font-weight:900}.track-info h3{font-size:17px;margin:5px 0 3px}.track-info p{margin:0;color:var(--muted);font-size:13px}.shows-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.show-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow)}.show-image{height:220px;background:#e1ebf4 center/cover no-repeat}.show-body{padding:18px}.show-time{color:var(--primary);font-weight:900;font-size:12px}.show-body h3{margin:8px 0}.show-body p{color:var(--muted);line-height:1.5;white-space:pre-line}.loading{grid-column:1/-1;color:var(--muted);padding:20px 0}
.dedications-section{background:linear-gradient(120deg,#064a8b,#0875c7);color:#fff;padding:var(--section-space) 0}.dedication-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:38px}.ded-copy>span{color:#a8dcff}.ded-copy h2{color:#fff}.ded-copy p{color:#deefff}.dedication-wall{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:23px}.dedication-card{background:rgba(255,255,255,.11);padding:13px;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius)}.dedication-card b{display:block;margin-bottom:5px}.dedication-card span{font-size:14px}.public-form{background:#fff;color:var(--ink);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);display:grid;gap:14px}.public-form label{display:grid;gap:6px;font-size:13px;font-weight:800}.public-form input,.public-form textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:11px;background:#fff;color:var(--ink)}.public-form textarea{min-height:110px;resize:vertical}.public-form .primary,.primary{border:0;background:var(--primary);color:#fff;border-radius:7px;padding:12px 16px;font-weight:900;cursor:pointer}.form-status{min-height:20px;color:var(--primary);font-size:13px}.contact-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:25px}.contact-card{border:1px solid var(--line);padding:24px;border-radius:var(--radius);box-shadow:var(--shadow);background:#fff}.contact-card img{max-width:100%;max-height:210px;object-fit:contain;margin-bottom:18px}.contact-card p{white-space:pre-line;line-height:1.6}.contact-links{display:grid;gap:8px}.contact-links a{color:var(--primary);font-weight:800;text-decoration:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
footer{background:var(--footer);color:#fff;padding:36px 0}.footer-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:25px}.footer-grid strong{font-size:20px}.footer-grid small{display:block;margin-top:6px;color:#b9d3e8}.footer-right{text-align:right}.footer-links{display:flex;gap:12px;justify-content:flex-end;margin-top:8px;flex-wrap:wrap}.footer-links button,.footer-links a{border:0;background:transparent;color:#c9dfef;text-decoration:none;padding:0;cursor:pointer;font-size:12px}.player-bar{position:fixed;z-index:90;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 25px rgba(0,35,65,.1)}.player-bar.player-top{top:0;bottom:auto}.player-inner{height:74px;display:grid;grid-template-columns:auto auto 1fr auto;gap:13px;align-items:center}.player-play{width:44px;height:44px;border:0;border-radius:50%;background:var(--primary);color:#fff;font-size:18px;cursor:pointer}.player-inner strong{display:block}.player-inner small{display:block;color:var(--muted);margin-top:2px}.player-now{text-align:center;font-size:13px;font-weight:800;color:var(--primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-live{font-size:12px;font-weight:900;color:#e23649}.player-live i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#e23649;margin-right:4px}
.modal{position:fixed;z-index:200;inset:0;background:rgba(2,24,44,.68);padding:30px 17px;overflow:auto}.modal[hidden]{display:none}.modal-box{position:relative;width:min(900px,100%);margin:auto;background:#fff;border-radius:var(--radius);box-shadow:0 24px 80px rgba(0,0,0,.3);padding:30px}.modal-close{position:absolute;right:12px;top:10px;width:38px;height:38px;border:0;border-radius:50%;font-size:27px;background:#edf3f8;color:var(--ink);cursor:pointer;z-index:2}.modal-image{height:340px;background:center/cover no-repeat;border-radius:var(--radius);margin:-30px -30px 24px}.modal-kicker{font-size:12px;color:var(--primary);font-weight:900;text-transform:uppercase;letter-spacing:.09em}.modal-box h1{margin:7px 0 17px;font-size:34px}.modal-content{line-height:1.7;color:#30485d;white-space:pre-line}.modal-list{display:grid;gap:18px}.modal-list-item{display:grid;grid-template-columns:180px 1fr;gap:18px;padding-bottom:18px;border-bottom:1px solid var(--line);cursor:pointer}.modal-list-img{min-height:115px;background:#e6eef5 center/cover no-repeat;border-radius:6px}.modal-list-item h3{margin:0 0 8px}.modal-list-item p{margin:0;color:var(--muted)}
.has-zone-image{background-size:cover!important;background-position:center!important}.no-shadows{--shadow:none}
@media(max-width:980px){.tracks-grid{grid-template-columns:repeat(3,1fr)}.article-grid{grid-template-columns:repeat(2,1fr)}.shows-grid{grid-template-columns:repeat(2,1fr)}.games-grid .article-card:first-child{grid-column:auto}.station-top-inner{grid-template-columns:1fr auto}.social-small{display:none}.brand{justify-content:flex-start}.dedication-layout,.contact-layout{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr;text-align:center}.footer-right{text-align:center}.footer-links{justify-content:center}}
@media(max-width:760px){body{padding-bottom:70px}.station-top-inner{min-height:86px}.brand img{max-width:230px;max-height:68px}.listen-top{padding:10px 13px}.main-header .nav-wrap{display:block}.menu-btn{display:block}#mainNav{display:none;flex-direction:column;padding-bottom:8px}#mainNav.open{display:flex}.nav-root{width:100%;min-height:44px;padding:0 12px}.nav-group{width:100%}.dropdown{position:static;opacity:1;visibility:visible;transform:none;display:none;box-shadow:none;border:0;border-radius:0;background:rgba(255,255,255,.08);padding:3px 10px}.nav-group.open .dropdown{display:block}.dropdown a,.dropdown button{color:#fff}.dropdown a:hover,.dropdown button:hover{background:rgba(255,255,255,.12);color:#fff}.hero-slider{height:330px}.banner-overlay-logo{max-width:58vw}.slider-arrow{width:38px;height:58px}.dedication-ticker{grid-template-columns:auto 1fr}.ticker-action{display:none}.ticker-label{padding:0 12px;font-size:12px}.current-strip-inner{grid-template-columns:auto 1fr}.strip-play{display:none}.current-song{text-align:right;font-size:12px}.section-heading{align-items:flex-start}.section-heading h2,.ded-copy h2{font-size:29px}.see-all{font-size:12px}.article-grid,.tracks-grid,.shows-grid{grid-template-columns:1fr}.article-media,.track-cover{height:210px}.dedication-wall{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.player-inner{grid-template-columns:auto 1fr auto}.player-now{display:none}.modal-box{padding:22px}.modal-image{height:230px;margin:-22px -22px 20px}.modal-list-item{grid-template-columns:1fr}.modal-list-img{height:180px}}

/* V3.4 — ajouts ciblés. Les couleurs/tailles enregistrées dans D1 restent prioritaires. */
.hero-slider{height:auto;aspect-ratio:16/7;min-height:240px;max-height:min(78vh,760px);background:var(--soft);overflow:hidden}
.slides{position:relative;width:100%;height:100%}
.slide{background-image:none!important;background-color:var(--soft)}
.slide-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain!important;object-position:center center!important;display:block;z-index:0}
.contest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-bottom:24px}
.contest-card{display:grid;grid-template-columns:minmax(180px,38%) 1fr;background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);min-width:0}
.contest-media{min-height:230px;background:var(--soft) center/contain no-repeat}
.contest-body{padding:22px;display:flex;flex-direction:column;gap:10px;min-width:0}.contest-body h3{margin:0;font-size:24px;line-height:1.2}.contest-body p{margin:0;color:var(--muted);line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}.contest-body small{color:var(--primary);font-weight:800}.contest-enter{align-self:flex-start;margin-top:auto}
.games-info{margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.games-info-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}.games-info-head h3{margin:0;font-size:21px}.contest-description{white-space:pre-line;line-height:1.6;color:var(--muted)}.contest-form{margin-top:20px}.consent-line{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px!important;font-weight:600!important;line-height:1.4}.consent-line input{width:auto!important;margin-top:3px;flex:0 0 auto}
@media(max-width:900px){.contest-grid{grid-template-columns:1fr}.contest-card{grid-template-columns:minmax(160px,34%) 1fr}}
@media(max-width:760px){.hero-slider{height:auto!important;min-height:0;max-height:min(72vh,560px)}.slide-img{object-fit:contain!important}.contest-card{grid-template-columns:1fr}.contest-media{min-height:0;aspect-ratio:16/9}.contest-body{padding:18px}.contest-body h3{font-size:21px}.games-info-head{align-items:flex-start;flex-direction:column}.contest-modal-box{width:min(100%,680px)}.modal{padding:10px}.modal-box{max-height:92vh;overflow:auto}}
@media(max-width:420px){.hero-slider{min-height:0}.contest-body{padding:16px}.current-song{max-width:58vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}


/* V3.6 — correction définitive du bandeau : chaque image garde son ratio réel, sans recadrage. */
.hero-slider{height:var(--berry-hero-height,auto)!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important;overflow:hidden!important;background:var(--soft)!important}
.hero-slider .slides,.hero-slider .slide{height:100%!important}
.hero-slider .slide-img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:50% 50%!important;display:block!important}
@media(max-width:760px){.hero-slider{height:var(--berry-hero-height,auto)!important;min-height:0!important;max-height:none!important}}

/* V3.7 — dimensionnement piloté depuis l'administration, sans recadrage imposé. */
.hero-slider{height:var(--berry-hero-height,500px)!important;min-height:0!important;max-height:none!important;overflow:hidden!important}
.hero-slider .slides,.hero-slider .slide{height:100%!important}
.hero-slider .slide-img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;display:block!important;will-change:transform;transition:transform .2s ease}
@media(max-width:760px){.hero-slider{height:var(--berry-hero-height,320px)!important}}

.hero-slider .slide-img{object-fit:var(--slide-fit,contain)!important;object-position:var(--slide-x,50%) var(--slide-y,50%)!important;transform:scale(var(--slide-scale,1))!important;transform-origin:center center!important}


/* V3.8 — méga-menu horizontal au clic sur PC. Mobile conserve l'accordéon tactile. */
@media(min-width:761px){
  .main-header,.main-header .nav-wrap,#mainNav{position:relative}
  .main-header .nav-wrap{position:static}
  #mainNav{position:static}
  #mainNav .nav-group{position:static}
  #mainNav .dropdown{
    left:0;right:0;top:100%;width:100%;min-width:0;
    display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,220px));justify-content:center;gap:12px;
    padding:18px max(20px,calc((100vw - var(--shell))/2 + 17px));
    border-left:0;border-right:0;border-radius:0 0 14px 14px;
    transform:translateY(-8px);pointer-events:none;
    box-shadow:0 18px 34px rgba(9,48,82,.16)
  }
  #mainNav .nav-group:hover:not(.open)>.dropdown{opacity:0;visibility:hidden;transform:translateY(-8px);pointer-events:none}
  #mainNav .nav-group.open>.dropdown{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
  #mainNav .dropdown a,#mainNav .dropdown button{
    min-height:54px;display:flex;align-items:center;justify-content:center;
    text-align:center;padding:12px 16px;border:1px solid var(--line);
    border-radius:10px;background:var(--soft);color:var(--ink);font-weight:800
  }
  #mainNav .dropdown a:hover,#mainNav .dropdown button:hover{background:#fff;color:var(--primary);border-color:var(--secondary)}
  #mainNav .nav-drop span{display:inline-block;transition:transform .18s ease}
  #mainNav .nav-group.open>.nav-drop span{transform:rotate(180deg)}
}


/* V3.9 — même principe de méga-menu au clic sur téléphone : panneau de tuiles séparé, pas d'accordéon. */
@media(max-width:760px){
  #mainNav.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:8px 0 10px}
  #mainNav>.nav-root,#mainNav>.nav-group{width:100%;min-width:0}
  #mainNav>.nav-root,#mainNav>.nav-group>.nav-root{min-height:46px;width:100%;justify-content:center;padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.08)}
  #mainNav>.nav-group.open>.nav-root{background:rgba(255,255,255,.18)}
  #mainNav>.nav-group>.dropdown{display:none!important}
  .mobile-mega-panel{grid-column:1/-1;background:#fff;border-radius:12px;padding:12px;box-shadow:0 14px 30px rgba(2,31,57,.24);margin-top:2px}
  .mobile-mega-panel[hidden]{display:none!important}
  .mobile-mega-title{color:var(--primary);font-weight:900;text-align:center;padding:3px 4px 10px}
  .mobile-mega-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .mobile-mega-grid a,.mobile-mega-grid button{min-height:50px;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--soft);color:var(--ink);text-decoration:none;font-weight:800}
  .mobile-mega-grid a:active,.mobile-mega-grid button:active{background:#fff;color:var(--primary);border-color:var(--secondary)}
}
@media(max-width:420px){.mobile-mega-grid{grid-template-columns:1fr}}

/* V4.2 — source extérieure des articles */
.article-source{margin-top:24px;padding-top:14px;border-top:1px solid var(--line);font-size:.95rem}.article-source a{color:var(--primary);font-weight:700;text-decoration:none}.article-source a:hover{text-decoration:underline}
