/* Fidélité : compteur et piste, sans empilement de cartes. */
.ppf-account .ppf-loyalty-nav { padding:12px 18px; border:1px solid #c7ff48; color:#c7ff48; font-weight:bold; text-decoration:none; }
.ppf-members .ppf-account__nav a.ppf-loyalty-nav[aria-current] { background:#c7ff48; color:#06110d; text-decoration:none; }
.ppf-account .ppf-loyalty-entry { display:flex; flex-direction:column; gap:8px; padding:20px 24px; margin:24px 0; border-left:5px solid #c7ff48; background:#15231a; color:#f5f2e8; text-decoration:none; max-width:440px; }
.ppf-loyalty-entry span { font-size:11px; letter-spacing:.12em; color:#c7ff48; }
.ppf-loyalty-entry strong { font-size:24px; }
.ppf-loyalty__demo { margin:0 0 20px; font-size:12px; padding:12px 0; color:#b6bfb5; border-bottom:1px solid #344536; }
.ppf-loyalty__back { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:13px; }
.ppf-loyalty__back a { min-height:44px; display:inline-flex; align-items:center; }
.ppf-loyalty__heading { padding:32px 0 24px; }
.ppf-loyalty__heading > p:first-child { font-size:11px; text-transform:uppercase; letter-spacing:.15em; color:#c7ff48; }
.ppf-loyalty__heading h1 { font-size:clamp(36px,4.5vw,64px); margin:16px 0; }
.ppf-loyalty__heading > p:last-child { color:#b6bfb5; line-height:1.6; }
.ppf-loyalty__performance { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:8%; padding:32px 0 40px; border-top:1px solid #52683b; }
.ppf-loyalty__score h2 { font-size:14px; font-weight:normal; margin:0; color:#b6bfb5; }
.ppf-loyalty__score > p { display:flex; align-items:baseline; gap:16px; margin:8px 0 0; }
.ppf-loyalty__score strong { color:#c7ff48; font-style:italic; font-weight:700; font-size:clamp(64px,10vw,148px); line-height:1.1; letter-spacing:-.065em; overflow-wrap:anywhere; min-width:0; }
.ppf-loyalty__score > p > span { font-size:18px; color:#c7ff48; }
.ppf-loyalty__target { align-self:center; border-left:1px solid #344536; padding-left:32px; }
.ppf-loyalty .ppf-loyalty__eyebrow { color:#c7ff48; text-transform:uppercase; font-size:11px; letter-spacing:.12em; }
.ppf-loyalty__target h2 { font-size:clamp(24px,2.5vw,34px); line-height:1.15; margin:14px 0; overflow-wrap:anywhere; }
.ppf-loyalty__target > p:last-child { color:#b6bfb5; line-height:1.6; max-width:44ch; }
.ppf-loyalty__target strong { color:#f5f2e8; }
.ppf-loyalty__track { grid-column:1/-1; margin-top:42px; }
.ppf-loyalty__track-label { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:13px; margin-bottom:16px; }
.ppf-loyalty__track-label > span { color:#b6bfb5; }
.ppf-loyalty__track progress { display:block; appearance:none; width:100%; height:18px; border:0; background:#203225; color:#c7ff48; }
.ppf-loyalty__track progress::-webkit-progress-bar { background:#203225; }
.ppf-loyalty__track progress::-webkit-progress-value { background:repeating-linear-gradient(115deg,#c7ff48 0,#c7ff48 18px,#a1d62c 18px,#a1d62c 20px); }
.ppf-loyalty__track progress::-moz-progress-bar { background:#c7ff48; }
.ppf-loyalty__markers { display:flex; justify-content:space-between; gap:20px; margin-top:14px; color:#b6bfb5; font-size:12px; line-height:1.8; }
.ppf-loyalty__markers > span:last-child { text-align:right; }
.ppf-loyalty__markers b { font-size:15px; color:#f5f2e8; }
.ppf-loyalty__secondary { margin-top:8px; }
.ppf-loyalty__secondary details { border-top:1px solid #344536; }
.ppf-loyalty__secondary summary { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 0; min-height:64px; cursor:pointer; list-style:none; }
.ppf-loyalty__secondary summary::-webkit-details-marker { display:none; }
.ppf-loyalty__secondary summary > span:last-child { color:#c7ff48; font-size:24px; }
.ppf-loyalty__secondary details[open] summary > span:last-child { transform:rotate(45deg); }
.ppf-loyalty__secondary summary small { margin-left:20px; color:#b6bfb5; font-size:12px; }
.ppf-loyalty__secondary p { line-height:1.7; color:#b6bfb5; max-width:80ch; }
.ppf-loyalty__secondary ol { list-style:none; padding:0; margin:0 0 20px; }
.ppf-loyalty__secondary li { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:16px 0; border-top:1px solid #263b2e; }
.ppf-loyalty__secondary li time { font-size:12px; color:#b6bfb5; }
.ppf-loyalty__secondary li p { margin:6px 0 0; color:#f5f2e8; overflow-wrap:anywhere; }
.ppf-loyalty__secondary li > strong { white-space:nowrap; font-size:24px; }
.ppf-loyalty__secondary li small { font-size:12px; font-weight:normal; }
.ppf-loyalty__secondary .is-credit { color:#c7ff48; }
.ppf-loyalty__secondary .is-debit { color:#d5b5ac; }
.ppf-loyalty__end { border-top:1px solid #344536; padding-top:24px; margin-top:16px; }
.ppf-loyalty__end a { display:inline-flex; align-items:center; min-height:44px; }
.ppf-loyalty summary:focus-visible,.ppf-account .ppf-loyalty-entry:focus-visible { outline:2px solid #c7ff48; outline-offset:4px; }
@media(max-width:700px) {
  .ppf-loyalty__heading { padding:20px 0; }
  .ppf-loyalty__performance { grid-template-columns:minmax(0,1fr); padding-top:24px; }
  .ppf-loyalty__score strong { font-size:clamp(60px,21vw,112px); }
  .ppf-loyalty__target { margin-top:28px; padding-left:0; border-left:0; }
  .ppf-loyalty__track { margin-top:24px; }
  .ppf-loyalty__secondary summary small { display:block; margin:8px 0 0; }
}

@media(max-width:760px) {
  .ppf-members .ppf-account__nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 16px; }
  .ppf-members .ppf-account__nav a.ppf-loyalty-nav { padding:10px 12px; }
}
.ppf-loyalty__promise { display:flex; align-items:center; gap:clamp(20px,4vw,50px); padding:clamp(24px,4vw,40px) 0; margin:0 0 36px; border-top:2px solid #c7ff48; border-bottom:1px solid #3e5941; }
.ppf-loyalty__promise-number { font-size:clamp(76px,12vw,160px); font-weight:900; font-style:italic; line-height:1; color:#c7ff48; }
.ppf-loyalty__promise h2 { font-size:clamp(28px,4vw,48px); line-height:1.1; margin:8px 0 16px; }
.ppf-loyalty__promise p { max-width:62ch; line-height:1.6; }
@media(max-width:480px) { .ppf-loyalty__promise { align-items:flex-start; gap:16px; } .ppf-loyalty__promise-number { font-size:64px; } }
.ppf-loyalty__visits { margin:32px 0; padding:clamp(20px,4vw,48px); border-top:2px solid #c7ff48; background:#10271b; }
.ppf-loyalty__visits h2 { font-size:clamp(30px,4vw,56px); line-height:1.05; margin:12px 0 24px; }
.ppf-loyalty__stamps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; padding:0; list-style:none; max-width:700px; margin:28px 0; }
.ppf-loyalty__stamps li { border-top:3px solid #566b5b; padding:14px 0; color:#b8c5b9; }
.ppf-loyalty__stamps .is-complete { color:#c7ff48; border-color:#c7ff48; }
.ppf-loyalty__stamps span { display:block; font-size:clamp(26px,5vw,60px); font-weight:800; line-height:1.1; }
.ppf-loyalty__stamps small { display:block; font-size:12px; margin-top:8px; }
.ppf-loyalty__reward strong { display:block; color:#c7ff48; font-size:24px; }
.ppf-loyalty__visit-rules { max-width:75ch; color:#b8c5b9; }
.ppf-loyalty__visit-history { margin-top:28px; padding-top:18px; border-top:1px solid #566b5b; }
.ppf-loyalty__visit-history summary { cursor:pointer; }
.ppf-loyalty__visit-history li { padding:12px 0; }
@media(max-width:480px) { .ppf-loyalty__stamps { gap:8px; } }
