/*
Theme Name: La Piqûre de Rappel
Theme URI: https://lapiquederappel.fr
Author: La Rédaction
Description: Thème sur mesure pour La Piqûre de Rappel — Le journal de la LFI de Moret Seine & Loing
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: piqure-de-rappel
*/

/* ─── VARIABLES ─── */
:root {
  --orange:#F4824A; --orange-p:#FDE8DA;
  --vert:#5BAF6A;   --vert-p:#D8F0DD;
  --bleu:#5B6DAE;   --bleu-p:#DCE1F5;
  --rose:#D9479F;   --rose-p:#FAD9EE;
  --rouge-fonce:#C0271E;
  --noir:#1A1A1A; --gris:#5A5A5A; --gris-clair:#EBEBEB; --blanc:#FFFFFF;
}

*{margin:0;padding:0;box-sizing:border-box} html{scroll-behavior:smooth}
body{background:#fff;color:var(--noir);font-family:'Source Serif 4',Georgia,serif;font-weight:300;overflow-x:hidden}

/* ─── TICKER ─── */
.ticker{background:var(--orange);color:white;padding:7px 0;overflow:hidden;white-space:nowrap}
.ticker-inner{display:inline-block;animation:ticker 50s linear infinite;font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}
.ticker-sep{margin:0 32px;opacity:.5}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ─── HEADER ─── */
header{background:#fff;position:sticky;top:0;z-index:300;border-bottom:3px solid var(--orange);box-shadow:0 2px 12px rgba(0,0,0,.07)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:12px 48px;max-width:1440px;margin:0 auto}
.logo{line-height:1;text-decoration:none;cursor:pointer;display:flex;align-items:center;gap:16px}
.logo-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:.56rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gris)}
.logo-mlo{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.12em;font-weight:600;text-transform:uppercase;line-height:1.2;margin-top:3px}
.logo-mlo .mlo-sep{color:var(--gris)}
.logo-soustitre{font-family:'IBM Plex Mono',monospace;font-size:.52rem;letter-spacing:.06em;font-weight:400;text-transform:none;color:#4C0297;margin-top:3px;line-height:1.3}
.logo-name{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:900;color:var(--noir);letter-spacing:-.02em;line-height:1}
.logo-name .la{color:var(--rouge-fonce)}
.mlo1{color:var(--orange)!important} .mlo2{color:var(--vert)!important} .mlo3{color:var(--bleu)!important} .mlo4{color:var(--rose)!important}
.logo-badge{background:var(--bleu-p);border:2px solid var(--bleu);padding:6px 12px;font-family:'IBM Plex Mono',monospace;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--bleu)}
.btn-soutien{background:var(--rose);color:white;padding:9px 18px;font-family:'IBM Plex Mono',monospace;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border:none;transition:background .2s;margin-left:8px}
.btn-soutien:hover{background:#c03990}

/* ─── NAVIGATION ─── */
nav{display:flex;align-items:center;gap:6px}
.top-bar{background:#fff;border-bottom:2px solid var(--gris-clair);padding:0 48px}
.top-bar-inner{max-width:1440px;margin:0 auto;display:flex;align-items:center;gap:0}
.top-rub{padding:10px 22px;font-family:'IBM Plex Mono',monospace;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);cursor:pointer;text-decoration:none;display:block;transition:all .18s;border-bottom:3px solid transparent;background:none;border-top:none;border-left:none;border-right:none}
.top-rub:hover,.top-rub.active{color:var(--orange);border-bottom-color:var(--orange)}

/* ─── DROPDOWN ─── */
.dropdown{position:relative}
.dropdown-btn{display:flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;transition:color .2s}
.dropdown-btn svg{width:11px;height:11px;transition:transform .2s}
.dropdown.open .dropdown-btn svg{transform:rotate(180deg)}
.dropdown-menu{display:none;position:absolute;top:calc(100% + 8px);left:0;background:#fff;border:2px solid var(--orange);min-width:200px;z-index:400;box-shadow:4px 4px 0 var(--orange-p)}
.dropdown.open .dropdown-menu{display:block}
.dropdown-item{display:block;padding:11px 18px;font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);cursor:pointer;border-bottom:1px solid var(--gris-clair);transition:all .15s;text-decoration:none}
.dropdown-item:last-child{border-bottom:none}
.dropdown-item:hover{background:var(--orange-p);color:var(--orange)}

/* ─── À LA UNE ─── */
.une{background:var(--orange-p);padding:56px 48px;border-bottom:3px solid var(--orange);display:block;text-decoration:none;color:inherit}
.une:hover .une-titre{text-decoration:underline;text-decoration-color:var(--orange)}
.une-inner{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;gap:56px;align-items:center}
.une-label{display:inline-block;background:var(--orange);color:white;font-family:'IBM Plex Mono',monospace;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;padding:5px 12px;margin-bottom:20px;border-radius:2px}
.une-titre{font-family:'Playfair Display',serif;font-size:clamp(1.9rem,3.5vw,3.1rem);font-weight:900;color:var(--noir);line-height:1.1;letter-spacing:-.025em;margin-bottom:18px;text-decoration:none}
.une-titre em{font-style:italic;color:var(--rose)}
.une-chapeau{font-size:.97rem;color:var(--gris);line-height:1.72;margin-bottom:26px}
.une-meta{font-family:'IBM Plex Mono',monospace;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:#999;border-top:2px solid rgba(244,130,74,.3);padding-top:16px;display:flex;gap:24px;flex-wrap:wrap}
.une-meta b{color:var(--orange);font-weight:600}
.une-visuel{background:#fff;border:2px solid var(--orange);aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;box-shadow:4px 4px 0 var(--orange)}
.une-visuel img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0}
.une-visuel-icon{font-size:5rem;margin-bottom:14px;position:relative;z-index:1}
.une-visuel p{font-family:'IBM Plex Mono',monospace;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:#bbb;position:relative;z-index:1}
.une-visuel-badge{position:absolute;bottom:0;left:0;background:var(--orange);color:white;padding:7px 16px;font-family:'IBM Plex Mono',monospace;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;z-index:2}

/* ─── GRILLES ─── */
.section-wrap{max-width:1440px;margin:0 auto;padding:48px 48px}
.section-head{display:flex;align-items:center;gap:18px;margin-bottom:28px}
.section-head h2{font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;white-space:nowrap;font-weight:600}
.section-head h2.orange{color:var(--orange)} .section-head h2.vert{color:var(--vert)} .section-head h2.bleu{color:var(--bleu)} .section-head h2.rose{color:var(--rose)}
.section-head hr{flex:1;border:none;border-top:2px solid var(--gris-clair)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--gris-clair)}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--gris-clair)}

/* ─── CARTES ─── */
.card{background:#fff;padding:26px;transition:background .18s}
.card a{text-decoration:none;color:inherit;display:block}
.card:hover{background:#fafafa}
.card:hover .card-title{text-decoration:underline}
.card.orange-card{border-top:3px solid var(--orange)} .card.vert-card{border-top:3px solid var(--vert)} .card.bleu-card{border-top:3px solid var(--bleu)} .card.rose-card{border-top:3px solid var(--rose)}
.card.featured.orange-bg{background:var(--orange-p);border-top:3px solid var(--orange)} .card.featured.bleu-bg{background:var(--bleu-p);border-top:3px solid var(--bleu)} .card.featured.vert-bg{background:var(--vert-p);border-top:3px solid var(--vert)} .card.featured.rose-bg{background:var(--rose-p);border-top:3px solid var(--rose)}
.card-cat{font-family:'IBM Plex Mono',monospace;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:10px;font-weight:600}
.cat-orange{color:var(--orange)} .cat-vert{color:var(--vert)} .cat-bleu{color:var(--bleu)} .cat-rose{color:var(--rose)}
.card-title{font-family:'Playfair Display',serif;font-weight:700;font-size:1.05rem;line-height:1.28;margin-bottom:10px;color:var(--noir)}
.card.featured .card-title{font-size:1.4rem}
.card-excerpt{font-size:.84rem;line-height:1.65;color:var(--gris)}
.card-meta{margin-top:14px;font-family:'IBM Plex Mono',monospace;font-size:.57rem;letter-spacing:.1em;text-transform:uppercase;color:#bbb;display:flex;gap:12px}
.card-img{width:100%;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;font-size:2.8rem;margin-bottom:18px;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-img.orange-img{background:var(--orange-p)} .card-img.bleu-img{background:var(--bleu-p)} .card-img.vert-img{background:var(--vert-p)} .card-img.rose-img{background:var(--rose-p)}

/* ─── ÉDITO ─── */
.edito-band{background:var(--bleu-p);padding:52px 48px;border-top:3px solid var(--bleu);border-bottom:3px solid var(--bleu)}
.edito-inner{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:80px 1fr;gap:52px;align-items:center}
.edito-side{font-family:'IBM Plex Mono',monospace;font-size:.56rem;letter-spacing:.28em;text-transform:uppercase;color:var(--bleu);writing-mode:vertical-rl;transform:rotate(180deg);opacity:.6}
.edito-quote{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(1.2rem,2.2vw,1.8rem);color:var(--bleu);line-height:1.45;margin-bottom:18px}
.edito-author{font-family:'IBM Plex Mono',monospace;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bleu);opacity:.7}

/* ─── NEWSLETTER ─── */
.newsletter-band{background:var(--orange-p);padding:52px 48px;border-top:3px solid var(--orange)}
.newsletter-inner{max-width:600px;margin:0 auto;text-align:center}
.newsletter-inner h2{font-family:'Playfair Display',serif;font-size:1.85rem;font-weight:900;color:var(--noir);margin-bottom:10px;line-height:1.15}
.newsletter-inner p{font-size:.88rem;color:var(--gris);margin-bottom:24px;line-height:1.65}
.nl-form{display:flex;max-width:420px;margin:0 auto}
.nl-form input{flex:1;padding:12px 16px;border:2px solid var(--orange);background:white;font-family:'IBM Plex Mono',monospace;font-size:.76rem;outline:none}
.nl-form input::placeholder{color:#ccc}
.nl-form button{background:var(--orange);color:white;border:2px solid var(--orange);padding:12px 18px;font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .2s}
.nl-form button:hover{background:#e06a30}

/* ─── PAGE ARTICLE ─── */
.article-header{background:#fff;padding:52px 48px 44px;border-bottom:3px solid var(--gris-clair)}
.article-header-inner{max-width:820px;margin:0 auto}
.article-back{display:inline-flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);cursor:pointer;margin-bottom:28px;transition:color .2s;border:none;background:none;padding:0;text-decoration:none}
.article-back:hover{color:var(--orange)}
.article-back svg{width:14px;height:14px}
.article-rubrique{display:inline-block;color:white;font-family:'IBM Plex Mono',monospace;font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;padding:5px 12px;margin-bottom:20px;border-radius:2px}
.article-rubrique.orange{background:var(--orange)} .article-rubrique.vert{background:var(--vert)} .article-rubrique.bleu{background:var(--bleu)} .article-rubrique.rose{background:var(--rose)}
.article-titre{font-family:'Playfair Display',serif;font-size:clamp(1.7rem,3.3vw,2.8rem);font-weight:900;color:var(--noir);line-height:1.1;letter-spacing:-.025em;margin-bottom:20px}
.article-chapeau{font-size:1.08rem;color:var(--gris);line-height:1.65;margin-bottom:26px;font-style:italic}
.article-byline{font-family:'IBM Plex Mono',monospace;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:#bbb;border-top:2px solid var(--gris-clair);padding-top:16px;display:flex;gap:24px;flex-wrap:wrap}
.article-byline b{color:var(--orange);font-weight:600}
.article-body{max-width:820px;margin:0 auto;padding:52px 48px}
.article-visuel{width:100%;aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:44px;font-size:4rem;border:2px solid var(--gris-clair);overflow:hidden;position:relative}
.article-visuel img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0}
.article-visuel.orange-bg{background:var(--orange-p)} .article-visuel.bleu-bg{background:var(--bleu-p)} .article-visuel.vert-bg{background:var(--vert-p)} .article-visuel.rose-bg{background:var(--rose-p)}
.article-visuel p{font-family:'IBM Plex Mono',monospace;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:#bbb;margin-top:12px;position:relative;z-index:1}

/* ─── CONTENU ARTICLE (éditeur WordPress) ─── */
.article-content p{font-size:.98rem;line-height:1.82;color:#333;margin-bottom:22px}
.article-content p:first-child{font-size:1.1rem;line-height:1.78;color:var(--noir);margin-bottom:28px;font-weight:400;border-left:4px solid var(--orange);padding-left:22px}
.article-content h2{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:700;color:var(--noir);margin:38px 0 16px;padding-bottom:10px;border-bottom:2px solid var(--gris-clair)}
.article-content h3{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:700;color:var(--noir);margin:28px 0 12px}
.article-content blockquote{font-family:'Playfair Display',serif;font-style:italic;font-size:1.05rem;line-height:1.65;color:var(--bleu);border-left:4px solid var(--bleu);padding:16px 22px;margin:24px 0;background:var(--bleu-p)}
.article-content blockquote p{font-size:1.05rem;color:var(--bleu);margin-bottom:0;border-left:none;padding-left:0}
.article-content ul,.article-content ol{margin:0 0 22px 24px;font-size:.98rem;line-height:1.82;color:#333}
.article-content li{margin-bottom:6px}
.article-content img{max-width:100%;height:auto;margin:24px 0;border:2px solid var(--gris-clair)}
.article-content a{color:var(--orange);text-decoration:underline}
.article-content strong{font-weight:700;color:var(--noir)}

/* ─── FOOTER ARTICLE ─── */
.article-footer{background:var(--gris-clair);padding:36px 48px}
.article-footer-inner{max-width:820px;margin:0 auto}
.article-tags{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.article-tag{font-family:'IBM Plex Mono',monospace;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;padding:6px 13px;border:1px solid #ccc;color:var(--gris);cursor:pointer;transition:all .18s;border-radius:2px;text-decoration:none;display:inline-block}
.article-tag:hover{background:var(--orange);border-color:var(--orange);color:white}
.articles-suivants h3{font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--orange);border-bottom:2px solid var(--orange);padding-bottom:10px;margin-bottom:20px;font-weight:600}
.suivants-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--gris-clair)}

/* ─── FOOTER ─── */
footer{background:var(--noir);padding:48px 48px 24px;border-top:4px solid var(--orange)}
.footer-top{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:40px}
.footer-brand .logo-name{font-size:1.2rem;display:block;margin-bottom:12px}
.footer-brand p{font-size:.82rem;color:#666;line-height:1.7;max-width:260px}
.footer-col h4{font-family:'IBM Plex Mono',monospace;font-size:.56rem;letter-spacing:.26em;text-transform:uppercase;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid #2a2a2a;font-weight:600}
.footer-col h4.orange{color:var(--orange)} .footer-col h4.vert{color:var(--vert)} .footer-col h4.bleu{color:var(--bleu)}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.footer-col li a{color:#555;text-decoration:none;font-size:.82rem;transition:color .18s}
.footer-col li a:hover{color:var(--orange)}
.footer-bottom{max-width:1440px;margin:0 auto;border-top:1px solid #222;padding-top:20px;display:flex;justify-content:space-between;align-items:center}
.footer-bottom p{font-family:'IBM Plex Mono',monospace;font-size:.57rem;color:#444;letter-spacing:.08em}
.footer-bottom .orange{color:var(--orange)}

/* ─── DIVERS ─── */
.loader{text-align:center;padding:80px;font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#bbb}
.page-404{text-align:center;padding:120px 48px}
.page-404 h1{font-family:'Playfair Display',serif;font-size:6rem;font-weight:900;color:var(--orange);line-height:1}
.page-404 p{font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris);margin:16px 0 32px}
.page-404 a{background:var(--orange);color:white;padding:12px 28px;font-family:'IBM Plex Mono',monospace;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;display:inline-block;transition:background .2s}
.page-404 a:hover{background:#e06a30}

/* ─── RESPONSIVE ─── */
@media(max-width:900px){
  .header-inner{padding:12px 20px}
  .top-bar{padding:0 20px}
  .une{padding:32px 20px}
  .une-inner{grid-template-columns:1fr;gap:28px}
  .section-wrap{padding:32px 20px}
  .grid-3,.grid-2,.suivants-grid{grid-template-columns:1fr}
  .edito-band,.newsletter-band{padding:36px 20px}
  .edito-inner{grid-template-columns:1fr}
  .edito-side{display:none}
  .article-header{padding:32px 20px}
  .article-body{padding:32px 20px}
  .article-footer{padding:28px 20px}
  .footer-top{grid-template-columns:1fr 1fr;padding:0}
  footer{padding:36px 20px 20px}
  .footer-bottom{flex-direction:column;gap:8px;text-align:center}
}
