/* Accueil Elyria Digital : passe de direction artistique. Chargée après les feuilles d'origine ; les contrôles propres à la page sont préfixés da-.
   Principes : une police d'affichage et une police de texte hébergées par le site ; un seul effet de profondeur par élément (ombre portée décalée, jamais de halo gratuit) ;
   emphase par la taille et la graisse, pas par un dégradé de texte ; mouvement unique et discret (la démonstration), le reste est statique ou apparaît en fondu court. */
@font-face { font-family: "Bricolage Grotesque"; src: url(assets/am/fonts/Bricolage-latin.woff2) format("woff2"); font-weight: 200 800; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "Bricolage Grotesque"; src: url(assets/am/fonts/Bricolage-latin-ext.woff2) format("woff2"); font-weight: 200 800; font-display: swap; unicode-range: U+0100-02AF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Instrument Sans"; src: url(assets/am/fonts/InstrumentSans-latin.woff2) format("woff2"); font-weight: 400 700; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "Instrument Sans"; src: url(assets/am/fonts/InstrumentSans-latin-ext.woff2) format("woff2"); font-weight: 400 700; font-display: swap; unicode-range: U+0100-02AF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --font-display: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif; --font-body: "Instrument Sans", system-ui, "Segoe UI", sans-serif;
  --ink: #0b1b33; --text: #2b3b55; --mute: #54657f; --blue: #0a64d6; --blue-d: #0852ad; --sky: #e6f0fc; --line: rgba(11, 27, 51, .1);
  --navy: #0b1b33; --navy-2: #12305a; --ease: cubic-bezier(.22, 1, .36, 1); --wrap: 1240px;
}
html { scroll-behavior: smooth; scroll-padding-top: 96px; overflow-x: clip !important; }
body { font-family: var(--font-body) !important; font-size: 1.0625rem; line-height: 1.55; color: var(--text); background: #f3f7fc !important; overflow-x: clip !important; -webkit-font-smoothing: antialiased; }
::selection { background: rgba(10, 100, 214, .2); }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 8px; }
.da-foot :focus-visible, .da-mp :focus-visible { outline-color: #8ec1ff; }
h1, h2, h3 { font-family: var(--font-display) !important; text-wrap: balance; color: var(--ink); margin: 0; }
.am-anchor { display: block; height: 0; visibility: hidden; position: relative; top: -90px; }

/* ── En-tête : pilule fine, signature typographique, navigation équilibrée ── */
.elyria-header { padding: 12px 16px 0 !important; }
.elyria-header .elyria-header__inner { max-width: var(--wrap); height: 58px; padding: 0 8px 0 24px; border-radius: 999px; background: #fff !important; border: 1px solid var(--line); box-shadow: 0 10px 28px -16px rgba(11, 27, 51, .35); -webkit-backdrop-filter: none; backdrop-filter: none; }
.am-sig { font-family: var(--font-display); font-weight: 650; font-size: 1.28rem; line-height: 1; letter-spacing: -.025em; color: var(--ink); white-space: nowrap; text-decoration: none; }
.am-sig span { font-weight: 400; color: var(--mute); }
.am-sig--light { color: #fff; } .am-sig--light span { color: rgba(255, 255, 255, .72); }
.elyria-header .elyria-nav-link { font-size: 14.5px; font-weight: 500; letter-spacing: -.005em; color: var(--text); padding: 8px 14px; border-radius: 999px; }
.elyria-header .elyria-nav-link.is-active { color: var(--ink); background: rgba(10, 100, 214, .08); }
.elyria-header .elyria-nav-link:hover { color: var(--ink); background: rgba(11, 27, 51, .05); }
.elyria-header-cta--primary { height: 42px; padding: 0 20px !important; font-size: 14px !important; font-weight: 600; border-radius: 999px !important; background: var(--ink) !important; color: #fff !important; box-shadow: none !important; transition: transform .18s var(--ease), background-color .18s; }
.elyria-header-cta--primary:hover { background: #000 !important; } .elyria-header-cta--primary:active { transform: scale(.97); }
.elyria-cta-shine { display: none !important; }
.elyria-mobile-toggle { width: 44px; height: 44px; }

/* ── Boutons et liens ── */
.da-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 26px; border-radius: 999px; background: var(--blue); color: #fff; font: 600 1rem/1 var(--font-body); text-decoration: none; box-shadow: 0 10px 22px -12px rgba(10, 100, 214, .75); transition: transform .18s var(--ease), box-shadow .18s var(--ease), background-color .18s; white-space: nowrap; }
.da-btn:hover { background: var(--blue-d); transform: translateY(-1px); } .da-btn:active { transform: scale(.97); }
.da-btn--light { background: #fff; color: var(--ink); box-shadow: 0 10px 24px -14px rgba(0, 0, 0, .6); } .da-btn--light:hover { background: #eef5ff; }
.da-btn--wa { background: #2fd08a; color: #052a1b; box-shadow: 0 12px 26px -14px rgba(47, 208, 138, .8); } .da-btn--wa:hover { background: #4bdd9d; }
.da-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-weight: 600; color: var(--blue); text-decoration: none; }
.da-link::after { content: "\2192"; transition: transform .18s var(--ease); } .da-link:hover::after { transform: translateX(3px); } .da-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.da-link--light { color: #fff; } .da-link--sm { font-size: .92rem; }
.da-actions { display: flex; align-items: center; gap: 8px 22px; flex-wrap: wrap; }
.da-lead { font-size: clamp(1.02rem, 1.3vw, 1.18rem); color: var(--mute); max-width: 40ch; margin: 0; }

/* ── Conteneur et rythme ── */
.da-main { width: min(var(--wrap), 100% - 32px); margin: 0 auto; display: grid; gap: clamp(14px, 1.8vw, 22px); padding-top: 14px; }
.da-main > section { border-radius: 36px; position: relative; }
.da-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.da-checks li { display: flex; align-items: flex-start; gap: 12px; color: var(--ink); line-height: 1.4; } .da-checks svg { flex: none; color: var(--blue); margin-top: 1px; }
.da-price { margin: 0; color: var(--mute); display: flex; align-items: baseline; gap: 8px; } .da-price b { font: 650 clamp(2rem, 3vw, 2.6rem)/1 var(--font-display); color: var(--ink); letter-spacing: -.03em; }

/* ── Téléphone ── */
.da-phone { padding: 7px; border-radius: 36px; background: var(--navy); box-shadow: 0 34px 56px -26px rgba(11, 27, 51, .55), 0 10px 18px -10px rgba(11, 27, 51, .3); }
.da-screen { position: relative; border-radius: 29px; overflow: hidden; aspect-ratio: 780 / 1688; background: var(--navy); }
.da-screen img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* ── Premier écran ── */
.da-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr); grid-template-areas: "copy stage" "steps steps"; align-items: end; overflow: hidden; background: radial-gradient(900px 520px at 78% 18%, rgba(10, 100, 214, .13), transparent 70%), linear-gradient(180deg, #e3eefb 0%, #f2f7fd 100%); border: 1px solid rgba(10, 100, 214, .1); }
.da-hero-copy { grid-area: copy; padding: clamp(40px, 6vw, 88px) 0 clamp(36px, 5vw, 72px) clamp(28px, 5.4vw, 80px); display: grid; gap: 22px; align-content: center; align-self: center; }
.da-hero h1 { font-weight: 600; font-size: clamp(2.2rem, 4.2vw, 3.9rem); line-height: 1.04; letter-spacing: -.03em; max-width: 12em; }
.da-hero .da-actions { margin-top: 6px; }
.da-facts { margin: 0; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: .92rem; color: var(--mute); } .da-facts i { width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .55; }
.da-stage { grid-area: stage; position: relative; height: clamp(420px, 40vw, 590px); overflow: hidden; }
.da-halo { position: absolute; left: 50%; bottom: -80px; width: min(640px, 100%); aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(closest-side, rgba(10, 100, 214, .22), rgba(10, 100, 214, 0)); }
.da-phone--hero { position: absolute; left: 50%; bottom: -46px; width: clamp(214px, 19.5vw, 282px); transform: translateX(-50%); z-index: 2; }
.da-l { position: absolute; inset: 0; opacity: 0; }
.da-l1 { opacity: 1; z-index: 1; } .da-l2 { z-index: 2; animation: da-in2 12s infinite; } .da-l3 { z-index: 3; animation: da-in3 12s infinite; }
@keyframes da-in2 { 0%, 24% { opacity: 0 } 29%, 97% { opacity: 1 } 100% { opacity: 0 } }
@keyframes da-in3 { 0%, 49% { opacity: 0 } 54%, 93% { opacity: 1 } 98%, 100% { opacity: 0 } }
.da-admin { position: absolute; left: clamp(0px, 1vw, 16px); bottom: 74px; z-index: 3; width: clamp(250px, 26vw, 372px); margin: 0; border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 28px 46px -24px rgba(11, 27, 51, .5), 0 0 0 1px var(--line); }
.da-admin img { display: block; width: 100%; height: auto; }
.da-admin figcaption { position: absolute; left: 10px; top: 10px; padding: 4px 10px; border-radius: 999px; background: rgba(11, 27, 51, .86); color: #fff; font-size: .74rem; font-weight: 600; }
.da-steps { grid-area: steps; list-style: none; margin: 0; padding: 0 clamp(28px, 5.4vw, 80px); display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; background: rgba(255, 255, 255, .55); border-top: 1px solid rgba(10, 100, 214, .1); }
.da-steps li { position: relative; padding: 16px 0 18px; font-size: .88rem; font-weight: 500; color: var(--mute); } .da-steps b { color: var(--ink); font-weight: 650; margin-right: 4px; }
.da-steps li::after { content: ""; position: absolute; left: 0; top: -1px; height: 2px; width: 0; background: var(--blue); animation: da-fill 12s linear infinite; }
.da-steps li:nth-child(2)::after { animation-delay: 3s; } .da-steps li:nth-child(3)::after { animation-delay: 6s; } .da-steps li:nth-child(4)::after { animation-delay: 9s; }
@keyframes da-fill { 0% { width: 0 } 24% { width: 100% } 25%, 100% { width: 0 } }
@media (prefers-reduced-motion: reduce) { .da-l2, .da-l3 { display: none; animation: none; } .da-steps li::after { display: none; } html { scroll-behavior: auto; } }
html:not(.am-js) .da-l2, html:not(.am-js) .da-l3 { display: none; animation: none; } html:not(.am-js) .da-steps li::after { display: none; }

/* ── Bandeau de logos : continu, sans cartes ── */
.da-trust { padding: 6px 4px 0; border-radius: 0 !important; }
.da-trust-head { display: flex; align-items: center; justify-content: space-between; gap: 8px 20px; margin: 0 clamp(8px, 2vw, 24px) 4px; }
.da-trust-head p { margin: 0; font-size: .95rem; font-weight: 500; color: var(--mute); }
.am-tools { display: flex; align-items: center; gap: 4px; }
.am-more { display: none; }
.am-pause { min-height: 44px; min-width: 44px; padding: 0 12px; border: 0; background: transparent; color: var(--mute); font: 500 .85rem var(--font-body); cursor: pointer; border-radius: 999px; } .am-pause:hover { color: var(--ink); background: rgba(11, 27, 51, .05); }
.am-logos { position: relative; overflow: hidden; }
.am-track { display: flex; align-items: center; gap: 0; width: max-content; margin: 0; padding: 0; list-style: none; }
.am-lg { display: flex; align-items: center; justify-content: center; height: 76px; padding: 0 clamp(22px, 3vw, 44px); border: 0; background: transparent; border-radius: 0; box-shadow: none; }
.am-lg img { max-height: 100%; width: auto !important; height: auto !important; max-width: 150px; object-fit: contain; filter: grayscale(1) contrast(1.1); opacity: .72; mix-blend-mode: multiply; transition: opacity .25s var(--ease), filter .25s var(--ease); }
.am-lg:hover img { filter: none; opacity: 1; }
.am-logos:not(.am-on) .am-track { flex-wrap: wrap; width: auto; justify-content: center; }
.am-logos.am-on { -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.am-mq { display: flex; width: max-content; animation: am-mq 56s linear infinite; }
.am-logos.am-paused .am-mq, .am-logos:hover .am-mq, .am-logos:focus-within .am-mq { animation-play-state: paused; }
@keyframes am-mq { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .am-mq { animation: none; } .am-pause { display: none; } }
.am-tag { display: inline-block; padding: 6px 12px; border-radius: 999px; border: 1px dashed #b27d17; background: #fff8e6; color: #7a4f00; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }

/* ── MenuPulse : scène marine, trois écrans alignés et lisibles ── */
.da-mp { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.34fr); gap: clamp(28px, 4vw, 64px); align-items: center; padding: clamp(32px, 5vw, 72px) clamp(24px, 5vw, 72px); color: #e7eefb; background: radial-gradient(760px 420px at 90% 0%, rgba(30, 110, 220, .35), transparent 70%), linear-gradient(160deg, #0b1b33 0%, #12305a 100%); }
.da-mp h2 { color: #fff; font-weight: 600; font-size: clamp(1.9rem, 3.1vw, 2.9rem); line-height: 1.07; letter-spacing: -.028em; }
.da-mp-copy { display: grid; gap: 20px; align-content: center; } .da-mp .da-lead { color: rgba(231, 238, 251, .82); }
.da-mp .da-checks li { color: #fff; } .da-mp .da-checks svg { color: #8ec1ff; } .da-mp .da-price { color: rgba(231, 238, 251, .75); } .da-mp .da-price b { color: #fff; }
.da-shots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 2vw, 28px); align-items: start; }
.da-shots figure { margin: 0; display: grid; gap: 14px; justify-items: center; }
.da-shots figure:nth-child(1), .da-shots figure:nth-child(3) { margin-top: 28px; }
.da-shots .da-phone { width: 100%; max-width: 250px; box-shadow: 0 40px 60px -28px rgba(0, 0, 0, .7), 0 12px 20px -12px rgba(0, 0, 0, .5); background: #060f1f; }
.da-shots figcaption { font-size: .9rem; color: rgba(231, 238, 251, .78); text-align: center; }
.da-soon { padding: 4px 6px; border-radius: 0 !important; }
.da-soon ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px dashed rgba(11, 27, 51, .2); border-bottom: 1px dashed rgba(11, 27, 51, .2); }
.da-soon li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px clamp(8px, 2vw, 24px); } .da-soon li + li { border-left: 1px dashed rgba(11, 27, 51, .2); }
.da-soon h3 { font-size: 1.15rem; font-weight: 600; letter-spacing: -.015em; } .da-soon p { margin: 2px 0 0; font-size: .92rem; color: var(--mute); }

/* ── Roulette et visibilité locale ── */
.da-rl { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(24px, 4vw, 64px); align-items: center; padding: clamp(28px, 5vw, 64px) clamp(24px, 5vw, 72px); background: linear-gradient(135deg, #ece8ff 0%, #f8f6ff 100%); border: 1px solid rgba(110, 80, 220, .12); }
.da-rl-fig { margin: 0; } .da-rl-fig img { display: block; width: 100%; height: auto; border-radius: 22px; box-shadow: 0 34px 50px -28px rgba(30, 20, 80, .6), 0 0 0 1px rgba(30, 20, 80, .08); }
.da-rl-copy, .da-vl-copy { display: grid; gap: 20px; align-content: center; } .da-rl h2, .da-vl h2 { font-weight: 600; font-size: clamp(1.8rem, 2.8vw, 2.6rem); line-height: 1.08; letter-spacing: -.026em; }
.da-vl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: clamp(24px, 4vw, 64px); align-items: center; padding: clamp(28px, 5vw, 64px) clamp(24px, 5vw, 72px); background: #fff; border: 1px solid var(--line); }
.da-vl-cards { display: flex; gap: clamp(14px, 2.4vw, 32px); align-items: center; justify-content: center; }
.da-vl-cards img { width: clamp(120px, 17vw, 230px); height: auto; border-radius: 22px; box-shadow: 0 30px 44px -26px rgba(11, 27, 51, .55), 0 0 0 1px var(--line); background: #fff; }
.da-vl-cards img:nth-child(2) { margin-top: 56px; }
.da-how { padding: clamp(28px, 4vw, 56px) clamp(8px, 2vw, 24px) 8px; border-radius: 0 !important; }
.da-how h2 { font-weight: 600; font-size: clamp(1.7rem, 2.6vw, 2.3rem); letter-spacing: -.025em; margin-bottom: 26px; }
.da-how ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(18px, 3vw, 44px); }
.da-how li { border-top: 1px solid rgba(11, 27, 51, .18); padding-top: 16px; } .da-how h3 { font-size: 1.2rem; font-weight: 600; letter-spacing: -.015em; } .da-how p { margin: 8px 0 0; color: var(--mute); max-width: 36ch; }

/* ── Tarifs et questions : sections d'origine, resserrées et harmonisées ── */
.v3-pricing .v3-eyebrow, .v3-faq .v3-eyebrow { display: none; }
.v3-pricing, .v3-faq { font-family: var(--font-body); }
.v3-section-h2 { font-family: var(--font-display) !important; font-weight: 600 !important; letter-spacing: -.026em !important; line-height: 1.08 !important; font-size: clamp(1.8rem, 2.8vw, 2.6rem) !important; }
.v3-pricing-name, .v3-pricing-price { font-family: var(--font-display) !important; letter-spacing: -.02em !important; }
.v3-pricing-price { font-weight: 650 !important; }
.reveal { opacity: 0; transform: translateY(14px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.visible { opacity: 1; transform: none; }
html:not(.am-js) .reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* ── Conclusion : contact et pied de page dans un seul panneau marine ── */
.da-foot { width: min(var(--wrap), 100% - 32px); margin: clamp(14px, 1.8vw, 22px) auto 22px; border-radius: 36px; color: rgba(231, 238, 251, .86); background: radial-gradient(700px 360px at 12% 0%, rgba(30, 110, 220, .3), transparent 70%), linear-gradient(160deg, #0b1b33 0%, #0f2749 100%); padding: clamp(32px, 5vw, 64px) clamp(24px, 5vw, 72px) 28px; }
.da-foot-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px 48px; flex-wrap: wrap; padding-bottom: clamp(28px, 4vw, 48px); border-bottom: 1px solid rgba(255, 255, 255, .14); }
.da-foot-cta h2 { color: #fff; font-weight: 600; font-size: clamp(1.8rem, 3vw, 2.7rem); letter-spacing: -.028em; line-height: 1.08; } .da-foot-cta p { margin: 10px 0 0; max-width: 44ch; color: rgba(231, 238, 251, .82); }
.da-foot-bar { display: grid; grid-template-columns: auto 1fr auto; gap: 14px clamp(20px, 3vw, 44px); align-items: center; padding-top: 24px; font-size: .92rem; }
.da-foot-bar nav { display: flex; flex-wrap: wrap; gap: 0 22px; justify-content: center; } .da-foot-bar a { color: rgba(255, 255, 255, .86); text-decoration: none; display: inline-flex; align-items: center; min-height: 40px; } .da-foot-bar a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.da-foot-bar .am-sig { color: #fff; min-height: 0; } .da-foot-contact { margin: 0; display: flex; gap: 0 20px; flex-wrap: wrap; }
.da-foot-legal { grid-column: 1 / -1; margin: 0; font-size: .84rem; color: rgba(231, 238, 251, .7); } .da-foot-legal a { color: rgba(255, 255, 255, .82); min-height: 0; text-decoration: underline; text-underline-offset: 3px; }

/* ── Mobile ── */
@media (max-width: 960px) {
  .da-hero { grid-template-columns: minmax(0, 1fr); grid-template-areas: "copy" "stage" "steps"; }
  .da-hero-copy { padding: 34px 22px 8px; gap: 16px; } .da-hero h1 { font-size: clamp(2.05rem, 8.6vw, 2.8rem); }
  .da-stage { height: clamp(330px, 88vw, 480px); } .da-phone--hero { width: clamp(176px, 46vw, 236px); bottom: -30px; } .da-admin { display: none; }
  .da-steps { grid-template-columns: 1fr 1fr; gap: 0 14px; padding: 0 22px; } .da-steps li { padding: 12px 0 12px; }
  .da-mp, .da-rl, .da-vl { grid-template-columns: minmax(0, 1fr); padding: 30px 20px; }
  .da-rl-copy { order: -1; }
  .da-mp h2, .da-rl h2, .da-vl h2 { font-size: clamp(1.7rem, 6.8vw, 2.1rem); }
  .da-shots { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; margin: 0 -20px; padding: 6px 20px 14px; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .3) transparent; }
  .da-shots figure { flex: 0 0 min(62%, 240px); scroll-snap-align: center; margin-top: 0 !important; }
  .da-soon ul { grid-template-columns: 1fr; } .da-soon li + li { border-left: 0; border-top: 1px dashed rgba(11, 27, 51, .2); } .da-soon li { padding: 16px 6px; }
  .da-vl-cards { order: -1; } .da-vl-cards img { width: min(40%, 190px); } .da-vl-cards img:nth-child(2) { margin-top: 32px; }
  .da-how ol { grid-template-columns: 1fr; gap: 20px; }
  .da-foot { padding: 30px 20px 22px; } .da-foot-cta .da-actions { width: 100%; } .da-foot-cta .da-btn { width: 100%; }
  .da-foot-bar { grid-template-columns: 1fr; } .da-foot-bar nav { justify-content: flex-start; } .da-trust-head { margin: 0 6px; }
}
@media (max-width: 960px) { .da-lead { max-width: 46ch; } .da-hero .da-actions { flex-direction: column; align-items: stretch; width: 100%; gap: 4px; } .da-hero .da-btn { width: 100%; } .da-hero .da-link { justify-content: center; } }
.da-main > * { min-width: 0; max-width: 100%; }
.da-main { grid-template-columns: minmax(0, 1fr); }
.da-hero > * { min-width: 0; }

/* ── Héros : scène recomposée (écran restaurant derrière, téléphone devant) ── */
.da-admin { left: auto; right: clamp(-40px, -1vw, 0px); top: clamp(56px, 8vw, 110px); bottom: auto; width: clamp(300px, 31vw, 450px); z-index: 1; }
.da-phone--hero { left: 34%; width: clamp(200px, 17.5vw, 258px); bottom: -52px; transform: translateX(-50%); }
.da-halo { left: 34%; }
.am-logos { background: #f3f7fc; isolation: isolate; }

/* ── Tarifs : trois colonnes typographiques, sans cartes ── */
.da-pr { background: #fff; border: 1px solid var(--line); padding: clamp(30px, 5vw, 64px) clamp(22px, 5vw, 72px); }
.da-pr-head { display: flex; align-items: end; justify-content: space-between; gap: 12px 32px; flex-wrap: wrap; margin-bottom: clamp(24px, 3vw, 40px); }
.da-pr h2 { font-weight: 600; font-size: clamp(1.8rem, 2.8vw, 2.6rem); line-height: 1.08; letter-spacing: -.026em; max-width: 14em; }
.da-pr-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.da-pr-grid article { display: grid; align-content: start; gap: 14px; padding: 28px clamp(16px, 2.4vw, 36px) 32px; }
.da-pr-grid article + article { border-left: 1px solid var(--line); }
.da-pr-grid article.is-main { background: linear-gradient(180deg, #eaf3ff, #f6faff); }
.da-pr-grid h3 { font-size: 1.05rem; font-weight: 600; color: var(--mute); letter-spacing: -.01em; }
.da-pr-price { margin: 0; color: var(--mute); } .da-pr-price b { font: 650 clamp(2.4rem, 3.6vw, 3.2rem)/1 var(--font-display); letter-spacing: -.035em; color: var(--ink); margin-right: 4px; }
.da-pr-sub { margin: 0; color: var(--mute); min-height: 3.1em; }
.da-pr-grid ul { list-style: none; margin: 4px 0 8px; padding: 0; display: grid; gap: 9px; } .da-pr-grid li { padding-left: 24px; position: relative; color: var(--ink); font-size: .96rem; }
.da-pr-grid li::before { content: ""; position: absolute; left: 2px; top: .38em; width: 11px; height: 6px; border-left: 2px solid var(--blue); border-bottom: 2px solid var(--blue); transform: rotate(-45deg); }
.da-pr-grid .da-btn, .da-pr-grid .da-link { justify-self: start; }
.da-pr-combo { margin: 0; padding: 18px clamp(16px, 2.4vw, 36px); border-top: 1px solid var(--line); color: var(--mute); } .da-pr-combo b { color: var(--ink); }
.da-pr-note { margin: 0; padding: 0 clamp(16px, 2.4vw, 36px); font-size: .86rem; color: var(--mute); max-width: 80ch; }

/* ── Questions fréquentes ── */
.da-faq { padding: clamp(20px, 3vw, 40px) clamp(8px, 2vw, 24px); border-radius: 0 !important; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); gap: 20px clamp(28px, 5vw, 80px); align-items: start; }
.da-faq h2 { font-weight: 600; font-size: clamp(1.7rem, 2.6vw, 2.3rem); letter-spacing: -.025em; }
.da-faq details { border-top: 1px solid rgba(11, 27, 51, .16); } .da-faq details:last-child { border-bottom: 1px solid rgba(11, 27, 51, .16); }
.da-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 18px; min-height: 60px; padding: 14px 4px; font: 600 1.06rem/1.35 var(--font-display); color: var(--ink); }
.da-faq summary::-webkit-details-marker { display: none; } .da-faq summary::after { content: "+"; font: 400 1.6rem/1 var(--font-body); color: var(--blue); transition: transform .2s var(--ease); } .da-faq details[open] summary::after { transform: rotate(45deg); }
.da-faq details p { margin: 0 0 18px; padding: 0 40px 0 4px; color: var(--mute); max-width: 62ch; }
@media (max-width: 960px) {
  .da-admin { display: none; } .da-phone--hero { left: 50%; width: clamp(176px, 46vw, 236px); } .da-halo { left: 50%; }
  .da-pr { padding: 28px 20px; } .da-pr-grid { grid-template-columns: 1fr; } .da-pr-grid article + article { border-left: 0; border-top: 1px solid var(--line); } .da-pr-sub { min-height: 0; }
  .da-faq { grid-template-columns: 1fr; padding: 24px 6px; }
}
.da-admin { right: clamp(18px, 2.4vw, 36px); width: clamp(290px, 29vw, 420px); top: clamp(70px, 9vw, 120px); }
.da-phone--hero, .da-halo { left: 37%; }
@media (max-width: 960px) { .da-phone--hero, .da-halo { left: 50%; } }
.da-main h1, .da-main h2, .da-foot h2 { font-weight: 600 !important; }
.da-main h3 { font-weight: 600 !important; }
@media (max-width: 960px) {
  .da-facts { display: none; }
  .da-trust-head { flex-wrap: wrap; } .da-trust-head p { white-space: nowrap; font-size: .9rem; } .am-tools { flex-shrink: 0; } .da-link--sm { font-size: .88rem; white-space: nowrap; }
  .am-lg { height: 60px; padding: 0 22px; } .am-lg img { max-width: 112px; }
  .da-pr-grid article:not(.is-main) ul { display: none; } .da-pr-grid article { padding: 22px 6px 24px; } .da-pr-grid article.is-main { padding-inline: 16px; margin: 0 -10px; }
}
.am-mq { background: #f3f7fc; }

/* ═══ Passe 5 ═══ */
/* Logos : présence suffisante sans survol (couleur d'origine atténuée, contraste relevé) */
.am-lg img { filter: grayscale(.3) contrast(1.12) saturate(.9); opacity: 1; }
.am-lg:hover img { filter: none; }

/* Galerie MenuPulse : indice et repères (mobile uniquement) */
.da-shots-hint { display: none; }
.da-dots { display: none; }
@media (max-width: 960px) {
  /* le produit passe avant les arguments : titre, phrase, écrans, puis arguments, prix, boutons */
  .da-mp { display: flex; flex-direction: column; gap: 0; }
  .da-mp-copy { display: contents; }
  .da-mp h2 { order: 1; margin-bottom: 14px; } .da-mp .da-lead { order: 1; }
  .da-mp .da-shots { order: 2; margin-top: 18px; }
  .da-shots-hint { order: 2; display: flex; align-items: center; justify-content: center; gap: 12px; margin: -2px 0 18px; font-size: .84rem; color: rgba(231, 238, 251, .78); }
  .da-shots-hint span::before { content: "\2190  "; } .da-shots-hint span::after { content: "  \2192"; }
  .da-dots { order: 2; display: flex; justify-content: center; gap: 2px; margin: -4px 0 4px; }
  .da-dots button { width: 44px; height: 32px; padding: 0; border: 0; background: transparent; cursor: pointer; display: grid; place-items: center; }
  .da-dots button::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: rgba(255, 255, 255, .38); transition: width .25s var(--ease), background-color .25s; }
  .da-dots button[aria-current="true"]::before { width: 22px; border-radius: 8px; background: #fff; }
  .da-mp .da-checks, .da-mp .da-price, .da-mp .da-actions { order: 3; } .da-mp .da-checks { margin-top: 6px; } .da-mp .da-price { margin-top: 18px; } .da-mp .da-actions { margin-top: 16px; }
  .da-shots { margin-bottom: 6px; }
  /* tarifs : le menu d'abord, puis son option commande, puis la roulette */
  .da-pr-grid { display: flex; flex-direction: column; } .da-pr-grid article.is-main { order: 1; } .da-pr-grid article:nth-child(1) { order: 2; } .da-pr-grid article:nth-child(3) { order: 3; }
  .da-pr-grid article.is-main { margin: 0 -8px; border-radius: 22px; } .da-pr-grid article:not(.is-main) { border-top: 1px solid var(--line); }
}
html:not(.am-js) .da-shots-hint { display: none; }
@media (max-width: 960px) { .da-mp .da-price { align-self: flex-start; } .da-shots-hint { font-size: .8rem; } }
.da-foot-bar .am-sig { display: inline-block; }
html:not(.am-js) .da-shots-hint { display: flex; }
@media (max-width: 960px) { .da-pr-combo, .da-pr-note { padding-inline: 6px; } }

/* ═══ Passe 6 : Ev'Et, démonstration à quatre écrans, section commande ═══ */
.da-l4 { z-index: 4; animation: da-in4 16s infinite; } .da-l2 { animation: da-in2 16s infinite; } .da-l3 { animation: da-in3 16s infinite; }
@keyframes da-in2 { 0%, 23% { opacity: 0 } 27%, 98% { opacity: 1 } 100% { opacity: 0 } }
@keyframes da-in3 { 0%, 48% { opacity: 0 } 52%, 98% { opacity: 1 } 100% { opacity: 0 } }
@keyframes da-in4 { 0%, 73% { opacity: 0 } 77%, 98% { opacity: 1 } 100% { opacity: 0 } }
.da-steps li::after { animation: da-fill 16s linear infinite; } .da-steps li:nth-child(2)::after { animation-delay: 4s; } .da-steps li:nth-child(3)::after { animation-delay: 8s; } .da-steps li:nth-child(4)::after { animation-delay: 12s; }
@keyframes da-fill { 0% { width: 0 } 24% { width: 100% } 25%, 100% { width: 0 } }
@media (prefers-reduced-motion: reduce) { .da-l4 { display: none; animation: none; } }
html:not(.am-js) .da-l4 { display: none; animation: none; }
.da-phone--hero { left: 50%; width: clamp(224px, 19vw, 276px); bottom: -56px; } .da-halo { left: 50%; }
.da-stage { height: clamp(430px, 41vw, 600px); }
.da-src { margin: 10px 0 0; font-size: .8rem; color: var(--mute); } .da-mp .da-src { color: rgba(231, 238, 251, .7); }
.da-shots .da-phone { background: #000; }
.da-cmd { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(24px, 4vw, 64px); align-items: center; padding: clamp(28px, 5vw, 64px) clamp(24px, 5vw, 72px); background: #fff; border: 1px solid var(--line); }
.da-cmd h2 { font-weight: 600; font-size: clamp(1.8rem, 2.8vw, 2.6rem); line-height: 1.08; letter-spacing: -.026em; }
.da-cmd-copy { display: grid; gap: 20px; align-content: center; }
.da-cmd-vis { position: relative; display: grid; grid-template-columns: minmax(0, .4fr) minmax(0, 1fr); gap: 0; align-items: center; }
.da-cmd-phone { position: relative; z-index: 2; margin-right: -14%; } .da-cmd-phone .da-phone { max-width: 220px; }
.da-cmd-admin { margin: 0; border-radius: 16px; overflow: hidden; box-shadow: 0 28px 46px -24px rgba(11, 27, 51, .45), 0 0 0 1px var(--line); } .da-cmd-admin img { display: block; width: 100%; height: auto; }
.da-cmd-vis .da-src { grid-column: 1 / -1; text-align: center; }
@media (max-width: 960px) { .da-cmd { grid-template-columns: 1fr; padding: 28px 20px; } .da-cmd-vis { grid-template-columns: minmax(0, .45fr) minmax(0, 1fr); } .da-phone--hero { width: clamp(184px, 48vw, 240px); } .da-mp .da-src { order: 2; text-align: center; } }
.da-phone--hero { width: clamp(246px, 21vw, 304px); bottom: -74px; } .da-stage { height: clamp(450px, 43vw, 630px); }
.da-mp { grid-template-columns: minmax(0, .78fr) minmax(0, 1.4fr); }
.da-shots .da-phone { max-width: 290px; } .da-shots { gap: clamp(16px, 2.4vw, 36px); }
.da-mp .da-src { grid-column: 1 / -1; margin: -6px 0 0; text-align: center; }
@media (max-width: 960px) { .da-phone--hero { width: clamp(190px, 50vw, 250px); bottom: -40px; } }
@keyframes da-in2 { 0%, 24% { opacity: 0 } 25.6%, 98% { opacity: 1 } 100% { opacity: 0 } }
@keyframes da-in3 { 0%, 49% { opacity: 0 } 50.6%, 98% { opacity: 1 } 100% { opacity: 0 } }
@keyframes da-in4 { 0%, 74% { opacity: 0 } 75.6%, 98% { opacity: 1 } 100% { opacity: 0 } }
/* Mouvement réduit et sans JavaScript : correctif de priorité (.da-screen img imposait display:block) */
@media (prefers-reduced-motion: reduce) { .da-screen .da-l2, .da-screen .da-l3, .da-screen .da-l4 { display: none !important; animation: none !important; } .da-steps li::after { display: none !important; } }
html:not(.am-js) .da-screen .da-l2, html:not(.am-js) .da-screen .da-l3, html:not(.am-js) .da-screen .da-l4 { display: none !important; animation: none !important; }

/* ═══ Passe 7 : offre complète, QR/NFC, vraie roulette, séparation des téléphones sombres ═══ */
.am-hdr-demo { display: none; }
@media (max-width: 960px) { .am-hdr-demo { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 16px; margin-left: auto; margin-right: 8px; border-radius: 999px; background: var(--ink); color: #fff; font: 600 .9rem var(--font-body); text-decoration: none; } }
.da-shots .da-phone, .da-qr .da-phone { box-shadow: 0 0 0 1px rgba(255, 255, 255, .18), 0 30px 46px -28px rgba(0, 0, 0, .75); }
.da-rl-fig { display: grid; justify-items: center; gap: 12px; margin: 0; } .da-rl-fig .da-phone { width: min(100%, 270px); background: #000; box-shadow: 0 34px 50px -28px rgba(30, 20, 80, .55), 0 0 0 1px rgba(30, 20, 80, .18); border-radius: 36px; }
.da-rl-fig figcaption { font-size: .8rem; color: var(--mute); text-align: center; max-width: 36ch; }
.da-rl { grid-template-columns: minmax(0, .7fr) minmax(0, 1.1fr); }
.da-rl-fig img { border-radius: 0; box-shadow: none; }
/* QR / NFC */
.da-qr { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(24px, 4vw, 64px); align-items: center; padding: clamp(28px, 4.5vw, 56px) clamp(24px, 5vw, 72px); background: linear-gradient(135deg, #eaf3ff, #f6faff); border: 1px solid rgba(10, 100, 214, .12); }
.da-qr h2 { font-weight: 600; font-size: clamp(1.7rem, 2.6vw, 2.4rem); line-height: 1.1; letter-spacing: -.025em; }
.da-qr-copy { display: grid; gap: 20px; }
.da-qr-ways { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; } .da-qr-ways li { display: grid; gap: 2px; padding-left: 18px; border-left: 2px solid var(--blue); } .da-qr-ways b { font: 600 1.1rem var(--font-display); color: var(--ink); } .da-qr-ways span { color: var(--mute); }
.da-qr-note { margin: 0; font-size: .9rem; color: var(--mute); max-width: 60ch; } .da-qr-note b { color: var(--ink); }
.da-qr-vis { display: flex; align-items: center; justify-content: center; gap: clamp(10px, 2vw, 22px); } .da-qr-vis figure { margin: 0; display: grid; gap: 10px; justify-items: center; } .da-qr-vis figcaption { font-size: .85rem; color: var(--mute); }
.da-qr-card img { width: clamp(110px, 14vw, 170px); height: auto; border-radius: 14px; box-shadow: 0 22px 34px -22px rgba(11, 27, 51, .55), 0 0 0 1px var(--line); background: #fff; }
.da-qr-phone .da-phone { width: clamp(120px, 15vw, 170px); background: #000; } .da-qr-arrow { font-size: 1.6rem; color: var(--blue); }
@media (max-width: 960px) { .da-qr { grid-template-columns: 1fr; padding: 28px 20px; } .da-rl { grid-template-columns: 1fr; } .da-rl-fig .da-phone { width: min(70%, 230px); } }
/* Tarifs : quatre colonnes, l'offre complète à gauche */
.da-pr-lede { margin: 0; color: var(--mute); max-width: 36ch; }
.da-pr-grid { grid-template-columns: 1.25fr 1fr 1fr 1fr; }
.da-pr-grid article.is-main { background: var(--navy); color: #e7eefb; border-radius: 0; background-image: radial-gradient(420px 260px at 90% 0%, rgba(30, 110, 220, .4), transparent 70%); }
.da-pr-grid article.is-main h3, .da-pr-grid article.is-main .da-pr-price { color: rgba(231, 238, 251, .8); } .da-pr-grid article.is-main .da-pr-price b { color: #fff; } .da-pr-grid article.is-main li { color: #fff; } .da-pr-grid article.is-main li::before { border-color: #8ec1ff; }
.da-pr-save { margin: 0; font-size: .92rem; color: rgba(231, 238, 251, .86); } .da-pr-save s { opacity: .8; } .da-pr-save b { color: #fff; }
.da-pr-grid article.is-main .da-btn { background: #fff; color: var(--ink); box-shadow: none; } .da-pr-grid article.is-main .da-btn:hover { background: #eef5ff; }
.da-pr-sub b { color: var(--ink); }
@media (max-width: 960px) { .da-pr-grid { grid-template-columns: 1fr; } .da-pr-grid article.is-main { order: 0 !important; margin: 0 -8px; border-radius: 22px; padding: 26px 20px; } .da-pr-grid article:not(.is-main) { order: 1 !important; } .da-pr-grid article:not(.is-main) ul { display: grid; } .da-pr-grid article:nth-child(2) { order: 1 !important; } .da-pr-grid article:nth-child(3) { order: 2 !important; } .da-pr-grid article:nth-child(4) { order: 3 !important; } .da-pr-grid article:not(.is-main):nth-child(n) ul { display: none; } }
/* mobile : moins d'espace avant le produit */
@media (max-width: 960px) { .da-hero-copy { padding-top: 26px; gap: 14px; } .da-stage { height: clamp(300px, 80vw, 420px); } .da-steps li { padding: 10px 0; } .da-main { gap: 12px; } }
@media (max-width: 960px) { .da-cmd-vis { grid-template-columns: minmax(0, .62fr) minmax(0, 1fr); } .da-cmd-phone { margin-right: -22%; } .da-cmd-phone .da-phone { max-width: 190px; } }
.da-main section, .da-main section h2, .da-main section p { text-align: left; }
.da-main .da-rl-fig figcaption, .da-main .da-qr-vis figcaption, .da-main .da-cmd-vis .da-src, .da-main .da-mp .da-src, .da-main .da-shots figcaption, .da-main .da-shots-hint { text-align: center; }

/* Passe 8 : silhouette complète du téléphone sur mobile, séparée nettement des liens */
@media (max-width: 960px) {
  .da-hero .da-actions { margin-bottom: 4px; }
  .da-stage { height: clamp(430px, 106vw, 520px); margin-top: 6px; overflow: visible; }
  .da-phone--hero { bottom: auto; top: 22px; width: clamp(176px, 46vw, 220px); }
  .da-halo { bottom: -40px; }
  .da-hero { overflow: hidden; }
}
.da-pr-save b { display: inline-block; margin-top: 2px; }
@media (max-width: 960px) { .da-stage { --pw: clamp(170px, 46vw, 220px); height: calc(var(--pw) * 2.17 + 54px); } .da-phone--hero { width: var(--pw); top: 20px; } }
@media (max-width: 960px) { .da-stage { height: calc(var(--pw) * 2.17 + 34px); } }

/* ===== Passe 9 ===== */
/* Cadre d'appareil commun : même facture pour tous les téléphones */
.da-phone { border-radius: 42px; padding: 8px; background: #05080f; box-shadow: 0 0 0 1px rgba(255, 255, 255, .16), inset 0 0 0 1.5px #2a3447, 0 32px 48px -28px rgba(11, 27, 51, .6); }
.da-screen { border-radius: 34px; }
.da-phone:not(.da-phone--hero) { position: relative; }
.da-phone::before, .da-phone::after { content: ""; position: absolute; width: 3px; border-radius: 2px; background: #2a3447; }
.da-phone::before { left: -3px; top: 17%; height: 9%; box-shadow: 0 34px 0 #2a3447; }
.da-phone::after { right: -3px; top: 24%; height: 14%; }

/* Premier écran : le téléphone entier, sur ordinateur */
@media (min-width: 961px) {
  .da-stage { --pw: clamp(206px, 15.6vw, 238px); height: calc(var(--pw) * 2.17 + 48px); overflow: hidden; }
  .da-phone--hero { width: var(--pw); top: 24px; bottom: auto; }
  .da-halo { bottom: -120px; }
}

/* Trois téléphones MenuPulse : même taille, mêmes bords haut et bas */
.da-shots { align-items: start; }
.da-shots figure:nth-child(1), .da-shots figure:nth-child(3) { margin-top: 0; }
.da-shots .da-phone { width: 100%; max-width: 270px; }
@media (min-width: 961px) { .da-shots figcaption { white-space: nowrap; } }

/* Emplacement du geste QR/NFC */
.da-qr-photo { margin: 0; display: grid; gap: 10px; } .da-qr-photo img { display: block; width: 100%; height: auto; border-radius: 24px; box-shadow: 0 0 0 1px var(--line); }
.da-qr-photo figcaption { font-size: .85rem; color: var(--mute); }
.da-qr-vis { flex-wrap: wrap; } .da-qr-prov { flex-basis: 100%; margin: 6px 0 0; text-align: center; font-size: .8rem; color: var(--mute); }

/* Roulette : téléphone plus grand, équilibré avec le texte */
.da-rl { grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); }
.da-rl-fig .da-phone { width: min(100%, 320px); background: #05080f; border-radius: 42px; box-shadow: 0 0 0 1px rgba(30, 20, 80, .22), inset 0 0 0 1.5px #2a3447, 0 36px 52px -30px rgba(30, 20, 80, .6); }
.da-rl-fig .da-screen img { border-radius: 0; }
.da-rl-fig figcaption { max-width: 40ch; }
@media (max-width: 960px) { .da-rl-fig .da-phone { width: min(74%, 280px); } }

/* Visibilité locale : illustration conceptuelle */
.da-vl-fig { margin: 0; display: grid; gap: 10px; } .da-vl-fig img { display: block; width: 100%; height: auto; border-radius: 28px; box-shadow: 0 0 0 1px var(--line); }
.da-vl-fig figcaption { font-size: .8rem; color: var(--mute); text-align: center; }

/* Tarifs : lignes alignées d'une colonne à l'autre */
@media (min-width: 961px) {
  .da-pr-grid { grid-template-columns: 1.3fr 1fr 1fr 1fr; grid-template-rows: auto auto auto 1fr auto; column-gap: 0; row-gap: 0; }
  .da-pr-grid article { display: grid; grid-template-rows: subgrid; grid-row: span 5; row-gap: 14px; align-content: start; padding: 30px clamp(18px, 2.4vw, 36px) 34px; }
  .da-pr-sub { min-height: 0; }
  .da-pr-grid .da-btn, .da-pr-grid .da-link { align-self: end; }
  .da-pr-grid article:not(.is-main) .da-link { min-height: 44px; display: inline-flex; align-items: center; font-weight: 600; }
}
.da-pr-foot { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 8px clamp(20px, 4vw, 56px); border-top: 1px solid var(--line); padding: 20px clamp(16px, 2.4vw, 36px) 4px; }
.da-pr-foot .da-pr-combo, .da-pr-foot .da-pr-note { border: 0; padding: 0; margin: 0; }
@media (max-width: 960px) { .da-pr-foot { grid-template-columns: 1fr; padding-inline: 6px; } }

/* FAQ : panneau doux, titre à gauche */
.da-main .da-faq { background: #f1f6fd; border: 1px solid rgba(10, 100, 214, .1); border-radius: 36px !important; padding: clamp(28px, 4.4vw, 60px) clamp(22px, 5vw, 72px); grid-template-columns: minmax(0, .7fr) minmax(0, 1.5fr); }
.da-faq-head { display: grid; gap: 12px; align-content: start; position: sticky; top: 96px; } .da-faq-head p { margin: 0; color: var(--mute); } .da-faq-head a { color: var(--blue); font-weight: 600; }
.da-faq summary { min-height: 64px; padding: 16px 6px; border-radius: 12px; } .da-faq summary:hover { color: var(--blue); }
.da-faq summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.da-faq details p { padding: 0 44px 0 6px; line-height: 1.6; }
@media (max-width: 960px) { .da-main .da-faq { padding: 26px 16px; border-radius: 28px !important; grid-template-columns: 1fr; } .da-faq-head { position: static; } }

/* Pied de page : fond uni, groupes de liens, contact visible */
.da-foot { background: #0b1b33; padding: clamp(32px, 5vw, 64px) clamp(24px, 5vw, 72px) 26px; }
.da-foot-cols { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 32px clamp(20px, 3vw, 48px); padding: clamp(28px, 4vw, 44px) 0; }
.da-foot-brand { display: grid; gap: 14px; align-content: start; } .da-foot-brand p { margin: 0; max-width: 34ch; font-size: .94rem; color: rgba(231, 238, 251, .78); }
.da-foot .am-sig { font-size: 1.5rem; }
.da-foot h3 { margin: 0 0 12px; font: 600 .78rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: rgba(231, 238, 251, .62); }
.da-foot-cols ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.da-foot-cols a { color: rgba(255, 255, 255, .9); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; } .da-foot-cols a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.da-foot-cols small { font-size: .74rem; color: rgba(231, 238, 251, .62); }
.da-langs { display: flex; gap: 8px; } .da-langs span { padding: 8px 14px; border: 1px solid rgba(255, 255, 255, .24); border-radius: 999px; font-size: .86rem; color: #fff; }
.da-foot-legal { padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .14); }
@media (max-width: 960px) { .da-foot-cols { grid-template-columns: 1fr 1fr; } .da-foot-brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .da-foot-cols { grid-template-columns: 1fr 1fr; gap: 24px 16px; } }
.da-foot-cols a:has(small) { flex-direction: column; align-items: flex-start; gap: 0; justify-content: center; line-height: 1.25; padding: 4px 0; }
.da-qr-prov { justify-self: center; }

/* ===== Passe 10 : tarifs, FAQ, contact, pied de page reconstruits ===== */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.da-eyebrow { margin: 0; font: 600 .78rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--blue); }

/* Tarifs */
.da-px { background: #fff; border: 1px solid var(--line); padding: clamp(28px, 4.4vw, 60px) clamp(20px, 4.6vw, 64px); display: grid; gap: clamp(24px, 3vw, 40px); }
.da-px-head { display: grid; gap: 12px; max-width: 60ch; }
.da-px-head h2 { font-weight: 600; font-size: clamp(1.9rem, 3.2vw, 2.9rem); line-height: 1.05; letter-spacing: -.03em; color: var(--ink); }
.da-px-lede { margin: 0; color: var(--mute); font-size: 1.05rem; }
.da-px-main { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(16px, 2vw, 28px); align-items: stretch; }
.da-px-full { display: grid; align-content: start; gap: 18px; padding: clamp(26px, 3vw, 40px); border-radius: 28px; color: #e7eefb; background: linear-gradient(165deg, #0b1b33 0%, #12305a 100%); }
.da-px-kicker { margin: 0; font: 600 1rem var(--font-display); color: rgba(231, 238, 251, .85); }
.da-px-price { margin: 0; display: flex; align-items: baseline; gap: 8px; } .da-px-price b { font: 650 clamp(3.4rem, 5.2vw, 4.6rem)/1 var(--font-display); letter-spacing: -.045em; color: #fff; } .da-px-price span { font-size: 1.15rem; color: rgba(231, 238, 251, .8); }
.da-px-eco { margin: 0; font-size: .96rem; line-height: 1.5; color: rgba(231, 238, 251, .86); } .da-px-eco b { color: #fff; font-weight: 600; }
.da-px-incl { list-style: none; margin: 4px 0 6px; padding: 0; display: grid; gap: 0; border-top: 1px solid rgba(255, 255, 255, .16); }
.da-px-incl li { display: grid; grid-template-columns: 22px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .16); color: #8ec1ff; }
.da-px-incl svg { margin-top: 2px; } .da-px-incl b { display: block; font-weight: 600; color: #fff; } .da-px-incl small { display: block; margin-top: 2px; font-size: .9rem; color: rgba(231, 238, 251, .76); }
.da-px-full .da-btn { justify-self: start; }
.da-px-side { display: grid; gap: clamp(16px, 2vw, 24px); align-content: space-between; }
.da-px-list { display: grid; border: 1px solid var(--line); border-radius: 28px; padding: 8px clamp(18px, 2.4vw, 30px); background: #fbfdff; }
.da-px-list h3 { margin: 0; padding: 18px 0 10px; font: 600 .78rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--mute); }
.da-px-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 20px; align-items: start; padding: 18px 0; border-top: 1px solid var(--line); }
.da-px-name { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font: 600 1.12rem/1.2 var(--font-display); color: var(--ink); }
.da-px-tag { font: 500 .74rem/1 var(--font-body); padding: 5px 9px; border-radius: 999px; background: #e8f0fb; color: #3b5578; white-space: nowrap; } .da-px-tag--opt { background: transparent; border: 1px solid rgba(10, 100, 214, .45); color: var(--blue); }
.da-px-desc { margin: 6px 0 4px; color: var(--mute); font-size: .96rem; }
.da-px-amt { margin: 0; text-align: right; color: var(--mute); font-size: .92rem; white-space: nowrap; } .da-px-amt b { font: 650 1.8rem/1 var(--font-display); letter-spacing: -.03em; color: var(--ink); margin-right: 2px; }
.da-px-cmp { width: 100%; border-collapse: collapse; font-size: .92rem; }
.da-px-cmp caption { text-align: left; padding: 0 0 10px; font: 600 .78rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--mute); }
.da-px-cmp th, .da-px-cmp td { padding: 11px 10px; border-top: 1px solid var(--line); text-align: center; vertical-align: middle; }
.da-px-cmp thead th { border-top: 0; font-weight: 600; font-size: .86rem; color: var(--ink); line-height: 1.25; vertical-align: bottom; } .da-px-cmp thead th b { display: block; margin-top: 3px; font: 650 1.1rem var(--font-display); }
.da-px-cmp tbody th { text-align: left; font-weight: 500; color: var(--ink); padding-left: 0; }
.da-px-cmp .is-full { background: #eaf3ff; }
.da-px-cmp i { display: inline-block; width: 20px; height: 20px; border-radius: 50%; position: relative; vertical-align: middle; }
.da-px-cmp i.y { background: var(--blue); } .da-px-cmp i.y::after { content: ""; position: absolute; left: 6px; top: 4px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.da-px-cmp i.n::after { content: ""; position: absolute; left: 5px; top: 9px; width: 10px; height: 2px; background: #b6c3d6; }
.da-px-note { margin: 0; max-width: 84ch; font-size: .88rem; color: var(--mute); }
@media (max-width: 960px) {
  .da-px { padding: 28px 16px; } .da-px-main { grid-template-columns: 1fr; } .da-px-full { padding: 26px 22px; border-radius: 24px; } .da-px-full .da-btn { justify-self: stretch; text-align: center; }
  .da-px-list { padding: 4px 18px; border-radius: 24px; } .da-px-amt b { font-size: 1.5rem; }
  .da-px-cmp { font-size: .82rem; } .da-px-cmp th, .da-px-cmp td { padding: 10px 4px; } .da-px-cmp thead th { font-size: .76rem; } .da-px-cmp thead th b { font-size: .98rem; } .da-px-cmp tbody th { width: 34%; }
}

/* FAQ */
.da-fq { background: #f1f6fd; border: 1px solid rgba(10, 100, 214, .1); padding: clamp(28px, 4.4vw, 60px) clamp(20px, 5vw, 72px); display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.4fr); gap: 28px clamp(28px, 5vw, 80px); align-items: start; }
.da-fq-head { display: grid; gap: 14px; position: sticky; top: 96px; } .da-fq-head h2 { font-weight: 600; font-size: clamp(1.8rem, 2.8vw, 2.5rem); line-height: 1.08; letter-spacing: -.028em; color: var(--ink); } .da-fq-head p { margin: 0; color: var(--mute); } .da-fq-head a { color: var(--blue); font-weight: 600; text-underline-offset: 3px; }
.da-fq-list { display: grid; gap: 10px; }
.da-fq details { border-radius: 20px; border: 1px solid transparent; background: transparent; border-bottom-color: rgba(11, 27, 51, .12); transition: background .25s var(--ease), box-shadow .25s var(--ease); }
.da-fq details[open] { background: #fff; border-color: rgba(10, 100, 214, .18); box-shadow: 0 18px 32px -24px rgba(11, 27, 51, .35); }
.da-fq summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 68px; padding: 14px 20px; cursor: pointer; list-style: none; border-radius: 20px; font: 600 1.08rem/1.3 var(--font-display); color: var(--ink); }
.da-fq summary::-webkit-details-marker { display: none; } .da-fq summary::after { content: none; }
.da-fq summary:hover .da-fq-ic { background: var(--blue); } .da-fq summary:hover .da-fq-ic::before, .da-fq summary:hover .da-fq-ic::after { background: #fff; }
.da-fq summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.da-fq-ic { position: relative; flex: none; width: 34px; height: 34px; border-radius: 50%; background: #dce9fb; transition: background .25s var(--ease), transform .3s var(--ease); }
.da-fq-ic::before, .da-fq-ic::after { content: ""; position: absolute; left: 10px; top: 16px; width: 14px; height: 2px; border-radius: 1px; background: var(--blue); transition: transform .3s var(--ease), background .25s; } .da-fq-ic::after { transform: rotate(90deg); }
.da-fq details[open] .da-fq-ic { background: var(--blue); } .da-fq details[open] .da-fq-ic::before { background: #fff; } .da-fq details[open] .da-fq-ic::after { background: #fff; transform: rotate(0); }
.da-fq-a { padding: 0 72px 22px 20px; } .da-fq-a p { margin: 0; max-width: 60ch; font-size: 1.02rem; line-height: 1.65; color: #3b4d68; }
@media (prefers-reduced-motion: reduce) { .da-fq details, .da-fq-ic, .da-fq-ic::before, .da-fq-ic::after { transition: none; } }
@media (max-width: 960px) { .da-fq { padding: 28px 14px; grid-template-columns: 1fr; border-radius: 28px; } .da-fq-head { position: static; padding: 0 6px; } .da-fq summary { padding: 14px 16px; font-size: 1.02rem; min-height: 64px; } .da-fq-a { padding: 0 16px 20px; } }

/* Contact */
.da-ct { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px 40px; padding: clamp(26px, 3.6vw, 46px) clamp(22px, 5vw, 72px); background: linear-gradient(135deg, #dcebff 0%, #eef5ff 100%); border: 1px solid rgba(10, 100, 214, .14); }
.da-ct h2 { font-weight: 600; font-size: clamp(1.7rem, 2.8vw, 2.5rem); line-height: 1.08; letter-spacing: -.028em; color: var(--ink); } .da-ct p { margin: 8px 0 0; color: var(--mute); max-width: 44ch; }
.da-ct-act { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 22px; }
@media (max-width: 960px) { .da-ct { padding: 28px 20px; border-radius: 28px; } .da-ct-act { width: 100%; flex-direction: column; align-items: stretch; text-align: center; } .da-ct-act .da-link { justify-content: center; } }

/* Pied de page */
.da-ft { width: min(var(--wrap), 100% - 32px); margin: clamp(14px, 1.8vw, 22px) auto 22px; border-radius: 36px; background: #0b1b33; color: rgba(231, 238, 251, .84); padding: clamp(30px, 4vw, 52px) clamp(22px, 5vw, 72px) 22px; }
.da-ft-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.1fr; gap: 28px clamp(20px, 3vw, 48px); padding-bottom: clamp(24px, 3vw, 36px); }
.da-ft-brand { display: grid; gap: 12px; align-content: start; } .da-ft-brand .am-sig { font-size: 1.5rem; } .da-ft-brand p { margin: 0; max-width: 32ch; font-size: .94rem; line-height: 1.55; color: rgba(231, 238, 251, .72); }
.da-ft h3, .da-ft h2 { margin: 0 0 10px; font: 600 .76rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: rgba(231, 238, 251, .55); }
.da-ft ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.da-ft nav a { display: inline-flex; align-items: center; min-height: 40px; color: rgba(255, 255, 255, .92); text-decoration: none; font-size: .96rem; } .da-ft nav a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.da-ft a:focus-visible { outline: 2px solid #8ec1ff; outline-offset: 3px; border-radius: 4px; }
.da-ft-soon { padding-top: 8px; font-size: .84rem; line-height: 1.4; color: rgba(231, 238, 251, .6); max-width: 24ch; }
.da-ft-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 28px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .14); font-size: .86rem; color: rgba(231, 238, 251, .68); }
.da-ft-bar p { margin: 0; } .da-ft-bar a { color: rgba(255, 255, 255, .86); text-underline-offset: 3px; display: inline-flex; min-height: 36px; align-items: center; } .da-ft-lang { margin-left: auto !important; color: #fff; }
@media (max-width: 960px) { .da-ft { padding: 28px 20px 18px; border-radius: 28px; } .da-ft-grid { grid-template-columns: 1fr 1fr; } .da-ft-brand { grid-column: 1 / -1; } .da-ft-soon { max-width: none; } .da-ft-lang { margin-left: 0 !important; } }
@media (max-width: 440px) { .da-ft-grid { grid-template-columns: 1fr; gap: 22px; } }

/* Passe 10 : retouches après relecture */
.da-px-full { display: flex; flex-direction: column; gap: 18px; }
.da-px-incl { margin-bottom: 14px; } .da-px-incl li { padding: 20px 0; } .da-px-incl b { font-size: 1.06rem; }
.da-px-full .da-btn { margin-top: auto; align-self: flex-start; }
.da-fq details { border: 0; border-radius: 0; border-bottom: 1px solid rgba(11, 27, 51, .14); }
.da-fq details:first-child { border-top: 1px solid rgba(11, 27, 51, .14); }
.da-fq details[open] { border: 1px solid rgba(10, 100, 214, .2); border-radius: 20px; }
.da-fq details[open] + details { border-top: 0; }
.da-ct p { max-width: 54ch; }
@media (max-width: 960px) { .da-px-full .da-btn { align-self: stretch; } }

@media (max-width: 960px) {
  .da-px-row { gap: 4px 14px; padding: 18px 0; } .da-px-row > div { display: contents; }
  .da-px-name { grid-column: 1; grid-row: 1; align-self: center; } .da-px-amt { grid-column: 2; grid-row: 1; align-self: center; }
  .da-px-desc { grid-column: 1 / -1; grid-row: 2; margin: 2px 0 2px; } .da-px-row .da-link { grid-column: 1 / -1; grid-row: 3; justify-self: start; min-height: 40px; }
}
@media (min-width: 961px) { .da-px-incl { flex: 1; grid-auto-rows: 1fr; } .da-px-incl li { align-items: center; padding: 0; } }

/* ===== Passe 11 : tarifs simplifiés, FAQ resserrée mobile, pied de page mobile ===== */
.da-px-main { align-items: start; }
.da-px-full { display: grid; align-content: start; gap: 16px; }
.da-px-incl { flex: none; grid-auto-rows: auto; margin: 2px 0 8px; } .da-px-incl li { padding: 14px 0; align-items: start; }
.da-px-full .da-btn { margin-top: 0; align-self: start; justify-self: start; }
.da-px-list { padding: 6px clamp(18px, 2.4vw, 30px) 14px; align-content: start; }
.da-px-row { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 18px 0; }
.da-px-row--duo { border-top: 1px solid var(--ink); }
.da-px-more { margin-top: 6px; justify-self: start; }
.da-px-eco { font-size: .96rem; }
.da-px--page { max-width: 960px; margin-inline: auto; }
.da-tp { width: min(var(--wrap), 100% - 32px); margin: 0 auto; padding: clamp(96px, 10vw, 128px) 0 24px; }
.da-px-head h1 { font-weight: 600; font-size: clamp(2.1rem, 3.6vw, 3.2rem); line-height: 1.05; letter-spacing: -.03em; color: var(--ink); margin: 0; }
.da-px-head .da-eyebrow a { color: var(--blue); text-decoration: none; text-transform: none; letter-spacing: 0; font-size: .92rem; }
.da-tp-list { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--line); }
.da-tp-list li { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); } .da-tp-list b { font: 600 1.05rem var(--font-display); color: var(--ink); } .da-tp-list span { color: var(--mute); text-align: right; }
.da-tp-act { margin: 0; }
@media (max-width: 960px) {
  .da-px-row { padding: 16px 0; gap: 4px 14px; }
  .da-px-row .da-px-name { grid-column: 1; grid-row: auto; } .da-px-row .da-px-amt { grid-column: 2; grid-row: auto; }
  .da-px-full .da-btn { justify-self: stretch; text-align: center; }
  .da-tp-list li { flex-direction: column; gap: 2px; } .da-tp-list span { text-align: left; }
  /* FAQ resserrée */
  .da-fq-list { gap: 0; } .da-fq summary { min-height: 56px; padding: 11px 14px; font-size: 1rem; line-height: 1.25; gap: 12px; }
  .da-fq-ic { width: 30px; height: 30px; } .da-fq-ic::before, .da-fq-ic::after { left: 8px; top: 14px; }
  .da-fq-a { padding: 0 14px 16px; } .da-fq-a p { font-size: .98rem; line-height: 1.5; }
  /* Pied de page : deux colonnes */
  .da-ft-grid { grid-template-columns: 1fr 1fr; gap: 20px 16px; }
  .da-ft-brand { grid-column: 1 / -1; }
  .da-ft nav[aria-labelledby="ft-con"] { grid-column: 1 / -1; }
  .da-ft nav[aria-labelledby="ft-con"] ul { grid-template-columns: 1fr 1fr; column-gap: 16px; }
  .da-ft nav[aria-labelledby="ft-con"] li:first-child { grid-column: 1 / -1; }
  .da-ft-soon { font-size: .8rem; max-width: none; }
}
@media (max-width: 440px) { .da-ft-grid { grid-template-columns: 1fr 1fr; gap: 20px 16px; } }

/* ===== Passe 12 : tarifs, FAQ, contact et pied de page recomposés (sobriété : graphite, blanc cassé, accent bleu mesuré) ===== */
:root { --gx-paper: #fafaf8; --gx-gray: #eeeeeb; --gx-ink: #1c2128; --gx-mute: #5a626d; --gx-line: #d9dad5; --gx-line-2: #c3c5bf; }
.gx-wrap { width: min(var(--wrap), 100% - 48px); margin-inline: auto; }
.gx-eyebrow { margin: 0; font: 600 .78rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--blue); }
.gx-lk { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; color: var(--blue); font-weight: 600; font-size: .98rem; text-decoration: none; }
.gx-lk::after { content: "\203A"; font-size: 1.25em; line-height: 1; transition: transform .25s var(--ease); }
.gx-lk:hover { text-decoration: underline; text-underline-offset: 4px; } .gx-lk:hover::after { transform: translateX(3px); }
.gx-lk:focus-visible, .gx-btn:focus-visible, .gx-ft a:focus-visible, .gx-fq summary:focus-visible, .gx-back a:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 6px; }
.gx-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 46px; padding: 0 24px; border-radius: 999px; background: var(--blue); color: #fff; font: 600 .98rem var(--font-body); text-decoration: none; border: 1px solid var(--blue); transition: background .2s, border-color .2s; }
.gx-btn:hover { background: #0852b3; border-color: #0852b3; }
.gx-btn--wa { background: #fff; color: var(--gx-ink); border-color: var(--gx-line-2); } .gx-btn--wa:hover { background: #fff; border-color: var(--gx-ink); }
.gx-btn--wa i { width: 9px; height: 9px; border-radius: 50%; background: #22a35a; }

/* Tarifs */
.gx-px { background: var(--gx-paper); border: 1px solid var(--gx-line); border-radius: 32px; padding: clamp(36px, 5vw, 72px) clamp(22px, 5.5vw, 88px); }
.gx-px-in { display: grid; gap: clamp(32px, 4vw, 56px); }
.gx-head { display: grid; gap: 14px; max-width: 62ch; }
.gx-head h2, .gx-head h1 { margin: 0; font-weight: 600; font-size: clamp(2rem, 3.6vw, 3.1rem); line-height: 1.04; letter-spacing: -.032em; color: var(--gx-ink); }
.gx-lede { margin: 0; font-size: 1.08rem; color: var(--gx-mute); max-width: 52ch; }
.gx-back { margin: 0 0 6px; } .gx-back a { color: var(--blue); text-decoration: none; font-weight: 600; font-size: .95rem; }
.gx-full { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px clamp(40px, 7vw, 110px); align-items: center; padding: clamp(28px, 3.6vw, 48px) 0; border-block: 1px solid var(--gx-ink); }
.gx-kicker { margin: 0 0 8px; font: 600 1.05rem var(--font-display); color: var(--gx-ink); }
.gx-price { margin: 0; display: flex; align-items: baseline; gap: 10px; } .gx-price b { font: 600 clamp(4rem, 7vw, 6.2rem)/.95 var(--font-display); letter-spacing: -.05em; color: var(--gx-ink); } .gx-price span { font-size: 1.2rem; color: var(--gx-mute); }
.gx-eco { margin: 14px 0 0; max-width: 40ch; color: var(--gx-mute); font-size: 1rem; line-height: 1.5; }
.gx-actions { margin: 24px 0 0; }
.gx-incl { list-style: none; margin: 0; padding: 0; display: grid; }
.gx-incl li { display: grid; gap: 2px; padding: 16px 0 16px 32px; position: relative; border-top: 1px solid var(--gx-line); } .gx-incl li:first-child { border-top: 0; padding-top: 0; } .gx-incl li:last-child { padding-bottom: 0; }
.gx-incl li::before { content: ""; position: absolute; left: 4px; top: 21px; width: 6px; height: 11px; border: solid var(--blue); border-width: 0 2px 2px 0; transform: rotate(45deg); } .gx-incl li:first-child::before { top: 5px; }
.gx-incl b { font: 600 1.12rem var(--font-display); color: var(--gx-ink); } .gx-incl span { color: var(--gx-mute); font-size: .98rem; }
.gx-sep { display: grid; gap: 18px; }
.gx-sub { margin: 0 0 4px; font: 600 .78rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--gx-mute); }
.gx-groups { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 0 clamp(24px, 3.5vw, 56px); }
.gx-grp h4, .gx-grp h3 { margin: 0; padding: 0 0 12px; font: 600 .86rem var(--font-body); color: var(--gx-ink); border-bottom: 1px solid var(--gx-ink); }
.gx-grp ul { list-style: none; margin: 0; padding: 0; display: grid; }
.gx-grp--2 ul { grid-template-columns: 1fr 1fr; gap: 0 clamp(24px, 3.5vw, 56px); }
.gx-grp li { display: grid; gap: 14px; padding: 20px 0 4px; align-content: start; }
.gx-n { margin: 0; font: 600 1.1rem/1.25 var(--font-display); color: var(--gx-ink); } .gx-n small { display: block; margin-top: 4px; font: 400 .92rem var(--font-body); color: var(--gx-mute); }
.gx-p { margin: 0; color: var(--gx-mute); font-size: .95rem; } .gx-p b { font: 600 clamp(1.9rem, 2.8vw, 2.5rem)/1 var(--font-display); letter-spacing: -.035em; color: var(--gx-ink); margin-right: 3px; }
.gx-foot { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 40px; }
.gx-note { margin: 0; max-width: 70ch; font-size: .88rem; color: var(--gx-mute); }
@media (max-width: 960px) {
  .gx-px { padding: 32px 20px 28px; border-radius: 24px; }
  .gx-full { grid-template-columns: 1fr; gap: 24px; padding: 28px 0; } .gx-price b { font-size: 4.2rem; } .gx-eco { max-width: none; }
  .gx-groups { grid-template-columns: 1fr; gap: 26px; } .gx-grp--2 ul { grid-template-columns: 1fr; }
  .gx-grp li { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--gx-line); } .gx-grp li:last-child { border-bottom: 0; padding-bottom: 0; }
  .gx-p { text-align: right; white-space: nowrap; } .gx-p b { font-size: 1.7rem; }
  .gx-foot { flex-direction: column; gap: 0; }
}
@media (max-width: 600px) { .gx-actions .gx-btn { width: 100%; } }

/* Page Tarifs */
.gx-tp { width: min(var(--wrap), 100% - 32px); margin: 0 auto; padding: clamp(84px, 9vw, 112px) 0 clamp(40px, 5vw, 64px); }
.gx-cmp-wrap { overflow-x: auto; }
.gx-cmp { width: 100%; border-collapse: collapse; font-size: .98rem; }
.gx-cmp caption { text-align: left; padding: 0 0 12px; font: 600 .78rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--gx-mute); }
.gx-cmp th, .gx-cmp td { padding: 16px 12px; border-top: 1px solid var(--gx-line); text-align: center; vertical-align: middle; }
.gx-cmp thead th { border-top: 1px solid var(--gx-ink); font: 600 .95rem var(--font-body); color: var(--gx-ink); vertical-align: bottom; } .gx-cmp thead th b { display: block; margin-top: 4px; font: 600 1.4rem var(--font-display); letter-spacing: -.03em; }
.gx-cmp tbody th { text-align: left; padding-left: 0; font-weight: 500; color: var(--gx-ink); }
.gx-cmp .is-full { background: #f0f0ec; } .gx-cmp thead .is-full { box-shadow: inset 0 2px 0 var(--blue); }
.gx-cmp i { display: inline-block; width: 18px; height: 18px; position: relative; vertical-align: middle; }
.gx-cmp i.y::after { content: ""; position: absolute; left: 6px; top: 1px; width: 6px; height: 11px; border: solid var(--blue); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.gx-cmp i.n::after { content: ""; position: absolute; left: 3px; top: 8px; width: 12px; height: 2px; background: var(--gx-line-2); }
@media (max-width: 960px) { .gx-cmp { font-size: .86rem; } .gx-cmp th, .gx-cmp td { padding: 12px 4px; } .gx-cmp thead th { font-size: .8rem; } .gx-cmp thead th b { font-size: 1.1rem; } .gx-cmp tbody th { width: 34%; } }

/* FAQ */
.gx-fq { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.4fr); gap: 28px clamp(32px, 6vw, 96px); align-items: start; padding: clamp(44px, 6vw, 88px) clamp(22px, 5.5vw, 88px); }
.gx-fq-head { display: grid; gap: 14px; position: sticky; top: 96px; } .gx-fq-head h2 { margin: 0; font-weight: 600; font-size: clamp(1.9rem, 3vw, 2.6rem); line-height: 1.06; letter-spacing: -.03em; color: var(--gx-ink); } .gx-fq-head p:last-child { margin: 0; color: var(--gx-mute); }
.gx-fq-head .gx-lk { min-height: 0; }
.gx-fq-list { border-top: 1px solid var(--gx-ink); }
.gx-fq details { border-bottom: 1px solid var(--gx-line-2); }
.gx-fq summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 66px; padding: 14px 2px; cursor: pointer; list-style: none; font: 500 1.14rem/1.3 var(--font-display); color: var(--gx-ink); }
.gx-fq summary::-webkit-details-marker { display: none; }
.gx-fq summary:hover .gx-fq-q { color: var(--blue); }
.gx-fq-ic { position: relative; flex: none; width: 16px; height: 16px; }
.gx-fq-ic::before, .gx-fq-ic::after { content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 1.5px; background: var(--gx-ink); transition: transform .3s var(--ease), background .2s; } .gx-fq-ic::after { transform: rotate(90deg); }
.gx-fq details[open] .gx-fq-ic::before, .gx-fq details[open] .gx-fq-ic::after { background: var(--blue); } .gx-fq details[open] .gx-fq-ic::after { transform: rotate(0); }
.gx-fq details[open] .gx-fq-q { color: var(--blue); }
.gx-fq-a { padding: 0 48px 24px 2px; animation: gxfq .3s var(--ease); } .gx-fq-a p { margin: 0; max-width: 58ch; font-size: 1.02rem; line-height: 1.6; color: #3d4550; }
@keyframes gxfq { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .gx-fq-a { animation: none; } .gx-fq-ic::before, .gx-fq-ic::after, .gx-lk::after { transition: none; } }
@media (max-width: 960px) {
  .gx-fq { grid-template-columns: 1fr; padding: 40px 20px 36px; gap: 20px; } .gx-fq-head { position: static; }
  .gx-fq summary { min-height: 58px; padding: 12px 0; font-size: 1.04rem; line-height: 1.28; gap: 16px; } .gx-fq-a { padding: 0 8px 18px 0; } .gx-fq-a p { font-size: .98rem; line-height: 1.52; }
}

/* Contact et pied de page */
.gx-ft { margin-top: 0; background: var(--gx-gray); border-top: 1px solid var(--gx-line); color: var(--gx-ink); padding: clamp(44px, 6vw, 80px) 0 20px; }
.gx-ct { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px 48px; padding-bottom: clamp(36px, 5vw, 60px); border-bottom: 1px solid var(--gx-line-2); }
.gx-ct h2 { margin: 0; font-weight: 600; font-size: clamp(1.9rem, 3.2vw, 2.8rem); line-height: 1.05; letter-spacing: -.032em; color: var(--gx-ink); } .gx-ct p { margin: 10px 0 0; max-width: 56ch; text-wrap: pretty; color: var(--gx-mute); }
.gx-ct-act { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 24px; }
.gx-ft-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 32px clamp(24px, 4vw, 64px); padding: clamp(32px, 4vw, 48px) 0; }
.gx-ft-brand { display: grid; gap: 12px; align-content: start; } .gx-ft-brand .am-sig { font-size: 1.45rem; } .gx-ft-brand p { margin: 0; max-width: 34ch; text-wrap: pretty; font-size: .94rem; line-height: 1.55; color: var(--gx-mute); }
.gx-ft-col h3, .gx-ft-col h2 { margin: 0 0 8px; font: 600 .78rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--gx-mute); }
.gx-ft-col ul { list-style: none; margin: 0; padding: 0; }
.gx-ft-col a { display: inline-flex; align-items: center; min-height: 38px; color: var(--gx-ink); text-decoration: none; font-size: .97rem; } .gx-ft-col a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 4px; }
.gx-ft-soon { margin: 6px 0 0; max-width: 26ch; font-size: .84rem; line-height: 1.4; color: var(--gx-mute); }
.gx-ft-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 28px; padding-top: 18px; border-top: 1px solid var(--gx-line-2); font-size: .86rem; color: var(--gx-mute); }
.gx-ft-bar p { margin: 0; } .gx-ft-bar a { display: inline-flex; align-items: center; min-height: 36px; color: var(--gx-ink); text-underline-offset: 3px; }
.gx-ft-lang { margin-left: auto !important; color: var(--gx-ink); }
@media (max-width: 960px) {
  .gx-wrap { width: min(var(--wrap), 100% - 40px); }
  .gx-ft { padding-top: 40px; }
  .gx-ct { flex-direction: column; align-items: stretch; gap: 18px; padding-bottom: 32px; } .gx-ct-act { flex-direction: column; align-items: stretch; gap: 4px; text-align: center; } .gx-ct-act .gx-lk { justify-content: center; }
  .gx-ft-grid { grid-template-columns: 1fr 1fr; gap: 24px 20px; padding: 28px 0; } .gx-ft-brand, .gx-ft-con { grid-column: 1 / -1; }
  .gx-ft-con ul { display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; } .gx-ft-mail { grid-column: 1 / -1; }
  .gx-ft-soon { max-width: none; } .gx-ft-lang { margin-left: 0 !important; }
}

/* ===== Passe 13 : page MenuPulse, démonstrations pilotables, espace « en préparation », sélecteur de langue ===== */
.da-soon { padding: 0 !important; border-radius: 0 !important; }
.da-soon h2 { margin: 0 0 12px; font: 600 .78rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--gx-mute); }
.da-soon ul { border: 0; gap: 12px; grid-template-columns: 1fr 1fr; }
.da-soon li { border: 1px dashed var(--gx-line-2) !important; border-radius: 22px; background: rgba(255, 255, 255, .55); padding: 16px 18px; justify-content: flex-start; align-items: center; gap: 14px; }
.da-soon-ic { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: #eef2f8; color: #3d5170; }
.da-soon li > div { flex: 1; min-width: 0; } .da-soon h3 { margin: 0; font: 600 1.05rem var(--font-display); color: var(--gx-ink); } .da-soon p { margin: 2px 0 0; font-size: .9rem; color: var(--gx-mute); }
.da-soon .am-tag { margin-left: auto; align-self: flex-start; }
@media (max-width: 960px) { .da-soon ul { grid-template-columns: 1fr; } .da-soon li { padding: 14px; } .da-soon .am-tag { align-self: center; } }
@media (max-width: 440px) { .da-soon li { flex-wrap: wrap; } .da-soon .am-tag { margin-left: 60px; } }

/* Démonstrations pilotables */
.pg-stage { position: relative; display: grid; justify-items: center; align-content: center; gap: 14px; }
.pg-phone { width: min(100%, 290px); }
.pg-phone .da-screen { background: #0b0f17; }
.pg-scr { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .5s var(--ease); }
.pg-scr.is-on { opacity: 1; } .pg-scr:first-child { position: relative; }
.pg-cap { margin: 0; min-height: 2.6em; text-align: center; font-size: .9rem; color: var(--gx-mute); max-width: 36ch; }
.pg-steps { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--gx-line-2); }
.pg-steps li { border-bottom: 1px solid var(--gx-line-2); }
.pg-steps button { position: relative; display: flex; align-items: center; gap: 14px; width: 100%; min-height: 54px; padding: 10px 2px; background: none; border: 0; cursor: pointer; text-align: left; font: 500 1.02rem/1.3 var(--font-display); color: var(--gx-mute); transition: color .25s; }
.pg-steps button:disabled { cursor: default; color: var(--gx-ink); }
.pg-n { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--gx-line-2); font: 600 .78rem var(--font-body); transition: background .25s, color .25s, border-color .25s; }
.pg-steps button:hover { color: var(--gx-ink); }
.pg-steps button[aria-pressed="true"] { color: var(--gx-ink); font-weight: 600; }
.pg-steps button[aria-pressed="true"] .pg-n { background: var(--blue); border-color: var(--blue); color: #fff; }
.pg-steps button:active { transform: scale(.985); }
.pg-steps button:focus-visible, .pg-pause:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 8px; }
.pg-steps button::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--blue); transform: scaleX(0); transform-origin: left; }
[data-demo].is-live .pg-steps button[aria-pressed="true"]::after { animation: pgfill var(--pg-dur, 4s) linear forwards; }
[data-demo].is-paused .pg-steps button[aria-pressed="true"]::after, [data-demo]:not(.is-visible) .pg-steps button[aria-pressed="true"]::after { animation-play-state: paused; }
[data-demo].is-stopped .pg-steps button::after { animation: none; }
@keyframes pgfill { to { transform: scaleX(1); } }
.pg-pause { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; margin-top: 12px; padding: 0 16px; border: 1px solid var(--gx-line-2); border-radius: 999px; background: #fff; color: var(--gx-ink); font: 600 .88rem var(--font-body); cursor: pointer; }
.pg-pause::before { content: ""; width: 8px; height: 10px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.pg-pause[aria-pressed="true"]::before { width: 0; height: 0; border: 0; border-left: 9px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
.pg-pause:hover { border-color: var(--gx-ink); }
@media (prefers-reduced-motion: reduce) { .pg-scr { transition: none; } [data-demo] .pg-steps button::after { animation: none !important; } .pg-pause { display: none; } }

/* Page MenuPulse */
.pg-main > section { border-radius: 36px; }
.pg-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(24px, 5vw, 72px); align-items: center; padding: clamp(96px, 9vw, 128px) clamp(24px, 5vw, 72px) clamp(32px, 4vw, 56px); background: linear-gradient(180deg, #f9fbff 0%, #eef4fc 100%); border: 1px solid var(--line); }
.pg-hero-copy { display: grid; gap: 20px; align-content: center; } .pg-hero h1 { margin: 0; font-weight: 600; font-size: clamp(2.2rem, 4.2vw, 3.7rem); line-height: 1.03; letter-spacing: -.034em; color: var(--gx-ink); text-wrap: balance; }
.pg-hero-fig { margin: 0; display: grid; justify-items: center; gap: 12px; } .pg-hero-fig .da-phone { width: min(100%, 270px); } .pg-hero-fig figcaption { font-size: .85rem; color: var(--mute); text-align: center; max-width: 34ch; }
.pg-sec { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(24px, 5vw, 72px); align-items: center; padding: clamp(32px, 5vw, 64px) clamp(24px, 5vw, 72px); background: #fff; border: 1px solid var(--line); }
.pg-sec--tint { background: #f1f6fd; }
.pg-sec--rev .pg-vis { order: -1; }
.pg-copy { display: grid; gap: 18px; align-content: center; } .pg-copy h2 { margin: 0; font-weight: 600; font-size: clamp(1.8rem, 2.9vw, 2.6rem); line-height: 1.08; letter-spacing: -.028em; color: var(--gx-ink); text-wrap: balance; }
.pg-vis { display: grid; justify-items: center; align-items: center; }
.pg-src { margin: 8px 0 0; font-size: .8rem; color: var(--mute); text-align: center; }
.pg-langs { margin: 0; font-size: .9rem; color: var(--gx-mute); line-height: 1.6; } .pg-langs b { color: var(--gx-ink); font-weight: 600; }
.pg-flow { list-style: none; counter-reset: f; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--gx-ink); }
.pg-flow li { counter-increment: f; display: grid; gap: 2px; padding: 16px 0 16px 44px; position: relative; border-bottom: 1px solid var(--gx-line-2); }
.pg-flow li::before { content: counter(f); position: absolute; left: 0; top: 16px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--blue); color: var(--blue); font: 600 .78rem var(--font-body); }
.pg-flow b { font: 600 1.08rem var(--font-display); color: var(--gx-ink); } .pg-flow span { color: var(--gx-mute); }
.pg-admin { margin: 0; } .pg-admin img { display: block; width: 100%; height: auto; border-radius: 14px; box-shadow: 0 28px 46px -26px rgba(11, 27, 51, .4), 0 0 0 1px var(--line); } .pg-admin figcaption { margin-top: 10px; font-size: .8rem; color: var(--mute); text-align: center; }
.pg-opt { display: grid; gap: clamp(24px, 3vw, 40px); padding: clamp(32px, 5vw, 64px) clamp(24px, 5vw, 72px); background: #fff; border: 1px solid var(--line); }
.pg-opt-head { display: grid; gap: 14px; max-width: 60ch; } .pg-opt-head h2 { margin: 0; font-weight: 600; font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.06; letter-spacing: -.03em; color: var(--gx-ink); }
.pg-opt-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(20px, 3vw, 48px); }
.pg-opt-col { display: grid; gap: 8px; align-content: start; padding-top: 16px; border-top: 1px solid var(--gx-ink); } .pg-opt-col h3 { margin: 0; font: 600 1.15rem var(--font-display); color: var(--gx-ink); } .pg-opt-col p { margin: 0; color: var(--gx-mute); font-size: .96rem; } .pg-opt-col .da-px-tag, .pg-opt-col .pg-tag { justify-self: start; }
.pg-tag { font: 500 .74rem/1 var(--font-body); padding: 5px 10px; border-radius: 999px; background: #eceeef; color: #3d4550; } .pg-tag--opt { background: transparent; border: 1px solid rgba(10, 100, 214, .45); color: var(--blue); }
.pg-j { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(20px, 4vw, 56px); align-items: center; }
.pg-j-stage { position: relative; display: grid; grid-template-columns: minmax(0, .38fr) minmax(0, 1fr); align-items: center; }
.pg-j-phone { position: relative; z-index: 2; margin-right: -16%; } .pg-j-phone .da-phone { max-width: 220px; }
.pg-j-admin { margin: 0; border-radius: 16px; overflow: hidden; box-shadow: 0 28px 46px -24px rgba(11, 27, 51, .45), 0 0 0 1px var(--line); opacity: .45; filter: grayscale(.5); transition: opacity .5s var(--ease), filter .5s var(--ease); } .pg-j-admin img { display: block; width: 100%; height: auto; } .pg-j-admin.is-on { opacity: 1; filter: none; }
.pg-j-ctl { display: grid; gap: 0; }
@media (max-width: 960px) {
  .pg-hero { grid-template-columns: 1fr; padding: 92px 20px 32px; } .pg-hero-fig .da-phone { width: min(70%, 240px); }
  .pg-sec { grid-template-columns: 1fr; padding: 28px 20px; gap: 24px; } .pg-sec--rev .pg-vis { order: 0; }
  .pg-opt { padding: 28px 20px; } .pg-opt-cols { grid-template-columns: 1fr; gap: 22px; }
  .pg-j { grid-template-columns: 1fr; } .pg-j-stage { grid-template-columns: minmax(0, .5fr) minmax(0, 1fr); } .pg-j-phone { margin-right: -24%; } .pg-j-phone .da-phone { max-width: 190px; }
}
.da-cmd-vis.pg-cmdv { display: grid; grid-template-columns: 1fr; gap: 14px; }
.da-cmd-vis.pg-cmdv .pg-j-stage { grid-template-columns: minmax(0, .4fr) minmax(0, 1fr); }
@media (max-width: 960px) { .da-cmd-vis.pg-cmdv .pg-j-stage { grid-template-columns: minmax(0, .5fr) minmax(0, 1fr); } }

/* Sélecteur de langue et pause du premier écran */
.gx-ft-lang { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gx-ft-lang ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 4px; }
.gx-ft-lang a, .gx-ft-lang [aria-current] { display: inline-flex; align-items: center; min-height: 36px; padding: 0 8px; border-radius: 999px; font-size: .88rem; color: var(--gx-ink); text-decoration: none; }
.gx-ft-lang a:hover { background: rgba(28, 33, 40, .07); }
.gx-ft-lang [aria-current] { background: #fff; border: 1px solid var(--gx-line-2); font-weight: 600; }
.am-mob-lang { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0; padding: 0; list-style: none; } .am-mob-lang a, .am-mob-lang span { color: inherit; font-size: .95rem; text-decoration: none; min-height: 40px; display: inline-flex; align-items: center; } .am-mob-lang [aria-current] { font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.da-hero-pause { position: absolute; right: 16px; bottom: 14px; z-index: 6; display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 14px; border: 1px solid var(--gx-line-2); border-radius: 999px; background: rgba(255, 255, 255, .9); color: var(--gx-ink); font: 600 .82rem var(--font-body); cursor: pointer; }
.da-hero-pause::before { content: ""; width: 7px; height: 9px; border-left: 2.5px solid currentColor; border-right: 2.5px solid currentColor; } .da-hero-pause[aria-pressed="true"]::before { width: 0; height: 0; border: 0; border-left: 8px solid currentColor; border-top: 4.5px solid transparent; border-bottom: 4.5px solid transparent; }
.da-hero-pause:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.da-hero.is-paused .da-l2, .da-hero.is-paused .da-l3, .da-hero.is-paused .da-l4, .da-hero.is-paused .da-steps li::after { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) { .da-hero-pause { display: none; } }
/* Retours visuels des boutons et liens */
.da-btn, .gx-btn, .da-link, .gx-lk { -webkit-tap-highlight-color: transparent; }
.gx-btn:active { transform: scale(.97); } .gx-lk:active { opacity: .7; }
.pg-main .da-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 22px; }
@media (max-width: 600px) { .pg-hero .da-actions { flex-direction: column; align-items: stretch; } .pg-hero .da-btn { width: 100%; } .pg-hero .da-link { justify-content: center; } }
.pg-pause { justify-self: start; align-self: start; }
.pg-j .pg-vis { justify-items: stretch; } .pg-j-stage { width: 100%; }
.pg-copy .pg-steps { width: 100%; }
.gx-fq-q { text-wrap: balance; }

/* Passe 13 : correctifs de mise en page mobile */
@media (max-width: 960px) {
  .da-rl { grid-template-columns: minmax(0, 1fr); } .da-rl-copy { order: -1; } .da-rl-fig .da-phone { width: min(62%, 250px); }
  .da-soon li { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 2px 14px; align-items: start; } .da-soon-ic { grid-row: 1 / span 2; }
  .da-soon .am-tag { grid-column: 2; margin: 6px 0 0; justify-self: start; align-self: auto; }
  .da-hero { padding-bottom: 60px; }
}
.da-hero { position: relative; }
@media (max-width: 960px) {
  .gx-cmp { table-layout: fixed; } .gx-cmp tbody th { width: auto; overflow-wrap: anywhere; hyphens: auto; }
  .gx-cmp thead th { overflow-wrap: anywhere; hyphens: auto; font-size: .74rem; } .gx-cmp thead th b { font-size: 1rem; }
  .gx-cmp thead th:first-child { width: 34%; }
}

/* ===== Passe 14 : option commande (téléphone + écran de caisse), pages commande, roulette et supports ===== */
.da-cmd { grid-template-columns: minmax(0, 1fr); gap: clamp(24px, 3vw, 40px); }
.da-cmd-copy { max-width: 70ch; }
.pt-aside { display: block; margin-top: 4px; font: 400 .95rem var(--font-body); color: var(--gx-mute); }
.da-btn--sm { justify-self: start; min-height: 44px; padding: 0 20px; font-size: .95rem; }
.pt-stage { display: grid; gap: 20px; }
.pt-devs { display: grid; grid-template-columns: minmax(190px, 260px) 52px minmax(0, 1fr); gap: 0 14px; align-items: center; }
.pt-side { display: grid; gap: 10px; justify-items: center; min-width: 0; }
.pt-side--tab { justify-items: stretch; }
.pt-lab { margin: 0; font: 600 .76rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--gx-mute); }
.pt-phone { width: 100%; max-width: 250px; }
.pt-link { color: var(--blue); display: grid; place-items: center; }
.pt-tab { margin: 0; border-radius: 22px; background: #11151c; padding: 12px; box-shadow: 0 0 0 1px #2a3140, 0 34px 50px -30px rgba(11, 27, 51, .6); transition: box-shadow .4s var(--ease), transform .4s var(--ease); }
.pt-tab.is-on { box-shadow: 0 0 0 3px var(--blue), 0 34px 50px -30px rgba(10, 100, 214, .55); transform: translateY(-3px); }
.pt-tabframe { border-radius: 12px; overflow: hidden; background: #0d1117; } .pt-tabframe img { display: block; width: 100%; height: auto; }
.pt-ctl .pg-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 22px; border-top: 0; }
.pt-ctl .pg-steps li { border-top: 1px solid var(--gx-line-2); border-bottom: 0; }
.pt-ctl .pg-steps button { align-items: flex-start; min-height: 64px; padding: 14px 2px 10px; }
.pt-ctl .pg-steps button::after { top: -1px; bottom: auto; }
.pt-ctl .pg-cap { text-align: left; max-width: 70ch; margin-top: 12px; }
.pt-ctl { display: grid; }
.pt-demo { margin: 0; font-size: .82rem; color: var(--mute); max-width: 80ch; } .pt-demo b { color: var(--gx-ink); }
.pt-sec { display: grid; gap: clamp(20px, 3vw, 36px); padding: clamp(32px, 5vw, 64px) clamp(24px, 5vw, 72px); background: #fff; border: 1px solid var(--line); }
.pt-sec h2 { margin: 0; font-weight: 600; font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.06; letter-spacing: -.03em; color: var(--gx-ink); text-wrap: balance; max-width: 22ch; }
.pg-hero--solo { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.pt-sum { display: grid; gap: 0; padding: 8px 26px; background: #fff; border: 1px solid var(--gx-line); border-radius: 24px; }
.pt-sum-row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin: 0; padding: 16px 0; border-bottom: 1px solid var(--gx-line); color: var(--gx-mute); }
.pt-sum-row b { font: 600 1.6rem var(--font-display); letter-spacing: -.03em; color: var(--gx-ink); }
.pt-sum-total { border-bottom: 0; color: var(--gx-ink); font-weight: 600; } .pt-sum-total b { font-size: 2.6rem; color: var(--blue); }
.pt-sum-note { margin: 0; padding: 0 0 14px; font-size: .86rem; color: var(--gx-mute); }
.pt-duo { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; justify-items: stretch; }
.pt-duo figure { margin: 0; display: grid; gap: 8px; } .pt-duo img { display: block; width: 100%; height: auto; border-radius: 12px; box-shadow: 0 0 0 1px var(--line), 0 24px 40px -26px rgba(11, 27, 51, .4); } .pt-duo figcaption { font-size: .85rem; color: var(--gx-mute); }
.pt-duo .pg-src { grid-column: 1 / -1; }
.pg-opt-cols--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pg-opt-cols--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pt-note { display: grid; gap: 10px; padding: clamp(24px, 3.5vw, 40px) clamp(24px, 5vw, 72px); background: var(--gx-paper); border: 1px solid var(--gx-line); } .pt-note h2 { margin: 0; font: 600 1.25rem var(--font-display); color: var(--gx-ink); } .pt-note p { margin: 0; max-width: 78ch; color: var(--gx-mute); }
.pg-hero--solo .da-price { margin: 0; }
/* Supports */
.sp-ways { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.sp-ways li { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 16px; align-items: start; padding: 18px 20px; background: #fff; border: 1px solid var(--gx-line); border-radius: 22px; }
.sp-ic { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: #eef2f8; color: #3d5170; }
.sp-ways b { display: block; font: 600 1.08rem var(--font-display); color: var(--gx-ink); } .sp-ways span:not(.sp-ic) { display: block; margin-top: 4px; color: var(--gx-mute); font-size: .96rem; }
.sp-choix, .sp-gal { display: grid; gap: clamp(22px, 3vw, 36px); padding: clamp(32px, 5vw, 64px) clamp(24px, 5vw, 72px); background: #fff; border: 1px solid var(--line); }
.sp-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 3vw, 32px); }
.sp-card { display: grid; gap: 14px; align-content: start; padding: 24px; background: var(--gx-paper); border: 1px solid var(--gx-line); border-radius: 26px; }
.sp-card h3 { margin: 0; font: 600 1.4rem var(--font-display); letter-spacing: -.02em; color: var(--gx-ink); } .sp-card p { margin: 0; color: var(--gx-mute); }
.sp-card .pg-tag { justify-self: start; } .sp-card .da-btn { justify-self: start; }
.sp-card-fig { margin: 0; display: grid; place-items: center; min-height: 230px; border-radius: 18px; background: #fff; border: 1px solid var(--gx-line); padding: 14px; }
.sp-card-fig img { display: block; max-width: 100%; max-height: 260px; width: auto; height: auto; border-radius: 10px; } .sp-card-fig figcaption { font-size: .8rem; color: var(--mute); margin-top: 8px; text-align: center; }
.sp-card-fig--ic { color: #3d5170; }
.sp-diff { display: grid; margin: 0; border-top: 1px solid var(--gx-ink); }
.sp-diff > div { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1fr) minmax(0, 1fr); gap: 4px 20px; padding: 14px 0; border-bottom: 1px solid var(--gx-line-2); }
.sp-diff dt { font: 600 1rem var(--font-display); color: var(--gx-ink); } .sp-diff dd { margin: 0; color: var(--gx-mute); }
.sp-gal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 18px; }
.sp-g { margin: 0; display: grid; gap: 8px; align-content: start; } .sp-g img { display: block; width: 100%; height: auto; border-radius: 14px; box-shadow: 0 0 0 1px var(--line); background: #fff; } .sp-g figcaption { font-size: .88rem; color: var(--gx-mute); }
.sp-prev-fig { margin: 0; }
@media (max-width: 960px) {
  .pt-devs { grid-template-columns: minmax(0, 1fr); gap: 14px; justify-items: center; }
  .pt-link { transform: rotate(90deg); } .pt-side--tab { width: 100%; justify-items: stretch; }
  .pt-ctl .pg-steps { grid-template-columns: minmax(0, 1fr); } .pt-ctl .pg-steps li { border-top: 0; border-bottom: 1px solid var(--gx-line-2); } .pt-ctl .pg-steps button::after { top: auto; bottom: -1px; }
  .pt-sec, .sp-choix, .sp-gal { padding: 28px 20px; } .pg-hero--solo { grid-template-columns: 1fr; }
  .pg-opt-cols--2, .pg-opt-cols--4, .sp-cards, .pt-duo { grid-template-columns: minmax(0, 1fr); }
  .sp-diff > div { grid-template-columns: minmax(0, 1fr); } .pt-note { padding: 24px 20px; }
  .sp-ways li { padding: 16px; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; } .sp-ic { width: 44px; height: 44px; }
}
@media (min-width: 961px) and (max-width: 1180px) { .pg-opt-cols--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; } }
@media (prefers-reduced-motion: reduce) { .pt-tab { transition: none; } .pt-tab.is-on { transform: none; } }
.pt-devs { align-items: start; } .pt-link { align-self: center; }
.pt-ctl .pg-steps { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
.pt-tabframe--pan { overflow-x: auto; } .pt-tabframe--pan:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.sp-card-fig--ic svg { max-width: 100%; height: auto; } .sp-card-fig--ic figcaption { margin: 8px 0 0; font-size: .8rem; color: var(--mute); text-align: center; }
@media (max-width: 700px) { .pt-tabframe--pan img { width: 640px; max-width: none; } }
@media (max-width: 960px) { .pt-ctl .pg-steps { grid-auto-flow: row; } }
.pt-stage--wide .pt-devs { grid-template-columns: minmax(170px, 200px) 40px minmax(0, 1fr); }
@media (max-width: 960px) { .pt-stage--wide .pt-devs { grid-template-columns: minmax(0, 1fr); } }
.pt-side { grid-template-columns: minmax(0, 1fr); } .pt-side--tab, .pt-tab, .pt-tabframe { min-width: 0; max-width: 100%; }

/* Passe 15 : présentoir recto / verso */
.da-pres { display: grid; gap: 14px; justify-items: center; min-width: 0; }
.da-pres-stage { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(8px, 2vw, 28px); align-items: end; width: 100%; }
.da-pres-face { margin: 0; display: grid; gap: 8px; justify-items: center; transition: opacity .45s var(--ease), transform .45s var(--ease), filter .45s var(--ease); transform-origin: 50% 100%; }
.da-pres-face img { display: block; width: 100%; height: auto; max-width: 340px; filter: drop-shadow(0 24px 22px rgba(11, 27, 51, .28)); }
.da-pres-face figcaption { font-size: .9rem; color: var(--gx-mute); text-align: center; } .da-pres-face figcaption b { display: block; color: var(--gx-ink); font: 600 1rem var(--font-display); }
.da-pres-stage[data-focus="recto"] .da-pres-face[data-face="verso"], .da-pres-stage[data-focus="verso"] .da-pres-face[data-face="recto"] { opacity: .5; transform: scale(.93); filter: saturate(.6); }
.da-pres-ctl { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.da-pres-ctl button { min-height: 44px; padding: 0 16px; border: 1px solid var(--gx-line-2); border-radius: 999px; background: #fff; color: var(--gx-ink); font: 600 .88rem var(--font-body); cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .15s; }
.da-pres-ctl button[aria-pressed="true"] { background: var(--gx-ink); border-color: var(--gx-ink); color: #fff; }
.da-pres-ctl button:active { transform: scale(.97); } .da-pres-ctl button:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.da-pres-note { margin: 0; max-width: 46ch; font-size: .8rem; color: var(--mute); text-align: center; }
.da-qr .da-lead { max-width: 52ch; }
.sp-card-fig--pres { display: block; padding: 14px 10px; } .sp-card-fig--pres .da-pres-face img { max-width: 220px; }
.pt-demo b { display: block; margin-bottom: 2px; }
@media (prefers-reduced-motion: reduce) { .da-pres-face, .da-pres-ctl button { transition: none; } }

/* Passe 15 : sélecteur de langue dans l'en-tête */
.am-lang { position: relative; flex: none; margin-left: auto; margin-right: 10px; }
.am-lang-btn { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 12px 0 9px; border: 1px solid var(--gx-line-2); border-radius: 999px; background: rgba(255, 255, 255, .85); color: var(--gx-ink); font: 600 .84rem var(--font-body); letter-spacing: .02em; cursor: pointer; transition: border-color .2s, background .2s; }
.am-lang-btn:hover { border-color: var(--gx-ink); background: #fff; } .am-lang-btn:focus-visible, .am-lang-list a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.am-flag { flex: none; border-radius: 50%; box-shadow: 0 0 0 1px rgba(28, 33, 40, .18); }
.am-lang-caret { transition: transform .2s var(--ease); } .am-lang.is-open .am-lang-caret { transform: rotate(180deg); }
.am-lang-list { position: absolute; right: 0; top: calc(100% + 10px); z-index: 60; list-style: none; margin: 0; padding: 6px; min-width: 200px; background: #fff; border: 1px solid var(--gx-line); border-radius: 18px; box-shadow: 0 24px 48px -20px rgba(11, 27, 51, .35); animation: amlangin .16s var(--ease); }
.am-lang-list[hidden] { display: none; }
.am-lang-list a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 12px; border-radius: 12px; color: var(--gx-ink); text-decoration: none; font: 500 .98rem var(--font-body); }
.am-lang-list a:hover { background: #f1f2f0; } .am-lang-list a[aria-current] { font-weight: 700; background: #eef3fb; }
.am-lang-list a[aria-current]::after { content: ""; margin-left: auto; width: 6px; height: 11px; border: solid var(--blue); border-width: 0 2px 2px 0; transform: rotate(45deg) translate(-2px, -2px); }
@keyframes amlangin { from { opacity: 0; transform: translateY(-4px); } }
@media (max-width: 959px) { .am-lang { margin-right: 8px; } .am-lang-btn { min-height: 44px; } .am-lang-list { right: -4px; } }
@media (prefers-reduced-motion: reduce) { .am-lang-list { animation: none; } .am-lang-caret, .am-lang-btn { transition: none; } }

/* Passe 15 : galerie des démonstrations */
.da-btn--ghost { background: #fff; color: var(--gx-ink); border: 1px solid var(--gx-line-2); box-shadow: none; } .da-btn--ghost:hover { border-color: var(--gx-ink); }
.dm-hero { min-height: 0; padding-bottom: clamp(28px, 4vw, 48px); } .dm-hero .pg-hero-copy { max-width: 62ch; }
.dm-gallery { display: grid; gap: clamp(22px, 3vw, 36px); }
.dm-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 0 4px; }
.dm-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.dm-f { min-height: 44px; padding: 0 18px; border: 1px solid var(--gx-line-2); border-radius: 999px; background: #fff; color: var(--gx-ink); font: 600 .92rem var(--font-body); cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .15s; }
.dm-f:hover { border-color: var(--gx-ink); } .dm-f:active { transform: scale(.97); } .dm-f:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.dm-f[aria-pressed="true"] { background: var(--gx-ink); border-color: var(--gx-ink); color: #fff; }
.dm-count { margin: 0; font-size: .88rem; color: var(--gx-mute); }
.dm-sec { display: grid; gap: 16px; padding: clamp(28px, 4vw, 48px) clamp(20px, 4vw, 56px); background: #fff; border: 1px solid var(--line); border-radius: 32px; }
.dm-sec h2 { margin: 0; font-weight: 600; font-size: clamp(1.5rem, 2.4vw, 2.1rem); letter-spacing: -.028em; color: var(--gx-ink); } .dm-sub { margin: -8px 0 0; color: var(--gx-mute); max-width: 70ch; }
.dm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.dm-grid:empty { display: none; }
.dm-card { display: grid; grid-template-rows: auto 1fr; background: var(--gx-paper); border: 1px solid var(--gx-line); border-radius: 24px; overflow: hidden; transition: transform .25s var(--ease), box-shadow .25s var(--ease), opacity .25s; }
.dm-card:hover { transform: translateY(-3px); box-shadow: 0 24px 40px -28px rgba(11, 27, 51, .45); }
.dm-card[hidden] { display: none; }
.dm-prev { aspect-ratio: 3 / 2; overflow: hidden; background: #e9ebe8; display: grid; place-items: center; } .dm-prev img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.dm-noprev { font-size: .85rem; color: var(--gx-mute); }
.dm-body { display: grid; gap: 12px; align-content: start; padding: 18px; }
.dm-head { display: flex; align-items: center; gap: 12px; min-width: 0; } .dm-head h3 { margin: 0; font: 600 1.15rem var(--font-display); color: var(--gx-ink); overflow-wrap: anywhere; }
.dm-logo, .dm-mono { flex: none; width: 44px; height: 44px; border-radius: 12px; object-fit: contain; background: #fff; box-shadow: 0 0 0 1px var(--gx-line); } .dm-mono { display: grid; place-items: center; font: 600 1.2rem var(--font-display); color: var(--gx-mute); }
.dm-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; } .dm-tags span { font: 500 .74rem/1 var(--font-body); padding: 5px 10px; border-radius: 999px; background: #eceeef; color: #3d4550; } .dm-tags .dm-badge { background: #fff4d6; color: #6a4a00; }
.dm-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.dm-empty, .dm-none { margin: 0; color: var(--gx-mute); } .dm-auto { margin: 0; padding: 0 clamp(20px, 4vw, 56px); font-size: .85rem; color: var(--mute); max-width: 90ch; }
.dm-grid.is-filtering .dm-card { animation: dmin .3s var(--ease) both; } @keyframes dmin { from { opacity: 0; transform: translateY(6px); } }
@media (prefers-reduced-motion: reduce) { .dm-card, .dm-f { transition: none; } .dm-grid.is-filtering .dm-card { animation: none; } .dm-card:hover { transform: none; } }
@media (max-width: 960px) { .dm-sec { padding: 24px 16px; border-radius: 28px; } }
@media (max-width: 959px) { .am-lang { margin-right: 6px; } .am-lang-btn { padding: 0 8px 0 7px; gap: 4px; font-size: .8rem; } .am-lang-btn .am-flag { width: 18px; height: 18px; } .am-hdr-demo { padding-inline: 12px !important; font-size: .82rem; } }
@media (max-width: 430px) { .am-hdr-demo { display: none !important; } }
.dm-hero h1 { font-size: clamp(2rem, 3.4vw, 3rem); } .dm-hero { padding-top: clamp(96px, 8vw, 112px); }

/* Passe 15 : page Solutions */
.sl-hero { padding-bottom: clamp(28px, 4vw, 48px); } .sl-hero h1 { font-size: clamp(2rem, 3.6vw, 3.2rem); }
.sl-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.sl-card { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 18px; align-items: start; padding: clamp(22px, 3vw, 34px); background: #fff; border: 1px solid var(--line); border-radius: 28px; }
.sl-card--main { grid-column: 1 / -1; background: linear-gradient(180deg, #fff 0%, #f4f8fe 100%); }
.sl-card--soon { background: rgba(255, 255, 255, .55); border: 1px dashed var(--gx-line-2); padding: 18px 20px; gap: 14px; } .sl-card--soon h2 { font-size: 1.05rem !important; } .sl-card--soon p { font-size: .9rem !important; }
.sl-ic { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: #eef2f8; color: #3d5170; }
.sl-body { display: grid; gap: 10px; min-width: 0; justify-items: start; } .sl-body h2 { margin: 0; font: 600 1.4rem var(--font-display); letter-spacing: -.02em; color: var(--gx-ink); } .sl-body p { margin: 0; color: var(--gx-mute); max-width: 60ch; }
.sl-price { color: var(--gx-mute); } .sl-price b { font: 600 1.9rem var(--font-display); letter-spacing: -.035em; color: var(--gx-ink); margin-right: 4px; }
@media (max-width: 960px) { .sl-grid { grid-template-columns: minmax(0, 1fr); } .sl-card { grid-template-columns: 44px minmax(0, 1fr); gap: 14px; padding: 20px 18px; } .sl-ic { width: 44px; height: 44px; } }

/* Passe 15 : deux téléphones (client, comptoir) */
.pt-stage--duo .pt-devs { grid-template-columns: minmax(180px, 250px) 52px minmax(180px, 250px); justify-content: center; }
.pt-ph .da-phone { transition: box-shadow .4s var(--ease), transform .4s var(--ease); } .pt-ph.is-on .da-phone { box-shadow: 0 0 0 3px var(--blue), 0 30px 44px -26px rgba(10, 100, 214, .5); transform: translateY(-3px); }
.pt-ph { display: grid; justify-items: center; width: 100%; }
@media (max-width: 960px) { .pt-stage--duo .pt-devs { grid-template-columns: minmax(0, 1fr); } .pt-stage--duo .pt-link { transform: rotate(90deg); } }
@media (prefers-reduced-motion: reduce) { .pt-ph .da-phone { transition: none; } .pt-ph.is-on .da-phone { transform: none; } }
.pt-stage--duo .pt-devs { grid-template-columns: minmax(200px, 280px) 60px minmax(200px, 280px); } .pt-stage--duo .pt-phone { max-width: 280px; }

/* ===== Passe 16 : pages commerciales reprises (clients, contact, visibilité locale, guides, préparation, légal) ===== */
.cp-main > section, .cp-main > article { border-radius: 32px; }
.cp-crumbs { display: flex; flex-wrap: wrap; gap: 2px 4px; font-size: .84rem; color: var(--gx-mute); } .cp-crumbs a { color: var(--gx-mute); text-decoration: underline; text-underline-offset: 3px; } .cp-crumbs a:hover { color: var(--gx-ink); } .cp-crumbs [aria-current] { color: var(--gx-ink); font-weight: 600; }
.cp-hero { min-height: 0; padding-bottom: clamp(28px, 4vw, 52px); } .cp-hero h1 { font-size: clamp(2rem, 3.6vw, 3.2rem); }
.cp-hero--side { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
.cp-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; } .cp-tags span { font: 500 .78rem/1 var(--font-body); padding: 6px 11px; border-radius: 999px; background: #fff; border: 1px solid var(--gx-line-2); color: #3d4550; }
.cp-soon { display: grid; justify-items: center; gap: 10px; align-content: center; min-height: 220px; padding: 28px; border: 1px dashed var(--gx-line-2); border-radius: 28px; background: rgba(255, 255, 255, .6); color: #3d5170; } .cp-soon b { font: 600 .82rem var(--font-body); letter-spacing: .1em; text-transform: uppercase; padding: 7px 14px; border-radius: 999px; border: 1px dashed #b78c1f; color: #7a5a00; background: #fff8e0; }
.cp-phones { display: flex; gap: 14px; justify-content: center; } .cp-phones .cp-fig { flex: 1; max-width: 200px; }
.cp-fig { margin: 0; display: grid; gap: 8px; justify-items: center; min-width: 0; } .cp-fig img { display: block; max-width: 100%; height: auto; } .cp-fig figcaption { font-size: .82rem; color: var(--gx-mute); text-align: center; max-width: 40ch; }
.cp-fig--photo img, .cp-fig--logo img { border-radius: 18px; box-shadow: 0 0 0 1px var(--line), 0 24px 40px -26px rgba(11, 27, 51, .35); } .cp-fig--desk img, .cp-fig--admin img { border-radius: 12px; box-shadow: 0 0 0 1px var(--line); width: 100%; }
.cp-fig--phone .da-phone { width: min(100%, 260px); }
.cp-sec { display: grid; gap: clamp(20px, 3vw, 32px); padding: clamp(32px, 5vw, 60px) clamp(24px, 5vw, 72px); background: #fff; border: 1px solid var(--line); }
.cp-sec:nth-of-type(even) { background: #f6f8fb; }
.cp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 18px; }
.cp-card { display: grid; gap: 8px; align-content: start; padding: 22px; background: var(--gx-paper); border: 1px solid var(--gx-line); border-radius: 22px; } .cp-card h3 { margin: 6px 0 0; font: 600 1.08rem var(--font-display); color: var(--gx-ink); } .cp-card p { margin: 0; color: var(--gx-mute); font-size: .95rem; }
.cp-ic { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: #eef2f8; color: #3d5170; }
.cp-steps { list-style: none; counter-reset: s; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 0 clamp(20px, 3vw, 44px); border-top: 1px solid var(--gx-ink); }
.cp-steps li { counter-increment: s; display: grid; gap: 4px; align-content: start; padding: 18px 0 0 44px; position: relative; }
.cp-steps li::before { content: counter(s); position: absolute; left: 0; top: 18px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--blue); color: var(--blue); font: 600 .8rem var(--font-body); }
.cp-steps b { font: 600 1.08rem var(--font-display); color: var(--gx-ink); } .cp-steps span { color: var(--gx-mute); }
.cp-split--media { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; } .cp-split--text .cp-copy { max-width: 78ch; }
.cp-copy { display: grid; gap: 16px; align-content: center; min-width: 0; } .cp-copy h2, .cp-sec .pg-opt-head h2 { margin: 0; font-weight: 600; font-size: clamp(1.7rem, 2.8vw, 2.5rem); line-height: 1.08; letter-spacing: -.028em; color: var(--gx-ink); text-wrap: balance; }
.cp-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; } .cp-list li { position: relative; padding-left: 28px; color: var(--gx-ink); } .cp-list li::before { content: ""; position: absolute; left: 4px; top: .4em; width: 6px; height: 11px; border: solid var(--blue); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.cp-limits { padding: 16px 18px; border-left: 3px solid #b78c1f; background: #fff8e8; border-radius: 0 14px 14px 0; } .cp-limits b { display: block; margin-bottom: 6px; color: #6a4a00; } .cp-limits ul { margin: 0; padding-left: 1.1em; color: #4a3a10; font-size: .94rem; } .cp-limits li { margin: 3px 0; }
.cp-media { display: grid; justify-items: center; min-width: 0; }
.cp-mosaic { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 20px; align-items: start; }
.cp-hubgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cp-hub .sl-body h3 { margin: 0; font: 600 1.25rem var(--font-display); color: var(--gx-ink); }
.cp-prose { max-width: 78ch; margin-inline: auto; padding: clamp(28px, 4vw, 48px) clamp(20px, 3vw, 40px); background: #fff; border: 1px solid var(--line); line-height: 1.65; width: 100%; }
.cp-prose h2 { margin: 1.6em 0 .4em; font: 600 clamp(1.4rem, 2.2vw, 1.8rem) var(--font-display); letter-spacing: -.02em; color: var(--gx-ink); } .cp-prose h2:first-child { margin-top: 0; } .cp-prose h3 { margin: 1.2em 0 .3em; font: 600 1.15rem var(--font-display); color: var(--gx-ink); } .cp-prose p, .cp-prose li { color: #343b45; } .cp-prose a { color: var(--blue); text-underline-offset: 3px; } .cp-prose ul, .cp-prose ol { padding-left: 1.2em; } .cp-prose em { background: #fff4d6; font-style: normal; padding: 0 4px; border-radius: 4px; }
.cp-prose table { width: 100%; border-collapse: collapse; font-size: .94rem; } .cp-prose th, .cp-prose td { padding: 10px; border-bottom: 1px solid var(--gx-line); text-align: left; vertical-align: top; }
.cl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 18px; }
.cl-card { display: grid; gap: 10px; align-content: start; padding: 20px; background: var(--gx-paper); border: 1px solid var(--gx-line); border-radius: 22px; transition: transform .25s var(--ease), box-shadow .25s var(--ease), opacity .25s; } .cl-card[hidden] { display: none; } .cl-card:hover { transform: translateY(-2px); box-shadow: 0 20px 36px -28px rgba(11, 27, 51, .45); }
.cl-meta { margin: 0; color: var(--gx-mute); font-size: .92rem; }
.cp-sec .dm-bar { padding: 0; }
@media (max-width: 960px) { .cp-sec { padding: 26px 18px; border-radius: 28px; } .cp-split--media, .cp-hero--side { grid-template-columns: minmax(0, 1fr); } .cp-hubgrid { grid-template-columns: minmax(0, 1fr); } .cp-prose { padding: 24px 18px; } }
@media (prefers-reduced-motion: reduce) { .cl-card { transition: none; } .cl-card:hover { transform: none; } }
.cp-prose a, .cp-copy a:not(.da-btn):not(.da-link), .cp-card a, .cp-list a, .cp-limits a, .cp-prose .callout a { text-decoration: underline; text-underline-offset: 3px; }
.cp-prose .callout { margin: 1.4em 0; padding: 16px 18px; background: #f1f6fd; border-left: 3px solid var(--blue); border-radius: 0 14px 14px 0; }
.cp-prose .callout p { margin: 0; }

.gx-eyebrow { line-height: 1.45; }
.da-soon h3 a { color: inherit; text-decoration: none; } .da-soon h3 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.sl-card--soon .da-link { font-size: .9rem; }
/* Menu mobile : un flou d'arrière-plan sur l'en-tête en faisait le bloc contenant du menu plein écran (menu réduit à la hauteur de la barre) */
.elyria-header, .elyria-header.is-ready, .elyria-header.is-scrolled { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
.elyria-header.is-open { transform: none !important; }
/* Passe 17 : finitions repérées à la relecture mobile */
.da-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; } .da-price b { white-space: nowrap; } .da-price .pt-aside { flex-basis: 100%; }
@media (max-width: 960px) { .gx-cmp thead th:first-child { width: 28%; } .gx-cmp thead th { hyphens: manual; overflow-wrap: normal; } }
.cp-phones + .pg-src, .cp-hero .pg-src { grid-column: 1 / -1; }

/* ===== Passe 18 : tarifs, hiérarchie commerciale ===== */
.gx-px { background: var(--gx-paper); }
.pc-grid { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr); gap: clamp(20px, 3vw, 40px); align-items: stretch; margin-top: clamp(20px, 3vw, 36px); }
.pc-main { display: grid; gap: 0; align-content: start; padding: clamp(28px, 3.6vw, 48px); background: var(--gx-ink); color: #fff; border-radius: 30px; }
.pc-kick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0 0 18px; } .pc-kick span { font: 600 1.05rem var(--font-display); letter-spacing: -.01em; } .pc-kick i { font: 500 .74rem/1 var(--font-body); font-style: normal; letter-spacing: .08em; text-transform: uppercase; padding: 6px 11px; border-radius: 999px; background: rgba(255, 255, 255, .12); color: #d8e6ff; }
.pc-price { margin: 0; display: flex; align-items: baseline; gap: 12px; } .pc-price b { font: 600 clamp(4.6rem, 8vw, 7rem)/.92 var(--font-display); letter-spacing: -.055em; } .pc-price span { font-size: 1.1rem; color: #b9c2d0; }
.pc-sum { margin: 10px 0 0; font: 500 1.15rem var(--font-display); color: #fff; }
.pc-incl { list-style: none; margin: 26px 0 0; padding: 0; display: grid; border-top: 1px solid rgba(255, 255, 255, .16); }
.pc-incl li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 14px; align-items: start; padding: 16px 0; border-bottom: 1px solid rgba(255, 255, 255, .16); color: #7fb0ff; }
.pc-incl span { display: grid; gap: 2px; color: #c9d1dd; font-size: .97rem; } .pc-incl b { font: 600 1.05rem var(--font-display); color: #fff; }
.pc-eco { margin: 20px 0 0; color: #d3dae5; font-size: .98rem; max-width: 52ch; }
.pc-act { margin: 24px 0 0; } .pc-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 28px; border-radius: 999px; background: #fff; color: var(--gx-ink); font: 600 1.02rem var(--font-body); text-decoration: none; transition: transform .15s, background .2s; } .pc-btn:hover { background: #eaf1ff; } .pc-btn:active { transform: scale(.98); } .pc-btn:focus-visible { outline: 3px solid #7fb0ff; outline-offset: 3px; }
.pc-simple { display: grid; gap: 14px; align-content: start; padding-top: 6px; } .pc-simple h3 { margin: 0; font: 600 .82rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--gx-mute); }
.pc-simple ul { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--gx-ink); }
.pc-simple li { border-bottom: 1px solid var(--gx-line-2); } .pc-simple li a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 18px 4px; text-decoration: none; color: var(--gx-ink); border-radius: 8px; transition: background .2s; } .pc-simple li a:hover { background: rgba(28, 33, 40, .04); } .pc-simple li a:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
.pc-n { display: grid; gap: 2px; font: 600 1.08rem var(--font-display); } .pc-n small { font: 400 .9rem var(--font-body); color: var(--gx-mute); }
.pc-p { text-align: right; color: var(--gx-mute); font-size: .88rem; white-space: nowrap; } .pc-p b { display: block; font: 600 1.55rem/1.1 var(--font-display); letter-spacing: -.03em; color: var(--gx-ink); }
.pc-simple .gx-note { margin: 4px 0 0; max-width: 46ch; }
@media (max-width: 960px) { .pc-grid { grid-template-columns: minmax(0, 1fr); } .pc-main { border-radius: 26px; padding: 26px 22px; } .pc-price b { font-size: clamp(4.2rem, 22vw, 5.6rem); } .pc-btn { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .pc-btn, .pc-simple li a { transition: none; } }
/* ===== Passe 18 : visibilité locale, clients, contact ===== */
.vl-item { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(22px, 4vw, 56px); align-items: start; padding: clamp(30px, 4.5vw, 56px) clamp(24px, 5vw, 72px); background: #fff; border: 1px solid var(--line); border-radius: 32px; }
.vl-item:nth-of-type(even) { background: #f6f8fb; }
.vl-copy { display: grid; gap: 18px; min-width: 0; } .vl-copy h2 { display: flex; align-items: center; gap: 14px; margin: 0; font: 600 clamp(1.5rem, 2.4vw, 2.1rem)/1.1 var(--font-display); letter-spacing: -.026em; color: var(--gx-ink); text-wrap: balance; }
.vl-copy dl { display: grid; gap: 6px; margin: 0; } .vl-copy dt { margin-top: 8px; font: 600 .76rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--gx-mute); } .vl-copy dd { margin: 0; color: var(--gx-ink); max-width: 62ch; }
.vl-next { display: grid; gap: 8px; padding: 18px 20px; background: var(--gx-paper); border: 1px solid var(--gx-line); border-radius: 18px; } .vl-next b { font: 600 .98rem var(--font-display); color: var(--gx-ink); } .vl-next p { margin: 0; color: var(--gx-mute); font-size: .95rem; }
.vl-media { display: grid; gap: 8px; align-content: start; justify-items: center; } .vl-lab { margin: 0; font: 600 .76rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--gx-mute); justify-self: start; }
.vl-ex { margin: 0; display: grid; gap: 8px; justify-items: center; } .vl-ex img { display: block; max-width: 100%; max-height: 460px; width: auto; height: auto; border-radius: 16px; box-shadow: 0 0 0 1px var(--line), 0 24px 40px -28px rgba(11, 27, 51, .4); background: #fff; } .vl-ex figcaption { font-size: .85rem; color: var(--gx-mute); text-align: center; max-width: 44ch; }
.vl-noex { margin: 0; padding: 40px 20px; width: 100%; text-align: center; border: 1px dashed var(--gx-line-2); border-radius: 16px; color: var(--gx-mute); }
.vl-main .cp-hero--side .vl-ex img { max-height: 380px; }
.cl-feats { display: grid; gap: 18px; margin-bottom: 18px; }
.cl-feat { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(20px, 4vw, 48px); align-items: start; padding: clamp(26px, 4vw, 44px) clamp(24px, 5vw, 56px); background: #fff; border: 1px solid var(--line); border-radius: 30px; }
.cl-feat[hidden], .cl-card[hidden] { display: none; }
.cl-feat-head { display: grid; gap: 12px; align-content: start; } .cl-feat-head h3 { font-size: 1.5rem !important; }
.cl-pgrid { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; }
.cl-pgrid .vl-ex { flex: 1 1 200px; max-width: 360px; } .cl-pgrid .vl-ex img { max-height: 300px; }
.cl-bar { padding: 0 4px; margin-bottom: 18px; }
.ct-offers { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 6px 0 0; } .ct-offers > span { flex-basis: 100%; font-size: .88rem; color: var(--gx-mute); }
.ct-offer { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1px solid var(--gx-line-2); border-radius: 999px; background: #fff; color: var(--gx-ink); font: 500 .9rem var(--font-body); text-decoration: none; transition: border-color .2s, background .2s; } .ct-offer:hover { border-color: var(--gx-ink); background: #f6f8fb; } .ct-offer:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.ct-chan { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 16px; } .ct-card { text-decoration: none; color: inherit; } a.ct-card:hover { border-color: var(--gx-ink); } .ct-card p { overflow-wrap: anywhere; } .ct-card a { color: var(--blue); }
@media (max-width: 960px) { .vl-item, .cl-feat { grid-template-columns: minmax(0, 1fr); padding: 26px 18px; border-radius: 28px; } }
@media (prefers-reduced-motion: reduce) { .ct-offer { transition: none; } }

/* ===== Passe 18 : bloc visibilité d'accueil, pied de page ===== */
.da-vl-fig img { aspect-ratio: 5 / 3; object-fit: cover; }
.gx-ct-act { display: grid; gap: 14px; justify-items: start; }
.gx-ct-coord { display: grid; gap: 2px; margin: 0; } .gx-ct-coord a { color: var(--gx-ink); font: 500 1.02rem var(--font-body); text-decoration: none; padding: 4px 0; overflow-wrap: anywhere; } .gx-ct-coord a:hover { text-decoration: underline; text-underline-offset: 3px; }
.gx-ft-where { color: var(--gx-mute); font-size: .88rem; }
.gx-ft-soon a { color: inherit; text-decoration: underline; text-underline-offset: 3px; display: inline; min-height: 0; font-size: inherit; }
.am-lang--ft { margin: 0 0 0 auto; } .am-lang--ft .am-lang-btn { background: #fff; } .am-lang--ft .am-lang-list { top: auto; bottom: calc(100% + 10px); right: 0; }
@media (max-width: 960px) { .am-lang--ft { margin-left: 0; width: 100%; } .am-lang--ft .am-lang-btn { width: 100%; justify-content: flex-start; min-height: 48px; } .am-lang--ft .am-lang-list { left: 0; right: auto; min-width: 100%; } .gx-ct-act { width: 100%; } .gx-ct-act .gx-btn { width: 100%; justify-content: center; } }
.gx-ct-coord a { padding-left: 0 !important; margin: 0; }

/* ===== Passe 19 : Nos clients, composition d'origine (cas par client) ===== */
.cl-hero { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
.cl-logos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; align-content: center; } .cl-logos .dm-logo { width: 100%; height: 84px; padding: 12px; border-radius: 18px; background: #fff; object-fit: contain; box-shadow: 0 0 0 1px var(--line); }
.cs-list { display: grid; gap: 22px; margin-bottom: 22px; }
.cs-case { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(20px, 4vw, 56px); align-items: center; padding: clamp(24px, 3.4vw, 44px); background: #fff; border: 1px solid var(--line); border-radius: 30px; }
.cs-case:nth-child(even) .cs-vis { order: -1; } .cs-case[hidden] { display: none; }
.cs-copy { display: grid; gap: 12px; align-content: center; min-width: 0; } .cs-n { margin: 0; font: 600 .76rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--blue); }
.cs-copy .dm-head h3 { font-size: clamp(1.5rem, 2.4vw, 2rem) !important; letter-spacing: -.025em; } .cs-desc { margin: 0; color: var(--gx-ink); max-width: 56ch; }
.cs-vis { display: grid; gap: 10px; padding: 14px; background: linear-gradient(160deg, #0d1a33, #0a1020); border-radius: 22px; box-shadow: 0 28px 44px -30px rgba(11, 27, 51, .6); min-width: 0; }
.cs-vis .vl-ex { margin: 0; gap: 6px; } .cs-vis .vl-ex img { width: 100%; max-height: none; border-radius: 12px; box-shadow: none; } .cs-vis .vl-ex figcaption { color: #b9c4d8; font-size: .8rem; }
.cs-vis--2, .cs-vis--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cs-vis--3 .vl-ex:first-child { grid-column: 1 / -1; }
.cs-case--g .cs-vis { background: #eef2f8; } .cs-case--g .cs-vis .vl-ex figcaption { color: var(--gx-mute); } .cs-case--g .cs-vis .vl-ex img { max-height: 300px; object-fit: contain; background: #fff; }
.cs-more { display: grid; gap: 16px; padding: clamp(24px, 3.4vw, 44px); margin-bottom: 22px; background: #f6f8fb; border: 1px solid var(--line); border-radius: 30px; } .cs-more h2 { margin: 0; font: 600 clamp(1.4rem, 2.2vw, 1.9rem) var(--font-display); letter-spacing: -.025em; color: var(--gx-ink); }
.cs-more .cl-card { background: #fff; }
@media (max-width: 960px) { .cl-hero, .cs-case { grid-template-columns: minmax(0, 1fr); } .cs-case:nth-child(even) .cs-vis { order: 0; } .cs-case, .cs-more { padding: 22px 16px; border-radius: 26px; } .cl-logos { grid-template-columns: repeat(5, 1fr); gap: 8px; } .cl-logos .dm-logo { height: 56px; padding: 6px; } .cs-vis--3 .vl-ex:first-child { grid-column: auto; } .cs-vis--2, .cs-vis--3 { grid-template-columns: minmax(0, 1fr); } }

/* Passe 19 : supports NFC détourés, sans cadre (la transparence vient du fichier) */
.cp-cut img, .vl-cut img { border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; width: auto; max-width: 100%; max-height: 340px; filter: drop-shadow(0 16px 18px rgba(11, 27, 51, .28)); }
.cp-cut { background: none; } .cp-cut figcaption, .vl-cut figcaption { margin-top: 8px; }
.cp-mosaic .cp-cut img { max-height: 280px; }
.sp-card-fig--cut { background: none !important; border: 0 !important; padding: 0 !important; } .sp-card-fig--cut img { border-radius: 0 !important; filter: drop-shadow(0 16px 18px rgba(11, 27, 51, .28)); max-height: 300px; }
.vl-cut { padding: 8px 0; }
.cs-vis--1 .vl-ex img { max-height: 440px; object-fit: contain; margin-inline: auto; }

/* Passe 19 : réponses aux avis */
.rp-sec { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(22px, 4vw, 56px); padding: clamp(30px, 4.5vw, 56px) clamp(24px, 5vw, 72px); background: #fff; border: 1px solid var(--line); border-radius: 32px; align-items: start; }
.rp-copy { display: grid; gap: 18px; min-width: 0; } .rp-copy h2 { display: flex; align-items: center; gap: 14px; margin: 0; font: 600 clamp(1.5rem, 2.4vw, 2.1rem)/1.1 var(--font-display); letter-spacing: -.026em; color: var(--gx-ink); }
.rp-copy dl { display: grid; gap: 6px; margin: 0; } .rp-copy dt { margin-top: 8px; font: 600 .76rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--gx-mute); } .rp-copy dd { margin: 0; color: var(--gx-ink); max-width: 62ch; }
.rp-split { padding: 16px 18px; border-left: 3px solid var(--blue); background: #f1f6fd; border-radius: 0 14px 14px 0; } .rp-split b { display: block; margin-bottom: 4px; color: var(--gx-ink); } .rp-split p { margin: 0; color: #343b45; font-size: .95rem; }
.rp-plans { display: grid; gap: 14px; padding: clamp(20px, 3vw, 30px); background: var(--gx-paper); border: 1px solid var(--gx-line); border-radius: 24px; } .rp-plans h3 { margin: 0; font: 600 .78rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--gx-mute); }
.rp-plans ul { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--gx-ink); } .rp-plans li { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 4px 16px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--gx-line-2); }
.rp-p { font: 600 1.25rem/1.15 var(--font-display); letter-spacing: -.02em; color: var(--gx-ink); } .rp-n { display: grid; gap: 2px; color: var(--gx-mute); font-size: .94rem; } .rp-n b { font: 600 1rem var(--font-display); color: var(--gx-ink); }
.sl-card--wide { grid-column: 1 / -1; }
@media (max-width: 960px) { .rp-sec { grid-template-columns: minmax(0, 1fr); padding: 26px 18px; border-radius: 28px; } .rp-plans li { grid-template-columns: minmax(0, 1fr); } }

/* Passe 19 : contact, premier écran équilibré */
.ct-hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; }
.ct-btns { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; } .ct-alt { display: inline-flex; align-items: center; min-height: 48px; padding: 0 18px; border: 1px solid var(--gx-line-2); border-radius: 999px; background: #fff; color: var(--gx-ink); font: 600 .95rem var(--font-body); text-decoration: none; overflow-wrap: anywhere; } .ct-alt:hover { border-color: var(--gx-ink); } .ct-alt:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.ct-steps { list-style: none; counter-reset: c; margin: 8px 0 0; padding: 0; display: grid; border-top: 1px solid var(--gx-ink); } .ct-steps li { counter-increment: c; display: grid; gap: 1px; padding: 12px 0 12px 40px; position: relative; border-bottom: 1px solid var(--gx-line-2); }
.ct-steps li::before { content: counter(c); position: absolute; left: 0; top: 13px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--blue); color: var(--blue); font: 600 .78rem var(--font-body); } .ct-steps b { font: 600 1rem var(--font-display); color: var(--gx-ink); } .ct-steps span { color: var(--gx-mute); font-size: .93rem; }
.ct-vis { margin: 0; display: grid; gap: 10px; justify-items: center; } .ct-vis-in { position: relative; width: 100%; max-width: 520px; aspect-ratio: 1 / 1.02; background: radial-gradient(circle at 30% 20%, #dce9fb, #eef3fa 70%); border-radius: 30px; box-shadow: 0 0 0 1px var(--line); }
.ct-phone { position: absolute; left: 7%; top: 8%; width: 40%; } .ct-stand { position: absolute; height: auto; filter: drop-shadow(0 18px 18px rgba(11, 27, 51, .3)); } .ct-stand--a { right: 22%; bottom: 7%; width: 34%; z-index: 1; } .ct-stand--b { right: 4%; bottom: 10%; width: 34%; }
.ct-vis figcaption { max-width: 52ch; font-size: .8rem; color: var(--mute); text-align: center; }
.ct-offers { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 6px 0 0; }
@media (max-width: 960px) { .ct-hero { grid-template-columns: minmax(0, 1fr); } .ct-btns .da-btn, .ct-alt { width: 100%; justify-content: center; } .ct-vis-in { max-width: 420px; } }

/* Passe 19 : démonstrations, premier écran */
.dm-hero2 { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; padding-bottom: clamp(24px, 3vw, 40px); }
.dm-hero-vis { display: flex; justify-content: center; gap: 18px; align-items: flex-end; } .dm-hero-vis .da-phone { width: min(44%, 210px); } .dm-hero-vis .dm-ph2 { transform: translateY(-26px); }
.dm-note { margin: -8px 4px 0; font-size: .85rem; color: var(--gx-mute); }
@media (max-width: 960px) { .dm-hero2 { grid-template-columns: minmax(0, 1fr); } .dm-hero-vis { justify-content: center; } .dm-hero-vis .da-phone { width: min(40%, 170px); } }

/* Passe 19 : scène de présentation (supports Google et Instagram + téléphone) */
.vl-scene { margin: 0; display: grid; gap: 10px; justify-items: center; } .vl-scene-in { position: relative; width: 100%; max-width: 520px; aspect-ratio: 5 / 4; background: radial-gradient(circle at 28% 18%, #ffffff, #e8eff9 70%); border-radius: 30px; box-shadow: 0 0 0 1px var(--line); overflow: hidden; color: #4f7fd0; }
.vs-card { position: absolute; height: auto; filter: drop-shadow(0 20px 20px rgba(11, 27, 51, .3)); } .vs-g { left: 8%; bottom: 8%; width: 40%; } .vs-i { right: 9%; bottom: 7%; width: 26%; transform: rotate(5deg); }
.vs-phone { position: absolute; left: 30%; top: 4%; width: 17%; aspect-ratio: 9 / 18; border-radius: 16px; background: #0f141b; padding: 4px; transform: rotate(-16deg); box-shadow: 0 18px 24px -12px rgba(11, 27, 51, .45); } .vs-phone i { display: block; width: 100%; height: 100%; border-radius: 12px; background: linear-gradient(160deg, #f4f7fc, #dfe8f6); }
.vs-waves { position: absolute; left: 22%; top: 38%; width: 18%; height: auto; transform: rotate(22deg); }
.vl-scene figcaption { max-width: 52ch; font-size: .8rem; color: var(--mute); text-align: center; }
.da-vl .vl-scene { max-width: 520px; }
.dm-gallery { display: grid; } .dm-sec:has(.dm-empty) { order: 5; padding-block: 20px; } .dm-sec:has(.dm-empty) h2 { font-size: 1.15rem; } .dm-sec:has(.dm-empty) .dm-empty { margin: 0; }

.sp-card-fig--pres { background: none !important; border: 0 !important; padding: 0 !important; }
.sp-card-fig--pres .da-pres-note { margin-top: 4px; }

/* Passe 20 : produits et supports intégrés au fond, sans boîte ni bordure ajoutée */
.cp-flat img, .vl-flat img { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important; mix-blend-mode: multiply; max-height: 260px; width: auto; max-width: 100%; }
.cp-fig--photo:not(.cp-cut):not(.cp-flat) img { border: 0; box-shadow: 0 14px 26px -16px rgba(11, 27, 51, .4); }
.cs-case--g .cs-vis { background: transparent; box-shadow: none; padding: 0; } .cs-case--g .cs-vis .vl-ex img { background: transparent; }
.cs-case--g .cs-vis .vl-ex:not(.vl-flat) img { filter: drop-shadow(0 14px 18px rgba(11, 27, 51, .28)); border-radius: 0; }
.cs-vis--1.cs-vis, .cs-case--g .cs-vis { justify-items: center; }

.cp-print img, .vl-print img { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important; filter: drop-shadow(0 12px 16px rgba(11, 27, 51, .28)); max-height: 380px; width: auto; max-width: 100%; }
.ct-vis-in { background: none !important; box-shadow: none !important; }

/* ===== Passe 21 : illustration du parcours de recherche locale (HTML/CSS) ===== */
.vm { margin: 0; display: grid; gap: 8px; justify-items: center; width: 100%; }
.vm-in { container-type: inline-size; position: relative; width: 100%; max-width: 520px; aspect-ratio: 5 / 4; border-radius: 28px; overflow: hidden; background: #e9f0fa; box-shadow: 0 0 0 1px var(--line); }
.vm-map { position: absolute; inset: 0; width: 100%; height: 100%; }
.vm-search { position: absolute; left: 6cqw; right: 6cqw; top: 6cqw; display: flex; align-items: center; gap: 2.4cqw; padding: 2.6cqw 3.6cqw; background: #fff; border-radius: 999px; box-shadow: 0 6px 18px -8px rgba(11, 27, 51, .35); color: #3d4550; font: 500 3.7cqw/1.2 var(--font-body); }
.vm-search svg { width: 4.6cqw; height: 4.6cqw; flex: none; color: #5a626d; }
.vm-pin { position: absolute; left: 44%; top: 34%; width: 8cqw; height: auto; transform-origin: 50% 100%; filter: drop-shadow(0 4px 4px rgba(11, 27, 51, .3)); }
.vm-card { position: absolute; left: 6cqw; right: 6cqw; bottom: 6cqw; display: grid; gap: .9cqw; padding: 3.8cqw 4.2cqw; background: #fff; border-radius: 4.6cqw; box-shadow: 0 16px 30px -14px rgba(11, 27, 51, .45); color: var(--gx-ink); }
.vm-card b { font: 600 4.8cqw/1.15 var(--font-display); letter-spacing: -.01em; } .vm-sub { font: 400 3.3cqw/1.3 var(--font-body); color: #5a626d; } .vm-open { font: 600 3.3cqw/1.3 var(--font-body); color: #17803d; }
.vm-acts { display: flex; gap: 2cqw; margin-top: 1.6cqw; } .vm-acts i { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 1.2cqw; padding: 2cqw 1cqw; border-radius: 999px; background: #eef3fb; color: #0a64d6; font: 600 3.2cqw/1 var(--font-body); font-style: normal; white-space: nowrap; }
.vm-acts i:first-child { background: #0a64d6; color: #fff; }
.vm figcaption { font-size: .8rem; color: var(--mute); text-align: center; }
/* animation courte (une fois, à l'affichage) : l'épingle se pose, la fiche monte. Sans JavaScript ou en mouvement réduit : état final immédiat. */
.vm.vm-ready:not(.vm-play) .vm-pin, .vm.vm-ready:not(.vm-play) .vm-card { opacity: 0; }
.vm.vm-play .vm-pin { animation: vmpin .55s cubic-bezier(.3, 1.4, .5, 1) .1s both; } .vm.vm-play .vm-card { animation: vmcard .5s var(--ease) .45s both; }
@keyframes vmpin { from { opacity: 0; transform: translateY(-14px) scale(.8); } } @keyframes vmcard { from { opacity: 0; transform: translateY(14px); } }
@media (prefers-reduced-motion: reduce) { .vm.vm-ready:not(.vm-play) .vm-pin, .vm.vm-ready:not(.vm-play) .vm-card { opacity: 1; } .vm.vm-play .vm-pin, .vm.vm-play .vm-card { animation: none; } }
.sl-card--vis { grid-template-columns: 52px minmax(0, 1fr) minmax(0, 340px); align-items: center; } .sl-vis { min-width: 0; }
@media (max-width: 960px) { .sl-card--vis { grid-template-columns: 44px minmax(0, 1fr); } .sl-vis { grid-column: 1 / -1; } .vm-in { max-width: 420px; } }

/* ===== Passe 22 : Nos clients, hiérarchie en niveaux ===== */
.cs-grp { display: grid; gap: 16px; padding: clamp(24px, 3.4vw, 44px); margin-bottom: 20px; background: #f6f8fb; border: 1px solid var(--line); border-radius: 30px; }
.cs-grp > h2 { margin: 0; font: 600 clamp(1.4rem, 2.2vw, 1.9rem) var(--font-display); letter-spacing: -.025em; color: var(--gx-ink); } .cs-grp > .da-lead { margin: -6px 0 0; }
.cs-grp .cs-case, .cs-grp .cl-card { background: #fff; }
.cs-case--m { grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); } .cs-case--m .cs-vis { padding: 22px 16px 16px; }
.cs-case--r { grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 22px; }
.cs-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.cs-vis--p2, .cs-vis--p3 { display: grid; gap: 14px; align-items: start; } .cs-vis--p3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cs-vis--p2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cs-ph { margin: 0; display: grid; gap: 8px; justify-items: center; min-width: 0; } .cs-ph .da-phone { width: 100%; max-width: 200px; } .cs-ph figcaption { color: #b9c4d8; font-size: .78rem; text-align: center; }
.cs-case--r .cs-vis { padding: 16px 12px 12px; } .cs-case--r .cs-ph .da-phone { max-width: 170px; }
.cs-extra { margin-top: 6px; } .cs-extra .vl-ex img { max-height: 200px; } .cs-extra figcaption { font-size: .78rem; }
@media (max-width: 960px) { .cs-grp { padding: 20px 14px; border-radius: 26px; } .cs-case--m { grid-template-columns: minmax(0, 1fr); } .cs-duo { grid-template-columns: minmax(0, 1fr); } .cs-ph .da-phone { max-width: 150px; } .cs-vis--p3 { gap: 8px; } }
@media (max-width: 480px) { .cs-ph figcaption { font-size: .7rem; } .cs-vis--p3 { padding: 14px 8px 10px; } }
.cs-case--m .cs-vis, .cs-case--r .cs-vis { order: 0 !important; } .cs-case--m:nth-child(even) .cs-vis { order: 0 !important; }

/* ===== Passe 22 : vue d'ensemble des solutions, sur mesure, index de la visibilité locale ===== */
.ov { display: grid; gap: clamp(20px, 3vw, 32px); padding: clamp(32px, 5vw, 64px) clamp(24px, 5vw, 72px); background: #fff; border: 1px solid var(--line); border-radius: 36px; }
.ov-head { display: grid; gap: 10px; max-width: 62ch; } .ov-head h2 { margin: 0; font-weight: 600; font-size: clamp(1.9rem, 3.2vw, 2.9rem); line-height: 1.06; letter-spacing: -.03em; color: var(--gx-ink); text-wrap: balance; }
.ov-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
.ov-card { grid-column: span 3; display: grid; gap: 10px; align-content: start; justify-items: start; padding: 22px; background: var(--gx-paper); border: 1px solid var(--gx-line); border-radius: 24px; }
.ov-card--main { grid-column: 1 / -1; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 8px 40px; padding: 28px; background: linear-gradient(180deg, #fff, #f4f8fe); } .ov-card--main .pg-tag, .ov-card--main h3, .ov-card--main > p, .ov-card--main .da-actions { grid-column: 1; } .ov-card--main .ov-sub { grid-column: 2; grid-row: 1 / span 4; align-self: center; }
.ov-card--rl { grid-column: span 2; } .ov-card--vl { grid-column: span 4 !important; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 8px 32px; } .ov-card--vl .pg-tag, .ov-card--vl h3, .ov-card--vl > p, .ov-card--vl .da-actions { grid-column: 1; } .ov-card--vl .ov-sub { grid-column: 2; grid-row: 1 / span 4; align-self: center; }
.ov-card h3 { margin: 0; font: 600 1.35rem var(--font-display); letter-spacing: -.02em; color: var(--gx-ink); } .ov-card h3 a { color: inherit; text-decoration: none; } .ov-card h3 a:hover { text-decoration: underline; text-underline-offset: 3px; } .ov-card > p { margin: 0; color: var(--gx-mute); }
.ov-card--soon { background: rgba(255, 255, 255, .55); border-style: dashed; border-color: var(--gx-line-2); }
.ov-sub { list-style: none; margin: 4px 0; padding: 0; display: grid; width: 100%; border-top: 1px solid var(--gx-ink); } .ov-sub li { border-bottom: 1px solid var(--gx-line-2); } .ov-sub a { display: grid; gap: 1px; padding: 12px 4px; color: var(--gx-ink); text-decoration: none; border-radius: 8px; transition: background .2s; } .ov-sub a:hover { background: rgba(28, 33, 40, .04); } .ov-sub a:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; } .ov-sub b { font: 600 1rem var(--font-display); } .ov-sub span { color: var(--gx-mute); font-size: .9rem; }
.ov-price { margin: 0; color: var(--gx-mute); } .ov-price b { font: 600 1.7rem var(--font-display); letter-spacing: -.03em; color: var(--gx-ink); }
@media (max-width: 960px) { .ov { padding: 28px 18px; border-radius: 28px; } .ov-card, .ov-card:nth-child(4), .ov-card--vl, .ov-card--main { grid-column: 1 / -1 !important; grid-template-columns: minmax(0, 1fr) !important; } .ov-card--main .ov-sub, .ov-card--vl .ov-sub { grid-column: 1; grid-row: auto; } }
.da-custom { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(24px, 4vw, 56px); align-items: center; padding: clamp(30px, 4.5vw, 56px) clamp(24px, 5vw, 72px); background: #f1f4f9; border: 1px solid var(--line); border-radius: 36px; }
.cu-copy { display: grid; gap: 14px; } .cu-copy h2 { margin: 0; font-weight: 600; font-size: clamp(1.7rem, 2.8vw, 2.5rem); line-height: 1.08; letter-spacing: -.028em; color: var(--gx-ink); text-wrap: balance; }
.cu-kinds { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; } .cu-kinds li { padding: 16px 20px; background: #fff; border: 1px solid var(--gx-line); border-radius: 18px; font: 600 1.05rem var(--font-display); color: var(--gx-ink); display: flex; align-items: center; gap: 12px; } .cu-kinds li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--blue); flex: none; }
@media (max-width: 960px) { .da-custom { grid-template-columns: minmax(0, 1fr); padding: 28px 18px; border-radius: 28px; } }
.vl-index { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 4px; } .vl-index a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--gx-line-2); border-radius: 999px; background: #fff; color: var(--gx-ink); font: 600 .92rem var(--font-body); text-decoration: none; transition: border-color .2s, background .2s; } .vl-index a:hover { border-color: var(--gx-ink); } .vl-index a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.vl-item, .rp-sec { scroll-margin-top: 90px; } html { scroll-behavior: smooth; } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.cs-ph .da-phone { padding: 4px; border-radius: 18px; } .cs-ph .da-screen { border-radius: 14px; } @media (max-width: 480px) { .cs-ph .da-phone { padding: 3px; border-radius: 12px; } .cs-ph .da-screen { border-radius: 9px; } }

/* Passe 23 : logos de Nos clients directement sur le fond (aucun cadre ajouté par le site) */
.cl-logos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); justify-items: center; align-items: center; gap: 30px 28px; align-content: center; --sc: 1; } .cl-logos li { width: 100%; height: 118px; }
.cl-logos li { display: flex; align-items: center; justify-content: center; }
.cl-logos img { display: block; width: calc(var(--lw) * 1px * var(--sc)); height: auto; max-width: 100%; object-fit: contain; background: none; border: 0; box-shadow: none; padding: 0; border-radius: 0; }
@media (max-width: 960px) { .cl-logos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px 18px; --sc: .72; justify-items: center; margin-top: 8px; } .cl-logos li { width: 100%; height: 84px; } .cl-logos img { max-width: 94%; } }

/* Passe 23 : captures de téléphone lisibles sur mobile : une grande vue à la fois, galerie manuelle (défilement, boutons, clavier) */
.cs-nav { display: none; }
@media (max-width: 960px) {
  .cs-vis--p2, .cs-vis--p3 { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 16px; padding: 18px 16px 14px; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; scrollbar-width: none; }
  .cs-vis--p2::-webkit-scrollbar, .cs-vis--p3::-webkit-scrollbar { display: none; }
  .cs-vis--p2 .cs-ph, .cs-vis--p3 .cs-ph { flex: 0 0 min(74vw, 270px); scroll-snap-align: center; }
  .cs-vis--p2 .cs-ph .da-phone, .cs-vis--p3 .cs-ph .da-phone, .cs-case--r .cs-ph .da-phone { max-width: none; width: 100%; padding: 5px; border-radius: 22px; } .cs-vis--p2 .cs-ph .da-screen, .cs-vis--p3 .cs-ph .da-screen { border-radius: 17px; }
  .cs-vis--p2 .cs-ph figcaption, .cs-vis--p3 .cs-ph figcaption { font-size: .82rem; }
  .cs-vis[data-gallery]:focus-visible { outline: 3px solid #7fb0ff; outline-offset: 3px; }
  .cs-nav { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 10px; }
  .cs-nav button { min-width: 48px; min-height: 48px; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--ink, #0b1b33); font: 600 1.1rem var(--font-body, inherit); cursor: pointer; }
  .cs-nav button:disabled { opacity: .35; cursor: default; } .cs-nav button:focus-visible { outline: 3px solid #1a5fd0; outline-offset: 2px; }
  .cs-nav output { min-width: 4.2em; text-align: center; font-size: .9rem; color: var(--gx-mute); }
}

/* Passe 23 : logos blancs sur transparent (illisibles sur page claire) posés sur une pastille sombre ; section vide masquée */
.dm-logo--dark { background: #0b1b33 !important; padding: 5px; } .cl-logos img.is-dark { background: #0b1b33; padding: 10px 14px; border-radius: 14px; box-sizing: content-box; }
.dm-sec[hidden] { display: none; }
/* Passe 23 : offre sur mesure (accueil, Solutions, page dediee) et exemple realise */
.ms-desk { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.ms-fig { margin: 0; display: grid; gap: 8px; min-width: 0; } .ms-fig img { width: 100%; height: auto; border-radius: 14px; box-shadow: 0 22px 40px -26px rgba(11, 27, 51, .55); border: 1px solid var(--line); } .ms-fig figcaption { font-size: .85rem; color: var(--gx-mute); }
.ms-list { margin: 22px 0; max-width: 70ch; }
.ms-phones.cs-vis { background: transparent; box-shadow: none; padding: 6px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: start; }
.ms-phones .cs-ph figcaption { color: var(--gx-mute); font-size: .85rem; } .ms-phones .cs-ph .da-phone { max-width: 210px; }
@media (max-width: 960px) {
  .ms-desk { grid-template-columns: minmax(0, 1fr); }
  .ms-phones.cs-vis { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; padding: 14px 16px 10px; scrollbar-width: none; overscroll-behavior-x: contain; }
  .ms-phones.cs-vis::-webkit-scrollbar { display: none; }
  .ms-phones .cs-ph { flex: 0 0 min(74vw, 270px); scroll-snap-align: center; } .ms-phones .cs-ph .da-phone { max-width: none; width: 100%; padding: 5px; border-radius: 22px; } .ms-phones .cs-ph .da-screen { border-radius: 17px; }
}
.da-custom { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(22px, 4vw, 56px); align-items: center; }
.cu-vis { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: end; margin: 0; min-width: 0; }
.cu-vis > img { width: 100%; height: auto; border-radius: 14px; box-shadow: 0 24px 44px -28px rgba(11, 27, 51, .6); border: 1px solid var(--line); }
.cu-vis .da-phone { width: clamp(96px, 14vw, 150px); } .cu-vis figcaption { grid-column: 1 / -1; font-size: .85rem; color: var(--gx-mute); }
@media (max-width: 960px) { .da-custom { grid-template-columns: minmax(0, 1fr); } }
.sl-custom { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(20px, 4vw, 48px); align-items: center; padding: clamp(22px, 3vw, 38px); background: #fff; border: 1px solid var(--line); border-radius: 28px; margin-top: 18px; }
.sl-custom .cu-vis { margin: 0; } @media (max-width: 960px) { .sl-custom { grid-template-columns: minmax(0, 1fr); padding: 22px 16px; } }
.cu-vis .da-phone { padding: 4px; border-radius: 22px; } .cu-vis .da-screen { border-radius: 18px; }
@media (max-width: 960px) { .cu-vis { grid-template-columns: minmax(0, 1fr) 84px; } .cu-vis .da-phone { width: 84px; padding: 3px; border-radius: 14px; } .cu-vis .da-screen { border-radius: 11px; } }

/* Passe 24 : deux aperçus (menu, roulette) par établissement */
.dm-prev--2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; place-items: stretch; } .dm-prev--2 img { min-width: 0; }

.cl-card--auto { display: grid; gap: 10px; align-content: start; }
.cl-prevs { display: grid; gap: 6px; border-radius: 14px; overflow: hidden; background: #e9ebe8; aspect-ratio: 3 / 2; } .cl-prevs--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cl-prevs img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; min-width: 0; }

/* Passe 24 : quatre entrees (accueil et Solutions) + groupe En preparation */
.cat { padding: clamp(28px, 4vw, 56px) 0; display: grid; gap: clamp(20px, 3vw, 34px); }
.cat-head { display: grid; gap: 10px; max-width: 70ch; } .cat-head h2 { margin: 0; font-weight: 600; font-size: clamp(1.8rem, 3.4vw, 2.8rem); line-height: 1.06; letter-spacing: -.03em; color: var(--gx-ink); text-wrap: balance; }
.cat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.cat--page .cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.cat-card { position: relative; display: grid; grid-template-rows: auto 1fr; background: #fff; border: 1px solid var(--line); border-radius: 26px; overflow: hidden; min-width: 0; transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.cat-card:hover { transform: translateY(-3px); box-shadow: 0 26px 44px -30px rgba(11, 27, 51, .5); }
.cat-card:focus-within { outline: 3px solid #1a5fd0; outline-offset: 2px; }
.cat-vis { background: linear-gradient(160deg, #eef3fb, #e3ebf7); display: grid; place-items: center; padding: 18px 14px 0; min-height: 250px; overflow: hidden; min-width: 0; }
.cat-ph { display: flex; gap: 10px; justify-content: center; align-items: flex-end; } .cat-ph .da-phone { width: clamp(96px, 9.5vw, 128px); margin-bottom: -46px; } .cat-ph--1 .da-phone { width: clamp(104px, 10vw, 138px); }
.cat-ph .da-phone { padding: 4px; border-radius: 20px; } .cat-ph .da-screen { border-radius: 16px; }
.cat-vis--scene { padding: 16px; place-items: stretch; } .cat-vis--scene .vm { transform-origin: top left; max-width: 100%; }
.cat-vis--ms { padding: 18px 14px; } .cat-vis--ms .cu-vis { grid-template-columns: minmax(0, 1fr) 70px; gap: 8px; } .cat-vis--ms .cu-vis > img { border-radius: 10px; } .cat-vis--ms .cu-vis .da-phone { width: 70px; padding: 3px; border-radius: 12px; } .cat-vis--ms .cu-vis .da-screen { border-radius: 9px; } .cat-vis--ms .cu-vis figcaption { font-size: .78rem; }
.cat-body { display: flex; flex-direction: column; gap: 10px; padding: 20px 20px 22px; min-width: 0; } .cat-body h3 { margin: 0; font-size: 1.22rem; letter-spacing: -.02em; line-height: 1.15; } .cat-body h3 a { color: var(--gx-ink); text-decoration: none; } .cat-body h3 a::after { content: ""; position: absolute; inset: 0; z-index: 0; }
.cat-body p { margin: 0; color: var(--gx-mute); font-size: .95rem; line-height: 1.5; } .cat-price { color: var(--gx-ink) !important; } .cat-price b { font-size: 1.5rem; letter-spacing: -.02em; }
.cat-body .da-actions, .cat-sub { position: relative; z-index: 1; } .cat-sub { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: .9rem; } .cat-sub a { color: var(--blue); font-weight: 600; text-decoration: none; padding-block: 8px; } .cat-sub a:hover { text-decoration: underline; }
.cat-list { margin: 0; padding-left: 1.1em; color: var(--gx-mute); font-size: .92rem; display: grid; gap: 2px; }
.cat-body .ov-sub { position: relative; z-index: 1; }
.prep { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 18px 28px; align-items: center; padding: 20px 24px; border: 1px dashed var(--line); border-radius: 22px; background: rgba(255, 255, 255, .55); }
.prep-head { display: grid; gap: 4px; } .prep-head h3 { margin: 4px 0 0; font-size: 1.05rem; } .prep-head p { margin: 0; color: var(--gx-mute); font-size: .9rem; }
.prep-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .prep-list a { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: #fff; text-decoration: none; color: var(--gx-ink); min-height: 44px; } .prep-list a:hover { border-color: #b8c4d9; } .prep-list b { font-size: .98rem; } .prep-list span { color: var(--gx-mute); font-size: .85rem; }
@media (max-width: 1180px) { .cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .cat-grid, .cat--page .cat-grid { grid-template-columns: minmax(0, 1fr); } .prep { grid-template-columns: minmax(0, 1fr); padding: 18px 16px; } .prep-list { grid-template-columns: minmax(0, 1fr); } .cat-ph .da-phone { width: 120px; } }
@media (prefers-reduced-motion: reduce) { .cat-card { transition: none; } .cat-card:hover { transform: none; } }

.cat-body .da-actions { margin-top: auto; } .cat-body .cat-price { margin-top: auto; } .cat-body .cat-price + .da-actions { margin-top: 0; }

/* Passe 24 : formulaire de contact */
.cf-sec { padding-block: clamp(24px, 4vw, 48px); } .cf-wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(20px, 4vw, 56px); align-items: start; }
.cf-head { display: grid; gap: 10px; } .cf-head h2 { margin: 0; font-weight: 600; font-size: clamp(1.6rem, 2.8vw, 2.3rem); letter-spacing: -.028em; line-height: 1.08; color: var(--gx-ink); } .cf-head p { margin: 0; color: var(--gx-mute); }
.cf-box { background: #fff; border: 1px solid var(--line); border-radius: 26px; padding: clamp(18px, 3vw, 32px); min-width: 0; }
.cf { display: grid; gap: 16px; } .cf[hidden], .cf-done[hidden] { display: none; } .cf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cf-f { display: grid; gap: 6px; min-width: 0; } .cf-f label { font-weight: 600; font-size: .95rem; color: var(--gx-ink); } .cf-flag { font-weight: 400; font-size: .82rem; color: var(--gx-mute); }
.cf input, .cf select, .cf textarea { font: inherit; font-size: 1rem; color: var(--gx-ink); background: #fff; border: 1.5px solid #9aa7bd; border-radius: 12px; padding: 12px 14px; min-height: 48px; width: 100%; box-sizing: border-box; }
.cf textarea { min-height: 140px; resize: vertical; } .cf input:focus-visible, .cf select:focus-visible, .cf textarea:focus-visible, .cf button:focus-visible, .cf-done button:focus-visible { outline: 3px solid #1a5fd0; outline-offset: 2px; border-color: #1a5fd0; }
.cf .has-err input, .cf .has-err select, .cf .has-err textarea { border-color: #b42318; background: #fff8f7; } .cf-err { margin: 0; color: #b42318; font-size: .9rem; font-weight: 600; }
.cf-errors { border: 2px solid #b42318; border-radius: 14px; padding: 12px 16px; background: #fff8f7; color: #7a1a12; } .cf-errors p { margin: 0 0 6px; } .cf-errors ul { margin: 0; padding-left: 1.2em; } .cf-errors a { color: #7a1a12; text-decoration: underline; } .cf-errors:focus-visible { outline: 3px solid #1a5fd0; outline-offset: 2px; }
.cf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cf-actions { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; } .cf-actions .da-btn[disabled] { opacity: .6; cursor: progress; } .cf-status { margin: 0; color: var(--gx-mute); font-size: .92rem; } .cf-priv { margin: 0; font-size: .88rem; color: var(--gx-mute); } .cf-priv a { color: var(--blue); }
.cf-done { display: grid; gap: 10px; padding: 8px 0; } .cf-done h3 { margin: 0; font-size: 1.3rem; } .cf-done p { margin: 0; } .cf-done:focus-visible { outline: 3px solid #1a5fd0; outline-offset: 4px; border-radius: 8px; }
@media (max-width: 960px) { .cf-wrap { grid-template-columns: minmax(0, 1fr); } .cf-grid { grid-template-columns: minmax(0, 1fr); } }

/* Passe 25 : page Tarifs (sections ajoutees) */
.tx { display: grid; gap: clamp(28px, 4vw, 48px); margin-top: clamp(28px, 4vw, 48px); }
.tx-nav { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; font-size: .92rem; } .tx-nav span { color: var(--gx-mute); margin-right: 4px; } .tx-nav a { padding: 10px 14px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; color: var(--gx-ink); background: #fff; min-height: 44px; box-sizing: border-box; display: inline-flex; align-items: center; } .tx-nav a:hover { border-color: #9aa7bd; } .tx-nav a:focus-visible { outline: 3px solid #1a5fd0; outline-offset: 2px; }
.tx-sec { display: grid; gap: 18px; scroll-margin-top: 90px; } .tx-sec header { display: grid; gap: 6px; max-width: 68ch; } .tx-sec h2 { margin: 0; font-size: clamp(1.4rem, 2.4vw, 1.9rem); letter-spacing: -.025em; color: var(--gx-ink); } .tx-sec header p { margin: 0; color: var(--gx-mute); }
.tx-plans, .tx-devs, .tx-preps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } .tx-preps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tx-plan, .tx-dev, .tx-prep { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 18px 20px; display: grid; gap: 8px; align-content: start; min-width: 0; } .tx-plan h3, .tx-dev h3, .tx-prep h3 { margin: 0; font-size: 1.08rem; color: var(--gx-ink); } .tx-plan p, .tx-dev p, .tx-prep p { margin: 0; color: var(--gx-mute); font-size: .93rem; }
.tx-price { color: var(--gx-ink) !important; } .tx-price b { font-size: 1.7rem; letter-spacing: -.02em; } .tx-price span { font-size: .92rem; color: var(--gx-mute); }
.tx-links { display: flex; flex-wrap: wrap; gap: 4px 18px; align-items: center; } .tx-links a { padding-block: 8px; }
.tx-sec--prep .tx-prep { border-style: dashed; background: rgba(255, 255, 255, .6); } .tx-none { font-style: normal; }
@media (max-width: 960px) { .tx-plans, .tx-devs, .tx-preps { grid-template-columns: minmax(0, 1fr); } }

/* Passe 25 : section sur mesure de l'accueil, meme esprit que les autres grandes sections */
.da-sm { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(24px, 4vw, 64px); align-items: center; padding: clamp(28px, 5vw, 64px) clamp(24px, 5vw, 72px); background: linear-gradient(160deg, #f4f7fc, #e8eef8); border: 1px solid var(--line); border-radius: 36px; }
.da-sm-fig { margin: 0; position: relative; display: grid; grid-template-columns: minmax(0, 1fr) clamp(96px, 12vw, 150px); gap: 14px; align-items: end; min-width: 0; }
.da-sm-main { width: 100%; height: auto; border-radius: 18px; box-shadow: 0 30px 50px -28px rgba(11, 27, 51, .6), 0 0 0 1px var(--line); }
.da-sm-ph.da-phone { width: 100%; padding: 4px; border-radius: 22px; } .da-sm-ph .da-screen { border-radius: 18px; } .da-sm-fig figcaption { grid-column: 1 / -1; font-size: .88rem; color: var(--gx-mute); }
.da-sm-copy { display: grid; gap: 20px; align-content: center; } .da-sm h2 { margin: 0; font-weight: 600; font-size: clamp(1.8rem, 2.8vw, 2.6rem); line-height: 1.08; letter-spacing: -.026em; text-wrap: balance; }
@media (max-width: 960px) { .da-sm { grid-template-columns: minmax(0, 1fr); padding: 30px 20px; border-radius: 28px; } .da-sm-fig { grid-template-columns: minmax(0, 1fr) 84px; } .da-sm-ph.da-phone { padding: 3px; border-radius: 14px; } .da-sm-ph .da-screen { border-radius: 11px; } .da-sm h2 { font-size: clamp(1.7rem, 6.8vw, 2.1rem); } }
.tx-plan .pg-tag, .tx-dev .pg-tag, .tx-prep .am-tag { justify-self: start; }

/* Passe 25 : premier ecran de la page sur mesure (moins de vide, apercu lisible du projet) */
.sm-hero { grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr); padding: clamp(24px, 3vw, 40px) clamp(24px, 5vw, 64px) clamp(26px, 3.4vw, 44px); gap: clamp(20px, 4vw, 56px); align-items: center; }
.sm-hero .pg-hero-copy { gap: 16px; } .sm-hero h1 { font-size: clamp(2rem, 3.5vw, 3.1rem); }
.sm-types { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; } .sm-types li { padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-size: .92rem; color: var(--gx-ink); }
.sm-hero-fig { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) clamp(92px, 11vw, 140px); gap: 14px; align-items: end; min-width: 0; }
.sm-hero-main { width: 100%; height: auto; border-radius: 18px; box-shadow: 0 30px 50px -28px rgba(11, 27, 51, .6), 0 0 0 1px var(--line); }
.sm-hero-ph.da-phone { width: 100%; padding: 4px; border-radius: 22px; } .sm-hero-ph .da-screen { border-radius: 18px; } .sm-hero-fig figcaption { grid-column: 1 / -1; font-size: .86rem; color: var(--gx-mute); }
@media (max-width: 960px) { .sm-hero { grid-template-columns: minmax(0, 1fr); padding: 22px 18px 26px; } .sm-hero-fig { grid-template-columns: minmax(0, 1fr) 78px; } .sm-hero-ph.da-phone { padding: 3px; border-radius: 14px; } .sm-hero-ph .da-screen { border-radius: 11px; } }
.sm-hero { grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); } .sm-hero h1 { font-size: clamp(1.9rem, 3.1vw, 2.8rem); } .sm-types li { padding: 7px 12px; font-size: .88rem; }
@media (max-width: 960px) { .sm-hero { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .sm-types { gap: 6px; } .sm-types li { font-size: .8rem; padding: 6px 10px; } }
@media (max-width: 960px) { .sm-hero-fig { grid-template-columns: minmax(0, 1fr); } .sm-hero-ph.da-phone { display: none; } }

/* Passe 26 : page Projets sur mesure enrichie */
.sm-types a { color: inherit; text-decoration: none; } .sm-types a:hover { text-decoration: underline; } .sm-types a:focus-visible { outline: 3px solid #1a5fd0; outline-offset: 3px; border-radius: 6px; }
.smt-note { margin: 0 0 18px; padding: 12px 16px; border-left: 4px solid #1a5fd0; background: #eef4fd; border-radius: 0 12px 12px 0; color: var(--gx-ink); max-width: 88ch; font-size: .95rem; }
.smt-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .smt-card { background: #fff; border: 1px solid var(--line); border-radius: 22px; padding: 22px 24px; display: grid; gap: 14px; align-content: start; min-width: 0; scroll-margin-top: 90px; }
.smt-card h3 { margin: 0; font-size: 1.3rem; letter-spacing: -.02em; color: var(--gx-ink); } .smt-purpose { margin: 0; color: var(--gx-ink); font-size: 1rem; line-height: 1.5; }
.smt-b h4 { margin: 0 0 4px; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--gx-mute); } .smt-b ul { margin: 0; padding-left: 1.1em; display: grid; gap: 2px; color: var(--gx-ink); font-size: .94rem; } .smt-b li { line-height: 1.45; }
.ms-badge { display: inline-block; vertical-align: middle; margin-left: 8px; padding: 3px 12px; border-radius: 999px; background: #fff3d6; color: #6b4a00; border: 1px solid #e6c97a; font-size: .8rem; font-weight: 700; letter-spacing: 0; }
.ms-legend { margin: 6px 0 18px; font-size: .92rem; color: var(--gx-ink); line-height: 1.9; max-width: 110ch; }
.ms-tag { display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: .76rem; font-weight: 700; border: 1px solid currentColor; margin-right: 6px; white-space: nowrap; } .ms-tag--obs { color: #0b6b3a; background: #e8f6ee; } .ms-tag--code { color: #4a3f9a; background: #efedfb; } .ms-tag--doc { color: #8a5200; background: #fff3dc; }
.ms-row { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(20px, 3.4vw, 48px); align-items: start; margin-block: 22px; } .ms-row--rev { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.ms-col { min-width: 0; display: grid; gap: 12px; align-content: start; } .ms-col h3 { margin: 6px 0 0; font-size: 1.1rem; color: var(--gx-ink); } .ms-ctx { margin: 0; color: var(--gx-mute); font-size: .95rem; }
.ms-needs { margin: 0; } .ms-feat { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; } .ms-feat li { display: block; line-height: 1.5; font-size: .95rem; color: var(--gx-ink); }
.ms-shots { display: grid; gap: 16px; } .ms-shots--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ms-fig2 { margin: 0; display: grid; gap: 6px; min-width: 0; } .ms-fig2 figcaption { font-size: .85rem; color: var(--gx-mute); }
.ms-zoom { display: block; border-radius: 14px; overflow: hidden; box-shadow: 0 24px 40px -26px rgba(11, 27, 51, .55), 0 0 0 1px var(--line); } .ms-zoom img { display: block; width: 100%; height: auto; } .ms-zoom:focus-visible { outline: 3px solid #1a5fd0; outline-offset: 3px; }
.sm-brief-in { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 24px; align-items: center; } .sm-brief h2 { margin: 0 0 8px; } .sm-free { margin: 12px 0 0; color: var(--gx-mute); max-width: 60ch; } .sm-brief-cta { display: grid; justify-items: start; } .sm-brief-cta p { margin: 0; }
.sm-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 960px) { .smt-grid, .ms-row, .ms-row--rev, .sm-brief-in { grid-template-columns: minmax(0, 1fr); } .ms-row--rev .ms-shots { order: 2; } .ms-shots--2 { grid-template-columns: minmax(0, 1fr); } .sm-steps { grid-template-columns: minmax(0, 1fr); } .smt-card { padding: 18px 16px; } }

.ms-ex .pg-opt-head { max-width: none; } .ms-ex .pg-opt-head .da-lead { max-width: 84ch; }
.ms-legend { display: grid; gap: 4px; line-height: 1.5; } .ms-leg { display: block; padding-left: 4px; }
.ms-shots--2 { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 961px) { .ms-shots--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Passe 27 : pages produit enrichies (cartes, deux colonnes, tableaux, captures d'administration) */
.p27-sec { scroll-margin-top: 96px; }
.p27-cards { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 8px; }
.p27-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.p27-card { display: grid; gap: 8px; align-content: start; padding: 20px 22px; background: #fff; border: 1px solid var(--gx-line); border-radius: 16px; }
.p27-card h3 { margin: 0; font: 600 1.1rem var(--font-display); color: var(--gx-ink); text-wrap: balance; }
.p27-card p { margin: 0; color: var(--gx-mute); font-size: .95rem; line-height: 1.55; }
.p27-two { display: grid; gap: 22px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 8px; }
.p27-col { display: grid; gap: 10px; align-content: start; padding: 22px 24px; border: 1px solid var(--gx-line); border-radius: 16px; background: #fff; }
.p27-col--yes { border-color: var(--gx-ink); }
.p27-col h3 { margin: 0; font: 600 1.15rem var(--font-display); color: var(--gx-ink); }
.p27-col p { margin: 0; color: var(--gx-mute); font-size: .96rem; line-height: 1.55; }
.p27-col .cp-list { margin: 0; }
.p27-col .cp-list li { font-size: .95rem; line-height: 1.5; }
.p27-h3 { margin: 18px 0 6px; font: 600 1.05rem var(--font-display); color: var(--gx-ink); }
.p27-tab { overflow-x: auto; border: 1px solid var(--gx-line); border-radius: 16px; background: #fff; margin-top: 8px; }
.p27-tab:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.p27-tab table { width: 100%; border-collapse: collapse; min-width: 560px; }
.p27-tab th, .p27-tab td { text-align: left; vertical-align: top; padding: 14px 18px; border-bottom: 1px solid var(--gx-line); font-size: .95rem; line-height: 1.55; }
.p27-tab thead th { font: 600 .78rem var(--font-body); letter-spacing: .06em; text-transform: uppercase; color: var(--gx-mute); background: var(--gx-paper); }
.p27-tab tbody th { width: 28%; font: 600 .98rem var(--font-display); color: var(--gx-ink); }
.p27-tab td { color: var(--gx-mute); }
.p27-tab tbody tr:last-child th, .p27-tab tbody tr:last-child td { border-bottom: 0; }
.p27-fig { margin: 0; display: grid; gap: 8px; }
.p27-fig img { display: block; width: 100%; height: auto; border: 1px solid var(--gx-line); border-radius: 14px; box-shadow: 0 18px 36px -24px rgba(11, 27, 51, .45); }
.p27-fig figcaption { font-size: .8rem; color: var(--mute); line-height: 1.45; }
.p27-sec .pg-vis { align-self: start; }
.p27-sec .cp-steps { margin-top: 8px; }
.p27-phones { display: grid; gap: 28px; grid-template-columns: minmax(0, 250px) minmax(0, 250px) minmax(0, 1fr); align-items: start; justify-content: center; margin-top: 8px; }
.p27-phones .da-phone { width: 100%; max-width: 250px; margin: 0; }
.p27-fig--wide img { box-shadow: 0 18px 36px -24px rgba(11, 27, 51, .45); }
@media (max-width: 960px) {
  .p27-cards, .p27-cards--2, .p27-two { grid-template-columns: minmax(0, 1fr); }
  .p27-phones { grid-template-columns: minmax(0, 1fr); gap: 22px; justify-items: center; }
  .p27-phones .da-phone { max-width: 270px; } .p27-phones .p27-fig--wide { justify-self: stretch; }
  .p27-tab table { min-width: 0; } .p27-tab thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .p27-tab table, .p27-tab tbody, .p27-tab tr, .p27-tab th, .p27-tab td { display: block; width: 100%; } .p27-tab tbody th { width: 100%; padding-bottom: 2px; border-bottom: 0; } .p27-tab td { padding-top: 0; }
}
@media (min-width: 961px) and (max-width: 1180px) { .p27-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.p27-wide { grid-template-columns: minmax(0, 1fr) !important; } .p27-wide .pg-copy { max-width: 78ch; } .p27-wide .pg-vis { max-width: 1100px; width: 100%; } .p27-wide .cp-list { columns: 2; column-gap: 40px; } .p27-wide .cp-list li { break-inside: avoid; }
@media (max-width: 960px) { .p27-wide .cp-list { columns: 1; } }

/* Passe 28 : navigation des fonctions, fiches, video, « Explorez la gamme », tarifs cibles */
.p28-nav { max-width: var(--wrap); margin: 0 auto; padding: 18px clamp(16px, 4vw, 40px); }
.p28-nav-t { margin: 0 0 10px; font: 600 .78rem var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--gx-mute); }
.p28-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.p28-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--gx-line-2); border-radius: 999px; background: #fff; color: var(--gx-ink); font: 600 .92rem var(--font-body); text-decoration: none; }
.p28-nav a:hover { border-color: var(--gx-ink); } .p28-nav a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.p28-phone .da-phone { max-width: 260px; margin-inline: auto; } .p28-phones2 { display: grid; grid-template-columns: repeat(2, minmax(0, 250px)); gap: 22px; justify-content: center; } .p28-phones2 .da-phone { width: 100%; margin: 0; }
.p28-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 18px; align-items: start; }
.p28-av-grid { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: clamp(20px, 3vw, 44px); align-items: start; margin-top: 10px; }
.p28-video { margin: 0; display: grid; gap: 8px; } .p28-video video { width: 100%; height: auto; max-width: 300px; border-radius: 22px; background: #000; display: block; border: 1px solid var(--gx-line); }
.p28-video figcaption { font-size: .8rem; color: var(--mute); line-height: 1.45; }
.p28-av-copy .p27-tab { margin-bottom: 8px; } .p28-av-copy .p27-tab table { min-width: 0; }
.p28-gamme { width: 100%; min-width: 0; box-sizing: border-box; max-width: var(--wrap); margin: 0 auto; padding: clamp(36px, 6vw, 72px) 0; overflow-x: clip; }
.p28-g-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding: 0 clamp(16px, 4vw, 40px); margin-bottom: 22px; }
.p28-g-head h2 { margin: 6px 0 0; font: 600 clamp(1.9rem, 4vw, 2.9rem)/1.02 var(--font-display); letter-spacing: -.03em; color: var(--gx-ink); text-wrap: balance; }
.p28-g-ctl { display: flex; gap: 10px; flex: none; }
.p28-g-btn-nav { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--gx-line-2); background: #fff; color: var(--gx-ink); cursor: pointer; transition: border-color .2s, opacity .2s; }
.p28-g-btn-nav:hover:not(:disabled) { border-color: var(--gx-ink); } .p28-g-btn-nav:disabled { opacity: .35; cursor: default; } .p28-g-btn-nav:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; } .p28-flip { display: grid; transform: scaleX(-1); }
.p28-g-track { display: grid; grid-auto-flow: column; grid-auto-columns: 360px; gap: 34px; min-width: 0; max-width: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: clamp(16px, 4vw, 40px); padding: 6px clamp(16px, 4vw, 40px) 18px; scrollbar-width: none; overscroll-behavior-x: contain; }
.p28-g-track::-webkit-scrollbar { display: none; } .p28-g-track:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; border-radius: 12px; }
.p28-g-card { scroll-snap-align: start; display: grid; grid-template-rows: 470px 1fr; gap: 20px; border-top: 1px solid var(--gx-ink); padding-top: 22px; }
.p28-g-vis { display: grid; place-items: center; min-height: 0; } .p28-g-vis .da-phone { width: min(100%, 212px); height: auto; margin: 0; }
.p28-g-vis--cut img { max-height: 100%; width: auto; max-width: 100%; height: auto; object-fit: contain; filter: drop-shadow(0 18px 22px rgba(11, 27, 51, .28)); border: 0; border-radius: 0; box-shadow: none; background: none; }
.p28-g-copy { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.p28-g-kick { margin: 0; font: 700 .78rem var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--gx-mute); }
.p28-g-copy h3 { margin: 0; font: 600 clamp(1.5rem, 2.6vw, 1.9rem)/1.05 var(--font-display); letter-spacing: -.03em; color: var(--gx-ink); }
.p28-g-copy p { margin: 0; color: var(--gx-mute); font-size: .96rem; line-height: 1.5; } .p28-g-copy .p28-g-price { color: var(--gx-ink); font-weight: 700; margin-top: 6px; }
.p28-g-btn { align-self: flex-start; margin-top: auto; } .p28-g-copy .p28-g-price { margin-bottom: 8px; }
.p28-price { max-width: var(--wrap); margin: 0 auto; padding: clamp(28px, 5vw, 56px) clamp(16px, 4vw, 40px); display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(18px, 3vw, 40px); align-items: stretch; }
.p28-pr-main { display: grid; gap: 14px; align-content: start; padding: clamp(22px, 3vw, 36px); border: 1px solid var(--gx-line); border-radius: 22px; background: #fff; }
.p28-tag { margin: 0; font: 700 .78rem var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--gx-mute); }
.p28-pr-main h2 { margin: 0; font: 600 clamp(1.9rem, 3.4vw, 2.6rem)/1.05 var(--font-display); letter-spacing: -.03em; color: var(--gx-ink); text-wrap: balance; }
.p28-price--rl .p28-pr-main { background: #0b0b0b; border-color: #0b0b0b; color: #fff; } .p28-price--rl .p28-pr-main h2 { color: #f4b72b; font-size: clamp(2.6rem, 6vw, 4.2rem); } .p28-price--rl .p28-pr-main h2 span { font-size: 1rem; color: rgba(255, 255, 255, .75); font-family: var(--font-body); }
.p28-price--rl .p28-tag { color: rgba(255, 255, 255, .72); } .p28-price--rl .cp-list li { color: rgba(255, 255, 255, .88); }
.p28-price--cmd .p28-pr-main h2 { font-size: clamp(2.6rem, 6vw, 4.2rem); color: var(--blue); } .p28-price--cmd .p28-pr-main h2 span { font-size: 1rem; color: var(--gx-mute); font-family: var(--font-body); } .p28-lead { margin: 0; color: var(--gx-mute); line-height: 1.55; }
.p28-eq { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; } .p28-eq > div { display: grid; gap: 2px; padding: 14px 18px; border: 1px solid var(--gx-line); border-radius: 16px; background: var(--gx-paper); min-width: 120px; }
.p28-eq span { font-size: .8rem; color: var(--gx-mute); } .p28-eq b { font: 600 1.9rem var(--font-display); color: var(--gx-ink); } .p28-eq i { align-self: center; font: 600 1.6rem var(--font-display); color: var(--gx-mute); font-style: normal; }
.p28-eq .p28-eq-sum { background: var(--gx-ink); border-color: var(--gx-ink); } .p28-eq .p28-eq-sum span { color: rgba(255, 255, 255, .75); } .p28-eq .p28-eq-sum b { color: #fff; } .p28-per { margin: 0; color: var(--gx-mute); font-size: .92rem; line-height: 1.5; }
.p28-full { display: grid; gap: 12px; align-content: start; padding: clamp(22px, 3vw, 36px); border-radius: 22px; background: #1c2128; color: #fff; }
.p28-full .p28-tag { color: rgba(255, 255, 255, .7); } .p28-big { margin: 0; font: 600 clamp(2.4rem, 5vw, 3.6rem)/1 var(--font-display); color: #fff; } .p28-big span { font: 500 1rem var(--font-body); color: rgba(255, 255, 255, .75); }
.p28-full ul { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: .92rem; color: rgba(255, 255, 255, .88); } .p28-save { margin: 0; font-size: .9rem; color: rgba(255, 255, 255, .78); }
.p28-allp { grid-column: 1 / -1; margin: 0; text-align: right; font-size: .92rem; }
@media (max-width: 960px) {
  .p28-av-grid, .p28-price, .p28-pair { grid-template-columns: minmax(0, 1fr); } .p28-video video { margin-inline: auto; } .p28-allp { text-align: left; }
  .p28-g-head { align-items: start; } .p28-g-track { grid-auto-columns: 78vw; gap: 20px; } .p28-g-card { grid-template-rows: 470px 1fr; }
  .p28-phones2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
@media (prefers-reduced-motion: reduce) { .p28-g-track { scroll-behavior: auto; } }

.p28-pr-main h2 span, .p28-big span { letter-spacing: 0; margin-left: .3em; font-weight: 500; }

.p28-g-card:last-child { margin-right: clamp(16px, 4vw, 40px); }

/* Passe 29 : finition legere du bloc « Cinq solutions » (hierarchie, alignements, acces lisibles) : memes cartes, meme grille */
.ov-card--rl { grid-template-rows: auto auto 1fr auto auto; } .ov-card .da-actions { align-self: end; } .ov-card .pg-tag, .ov-card .am-tag { margin: 0; line-height: 1.4; }
.ov-card--main { padding-block: 32px; } .ov-card--main .ov-price { margin-top: 10px; } .ov-card--main .da-actions { margin-top: 6px; }
.ov-sub a { position: relative; padding-left: 0; padding-right: 30px; transition: color .2s; } .ov-sub a b { font-weight: 600; }
.ov-sub a::after { content: ""; position: absolute; right: 4px; top: 50%; width: 8px; height: 8px; margin-top: -5px; border-top: 2px solid var(--gx-mute); border-right: 2px solid var(--gx-mute); transform: rotate(45deg); transition: transform .2s, border-color .2s; }
.ov-sub a:hover b, .ov-sub a:focus-visible b { color: var(--blue); } .ov-sub a:hover::after, .ov-sub a:focus-visible::after { border-color: var(--blue); transform: translateX(3px) rotate(45deg); } .ov-sub a:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 6px; }
.ov-card--soon { padding: 18px 22px; } .ov-card--soon p { font-size: .94rem; }
@media (prefers-reduced-motion: reduce) { .ov-sub a::after { transition: none; } }

/* Passe 29 : videos du menu public d'Ev'Et, tableaux, tarifs MenuPulse, provenance des visuels */
.p29-vid { margin: 0; display: grid; gap: 10px; justify-items: center; }
.p29-vid-box { position: relative; width: min(100%, 330px); border-radius: 26px; overflow: hidden; background: #000; border: 1px solid var(--gx-line); box-shadow: 0 22px 40px -26px rgba(11, 27, 51, .5); line-height: 0; }
.p29-vid-box video { display: block; width: 100%; height: auto; aspect-ratio: 390 / 844; background: #000; object-fit: contain; }
.p29-vid-ctl { position: absolute; left: 10px; bottom: 10px; display: none; gap: 8px; line-height: 1; }
.p29-vid.is-js .p29-vid-ctl { display: flex; }
.p29-vid-btn { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .5); background: rgba(11, 11, 13, .72); color: #fff; cursor: pointer; backdrop-filter: blur(6px); }
.p29-vid-btn:hover { background: rgba(11, 11, 13, .9); } .p29-vid-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 4px var(--blue); }
.p29-vid .p29-i-pause { display: none; } .p29-vid.is-playing .p29-i-pause { display: block; } .p29-vid.is-playing .p29-i-play { display: none; }
.p29-vid figcaption { max-width: 36ch; text-align: left; font-size: .8rem; color: var(--mute); line-height: 1.45; width: min(100%, 330px); }
.p29-visual { align-self: start; }
.p29-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; align-items: start; }
.p29-src { grid-column: 1 / -1; text-align: left; margin: 0; }
.p29-qa-row { grid-column: 1 / -1; margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--gx-line-2); }
.p29-qa { margin: 0; display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: 22px; align-items: center; }
.p29-qa .da-phone { width: 100%; max-width: 220px; margin: 0; } .p29-qa figcaption { font-size: .88rem; color: var(--gx-mute); line-height: 1.5; max-width: 62ch; } .p29-qa figcaption b { color: var(--gx-ink); }
.p29-gsrc { max-width: var(--wrap); margin: 0 auto; padding: 0 clamp(16px, 4vw, 40px); font-size: .8rem; color: var(--mute); }
.p28-av-media .p29-vid-box { width: min(100%, 300px); }
/* tableaux : titres explicites, largeurs, alignements */
.p27-tab { border-radius: 14px; } .p27-tab table { table-layout: fixed; }
.p27-tab thead th { padding: 12px 18px; font-size: .76rem; } .p27-tab thead th:first-child { width: 30%; }
.p27-tab tbody th { width: auto; font: 600 1rem var(--font-display); line-height: 1.35; padding-right: 24px; }
.p27-tab td { font-size: .96rem; color: var(--gx-ink); opacity: .86; line-height: 1.55; } .p27-tab tbody tr:nth-child(even) { background: rgba(11, 27, 51, .025); }
.p28-av-copy .p27-tab thead th:first-child { width: 34%; }
/* tarifs MenuPulse recomposes */
.p29-price-sec { max-width: var(--wrap); margin: 0 auto; padding: clamp(36px, 6vw, 72px) clamp(16px, 4vw, 40px); }
.p29-pr-head { display: grid; gap: 8px; margin-bottom: 26px; } .p29-pr-head h2 { margin: 0; font: 600 clamp(1.9rem, 3.6vw, 2.8rem)/1.05 var(--font-display); letter-spacing: -.03em; color: var(--gx-ink); text-wrap: balance; }
.p29-pr-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.1fr); gap: 20px; align-items: stretch; }
.p29-plan { display: flex; flex-direction: column; gap: 8px; padding: 28px 26px; border: 1px solid var(--gx-line); border-radius: 24px; background: #fff; }
.p29-tag { margin: 0; font: 700 .76rem var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--gx-mute); }
.p29-plan h3 { margin: 0; font: 600 1.45rem var(--font-display); letter-spacing: -.02em; color: var(--gx-ink); }
.p29-price { margin: 4px 0 0; display: flex; align-items: baseline; gap: 8px; } .p29-price b { font: 600 clamp(2.4rem, 4vw, 3.2rem)/1 var(--font-display); letter-spacing: -.04em; color: var(--gx-ink); } .p29-price span { font: 500 .95rem var(--font-body); color: var(--gx-mute); letter-spacing: 0; }
.p29-lead { margin: 0 0 6px; color: var(--gx-mute); line-height: 1.5; font-size: .98rem; }
.p29-plan ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; align-content: start; } .p29-plan li { position: relative; padding-left: 24px; font-size: .95rem; line-height: 1.45; color: var(--gx-ink); }
.p29-plan li::before { content: ""; position: absolute; left: 2px; top: .45em; width: 6px; height: 11px; border-right: 2px solid var(--blue); border-bottom: 2px solid var(--blue); transform: rotate(40deg); }
.p29-sum { margin: 10px 0 0; padding-top: 14px; border-top: 1px solid var(--gx-line-2); display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; } .p29-sum span { color: var(--gx-mute); font-size: .92rem; } .p29-sum b { font: 600 1.7rem var(--font-display); color: var(--gx-ink); } .p29-sum i { font-style: normal; color: var(--gx-mute); font-size: .92rem; }
.p29-btn { align-self: flex-start; margin-top: auto; } .p29-plan ul { margin-bottom: 20px; } .p29-plan .p29-sum { margin-bottom: 4px; }
.p29-plan--opt { background: var(--gx-paper); }
.p29-plan--full { background: #1c2128; border-color: #1c2128; color: #fff; } .p29-plan--full h3, .p29-plan--full .p29-price b, .p29-plan--full li, .p29-plan--full li b { color: #fff; } .p29-plan--full .p29-tag, .p29-plan--full .p29-lead, .p29-plan--full .p29-price span { color: rgba(255, 255, 255, .74); }
.p29-plan--full li::before { border-color: #f4b72b; } .p29-save { margin: 12px 0 0; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .22); font-size: .9rem; line-height: 1.5; color: rgba(255, 255, 255, .86); }
.p29-allp { margin: 18px 0 0; text-align: right; font-size: .92rem; }
@media (max-width: 960px) {
  .p29-pr-grid { grid-template-columns: minmax(0, 1fr); } .p29-plan { padding: 24px 20px; } .p29-allp { text-align: left; }
  .p29-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .p29-vid-box { width: 100%; border-radius: 20px; } .p29-vid figcaption { width: 100%; max-width: none; }
  .p29-qa { grid-template-columns: minmax(0, 1fr); justify-items: start; } .p27-tab table { table-layout: auto; } .p27-tab tbody tr:nth-child(even) { background: none; }
  .p27-tab tbody tr { display: block; padding: 12px 0; border-bottom: 1px solid var(--gx-line); } .p27-tab tbody tr:last-child { border-bottom: 0; } .p27-tab tbody th, .p27-tab tbody td { border-bottom: 0 !important; padding: 2px 16px; }
}
@media (max-width: 560px) { .p29-pair { grid-template-columns: minmax(0, 1fr); } .p29-vid-box { width: min(100%, 320px); } }
@media (prefers-reduced-motion: reduce) { .p29-vid-btn { transition: none; } }

/* fiche : colonne des deux sequences plus large pour garder le texte des videos lisible */
#fiche.pg-sec { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } #fiche .p29-pair { gap: 26px; } #fiche .p29-vid-box { width: min(100%, 340px); } #fiche .p29-vid figcaption { width: min(100%, 340px); }
@media (max-width: 960px) { #fiche.pg-sec { grid-template-columns: minmax(0, 1fr); } }

/* passe 30 : galerie des demonstrations - apercus portrait 3:4 non rogne, cartes a deux apercus sur deux colonnes, corps compact */
.dm-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 232px), 1fr)); grid-auto-flow: dense; gap: 16px; align-items: stretch; }
.dm-card { grid-template-rows: auto 1fr; }
.dm-card:has(.dm-prev--2) { grid-column: span 2; }
.dm-prev { aspect-ratio: 3 / 4; background: #e9ebe8; }
.dm-prev img { object-fit: cover; object-position: top center; }
.dm-prev--2 { aspect-ratio: 3 / 2; gap: 2px; }
.dm-prev:has(.dm-noprev) { aspect-ratio: auto; min-height: 132px; padding: 16px; text-align: center; }
.dm-body { gap: 10px; padding: 14px 14px 16px; align-content: space-between; }
.dm-head { gap: 10px; } .dm-head h3 { font-size: 1.05rem; line-height: 1.2; }
.dm-logo, .dm-mono { width: 40px; height: 40px; border-radius: 10px; }
.dm-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; }
.dm-actions .da-btn { justify-content: center; text-align: center; min-height: 44px; padding-inline: 12px; }
@media (max-width: 640px) {
  .dm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .dm-body { padding: 12px 12px 14px; } .dm-head h3 { font-size: .98rem; }
  .dm-actions { grid-template-columns: minmax(0, 1fr); }
  .dm-card:has(.dm-prev--2) .dm-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* passe 30 : pied de page commun - bandeau de contact plus bas, coordonnees sur une ligne, colonnes resserrees */
.gx-ft { padding: clamp(36px, 5vw, 60px) 0 14px; }
.gx-ct { padding-bottom: clamp(26px, 3.4vw, 40px); gap: 18px 40px; }
.gx-ct h2 { font-size: clamp(1.7rem, 2.6vw, 2.25rem); } .gx-ct p { margin-top: 8px; }
.gx-ct-act { gap: 10px; }
.gx-ct-coord { display: flex; flex-wrap: wrap; gap: 0 20px; } .gx-ct-coord a { font-size: .97rem; padding: 6px 0; color: var(--gx-mute); } .gx-ct-coord a:hover { color: var(--gx-ink); }
.gx-ft-grid { grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(0, 1fr)); gap: 28px clamp(20px, 3.4vw, 52px); padding: clamp(26px, 3.4vw, 38px) 0; }
.gx-ft-col h3 { margin-bottom: 6px; } .gx-ft-col a { min-height: 40px; }
@media (max-width: 960px) {
  .gx-ft { padding-top: 34px; }
  .gx-ft-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 20px; padding: 24px 0; } .gx-ft-brand { grid-column: 1 / -1; } .gx-ft-con { grid-column: auto; }
  .gx-ct-coord { gap: 0 18px; }
}

/* passe 30 : exemple Google d'Izgara - note de lecture sous la capture */
.vl-ex img[src*="izgara-google-panel-crop"] { max-height: 520px; }
.vl-exnote { margin: 12px auto 0; max-width: 46ch; font-size: .86rem; line-height: 1.5; color: var(--gx-mute); text-wrap: pretty; }
.dm-card:has(.dm-prev--2) .dm-actions { display: flex; flex-wrap: wrap; }
.dm-card:has(.dm-prev--2) .dm-actions .da-btn { flex: 0 1 auto; min-width: 140px; }

/* passe 31 : bénéfices concrets (MenuPulse au quotidien, usages de la roulette) */
.p31-note { margin: 0; max-width: 72ch; padding-top: 14px; border-top: 1px solid var(--line); color: var(--gx-ink); font-size: 1.02rem; line-height: 1.55; text-wrap: pretty; }
.p31-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 3vw, 40px); padding-top: 18px; border-top: 1px solid var(--line); }
.p31-duo h3 { margin: 0 0 6px; font: 600 1.05rem var(--font-display); color: var(--gx-ink); } .p31-duo p { margin: 0; color: var(--gx-mute); line-height: 1.55; text-wrap: pretty; }
@media (max-width: 720px) { .p31-duo { grid-template-columns: minmax(0, 1fr); } }

/* passe 31 : finitions issues de l'audit des pages */
.cf-priv a { text-decoration: underline; text-underline-offset: 2px; }
.dm-actions .da-btn { white-space: normal; max-width: 100%; line-height: 1.15; padding-block: 10px; }
.dm-actions { grid-template-columns: repeat(auto-fit, minmax(min(100%, 110px), 1fr)); }
.cp-steps:has(> li:nth-child(5):last-child) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 176px), 1fr)); }
.cat--page .cat-card { grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; }
.cat--page .cat-grid { grid-auto-rows: auto; }
@media (max-width: 960px) {
  .cp-crumbs { display: flex; flex-wrap: wrap; align-items: center; }
  .cp-crumbs a { display: inline-flex; align-items: center; min-height: 44px; }
  .gx-ct-coord a, .gx-ct-act a, .gx-ft-bar a, .gx-ft-brand .am-sig { display: inline-flex; align-items: center; min-height: 44px; padding-block: 0; }
  .gx-ct-coord { gap: 0 18px; }
  .gx-ft-col a { min-height: 44px; }
  .gx-ft-soon a { padding-block: 14px; margin-block: -14px; }
  .elyria-brand { display: inline-flex; align-items: center; min-height: 44px; }
  a.gx-lk:not(p a):not(li a) { display: inline-flex; align-items: center; min-height: 44px; }
}
@media (max-width: 560px) {
  .gx-cmp thead th:first-child { width: 28% !important; } .gx-cmp thead th { font-size: .72rem; padding-inline: 2px; overflow-wrap: normal; }
  .gx-cmp tbody th { hyphens: manual; overflow-wrap: break-word; }
}

.cat-body > [class*="tag"] { align-self: flex-start; }

/* passe 31 : « Du gain au cadeau remis » : les deux écrans passent l'un sous l'autre sous 960 px (ils dépassaient et étaient coupés à 390 px) */
@media (max-width: 960px) { .pt-stage--duo .pt-devs, .pt-stage--wide .pt-devs { grid-template-columns: minmax(0, 1fr); justify-content: stretch; } .pt-stage--duo .pt-phone { max-width: min(100%, 250px); } }
.cp-copy { grid-template-columns: minmax(0, 1fr); } .cp-limits, .cp-limits li { overflow-wrap: anywhere; }

/* passe 32 : pages plus courtes (accordéons accessibles), premiers visuels authentiques, premier écran des pages intérieures resserré */
.pg-hero { padding-top: clamp(40px, 4.6vw, 68px); } .dm-hero { padding-top: clamp(40px, 4.6vw, 68px); }
@media (max-width: 960px) { .pg-hero, .dm-hero { padding-top: 36px; } }
.p32-acc-list { border-top: 1px solid var(--gx-ink); display: grid; align-content: start; min-width: 0; }
.p32-acc { border-bottom: 1px solid var(--gx-line-2); min-width: 0; }
.p32-acc > summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 64px; padding: 14px 2px; cursor: pointer; list-style: none; font: 500 1.12rem/1.3 var(--font-display); color: var(--gx-ink); }
.p32-acc > summary::-webkit-details-marker { display: none; }
.p32-acc > summary:hover .gx-fq-q, .p32-acc[open] > summary .gx-fq-q { color: var(--blue); }
.p32-acc > summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 6px; }
.p32-acc[open] > summary .gx-fq-ic::before, .p32-acc[open] > summary .gx-fq-ic::after { background: var(--blue); } .p32-acc[open] > summary .gx-fq-ic::after { transform: rotate(0); }
.p32-body { display: grid; gap: 18px; padding: 4px 2px 26px; min-width: 0; animation: gxfq .3s var(--ease); }
.p32-body > .p32-inner { padding: 0; border: 0; background: none; border-radius: 0; box-shadow: none; margin: 0; }
.p32-body > .p32-inner.pg-opt { gap: 18px; } .p32-body .p27-tab { margin: 0; }
.p32-group { gap: clamp(18px, 2.4vw, 30px); }
.p32-group .pg-opt-head { max-width: 60ch; }
.smt-card > .p32-acc { margin-top: 4px; } .smt-card > .p32-acc > summary { min-height: 52px; font-size: 1rem; }
.p28-av-copy > .p32-acc-list { margin-top: 6px; } .p28-av-copy .p32-acc > summary { min-height: 56px; font-size: 1.02rem; }
.p32-fiche { margin: 0; display: grid; justify-items: center; gap: 12px; }
.p32-fiche img { display: block; width: auto; max-width: 100%; height: auto; max-height: 460px; border-radius: 18px; box-shadow: 0 0 0 1px var(--line), 0 28px 48px -30px rgba(11, 27, 51, .5); }
.p32-fiche figcaption, .p32-stationery figcaption { font-size: .85rem; color: var(--gx-mute); text-align: center; max-width: 36ch; }
.p32-stationery { margin: 0; display: grid; justify-items: center; gap: 12px; }
.p32-stationery .st-set { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: 16px; align-items: center; width: min(100%, 540px); }
.p32-stationery img { display: block; width: 100%; height: auto; border-radius: 6px; box-shadow: 0 0 0 1px var(--line), 0 22px 36px -24px rgba(11, 27, 51, .5); }
.p32-stationery .st-cards { display: grid; gap: 16px; min-width: 0; }
.cp-hero--plain { grid-template-columns: minmax(0, 1fr); } .cp-hero--plain .pg-hero-copy { max-width: 66ch; }
@media (max-width: 960px) { .p32-fiche img { max-height: 380px; } }
@media (max-width: 640px) {
  .dm-head { flex-direction: column; align-items: flex-start; gap: 8px; } .dm-head h3 { overflow-wrap: break-word; hyphens: manual; font-size: .98rem; }
  .p32-acc > summary { min-height: 58px; font-size: 1.04rem; gap: 16px; } .p32-body { padding-bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) { .p32-body { animation: none; } }
@media (min-width: 961px) { .ms-row:not(.ms-row--rev) > .ms-shots { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
.p32-soon-note { margin: 0; max-width: 56ch; color: var(--gx-ink); font-weight: 500; line-height: 1.5; }
@media (max-width: 640px) { .cp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .cp-card { padding: 14px; border-radius: 18px; gap: 6px; } .cp-card h3 { font-size: .98rem; } .cp-card p { font-size: .9rem; line-height: 1.45; overflow-wrap: break-word; } }
@media (max-width: 640px) {
  .tw table.p32-stack, .p32-stack tbody, .p32-stack tr, .p32-stack td { display: block; width: 100%; }
  .p32-stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .p32-stack tr { padding: 12px 0; border-bottom: 1px solid var(--gx-line-2); } .p32-stack td { border: 0; padding: 3px 0; }
  .p32-stack td:first-child { font-weight: 600; color: var(--gx-ink); padding-bottom: 5px; }
  .p32-stack td[data-label]::before { content: attr(data-label) " : "; font-weight: 600; color: var(--gx-ink); }
}
.p32-acc--lone { border-bottom: 0; border-top: 1px solid var(--gx-ink); } .p32-acc--lone > summary { font-weight: 600; font-size: clamp(1.25rem, 1.8vw, 1.6rem); letter-spacing: -.02em; min-height: 72px; }
.p32-acc--lone > .p32-body { gap: 16px; padding-bottom: 8px; }
.p32-vis .st-nfc { width: 70%; justify-self: center; border-radius: 50%; box-shadow: 0 22px 36px -24px rgba(11, 27, 51, .55); }

/* passe 33 : bandeau de logos alimenté par la source commune ; taille visuelle équilibrée (aire comparable), défilement continu */
.am-logos { --sc: .74; } .am-lg img { width: calc(var(--lw) * 1px * var(--sc)) !important; height: auto !important; max-width: none; max-height: 70px; }
.am-lg--dark { margin: 0 clamp(22px, 3vw, 44px); padding: 0 !important; } .am-lg--dark img { background: #0b1b33; padding: 8px 12px; border-radius: 10px; box-sizing: content-box; mix-blend-mode: normal; }
@media (max-width: 860px) { .am-logos { --sc: .6; } .am-lg { height: 60px; } .am-lg img { max-height: 54px; } }
.am-logos:not(.am-on) .am-track { gap: 14px 6px; }

/* passe 35 : roulette seule = capture réelle de SA roulette en grand ; logo et nom en complément dans l'en-tête de carte */
.dm-prev--solo { aspect-ratio: 3 / 4; background: #000; }
.dm-prev--solo img { object-position: top center; }
.cl-hero { grid-template-columns: minmax(0, 1fr); } .cl-trust { margin-top: 6px; }
.cl-logos li { height: 100px; }
.p32-gfig { margin: 6px 0 22px; display: grid; justify-items: center; gap: 10px; padding: 16px; background: var(--gx-paper); border-radius: 18px; }
.p32-gimgs { display: flex; gap: clamp(14px, 3vw, 30px); align-items: flex-end; justify-content: center; }
.p32-gimgs img { display: block; height: auto; width: auto; max-height: 250px; max-width: 46%; object-fit: contain; }
.p32-gfig--1 img { max-height: 260px; max-width: 70%; border-radius: 14px; } .p32-gfig--1 img[src*="evet-fiche"] { max-height: 340px; border-radius: 20px; box-shadow: 0 0 0 1px var(--line); }
.p32-gfig figcaption { font-size: .85rem; color: var(--gx-mute); text-align: center; max-width: 52ch; }

/* Passe 35 : Contact, appel et WhatsApp en premier */
.ct-acts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 22px 0 14px; max-width: 560px; }
.ct-act { display: flex; align-items: center; gap: 14px; min-height: 76px; padding: 14px 18px; border-radius: 20px; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.ct-act:hover { transform: translateY(-2px); } .ct-act:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.ct-act--wa { background: var(--blue); color: #fff; box-shadow: 0 14px 28px -14px rgba(0, 85, 214, .65); }
.ct-act--tel { background: #fff; color: var(--ink); border: 1.5px solid var(--ink); }
.ct-ic { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .18); }
.ct-act--tel .ct-ic { background: #eef3fa; }
.ct-tx { display: grid; gap: 1px; min-width: 0; } .ct-tx small { font: 500 .8rem var(--font-body); opacity: .8; } .ct-tx b { font: 700 1.2rem/1.15 var(--font-body); letter-spacing: -.01em; white-space: nowrap; }
.ct-more { margin: 0 0 4px; font-size: .92rem; color: var(--mute); } .ct-more a { color: var(--ink); text-underline-offset: 3px; }
.ct-after h2 { margin-bottom: 4px; } .ct-after .ct-steps { margin-top: 10px; }
@media (max-width: 960px) { .ct-acts { max-width: none; } .ct-hero .ct-vis { display: none; } }
@media (max-width: 520px) { .ct-acts { grid-template-columns: 1fr; gap: 10px; margin-top: 18px; } .ct-act { min-height: 72px; } .ct-tx b { font-size: 1.3rem; } .ct-more { font-size: .9rem; } }
@media (prefers-reduced-motion: reduce) { .ct-act { transition: none; } .ct-act:hover { transform: none; } }

/* Passe 35 : Tarifs, écart excessif entre le titre et les formules (grille + marge cumulées) */
.gx-px--page .pc-grid { margin-top: 0; }
.gx-px--page .gx-px-in { gap: clamp(22px, 3vw, 38px); }

/* Passe 36 : fidélité et supports (prix), schémas de format */
.tx-plans.tx-plans--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sp-cards.sp-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sp-price { display: flex; align-items: baseline; gap: 8px; margin: 0; } .sp-price b { font: 650 clamp(2rem, 3vw, 2.6rem)/1 var(--font-display); letter-spacing: -.03em; color: var(--ink); } .sp-price span { color: var(--mute); font-size: .95rem; }
.sp-card-fig--fmt { color: var(--mute); text-align: center; } .sp-card-fig--fmt svg { display: block; max-width: 100%; height: auto; } .sp-card-fig--fmt figcaption { font-size: .8rem; margin-top: 8px; color: var(--mute); }
.sp-ex { display: grid; gap: 12px; padding: clamp(20px, 3vw, 36px); background: var(--gx-paper); border: 1px solid var(--gx-line); border-radius: 26px; } .sp-ex h2 { margin: 0; font: 600 clamp(1.3rem, 2.2vw, 1.7rem) var(--font-display); letter-spacing: -.02em; }
@media (max-width: 960px) { .tx-plans.tx-plans--2, .sp-cards.sp-cards--3 { grid-template-columns: minmax(0, 1fr); } }

/* Passe 36 : fiche d'état des produits en préparation, prix de Solutions, zoom des captures */
.pp-card { align-self: center; display: grid; gap: 12px; padding: clamp(18px, 2.4vw, 28px); background: #fff; border: 1px solid var(--line); border-radius: 22px; max-width: 460px; justify-self: end; width: 100%; }
.pp-card h2 { margin: 0; font: 600 1.15rem var(--font-display); letter-spacing: -.01em; color: var(--ink); }
.pp-card dl { margin: 0; display: grid; } .pp-card dl > div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-top: 1px solid var(--line); } .pp-card dt { color: var(--mute); } .pp-card dd { margin: 0; font-weight: 600; color: var(--ink); text-align: right; }
.sv-sec { display: grid; gap: 18px; padding: clamp(22px, 3vw, 40px); background: var(--gx-paper, #fbfdff); border: 1px solid var(--gx-line, var(--line)); border-radius: 28px; }
.sv-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.sv-list a { display: grid; gap: 6px; height: 100%; padding: 16px 18px; background: #fff; border: 1px solid var(--line); border-radius: 18px; text-decoration: none; color: inherit; transition: border-color .2s ease, transform .2s ease; } .sv-list a:hover { border-color: var(--ink); transform: translateY(-2px); } .sv-list a:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.sv-n { display: grid; font: 600 1.05rem var(--font-display); color: var(--ink); } .sv-n small { font: 400 .88rem var(--font-body); color: var(--mute); margin-top: 2px; }
.sv-p b { font: 650 1.7rem/1 var(--font-display); letter-spacing: -.03em; color: var(--ink); } .sv-p i { font-style: normal; color: var(--mute); font-size: .88rem; }
.sv-more { margin: 4px 0 0; }
@media (max-width: 960px) { .sv-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pp-card { justify-self: stretch; max-width: none; } }
@media (max-width: 560px) { .sv-list { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .sv-list a { transition: none; } .sv-list a:hover { transform: none; } }

/* Agrandissement des captures */
.zm-btn { display: block; position: relative; width: 100%; height: 100%; padding: 0; margin: 0; border: 0; background: none; cursor: zoom-in; font: inherit; color: inherit; }
.dm-prev--2 .zm-btn { min-width: 0; } .zm-btn img { display: block; }
.zm-btn::after { content: ""; position: absolute; right: 8px; bottom: 8px; width: 30px; height: 30px; border-radius: 50%; background: rgba(11, 27, 51, .78) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'><circle cx='10.5' cy='10.5' r='6'/><path d='M15 15l5 5M10.5 8v5M8 10.5h5'/></svg>") center / 18px no-repeat; pointer-events: none; }
.zm-btn:focus-visible { outline: 3px solid var(--blue); outline-offset: -3px; }
.zm-dlg { border: 0; padding: 0; width: min(96vw, 980px); max-height: 94vh; background: #0b1b33; border-radius: 18px; color: #fff; overflow: hidden; } .zm-dlg::backdrop { background: rgba(5, 12, 24, .72); }
.zm-body { display: flex; gap: 10px; justify-content: center; align-items: flex-start; overflow: auto; max-height: 94vh; padding: 52px 12px 12px; } .zm-body img { display: block; max-width: 100%; max-height: calc(94vh - 70px); width: auto; height: auto; object-fit: contain; border-radius: 10px; flex: 0 1 auto; min-width: 0; }
.zm-close { position: absolute; top: 8px; right: 8px; z-index: 1; min-height: 40px; padding: 0 16px; border: 0; border-radius: 999px; background: #fff; color: #0b1b33; font: 600 .9rem var(--font-body); cursor: pointer; } .zm-close:focus-visible { outline: 3px solid #8ec1ff; outline-offset: 2px; }
@media (max-width: 560px) { .zm-body { flex-direction: column; align-items: center; } }
.pg-hero > .pp-card { align-self: start; margin-top: clamp(0px, 3vw, 48px); }
.sp-card { min-width: 0; } .sp-cards--3 .sp-card .da-btn { white-space: normal; text-align: center; justify-self: stretch; line-height: 1.25; padding-block: 12px; }
@media (min-width: 961px) { .sp-cards--3 .sp-card { padding: 20px; } }
@media (min-width: 961px) { .sp-cards--3 .sp-card h3 { min-height: 2.5em; } .sp-cards--3 .sp-card .sp-card-fig { align-self: end; } .sp-cards--3 .sp-card { align-content: start; } }

/* Passe 37 : vrais visuels des supports (sans cadre ni fond ajoutés), cartes alignées en sous-grille */
.sp-stand { margin: 0; display: flex; align-items: flex-end; justify-content: center; height: clamp(250px, 24vw, 330px); background: none; border: 0; padding: 0; }
.sp-stand img { display: block; height: 100%; width: auto; max-width: 100%; object-fit: contain; background: none; border: 0; border-radius: 0; filter: drop-shadow(0 16px 18px rgba(11, 27, 51, .18)); }
.sp-stand--nfc img { height: 88%; }
.sp-cards.sp-cards--3 { row-gap: 0; }
.sp-cards--3 .sp-card .sp-price { margin: 0; }
@supports (grid-template-rows: subgrid) { .sp-cards--3 .sp-card { grid-row: span 6; grid-template-rows: subgrid; row-gap: 14px; } }
.sp-pair { list-style: none; margin: 0; padding: 0; display: flex; gap: clamp(14px, 3vw, 36px); justify-content: center; align-items: flex-end; }
.sp-pair li { display: grid; gap: 10px; justify-items: center; text-align: center; min-width: 0; flex: 1 1 0; } .sp-pair p { margin: 0; font-size: .86rem; color: var(--mute); max-width: 24ch; }
.sp-pair .sp-stand { height: clamp(220px, 22vw, 300px); }
@media (max-width: 960px) { .sp-stand { height: clamp(240px, 70vw, 330px); } .sp-pair .sp-stand { height: clamp(200px, 52vw, 280px); } }

/* Passe 37 : produits en préparation, guides, captures agrandissables (image seule) */
.cp-hero--plain:has(.pp-card) { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: start; column-gap: clamp(20px, 4vw, 56px); }
.cp-hero--plain:has(.pp-card) .pg-hero-copy { max-width: 62ch; } .cp-hero--plain .pp-card { margin-top: clamp(0px, 5vw, 76px); }
@media (max-width: 960px) { .cp-hero--plain:has(.pp-card) { grid-template-columns: minmax(0, 1fr); } .cp-hero--plain .pp-card { margin-top: 8px; } }
.pa-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.pa-list a { display: grid; gap: 6px; height: 100%; align-content: start; padding: 18px 20px; background: #fff; border: 1px solid var(--line); border-radius: 20px; text-decoration: none; color: inherit; transition: border-color .2s ease, transform .2s ease; } .pa-list a:hover { border-color: var(--ink); transform: translateY(-2px); } .pa-list a:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.pa-list b { font: 600 1.15rem var(--font-display); color: var(--ink); } .pa-list .pa-p { font: 650 1.35rem/1 var(--font-display); letter-spacing: -.02em; color: var(--blue); } .pa-list span:last-child { color: var(--mute); font-size: .95rem; }
@media (max-width: 960px) { .pa-list { grid-template-columns: minmax(0, 1fr); } } @media (prefers-reduced-motion: reduce) { .pa-list a { transition: none; } .pa-list a:hover { transform: none; } }
.cp-hubgrid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } @media (max-width: 960px) { .cp-hubgrid { grid-template-columns: minmax(0, 1fr) !important; } }
.cp-hubgrid .cp-hub { display: grid; align-content: start; gap: 14px; } .cp-hub-fig { margin: 0; height: 190px; display: grid; place-items: center; background: #f1f5fb; border-radius: 16px; overflow: hidden; } .cp-hub-fig img { height: 86%; width: auto; max-width: 86%; object-fit: contain; }
.g-toc { margin: 0 0 26px; padding: 16px 20px; background: #f4f7fc; border: 1px solid var(--line); border-radius: 16px; } .g-toc p { margin: 0 0 6px; font: 600 .78rem var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--mute); } .g-toc ol { margin: 0; padding-left: 1.2em; display: grid; gap: 4px; } .g-toc a { color: var(--ink); text-underline-offset: 3px; } .g-toc a:hover { color: var(--blue); }
.cp-prose h2 { scroll-margin-top: 96px; }
img[data-zoom] { cursor: zoom-in; } img[data-zoom]:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.cp-hubgrid .sl-card.cp-hub { display: flex; flex-direction: column; align-items: stretch; gap: 14px; } .cp-hub:has(.cp-hub-fig) .cp-ic { display: none; } .cp-hub-fig { width: 100%; flex: none; } .cp-hub .sl-body { display: grid; gap: 8px; align-content: start; flex: 1 1 auto; }
.cp-hub .sl-body h3 { font-size: 1.1rem; line-height: 1.25; }

/* Passe 37 : lisibilité mobile (étiquettes et légendes à 12,8 px minimum, cibles tactiles de 44 px) */
@media (max-width: 560px) {
  .gx-eyebrow { font-size: .82rem; } .pg-tag, .ms-tag, .am-tag, .p28-tag, .p29-tag, .pt-lab, .vl-lab, .cp-hub .pg-tag { font-size: .8rem; }
  .pg-src, .p29-gsrc, figcaption, .gx-tbl th, table th, dt { font-size: .8rem; }
  .cat-sub a, .sl-body a.da-link, .gx-lk { display: inline-flex; align-items: center; min-height: 44px; padding-block: 4px; }
}

/* Passe 37 : Visibilité locale sur mobile : la preuve (exemple réel) passe avant l'appel à l'action, plus après lui */
@media (max-width: 960px) {
  .vl-item { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 18px; } .vl-item > .vl-copy { display: contents; }
  .vl-item > .vl-copy > h2 { order: 1; } .vl-item > .vl-copy > dl { order: 2; } .vl-item > .vl-ex { order: 3; } .vl-item > .vl-copy > .vl-next { order: 4; } .vl-item > .vl-copy > *:not(h2):not(dl):not(.vl-next) { order: 5; }
  .vl-item .vl-ex { justify-self: center; max-width: min(100%, 360px); } .vl-item .vl-ex img { max-height: 340px; width: auto; }
}
@media (max-width: 960px) { .vl-item > .vl-media { display: contents; } .vl-item > .vl-media > * { order: 3; justify-self: center; max-width: min(100%, 380px); } .vl-item > .vl-media > .vl-exnote { justify-self: stretch; max-width: none; } }
.cp-hub-fig img { height: 160px; max-height: 160px; width: auto; max-width: 86%; }
.cb-fig { margin: 18px auto 0; max-width: 300px; text-align: center; } .cb-fig img { width: 100%; height: auto; border-radius: 22px; box-shadow: 0 14px 30px -16px rgba(11, 27, 51, .45); } .cb-fig figcaption { margin-top: 10px; font-size: .85rem; color: var(--mute); }
@media (max-width: 560px) { .cb-fig { max-width: 240px; } }

/* Passe 38 : présentoir A5 de la page Roulette, en grand */
.rl-a5-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 5vw, 72px); align-items: center; }
.rl-a5-fig { height: auto; flex-direction: column; align-items: center; gap: 12px; } .rl-a5-fig img { height: auto; width: auto; max-height: clamp(380px, 44vw, 600px); max-width: 100%; }
.rl-a5-fig figcaption { font-size: .84rem; color: var(--mute); text-align: center; max-width: 34ch; }
.rl-a5-copy { min-width: 0; display: grid; gap: 14px; } .rl-a5-copy h2, .rl-a5-copy p { margin: 0; }
.rl-a5-pts { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 14px; }
.rl-a5-pts li { display: grid; gap: 3px; padding-left: 16px; border-left: 3px solid var(--blue); } .rl-a5-pts b { font-weight: 700; } .rl-a5-pts span { color: var(--mute); line-height: 1.55; }
.rl-a5-price { font-weight: 600; } .rl-a5-note { font-size: .92rem; color: var(--mute); line-height: 1.55; }
@media (max-width: 960px) { .rl-a5-grid { grid-template-columns: minmax(0, 1fr); } .rl-a5-fig img { max-height: clamp(300px, 86vw, 440px); } }

/* Passe 38 : repères de la page Solutions, filtres de Nos clients à portée */
.sl-hero:has(.sl-pick) { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; column-gap: clamp(20px, 4vw, 56px); }
.sl-pick { background: #fff; border: 1px solid var(--line); border-radius: 22px; padding: clamp(16px, 2.4vw, 26px); display: grid; gap: 10px; min-width: 0; }
.sl-pick p { margin: 0; } .sl-pick ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.sl-pick a { display: grid; gap: 2px; padding: 12px 14px; border-radius: 14px; text-decoration: none; color: inherit; transition: background .2s ease; } .sl-pick a:hover { background: #eef4ff; }
.sl-pick a:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.sl-pick a span { font-weight: 600; line-height: 1.35; } .sl-pick a b { font-weight: 600; font-size: .86rem; color: var(--blue); }
@media (max-width: 960px) { .sl-hero:has(.sl-pick) { grid-template-columns: minmax(0, 1fr); } }
.cl-bar { position: sticky; top: 76px; z-index: 6; background: rgba(247, 250, 255, .94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); padding-block: 8px; border-radius: 14px; }
@media (max-width: 960px) { .cl-bar { top: 64px; } }

/* Passe 40 : Option commande (alternative textuelle), Démonstrations mobile (une colonne), Visibilité locale (rythme), Projets sur mesure, Fidélité, Nos clients mobile */
.pt-alt { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 10px; } .pt-alt summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; color: var(--blue); }
.pt-alt summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; border-radius: 8px; } .pt-alt ol { margin: 6px 0 0; padding-left: 1.2em; display: grid; gap: 8px; color: var(--mute); line-height: 1.55; } .pt-alt b { color: var(--gx-ink, inherit); }
@media (max-width: 640px) {
  .dm-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .dm-card:has(.dm-prev--2) { grid-column: auto; }
  .dm-actions, .dm-card:has(.dm-prev--2) .dm-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dm-body { padding: 14px 16px 16px; } .dm-head h3 { font-size: 1.08rem; }
}
@media (min-width: 961px) {
  .vl-item.vl-mirror { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
  .vl-item.vl-mirror > .vl-media, .vl-item.vl-mirror > .vl-ex { order: -1; }
}
.ms-sub { display: grid; gap: 8px; margin-top: 14px; } .ms-sub h4 { margin: 0; font-size: 1rem; }
.fd-pair { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(14px, 2.4vw, 28px); align-items: start; } .fd-pair > section { margin: 0; min-width: 0; }
@media (max-width: 960px) { .fd-pair { grid-template-columns: minmax(0, 1fr); } }
.av-real img { max-height: 340px; width: auto; border-radius: 14px; }
@media (max-width: 640px) {
  .cl-card--auto { display: grid; grid-template-columns: 104px minmax(0, 1fr); column-gap: 14px; row-gap: 6px; align-items: start; padding: 12px; }
  .cl-card--auto .cl-prevs { grid-row: 1 / span 3; grid-column: 1; margin: 0; } .cl-card--auto .cl-prevs img { width: 100%; height: auto; border-radius: 10px; }
  .cl-card--auto .dm-head, .cl-card--auto .dm-tags, .cl-card--auto .dm-actions { grid-column: 2; margin: 0; min-width: 0; }
}
@media (max-width: 640px) {
  .dm-card[data-menu="0"] .dm-prev { background: #0b0b0b; display: grid; justify-items: center; }
  .dm-card[data-menu="0"] .dm-prev img { max-height: 330px; width: auto; max-width: 100%; object-fit: contain; }
}
@media (min-width: 961px) { .ms-row > .ms-shots { position: sticky; top: 92px; align-self: start; } }
@media (max-width: 640px) {
  .cl-bar { display: flex; flex-wrap: nowrap; align-items: center; gap: 10px; padding-inline: 8px; }
  .cl-bar .dm-filters { flex: 1 1 auto; min-width: 0; flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; padding-bottom: 2px; scrollbar-width: none; }
  .cl-bar .dm-filters::-webkit-scrollbar { display: none; } .cl-bar .dm-f { flex: 0 0 auto; scroll-snap-align: start; white-space: nowrap; }
  .cl-bar > :not(.dm-filters) { flex: 0 0 auto; margin: 0; font-size: .8rem; }
}

/* Passe 41 : pack MenuPulse + Roulette, note HT, composition de l'offre */
.ht-note{margin-top:14px}
.p29-also,.p28-also,.pk-save{margin-top:14px;max-width:62ch}
.pk-save{margin-inline:auto;text-align:center}
.ds-diff .ds-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.ds-diff .ds-list li{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--line,rgba(0,0,0,.12));border-radius:14px;background:var(--surface,transparent);min-width:0}
.ds-diff .ds-list b{font-size:1rem}
.ds-diff .ds-list span{font-size:.95rem;line-height:1.5}
@media (max-width:480px){.gx-cmp thead th{font-size:.7rem;padding-inline:3px;overflow-wrap:anywhere;hyphens:auto}.gx-cmp tbody th[scope=row]{font-size:.8rem}}
.ds-diff .ds-list{margin-top:20px}.ds-diff>.gx-note{margin-top:14px}
/* Passe 46 : carte du pack MenuPulse + Roulette sur la page Roulette, sous les deux tarifs */
.p28-pack { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, auto) minmax(0, 1fr) auto; gap: 16px clamp(18px, 3vw, 36px); align-items: center; padding: clamp(18px, 2.6vw, 28px); border-radius: 22px; border: 2px solid var(--blue); background: #fff; }
.p28-price--rl .p28-pack .p28-tag, .p28-pack .p28-tag { color: var(--gx-mute); } .p28-pack .p28-big { color: var(--gx-ink); } .p28-pack .p28-big span { color: var(--gx-mute); } .p28-pack .p28-save { color: var(--gx-ink); font-size: .98rem; max-width: 52ch; }
@media (max-width: 760px) { .p28-pack { grid-template-columns: minmax(0, 1fr); } .p28-pack .da-btn { width: 100%; } }
/* Passe 47 : « Explorez la gamme » : flèches sur les cartes, position n / N, indication de défilement, fondu propre du bord droit */
.p28-g-info { display: grid; gap: 4px; justify-items: end; text-align: right; flex: none; }
.p28-g-hint { margin: 0; font: 600 .9rem var(--font-body); color: var(--gx-mute); }
.p28-g-hint::after { content: " →"; }
.p28-g-pos { margin: 0; font: 700 1.05rem var(--font-display); color: var(--gx-ink); font-variant-numeric: tabular-nums; }
.p28-g-stage { position: relative; }
.p28-g-stage .p28-g-btn-nav { position: absolute; top: 236px; z-index: 3; width: 48px; height: 48px; margin-top: -24px; border: 1px solid var(--gx-ink); box-shadow: 0 6px 18px rgba(11, 27, 51, .22); }
.p28-g-btn-prev { left: clamp(2px, 1vw, 10px); } .p28-g-btn-next { right: clamp(2px, 1vw, 10px); }
.p28-g-stage .p28-g-btn-nav:disabled { opacity: 0; pointer-events: none; }
.p28-g-stage .p28-g-btn-nav:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.p28-g-copy { transition: opacity .25s; } .p28-g-card.is-peek .p28-g-copy { opacity: 0; visibility: hidden; }
@media (max-width: 760px) { .p28-g-head { flex-direction: column; align-items: start; } .p28-g-info { justify-items: start; text-align: left; grid-auto-flow: column; gap: 14px; align-items: center; } .p28-g-track { grid-auto-columns: 70vw; } }
/* Passe 47 : fenêtres de démonstration vidéo, commandes manuelles de la démonstration de commande */
.p47-dlg { border: 0; padding: 0; border-radius: 24px; width: min(92vw, 400px); max-height: 94dvh; overflow: auto; background: #fff; color: var(--gx-ink); box-shadow: 0 30px 80px -20px rgba(11, 27, 51, .55); }
.p47-dlg::backdrop { background: rgba(11, 11, 13, .62); }
.p47-dlg-in { display: grid; gap: 12px; padding: 14px 16px 18px; justify-items: center; }
.p47-dlg-head { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.p47-dlg-t { margin: 0; font: 600 1.1rem/1.2 var(--font-display); letter-spacing: -.02em; }
.p47-x { width: 44px; height: 44px; flex: none; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--gx-line-2); background: #fff; color: var(--gx-ink); cursor: pointer; }
.p47-x:hover { border-color: var(--gx-ink); } .p47-x:focus-visible, .p47-nb:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.p47-dlg .p29-vid-box { width: min(100%, 330px, calc((100dvh - 250px) * .462)); }
.p47-dlg .p29-vid figcaption { width: min(100%, 330px); }
.p47-cap { margin: 0; width: min(100%, 330px); font-size: .92rem; line-height: 1.45; color: var(--gx-mute); }
.p47-nav { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 10px 0 4px; }
.p47-nav[hidden], .p47-open[hidden] { display: none; }
.p47-nb { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--gx-ink); background: #fff; color: var(--gx-ink); font: 600 .95rem var(--font-body); cursor: pointer; }
.p47-nb:hover { background: var(--gx-ink); color: #fff; }
.p47-full { margin: 6px 0 0; text-align: center; }
@media (prefers-reduced-motion: reduce) { .p47-dlg { scroll-behavior: auto; } }
/* tout tient à l'écran : ni flèches ni position (rien à faire défiler) */
.p28-gamme.is-fit .p28-g-info, .p28-gamme.is-fit .p28-g-btn-nav { display: none; }
.p47-cap--note { color: var(--gx-ink); }
/* fenêtre vidéo : les commandes sous la vidéo, jamais par-dessus (elles masquaient le bas de l'écran filmé) */
.p47-dlg .p29-vid-box { overflow: visible; background: none; border: 0; box-shadow: none; display: grid; gap: 10px; border-radius: 0; }
.p47-dlg .p29-vid-box video { border-radius: 22px; border: 1px solid var(--gx-line); box-shadow: 0 22px 40px -26px rgba(11, 27, 51, .5); }
.p47-dlg .p29-vid-ctl { position: static; justify-content: center; }
.p47-dlg .p29-vid-btn { background: #fff; color: var(--gx-ink); border-color: var(--gx-line-2); backdrop-filter: none; }
.p47-dlg .p29-vid-btn:hover { background: var(--gx-ink); color: #fff; }
.p47-dlg .p29-vid-btn:focus-visible { outline: 3px solid var(--blue); box-shadow: none; }
.p47-dlg .p29-vid .p29-vid-box { width: min(100%, 330px, calc((100dvh - 330px) * .462)); }
/* Passe 49 : accès aux vidéos bien visible (bouton plein avec icône de lecture, bloc avec affiche près de la démonstration) */
.da-btn--play { background: var(--blue); color: #fff; border: 0; gap: 10px; text-decoration: none; }
.da-actions .da-btn--play { background: #fff; color: var(--blue); border: 2px solid var(--blue); }
.da-actions .da-btn--play:hover { background: var(--blue); color: #fff; }
.p47-play { flex: none; }
.p47-open:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.p47-teaser { box-sizing: border-box; width: 100%; display: flex; align-items: center; gap: clamp(14px, 3vw, 24px); max-width: 560px; margin: 16px 0 22px; padding: 12px; border: 1px solid var(--gx-line-2); border-radius: 20px; background: #fff; box-shadow: 0 14px 30px -22px rgba(11, 27, 51, .45); }
.p47-thumb { position: relative; flex: none; width: 112px; height: 112px; border-radius: 14px; overflow: hidden; background: #000; display: block; }
.p47-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.p47-thumb-play { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; background: rgba(11, 11, 13, .38); }
.p47-thumb-play svg { width: 34px; height: 34px; filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .5)); }
.p47-t-copy { display: grid; gap: 8px; min-width: 0; justify-items: start; }
.p47-t-sub { margin: 0; font-size: .86rem; color: var(--gx-mute); }
@media (max-width: 560px) { .p47-teaser { flex-direction: row; align-items: center; gap: 12px; } .p47-thumb { width: 84px; height: 84px; } .p47-t-copy { flex: 1 1 0; justify-items: stretch; } .p47-t-copy .da-btn { width: 100%; box-sizing: border-box; padding: 8px 12px; height: auto; min-height: 48px; white-space: normal; text-align: center; line-height: 1.2; } }
/* Passes 47-50 : grandes vidéos intégrées dans les pages (téléphone au format des démonstrations), aperçu net, bouton de lecture évident, commandes sous le téléphone */
.p47-sec { max-width: var(--wrap); margin: 0 auto; padding: clamp(28px, 5vw, 64px) clamp(16px, 4vw, 40px); }
.p47-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: clamp(24px, 5vw, 80px); align-items: center; }
.p47-copy { min-width: 0; }
.p47-copy h2 { margin: 6px 0 0; font: 600 clamp(1.9rem, 4vw, 2.9rem)/1.04 var(--font-display); letter-spacing: -.03em; color: var(--gx-ink); text-wrap: balance; }
.p47-steps { counter-reset: s; list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 14px; max-width: 46ch; }
.p47-steps li { counter-increment: s; display: flex; gap: 14px; align-items: flex-start; font-size: 1.05rem; line-height: 1.45; color: var(--gx-ink); }
.p47-steps li::before { content: counter(s); flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--blue); color: #fff; font: 700 .95rem var(--font-body); }
.p47-media { min-width: 0; display: grid; justify-items: center; }
.p47-stage { margin: 0; width: 100%; display: grid; gap: 14px; justify-items: center; }
.p47-phone { position: relative; width: min(100%, 330px, calc((100svh - 210px) * .462)); min-width: 220px; }
.p47-phone .da-screen video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #000; display: block; }
.p47-bigplay { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 12px; border: 0; padding: 0; background: rgba(8, 10, 16, .26); color: #fff; cursor: pointer; font: inherit; }
.p47-bigplay-i { width: 84px; height: 84px; border-radius: 50%; background: rgba(255, 255, 255, .96); color: var(--blue); display: grid; place-items: center; box-shadow: 0 12px 30px rgba(0, 0, 0, .45); transition: transform .2s; }
.p47-bigplay-i svg { width: 38px; height: 38px; margin-left: 5px; }
.p47-bigplay:hover .p47-bigplay-i { transform: scale(1.06); }
.p47-bigplay-t { font: 700 .98rem var(--font-body); text-shadow: 0 1px 8px rgba(0, 0, 0, .7); }
.p47-stage.has-started .p47-bigplay { display: none; }
.p47-ctl { display: flex; gap: 10px; justify-content: center; }
.p47-ctl .p47-btn { width: 48px; height: 48px; background: #fff; color: var(--gx-ink); border: 1px solid var(--gx-line-2); backdrop-filter: none; }
.p47-ctl .p47-btn:hover { background: var(--gx-ink); color: #fff; }
.p47-ctl .p47-btn[hidden] { display: none; }
.p47-btn:focus-visible, .p47-bigplay:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; box-shadow: none; }
.p47-stage figcaption { text-align: center; font-size: .9rem; color: var(--gx-mute); line-height: 1.55; max-width: 36ch; }
.p47-stage figcaption b { color: var(--gx-ink); }
.p47-lead { margin: 12px 0 0; max-width: 62ch; color: var(--gx-mute); font-size: 1rem; line-height: 1.5; }
.p47-stage:fullscreen { background: #05070c; align-content: center; padding: 16px; }
.p47-stage:fullscreen .p47-phone { width: min(92vw, calc((100svh - 150px) * .462)); }
.p47-stage:fullscreen figcaption, .p47-stage:fullscreen figcaption a { color: #cfd6e4; } .p47-stage:fullscreen figcaption b { color: #fff; }
.p47-stage:-webkit-full-screen { background: #05070c; align-content: center; padding: 16px; } .p47-stage:-webkit-full-screen .p47-phone { width: min(92vw, calc((100vh - 150px) * .462)); }
@media (max-width: 860px) { .p47-grid { grid-template-columns: minmax(0, 1fr); } .p47-phone { width: min(100%, 340px); } .p47-steps { max-width: none; } }
@media (prefers-reduced-motion: reduce) { .p47-bigplay-i { transition: none; } }
.p47-stage .p29-i-pause { display: none; } .p47-stage.is-playing .p29-i-pause { display: block; } .p47-stage.is-playing .p29-i-play { display: none; }
.p47-media, .p47-stage { grid-template-columns: minmax(0, 1fr); } .p47-media { width: 100%; }
.p47-sec { width: 100%; box-sizing: border-box; }
/* Passe 51 : bouton de lecture de la vidéo Commande posé sur la photo du plat (il ne masque plus le nom ni le prix) ; composition ordinateur : paire texte + téléphone centrée, étapes en cartes */
.p47-stage--photo .p47-bigplay { place-content: start center; padding-top: 42%; }
.p47-stage--photo .p47-bigplay-i { width: 76px; height: 76px; }
@media (min-width: 861px) {
  .p47-grid { grid-template-columns: minmax(0, 520px) minmax(0, 380px); justify-content: center; gap: clamp(56px, 7vw, 112px); }
  .p47-copy h2 { font-size: clamp(2.3rem, 3.6vw, 3.4rem); }
  .p47-steps { max-width: none; gap: 14px; margin-top: 30px; }
  .p47-steps li { padding: 18px 22px; border: 1px solid var(--gx-line-2); border-radius: 18px; background: #fff; font-size: 1.14rem; align-items: center; box-shadow: 0 14px 28px -24px rgba(11, 27, 51, .45); }
  .p47-steps li::before { width: 40px; height: 40px; font-size: 1.05rem; }
}
/* Passe 52 : lecture automatique au défilement : le voile et le gros bouton ne s'affichent qu'avant le démarrage (ou si le navigateur refuse la lecture automatique) */
