.loyalty-section{margin:0 clamp(20px,5vw,80px) 70px;padding:clamp(28px,5vw,72px);background:#e8edce;color:#351920;border-radius:28px;scroll-margin-top:110px;overflow:hidden}
.loyalty-heading{display:grid;grid-template-columns:1.15fr 1fr;gap:32px;align-items:end;margin-bottom:48px}
.loyalty-section h2{font-size:clamp(2.5rem,4.5vw,4.75rem);line-height:1.06;margin:0;letter-spacing:-.025em}.loyalty-section h2 em{color:#49603b}
.loyalty-heading p{font-size:1rem;line-height:1.75;margin:0;max-width:42ch}.loyalty-heading strong{font-weight:650}
.loyalty-stage{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.loyalty-stage output{font-size:1.2rem;font-weight:650}.loyalty-stage span{font-size:.875rem;color:#49603b}
.loyalty-prices{display:grid;grid-template-columns:1fr 1fr;margin-bottom:32px;border-block:1px solid #a6b28f}
.loyalty-price{padding:28px 0;min-width:0}.loyalty-price+ .loyalty-price{border-left:1px solid #a6b28f;padding-left:40px}
.loyalty-price h3{font-size:1rem;font-weight:600;margin:0 0 14px}.loyalty-amount{display:flex;align-items:baseline;gap:8px;white-space:nowrap;font-variant-numeric:tabular-nums}.loyalty-amount strong{font-size:clamp(2.5rem,5vw,4.8rem);font-weight:500;letter-spacing:-.035em;line-height:1.12;display:inline-block}.loyalty-amount>span{font-size:1.5rem}.loyalty-amount s{margin-left:8px;font-size:1.1rem;color:#655d53}.loyalty-amount s[hidden]{display:none}.loyalty-price p{font-size:.85rem;color:#49603b;margin:12px 0 0}
.loyalty-track-label{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px;font-size:.9rem}.loyalty-track-label span{color:#49603b;font-size:.8rem}
.loyalty-rail{position:relative;height:48px}.loyalty-rail:before,.loyalty-fill{position:absolute;left:14px;right:14px;top:22px;height:3px;background:#b7c1a3;content:'';pointer-events:none}.loyalty-fill{background:#49603b;transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease-out,cubic-bezier(.23,1,.32,1))}
.loyalty-rail input{position:relative;display:block;width:100%;height:48px;margin:0;padding:0;background:transparent;appearance:none;cursor:ew-resize;touch-action:pan-y;accent-color:#49603b;border:0;border-radius:0;box-shadow:none}
.loyalty-rail input::-webkit-slider-runnable-track{background:transparent;height:3px}.loyalty-rail input::-webkit-slider-thumb{appearance:none;width:28px;height:28px;margin-top:-12px;border:6px solid #49603b;border-radius:50%;background:#f8f5ed;box-shadow:0 3px 8px #35192020}.loyalty-rail input::-moz-range-track{background:transparent;height:3px}.loyalty-rail input::-moz-range-thumb{width:16px;height:16px;border:6px solid #49603b;border-radius:50%;background:#f8f5ed}.loyalty-rail input:focus-visible{outline:2px solid #351920;outline-offset:4px;border-radius:8px}
.loyalty-stops{display:flex;justify-content:space-between;gap:2px;margin-top:4px}.loyalty-stops button{border:0;background:transparent;color:#5e654f;font:inherit;font-size:.8rem;min-height:44px;min-width:44px;padding:6px;border-radius:8px;cursor:pointer}.loyalty-stops button[aria-pressed=true]{background:#49603b;color:#fff}.loyalty-stops button:focus-visible{outline:2px solid #351920;outline-offset:2px}
.loyalty-foot{display:flex;gap:30px;justify-content:space-between;margin-top:28px;padding-top:24px;border-top:1px solid #a6b28f;font-size:.875rem;line-height:1.65}.loyalty-foot p{margin:0;max-width:67ch}.loyalty-foot a{color:inherit;white-space:nowrap;text-underline-offset:5px}
.loyalty-section details{margin-top:20px;font-size:.875rem}.loyalty-section details summary{font-weight:600}.loyalty-section details p{line-height:1.7;max-width:80ch}.loyalty-section .loyalty-period-help{font-size:.75rem;color:#5e654f;margin:14px 0 0}
@media(hover:hover) and (pointer:fine){.loyalty-stops button:hover{background:#d0d9b7;color:#351920}}
@media(max-width:700px){.loyalty-section{margin:0 16px 40px;padding:28px 20px;border-radius:20px}.loyalty-heading{grid-template-columns:1fr;gap:24px;margin-bottom:30px}.loyalty-section h2{font-size:2.65rem}.loyalty-heading p{font-size:.95rem}.loyalty-price+.loyalty-price{padding-left:16px}.loyalty-price h3{font-size:.85rem}.loyalty-amount{gap:4px;flex-wrap:wrap}.loyalty-amount strong{font-size:2.35rem}.loyalty-amount>span{font-size:1.1rem}.loyalty-amount s{font-size:.85rem;margin-left:3px}.loyalty-price p{font-size:.77rem;max-width:18ch;min-height:2.8em}.loyalty-stop-word{display:none}.loyalty-stops button{font-size:.7rem;min-width:28px;padding:6px 2px}.loyalty-foot{flex-direction:column;gap:14px}.loyalty-track-label{align-items:start}.loyalty-track-label span{max-width:14ch;text-align:right}.loyalty-stage{gap:6px}.loyalty-stage span{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){.loyalty-fill{transition:none}}

/* Une progression souple, sans quadrillage autour des prix. */
.loyalty-section{border-radius:64px 64px 48px 48px;background:#edf0dd;padding-bottom:44px}
.loyalty-heading{margin-bottom:36px}.loyalty-heading h2 em{color:#627853}
.loyalty-prices{border:0;background:#faf9f2;border-radius:52px 70px 62px 44px;padding:8px 36px;margin:0 0 30px;gap:36px}
.loyalty-price{padding:28px 0}.loyalty-price+.loyalty-price{border:0;padding-left:20px}
.loyalty-price h3{font-weight:500;color:#627853}.loyalty-amount strong{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,5.8vw,5.8rem);letter-spacing:-.025em}
.loyalty-stage{padding-inline:8px}.loyalty-stage output{font-weight:500}.loyalty-stage span{color:#627853}
.loyalty-rail{height:136px;margin-top:-4px}.loyalty-rail:before{display:none}
.loyalty-curve{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.loyalty-curve path{fill:none;stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke}
.loyalty-curve-base{stroke:#c4ceb7}.loyalty-curve-progress{stroke:#627853}
.loyalty-curve-dot{position:absolute;left:0;top:0;width:28px;height:28px;box-sizing:border-box;border:6px solid #627853;border-radius:50%;background:#faf9f2;pointer-events:none;transition:transform 200ms var(--ease-out)}
.loyalty-rail input{height:100%;opacity:0;position:absolute;inset:0}
.loyalty-rail:has(input:focus-visible){outline:2px solid #627853;outline-offset:4px;border-radius:28px}
.loyalty-stops button{border-radius:999px;padding-inline:12px}.loyalty-stops button[aria-pressed=true]{background:#627853}
.loyalty-track-label{padding-inline:8px}.loyalty-foot{border:0;padding-top:16px;margin-top:22px}.loyalty-section details{border:0;padding-inline:8px}
@media(max-width:700px){.loyalty-section{border-radius:36px 36px 28px 28px;padding:30px 18px}.loyalty-heading{gap:20px;margin-bottom:28px}.loyalty-prices{border-radius:30px 42px 34px 28px;padding:4px 16px;gap:18px;margin-bottom:28px}.loyalty-price+.loyalty-price{padding-left:0}.loyalty-price{padding:22px 0}.loyalty-price h3{font-size:.78rem}.loyalty-amount strong{font-size:2.55rem}.loyalty-amount s{display:block;width:100%;margin:0;margin-top:4px}.loyalty-price p{font-size:.73rem;line-height:1.7}.loyalty-rail{height:108px}.loyalty-stops button{padding-inline:5px}.loyalty-stage{padding:0;margin-bottom:18px}.loyalty-foot{margin-top:18px;padding-top:0}.loyalty-heading h2{font-size:2.5rem}.loyalty-section details{padding-inline:0}}
@media(prefers-reduced-motion:reduce){.loyalty-curve-dot{transition:none}}
