:root{
  --yellow:#FFD84D;
  --ink:#1B1F1A;
  --coral:#FF6B4A;
  --paper:#FFFFFF;
  --muted:#5C6359;
  --line:#E4E6DF;
  --display:"Bricolage Grotesque",Figtree,system-ui,sans-serif;
  --body:Figtree,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--body)}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:6px}
.wrap{max-width:68rem;margin:0 auto;padding:0 1.5rem}

/* Haut de page jaune */
.top{background:var(--yellow);padding:1.5rem 0 4.5rem}
.brand{display:flex;align-items:center;gap:.6rem;font:800 1.5rem/1 var(--display);text-decoration:none}
.brand svg{width:2.4rem;height:2.4rem}
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center;margin-top:4rem}
h1{font:800 clamp(2.8rem,7vw,5.4rem)/.95 var(--display);letter-spacing:-.02em;margin:0 0 1.5rem}
.lead{font-size:1.25rem;line-height:1.5;max-width:30rem;margin:0}

/* La règle qui change selon la région */
.rule{background:var(--paper);border-radius:1.75rem;padding:1.75rem;box-shadow:0 1.25rem 0 -.6rem var(--ink)}
.regions{display:flex;gap:.4rem;margin:0 0 1.5rem;padding:.3rem;background:#F1F2EC;border-radius:999px;border:0}
.regions legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.regions button{flex:1;font:600 .95rem/1 var(--body);color:var(--ink);background:none;border:0;border-radius:999px;padding:.75rem .5rem;cursor:pointer}
.regions button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.task{display:flex;gap:1rem;align-items:flex-start}
.task-icon{flex:none;width:3rem;height:3rem;border-radius:.9rem;background:var(--yellow);display:grid;place-items:center}
.task-icon svg{width:1.6rem;height:1.6rem}
.task h2{font:600 1.15rem/1.3 var(--body);margin:.1rem 0 .2rem}
.task .legal{display:inline-block;font:600 .8rem/1 var(--body);background:var(--ink);color:var(--paper);border-radius:.4rem;padding:.3rem .45rem;vertical-align:.1em;margin-left:.3rem}
.interval{font:800 clamp(2rem,4vw,2.75rem)/1.05 var(--display);margin:1.25rem 0 .25rem}
.interval-note{color:var(--muted);margin:0 0 1.25rem;font-size:.95rem}
.source{border-top:1px solid var(--line);padding-top:1rem;font-size:.92rem;color:var(--muted);margin:0}
.source a{color:var(--ink);font-weight:600}
.next{display:flex;align-items:center;gap:.5rem;font-weight:600;margin:0 0 1rem}
.dot{width:.75rem;height:.75rem;border-radius:50%;background:var(--coral);flex:none}

/* Sections */
section{padding:5rem 0}
h3{font:800 clamp(1.9rem,4vw,2.75rem)/1.05 var(--display);letter-spacing:-.01em;margin:0 0 1rem;max-width:34rem}
.intro{color:var(--muted);max-width:36rem;margin:0 0 2.5rem}

/* Les rappels : une vraie chronologie */
.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.timeline::before{content:"";position:absolute;left:0;right:0;top:.55rem;height:2px;background:var(--ink)}
.timeline li{position:relative;padding:2rem 1rem 0 0}
.timeline li::before{content:"";position:absolute;top:0;left:0;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--paper);border:2px solid var(--ink)}
.timeline li.due::before{background:var(--coral);border-color:var(--coral)}
.timeline strong{display:block;font:800 1.35rem/1.2 var(--display);margin-bottom:.35rem}
.timeline span{color:var(--muted);font-size:.95rem}

/* Ce que Lareo ne fait pas */
.plain{background:var(--ink);color:var(--paper)}
.plain .intro{color:#B9C0B4}
.nots{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin:0}
.nots div{border-top:2px solid var(--yellow);padding-top:1rem}
.nots dt{font:800 1.4rem/1.2 var(--display);margin-bottom:.4rem}
.nots dd{margin:0;color:#D5DAD0}

/* Pays et prix */
.facts{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.countries{list-style:none;margin:0;padding:0}
.countries li{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line)}
.countries li span{color:var(--muted);text-align:right}

/* Disponibilité */
.get{background:var(--yellow)}
.stores{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}
.store{flex:0 1 17rem;display:block;text-decoration:none;background:var(--ink);color:var(--paper);border-radius:1rem;padding:1rem 1.4rem;min-width:15rem}
.store b{display:block;font:800 1.3rem/1.2 var(--display)}
.store small{font-size:.9rem;color:#D5DAD0}
.store.soon{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.store.soon small{color:var(--ink)}

footer{padding:2.5rem 0;font-size:.95rem;color:var(--muted)}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between}
footer nav{display:flex;flex-wrap:wrap;gap:1.25rem}

@media (max-width:52rem){
  .hero{grid-template-columns:1fr;margin-top:2.5rem;gap:2.5rem}
  .timeline{grid-template-columns:1fr 1fr;row-gap:2.5rem}
  .timeline::before{display:none}
  .nots,.facts{grid-template-columns:1fr}
  section{padding:3.5rem 0}
}
@media (prefers-reduced-motion:no-preference){
  .interval{transition:opacity .2s}
  .interval.swap{opacity:0}
}

/* Barre du haut : marque et langues */
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.langs{display:flex;gap:.25rem}
.langs a{font:600 .9rem/1 var(--body);text-decoration:none;padding:.5rem .6rem;border-radius:.5rem}
.langs a[aria-current="page"]{background:var(--ink);color:var(--yellow)}
.get .intro{color:var(--ink)}
@media (max-width:52rem){.store{flex:1 1 100%}}
