:root{
    --ink:#14213d;
    --muted:#4b5872;
    --bg:#f6f8fc;
    --line:#dbe2ef;
    --blue:#1a5fd0;
    --star:#f5b301;
    --white:#fff
}
*{
    box-sizing:border-box
}
html{
    scroll-behavior:smooth
}
body{
    margin:0;
    font:18px/1.65 "Source Sans 3",system-ui,sans-serif;
    color:var(--ink);
    background:var(--bg)
}

h1,h2,h3{
    font-family:"Bricolage Grotesque",system-ui,sans-serif;
    line-height:1.12;
    margin:0 0 .5em
}

h1{
    font-size:clamp(2.1rem,5.5vw,3.4rem);
    font-weight:800;letter-spacing:-.02em
}

h2{
    font-size:clamp(1.5rem,3.5vw,2.1rem);
    font-weight:800;margin-top:1.6em
}

h3{
    font-size:1.2rem;
    font-weight:600
}

p{margin:0 0 1em;max-width:100%}
a{color:var(--blue)}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.wrap{max-width:55%;margin:0 auto;padding:0 22px}
header{display:flex;justify-content:space-between;align-items:center;padding:18px 0}
.logo{font:800 1.25rem "Bricolage Grotesque",sans-serif;color:var(--ink);text-decoration:none}
.logo span{color:var(--star)}
nav a{margin-left:20px;color:var(--ink);text-decoration:none;font-weight:600}
nav a:hover{color:var(--blue)}
.btn{display:inline-block;background:var(--blue);color:var(--white);padding:14px 26px;border-radius:10px;font-weight:600;text-decoration:none;border:0;font-size:1rem;cursor:pointer;font-family:inherit}
.btn:hover{background:#1450b3}

section{
    padding:48px 0;
    border-top:1px solid var(--line)
}

.post{
    display:block;
    background:var(--white);
    border:1px solid var(--line);
    border-radius:14px;
    padding:22px;
    margin:18px 0;
    text-decoration:none;
    color:var(--ink);
    max-width:680px
}
.post:hover{border-color:var(--blue)}
.post p{margin:0;color:var(--muted)}
.soon li{color:var(--muted);margin:6px 0}
article{max-width:100%;padding:24px 0 56px}
.meta{color:var(--muted);font-size:.95rem}
.note{background:#fff8e1;border-left:4px solid var(--star);padding:14px 18px;border-radius:0 10px 10px 0;max-width:64ch}
.cta{background:var(--white);border:2px solid var(--blue);border-radius:14px;padding:24px;margin:36px 0;max-width:64ch}
.cta p{margin-bottom:14px}
.card{width:min(280px,80vw);aspect-ratio:1;background:var(--white);border-radius:22px;border:1px solid var(--line);box-shadow:0 30px 50px -25px rgba(20,33,61,.4);padding:1px;transform:rotate(-5deg);display:flex;flex-direction:column;justify-content:space-between}
.card .stars{color:var(--star);font-size:1.5rem;letter-spacing:.1em}
.card b{font:800 1.1rem "Bricolage Grotesque",sans-serif}
.qr{display:flex;align-items:flex-end;justify-content:space-between}
.qr i{width:78px;height:78px;border-radius:6px;background:linear-gradient(var(--ink),var(--ink)) 6px 6px/22px 22px no-repeat,linear-gradient(var(--ink),var(--ink)) calc(100% - 6px) 6px/22px 22px no-repeat,linear-gradient(var(--ink),var(--ink)) 6px calc(100% - 6px)/22px 22px no-repeat,repeating-conic-gradient(var(--ink) 0 25%,transparent 0 50%) 0 0/10px 10px}
.nfc{font-size:.85rem;color:var(--muted);max-width:11ch;text-align:right}
.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;padding:36px 0 56px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding:0;list-style:none;counter-reset:s}
.steps li{counter-increment:s;padding-top:14px;border-top:3px solid var(--ink)}
.steps li::before{content:"Étape " counter(s);font-weight:600;color:var(--blue);display:block;margin-bottom:6px}
.price{display:flex;gap:18px;flex-wrap:wrap;margin:24px 0}
.price div{flex:1 1 220px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:22px}
.price .best{border:2px solid var(--blue)}
.price strong{font:800 2.1rem "Bricolage Grotesque",sans-serif;display:block}
details{border-bottom:1px solid var(--line);padding:14px 0;max-width:70ch}
summary{font-weight:600;cursor:pointer}
form{display:grid;gap:16px;max-width:520px;margin-top:20px}
label{font-weight:600;display:grid;gap:6px}
input,select,textarea{font:inherit;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink)}
footer{padding:32px 0 44px;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}
footer p{max-width:none}
@media(max-width:760px){.hero,.steps{grid-template-columns:1fr}nav a{margin-left:14px}.card{margin:10px auto}}
.paye{
    margin-bottom:20px;
}