/* ============================================================
   Parti de Gauche — charte don/adhésion (surcharge de Bootstrap 4).
   Édits de ce fichier = rechargement immédiat (Ctrl+Maj+R), PAS de cache:clear.
   ============================================================ */
:root {
  --rouge:#d71920; --rouge-fonce:#a90f15;
  --vert:#76b82a;  --vert-fonce:#4e8a14;
  --encre:#141414; --papier:#faf7f0; --papier-2:#f1ebdd; --blanc:#fff; --gris:#6b6b6b;
  --font-display:"Anton","Haettenschweiler","Impact","Arial Narrow Bold",sans-serif;
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-serif:"Spectral",Georgia,"Times New Roman",serif;
  --maxw:1140px;
}

/* ---------- Base ---------- */
body { background:var(--papier); color:var(--encre); font-family:var(--font-body); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-wrap:break-word; }
.pg-wrap { max-width:var(--maxw); margin:0 auto; padding:0 clamp(1rem,4vw,2.5rem); }

/* ---------- En-tête ---------- */
.pg-header { background:var(--papier); border-bottom:3px solid var(--encre); position:sticky; top:0; z-index:20; }
.pg-header .pg-bar { max-width:var(--maxw); margin:0 auto; padding:.7rem clamp(1rem,4vw,2.5rem); display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.pg-header__logo { display:flex; align-items:center; gap:.6rem; text-decoration:none; }
.pg-header__logo img { height:44px; width:auto; display:block; }
.pg-header__name { font-family:var(--font-display); font-weight:400; font-size:1.35rem; text-transform:uppercase; letter-spacing:.02em; color:var(--encre); line-height:1; }
.pg-header__back { font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; text-decoration:none; color:var(--encre); border-bottom:2px solid var(--rouge); padding-bottom:2px; white-space:nowrap; }

/* ---------- Hero / pitch ---------- */
.pg-hero { padding:clamp(1.8rem,5vw,3.2rem) 0 clamp(.6rem,2vw,1.2rem); }
.pg-kicker { display:inline-flex; align-items:center; gap:.5rem; background:var(--vert); color:var(--encre); font-weight:800; text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; padding:.38rem .8rem; border-radius:3px; }
.pg-kicker::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--encre); }
.pg-hero h1 { font-family:var(--font-display); font-weight:400; text-transform:uppercase; line-height:.98; font-size:clamp(2.2rem,6vw,4rem); margin:1rem 0 .8rem; text-wrap:balance; }
.pg-hero h1 .hl { background:var(--rouge); color:#fff; padding:.02em .2em; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.pg-hero__sub { font-family:var(--font-serif); font-size:clamp(1.05rem,2.1vw,1.3rem); font-style:italic; color:#2a2926; max-width:38ch; }

/* ---------- Corps 2 colonnes ---------- */
.pg-give { padding-bottom:clamp(2rem,5vw,3.5rem); }
.pg-give__grid { display:grid; grid-template-columns:1fr .95fr; gap:clamp(1.6rem,4vw,3rem); align-items:start; }

/* Colonne arguments */
.pg-hook { background:var(--encre); color:#fff; border-radius:5px; padding:1.3rem 1.4rem; }
.pg-hook__big { font-family:var(--font-display); font-weight:400; line-height:1.02; font-size:clamp(1.6rem,3.2vw,2.2rem); text-transform:uppercase; }
.pg-hook__big em { color:var(--vert); font-style:normal; }
.pg-hook p { font-size:.9rem; color:#d9d6cf; margin-top:.45rem; }
.pg-args { list-style:none; margin:1.3rem 0 0; padding:0; display:flex; flex-direction:column; gap:.85rem; }
.pg-args li { display:flex; gap:.7rem; align-items:flex-start; font-size:.94rem; }
.pg-args .tick { flex:0 0 auto; width:22px; height:22px; border:2px solid var(--vert-fonce); border-radius:50%; color:var(--vert-fonce); display:grid; place-items:center; font-weight:900; font-size:.78rem; margin-top:.12rem; }
.pg-args b { display:block; }
.pg-args small { color:var(--gris); }

/* ---------- Carte formulaire (traitement signature) ---------- */
.pg-card { background:var(--blanc); border:3px solid var(--encre); box-shadow:10px 10px 0 var(--vert); padding:clamp(1.4rem,3vw,1.9rem); border-radius:2px; }
.pg-card--adhesion { box-shadow:10px 10px 0 var(--encre); }
.pg-card__title { font-family:var(--font-display); font-weight:400; text-transform:uppercase; font-size:1.4rem; margin-bottom:1.1rem; }
.pg-section { font-family:var(--font-display); font-weight:400; text-transform:uppercase; font-size:1rem; letter-spacing:.02em; color:var(--encre); margin:1.6rem 0 .8rem; padding-bottom:.35rem; border-bottom:2px solid var(--encre); }
.pg-section:first-of-type { margin-top:.4rem; }

/* Sélecteur de montant (don) */
.pg-amounts { display:grid; grid-template-columns:repeat(4,1fr); gap:.55rem; margin-bottom:.2rem; }
.pg-amount { font-family:var(--font-display); font-weight:400; font-size:1.15rem; padding:.55rem 0; text-align:center; background:var(--papier); border:2px solid var(--encre); border-radius:4px; cursor:pointer; transition:transform .1s, background .12s; }
.pg-amount:hover { background:#efe9dc; }
.pg-amount.is-active { background:var(--vert-fonce); color:#fff; border-color:var(--vert-fonce); }
.pg-amount:active { transform:translateY(1px); }
.pg-amount--wide { grid-column:span 4; font-family:var(--font-body); font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.pg-hint { font-size:.85rem; color:#3a3935; margin:.7rem 0 0; }
.pg-hint b { color:var(--vert-fonce); }

/* Lignes 2 colonnes */
.pg-row2 { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }

/* ---------- Champs Symfony/Bootstrap ---------- */
.pg-card .form-group { margin-bottom:.85rem; }
.pg-card label { font-weight:700; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:#33322e; margin-bottom:.28rem; }
.pg-card .form-control,
.pg-card select,
.pg-card textarea { width:100%; font:inherit; font-size:.95rem; padding:.6rem .7rem; height:auto; background:var(--papier); border:2px solid var(--encre); border-radius:4px; color:var(--encre); }
.pg-card .form-control:focus,
.pg-card select:focus,
.pg-card textarea:focus { outline:3px solid var(--rouge); outline-offset:1px; border-color:var(--encre); box-shadow:none; background:#fff; }
.pg-card textarea { min-height:80px; resize:vertical; }
.pg-card .required::after,
.pg-card label.required::after { content:" *"; color:var(--rouge); }

/* Montant (MoneyType → input-group) : € et champ côte à côte */
.pg-card .input-group { flex-wrap:nowrap; }
.pg-card .input-group .form-control { width:1%; }
.pg-card .input-group-text { background:var(--encre); color:#fff; border:2px solid var(--encre); font-weight:800; }

/* Boutons radio (paymentMode, gender, membershipFee, isRenewed…) */
.pg-card .form-check,
.pg-card .radio,
.pg-card .custom-control { position:relative; padding-left:1.7rem; margin:.35rem 0; }
.pg-card .form-check-input,
.pg-card .radio input,
.pg-card input[type="radio"],
.pg-card input[type="checkbox"] { margin-left:-1.7rem; margin-top:.35rem; accent-color:var(--rouge); }
.pg-card .form-check-label,
.pg-card .radio label { font-weight:500; font-size:.9rem; text-transform:none; letter-spacing:0; color:#2a2926; }

/* Erreurs de validation */
.pg-card .invalid-feedback, .pg-card .form-error-message, .pg-card ul.list-unstyled li { color:var(--rouge); font-size:.8rem; }
.pg-card .is-invalid, .pg-card .form-control.is-invalid { border-color:var(--rouge); }

/* ---------- Bouton CTA ---------- */
.btn--red { display:inline-flex; align-items:center; justify-content:center; gap:.5em; font-family:var(--font-body); font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:1.05rem; padding:.9rem 1.4rem; background:var(--rouge); color:#fff; border:3px solid transparent; border-radius:4px; cursor:pointer; transition:transform .15s, box-shadow .15s, background .15s; }
.btn--red:hover { background:var(--rouge-fonce); color:#fff; transform:translate(-2px,-2px); box-shadow:4px 4px 0 rgba(20,20,20,.85); text-decoration:none; }
.btn--red:active { transform:translate(0,0); box-shadow:none; }
.btn--full { width:100%; }
.btn--big { font-size:1.1rem; padding:1rem 1.4rem; }
.pg-submit-wrap { margin-top:1.3rem; }
.pg-secure { text-align:center; font-size:.74rem; color:var(--gris); margin-top:.7rem; }

/* ---------- Accordéon légal ---------- */
.pg-legal { margin-top:clamp(1.6rem,4vw,2.4rem); border-top:3px solid var(--encre); }
.pg-legal__btn { width:100%; text-align:left; background:none; border:0; cursor:pointer; padding:1rem 0; font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:.88rem; color:var(--encre); display:flex; gap:.6rem; align-items:center; }
.pg-legal__btn .chev { transition:transform .2s; color:var(--rouge); }
.pg-legal.is-open .pg-legal__btn .chev { transform:rotate(90deg); }
.pg-legal__body { display:none; padding-bottom:1.4rem; font-size:.82rem; color:#4a4844; line-height:1.55; max-width:80ch; }
.pg-legal.is-open .pg-legal__body { display:block; }
.pg-legal__body p, .pg-legal__body dd { margin-bottom:.7rem; }
.pg-legal__body dt { font-weight:700; margin-top:.6rem; }
.pg-legal__body a { color:var(--rouge); font-weight:700; }

/* ---------- Pied de page ---------- */
.pg-footer { border-top:4px solid var(--rouge); background:var(--papier-2); margin-top:2rem; }
.pg-footer .pg-bar { max-width:var(--maxw); margin:0 auto; padding:1.5rem clamp(1rem,4vw,2.5rem); font-size:.83rem; color:#4a4844; }

/* ---------- Responsive ---------- */
@media (max-width:820px){
  .pg-give__grid { grid-template-columns:1fr; }
  .pg-card { box-shadow:6px 6px 0 var(--vert); }
  .pg-card--adhesion { box-shadow:6px 6px 0 var(--encre); }
  .pg-row2 { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce){ * { transition:none !important; } }

/* ---------- Adhésion : formulaire long en colonne centrée ---------- */
.pg-form-solo { max-width:720px; margin:0 auto; }
.pg-intro { max-width:720px; margin:0 auto 1.5rem; font-size:.98rem; color:#3a3935; }
.pg-intro b { color:var(--encre); }
.pg-note { font-size:.82rem; color:var(--gris); font-style:italic; }
/* rappel du coût de la cotisation choisie (rempli par pg-forms.js) */
.pg-feehint { font-size:.85rem; color:#3a3935; margin-top:.4rem; }
.pg-feehint b { color:var(--vert-fonce); }
