/* Association Anne Lorient — design bienveillant, sombre & lumineux */
:root{
  --bg:#0d0a14; --bg2:#161022; --card:#1c1430; --card2:#241a3d;
  --gold:#f5c96b; --rose:#ff9ecb; --sky:#7fd8ff; --mint:#8affc1;
  --lilac:#c9a6ff; --text:#fdf8ef; --muted:#e8ddf5;
  --grad-hero:linear-gradient(135deg,#2a1650 0%,#4a1d5e 45%,#7a2d63 100%);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:'Segoe UI',system-ui,-apple-system,sans-serif;line-height:1.75;font-size:17px}
a{color:var(--sky);text-decoration:none;transition:.25s}
a:hover{color:var(--gold)}
img{max-width:100%;display:block}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(13,10,20,.92);backdrop-filter:blur(10px);border-bottom:1px solid #2c2145}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0;flex-wrap:wrap;gap:10px}
.brand{font-size:1.35rem;font-weight:800;color:var(--gold);letter-spacing:.4px;display:flex;gap:10px;align-items:center}
.brand .heart{color:var(--rose);animation:beat 1.6s infinite}
@keyframes beat{0%,100%{transform:scale(1)}12%{transform:scale(1.18)}}
.menu{display:flex;gap:4px;flex-wrap:wrap;list-style:none}
.menu a{color:var(--muted);padding:8px 13px;border-radius:999px;font-size:.95rem;font-weight:600}
.menu a:hover,.menu a.active{background:#2c2145;color:var(--gold)}
.btn-don{background:linear-gradient(90deg,var(--rose),#ff7fb0)!important;color:#fff!important;font-weight:800!important;box-shadow:0 0 18px rgba(255,158,203,.35)}
.btn-don:hover{box-shadow:0 0 26px rgba(255,158,203,.65)}

/* Hero */
.hero{background:var(--grad-hero);padding:84px 0 70px;text-align:center;position:relative;overflow:hidden}
.hero::after{content:'';position:absolute;inset:auto -10% -60% -10%;height:120px;background:radial-gradient(ellipse at center,rgba(245,201,107,.25),transparent 70%)}
.hero h1{font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.15;background:linear-gradient(90deg,var(--gold),var(--rose),var(--sky));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:16px}
.hero p{max-width:720px;margin:0 auto 30px;color:var(--text);font-size:1.15rem}
.hero .tagline{color:var(--gold);font-weight:700;letter-spacing:2px;text-transform:uppercase;font-size:.85rem}

/* Boutons */
.btn{display:inline-block;padding:14px 32px;border-radius:999px;font-weight:800;font-size:1rem;cursor:pointer;border:none;transition:.25s;text-align:center}
.btn-gold{background:linear-gradient(90deg,var(--gold),#ffd98f);color:#3a2500;box-shadow:0 6px 24px rgba(245,201,107,.35)}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 10px 34px rgba(245,201,107,.55);color:#3a2500}
.btn-rose{background:linear-gradient(90deg,var(--rose),#ffb3d6);color:#4a0d29;box-shadow:0 6px 24px rgba(255,158,203,.3)}
.btn-rose:hover{transform:translateY(-2px);color:#4a0d29}
.btn-ghost{border:2px solid var(--gold);color:var(--gold);background:transparent}
.btn-ghost:hover{background:rgba(245,201,107,.12)}

/* Sections */
section.block{padding:64px 0}
section.block.alt{background:var(--bg2)}
h2.sec{font-size:clamp(1.6rem,3.5vw,2.3rem);text-align:center;margin-bottom:8px;color:var(--gold)}
p.sec-sub{text-align:center;color:var(--muted);margin-bottom:42px;font-style:italic}

/* Cartes */
.grid{display:grid;gap:26px}
.g3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.card{background:var(--card);border:1px solid #33255a;border-radius:18px;padding:28px;transition:.3s}
.card:hover{transform:translateY(-5px);border-color:var(--gold);box-shadow:0 14px 40px rgba(0,0,0,.5)}
.card h3{color:var(--rose);margin-bottom:10px;font-size:1.2rem}
.card p{color:var(--muted);font-size:.97rem}
.card .icon{font-size:2.1rem;margin-bottom:12px;display:block}

/* Cagnottes */
.cagnotte-card{position:relative;overflow:hidden}
.cagnotte-card .badge-top{position:absolute;top:0;left:0;background:linear-gradient(90deg,var(--gold),var(--rose));color:#3a1030;font-weight:800;font-size:.78rem;padding:5px 16px;border-radius:0 0 12px 0;text-transform:uppercase;letter-spacing:1px}
.progressbar{height:12px;background:#0f0a1c;border-radius:99px;overflow:hidden;margin:14px 0 6px;border:1px solid #33255a}
.progressbar>div{height:100%;background:linear-gradient(90deg,var(--mint),var(--gold),var(--rose));border-radius:99px}
.pct{color:var(--mint);font-weight:700;font-size:.9rem}
.btn-cagnotte{display:block;margin-top:14px;background:linear-gradient(90deg,#ff7fb0,var(--rose));color:#fff;font-weight:800;padding:12px;border-radius:12px;text-align:center}
.btn-cagnotte:hover{filter:brightness(1.12);color:#fff}

/* Presse */
.press-item{display:flex;gap:18px;align-items:flex-start;background:var(--card);border-left:4px solid var(--gold);border-radius:0 14px 14px 0;padding:20px 24px;margin-bottom:16px}
.press-item .quote{font-size:1.6rem;color:var(--gold);line-height:1}
.press-item h3{color:var(--text);font-size:1.08rem;margin-bottom:4px}
.press-item .src{color:var(--rose);font-weight:700;font-size:.86rem;text-transform:uppercase;letter-spacing:1px}
.press-item p{color:var(--muted);font-size:.94rem;margin-top:6px}

/* Articles / news */
.news-card img.cover{width:100%;height:190px;object-fit:cover;border-radius:12px 12px 0 0}
.news-meta{color:var(--lilac);font-size:.85rem;margin-bottom:8px}
.article-body{font-size:1.05rem;color:var(--text)}
.article-body h2,.article-body h3{color:var(--gold);margin:26px 0 12px}
.article-body p{margin-bottom:16px}
.article-body img{border-radius:14px;margin:18px auto}
.article-body ul,.article-body ol{margin:0 0 16px 26px}
.article-body blockquote{border-left:4px solid var(--rose);padding:10px 20px;background:var(--card2);border-radius:0 12px 12px 0;margin:18px 0;color:var(--muted);font-style:italic}

/* Chiffres */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:22px;text-align:center}
.stat .num{font-size:2.4rem;font-weight:900;color:var(--gold)}
.stat .lbl{color:var(--muted)}

/* Instagram */
.insta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.insta-post{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1;background:var(--card)}
.insta-post img{width:100%;height:100%;object-fit:cover;transition:.4s}
.insta-post:hover img{transform:scale(1.07)}
.insta-post .ig-badge{position:absolute;bottom:10px;right:10px;background:rgba(13,10,20,.8);padding:5px 10px;border-radius:99px;font-size:.78rem;color:var(--rose)}

/* Footer */
footer{background:#08060f;border-top:1px solid #2c2145;padding:52px 0 30px;margin-top:60px}
.f-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:34px}
footer h4{color:var(--gold);margin-bottom:14px}
footer li{list-style:none;margin-bottom:8px}
.socials{display:flex;gap:12px;margin-top:10px}
.socials a{width:42px;height:42px;border-radius:50%;background:var(--card2);display:grid;place-items:center;font-size:1.15rem;border:1px solid #33255a}
.socials a:hover{border-color:var(--rose);transform:translateY(-3px)}
.copy{text-align:center;color:#9a8cb8;margin-top:38px;font-size:.88rem}

/* Contact */
.contact-form{max-width:640px;margin:0 auto;background:var(--card);padding:36px;border-radius:18px;border:1px solid #33255a}
label{display:block;color:var(--gold);font-weight:700;margin:14px 0 6px}
input[type=text],input[type=email],textarea,select{width:100%;background:#0f0a1c;border:1px solid #33255a;color:var(--text);padding:13px 16px;border-radius:10px;font-size:1rem;font-family:inherit}
input:focus,textarea:focus{outline:2px solid var(--gold);border-color:transparent}
.alert-ok{background:rgba(138,255,193,.12);border:1px solid var(--mint);color:var(--mint);padding:14px 18px;border-radius:12px;margin-bottom:18px}
.alert-err{background:rgba(255,120,120,.12);border:1px solid #ff8080;color:#ffabab;padding:14px 18px;border-radius:12px;margin-bottom:18px}

/* Admin */
.admin-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}
.admin-side{background:#0a0714;border-right:1px solid #2c2145;padding:26px 16px}
.admin-side a{display:block;padding:11px 15px;border-radius:10px;color:var(--muted);font-weight:600;margin-bottom:4px}
.admin-side a.active,.admin-side a:hover{background:#2c2145;color:var(--gold)}
.admin-main{padding:34px 40px;max-width:1100px}
.admin-main h1{color:var(--gold);margin-bottom:24px;font-size:1.7rem}
table.tbl{width:100%;border-collapse:collapse}
.tbl th{color:var(--gold);text-align:left;padding:12px;border-bottom:2px solid #33255a;font-size:.9rem;text-transform:uppercase;letter-spacing:1px}
.tbl td{padding:12px;border-bottom:1px solid #241a3d;color:var(--muted)}
.tbl tr:hover td{background:#181128}
.tox-tinymce{border-radius:12px!important}

/* Divers */
.page-head{background:var(--grad-hero);padding:56px 0;text-align:center}
.page-head h1{font-size:clamp(1.9rem,4vw,2.7rem);color:var(--gold)}
.page-head p{color:var(--muted);max-width:700px;margin:10px auto 0}
.hope-line{text-align:center;font-size:1.25rem;color:var(--rose);font-style:italic;padding:34px 20px}
@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-side{display:flex;flex-wrap:wrap}.admin-side a{padding:8px 12px;font-size:.88rem}}
