/* Famille Pour qui : une composition signature par page (vitrine, panier, année, circuit) */
.fc-sec { padding: clamp(64px, 8vw, 120px) var(--m); }
.fc-g { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 28px; }
.fc-h1 { font: 800 clamp(2.4rem, 1.2rem + 4.6vw, 6rem)/0.98 var(--font-display); letter-spacing: -0.035em; text-wrap: balance; }
.fc-h2 { font: 800 var(--step-head)/1.02 var(--font-display); letter-spacing: -0.03em; text-wrap: balance; }
.fc-h3 { font: 800 var(--step-lead)/1.1 var(--font-display); letter-spacing: -0.015em; }
.fc-lead { font-size: var(--step-lead); max-width: 40ch; }
.fc-hero { padding: clamp(32px, 6vw, 96px) var(--m) clamp(56px, 7vw, 112px); align-items: center; }
.fc-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.fc-tags li { padding: 4px 12px; border-radius: 999px; background: var(--surface); font-size: var(--step-small); font-weight: 500; }
.fc-go { display: inline-flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; padding: 10px 14px; border-radius: var(--r-md); background: var(--surface); color: inherit; text-decoration: none; font-size: var(--step-small); transition: background-color 200ms var(--ease-out), color 200ms var(--ease-out); }
.fc-go b { font-weight: 800; font-size: var(--step-body); }
.fc-go b::after { content: ' →'; }
.fc-go:hover, .fc-go:focus-visible { background: var(--accent); color: var(--accent-ink); }

/* ===== Commerces : la vitrine et la rue ===== */
.pc-hero__txt { grid-column: 1 / 8; display: grid; gap: 28px; justify-items: start; }
.pc-shop { grid-column: 8 / 13; }
.pc-aw { display: block; width: 100%; height: auto; transform-origin: top; }
.pc-aw .a { fill: var(--accent); }
.pc-aw .b { fill: var(--pastel); }
.pc-shop__body { display: grid; grid-template-columns: 1fr 26%; gap: 10px; padding: 10px; border: 3px solid var(--ink); border-top: 0; background: var(--surface); align-items: end; }
.pc-shop__body img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; }
.pc-door { position: relative; height: 80%; min-height: 120px; border: 3px solid var(--ink); background: var(--bg); }
.pc-door::after { content: ""; position: absolute; right: 8px; top: 50%; width: 8px; height: 8px; border-radius: 50%; background: var(--ink); }
.pc-shop::after { content: ""; display: block; height: 10px; margin-inline: -12px; background: var(--ink); }
.js .pc-shop .pc-aw { transform: scaleY(0); }
.js .pc-shop.is-in .pc-aw { transform: none; transition: transform 900ms var(--ease-out) 250ms; }

.pc-board { margin: 0 var(--m); padding: clamp(28px, 5vw, 72px); border-radius: var(--r-xl); background: var(--night); color: var(--night-ink); }
.pc-board .fc-h2 { grid-column: 1 / 6; }
.pc-board ul { grid-column: 6 / 13; }
.pc-board li { padding: 18px 0; border-bottom: 2px solid color-mix(in srgb, #fff 24%, transparent); font: 700 var(--step-lead)/1.25 var(--font); }
.pc-board__non { grid-column: 6 / 13; color: var(--night-muted); max-width: 56ch; }
.pc-board__non b { color: var(--night-ink); }

.pc-street-h h2 { grid-column: 1 / 8; }
.pc-street-h p { grid-column: 8 / 13; font-size: var(--step-lead); }
.pc-street { margin-top: clamp(32px, 4vw, 56px); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); align-items: start; }
.pc-street::after { content: ""; grid-column: 1 / -1; height: 10px; background: var(--ink); }
.pc-fa:nth-child(even) { margin-top: 32px; }
.pc-fa .pc-aw { transform: none; }
.pc-fa__sign { display: block; padding: 14px 16px; background: var(--ink); color: #fff; text-decoration: none; transition: background-color 200ms var(--ease-out); }
.pc-fa__sign:hover, .pc-fa__sign:focus-visible { background: var(--accent); }
.pc-fa__sign h3 { font: 800 var(--step-lead)/1.1 var(--font-display); }
.pc-fa__sign h3::after { content: ' →'; }
.pc-fa__sign span { display: block; margin-top: 4px; font-size: var(--step-small); }
.pc-fa__glass { display: grid; gap: 18px; padding: 16px; background: var(--surface); border: 3px solid var(--ink); border-top: 0; }
.pc-was { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; padding: 12px 14px; background: var(--bg); border-radius: var(--r-md); rotate: -1.5deg; }
.pc-was::before { content: "×"; grid-row: 1 / 3; font: 800 1.4rem/1 var(--font-display); color: var(--accent); }
.pc-was h4 { font-weight: 700; line-height: 1.25; }
.pc-was p { color: var(--muted); font-size: var(--step-small); }
.pc-now { display: grid; gap: 8px; }
.pc-now h4 { font: 800 var(--step-lead)/1.1 var(--font-display); letter-spacing: -0.015em; }

.pc-menu { background: var(--surface); align-items: start; }
.pc-menu__txt { grid-column: 1 / 6; position: sticky; top: 96px; display: grid; gap: 20px; }
.pc-menu__txt p { font-size: var(--step-lead); max-width: 30ch; }
.pc-ticket { grid-column: 7 / 13; padding: 32px clamp(20px, 3vw, 40px) 64px; background: var(--bg); clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), 91.66% 100%, 83.33% calc(100% - 12px), 75% 100%, 66.66% calc(100% - 12px), 58.33% 100%, 50% calc(100% - 12px), 41.66% 100%, 33.33% calc(100% - 12px), 25% 100%, 16.66% calc(100% - 12px), 8.33% 100%, 0 calc(100% - 12px)); }
.pc-ticket h3 { font: 800 var(--step-lead)/1.1 var(--font-display); margin-bottom: 10px; }
.pc-ticket ul + h3 { margin-top: 28px; padding-top: 24px; border-top: 2px dashed var(--ink); }
.pc-ticket li { padding: 10px 0; border-bottom: 2px dotted var(--rule); }
.pc-ticket li:last-child { border-bottom: 0; }

.pc-work__img { grid-column: 1 / 8; border-radius: var(--r-lg); width: 100%; height: auto; }
.pc-work__txt { grid-column: 8 / 13; display: grid; gap: 16px; align-content: center; }
.pc-work__txt p { color: var(--muted); }
.pc-posters { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); margin-top: 12px; }
.pc-poster { padding: 8px 8px 22px; background: var(--surface); rotate: var(--r, 0deg); }
.pc-poster img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; }

.pc-chat-h { grid-column: 1 / 6; }
.pc-chat { grid-column: 6 / 13; display: grid; gap: 14px; }
.pc-q, .pc-a { padding: 16px 22px; max-width: 86%; }
.pc-q { justify-self: end; margin-top: 18px; background: var(--accent); color: var(--accent-ink); font-weight: 700; border-radius: var(--r-lg) var(--r-lg) 4px var(--r-lg); }
.pc-a { justify-self: start; background: var(--surface); border-radius: var(--r-lg) var(--r-lg) var(--r-lg) 4px; }
.pc-chat dt:first-child { margin-top: 0; }

.pc-end { background: var(--pastel); padding: clamp(80px, 9vw, 140px) var(--m) clamp(64px, 8vw, 112px); display: grid; justify-items: center; }
.pc-end__sign { position: relative; display: grid; gap: 24px; justify-items: center; text-align: center; padding: clamp(32px, 5vw, 64px) clamp(24px, 6vw, 96px); background: var(--accent); color: var(--accent-ink); border-radius: var(--r-xl); }
.pc-end__sign::before, .pc-end__sign::after { content: ""; position: absolute; top: -48px; width: 4px; height: 48px; background: var(--ink); }
.pc-end__sign::before { left: 18%; }
.pc-end__sign::after { right: 18%; }
.pc-end__sign .btn { background: var(--bg); color: var(--ink); }
.pc-end__sign .btn:hover { background: var(--ink); color: #fff; }

/* ===== E-commerce : du panier vide au panier validé ===== */
.pe-hero__txt { grid-column: 1 / 7; display: grid; gap: 28px; justify-items: start; }
.pe-phones { grid-column: 7 / 13; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); align-items: center; }
.pe-phones img { width: 100%; height: auto; }
.pe-phones img:nth-child(1) { translate: 0 28px; }
.pe-phones img:nth-child(2) { translate: 0 -28px; }
.pe-phones img:nth-child(3) { translate: 0 44px; }

.pe-si__head { grid-column: 1 / 6; align-self: start; position: sticky; top: 96px; display: grid; gap: 24px; }
.pe-si__head p { color: var(--muted); max-width: 40ch; }
.pe-si__head b { color: var(--ink); }
.pe-si ul { grid-column: 7 / 13; }
.pe-si li { display: grid; grid-template-columns: 36px 1fr; gap: 18px; padding: 22px 0; border-top: 2px solid var(--rule); font: 700 var(--step-lead)/1.25 var(--font); }
.pe-si li::before, .pe-line::before { content: ""; width: 36px; height: 36px; border-radius: var(--r-sm); background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='square'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center / 62% no-repeat; }

.pe-cartsec { background: var(--surface); }
.pe-cartsec h2 { grid-column: 1 / 9; }
.pe-ab { grid-column: 1 / 6; display: grid; gap: 12px; align-content: start; margin-top: clamp(16px, 3vw, 40px); }
.pe-ab > li { display: grid; gap: 8px; padding: 18px 20px; background: var(--bg); border-radius: var(--r-md); }
.pe-ab h4 { font-weight: 700; line-height: 1.25; }
.pe-ab p { color: var(--muted); font-size: var(--step-small); }
.pe-ab .fc-tags li { padding: 3px 10px; background: var(--surface); }
.pe-bag { grid-column: 6 / 13; margin-top: clamp(16px, 3vw, 40px); padding: clamp(16px, 2.4vw, 32px); background: var(--bg); border: 3px solid var(--ink); border-radius: var(--r-lg); }
.pe-bag > h3 { padding-bottom: 16px; border-bottom: 3px solid var(--ink); }
.pe-line { display: grid; grid-template-columns: 36px 1fr; gap: 6px 16px; padding: 20px 0; border-bottom: 2px solid var(--rule); }
.pe-line:last-child { border-bottom: 0; padding-bottom: 0; }
.pe-line::before { grid-row: 1 / 4; }
.pe-line h4 { font: 800 var(--step-lead)/1.1 var(--font-display); letter-spacing: -0.015em; }
.pe-line p { color: var(--muted); }
.pe-line .fc-go { justify-self: start; margin-top: 6px; }
.js .pe-cart[data-reveal] .pe-line { opacity: 0; transform: translateX(-48px); }
.js .pe-cart.is-in .pe-line { opacity: 1; transform: none; transition: opacity 600ms var(--ease-out), transform 800ms var(--ease-out); transition-delay: calc(var(--k) * 200ms + 300ms); }

.pe-flow { background: var(--pastel); }
.pe-flow__h { display: grid; gap: 20px; max-width: 60ch; }
.pe-flow h3 { margin: clamp(40px, 5vw, 72px) 0 0; }
.pe-rail { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); padding-top: 40px; margin-top: 20px; }
.pe-rail::before { content: ""; position: absolute; left: 0; right: 0; top: 10px; height: 3px; background: var(--ink); }
.pe-rail li { position: relative; padding-top: 28px; }
.pe-rail li::before { content: ""; position: absolute; top: -40px; left: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--accent); }
.pe-rail--loop { padding-top: 64px; }
.pe-rail--loop li::before { top: -64px; background: var(--bg); border: 4px solid var(--accent); }
.pe-rail--loop::before { display: none; }
.pe-rail--loop::after { content: ""; position: absolute; top: 4px; left: 11px; right: calc(25% - 0.75 * var(--gap) - 11px); height: 28px; border: 3px solid var(--ink); border-bottom: 0; border-radius: var(--r-md) var(--r-md) 0 0; }
.pe-rail b { display: block; font: 800 var(--step-lead)/1.1 var(--font-display); margin-bottom: 4px; }

.pe-pdp .pe-gal { grid-column: 1 / 8; display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
.pe-gal img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--r-md); }
.pe-gal img:first-child { grid-row: 1 / 3; }
.pe-sheet { grid-column: 8 / 13; display: grid; gap: 18px; align-content: center; justify-items: start; }
.pe-sheet p { color: var(--muted); }
.pe-chip li { background: var(--bg); border: 2px solid var(--ink); font-weight: 700; }

.pe-faq { background: var(--surface); }
.pe-faq dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); margin-top: clamp(28px, 4vw, 56px); }
.pe-faq dl > div { padding-top: 18px; border-top: 3px solid var(--ink); display: grid; gap: 12px; align-content: start; }
.pe-faq dt { font: 800 var(--step-lead)/1.15 var(--font-display); letter-spacing: -0.015em; }
.pe-faq dd { color: var(--muted); }
.pe-end { margin: var(--m); padding: clamp(36px, 6vw, 88px); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; background: var(--night); color: var(--night-ink); border-radius: var(--r-xl); }
.pe-end .btn { background: var(--bg); color: var(--ink); }
.pe-end .btn:hover { background: var(--accent); color: #fff; }

/* ===== PME : le plan de l'année en marches ===== */
.pm-hero__txt { grid-column: 1 / 9; display: grid; gap: 28px; justify-items: start; }
.pm-hero__fig { grid-column: 8 / 13; position: relative; }
.pm-hero__s { display: block; width: 100%; height: auto; fill: var(--accent); max-height: 60vh; }
.pm-hero__fig img { position: absolute; bottom: 0; width: 34%; height: auto; }
.pm-hero__fig img:nth-of-type(1) { left: 12%; bottom: 8%; }
.pm-hero__fig img:nth-of-type(2) { right: 4%; bottom: 24%; }
.pm-stair h2 { margin-bottom: clamp(28px, 4vw, 56px); }
.pm-stair li { margin-left: calc(var(--s) * clamp(0px, 5vw, 80px)); max-width: 40ch; padding: 18px 0 clamp(20px, 3vw, 36px); border-top: 3px solid var(--ink); font: 700 var(--step-lead)/1.25 var(--font); }
.pm-stair__non { margin: 16px 0 0 calc(4 * clamp(0px, 5vw, 80px)); max-width: 60ch; color: var(--muted); }
.pm-stair__non b { color: var(--ink); }

.pm-pair { background: var(--surface); }
.pm-pair ul { margin-top: clamp(24px, 4vw, 48px); }
.pm-pair > ul > li { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); padding: 22px 0; border-top: 2px solid var(--rule); align-items: start; row-gap: 12px; }
.pm-pair .fr { grid-column: 1 / 6; color: var(--muted); }
.pm-pair .fr h3 { font-weight: 700; font-size: var(--step-body); color: var(--ink); }
.pm-pair .pl { grid-column: 7 / 13; display: grid; gap: 8px; position: relative; }
.pm-pair .pl::before { content: "→"; position: absolute; left: calc(-1 * (var(--gap) + 1.2em)); top: 0; font: 800 var(--step-lead)/1.1 var(--font-display); color: var(--accent); }
.pm-pair .pl h3 { font: 800 var(--step-lead)/1.1 var(--font-display); letter-spacing: -0.015em; }
.pm-pair .fc-tags li { background: var(--bg); }

.pm-year__h { grid-column: 1 / 8; }
.pm-year__h + p { grid-column: 8 / 13; }
.pm-steps { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 6px; align-items: end; height: clamp(160px, 22vw, 300px); margin-top: clamp(28px, 4vw, 56px); }
.pm-steps i { display: block; height: calc(var(--h) * 1%); background: var(--pastel); border-radius: var(--r-sm) var(--r-sm) 0 0; transform-origin: bottom; }
.pm-steps i:first-child { background: var(--accent); }
.pm-months { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 6px; margin-top: 8px; text-align: center; font-weight: 700; font-size: var(--step-small); border-top: 3px solid var(--ink); padding-top: 8px; }
.js .pm-yr[data-reveal] .pm-steps i { transform: scaleY(0); }
.js .pm-yr.is-in .pm-steps i { transform: none; transition: transform 700ms var(--ease-out); transition-delay: calc(var(--k) * 90ms + 200ms); }
.pm-cols { margin-top: clamp(32px, 5vw, 72px); display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
.pm-cols h3 { margin-bottom: 8px; }
.pm-cols li { padding: 12px 0; border-top: 2px solid var(--rule); }

.pm-links { background: var(--pastel); }
.pm-links ul { margin-top: clamp(28px, 4vw, 56px); display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--gap); }
.pm-links a { display: grid; gap: 6px; padding: 24px 0; border-top: 3px solid var(--ink); color: inherit; text-decoration: none; }
.pm-links h3 { font: 800 var(--step-head)/1 var(--font-display); letter-spacing: -0.03em; transition: translate 240ms var(--ease-out); }
.pm-links h3::after { content: ' →'; }
.pm-links a:hover h3, .pm-links a:focus-visible h3 { translate: 8px 0; color: var(--accent); }

.pm-panels { margin-top: clamp(28px, 4vw, 56px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
.pm-panel { position: relative; display: grid; grid-template-rows: auto 1fr; gap: 8px; min-height: 560px; padding: 28px 28px 0; border-radius: var(--r-lg); overflow: hidden; background: var(--c); color: var(--t); }
.pm-panel h3 { font: 800 var(--step-head)/1 var(--font-display); letter-spacing: -0.03em; }
.pm-panel h3 a { text-decoration: none; }
.pm-panel h3 a::after { content: ""; position: absolute; inset: 0; }
.pm-panel p { max-width: 30ch; }
.pm-panel .tg { font-size: var(--step-small); font-weight: 700; margin-top: 4px; }
.pm-panel img { width: 62%; height: auto; justify-self: center; align-self: end; margin-top: 20px; transition: translate 500ms var(--ease-out); }
.pm-panel:hover img { translate: 0 -10px; }
.pm-panel__txt { display: grid; gap: 8px; align-content: start; }

.pm-faq { background: var(--surface); }
.pm-faq h2 { grid-column: 1 / 5; }
.pm-faq dl { grid-column: 5 / 13; }
.pm-faq dl > div { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); padding: 22px 0; border-top: 3px solid var(--ink); }
.pm-faq dt { font: 800 var(--step-lead)/1.15 var(--font-display); letter-spacing: -0.015em; }

.pm-end { position: relative; margin: var(--m); padding: clamp(40px, 6vw, 96px); min-height: clamp(300px, 34vw, 460px); display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px; color: var(--accent-ink); isolation: isolate; }
.pm-end::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--accent); clip-path: polygon(0 0, 55% 0, 55% 25%, 70% 25%, 70% 50%, 85% 50%, 85% 75%, 100% 75%, 100% 100%, 0 100%); }
.pm-end h2 { max-width: 12ch; }
.pm-end .btn { background: var(--bg); color: var(--ink); }
.pm-end .btn:hover { background: var(--ink); color: #fff; }

/* ===== Grandes entreprises : le circuit de validation ===== */
.pg-hero { margin: 0 var(--m); padding: clamp(40px, 7vw, 112px) clamp(24px, 5vw, 80px); border-radius: var(--r-xl); background: var(--night); color: var(--night-ink); align-items: end; }
.pg-hero__txt { grid-column: 1 / 9; display: grid; gap: 28px; justify-items: start; }
.pg-hero .btn { background: var(--bg); color: var(--ink); }
.pg-hero .btn:hover { background: var(--accent); color: #fff; }
.pg-lang { grid-column: 9 / 13; justify-self: end; font: 800 clamp(3rem, 1rem + 8vw, 9rem)/0.9 var(--font-display); letter-spacing: -0.04em; color: var(--pastel); text-align: right; }

.pg-si h2 { margin-bottom: clamp(28px, 4vw, 56px); }
.pg-si ul { display: grid; grid-template-columns: 1fr 1fr; border: 3px solid var(--ink); }
.pg-si li { padding: clamp(20px, 3vw, 40px); font: 700 var(--step-lead)/1.25 var(--font); }
.pg-si li:nth-child(odd) { border-right: 3px solid var(--ink); }
.pg-si li:nth-child(-n+2) { border-bottom: 3px solid var(--ink); }
.pg-si__non { padding: 20px clamp(20px, 3vw, 40px); background: var(--surface); border: 3px solid var(--ink); border-top: 0; color: var(--muted); }
.pg-si__non b { color: var(--ink); }

.pg-circ { background: var(--pastel); }
.pg-circ__h h2 { grid-column: 1 / 8; }
.pg-circ__h p { grid-column: 8 / 13; }
.pg-circ h3.fc-h3 { margin-top: clamp(32px, 4vw, 56px); }
.pg-run { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); margin-top: 24px; padding-top: 24px; }
.pg-run::before, .pg-run::after { content: ""; position: absolute; left: 22px; right: 22px; top: 44px; height: 4px; }
.pg-run::before { background: var(--rule); }
.pg-run::after { background: var(--accent); transform-origin: left; }
.pg-run li { position: relative; display: grid; gap: 6px; align-content: start; padding-top: 64px; }
.pg-run h4 { font: 800 var(--step-lead)/1.1 var(--font-display); }
.pg-gate { position: absolute; top: 0; left: 0; width: 44px; height: 44px; border: 4px solid var(--ink); background: var(--bg); }
.pg-gate::after { content: ""; position: absolute; inset: -4px; background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='square'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center / 62% no-repeat; }
.js .pg-cx[data-reveal] .pg-run::after { transform: scaleX(0); }
.js .pg-cx[data-reveal] .pg-gate::after { opacity: 0; }
.js .pg-cx.is-in .pg-run::after { transform: none; transition: transform 3200ms linear 300ms; }
.js .pg-cx.is-in .pg-gate::after { opacity: 1; transition: opacity 300ms; transition-delay: calc(var(--k) * 1000ms + 300ms); }

.pg-doc { align-items: start; isolation: isolate; }
.pg-doc__h { grid-column: 1 / 6; display: grid; gap: 20px; position: sticky; top: 96px; }
.pg-doc__tels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); margin-top: 24px; max-width: 480px; }
.pg-doc__tels img { width: 100%; height: auto; }
.pg-doc__tels img:nth-child(2) { translate: 0 28px; }
.pg-doc__sheet { grid-column: 7 / 13; position: relative; background: var(--bg); border: 3px solid var(--ink); padding: clamp(24px, 3.4vw, 48px); display: grid; gap: 0; }
.pg-doc__sheet::before { content: ""; position: absolute; inset: -3px; z-index: -1; border: 3px solid var(--ink); background: var(--surface); rotate: 1.6deg; }
.pg-doc__sheet h3 { padding-bottom: 16px; border-bottom: 3px solid var(--ink); }
.pg-doc__sheet li { display: grid; gap: 4px; padding: 18px 0; border-bottom: 2px solid var(--rule); }
.pg-doc__sheet li:last-child { border-bottom: 0; padding-bottom: 0; }
.pg-doc__sheet b { font-weight: 800; }
.pg-doc__sheet li p { color: var(--muted); }

.pg-pair { background: var(--surface); }
.pg-pair__l { grid-column: 1 / 7; display: grid; gap: 12px; align-content: start; }
.pg-pair__r { grid-column: 8 / 13; display: grid; gap: 0; align-content: start; }
.pg-pair__l > h2, .pg-pair__r > h2 { margin-bottom: 16px; }
.pg-fold { position: relative; margin-top: 22px; padding: 18px 20px 20px; background: var(--bg); border-radius: 0 var(--r-md) var(--r-md) var(--r-md); display: grid; gap: 6px; }
.pg-fold::before { content: ""; position: absolute; left: 0; top: -22px; width: 36%; height: 22px; background: var(--bg); border-radius: var(--r-sm) var(--r-sm) 0 0; }
.pg-fold p { color: var(--muted); }
.pg-fold .fc-tags { margin-top: 6px; }
.pg-fold .fc-tags li { background: var(--surface); }
.pg-clause { display: grid; gap: 4px; padding: 18px 0; border-top: 2px solid var(--ink); }
.pg-clause:last-child { border-bottom: 2px solid var(--ink); }
.pg-clause h3 { font: 800 var(--step-lead)/1.1 var(--font-display); letter-spacing: -0.015em; }
.pg-clause p { color: var(--muted); }

.pg-idx ul { margin-top: clamp(24px, 4vw, 48px); }
.pg-idx a { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); align-items: baseline; padding: clamp(18px, 2.4vw, 32px) 0; border-top: 3px solid var(--ink); color: inherit; text-decoration: none; }
.pg-idx li:last-child a { border-bottom: 3px solid var(--ink); }
.pg-idx h3 { grid-column: 1 / 7; font: 800 var(--step-head)/1 var(--font-display); letter-spacing: -0.03em; }
.pg-idx h3::after { content: ' →'; }
.pg-idx p { grid-column: 7 / 13; font-size: var(--step-lead); }
.pg-idx a:hover h3, .pg-idx a:focus-visible h3 { color: var(--accent); }

.pg-trio { width: 100%; height: auto; margin-top: clamp(24px, 4vw, 48px); border-radius: var(--r-lg); }
.pg-rows { margin-top: clamp(24px, 4vw, 48px); }
.pg-row { position: relative; display: grid; grid-template-columns: 120px 1fr; gap: 6px var(--gap); align-items: center; padding: 20px 0; border-top: 2px solid var(--rule); }
.pg-row:last-child { border-bottom: 2px solid var(--rule); }
.pg-row__pic { grid-row: 1 / 4; width: 120px; height: 120px; overflow: hidden; border-radius: var(--r-md); background: var(--c); }
.pg-row__pic img { width: 76%; margin: 14px auto 0; height: auto; }
.pg-row h3 { font: 800 var(--step-head)/1 var(--font-display); letter-spacing: -0.03em; }
.pg-row h3 a { text-decoration: none; }
.pg-row h3 a::after { content: ""; position: absolute; inset: 0; }
.pg-row:hover h3 { color: var(--accent); }
.pg-row p { color: var(--muted); max-width: 60ch; }
.pg-row .tg { font-size: var(--step-small); font-weight: 700; color: var(--ink); }

.pg-faq { background: var(--surface); }
.pg-faq dl { margin-top: clamp(24px, 4vw, 48px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
.pg-faq dl { gap: 0; border: 3px solid var(--ink); background: var(--bg); }
.pg-faq dl > div { padding: clamp(20px, 2.4vw, 32px); display: grid; gap: 14px; align-content: start; }
.pg-faq dl > div + div { border-top: 3px solid var(--ink); }
@media (min-width: 901px) { .pg-faq dl > div + div { border-top: 0; border-inline-start: 3px solid var(--ink); } }
.pg-faq dt { font: 800 var(--step-lead)/1.15 var(--font-display); letter-spacing: -0.015em; }
.pg-faq dd { color: var(--muted); }
.pg-end { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; margin: clamp(40px, 6vw, 96px) var(--m); padding: clamp(32px, 5vw, 72px) 0; border-block: 3px solid var(--ink); }

@media (max-width: 900px) {
  .pc-hero__txt, .pc-shop, .pc-board .fc-h2, .pc-board ul, .pc-board__non, .pc-street-h h2, .pc-street-h p, .pc-menu__txt, .pc-ticket, .pc-work__img, .pc-work__txt, .pc-chat, .pc-chat-h,
  .pe-hero__txt, .pe-phones, .pe-si__head, .pe-si ul, .pe-cartsec h2, .pe-ab, .pe-bag, .pe-pdp .pe-gal, .pe-sheet,
  .pm-hero__txt, .pm-hero__fig, .pm-year__h, .pm-year__h + p, .pm-faq h2, .pm-faq dl,
  .pg-hero__txt, .pg-lang, .pg-circ__h h2, .pg-circ__h p, .pg-doc__h, .pg-doc__sheet, .pg-pair__l, .pg-pair__r { grid-column: 1 / 13; }
  .pc-street { grid-template-columns: 1fr; }
  .pc-fa:nth-child(even) { margin-top: 0; }
  .pc-menu__txt, .pe-si__head, .pg-doc__h { position: static; }
  .pc-q, .pc-a { max-width: 94%; }
  .pe-phones { max-width: 420px; }
  .pe-faq dl, .pg-faq dl, .pm-links ul, .pm-cols, .pm-panels, .pg-si ul { grid-template-columns: 1fr; }
  .pe-rail { grid-template-columns: 1fr; padding: 0 0 0 44px; gap: 24px; }
  .pe-rail::before { left: 10px; right: auto; top: 0; bottom: 0; width: 3px; height: auto; }
  .pe-rail li, .pe-rail--loop li { padding-top: 0; }
  .pe-rail li::before, .pe-rail--loop li::before { top: 2px; left: -44px; }
  .pe-rail--loop { padding-top: 0; }
  .pe-rail--loop::before { display: block; }
  .pe-rail--loop::after { display: none; }
  .pm-hero__fig { max-width: 320px; order: -1; }
  .pm-stair li { margin-left: calc(var(--s) * 20px); }
  .pm-stair__non { margin-left: 80px; }
  .pm-pair li { row-gap: 16px; }
  .pm-pair .fr, .pm-pair .pl { grid-column: 1 / 13; }
  .pm-pair .pl::before { position: static; }
  .pm-faq dl > div { grid-template-columns: 1fr; }
  .pm-panel { min-height: 480px; }
  .pm-end::before { clip-path: polygon(0 0, 70% 0, 70% 30%, 100% 30%, 100% 100%, 0 100%); }
  .pg-lang { display: none; }
  .pg-pair { row-gap: 64px; }
  .pg-si li:nth-child(odd) { border-right: 0; }
  .pg-si li:not(:last-child) { border-bottom: 3px solid var(--ink); }
  .pg-run { grid-template-columns: 1fr; padding: 0 0 0 64px; gap: 24px; }
  .pg-run::before, .pg-run::after { left: 22px; right: auto; top: 22px; bottom: 22px; width: 4px; height: auto; transform-origin: top; }
  .js .pg-cx[data-reveal] .pg-run::after { transform: scaleY(0); }
  .js .pg-cx.is-in .pg-run::after { transform: none; }
  .pg-run li { padding-top: 0; }
  .pg-gate { left: -64px; top: 0; }
  .pg-idx h3, .pg-idx p { grid-column: 1 / 13; }
  .pg-row { grid-template-columns: 88px 1fr; }
  .pg-row__pic { width: 88px; height: 88px; }
  .pg-doc__sheet::before { rotate: 1deg; }
}
@media (prefers-reduced-motion: reduce) {
  .js .pc-shop .pc-aw, .js .pe-cartsec .pe-line, .js .pm-year .pm-steps i, .js .pg-circ .pg-run::after, .js .pg-circ .pg-gate::after { transform: none !important; opacity: 1 !important; transition: none !important; }
  .fc-go, .pc-fa__sign, .pm-links h3, .pm-panel img { transition: none; }
}
.pm-panel--k h3 { color: #DCF23C; }
.pe-rail, .pg-run { list-style: none; margin: 0; }
.pe-pdp .pe-gal { grid-auto-rows: clamp(180px, 24vw, 360px); }

/* v28b — mobile : rien ne reste collé, images de téléphone à taille de lecture, sections moins hautes */
@media (max-width: 900px) {
  main [class*="__t"], main [class*="__h"], main [class*="-ctx"], main [class*="__head"], main .fg-shop > div, main .fk-stage { position: static !important; top: auto !important; }
  main img[src*="projets/tel-"] { max-width: min(240px, 64vw); height: auto; margin-inline: auto; }
  main img[src*="-ecran-"], main img[src*="mijo-comparateur"], main img[src*="pactapp-signer"] { max-width: min(280px, 74vw); height: auto; margin-inline: auto; display: block; }
}
@media (max-width: 900px) { .pm-panel { min-height: 0; padding-bottom: 24px; } .pm-end { min-height: 0; } }
