:root { --brand:#007a52; --brand-2:#005c3d; --jade:#00a86b; --gold:#fcd116; --bg:#f0fdf6; --ink:#0b0f0e; }
body { background:var(--bg); color:var(--ink); font-family:Georgia,"Times New Roman",serif; line-height:1.6; }
h1,h2,h3,h4,.brand,.btn,.navbar,.topbar,.footer,.kicker,.small { font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
a { color:var(--brand); } a:hover { color:var(--brand-2); }
.topbar { background:var(--brand); color:#fff; } .topbar a { color:#fff; margin-left:.6rem; }
.brand { font-size:2rem; font-weight:800; text-decoration:none; color:var(--brand); letter-spacing:-.5px; }
.brand .tagline { font-size:.75rem; font-weight:400; color:#555; letter-spacing:0; }
.btn-brand { background:var(--brand); color:#fff; border:0; } .btn-brand:hover { background:var(--brand-2); color:#fff; }
.catnav { background:#fff; border-top:1px solid #e5e7eb; } .catnav .nav-link { font-weight:600; color:var(--ink); }
.catnav .nav-link:hover, .catnav .nav-link:focus { color:var(--brand-2); }
.kicker { color:var(--brand); font-weight:700; letter-spacing:.04em; }
.section-title { border-bottom:2px solid var(--brand-2); padding-bottom:.4rem; margin-bottom:1rem; }
.article-card { transition:transform .15s ease, box-shadow .15s ease; border:0; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.article-card:hover { transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,.12); }
.article-card .card-img-top { aspect-ratio:16/9; object-fit:cover; }
.hero h1 a { text-decoration:none; color:var(--ink); }
.article-body { font-size:1.15rem; } .article-body img { max-width:100%; height:auto; }
.article-body blockquote { background:#f1f7f4; border-radius:10px; padding:.9rem 1.1rem; color:#333; font-style:italic; margin:1rem 0; }
.most-read { padding-left:1.2rem; } .most-read li { margin-bottom:.6rem; }
.ad-slot { width:100%; box-sizing:border-box; background:transparent; border:0; padding:0; text-align:center; clear:both; overflow:hidden; border-radius:8px; }
.ad-slot.has-creatives { position:relative; display:block; }
.ad-slot.has-creatives .ad-slide { position:absolute; inset:0; width:100%; height:100%; }
.ad-slot.has-creatives .ad-slide > a { position:absolute; inset:0; display:block; width:100%; height:100%; }
.ad-slot.has-creatives .ad-slide[hidden] { display:none !important; }
.ad-label { font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:#64748b; margin:0 0 .25rem; }
.ad-placeholder { padding:1rem 0; }
.footer { background:#0f172a; color:#cbd5e1; } .footer a { color:#fff; }
a:focus-visible, button:focus-visible, input:focus-visible { outline:3px solid #f59e0b; outline-offset:2px; }
@media (prefers-reduced-motion:reduce) { .article-card { transition:none; } }
.consent-banner { position:fixed; bottom:0; left:0; right:0; z-index:1080; background:#fff; border-top:3px solid var(--brand); padding:.75rem 1rem; box-shadow:0 -2px 10px rgba(0,0,0,.15); }
.consent-banner[hidden] { display:none; }

/* --- Direction éditoriale : une pleine largeur, sections numérotées, cartes numérotées (inspiration générale) --- */
.masthead { margin-bottom:2.5rem; }
.masthead-date { font-family:system-ui,sans-serif; text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; color:#64748b; margin:0 0 .5rem; }
.masthead-title { font-size:clamp(2rem,5vw,3.4rem); line-height:1.1; letter-spacing:-.02em; margin:0 0 .75rem; }
.masthead-title a { color:var(--ink); text-decoration:none; } .masthead-title a:hover { color:var(--brand-2); }
.masthead-lead { font-size:1.2rem; max-width:48rem; color:#374151; }
.masthead-figure { margin:1.25rem 0 .75rem; } .masthead-figure img { width:100%; max-height:520px; object-fit:cover; display:block; }
.masthead-figure figcaption { font-family:system-ui,sans-serif; font-size:.8rem; color:#64748b; padding-top:.4rem; }
.sec-label { font-family:system-ui,sans-serif; font-size:1.05rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; border-top:2px solid var(--ink); padding-top:.6rem; margin-bottom:1.25rem; }
.sec-label span { color:var(--brand); margin-right:.35rem; }
.card-media { position:relative; display:block; }
.card-num { position:absolute; top:.5rem; left:.5rem; background:var(--brand); color:#fff; font-family:system-ui,sans-serif; font-size:.75rem; font-weight:700; padding:.15rem .5rem; letter-spacing:.06em; }
.card-num-flat { position:static; display:inline-block; margin:.75rem 0 0 1rem; }
.cta-band { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; background:var(--brand); color:#fff; padding:1.75rem 2rem; margin-top:3rem; }
.cta-band h2, .cta-band p { font-family:system-ui,sans-serif; }
.beat-col { border-top:1px solid #cbd5e1; padding-top:.75rem; }
.beat-num { font-family:system-ui,sans-serif; font-size:2rem; font-weight:800; color:#cbd5e1; margin:0; line-height:1; }
.beat-item { padding:.6rem 0; border-bottom:1px solid #e5e7eb; } .beat-item a { text-decoration:none; font-weight:600; color:var(--ink); }
.beat-item a:hover { color:var(--brand-2); }

/* Titre de page commun à tout le site (même traitement que le titre d'accueil) */
.page-title { font-size:clamp(1.8rem,4vw,2.6rem); line-height:1.15; letter-spacing:-.02em; border-top:2px solid var(--ink); padding-top:.7rem; margin-bottom:1.25rem; }

/* --- Identité Jadinfo241 : jade et noir, touche d'or du drapeau --- */
.topbar { background:#000; color:#d9efe6; border-bottom:0; } .topbar a { color:#fff; }
.site-header { background:#000; border-bottom:3px solid var(--brand); }
.logo-link { display:block; line-height:0; } .logo-link img { height:84px; width:auto; }
.tagline-top { color:#cfe8dd; font-family:Georgia,serif; font-style:italic; font-size:1.05rem; }
.catnav { background:#0b0f0e; border-top:1px solid #1d2a25; }
.catnav .nav-link { color:#e8f3ee; } .catnav .nav-link:hover, .catnav .nav-link:focus { color:var(--gold); }
.catnav .navbar-toggler { border-color:#3b4a44; } .catnav .navbar-toggler-icon { filter:invert(1); }
.btn-gold { background:var(--gold); color:#111; border:0; font-weight:700; } .btn-gold:hover { background:#e6bd00; color:#000; }
.cta-band { background:linear-gradient(135deg,#031f17,#0a6e4e); }
.footer { background:#050807; color:#cfe8dd; border-top:3px solid var(--brand); }
.masthead-title a:hover, .beat-item a:hover { color:var(--brand); }
.page-title, .sec-label { border-top-color:var(--ink); }
.perk-list { list-style:none; padding:0; margin:0 0 1rem; }
.perk-list li { display:flex; gap:.9rem; padding:.8rem 0; border-bottom:1px solid #dbe7e1; }
.perk-list i { font-size:1.4rem; color:var(--brand); } .perk-list span { display:block; font-size:.92rem; color:#44504b; }
.perk-box { background:#fff; border:1px solid #e6d9a3; border-radius:10px; padding:.75rem 1rem; margin:.75rem 0; }
.perk-form { background:#fff; padding:1.5rem; border-top:4px solid var(--brand); box-shadow:0 1px 4px rgba(0,0,0,.1); }
.notif-list { list-style:none; padding:0; } .notif-list li { padding:.75rem 1rem; background:#fff; border:1px solid #dbe5e0; border-radius:10px; margin-bottom:.5rem; }
.notif-list li.is-new { border-color:var(--jade); background:#effaf5; }

/* --- Photos et vidéos --- */
.sec-label .more { float:right; font-size:.8rem; text-transform:none; letter-spacing:0; font-weight:600; }
.vid-card { position:relative; display:block; aspect-ratio:16/9; overflow:hidden; background:#000; border-radius:.35rem; text-decoration:none; }
.vid-card img, .vid-ph { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; opacity:.9; } .vid-card:hover img { transform:scale(1.05); }
.vid-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:3rem; height:3rem; border-radius:50%; background:rgba(0,168,107,.92); color:#fff; display:grid; place-items:center; font-size:1.6rem; }
.vid-title { position:absolute; left:0; right:0; bottom:0; padding:1.5rem .75rem .6rem; color:#fff; font:600 .85rem system-ui,sans-serif; background:linear-gradient(transparent,rgba(0,0,0,.85)); }
.media-card { background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.1); border-top:3px solid var(--brand); height:100%; } .media-card video { background:#000; display:block; }
.photo-strip { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); grid-auto-rows:120px; gap:.5rem; }
.photo-tile { overflow:hidden; display:block; border-radius:.3rem; } .photo-tile img { width:100%; height:100%; object-fit:cover; transition:transform .3s; } .photo-tile:hover img { transform:scale(1.07); }
.photo-tile-lg { grid-column:span 2; grid-row:span 2; }
.gal-card { position:relative; display:block; aspect-ratio:3/2; overflow:hidden; border-radius:.35rem; background:#000; text-decoration:none; }
.gal-card img { width:100%; height:100%; object-fit:cover; transition:transform .3s; } .gal-card:hover img { transform:scale(1.05); }
.gal-title { position:absolute; left:0; right:0; bottom:0; padding:1.5rem .8rem .6rem; color:#fff; font:700 .95rem system-ui,sans-serif; background:linear-gradient(transparent,rgba(0,0,0,.85)); }
.gal-title small { display:block; font-weight:400; opacity:.85; }
.masonry { columns:3 260px; column-gap:.75rem; } .masonry-item { break-inside:avoid; margin:0 0 .75rem; } .masonry-item img { width:100%; display:block; border-radius:.3rem; transition:filter .2s; } .masonry-item a:hover img { filter:brightness(1.1); }
.lb { position:fixed; inset:0; z-index:1090; background:rgba(0,0,0,.93); display:flex; align-items:center; justify-content:center; } .lb[hidden] { display:none; }
.lb figure { margin:0; max-width:88vw; text-align:center; } .lb img { max-width:88vw; max-height:80vh; } .lb figcaption { color:#d9efe6; font:.9rem system-ui,sans-serif; padding-top:.6rem; }
.lb button { position:absolute; background:none; border:0; color:#fff; font-size:2.6rem; line-height:1; cursor:pointer; padding:.5rem 1rem; } .lb-x { top:.5rem; right:.8rem; } .lb-prev { left:.5rem; top:45%; } .lb-next { right:.5rem; top:45%; }

/* --- Pages de connexion / inscription --- */
.auth-shell { display:grid; grid-template-columns:5fr 6fr; max-width:980px; margin:1rem auto 2rem; background:#fff; border-radius:.8rem; overflow:hidden; box-shadow:0 12px 40px rgba(0,40,28,.18); }
.auth-shell.auth-wide { grid-template-columns:6fr 5fr; max-width:1080px; } .auth-shell.auth-single { grid-template-columns:1fr; max-width:480px; }
.auth-aside { background:radial-gradient(circle at 20% 0%,var(--brand) 0,color-mix(in srgb,var(--brand-2) 35%,#000) 55%,#000 100%); color:#e8f3ee; padding:2rem; display:flex; flex-direction:column; gap:.75rem; }
.auth-logo img { border-radius:50%; display:block; box-shadow:0 0 0 3px rgba(0,168,107,.5); } .auth-logo-sm img { border-radius:50%; margin-bottom:.8rem; background:#000; }
.auth-tag { font:italic 1.1rem Georgia,serif; color:#cfe8dd; margin:0 0 .5rem; } .auth-h2 { font:700 .8rem system-ui,sans-serif; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin:.75rem 0 0; }
.auth-points { list-style:none; padding:0; margin:auto 0 0; font:.95rem system-ui,sans-serif; } .auth-points li { padding:.35rem 0; } .auth-points i { color:var(--jade); margin-right:.5rem; }
.auth-aside .perk-list li { border-bottom-color:rgba(255,255,255,.12); padding:.6rem 0; } .auth-aside .perk-list i { color:var(--jade); } .auth-aside .perk-list span { color:#b7d3c6; }
.auth-aside .perk-box { background:rgba(255,255,255,.08); color:#fff; border-color:var(--gold); } .auth-aside a { color:var(--gold); }
.auth-card { padding:2.2rem 2.4rem; } .auth-title { font:800 1.9rem system-ui,sans-serif; margin:0; } .auth-sub { color:#5b6b64; font-family:system-ui,sans-serif; margin:.25rem 0 1.4rem; }
.auth-card .form-label { font:600 .85rem system-ui,sans-serif; }
.auth-card input[type=text], .auth-card input[type=email], .auth-card input[type=password], .auth-card input[type=url], .auth-card select, .auth-card textarea {
  width:100%; padding:.65rem .85rem; border:1.5px solid #cbd9d2; border-radius:.45rem; background:#f8fbf9; font:1rem system-ui,sans-serif; }
.auth-card input:focus { outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(0,168,107,.25); background:#fff; }
.auth-card .form-text, .auth-card .helptext { color:#5b6b64; font-size:.8rem; } .auth-card .form-text ul { padding-left:1.1rem; margin:.3rem 0 0; }
@media (max-width:820px) { .auth-shell, .auth-shell.auth-wide { grid-template-columns:1fr; } .auth-aside { padding:1.4rem; } .auth-card { padding:1.5rem; } }


/* Publicités : visuels (image ou vidéo) */
.ad-media { display:block; width:100%; height:auto; max-height:70vh; object-fit:contain; border-radius:8px; }
.ad-slot.has-creatives .ad-media { position:absolute; inset:0; display:block; width:100%; height:100%; max-width:none; max-height:none; object-fit:cover; border-radius:0; }
.ad-title { display:block; margin-top:.35rem; }
/* Case fixe : reste à l'écran quand on descend, dans la colonne de droite (ne recouvre jamais le texte) */
@media (min-width:992px) {
  aside.ad-sticky.ad-sidebar, .ad-slot[data-slot=sidebar] { position:sticky; top:88px; max-height:calc(100vh - 110px); overflow:hidden; z-index:5; }
}
/* Bandeau fixe du bas : téléphone et tablette uniquement */
.ad-slot[data-slot=sticky_bottom] { background:#fff; position:fixed; left:0; right:0; bottom:0; margin:0 !important; max-width:none !important; z-index:1030; border:0; border-top:2px solid var(--jade); box-shadow:0 -4px 16px rgba(0,0,0,.18); padding:.35rem 2.2rem .35rem .5rem; display:none; }
.ad-slot[data-slot=sticky_bottom] .ad-media { max-height:64px; width:auto; margin:0 auto; }
.ad-slot[data-slot=sticky_bottom].has-creatives { aspect-ratio:auto !important; }
.ad-slot[data-slot=sticky_bottom].has-creatives { height:70px; }
.ad-slot[data-slot=sticky_bottom].has-creatives .ad-slide,
.ad-slot[data-slot=sticky_bottom].has-creatives .ad-slide > a { height:100%; }
.ad-slot[data-slot=sticky_bottom].has-creatives .ad-media { width:100%; height:100%; max-width:none; max-height:none; object-fit:cover; }
.ad-slot[data-slot=sticky_bottom] .ad-label { position:absolute; left:.5rem; top:.1rem; margin:0; font-size:.6rem; }
.ad-close { position:absolute; right:.4rem; top:.2rem; width:2rem; height:2rem; border:0; background:#eef3f0; border-radius:50%; font-size:1.25rem; line-height:1; cursor:pointer; color:#0b2e24; }
@media (max-width:991.98px) { .ad-slot[data-slot=sticky_bottom] { display:block; } body.has-adbar { padding-bottom:84px; } .ad-slot[data-slot=sidebar] { position:static; } }

/* Calendrier des événements */
.cal{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:16px}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal-nav{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#f1f3f5;color:#222!important;text-decoration:none}
.cal-nav:hover{background:#e2e6ea}
.cal-grid{width:100%;table-layout:fixed;text-align:center}
.cal-grid th{font-size:.75rem;color:#6b7280;font-weight:600;padding:4px 0}
.cal-grid td{padding:2px}
.cal-day{display:flex;position:relative;align-items:center;justify-content:center;height:40px;border-radius:10px;color:#374151;text-decoration:none}
.cal-day.today{outline:2px solid #cbd5e1}
.cal-day.has{background:#eef2ff;color:#1e3a8a!important;font-weight:700;cursor:pointer}
.cal-day.has:hover,.cal-day.sel{background:#1e3a8a;color:#fff!important}
.cal-day.has i{position:absolute;bottom:4px;width:5px;height:5px;border-radius:50%;background:currentColor}
.cal-dot{font-size:.5rem;color:#1e3a8a;vertical-align:middle}
.ev-card{display:flex;gap:14px;align-items:center;padding:12px;margin-bottom:10px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;color:inherit!important;text-decoration:none}
.ev-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.08);transform:translateY(-1px)}
.ev-card img{width:84px;height:64px;object-fit:cover;border-radius:8px;flex:none}
.ev-date{width:64px;height:64px;flex:none;border-radius:10px;background:#1e3a8a;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.75rem;text-transform:uppercase}
.ev-date b{font-size:1.4rem;line-height:1}
.ev-body{display:flex;flex-direction:column;min-width:0}
.ev-body small{color:#6b7280}

/* ===== Images bien cadrées (rien n'est coupé) et fluides ===== */
.hero-figure { margin:1.25rem 0 .75rem; }
.hero-frame { position:relative; display:block; border-radius:12px; overflow:hidden; background:#0b0f0e; isolation:isolate; }
.hero-frame::before { content:""; position:absolute; inset:-20px; background:var(--hero) center/cover no-repeat; filter:blur(26px) brightness(.55); transform:scale(1.1); z-index:-1; }
.hero-frame img { display:block; margin:0 auto; width:auto; max-width:100%; height:auto; max-height:min(78vh,720px); object-fit:contain; }
.hero-figure figcaption { padding:.5rem .25rem 0; font-size:.8rem; color:#64748b; }
.article-card .card-img-top { object-position:center 22%; background:#e5ece8; }  /* garde les visages dans le cadre */
.photo-tile img, .vid-card img { object-position:center 22%; }

/* Pages légales */
.legal-body h2 { color:var(--brand-2); font-family:system-ui,sans-serif; font-weight:800; margin-top:1.8rem; }
.legal-body p, .legal-body li { line-height:1.7; } .legal-body ul { padding-left:1.2rem; } .legal-body code { background:#eaf3ee; padding:.05rem .35rem; border-radius:5px; font-size:.88em; }

/* Menu « Autres » + page des rubriques */
.catnav .dropdown-menu { border:0; box-shadow:0 12px 30px rgba(0,40,28,.18); border-radius:12px; padding:.5rem; min-width:260px; max-height:70vh; overflow:auto; }
.catnav .dropdown-item { border-radius:8px; padding:.5rem .8rem; font-family:system-ui,sans-serif; font-weight:500; } .catnav .dropdown-item:active, .catnav .dropdown-item:hover { background:var(--brand); color:#fff; }
.cat-card { display:block; height:100%; background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:1.1rem 1.2rem; text-decoration:none; color:inherit; transition:transform .12s, box-shadow .12s; }
.cat-card:hover { transform:translateY(-2px); box-shadow:0 8px 22px rgba(0,40,28,.12); color:inherit; }
.cat-card h2 { font-size:1.15rem; margin:0 0 .3rem; color:var(--brand-2); } .cat-card p { margin:0; color:#475569; font-size:.92rem; } .cat-card small { color:var(--brand); font-weight:700; }

/* Page contact */
.contact-wrap { display:grid; grid-template-columns:5fr 7fr; gap:0; background:#fff; border-radius:18px; overflow:hidden; box-shadow:0 14px 40px rgba(0,40,28,.14); max-width:1000px; margin:0 auto; }
.contact-info { background:radial-gradient(circle at 20% 0%,var(--brand) 0,color-mix(in srgb,var(--brand-2) 35%,#000) 70%,#000 100%); color:#e8f3ee; padding:2rem; display:flex; flex-direction:column; gap:1.1rem; }
.contact-info h2 { font:800 1.5rem system-ui,sans-serif; color:#fff; margin:0; } .contact-info p { margin:0; color:#cfe8dd; }
.ci-item { display:flex; gap:.8rem; align-items:flex-start; font-family:system-ui,sans-serif; } .ci-item i { width:38px; height:38px; flex:0 0 38px; display:grid; place-items:center; border-radius:10px; background:rgba(255,255,255,.12); color:var(--gold); font-size:1.05rem; }
.ci-item b { display:block; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold); } .ci-item span, .ci-item a { color:#fff; word-break:break-word; }
.ci-social { display:flex; gap:.5rem; margin-top:auto; } .ci-social a { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.14); color:#fff; text-decoration:none; } .ci-social a:hover { background:var(--gold); color:#111; }
.contact-form { padding:2rem; } .contact-form h1 { font:800 1.6rem system-ui,sans-serif; margin:0 0 .3rem; } .contact-form .lead-s { color:#64748b; margin-bottom:1.2rem; font-family:system-ui,sans-serif; font-size:.95rem; }
.contact-form .form-control { border-radius:10px; padding:.7rem .9rem; border:1.5px solid #cfdcd5; background:#f8fbf9; } .contact-form .form-control:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(0,168,107,.2); background:#fff; }
.contact-form label { font:700 .85rem system-ui,sans-serif; margin-bottom:.3rem; } .contact-form .btn-brand { padding:.75rem 1.6rem; border-radius:10px; font-weight:700; }
@media (max-width:800px) { .contact-wrap { grid-template-columns:1fr; } .contact-info, .contact-form { padding:1.4rem; } }

.ad-empty { border:2px dashed #9bb8ac; border-radius:8px; padding:.8rem; font:.78rem system-ui,sans-serif; color:#5b6f66; background:#f6faf8; }
.ad-slot:has(.ad-empty) { overflow:hidden; }
.ad-empty.ad-rent { box-sizing:border-box; width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.15rem; text-align:center; padding:.4rem .8rem; text-decoration:none; overflow:hidden; line-height:1.25; }
.ad-empty.ad-rent strong { font-size:.95rem; color:#0b3a2f; } .ad-empty.ad-rent:hover { background:#eaf5f0; border-color:#00a86b; }
.ad-empty .ad-debug { display:block; margin-top:.25rem; font-size:.62rem; color:#9a3412; }
/* Pubs : la case garde exactement sa taille ; l'image la remplit, sans déborder */
.ad-slot.has-creatives .ad-media { object-fit:fill; }
/* Cloche des notifications */
.bell-link { position:relative; } .bell-link .bell-badge { position:absolute; top:-7px; right:-7px; min-width:18px; height:18px; padding:0 4px; border-radius:9px; background:#ef4444; color:#fff; font:700 .68rem/18px system-ui,sans-serif; text-align:center; box-shadow:0 0 0 2px var(--c-nav,#0a2a22); }
.bell-link .bell-dot { position:absolute; top:-3px; right:-3px; width:10px; height:10px; border-radius:50%; background:#ef4444; box-shadow:0 0 0 2px var(--c-nav,#0a2a22); }

/* ===== En-tête vert : barre du haut sombre + date, en-tête dégradé, menu vert avec soulignement doré ===== */
.topbar { background:#022c22; color:#a9dcc6; }
.topbar .container { align-items:center; gap:.75rem; }
.topbar-date { display:inline-flex; align-items:center; gap:.5rem; text-transform:none; font-size:.82rem; color:#a9dcc6; }
.topbar-dot { width:8px; height:8px; border-radius:50%; background:#22c58b; display:inline-block; box-shadow:0 0 0 3px rgba(34,197,139,.22); }
.topbar a { color:#d9efe6; }
.site-header { background:linear-gradient(100deg,#063c2c 0%,#0b503d 55%,#085640 100%); border-bottom:0; }
.logo-link img { height:76px; width:auto; max-width:100%; object-fit:contain; background:none; }
.site-header .btn-outline-light { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-radius:12px; color:#fff; }
.site-header .btn-outline-light:hover { background:rgba(255,255,255,.18); color:#fff; }
.site-header .badge.text-bg-warning { background:#e7c25f !important; color:#2b2200 !important; }
.catnav { background:#075f47; border-top:1px solid rgba(255,255,255,.1); box-shadow:0 8px 18px rgba(0,40,28,.22); }
.catnav .nav-link { color:#fff; font-weight:600; padding:.85rem .95rem; border-bottom:3px solid transparent; }
.catnav .nav-link:hover, .catnav .nav-link:focus { color:#fff; border-bottom-color:rgba(252,209,22,.55); }
.catnav .nav-link.active, .catnav .nav-link[aria-current] { color:#fcd116; border-bottom-color:#fcd116; }
.catnav .navbar-toggler { border-color:rgba(255,255,255,.35); } .catnav .navbar-toggler-icon { filter:invert(1); }
@media (max-width:991.98px) { .catnav .navbar-nav { padding:.25rem 0; } .topbar-date { font-size:.78rem; } }

/* ===== En-tête : même rendu sur téléphone (logo + recherche + compte, rubriques qui défilent) ===== */
.header-row { flex-wrap:wrap; } @media (max-width:991.98px) { .header-row { flex-wrap:nowrap; } .header-row .ms-auto { flex-wrap:nowrap !important; } }
.site-header .btn-outline-light { position:relative; }
.site-header .btn-gold { border-radius:12px; }
@media (max-width:991.98px) {
  .logo-link img { height:56px; }
  .catnav .navbar-toggler { display:none; }
  .catnav .navbar-collapse, .catnav .navbar-collapse:not(.show) { display:block !important; }
  .catnav .navbar-nav { flex-direction:row; overflow-x:auto; white-space:nowrap; scrollbar-width:none; gap:.25rem; }
  .catnav .navbar-nav::-webkit-scrollbar { display:none; }
  .catnav .nav-link { padding:.8rem .8rem; }
}
@media (max-width:575.98px) { .header-row { gap:.5rem !important; } .site-header .btn-sm { padding:.35rem .6rem; font-size:.8rem; } }

/* ===== Pubs : la case a une taille fixe (largeur x hauteur de la case) ; le visuel la remplit exactement ===== */
.ad-slot.has-creatives { display:grid !important; position:relative; overflow:hidden; }
.ad-slot.has-creatives .ad-slide { position:static !important; inset:auto !important; grid-area:1 / 1; width:100%; height:100%; min-width:0; min-height:0; }
.ad-slot.has-creatives .ad-slide[hidden] { display:none !important; }
.ad-slot.has-creatives .ad-slide > a { position:static !important; display:block; width:100%; height:100%; }
.ad-slot.has-creatives .ad-media { position:static !important; display:block !important; width:100% !important; height:100% !important; max-width:none !important; max-height:none !important; object-fit:fill !important; border-radius:0 !important; opacity:1 !important; visibility:visible !important; }
.ad-slot[data-slot=sticky_bottom].has-creatives .ad-media { object-fit:cover !important; }

/* Message de saison : défile dans la barre du haut */
.topbar-ticker { flex:1 1 auto; min-width:0; overflow:hidden; margin:0 1rem; white-space:nowrap; -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.topbar-ticker-track { display:inline-flex; animation:jad-ticker 22s linear infinite; will-change:transform; }
.topbar-ticker-track strong { flex:none; min-width:60vw; box-sizing:border-box; padding-right:4rem; }
.topbar-ticker:hover .topbar-ticker-track { animation-play-state:paused; }
@keyframes jad-ticker { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce) { .topbar-ticker-track { animation:none; } .topbar-ticker-track strong:nth-child(2) { display:none; } }
.topbar-date { white-space:nowrap; flex:none; }
.topbar .container { flex-wrap:nowrap; }


/* Fix mobile uniquement : le menu défile dans son cadre au lieu d'élargir la page */
@media (max-width:991.98px) {
  .catnav, .catnav > .container { min-width:0; }
  .catnav .navbar-collapse { min-width:0; max-width:100%; }
  .catnav .navbar-nav { min-width:0; max-width:100%; -webkit-overflow-scrolling:touch; }
  html, body { overflow-x:clip; }
}
