/* Accueil — l'affiche punaisée */
.hero { padding: 40px 0 56px; position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 50% at 85% 20%, color-mix(in srgb, var(--punaise-vive) 10%, transparent), transparent 70%); pointer-events: none; }
.hero__grille { display: grid; gap: 36px; position: relative; }
@media (min-width: 1000px) { .hero__grille { grid-template-columns: 1.05fr 1fr; align-items: center; gap: 56px; } .hero { padding: 64px 0 80px; } }
.section { padding: 64px 0; }
@media (min-width: 900px) { .section { padding: 92px 0; } }
.section h2 { max-width: 22ch; }
.section--papier { background: var(--papier-2); }
.section--encre { background: var(--encre); color: #EDE7D9; }
.section--encre h2 { color: #FFFFFF; } .section--encre h2 em { color: #FB923C; }
.section--encre .surtitre { color: #A9A393; }
:root[data-theme="dark"] .section--encre { background: #111829; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .section--encre { background: #111829; } }
.etapes { display: grid; gap: 28px; }
@media (min-width: 900px) { .etapes { grid-template-columns: .8fr 1.2fr; align-items: start; } }
.etapes__liste { list-style: none; padding: 0; margin: 0; counter-reset: e; display: grid; gap: 14px; }
.etapes__liste li { counter-increment: e; background: var(--surface); border: 1px solid var(--filet); border-radius: var(--rayon); padding: 18px 20px 18px 70px; position: relative; }
.etapes__liste li::before { content: counter(e); position: absolute; left: 20px; top: 16px; width: 34px; height: 34px; border-radius: 50%; background: var(--punaise); color: var(--sur-punaise); font: 600 1.05rem var(--titre); display: flex; align-items: center; justify-content: center; }
.tarifs__intro { color: #CFC8B8; max-width: 60ch; }
.tarifs { display: grid; gap: 18px; margin-top: 30px; align-items: stretch; }
@media (min-width: 960px) { .tarifs { grid-template-columns: 1fr 1.08fr 1fr; } }
.tarif { background: #FFFDF8; color: #14213D; border-radius: 18px; padding: 26px 24px; display: flex; flex-direction: column; position: relative; }
.tarif ul { list-style: none; padding: 0; margin: 16px 0 22px; display: grid; gap: 8px; font-size: .95rem; flex: 1; }
.tarif li { padding-left: 22px; position: relative; } .tarif li::before { content: "✓"; position: absolute; left: 0; color: #C2410C; font-weight: 700; }
.tarif__nom { font-weight: 700; margin: 0; }
.tarif__prix { font-family: var(--titre); font-size: 2.6rem; font-weight: 600; margin: 6px 0 0; line-height: 1; }
.tarif__prix small { font: 500 1rem var(--corps); color: #5B6472; }
.tarif__note { font-size: .86rem; color: #5B6472; margin: 6px 0 0; }
.tarif .bouton { background: #C2410C; border-color: #C2410C; color: #fff; }
.tarif--vedette { box-shadow: 0 0 0 3px #FB923C, 0 30px 60px -20px rgba(0,0,0,.6); }
@media (min-width: 960px) { .tarif--vedette { transform: translateY(-10px); } }
.tarif__ruban { position: absolute; top: -13px; left: 24px; background: #EA580C; color: #fff; font: 700 .7rem var(--corps); letter-spacing: .08em; text-transform: uppercase; padding: 5px 11px; border-radius: 99px; margin: 0; }
.bouton--contour-clair { background: transparent !important; color: #14213D !important; border-color: #CFC5AF !important; }
.tarifs__garantie { margin-top: 22px; font-size: .9rem; color: #CFC8B8; }
.tarifs__garantie a { color: #FDBA74; }

.hero h1 { font-size: clamp(2.1rem, 4.4vw, 3.5rem); max-width: 17ch; }
@media (min-width: 1000px) { .hero__grille { grid-template-columns: 1.15fr .85fr; } }
.hero__sous { font-size: 1.15rem; color: var(--encre-2); max-width: 44ch; margin-bottom: 1.8em; }
.hero .actions { align-items: center; gap: 22px; }
.hero__lien { color: var(--encre-2); font-weight: 600; text-underline-offset: 4px; }
.hero__lien:hover { color: var(--punaise); }

/* La pile : trois vraies premières pages générées, le règlement devant. */
.pile { position: relative; margin: 12px auto 0; width: min(88%, 440px); padding: 0 34px 0 0; }
.pile__avant { position: relative; transform: rotate(-1.2deg); z-index: 3; }
.pile__feuille { display: block; width: 100%; height: auto; border-radius: 3px; background: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.05), 0 26px 44px -24px rgba(20,33,61,.5); }
.pile__feuille--2, .pile__feuille--3 { position: absolute; top: 0; width: calc(100% - 34px); }
.pile__feuille--2 { left: 18px; top: 12px; transform: rotate(2.4deg); z-index: 2; }
.pile__feuille--3 { left: 34px; top: 22px; transform: rotate(5deg); z-index: 1; opacity: .92; }
.pile__punaise { position: absolute; top: -10px; left: 50%; width: 22px; height: 22px; margin-left: -11px; border-radius: 50%; z-index: 4; background: radial-gradient(circle at 35% 30%, #FDBA8C, #EA580C 55%, #9A3412); box-shadow: 0 4px 6px rgba(0,0,0,.25); }
.pile figcaption { margin-top: 26px; font-size: .88rem; color: var(--encre-3); text-align: center; }
@media (min-width: 1000px) { .pile { margin: 0 0 0 auto; width: 440px; } }

.section__intro { color: var(--encre-2); max-width: 56ch; font-size: 1.05rem; }
.pieces { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 18px; margin-top: 30px; }
@media (min-width: 900px) { .pieces { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; } }
.pieces__item { margin: 0; }
.pieces__item img { display: block; width: 100%; height: auto; border-radius: 3px; background: #fff; box-shadow: 0 18px 32px -22px rgba(20,33,61,.45), 0 0 0 1px var(--filet); }
.pieces__item figcaption { margin-top: 12px; font-weight: 600; font-size: .95rem; }
.secteurs-liens { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 36px; font-size: .92rem; color: var(--encre-3); }
.secteurs-liens a { color: var(--encre-2); text-underline-offset: 3px; }
.secteurs-liens a:hover { color: var(--punaise); }

.final { text-align: center; margin-top: 36px; }
