/* ===== Grand Prix des Meilleurs Maires du Sénégal — styles publics ===== */
:root{
  --bg:#08090b; --bg2:#0a0c11; --panel:#12141d; --panel2:#151722; --line:#262a38;
  --gold:#d4af37; --gold-l:#ffd700; --txt:#f4efe6; --muted:#a3a3a3; --muted2:#d4d4d4;
  --font-title:'Cinzel',Georgia,serif; --font-body:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:var(--font-body);background:var(--bg);color:var(--txt);line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body::selection,::selection{background:rgba(212,175,55,.3);color:var(--gold-l)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-title);color:#fff;line-height:1.2}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:inherit}
[hidden]{display:none!important}
.container{max-width:1280px;margin:0 auto;padding:0 24px}
.container.narrow{max-width:1000px}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em}
.small{font-size:12px}.muted{color:var(--muted)}
.center{text-align:center}
.gold-text{background:linear-gradient(135deg,#fff2cc 0%,#d4af37 40%,#aa7c11 75%,#f7df94 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.gold-text-flat{color:var(--gold-l)}
.gold-sub{color:var(--gold);font-weight:500}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0d0f14}
::-webkit-scrollbar-thumb{background:#2a251b;border-radius:4px;border:1px solid rgba(212,175,55,.2)}
::-webkit-scrollbar-thumb:hover{background:var(--gold)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:6px;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;transition:.25s;white-space:nowrap}
.btn-gold{background:var(--gold);color:#08090b;box-shadow:0 0 18px rgba(212,175,55,.3)}
.btn-gold:hover{background:var(--gold-l)}
.btn-outline{background:#141722;color:var(--gold-l);border:1px solid rgba(212,175,55,.4)}
.btn-outline:hover{background:rgba(212,175,55,.1)}
.btn-ghost{color:var(--gold);border:1px solid rgba(212,175,55,.3);background:#131620}
.btn-ghost:hover{color:var(--gold-l);background:rgba(212,175,55,.1)}
.btn-sm{padding:8px 14px;font-size:11px}
.btn-block{width:100%}
.link-btn{font-size:12px;color:var(--muted2);font-weight:500}.link-btn:hover{color:#fff}
.icon-btn{width:38px;height:38px;border-radius:8px;background:#141622;border:1px solid rgba(212,175,55,.3);color:var(--gold-l);font-size:18px;transition:.2s}
.icon-btn:hover{border-color:var(--gold);color:#fff}

/* Navbar */
.navbar{position:sticky;top:0;z-index:40;background:rgba(8,9,11,.92);backdrop-filter:blur(10px);border-bottom:1px solid rgba(212,175,55,.2)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:80px;gap:24px}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand-logo{width:40px;height:40px;border-radius:50%;border:1px solid rgba(212,175,55,.45);background:#15171e;color:var(--gold-l);display:flex;align-items:center;justify-content:center;box-shadow:0 0 15px rgba(212,175,55,.2)}
.brand-text{display:flex;flex-direction:column}
.brand-text strong{font-family:var(--font-title);font-size:17px;letter-spacing:.06em;white-space:nowrap}
.brand-text small{font-size:10px;letter-spacing:.18em;color:rgba(212,175,55,.85);text-transform:uppercase}
.brand:hover strong{color:var(--gold-l)}
.nav-links{display:flex;gap:24px;font-size:14px;font-weight:500;color:#d4d4d4}
.nav-links a{white-space:nowrap}
.nav-links a:hover{color:var(--gold-l)}
.nav-mobile-only{display:none}
.nav-actions{display:flex;gap:10px;align-items:center}
.burger{display:none;font-size:24px;color:#d4d4d4;padding:4px 8px}

/* Hero */
.hero{position:relative;padding:48px 0 64px;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.38) contrast(1.1)}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#08090b 0%,rgba(8,9,11,.8) 50%,rgba(8,9,11,.4) 100%)}
.hero .container{position:relative;z-index:1}
.hero-grid{display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:center;min-height:80vh}
.hero-main{display:flex;flex-direction:column;gap:24px}
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--gold-l)}
.kicker .line{width:32px;height:1px;background:var(--gold)}
.hero h1{font-size:clamp(30px,5vw,60px);font-weight:800;letter-spacing:.03em;line-height:1.12;color:#fdfbf7}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.18em;font-weight:600;color:rgba(212,175,55,.95)}
.theme-card{padding:20px;border-radius:10px;background:rgba(20,23,32,.9);border:1px solid rgba(212,175,55,.3);box-shadow:0 4px 25px rgba(0,0,0,.5)}
.theme-title{font-family:var(--font-title);font-size:clamp(18px,2.4vw,24px);font-weight:700;margin:4px 0 8px}
.theme-card p{font-size:13px;color:var(--muted2)}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fact{display:flex;align-items:center;gap:12px;padding:12px;border-radius:6px;background:rgba(15,17,24,.8);border:1px solid #262626}
.fact-ico{font-size:20px}.fact small{display:block;font-size:11px;color:#a3a3a3;text-transform:uppercase;letter-spacing:.08em}
.fact b{font-size:14px}
.countdown-wrap .eyebrow{margin-bottom:8px}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:440px}
.countdown div{padding:12px 6px;text-align:center;background:rgba(21,23,34,.9);border:1px solid rgba(212,175,55,.25);border-radius:8px}
.countdown b{display:block;font-family:ui-monospace,Menlo,monospace;font-size:26px;color:var(--gold-l);font-variant-numeric:tabular-nums}
.countdown small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#a3a3a3}
.hero-buttons{display:flex;flex-wrap:wrap;gap:16px;padding-top:6px}
.trophy-frame{padding:4px;border-radius:14px;background:linear-gradient(to bottom,rgba(212,175,55,.5),rgba(212,175,55,.2),transparent);box-shadow:0 20px 50px rgba(0,0,0,.8);max-width:450px;margin:0 auto}
.trophy-inner{border-radius:11px;background:#0d0f15;padding:24px;border:1px solid rgba(212,175,55,.3);display:flex;flex-direction:column;gap:20px}
.trophy-img{position:relative;border-radius:10px;overflow:hidden;border:1px solid rgba(212,175,55,.4);background:#000}
.trophy-img img{width:100%;height:290px;object-fit:cover;transition:transform .5s}
.trophy-img:hover img{transform:scale(1.05)}
.trophy-img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#08090b,rgba(0,0,0,.2),transparent);opacity:.85;pointer-events:none}
.trophy-img .tag{position:absolute;top:12px;left:12px;z-index:2;background:rgba(8,9,11,.85);border:1px solid rgba(212,175,55,.6);padding:4px 10px;border-radius:4px;font-family:var(--font-title);font-size:10px;font-weight:700;color:var(--gold-l);letter-spacing:.06em}
.trophy-cap{position:absolute;bottom:12px;left:12px;right:12px;z-index:2}
.trophy-cap b{display:block;font-family:var(--font-title);font-size:18px}
.trophy-cap small{color:var(--gold-l);font-size:12px;font-weight:500}
.venue{display:flex;gap:16px;align-items:center}
.venue img{width:64px;height:64px;border-radius:8px;object-fit:cover;border:1px solid rgba(212,175,55,.4);flex-shrink:0}
.venue b{font-size:13px}.venue p{font-size:11px;color:#a3a3a3;margin-top:3px}
.infoline{padding:14px;border-radius:6px;background:var(--panel2);border:1px solid rgba(212,175,55,.2)}
.infoline .mono{font-size:12px;color:#e5e5e5;margin-top:4px}
.partners{margin-top:56px;padding-top:32px;border-top:1px solid rgba(212,175,55,.15)}
.partners .eyebrow{margin-bottom:22px;color:#a3a3a3}
.partner-list{display:flex;flex-wrap:wrap;gap:14px 28px;justify-content:center}
.partner{display:flex;align-items:center;gap:10px;padding:8px 16px;border:1px solid rgba(64,64,64,.7);border-radius:8px;background:#0f1118;font-size:12px;font-weight:700;letter-spacing:.06em;transition:.25s}
.partner:hover{border-color:rgba(212,175,55,.5)}
.partner small{font-size:10px;color:#a3a3a3;font-weight:400;letter-spacing:0}
.partner-logo{height:24px;width:auto}

/* Sections */
.section{padding:80px 0;background:var(--bg)}
.section.alt{background:var(--bg2)}
.section-head{margin-bottom:40px;max-width:760px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head.split{max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.section-head h2{font-size:clamp(26px,3.4vw,38px);font-weight:700;margin:8px 0}
.section-head p{font-size:14px;color:var(--muted2)}
.grid{display:grid;gap:24px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr);gap:20px}
.gap-lg{gap:32px}
.empty{padding:48px;text-align:center;border-radius:12px;background:#12141c;border:1px solid #262626;color:#a3a3a3;margin-top:20px}

/* Carousel */
.carousel-section{padding:64px 0;background:linear-gradient(to bottom,#08090b,#0f1118,#08090b)}
.carousel-controls{display:flex;gap:10px;align-items:center}
.counter{padding:6px 12px;border-radius:8px;background:#141622;border:1px solid #262626;font-family:ui-monospace,monospace;font-size:12px;color:var(--muted2)}
.counter b{color:var(--gold-l)}
.carousel-grid{display:grid;grid-template-columns:8fr 4fr;gap:24px;align-items:stretch}
.spotlight{display:flex;gap:28px;align-items:center;padding:28px;border-radius:16px;background:#12141d;border:2px solid rgba(212,175,55,.4);box-shadow:0 10px 35px rgba(0,0,0,.7)}
.spot-photo{position:relative;width:256px;height:320px;border-radius:12px;overflow:hidden;border:1px solid rgba(212,175,55,.5);flex-shrink:0;cursor:pointer;background:#000}
.spot-photo img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .5s}
.spot-photo:hover img{transform:scale(1.05)}
.spot-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.8),transparent 55%);pointer-events:none}
.spot-photo .tag{position:absolute;top:12px;left:12px;z-index:2;background:rgba(8,9,11,.85);border:1px solid rgba(212,175,55,.5);padding:2px 10px;border-radius:4px;font-size:10px;font-weight:700;color:var(--gold-l);text-transform:uppercase;letter-spacing:.06em}
.spot-photo .zoom{position:absolute;bottom:12px;left:12px;z-index:2;font-size:11px;color:var(--gold-l);font-weight:600}
.spot-body{display:flex;flex-direction:column;gap:14px;flex:1}
.spot-loc{font-size:12px;color:var(--gold-l);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.spot-body h3{font-size:clamp(20px,2.4vw,26px)}
.spot-title{font-size:14px;font-weight:500;color:#fde68a}
.cat-pill{align-self:flex-start;font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--gold);background:#1a1d29;padding:6px 12px;border-radius:8px;border:1px solid rgba(212,175,55,.2)}
.spot-quote{font-size:12px;font-style:italic;color:var(--muted2);background:#161822;padding:12px;border-radius:8px;border-left:2px solid var(--gold)}
.spot-bio{font-size:12px;color:var(--muted2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.spot-actions{display:flex;gap:10px;flex-wrap:wrap;padding-top:4px}
.next-col{display:flex;flex-direction:column;gap:16px}
.next-item{display:flex;align-items:center;gap:14px;padding:14px;border-radius:12px;background:#11131c;border:1px solid #262626;cursor:pointer;transition:.25s;margin-bottom:14px;text-align:left;width:100%}
.next-item:hover{border-color:rgba(212,175,55,.6);background:#161824}
.next-item img{width:64px;height:64px;border-radius:8px;object-fit:cover;object-position:top;border:1px solid #404040;flex-shrink:0}
.next-item div{overflow:hidden}
.next-item small{display:block;font-size:10px;text-transform:uppercase;font-weight:600;color:var(--gold-l);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.next-item b{display:block;font-family:var(--font-title);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.next-item span{display:block;font-size:11px;color:#a3a3a3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.total-box{padding:14px;border-radius:12px;background:rgba(20,23,34,.6);border:1px solid #262626;font-size:12px;color:#a3a3a3}
.total-box b{color:#fff}
.dots{display:flex;justify-content:center;gap:6px;margin-top:32px;flex-wrap:wrap}
.dots button{height:8px;width:8px;border-radius:99px;background:#404040;transition:.25s}
.dots button:hover{background:#737373}.dots button.on{width:24px;background:var(--gold-l)}

/* Directory */
.filter-bar{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:16px;border-radius:12px;background:#12141c;border:1px solid rgba(212,175,55,.2);margin-bottom:36px}
.search-box input{width:380px;max-width:100%;padding:9px 14px;font-size:12px;background:#090a0f;border:1px solid #404040;border-radius:8px;color:#fff}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold)}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chips-label{font-size:12px;color:#a3a3a3;font-weight:500;margin-right:4px}
.chip{padding:6px 12px;font-size:12px;border-radius:6px;background:#181a24;color:var(--muted2);transition:.2s;white-space:nowrap;border:1px solid transparent}
.chip:hover{color:#fff;background:#222533}
.chip.active{background:var(--gold);color:#08090b;font-weight:700}
.tabs{margin-bottom:32px;gap:8px}
.tabs .chip{padding:9px 16px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;font-size:11px;border-color:#262626;background:#13151f}
.tabs .chip.active{background:var(--gold);color:#08090b;box-shadow:0 0 15px rgba(212,175,55,.3)}
.mayor-card{display:flex;flex-direction:column;justify-content:space-between;border-radius:12px;background:#11131b;border:1px solid rgba(212,175,55,.25);overflow:hidden;cursor:pointer;transition:.3s}
.mayor-card:hover{border-color:var(--gold);box-shadow:0 10px 30px rgba(212,175,55,.15)}
.mayor-photo{position:relative;height:256px;overflow:hidden;background:#0a0b10}
.mayor-photo img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .5s}
.mayor-card:hover .mayor-photo img{transform:scale(1.05)}
.mayor-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#11131b,rgba(17,19,27,.3),transparent);pointer-events:none}
.pill{position:absolute;top:12px;right:12px;z-index:2;background:rgba(8,9,11,.85);border:1px solid rgba(212,175,55,.5);padding:4px 10px;border-radius:4px;font-size:10px;font-weight:600;color:var(--gold-l);text-transform:uppercase;letter-spacing:.06em}
.loc{position:absolute;bottom:12px;left:16px;right:16px;z-index:2;font-size:12px;color:#e5e5e5;font-weight:500}
.mayor-body{padding:20px;display:flex;flex-direction:column;gap:12px}
.mayor-body h3{font-size:18px}.mayor-card:hover h3{color:var(--gold-l)}
.mayor-body .gold-sub{font-size:12px;margin-top:2px}
.cat{font-size:11px;color:#a3a3a3;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.quote{font-size:12px;font-style:italic;color:var(--muted2)}
.projects small{font-size:11px;color:#a3a3a3;font-weight:600}
.projects ul{list-style:none;margin-top:4px;font-size:12px;color:var(--muted2);display:flex;flex-direction:column;gap:4px}
.projects li{display:flex;gap:6px;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.projects li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);flex-shrink:0}
.card-foot{margin:0 16px 16px;padding-top:12px;border-top:1px solid #262626;display:flex;justify-content:space-between;font-size:12px;font-weight:600;color:var(--gold-l)}
.mayor-card:hover .card-foot span{transform:translateX(4px)}.card-foot span{transition:.2s}

/* Gallery */
.photo-card{display:flex;flex-direction:column;justify-content:space-between;border-radius:12px;overflow:hidden;background:#11131a;border:1px solid rgba(212,175,55,.2);cursor:pointer;transition:.3s}
.photo-card:hover{border-color:var(--gold);box-shadow:0 10px 25px rgba(212,175,55,.15)}
.photo-img{position:relative;height:256px;overflow:hidden;background:rgba(0,0,0,.4)}
.photo-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.photo-card:hover img{transform:scale(1.05)}
.photo-img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85),transparent);pointer-events:none}
.photo-img figcaption{position:absolute;bottom:12px;left:12px;right:12px;z-index:2}
.photo-img figcaption small{display:block;font-size:10px;text-transform:uppercase;font-weight:600;letter-spacing:.06em;color:var(--gold-l)}
.photo-img figcaption span{font-size:12px;font-weight:600;color:#fff}
.photo-foot{padding:8px 12px;background:#0d0f15;border-top:1px solid rgba(38,38,38,.8);font-size:10px;color:#a3a3a3;display:flex;justify-content:space-between}

/* Videos */
.video-card{display:flex;flex-direction:column;justify-content:space-between;border-radius:12px;background:#11131c;border:1px solid rgba(212,175,55,.2);overflow:hidden;cursor:pointer;transition:.3s}
.video-card:hover{border-color:var(--gold);box-shadow:0 10px 30px rgba(212,175,55,.15)}
.video-thumb{position:relative;height:224px;background:rgba(0,0,0,.6);overflow:hidden}
.video-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.video-card:hover .video-thumb img{transform:scale(1.05)}
.video-thumb::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.4);transition:.3s;pointer-events:none}
.video-card:hover .video-thumb::after{background:rgba(0,0,0,.2)}
.play{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:rgba(212,175,55,.92);color:#08090b;display:flex;align-items:center;justify-content:center;font-size:20px;padding-left:4px;transition:.25s}
.video-card:hover .play{background:var(--gold-l);transform:translate(-50%,-50%) scale(1.1)}
.duration{position:absolute;z-index:2;bottom:12px;right:12px;background:rgba(0,0,0,.8);padding:4px 10px;border-radius:4px;font-family:ui-monospace,monospace;font-size:11px;color:#e5e5e5;border:1px solid #404040}
.badge{position:absolute;z-index:2;top:12px;left:12px;background:var(--gold);color:#08090b;font-weight:700;padding:2px 10px;border-radius:4px;font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.video-body{padding:20px;display:flex;flex-direction:column;gap:12px}
.video-body .meta{display:flex;justify-content:space-between;font-size:11px;color:#a3a3a3}
.video-body h3{font-size:16px}.video-card:hover h3{color:var(--gold-l)}
.video-body p{font-size:12px;color:var(--muted2)}
.video-foot{padding:12px 20px;border-top:1px solid #262626;background:#0c0e14;font-size:12px;color:var(--muted2)}

/* Documents */
.doc-card{display:flex;flex-direction:column;justify-content:space-between;gap:16px;padding:24px;border-radius:12px;background:var(--panel);border:1px solid rgba(212,175,55,.25);transition:.3s}
.doc-card:hover{border-color:var(--gold);box-shadow:0 10px 30px rgba(212,175,55,.12)}
.doc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.doc-top small{font-size:12px;color:#a3a3a3}
.file-tag{padding:4px 10px;border-radius:4px;background:rgba(255,215,0,.1);border:1px solid rgba(255,215,0,.3);font-size:10px;font-weight:700;color:var(--gold-l);text-transform:uppercase;letter-spacing:.06em}
.doc-card h3{font-size:18px;margin-bottom:10px;line-height:1.3}
.doc-card p{font-size:12px;color:var(--muted2)}
.audience{font-size:11px;color:#a3a3a3;margin-top:12px}
.doc-actions{padding-top:16px;border-top:1px solid #262626;display:flex;justify-content:space-between;align-items:center;gap:12px}

/* Timeline */
.timeline{position:relative;border-left:1px solid rgba(212,175,55,.3);margin-left:130px;display:flex;flex-direction:column;gap:32px}
.tl-item{position:relative;padding-left:32px}
.tl-dot{position:absolute;left:-9px;top:6px;width:16px;height:16px;border-radius:50%;background:#08090b;border:2px solid var(--gold-l);transition:.25s}
.tl-item:hover .tl-dot{transform:scale(1.25)}
.tl-time{position:absolute;left:-140px;top:4px;width:112px;text-align:right;font-family:ui-monospace,monospace;font-size:12px;font-weight:700;color:var(--gold-l)}
.tl-card{padding:20px;border-radius:12px;background:var(--panel);border:1px solid #262626;transition:.25s}
.tl-card:hover{border-color:rgba(212,175,55,.5)}
.tl-card h3{font-size:18px;margin-bottom:8px}.tl-card p{font-size:12px;color:var(--muted2)}
.tl-meta{margin-top:12px;padding-top:10px;border-top:1px solid #262626;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:11px;color:#a3a3a3}

/* RSVP */
.rsvp-grid{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:center}
.rsvp-info{display:flex;flex-direction:column;gap:22px}
.rsvp-info h2{font-size:clamp(26px,3.4vw,38px)}
.rsvp-info p{font-size:14px;color:var(--muted2)}
.hotlines{padding:20px;border-radius:12px;background:#12141c;border:1px solid rgba(212,175,55,.3);display:flex;flex-direction:column;gap:10px}
.hotlines a{padding:10px 12px;border-radius:6px;background:#181b26;font-family:ui-monospace,monospace;font-size:15px;transition:.2s}
.hotlines a:hover{background:#202434}
.rsvp-card{padding:32px;border-radius:16px;background:#12141e;border:1px solid rgba(212,175,55,.3);box-shadow:0 20px 50px rgba(0,0,0,.5)}
.rsvp-card h3{font-size:22px;margin-bottom:4px}
.lbl{display:block;font-size:11px;font-weight:600;color:var(--muted2);margin:14px 0 6px;text-transform:uppercase;letter-spacing:.05em}
.rsvp-card input,.rsvp-card select{width:100%;padding:10px 14px;border-radius:8px;background:#0a0b10;border:1px solid #404040;font-size:14px;color:#fff}
.type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.type-grid .chip{text-align:center;border-color:#404040}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0}
.form-error{margin-top:14px;padding:10px 14px;border-radius:8px;background:rgba(220,38,38,.12);border:1px solid rgba(220,38,38,.5);color:#fca5a5;font-size:12px}
#rsvpSubmit{margin-top:20px}
.rsvp-success{text-align:center;padding:40px 0}
.ok-ico{width:64px;height:64px;border-radius:50%;background:rgba(212,175,55,.2);border:1px solid var(--gold);color:var(--gold-l);display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 16px}
.rsvp-success p{max-width:420px;margin:12px auto 24px;font-size:14px;color:var(--muted2)}

/* Footer */
.footer{background:#060709;border-top:1px solid rgba(212,175,55,.2);padding:64px 0 40px;color:#a3a3a3;font-size:12px}
.footer-grid{display:grid;grid-template-columns:5fr 3fr 4fr;gap:40px;padding-bottom:48px;border-bottom:1px solid #262626}
.footer p{margin:14px 0;line-height:1.7}
.footer h4{font-family:var(--font-body);font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px}
.footer ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.footer li a:hover{color:var(--gold-l)}
.footer .mono{color:var(--muted2);line-height:1.9}
.footer-bottom{padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11px}

/* Modals */
.modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.88);backdrop-filter:blur(8px);animation:fade .2s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal-box{width:100%;max-width:760px;max-height:92vh;background:#0d0f17;border:1px solid rgba(212,175,55,.4);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 0 50px rgba(212,175,55,.2)}
.modal-box.wide{max-width:900px}.modal-box.small{max-width:680px}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;border-bottom:1px solid rgba(212,175,55,.2);background:#141722}
.modal-head h3{font-size:14px;letter-spacing:.05em}
.x-btn{font-size:22px;color:#a3a3a3;padding:2px 8px;border-radius:8px}.x-btn:hover{color:#fff;background:#262626}
.modal-body{overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:22px;text-align:left}
.modal-foot{padding:12px 24px;border-top:1px solid #262626;background:#12141c;display:flex;justify-content:flex-end;gap:10px}
.m-top{display:flex;gap:24px;align-items:flex-start}
.m-photo{position:relative;width:190px;height:230px;border-radius:8px;overflow:hidden;border:1px solid rgba(212,175,55,.4);flex-shrink:0;background:#08090d}
.m-photo img{width:100%;height:100%;object-fit:cover;object-position:top}
.m-photo .pill{top:8px;right:8px}
.m-info{display:flex;flex-direction:column;gap:12px;flex:1}
.m-info h2{font-size:24px}
.m-tags{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted2)}
.m-tags span{background:#191c28;padding:4px 12px;border-radius:4px;border:1px solid #404040}
.m-h{font-family:var(--font-body);font-size:12px;text-transform:uppercase;font-weight:600;letter-spacing:.06em;color:var(--gold);margin-bottom:8px}
.m-bio{font-size:14px;color:var(--muted2);line-height:1.7;background:#12141c;padding:16px;border-radius:8px;border:1px solid #262626}
.m-projects{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12px}
.m-projects div{display:flex;gap:10px;padding:12px;border-radius:8px;background:#141722;border:1px solid #262626;color:#e5e5e5}
.m-projects div::before{content:"✔";color:var(--gold-l)}
.poster-banner{padding:16px;border-radius:8px;background:linear-gradient(to right,rgba(212,175,55,.15),transparent);border:1px solid rgba(212,175,55,.3);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px}
.poster-banner b{display:block;color:#fff}.poster-banner span{color:#a3a3a3}
.poster-split{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}
.poster-split img{border-radius:8px;border:1px solid rgba(212,175,55,.5);box-shadow:0 20px 40px rgba(0,0,0,.6);margin:0 auto;max-height:70vh;width:auto}
.kv{padding:16px;border-radius:8px;background:var(--panel2);border:1px solid #262626;font-size:12px;color:var(--muted2);display:flex;flex-direction:column;gap:8px}
.kv div{display:flex;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid #262626}.kv div:last-child{border:none;padding:0}
.kv b{color:#fff;text-align:right}
.video-frame{position:relative;aspect-ratio:16/9;background:#000}
.video-frame iframe,.video-frame video{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-info{padding:20px;background:#0e1017;font-size:13px;color:var(--muted2)}
.video-info .meta{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;font-size:12px;color:#a3a3a3;margin-bottom:10px}
.doc-preview{padding:16px;border-radius:8px;background:#181b26;border:1px solid #262626;font-size:12px;color:#e5e5e5;display:flex;flex-direction:column;gap:10px}
.doc-preview .sub{font-weight:600;color:var(--gold-l);text-transform:uppercase;font-size:11px}
.lightbox{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.96);display:flex;align-items:center;justify-content:center;padding:16px;animation:fade .2s}
.lb-inner{position:relative;max-width:1000px;width:100%;max-height:92vh;display:flex;flex-direction:column;align-items:center;gap:16px}
.lb-inner>img{max-height:72vh;width:auto;max-width:100%;object-fit:contain;border-radius:8px;border:1px solid rgba(212,175,55,.4)}
.lb-btn{position:absolute;z-index:2;width:44px;height:44px;border-radius:50%;background:rgba(0,0,0,.7);border:1px solid #404040;color:#e5e5e5;font-size:24px}
.lb-btn:hover{color:var(--gold-l)}
.lb-close{top:0;right:0}.lb-prev{left:0;top:40%}.lb-next{right:0;top:40%}
.lb-cap{width:100%;max-width:760px;padding:12px 16px;border-radius:8px;background:#11131b;border:1px solid rgba(212,175,55,.3);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.lb-cap h4{font-size:15px}.lb-cap p{font-size:12px;color:#a3a3a3;margin-top:2px}

/* Responsive */
@media(max-width:1100px){
  .nav-links{display:none;position:absolute;top:80px;left:0;right:0;flex-direction:column;gap:4px;padding:12px 24px 20px;background:#0c0e14;border-bottom:1px solid rgba(212,175,55,.2)}
  .nav-links.open{display:flex}
  .nav-links a{padding:10px 12px;border-radius:6px}.nav-links a:hover{background:#151720}
  .burger{display:block}
  .carousel-grid,.hero-grid,.rsvp-grid{grid-template-columns:1fr}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .grid-3,.grid-2{grid-template-columns:1fr 1fr}
  .spotlight{flex-direction:column;align-items:stretch}.spot-photo{width:100%}
  .timeline{margin-left:12px}.tl-time{position:static;width:auto;text-align:left;margin-bottom:6px}
  .poster-split,.m-projects{grid-template-columns:1fr}
  .m-top{flex-direction:column}.m-photo{width:100%}
}
@media(max-width:640px){
  .container{padding:0 16px}
  .nav-actions .btn{display:none}.nav-mobile-only{display:block}
  .brand-text strong{font-size:13px}
  .grid-3,.grid-2,.grid-4,.facts,.row2,.footer-grid{grid-template-columns:1fr}
  .type-grid{grid-template-columns:1fr 1fr}
  .rsvp-card{padding:20px}
  .section{padding:56px 0}
}

/* ===== Page individuelle d'un maire (SEO) ===== */
.mayor-body h3 a{color:inherit}
.mayor-body h3 a:hover{color:var(--gold-l)}
.profile-page{padding-top:32px}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:#a3a3a3;margin-bottom:28px}
.crumbs a:hover{color:var(--gold-l)}.crumbs [aria-current]{color:var(--muted2)}
.profile-grid{display:grid;grid-template-columns:340px 1fr;gap:40px;align-items:start}
.profile-photo{position:relative;border-radius:14px;overflow:hidden;border:1px solid rgba(212,175,55,.4);background:#0a0b10;position:sticky;top:100px}
.profile-photo img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:top}
.profile-photo .pill{top:12px;right:12px}
.profile-main{display:flex;flex-direction:column;gap:22px}
.profile-main h1{font-size:clamp(28px,4vw,42px)}
.m-h2{font-family:var(--font-body);font-size:12px;text-transform:uppercase;font-weight:700;letter-spacing:.08em;color:var(--gold);margin-bottom:10px}
.proj-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.proj-list li{padding:12px 14px;border-radius:8px;background:#141722;border:1px solid #262626;font-size:13px;color:#e5e5e5}
.proj-list li::before{content:"✔ ";color:var(--gold-l)}
.event-box{padding:20px;border-radius:12px;background:linear-gradient(to right,rgba(212,175,55,.14),transparent);border:1px solid rgba(212,175,55,.3);font-size:13px;color:var(--muted2);display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.poster-thumb{max-width:280px;border-radius:8px;border:1px solid rgba(212,175,55,.4)}
.related{margin-top:64px}
.related h2{font-size:24px;margin-bottom:20px}
.rel-card{display:flex;gap:14px;align-items:center;padding:14px;border-radius:12px;background:#11131c;border:1px solid #262626;transition:.25s}
.rel-card:hover{border-color:rgba(212,175,55,.6)}
.rel-card img{width:72px;height:72px;border-radius:8px;object-fit:cover;object-position:top;flex-shrink:0}
.rel-card small{display:block;font-size:10px;text-transform:uppercase;color:var(--gold-l);font-weight:600}
.rel-card b{display:block;font-family:var(--font-title);font-size:14px}
.rel-card span{font-size:11px;color:#a3a3a3}
@media(max-width:820px){.profile-grid{grid-template-columns:1fr}.profile-photo{position:static;max-width:380px}.proj-list{grid-template-columns:1fr}}
