/* ===================================================================
   Tombola Solidaire Maylee — thème rose
   =================================================================== */
:root{
  --rose:#ec4899;
  --rose-fonce:#be1e6b;
  --rose-clair:#f9a8d4;
  --rose-pale:#fde5ef;
  --rose-fond:#fdf2f8;
  --or:#f5b301;
  --vert:#16a34a;
  --texte:#3b2530;
  --gris:#7a6b72;
  --blanc:#ffffff;
  --ombre:0 8px 30px rgba(190,30,107,.12);
  --ombre-sm:0 3px 12px rgba(190,30,107,.10);
  --radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:'Quicksand',system-ui,-apple-system,Segoe UI,sans-serif;
  color:var(--texte);background:var(--rose-fond);line-height:1.65;
}
img{max-width:100%;display:block}
a{color:var(--rose-fonce);text-decoration:none}
a:hover{text-decoration:underline}
.container{width:100%;max-width:1080px;margin:0 auto;padding:0 20px}
.muted{color:var(--gris)}
h1,h2,h3{font-weight:700;line-height:1.2;color:var(--texte)}
h2.section-title{font-size:1.9rem;text-align:center;margin:0 0 .3em}
.section-subtitle{text-align:center;color:var(--gris);max-width:620px;margin:0 auto 2rem}
.script{font-family:'Pacifico',cursive;font-weight:400}

/* Boutons */
.btn{
  display:inline-block;background:var(--rose);color:#fff;border:none;
  padding:.85rem 1.6rem;border-radius:999px;font-weight:600;font-size:1rem;
  cursor:pointer;transition:.2s;text-decoration:none;font-family:inherit;
  box-shadow:0 4px 14px rgba(236,72,153,.35);
}
.btn:hover{background:var(--rose-fonce);text-decoration:none;transform:translateY(-1px)}
.btn--sm{padding:.5rem 1rem;font-size:.9rem}
.btn--ghost{background:#fff;color:var(--rose-fonce);border:2px solid var(--rose-clair);box-shadow:none}
.btn--ghost:hover{background:var(--rose-pale);color:var(--rose-fonce)}
.btn--vert{background:var(--vert);box-shadow:0 4px 14px rgba(22,163,74,.3)}
.btn--vert:hover{background:#0f7a37}
.btn--danger{background:#dc2626;box-shadow:none}
.btn--danger:hover{background:#b91c1c}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* En-tête */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--rose-pale)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;height:66px}
.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;color:var(--rose-fonce);font-size:1.15rem}
.brand:hover{text-decoration:none}
.brand__heart{color:var(--rose);font-size:1.4rem}
.main-nav{display:flex;align-items:center;gap:1.4rem}
.main-nav a{color:var(--texte);font-weight:600}
.main-nav a:hover{color:var(--rose-fonce);text-decoration:none}
.nav-toggle{display:none;background:none;border:none;font-size:1.6rem;color:var(--rose-fonce);cursor:pointer}

/* Hero */
.hero{position:relative;background:linear-gradient(160deg,#fde5ef 0%,#fbcfe8 100%);overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 15% 30%,rgba(255,255,255,.6) 0 6px,transparent 7px),radial-gradient(circle at 85% 20%,rgba(255,255,255,.4) 0 5px,transparent 6px);opacity:.5;pointer-events:none}
.hero__inner{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center;padding:3.5rem 0;position:relative;z-index:1}
.hero__name{font-family:'Pacifico',cursive;font-size:3.4rem;color:var(--rose-fonce);margin:0 0 .2rem;line-height:1}
.hero__tag{font-size:1.15rem;color:var(--rose-fonce);font-style:italic;margin:0 0 1rem}
.hero__slogan{font-size:1.05rem;color:var(--texte);margin-bottom:1.5rem;max-width:34ch}
.hero__badges{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1.6rem}
.badge{background:#fff;border-radius:999px;padding:.5rem 1.1rem;font-weight:700;color:var(--rose-fonce);box-shadow:var(--ombre-sm);display:inline-flex;align-items:center;gap:.4rem}
.badge--or{background:linear-gradient(135deg,#ffe08a,#f5b301);color:#7a4a00}
.hero__cta{display:flex;gap:.8rem;flex-wrap:wrap}
.hero__visual{position:relative}
.hero__photo{width:100%;border-radius:24px;box-shadow:var(--ombre);object-fit:cover;aspect-ratio:4/5;background:#fff}
.hero__photo-ph{width:100%;aspect-ratio:4/5;border-radius:24px;box-shadow:var(--ombre);background:linear-gradient(135deg,#fff,#fde5ef);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--rose);text-align:center;padding:2rem}
.hero__photo-ph .big{font-size:4rem}

/* Bandeau stats */
.stats-band{background:var(--rose);color:#fff}
.stats-band__inner{display:flex;justify-content:space-around;flex-wrap:wrap;gap:1rem;padding:1.4rem 0;text-align:center}
.stat b{display:block;font-size:1.8rem;line-height:1}
.stat span{font-size:.9rem;opacity:.9}

/* Sections */
section.block{padding:3.5rem 0}
.block--alt{background:#fff}

/* Grille des cases */
.grid-legend{display:flex;gap:1.4rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.6rem;font-size:.9rem;font-weight:600}
.grid-legend span{display:inline-flex;align-items:center;gap:.45rem}
.dot{width:16px;height:16px;border-radius:5px;display:inline-block}
.dot--libre{background:#fff;border:2px solid var(--rose-clair)}
.dot--reserve{background:#fde68a;border:2px solid #f59e0b}
.dot--paye{background:#bbf7d0;border:2px solid var(--vert)}
.cases-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;max-width:720px;margin:0 auto}
.case{
  aspect-ratio:1;border:2px solid var(--rose-clair);background:#fff;border-radius:12px;
  font-weight:700;color:var(--rose-fonce);font-size:.95rem;cursor:pointer;transition:.15s;
  display:flex;align-items:center;justify-content:center;font-family:inherit;
}
.case:hover:not(:disabled){background:var(--rose-pale);transform:translateY(-2px)}
.case.is-selected{background:var(--rose);color:#fff;border-color:var(--rose);box-shadow:0 4px 12px rgba(236,72,153,.4)}
.case.is-reserve{background:#fde68a;border-color:#f59e0b;color:#92600a;cursor:not-allowed}
.case.is-paye{background:#bbf7d0;border-color:var(--vert);color:#166534;cursor:not-allowed}

/* Panier flottant */
.panier{
  position:sticky;bottom:16px;margin:1.8rem auto 0;max-width:720px;background:#fff;
  border-radius:var(--radius);box-shadow:var(--ombre);padding:1rem 1.3rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  border:2px solid var(--rose-pale);
}
.panier__info b{color:var(--rose-fonce)}
.panier__nums{font-size:.85rem;color:var(--gris);max-width:340px}

/* Cartes lots */
.lots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4rem}
.lot-card{background:#fff;border-radius:var(--radius);box-shadow:var(--ombre-sm);overflow:hidden;text-align:center;border:1px solid var(--rose-pale);transition:.2s}
.lot-card:hover{transform:translateY(-4px);box-shadow:var(--ombre)}
.lot-card__img{aspect-ratio:16/10;background:linear-gradient(135deg,#fde5ef,#fbcfe8);display:flex;align-items:center;justify-content:center;font-size:3rem}
.lot-card__img img{width:100%;height:100%;object-fit:cover}
.lot-card__body{padding:1.2rem}
.lot-card__rank{display:inline-block;background:var(--or);color:#7a4a00;font-weight:700;border-radius:999px;padding:.15rem .8rem;font-size:.8rem;margin-bottom:.5rem}
.lot-card h3{margin:.2rem 0}
.tirage-band{background:linear-gradient(135deg,var(--rose),var(--rose-fonce));color:#fff;border-radius:var(--radius);padding:2rem;text-align:center;box-shadow:var(--ombre);margin-top:2rem}
.tirage-band .date{font-size:2rem;font-weight:700;font-family:'Pacifico',cursive}

/* Cartes / contenu */
.card{background:#fff;border-radius:var(--radius);box-shadow:var(--ombre-sm);padding:2rem;border:1px solid var(--rose-pale)}
.prose{max-width:760px;margin:0 auto}
.prose p{margin:0 0 1rem}
.partenaire{display:flex;gap:1.2rem;align-items:center;background:var(--rose-pale);border-radius:var(--radius);padding:1.4rem 1.6rem;margin-top:1.5rem}
.partenaire .big{font-size:2.4rem}

/* Formulaires */
.form-row{margin-bottom:1.1rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
label{display:block;font-weight:600;margin-bottom:.35rem;font-size:.95rem}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password],input[type=date],input[type=url],select,textarea{
  width:100%;padding:.7rem .9rem;border:2px solid var(--rose-pale);border-radius:12px;
  font-family:inherit;font-size:1rem;background:#fff;color:var(--texte);
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--rose)}
textarea{resize:vertical;min-height:90px}
.hint{font-size:.85rem;color:var(--gris);margin-top:.3rem}
.check{display:flex;gap:.6rem;align-items:flex-start}
.check input{margin-top:.25rem;width:auto}
fieldset{border:2px solid var(--rose-pale);border-radius:14px;padding:1rem 1.2rem;margin:0 0 1.1rem}
legend{font-weight:700;padding:0 .5rem;color:var(--rose-fonce)}
.pay-option{display:flex;gap:.7rem;align-items:flex-start;padding:.8rem;border:2px solid var(--rose-pale);border-radius:12px;margin-bottom:.7rem;cursor:pointer}
.pay-option:hover{background:var(--rose-pale)}
.pay-option input{margin-top:.25rem}
.pay-option.is-active{border-color:var(--rose);background:var(--rose-pale)}

/* Flash */
.flash{max-width:1080px;margin:1rem auto;padding:.9rem 1.2rem;border-radius:12px;font-weight:600}
.flash--success{background:#dcfce7;color:#14532d;border:1px solid #86efac}
.flash--error{background:#fee2e2;color:#7f1d1d;border:1px solid #fca5a5}
.flash--info{background:#e0f2fe;color:#0c4a6e;border:1px solid #7dd3fc}

/* Récap / merci */
.recap{background:var(--rose-pale);border-radius:var(--radius);padding:1.4rem 1.6rem;margin:1.5rem 0}
.recap dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.2rem;margin:0}
.recap dt{font-weight:700;color:var(--rose-fonce)}
.pay-instructions{white-space:pre-line;background:#fff;border-radius:12px;padding:1.2rem;border:2px dashed var(--rose-clair);margin-top:1rem}

/* Pied de page */
.site-footer{background:var(--texte);color:#f5e5ee;margin-top:3rem}
.site-footer__inner{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;padding:2.6rem 0}
.site-footer__title{font-weight:700;color:#fff;margin-bottom:.7rem}
.site-footer a{display:block;color:#f0c9dd;margin-bottom:.3rem}
.site-footer a:hover{color:#fff}
.site-footer .muted{color:#c99cb2}
.site-footer__bottom{border-top:1px solid rgba(255,255,255,.12);padding:1rem 0}
.site-footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;max-width:1080px;margin:0 auto;padding:1rem 20px;font-size:.85rem;color:#c99cb2}

/* ===================== Admin ===================== */
.admin-body{background:#f6f3f8}
.admin-header{background:var(--rose-fonce);color:#fff}
.admin-header__inner{display:flex;align-items:center;justify-content:space-between;height:60px}
.admin-header a{color:#fff;font-weight:600;margin-left:1.2rem}
.admin-nav{display:flex;gap:.3rem;background:#fff;border-radius:12px;padding:.4rem;box-shadow:var(--ombre-sm);margin:1.5rem 0;flex-wrap:wrap}
.admin-nav a{padding:.55rem 1rem;border-radius:8px;color:var(--texte);font-weight:600}
.admin-nav a:hover{background:var(--rose-pale);text-decoration:none}
.admin-nav a.active{background:var(--rose);color:#fff}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.6rem}
.kpi{background:#fff;border-radius:14px;padding:1.2rem;box-shadow:var(--ombre-sm);border-left:5px solid var(--rose)}
.kpi b{display:block;font-size:1.9rem;color:var(--rose-fonce);line-height:1}
.kpi span{color:var(--gris);font-size:.9rem}
.kpi--vert{border-color:var(--vert)} .kpi--vert b{color:var(--vert)}
.kpi--or{border-color:var(--or)} .kpi--or b{color:#b07d00}
table.data{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--ombre-sm)}
table.data th,table.data td{padding:.7rem .9rem;text-align:left;border-bottom:1px solid #f0e6ec;font-size:.92rem}
table.data th{background:var(--rose-pale);color:var(--rose-fonce);font-weight:700}
table.data tr:hover td{background:#fdf7fb}
.tag{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.78rem;font-weight:700}
.tag--attente{background:#fef3c7;color:#92600a}
.tag--paye{background:#dcfce7;color:#166534}
.tag--annule{background:#fee2e2;color:#991b1b}
.admin-card{background:#fff;border-radius:14px;box-shadow:var(--ombre-sm);padding:1.6rem;margin-bottom:1.4rem}
.admin-card h3{margin-top:0;color:var(--rose-fonce);border-bottom:2px solid var(--rose-pale);padding-bottom:.5rem}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#fde5ef,#fbcfe8);padding:20px}
.login-box{background:#fff;border-radius:20px;box-shadow:var(--ombre);padding:2.5rem;max-width:400px;width:100%;text-align:center}
.login-box h1{color:var(--rose-fonce);margin-top:0}

/* Responsive */
@media(max-width:860px){
  .hero__inner{grid-template-columns:1fr}
  .hero__visual{order:-1;max-width:320px;margin:0 auto}
  .hero__name{font-size:2.6rem}
  .site-footer__inner{grid-template-columns:1fr 1fr}
  .cases-grid{grid-template-columns:repeat(6,1fr)}
}
@media(max-width:640px){
  .nav-toggle{display:block}
  .main-nav{display:none;position:absolute;top:66px;left:0;right:0;background:#fff;flex-direction:column;padding:1rem;gap:.4rem;box-shadow:var(--ombre);border-bottom:1px solid var(--rose-pale)}
  body.nav-open .main-nav{display:flex}
  .form-grid{grid-template-columns:1fr}
  .cases-grid{grid-template-columns:repeat(5,1fr)}
  .site-footer__inner{grid-template-columns:1fr}
  .recap dl{grid-template-columns:1fr}
  .recap dt{margin-top:.5rem}
}
