/* ============================================================
   Oz'Ondes FM — Feuille de styles v2.0
   Palette : Bleu #2563B4 / Foncé #1A3A6B
   Mode sombre/clair automatique + toggle manuel
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Outfit:wght@300;400;500;600;700&display=swap');

/* ============================================================
   VARIABLES — faciles à personnaliser
   ============================================================ */
:root {
  --bleu:        #2563B4;
  --bleu-fonce:  #1A3A6B;
  --bleu-clair:  #4A8DD4;
  --font-display:'Bebas Neue', sans-serif;
  --font-body:   'Outfit', sans-serif;
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
}

/* MODE SOMBRE */
:root,
html.theme-dark {
  --bg-base:     #0C0F14;
  --bg-surface:  #141820;
  --bg-elevated: #1C2230;
  --bg-input:    #1C2230;
  --txt-primary: #E8EBF0;
  --txt-secondary:#8A93A8;
  --txt-muted:   #505870;
  --border:      #252D40;
  --border-strong:#3A4560;
  --shadow:      0 4px 24px rgba(0,0,0,0.45);
  --shadow-sm:   0 2px 8px rgba(0,0,0,0.35);
}

/* MODE CLAIR */
@media (prefers-color-scheme: light) {
  :root {
    --bg-base:     #F2F5FB;
    --bg-surface:  #FFFFFF;
    --bg-elevated: #FFFFFF;
    --bg-input:    #F2F5FB;
    --txt-primary: #0F1623;
    --txt-secondary:#4A5568;
    --txt-muted:   #94A3B8;
    --border:      #E2E8F0;
    --border-strong:#CBD5E1;
    --shadow:      0 4px 24px rgba(0,0,0,0.08);
    --shadow-sm:   0 2px 8px rgba(0,0,0,0.05);
  }
}
html.theme-light {
  --bg-base:     #F2F5FB;
  --bg-surface:  #FFFFFF;
  --bg-elevated: #FFFFFF;
  --bg-input:    #F2F5FB;
  --txt-primary: #0F1623;
  --txt-secondary:#4A5568;
  --txt-muted:   #94A3B8;
  --border:      #E2E8F0;
  --border-strong:#CBD5E1;
  --shadow:      0 4px 24px rgba(0,0,0,0.08);
  --shadow-sm:   0 2px 8px rgba(0,0,0,0.05);
}
html.theme-dark {
  --bg-base:     #0C0F14;
  --bg-surface:  #141820;
  --bg-elevated: #1C2230;
  --bg-input:    #1C2230;
  --txt-primary: #E8EBF0;
  --txt-secondary:#8A93A8;
  --txt-muted:   #505870;
  --border:      #252D40;
  --border-strong:#3A4560;
  --shadow:      0 4px 24px rgba(0,0,0,0.45);
  --shadow-sm:   0 2px 8px rgba(0,0,0,0.35);
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-body);background:var(--bg-base);color:var(--txt-primary);min-height:100vh;transition:background .3s,color .3s;display:flex;flex-direction:column;}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}
ul{list-style:none}

/* ============================================================
   NAVIGATION
   ============================================================ */
.site-nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  background:var(--bg-elevated);border-bottom:1px solid var(--border);
  box-shadow:var(--shadow-sm);
  display:flex;align-items:center;
  padding:1.1rem 2.5rem;
  transition:padding .35s ease, box-shadow .3s;
}
.nav-logo{display:flex;align-items:center;flex-shrink:0;margin-right:2.5rem;}
.nav-center{flex:1;display:flex;justify-content:space-between;align-items:center;}
.nav-right{display:flex;align-items:center;gap:0.75rem;flex-shrink:0;margin-left:2rem;}

.site-logo{height:72px;width:auto;object-fit:contain;display:none;background:transparent;transition:height .35s ease;}

/* — Mode AUTO (prefers-color-scheme) — */
@media(prefers-color-scheme:dark){
  .logo-show-dark  { display:block }
  .logo-show-light { display:none  }
}
@media(prefers-color-scheme:light){
  .logo-show-dark  { display:none  }
  .logo-show-light { display:block }
}
/* Fallback si pas de prefers-color-scheme */
@media not all and (prefers-color-scheme){
  .logo-show-dark  { display:block }
  .logo-show-light { display:none  }
}

/* — Mode FORCÉ par classe sur <html> — */
html.theme-dark  .logo-show-dark  { display:block !important }
html.theme-dark  .logo-show-light { display:none  !important }
html.theme-light .logo-show-dark  { display:none  !important }
html.theme-light .logo-show-light { display:block !important }

/* Footer logo */
.footer-logo img { height:40px;width:auto;object-fit:contain;display:none;background:transparent; }
.footer-logo .logo-show-dark  { display:block }
.footer-logo .logo-show-light { display:none  }
@media(prefers-color-scheme:light){
  .footer-logo .logo-show-dark  { display:none  }
  .footer-logo .logo-show-light { display:block }
}
html.theme-dark  .footer-logo .logo-show-dark  { display:block !important }
html.theme-dark  .footer-logo .logo-show-light { display:none  !important }
html.theme-light .footer-logo .logo-show-dark  { display:none  !important }
html.theme-light .footer-logo .logo-show-light { display:block !important }

/* Hero logo */
.hero-logo{height:160px;width:auto;margin:0 auto 1rem;display:none;background:transparent;}
.hero--home .hero-logo{height:220px;}
.hero .logo-show-dark  { display:block }
.hero .logo-show-light { display:none  }
@media(prefers-color-scheme:light){
  .hero .logo-show-dark  { display:none  }
  .hero .logo-show-light { display:block }
}
html.theme-dark  .hero .logo-show-dark  { display:block !important }
html.theme-dark  .hero .logo-show-light { display:none  !important }
html.theme-light .hero .logo-show-dark  { display:none  !important }
html.theme-light .hero .logo-show-light { display:block !important }

.nav-right{display:flex;align-items:center;gap:0.5rem}
.nav-menu{display:flex;gap:0;align-items:center;justify-content:center;width:100%;}
.nav-menu li a{
  color:var(--txt-secondary);font-size:0.95rem;font-weight:700;
  letter-spacing:0.07em;text-transform:uppercase;
  padding:0.4rem 0.85rem;border-radius:var(--radius-sm);
  transition:color .25s,background .25s,font-size .35s ease,padding .35s ease;display:block;
}
.nav-menu li a:hover,
.nav-menu .current-menu-item>a,
.nav-menu .current_page_item>a{color:var(--bleu);background:rgba(37,99,180,0.08)}
.theme-toggle{
  background:var(--bg-surface);border:1px solid var(--border);
  color:var(--txt-secondary);border-radius:var(--radius-sm);
  width:36px;height:36px;cursor:pointer;font-size:1rem;
  display:flex;align-items:center;justify-content:center;
  transition:border-color .2s,color .2s;flex-shrink:0;
}
.theme-toggle:hover{border-color:var(--bleu);color:var(--bleu)}
.nav-cta{
  background:var(--bleu);color:#fff!important;
  padding:0.5rem 1.1rem;border-radius:var(--radius-sm);
  font-size:0.8rem;font-weight:700;letter-spacing:0.06em;
  text-transform:uppercase;transition:background .2s;white-space:nowrap;
}
.nav-cta:hover{background:var(--bleu-fonce)!important}
.nav-toggle{display:none;background:none;border:none;color:var(--txt-primary);font-size:1.4rem;cursor:pointer;padding:0.25rem}

@media(max-width:960px){
  .nav-menu{display:none;flex-direction:column;align-items:stretch;position:absolute;top:100px;left:0;right:0;background:var(--bg-elevated);border-bottom:1px solid var(--border);padding:1rem 1.5rem;gap:0.25rem}
  .nav-menu.open{display:flex}
  .nav-toggle{display:block}
  .nav-right .nav-cta{display:none}
  .site-nav{padding:0 1.25rem}
}

/* ============================================================
   LAYOUT
   ============================================================ */
.page-wrap{flex:1;padding-top:120px}
.container{max-width:1200px;margin:0 auto;padding:0 2rem}
.section-pad{padding:5rem 0}
.section-tag{font-size:0.72rem;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:var(--bleu);margin-bottom:0.6rem}
.section-title{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,4rem);color:var(--txt-primary);line-height:1}
.bg-alt{background:var(--bg-surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}

/* ============================================================
   BOUTONS
   ============================================================ */
.btn-primary{display:inline-block;background:var(--bleu);color:#fff;padding:0.85rem 2rem;border-radius:var(--radius-sm);font-size:0.9rem;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;border:none;cursor:pointer;transition:background .2s,transform .15s;font-family:var(--font-body)}
.btn-primary:hover{background:var(--bleu-fonce);color:#fff;transform:translateY(-1px)}
.btn-outline{display:inline-block;background:transparent;color:var(--txt-primary);padding:0.85rem 2rem;border-radius:var(--radius-sm);font-size:0.9rem;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;border:1px solid var(--border-strong);cursor:pointer;transition:border-color .2s,color .2s;font-family:var(--font-body)}
.btn-outline:hover{border-color:var(--bleu);color:var(--bleu)}

/* ============================================================
   HERO
   ============================================================ */
.hero{min-height:calc(100vh - 68px);display:flex;align-items:center;justify-content:center;text-align:center;position:relative;overflow:visible;padding:2rem 2rem;background:var(--bg-base)}
.hero--home{min-height:auto;padding:3rem 2rem 4rem;}
.hero::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 60% 40%,rgba(37,99,180,0.12) 0%,transparent 65%)}
.hero::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0.04;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:40px 40px}
.hero-inner{position:relative;z-index:10;max-width:820px;overflow:visible;}
.hero-now-playing-title{margin-left:0.4rem;opacity:0.85;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:middle;font-style:italic;text-transform:none;font-weight:400;letter-spacing:0;}
.hero-artist-line{font-size:0.78rem;color:var(--bleu-clair);margin-bottom:1.5rem;font-style:italic;letter-spacing:0;text-transform:none;opacity:0.85;}
.hero-badge{display:inline-flex;align-items:center;gap:0.5rem;background:rgba(37,99,180,0.12);border:1px solid rgba(37,99,180,0.35);color:var(--bleu-clair);font-size:0.78rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;padding:0.4rem 1rem;border-radius:2px;margin-bottom:1.25rem}
/* hero-logo défini plus haut */
.hero h1{font-family:var(--font-display);font-size:clamp(3rem,9vw,7rem);line-height:0.9;color:var(--txt-primary);margin-bottom:0.5rem}
.hero h1 span{color:var(--bleu)}
.hero-freq{font-family:var(--font-display);font-size:1.75rem;color:var(--txt-secondary);letter-spacing:0.1em;margin-bottom:0.6rem}
.hero-subtitle{font-size:1.15rem;color:var(--txt-secondary);max-width:480px;margin:0 auto 1.5rem;font-weight:300;line-height:1.7}
.hero-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.hero-buttons--3{flex-wrap:wrap;}

/* ============================================================
   BANDEAU DIRECT
   ============================================================ */
.live-bar{background:var(--bg-surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:1.1rem 2.5rem;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.live-indicator{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--bleu);flex-shrink:0}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--bleu);animation:blink 1.5s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.25}}
.live-info{flex:1}
.live-info strong{color:var(--txt-primary);font-size:0.95rem;display:block}
.live-info span{color:var(--txt-secondary);font-size:0.82rem}

/* ============================================================
   CARTES ACTU
   ============================================================ */
.actu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}
.actu-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;transition:border-color .2s,transform .2s,box-shadow .2s}
.actu-card:hover{border-color:var(--bleu);transform:translateY(-4px);box-shadow:var(--shadow)}
.card-img{width:100%;height:200px;overflow:hidden;background:var(--bg-elevated);display:flex;align-items:center;justify-content:center;font-size:3rem}
.card-img img{width:100%;height:100%;object-fit:cover}
.actu-body{padding:1.25rem}
.actu-cat{font-size:0.68rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:var(--bleu);margin-bottom:0.4rem}
.actu-body h3{color:var(--txt-primary);font-size:1.05rem;line-height:1.4;margin-bottom:0.4rem}
.actu-body p{color:var(--txt-secondary);font-size:0.87rem;line-height:1.6}
.actu-meta{margin-top:0.85rem;font-size:0.73rem;color:var(--txt-muted)}

/* ============================================================
   GRILLE ÉMISSIONS
   ============================================================ */
.emissions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:1.5rem}
.emission-card{transition:transform .2s;display:block;color:inherit}
.emission-card:hover{transform:translateY(-6px)}
.emission-thumb{width:100%;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin-bottom:0.75rem;transition:border-color .2s;position:relative;background:var(--bg-surface)}
.emission-thumb img{width:100%;height:100%;object-fit:cover;background:var(--bg-surface);}
.emission-card:hover .emission-thumb{border-color:var(--bleu)}
.emission-thumb-overlay{position:absolute;inset:0;background:rgba(37,99,180,0);transition:background .2s}
.emission-card:hover .emission-thumb-overlay{background:rgba(37,99,180,0.15)}
.emission-name{font-size:0.9rem;font-weight:600;color:var(--txt-primary);line-height:1.3;margin-bottom:0.2rem}
.emission-cat{font-size:0.78rem;color:var(--txt-secondary)}

/* ============================================================
   SINGLE ÉMISSION
   ============================================================ */
.emission-hero-wrap{background:var(--bg-surface);border-bottom:1px solid var(--border);padding:3rem 0}
.emission-hero-inner{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;gap:2.5rem;align-items:flex-start;flex-wrap:wrap}
.emission-hero-img{width:200px;height:200px;flex-shrink:0;border-radius:var(--radius-md);border:1px solid var(--border);overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:4rem;background:#fff}
.emission-hero-img img{width:100%;height:100%;object-fit:contain;background:#fff}
.emission-hero-info{flex:1;min-width:260px}
.emission-hero-info h1{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);color:var(--txt-primary);line-height:1.05;margin-bottom:0.75rem}
.emission-hero-info .desc{color:var(--txt-secondary);font-size:1rem;line-height:1.7;margin-bottom:1rem}
.emission-tags{display:flex;gap:0.5rem;flex-wrap:wrap;margin-top:0.5rem}
.tag{background:rgba(37,99,180,0.1);border:1px solid rgba(37,99,180,0.25);color:var(--bleu-clair);font-size:0.72rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;padding:0.25rem 0.65rem;border-radius:2px}
.back-link{display:inline-flex;align-items:center;gap:0.4rem;color:var(--txt-muted);font-size:0.85rem;margin-bottom:1.25rem;transition:color .2s}
.back-link:hover{color:var(--bleu)}
.emission-content-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}
@media(max-width:700px){.emission-content-grid{grid-template-columns:1fr}}
.emission-meta-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}
.emission-meta-row{display:flex;gap:1rem;align-items:flex-start;padding:0.85rem 1.1rem;border-bottom:1px solid var(--border)}
.emission-meta-row:last-child{border-bottom:none}
.emission-meta-row .icon{font-size:1.1rem;flex-shrink:0;margin-top:0.1rem}
.emission-meta-row strong{color:var(--txt-primary);display:block;font-size:0.8rem;margin-bottom:0.1rem;text-transform:uppercase;letter-spacing:0.06em;font-weight:700}
.emission-meta-row span{color:var(--txt-secondary);font-size:0.875rem}

/* ============================================================
   GRILLE PROGRAMMES
   ============================================================ */
.days-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:2rem;flex-wrap:wrap}
.day-tab{padding:0.65rem 1.1rem;cursor:pointer;font-size:0.8rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--txt-muted);background:none;border:none;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;font-family:var(--font-body)}
.day-tab:hover{color:var(--txt-primary)}
.day-tab.active{color:var(--bleu);border-bottom-color:var(--bleu)}
.grille-wrap{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border)}
.grille-table{width:100%;border-collapse:collapse;min-width:600px}
.grille-table th{background:var(--bg-surface);border-bottom:1px solid var(--border);padding:0.75rem 1rem;text-align:left;font-size:0.7rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--txt-muted)}
.grille-table td{border-bottom:1px solid var(--border);padding:0.75rem 1rem;font-size:0.875rem;color:var(--txt-primary);vertical-align:middle}
.grille-table tbody tr:last-child td{border-bottom:none}
.grille-table tr:hover td{background:rgba(37,99,180,0.04)}
.grille-time{color:var(--bleu);font-weight:700;font-family:var(--font-display);font-size:1.1rem;letter-spacing:0.04em}
.grille-show{color:var(--txt-primary);font-weight:500}
.grille-show:hover{color:var(--bleu)}
.day-programs{display:none}
.day-programs.active{display:block}
.freq-tag{background:rgba(37,99,180,0.1);border:1px solid rgba(37,99,180,0.2);color:var(--bleu-clair);font-size:0.68rem;font-weight:700;padding:0.15rem 0.5rem;border-radius:2px;letter-spacing:0.06em;text-transform:uppercase;white-space:nowrap}

/* ============================================================
   PARTENAIRES
   ============================================================ */
.partners-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1.25rem}
.partner-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:2rem 1.5rem;text-align:center;transition:border-color .2s,transform .2s}
.partner-card:hover{border-color:var(--bleu);transform:translateY(-4px)}
.partner-logo{width:72px;height:72px;border-radius:50%;background:var(--bg-elevated);margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;font-size:1.75rem;overflow:hidden;border:1px solid var(--border)}
.partner-logo img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.partner-name{font-weight:600;color:var(--txt-primary);margin-bottom:0.25rem}
.partner-type{font-size:0.8rem;color:var(--txt-secondary)}
.partner-section-title{font-family:var(--font-display);font-size:1.6rem;color:var(--txt-primary);margin:2.5rem 0 1rem}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-grid{display:grid;grid-template-columns:3fr 2fr;gap:3rem}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr}}
.contact-form label{display:block;font-size:0.75rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--txt-secondary);margin-bottom:0.35rem}
.contact-form input,
.contact-form textarea,
.contact-form select{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.85rem 1rem;color:var(--txt-primary);font-size:0.9rem;font-family:var(--font-body);margin-bottom:1.1rem;transition:border-color .2s;outline:none;appearance:none}
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus{border-color:var(--bleu)}
.contact-form textarea{height:140px;resize:vertical}
.contact-form select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238A93A8' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-color:var(--bg-input);padding-right:2.5rem}
.contact-form select option{background:var(--bg-elevated)}
.wpcf7-submit{width:100%!important}
.wpcf7-response-output{margin-top:1rem!important;padding:0.85rem 1rem!important;border-radius:var(--radius-sm)!important;font-size:0.875rem!important}
.wpcf7-mail-sent-ok{background:rgba(34,197,94,0.1)!important;color:#22c55e!important;border:1px solid rgba(34,197,94,0.3)!important}
.wpcf7-validation-errors,.wpcf7-acceptance-missing{background:rgba(239,68,68,0.1)!important;color:#ef4444!important;border:1px solid rgba(239,68,68,0.3)!important}
.wpcf7-not-valid-tip{color:#ef4444!important;font-size:0.8rem!important}
.contact-info-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.5rem}
.contact-detail{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}
.contact-detail:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}
.contact-detail .icon{font-size:1.1rem;flex-shrink:0;margin-top:0.1rem}
.contact-detail strong{color:var(--txt-primary);display:block;font-size:0.82rem;margin-bottom:0.1rem;text-transform:uppercase;letter-spacing:0.06em}
.contact-detail span{color:var(--txt-secondary);font-size:0.875rem}

/* ============================================================
   PROMO BOX / ENTRY CONTENT / FOOTER / PAGINATION
   ============================================================ */
.promo-box{padding:2.5rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center}
.promo-box h3{font-family:var(--font-display);font-size:2rem;color:var(--txt-primary);margin-bottom:0.5rem}
.promo-box p{color:var(--txt-secondary);margin-bottom:1.25rem}
.entry-content{color:var(--txt-secondary);line-height:1.8}
.entry-content p{margin-bottom:1rem}
.entry-content h2,.entry-content h3{color:var(--txt-primary);margin:1.5rem 0 0.75rem;font-family:var(--font-display);font-size:1.6rem;letter-spacing:0.02em}
.entry-content a{color:var(--bleu);text-decoration:underline}
.entry-content ul,.entry-content ol{padding-left:1.5rem;margin-bottom:1rem}
.entry-content li{margin-bottom:0.4rem}
.site-footer{background:var(--bg-surface);border-top:1px solid var(--border);padding:2.5rem 0}
.footer-inner{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem}
/* footer-logo défini plus haut */
.footer-copy{color:var(--txt-muted);font-size:0.82rem}
.footer-links{display:flex;gap:1.5rem;flex-wrap:wrap}
.footer-links a{color:var(--txt-muted);font-size:0.82rem;transition:color .2s}
.footer-links a:hover{color:var(--bleu)}
.pagination{display:flex;justify-content:center;gap:0.5rem;margin-top:3rem;flex-wrap:wrap}
.pagination .page-numbers{padding:0.5rem 0.9rem;border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--txt-secondary);font-size:0.85rem;transition:border-color .2s,color .2s}
.pagination .page-numbers:hover{border-color:var(--bleu);color:var(--bleu)}
.pagination .page-numbers.current{background:var(--bleu);color:#fff;border-color:var(--bleu)}
.admin-tip{background:rgba(37,99,180,0.06);border:1px solid rgba(37,99,180,0.2);border-radius:var(--radius-sm);padding:1rem 1.25rem;font-size:0.875rem;color:var(--txt-secondary);margin-top:2rem}
.admin-tip strong{color:var(--bleu-clair)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:768px){
  .container{padding:0 1.25rem}
  .section-pad{padding:3rem 0}
  .hero{padding:3rem 1.25rem}
  .live-bar{padding:1rem 1.25rem}
  .emissions-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}
  .actu-grid{grid-template-columns:1fr}
  .emission-hero-img{width:120px;height:120px;font-size:3rem}
  .footer-inner{flex-direction:column;align-items:flex-start}
}

/* ============================================================
   HISTORIQUE / RECHERCHE (single-emission)
   ============================================================ */
.oz-history-wrap { max-width: 800px; }
.oz-history-search {
  display: flex; gap: 0.75rem; flex-wrap: wrap;
}
.oz-search-input {
  flex: 1; min-width: 200px;
  background: var(--bg-input);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 0.75rem 1rem;
  color: var(--txt-primary);
  font-family: var(--font-body);
  font-size: 0.9rem;
  outline: none;
  transition: border-color .2s;
}
.oz-search-input:focus { border-color: var(--bleu); }
.oz-search-btn { white-space: nowrap; }
.oz-search-results {
  margin-top: 1rem;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.oz-history-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 0.75rem;
  font-size: 0.85rem; font-weight: 700; color: var(--txt-secondary);
}
.oz-refresh-btn {
  background: none; border: 1px solid var(--border);
  color: var(--txt-muted); font-size: 0.78rem;
  padding: 0.3rem 0.65rem; border-radius: var(--radius-sm);
  cursor: pointer; transition: color .2s, border-color .2s;
}
.oz-refresh-btn:hover { color: var(--bleu); border-color: var(--bleu); }
.oz-history-list {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.oz-history-loading {
  padding: 1.5rem; text-align: center; color: var(--txt-muted); font-size: 0.875rem;
}
.oz-track-list { }
.oz-track-row {
  display: flex; align-items: center; gap: 0.85rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border);
  transition: background .15s;
}
.oz-track-row:last-child { border-bottom: none; }
.oz-track-row:hover { background: rgba(37,99,180,0.04); }
.oz-track-row--now { background: rgba(37,99,180,0.06); }
.oz-track-thumb {
  width: 44px; height: 44px;
  border-radius: 6px;
  overflow: hidden; flex-shrink: 0;
  object-fit: cover;
}
.oz-track-thumb-empty {
  background: rgba(37,99,180,0.1);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem;
}
.oz-track-meta { flex: 1; min-width: 0; }
.oz-track-name {
  font-size: 0.875rem; font-weight: 600; color: var(--txt-primary);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.oz-track-sub {
  font-size: 0.78rem; color: var(--txt-secondary); margin-top: 0.1rem;
}
.oz-track-lfm {
  font-size: 1rem; flex-shrink: 0; opacity: 0.5;
  transition: opacity .2s; text-decoration: none;
}
.oz-track-lfm:hover { opacity: 1; }

/* ============================================================
   NAVIGATION SEMAINE (grille des programmes)
   ============================================================ */
.grille-header-row {
  display: flex; align-items: flex-end; justify-content: space-between;
  flex-wrap: wrap; gap: 1rem; margin-bottom: 0.75rem;
}
.grille-nav {
  display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;
  margin-bottom: 0.5rem;
}
.grille-nav-btn {
  display: inline-block;
  padding: 0.45rem 0.9rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  font-size: 0.8rem; font-weight: 600;
  color: var(--txt-secondary);
  transition: border-color .2s, color .2s, background .2s;
}
.grille-nav-btn:hover { border-color: var(--bleu); color: var(--bleu); }
.grille-nav-today {
  background: var(--bleu); color: #fff !important;
  border-color: var(--bleu);
}
.grille-nav-today:hover { background: var(--bleu-fonce); border-color: var(--bleu-fonce); }
.grille-nav-label {
  font-size: 0.82rem; color: var(--txt-secondary); font-weight: 500;
  display: flex; align-items: center; gap: 0.5rem;
}
.grille-nav-now {
  background: rgba(37,99,180,0.12); border: 1px solid rgba(37,99,180,0.3);
  color: var(--bleu-clair); font-size: 0.65rem; font-weight: 700;
  padding: 0.15rem 0.5rem; border-radius: 2px; text-transform: uppercase;
  letter-spacing: 0.1em;
}
.day-tab-date {
  display: block; font-size: 0.9rem; font-weight: 700;
  color: var(--txt-primary); line-height: 1;
}
.day-tab-today .day-tab-date,
.day-tab-date.day-tab-today {
  color: var(--bleu);
}
.day-tab { padding: 0.55rem 0.9rem; display: flex; flex-direction: column; align-items: center; gap: 2px; }

/* Vignette dans la grille */
.grille-thumb {
  width: 44px; height: 44px; flex-shrink: 0;
}
.grille-thumb img { width: 44px; height: 44px; object-fit: cover; border-radius: 6px; display: block; }
.grille-thumb-default {
  width: 44px; height: 44px;
  border-radius: 6px;
  background: #fff;
  border: 1px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}

/* Image par défaut dans les cards émission */
.emission-thumb-default {
  width: 100%; height: 100%;
  object-fit: contain !important;
  padding: 14% !important;
  background: #ffffff !important;
  display: block;
}
/* Conteneur vignette : fond blanc forcé + contain pour le logo par défaut */
.emission-thumb:has(.emission-thumb-default) {
  background: #ffffff !important;
}
.emission-thumb:has(.emission-thumb-default) img {
  object-fit: contain !important;
  padding: 14%;
  background: #ffffff !important;
}

/* ============================================================
   PAGE ACTU — Article à la une + grille
   ============================================================ */
.actu-featured { border-radius: var(--radius-lg); overflow: hidden; }
.actu-featured-link { display: block; text-decoration: none; color: inherit; }
.actu-featured-img {
  position: relative;
  width: 100%; height: 480px;
  background: var(--bg-surface);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.actu-featured-img img {
  width: 100%; height: 100%; object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.actu-featured-link:hover .actu-featured-img img { transform: scale(1.03); }
.actu-featured-placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 5rem; background: var(--bg-elevated);
}
.actu-featured-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.1) 55%, transparent 100%);
  border-radius: var(--radius-lg);
}
.actu-featured-meta {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 2rem 2rem 1.75rem;
}
.actu-featured-cat {
  display: inline-block;
  background: var(--bleu); color: #fff;
  font-size: 0.65rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase;
  padding: 0.25rem 0.6rem; border-radius: 2px; margin-bottom: 0.75rem;
}
.actu-featured-title {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 4vw, 2.5rem);
  color: #fff; line-height: 1.1; margin-bottom: 0.6rem;
}
.actu-featured-excerpt {
  color: rgba(255,255,255,0.8); font-size: 0.9rem; line-height: 1.6;
  margin-bottom: 0.75rem; max-width: 600px;
}
.actu-featured-date {
  color: rgba(255,255,255,0.6); font-size: 0.78rem;
}
@media (max-width: 768px) {
  .actu-featured-img { height: 280px; }
  .actu-featured-meta { padding: 1.25rem; }
}

/* ============================================================
   Admin CSS — boutons rapides créneaux
   ============================================================ */

/* ── Page historique ── */
.oz-hist-controls {
  display: flex; align-items: flex-start; gap: 1rem; flex-wrap: wrap;
  margin-bottom: 0.5rem;
}
.oz-hist-field { display: flex; flex-direction: column; gap: 0.35rem; }
.oz-hist-field label {
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--txt-secondary);
}

/* ── Réseaux sociaux footer ── */
.footer-inner {
  flex-wrap: wrap;
  row-gap: 1rem;
}
.footer-social {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  order: 2;
}
.footer-social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  color: var(--txt-secondary);
  transition: color .2s, border-color .2s, background .2s, transform .15s;
  flex-shrink: 0;
}
.footer-social-link:hover {
  color: var(--bleu);
  border-color: var(--bleu);
  background: rgba(37,99,180,0.08);
  transform: translateY(-2px);
}
.footer-copy { order: 3; width: 100%; }
@media (min-width: 768px) {
  .footer-copy { width: auto; }
}

/* ============================================================
   BOUTON FLOTTANT — ouvre le player dans une nouvelle fenêtre
   ============================================================ */

.oz-fab {
  position: fixed;
  bottom: 1.75rem; right: 1.75rem;
  z-index: 8000;
  width: 60px; height: 60px;
  border-radius: 50%;
  background: var(--bleu);
  border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  box-shadow: 0 4px 20px rgba(37,99,180,0.45);
  transition: transform .2s, box-shadow .2s, background .2s;
  overflow: visible;
}
.oz-fab:hover  { transform: scale(1.08); box-shadow: 0 6px 28px rgba(37,99,180,0.55); }
.oz-fab:active { transform: scale(0.96); }
.oz-fab.is-playing { background: #2563B4; }
.oz-fab-ring {
  position: absolute; inset: -3px;
  border-radius: 50%;
  border: 2px solid var(--bleu);
  opacity: 0;
  animation: none;
}
.oz-fab.is-playing .oz-fab-ring {
  opacity: 1;
  animation: oz-ring 1.8s ease-out infinite;
}
@keyframes oz-ring {
  0%   { transform: scale(1);    opacity: .6; }
  100% { transform: scale(1.55); opacity: 0;  }
}

/* ============================================================
   GRILLE PROGRAMMES — pleine largeur + mode sombre
   ============================================================ */
.grille-outer {
  width: 100%;
  padding: 0;
}

/* Forcer les variables sombres sur tous les éléments de la grille */
.grille-wrap {
  overflow-x: auto;
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  background: var(--bg-surface);
}
.grille-table th {
  background: var(--bg-elevated) !important;
  color: var(--txt-muted) !important;
  border-bottom: 1px solid var(--border) !important;
}
.grille-table td {
  color: var(--txt-primary) !important;
  border-bottom: 1px solid var(--border) !important;
  background: transparent;
}
.grille-table tr:hover td { background: rgba(37,99,180,0.06) !important; }
.days-tabs { background: transparent; }
.day-tab {
  color: var(--txt-muted);
  background: none;
  border-bottom: 2px solid transparent;
}
.day-tab.active { color: var(--bleu); border-bottom-color: var(--bleu); }

/* ============================================================
   CALENDRIER MENSUEL — style Google Agenda
   ============================================================ */
.cal-header-label {
  font-family: var(--font-display);
  font-size: 1.6rem;
  color: var(--txt-primary);
  margin-bottom: 1rem;
  line-height: 1;
}
.cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.cal-head {
  background: var(--bg-elevated);
  color: var(--txt-muted);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
  padding: 0.6rem 0.25rem;
}
.cal-cell {
  background: var(--bg-surface);
  min-height: 90px;
  padding: 0.4rem;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.cal-cell--empty { background: var(--bg-base); opacity: 0.4; }
.cal-cell--today { background: rgba(37,99,180,0.06); }
.cal-day-num {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--txt-muted);
  line-height: 1;
  margin-bottom: 3px;
  width: 22px; height: 22px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  flex-shrink: 0;
}
.cal-day-num--today {
  background: var(--bleu);
  color: #fff;
}
.cal-event {
  display: flex;
  align-items: baseline;
  gap: 3px;
  background: rgba(37,99,180,0.12);
  border-left: 2px solid var(--bleu);
  border-radius: 3px;
  padding: 2px 4px;
  text-decoration: none;
  overflow: hidden;
  transition: background .15s;
  min-width: 0;
}
.cal-event:hover { background: rgba(37,99,180,0.22); }
.cal-event-time {
  font-size: 0.6rem;
  font-weight: 700;
  color: var(--bleu-clair);
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}
.cal-event-title {
  font-size: 0.62rem;
  font-weight: 600;
  color: var(--txt-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cal-more {
  font-size: 0.6rem;
  color: var(--txt-muted);
  padding: 1px 4px;
}

@media (max-width: 700px) {
  .cal-cell { min-height: 56px; padding: 0.25rem; }
  .cal-event-time { display: none; }
  .cal-event-title { font-size: 0.55rem; }
  .cal-head { font-size: 0.6rem; padding: 0.4rem 0; }
}

/* Indicateur ×N dans le calendrier mensuel */
.cal-event-occ {
  font-size: 0.58rem;
  font-weight: 800;
  color: var(--bleu-clair);
  flex-shrink: 0;
  margin-left: auto;
  padding-left: 2px;
}

/* ── Historique groupé par heure ── */
.hist-hour-group { }
.hist-hour-label {
  font-size: 0.65rem; font-weight: 800; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--bleu-clair);
  padding: 0.5rem 1rem 0.25rem;
  border-top: 1px solid var(--border);
  background: rgba(37,99,180,0.04);
}
.hist-hour-group:first-child .hist-hour-label { border-top: none; }


/* ── Navigation calendrier mensuel ── */
.cal-nav {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.cal-nav-btn {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  color: var(--txt-secondary);
  border-radius: var(--radius-sm);
  padding: 0.3rem 0.75rem;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: border-color .2s, color .2s;
  font-family: var(--font-body);
}
.cal-nav-btn:hover { border-color: var(--bleu); color: var(--bleu); }
.cal-nav-label {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--txt-primary);
  line-height: 1;
  flex: 1;
}
.cal-nav-today {
  font-size: 0.72rem; font-weight: 700;
  background: var(--bleu); color: #fff;
  border: none; border-radius: 2px;
  padding: 0.25rem 0.6rem; cursor: pointer;
  font-family: var(--font-body);
}

/* ── Calendrier plus compact ── */
.cal-head { padding: 0.45rem 0.25rem; font-size: 0.65rem; }
.cal-cell { min-height: 80px; padding: 0.3rem; }
.cal-day-num { font-size: 0.72rem; width: 20px; height: 20px; }
.cal-event { padding: 2px 3px; margin-bottom: 1px; }
.cal-event-time { font-size: 0.58rem; }
.cal-event-title { font-size: 0.6rem; }

@media (max-width: 700px) {
  .cal-cell { min-height: 50px; }
}



/* ── Espace sous le footer ── */
.site-footer {
  margin-bottom: 0 !important;
  padding-bottom: 1.5rem;
}
html { margin-bottom: 0 !important; }
body { margin-bottom: 0 !important; padding-bottom: 0 !important; }
/* The FAB button is position:fixed — ne contribue pas à la hauteur */

/* ── Nav shrink au scroll ── */
.site-nav.is-scrolled{padding:0.35rem 2rem;box-shadow:0 2px 20px rgba(0,0,0,.15);}
.site-nav.is-scrolled .site-logo{height:36px !important;}
.site-nav.is-scrolled .nav-menu li a{font-size:0.78rem;padding:0.2rem 0.55rem;}
.site-nav.is-scrolled .nav-menu{gap:0;}
@media(max-width:768px){.site-nav.is-scrolled{padding:0.35rem 1rem;}}

/* ── Barre de recherche hero ── */
.hero-search input:focus {
  border-color: rgba(37,99,180,0.6) !important;
  background: rgba(255,255,255,0.12) !important;
  box-shadow: 0 0 0 3px rgba(37,99,180,0.2) !important;
}
.hero-search input::placeholder { color: var(--txt-muted); opacity: 0.7; }
.hero--home .hero-search { margin: 0 auto 1.5rem; }

/* ── Résultats de recherche hero ── */
.search-result-row {
  display: flex; align-items: center; gap: 0.75rem;
  padding: 0.55rem 1rem;
  text-decoration: none;
  border-bottom: 1px solid var(--border);
  transition: background .12s;
}
.search-result-row:hover { background: rgba(37,99,180,0.06); }
