/* WPMalter — Lead-magnet shared content blocks.
   Composable section styles used by every dedicated resource page
   (lm-*.html). Built on the design tokens (../../colors_and_type.css)
   + styles.css, and reuses lead-magnet.css (hero/optin/cover/timeline/
   pricing/bio) + bibliotheque.css (lib-grid / bridge-grid).
   This file only adds the *new* block variants the LM template needs. */

/* ============================================================================
   HERO VISUALS — alternates to the terminal mock (lead-magnet.css)
   ============================================================================ */
/* PDF cover — generic, drives off LM.visual. Mirrors .lm-cover but self-contained
   so any page can use it without the Pack-Vibecoding markup. */
.lm-pdf { position:relative; aspect-ratio:1 / 1.30; border-radius:var(--wpm-radius-lg); overflow:hidden;
  background:radial-gradient(120% 90% at 80% 0%, #1a1530 0%, #0c0a1c 55%, #08070f 100%);
  border:1px solid rgba(255,255,255,.10); box-shadow:var(--wpm-shadow-xl), 0 0 70px rgba(83,58,253,.26);
  padding:36px 32px; display:flex; flex-direction:column; transform:rotate(-1.4deg); transition:transform var(--wpm-dur-slow) var(--wpm-ease); }
.lm-pdf:hover { transform:rotate(0deg); }
.lm-pdf::before { content:""; position:absolute; width:340px; height:340px; right:-120px; top:-140px; border-radius:50%;
  background:radial-gradient(circle, rgba(83,58,253,.55), transparent 64%); filter:blur(60px); pointer-events:none; }
.lm-pdf-top { position:relative; z-index:1; display:flex; align-items:center; gap:9px; font-family:var(--wpm-font-mono); font-size:11px; letter-spacing:.04em; color:rgba(230,237,246,.6); }
.lm-pdf-top .glyph { width:24px; height:24px; border-radius:6px; background:var(--wpm-brand); color:#fff; display:flex; align-items:center; justify-content:center; }
.lm-pdf-top .glyph svg { width:14px; height:14px; }
.lm-pdf-eyebrow { position:relative; z-index:1; margin-top:26px; font-family:var(--wpm-font-mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--wpm-brand-300); }
.lm-pdf h2 { position:relative; z-index:1; font-family:var(--wpm-font-display); font-weight:700; font-size:clamp(24px,3.1vw,32px); line-height:1.08; letter-spacing:-0.03em; color:#fff; margin:12px 0 0; }
.lm-pdf h2 .hl { color:var(--wpm-brand-300); }
.lm-pdf-tag { position:relative; z-index:1; font-size:13.5px; line-height:1.55; color:rgba(230,237,246,.72); margin:14px 0 0; }
.lm-pdf-cats { position:relative; z-index:1; display:flex; flex-wrap:wrap; gap:7px; margin-top:18px; }
.lm-pdf-cats span { font-family:var(--wpm-font-mono); font-size:10.5px; color:rgba(230,237,246,.78); background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10); padding:5px 9px; border-radius:var(--wpm-radius-pill); }
.lm-pdf-foot { position:relative; z-index:1; margin-top:auto; padding-top:18px; border-top:1px solid rgba(255,255,255,.10);
  display:flex; align-items:center; justify-content:space-between; font-family:var(--wpm-font-mono); font-size:11.5px; color:rgba(230,237,246,.55); }
.lm-pdf-foot .by { color:#fff; }

/* Google-Sheets mock (e-commerce) */
.lm-sheet { position:relative; border-radius:12px; overflow:hidden; border:1px solid rgba(255,255,255,.08);
  background:#0f1117; box-shadow:0 24px 48px rgba(0,0,0,.4), 0 0 70px rgba(31,157,95,.14);
  transform:rotate(-1deg); transition:transform var(--wpm-dur-slow) var(--wpm-ease); }
.lm-sheet:hover { transform:rotate(0deg); }
.lm-sheet-chrome { display:flex; align-items:center; gap:9px; padding:11px 14px; background:#1b2a22; border-bottom:1px solid rgba(255,255,255,.06); }
.lm-sheet-chrome .gi { width:20px; height:20px; border-radius:5px; background:var(--wpm-success-500); color:#fff; display:flex; align-items:center; justify-content:center; }
.lm-sheet-chrome .gi svg { width:12px; height:12px; }
.lm-sheet-chrome .ttl { font-family:var(--wpm-font-mono); font-size:12px; color:rgba(245,245,250,.66); }
.lm-sheet-body { padding:0; }
.lm-sheet-row { display:grid; grid-template-columns:30px 1fr 64px; align-items:center; gap:0; border-bottom:1px solid rgba(255,255,255,.05);
  font-size:12.5px; min-height:38px; }
.lm-sheet-row .c { padding:8px 12px; }
.lm-sheet-row .cx { display:flex; align-items:center; justify-content:center; color:var(--wpm-success-400); }
.lm-sheet-row .cx svg { width:14px; height:14px; }
.lm-sheet-row .lbl { color:rgba(245,245,250,.86); font-family:var(--wpm-font-sans, inherit); }
.lm-sheet-row .imp { text-align:center; font-family:var(--wpm-font-mono); font-size:10px; letter-spacing:.04em; }
.lm-sheet-row .imp b { padding:3px 8px; border-radius:var(--wpm-radius-pill); }
.lm-sheet-row .imp .hi { background:rgba(224,68,62,.18); color:#f08883; }
.lm-sheet-row .imp .md { background:rgba(217,138,11,.18); color:#f0b54e; }
.lm-sheet-cat { background:rgba(83,58,253,.16); }
.lm-sheet-cat .lbl { color:var(--wpm-brand-300); font-family:var(--wpm-font-display); font-weight:600; letter-spacing:-0.01em; grid-column:2 / -1; }
.lm-sheet-cat { grid-template-columns:30px 1fr; }

/* Quiz stepper mock */
.lm-quiz { position:relative; border-radius:var(--wpm-radius-lg); overflow:hidden; border:1px solid var(--wpm-border);
  background:var(--wpm-surface-1); box-shadow:var(--wpm-shadow-xl); padding:30px 28px; transform:rotate(-1deg); transition:transform var(--wpm-dur-slow) var(--wpm-ease); }
.lm-quiz:hover { transform:rotate(0deg); }
.lm-quiz-steps { display:flex; align-items:center; gap:6px; margin-bottom:24px; }
.lm-quiz-steps .qs { display:flex; align-items:center; gap:9px; }
.lm-quiz-steps .dot { width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-family:var(--wpm-font-display); font-weight:700; font-size:12px; background:var(--wpm-surface-3,var(--wpm-surface-2)); color:var(--wpm-text-muted); border:1px solid var(--wpm-border); }
.lm-quiz-steps .qs.done .dot { background:var(--wpm-success-bg); color:var(--wpm-success-text); border-color:transparent; }
.lm-quiz-steps .qs.cur .dot { background:var(--wpm-brand); color:#fff; border-color:transparent; box-shadow:0 0 0 4px var(--wpm-brand-surface); }
.lm-quiz-steps .qs .lab { font-size:12.5px; font-weight:600; color:var(--wpm-text-secondary); }
.lm-quiz-steps .qs.cur .lab { color:var(--wpm-text-primary); }
.lm-quiz-steps .bar { flex:1; height:2px; background:var(--wpm-border); border-radius:2px; }
.lm-quiz-q { font-family:var(--wpm-font-display); font-weight:600; font-size:17px; letter-spacing:-0.01em; margin:0 0 16px; color:var(--wpm-text-primary); }
.lm-quiz-opts { display:flex; flex-direction:column; gap:9px; }
.lm-quiz-opt { display:flex; align-items:center; gap:11px; padding:13px 15px; border-radius:var(--wpm-radius-md); border:1px solid var(--wpm-border); background:var(--wpm-surface-2); font-size:14px; color:var(--wpm-text-secondary); }
.lm-quiz-opt.sel { border-color:var(--wpm-brand); background:var(--wpm-brand-surface); color:var(--wpm-text-primary); font-weight:500; }
.lm-quiz-opt .rd { width:18px; height:18px; border-radius:50%; border:2px solid var(--wpm-border-strong); flex-shrink:0; }
.lm-quiz-opt.sel .rd { border-color:var(--wpm-brand); background:radial-gradient(circle, var(--wpm-brand) 42%, transparent 46%); }
.lm-quiz-result { margin-top:18px; padding-top:18px; border-top:1px solid var(--wpm-border-subtle); display:flex; align-items:baseline; justify-content:space-between; }
.lm-quiz-result .k { font-size:12.5px; color:var(--wpm-text-muted); font-family:var(--wpm-font-mono); }
.lm-quiz-result .v { font-family:var(--wpm-font-display); font-weight:700; font-size:24px; letter-spacing:-0.02em; color:var(--wpm-brand-text); }

/* Code / skill mock (gsap) — reuse .lm-term structure but tinted */
.lm-term.is-skill { box-shadow:0 24px 48px rgba(0,0,0,.4), 0 0 80px rgba(255,138,101,.16); }

/* ============================================================================
   CATEGORY GRID — cards with count pill + bullet list (20 prompts, e-commerce)
   ============================================================================ */
.lm-cat-grid { display:grid; gap:22px; grid-template-columns:repeat(2,1fr); max-width:980px; margin:0 auto; }
.lm-cat-grid.cols-1 { grid-template-columns:1fr; max-width:720px; }
.lm-cat { position:relative; display:flex; flex-direction:column; padding:28px; border-radius:var(--wpm-radius-lg);
  background:var(--wpm-surface-1); border:1px solid var(--wpm-border); transition:var(--wpm-transition); overflow:hidden; }
.lm-cat:hover { transform:var(--wpm-lift); box-shadow:var(--wpm-shadow-lg); border-color:var(--wpm-border-strong); }
.lm-cat-top { display:flex; align-items:center; gap:13px; margin-bottom:16px; }
.lm-cat-ico { width:44px; height:44px; border-radius:var(--wpm-radius-sm); background:var(--wpm-brand-surface); color:var(--wpm-brand-text);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.lm-cat-ico svg { width:21px; height:21px; }
.lm-cat h3 { font-family:var(--wpm-font-display); font-size:18px; line-height:1.2; letter-spacing:-0.015em; margin:0; color:var(--wpm-text-primary); }
.lm-cat-count { display:inline-block; margin-top:5px; font-family:var(--wpm-font-mono); font-size:11px; color:var(--wpm-brand-text);
  background:var(--wpm-brand-surface); padding:3px 9px; border-radius:var(--wpm-radius-pill); }
.lm-cat-desc { font-size:14px; line-height:1.6; color:var(--wpm-text-secondary); margin:0; }
.lm-cat-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
.lm-cat-list li { position:relative; padding-left:20px; font-size:13.5px; line-height:1.5; color:var(--wpm-text-secondary); }
.lm-cat-list li::before { content:""; position:absolute; left:2px; top:8px; width:6px; height:6px; border-radius:2px; background:var(--wpm-brand-400); }
.lm-total { max-width:980px; margin:30px auto 0; text-align:center; font-family:var(--wpm-font-display); font-weight:600; font-size:16px;
  letter-spacing:-0.01em; color:var(--wpm-text-primary); }
.lm-total b { color:var(--wpm-brand-text); }

/* ============================================================================
   CHECKLIST — numbered. variant 'plain' (2-col items) / 'detail' (cards)
   ============================================================================ */
.lm-clist { max-width:880px; margin:0 auto; }
.lm-clist.plain { display:grid; grid-template-columns:repeat(2,1fr); gap:12px 24px;
  background:var(--wpm-surface-1); border:1px solid var(--wpm-border); border-radius:var(--wpm-radius-lg); padding:30px 32px; }
.lm-cli { display:flex; gap:14px; align-items:flex-start; padding:9px 0; }
.lm-cli-num { flex-shrink:0; width:26px; height:26px; border-radius:50%; background:var(--wpm-brand-surface); color:var(--wpm-brand-text);
  display:flex; align-items:center; justify-content:center; font-family:var(--wpm-font-display); font-weight:700; font-size:12.5px; margin-top:1px; }
.lm-cli-txt { font-size:14.5px; line-height:1.5; color:var(--wpm-text-secondary); padding-top:2px; }
.lm-cli-txt b { color:var(--wpm-text-primary); font-weight:600; }

.lm-clist.detail { display:grid; grid-template-columns:1fr; gap:14px; }
.lm-cli-card { display:grid; grid-template-columns:48px 1fr; gap:18px; align-items:start; padding:24px 26px; border-radius:var(--wpm-radius-lg);
  background:var(--wpm-surface-1); border:1px solid var(--wpm-border); transition:var(--wpm-transition); }
.lm-cli-card:hover { border-color:var(--wpm-border-strong); box-shadow:var(--wpm-shadow-md); }
.lm-cli-card .num { width:42px; height:42px; border-radius:var(--wpm-radius-sm); background:var(--wpm-brand); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:var(--wpm-font-display); font-weight:700; font-size:16px; }
.lm-cli-card h3 { font-family:var(--wpm-font-display); font-size:17px; letter-spacing:-0.015em; margin:0 0 6px; color:var(--wpm-text-primary); }
.lm-cli-card p { font-size:14px; line-height:1.6; color:var(--wpm-text-secondary); margin:0; }
.lm-cli-card p .hl { color:var(--wpm-accent-text); font-weight:600; }

/* ============================================================================
   STEPS — numbered rich cards grid (vitesse phases, gsap reflexes, devenir)
   ============================================================================ */
.lm-steps { display:grid; gap:20px; grid-template-columns:repeat(3,1fr); max-width:1040px; margin:0 auto; }
.lm-steps.cols-2 { grid-template-columns:repeat(2,1fr); max-width:840px; }
.lm-stepcard { position:relative; display:flex; flex-direction:column; padding:28px; border-radius:var(--wpm-radius-lg);
  background:var(--wpm-surface-1); border:1px solid var(--wpm-border); transition:var(--wpm-transition); overflow:hidden; }
.lm-stepcard:hover { transform:var(--wpm-lift); box-shadow:var(--wpm-shadow-lg); border-color:var(--wpm-border-strong); }
.lm-stepcard .sc-num { font-family:var(--wpm-font-display); font-weight:700; font-size:14px; width:32px; height:32px; border-radius:var(--wpm-radius-sm);
  background:var(--wpm-brand-surface); color:var(--wpm-brand-text); display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.lm-stepcard h3 { font-family:var(--wpm-font-display); font-size:18px; line-height:1.22; letter-spacing:-0.015em; margin:0 0 10px; color:var(--wpm-text-primary); }
.lm-stepcard > p { font-size:14px; line-height:1.62; color:var(--wpm-text-secondary); margin:0; }
.lm-stepcard .sc-bul { list-style:none; padding:0; margin:14px 0 0; display:flex; flex-direction:column; gap:8px; }
.lm-stepcard .sc-bul li { position:relative; padding-left:18px; font-size:13.5px; line-height:1.5; color:var(--wpm-text-secondary); }
.lm-stepcard .sc-bul li::before { content:""; position:absolute; left:2px; top:8px; width:5px; height:5px; border-radius:50%; background:var(--wpm-brand-400); }
.lm-stepcard .sc-foot { margin-top:14px; padding-top:14px; border-top:1px solid var(--wpm-border-subtle); font-family:var(--wpm-font-mono);
  font-size:12px; color:var(--wpm-accent-text); }

/* ============================================================================
   PHASES — plan 14 jours : tag + bullets + "not needed" note
   ============================================================================ */
.lm-phasegrid { display:grid; gap:20px; grid-template-columns:repeat(3,1fr); max-width:1040px; margin:0 auto; align-items:start; }
.lm-phasecard { display:flex; flex-direction:column; padding:28px; border-radius:var(--wpm-radius-lg);
  background:var(--wpm-surface-1); border:1px solid var(--wpm-border); transition:var(--wpm-transition); }
.lm-phasecard:hover { box-shadow:var(--wpm-shadow-lg); border-color:var(--wpm-border-strong); }
.lm-phasecard .ph-tag { display:inline-flex; align-self:flex-start; align-items:center; gap:7px; font-family:var(--wpm-font-mono);
  font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--wpm-brand-text); background:var(--wpm-brand-surface);
  padding:6px 11px; border-radius:var(--wpm-radius-pill); margin-bottom:16px; }
.lm-phasecard h3 { font-family:var(--wpm-font-display); font-size:18px; letter-spacing:-0.015em; margin:0 0 16px; color:var(--wpm-text-primary); }
.lm-phasecard .ph-bul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:11px; }
.lm-phasecard .ph-bul li { display:flex; gap:11px; align-items:flex-start; font-size:14px; line-height:1.5; color:var(--wpm-text-secondary); }
.lm-phasecard .ph-bul .lm-check { width:22px; height:22px; }
.lm-phasecard .ph-bul .lm-check svg { width:12px; height:12px; }
.lm-phasecard .ph-bul em { font-style:italic; color:var(--wpm-text-primary); }
.lm-phasecard .ph-note { margin-top:18px; padding:16px 18px; border-radius:var(--wpm-radius-md); background:var(--wpm-error-bg); border:1px solid color-mix(in srgb, var(--wpm-error-text) 26%, transparent); }
.lm-phasecard .ph-note .nl { display:flex; align-items:center; gap:7px; font-family:var(--wpm-font-mono); font-size:11px; letter-spacing:.03em; color:var(--wpm-error-text); margin-bottom:9px; }
.lm-phasecard .ph-note .nl svg { width:13px; height:13px; }
.lm-phasecard .ph-note p { font-size:13px; line-height:1.55; color:var(--wpm-text-secondary); margin:0; }

/* ============================================================================
   STEPPER — horizontal 3-step "comment ça marche" (quiz, gsap utilise)
   ============================================================================ */
.lm-stepper { display:grid; gap:22px; grid-template-columns:repeat(3,1fr); max-width:1000px; margin:0 auto; counter-reset:st; }
.lm-stepper-item { position:relative; padding:30px 26px 26px; border-radius:var(--wpm-radius-lg);
  background:var(--wpm-surface-1); border:1px solid var(--wpm-border); }
.lm-stepper-item .si-num { width:46px; height:46px; border-radius:50%; background:var(--wpm-brand); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:var(--wpm-font-display); font-weight:700; font-size:19px; margin-bottom:18px; box-shadow:var(--wpm-glow-brand); }
.lm-stepper-item h3 { font-family:var(--wpm-font-display); font-size:18px; letter-spacing:-0.015em; margin:0 0 9px; color:var(--wpm-text-primary); }
.lm-stepper-item p { font-size:14px; line-height:1.62; color:var(--wpm-text-secondary); margin:0; }
.lm-stepper-item p .hl { color:var(--wpm-text-primary); font-weight:600; }
.lm-stepper-item .si-list { list-style:none; padding:0; margin:12px 0 0; display:flex; flex-direction:column; gap:7px; }
.lm-stepper-item .si-list li { position:relative; padding-left:18px; font-size:13.5px; line-height:1.5; color:var(--wpm-text-secondary); }
.lm-stepper-item .si-list li::before { content:""; position:absolute; left:2px; top:8px; width:5px; height:5px; border-radius:50%; background:var(--wpm-brand-400); }

/* ============================================================================
   FOR / AGAINST — "pour qui c'est (ou pas)" (gsap, quiz variant)
   ============================================================================ */
.lm-forwhom { display:grid; gap:22px; grid-template-columns:repeat(2,1fr); max-width:920px; margin:0 auto; align-items:start; }
.lm-forwhom.solo { grid-template-columns:1fr; max-width:620px; }
.fw-col { padding:30px 30px 32px; border-radius:var(--wpm-radius-lg); background:var(--wpm-surface-1); border:1px solid var(--wpm-border); }
.fw-col.good { border-color:color-mix(in srgb, var(--wpm-success-text) 30%, var(--wpm-border)); }
.fw-col.bad { border-color:color-mix(in srgb, var(--wpm-error-text) 24%, var(--wpm-border)); }
.fw-label { display:flex; align-items:center; gap:9px; font-family:var(--wpm-font-display); font-weight:600; font-size:16px; letter-spacing:-0.01em; margin-bottom:20px; color:var(--wpm-text-primary); }
.fw-label .ic { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.fw-label .ic svg { width:16px; height:16px; stroke-width:2.6; }
.fw-col.good .fw-label .ic { background:var(--wpm-success-bg); color:var(--wpm-success-text); }
.fw-col.bad .fw-label .ic { background:var(--wpm-error-bg); color:var(--wpm-error-text); }
.fw-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:14px; }
.fw-item { display:flex; gap:12px; align-items:flex-start; font-size:14.5px; line-height:1.55; color:var(--wpm-text-secondary); }
.fw-item .fi { flex-shrink:0; width:20px; height:20px; margin-top:1px; }
.fw-item .fi svg { width:20px; height:20px; stroke-width:2.4; }
.fw-col.good .fw-item .fi { color:var(--wpm-success-text); }
.fw-col.bad .fw-item .fi { color:var(--wpm-error-text); }

/* ============================================================================
   TIMELINE TABLE — devenir freelance (période → objectif)
   ============================================================================ */
.lm-ttable { max-width:780px; margin:34px auto 0; border:1px solid var(--wpm-border); border-radius:var(--wpm-radius-lg); overflow:hidden; background:var(--wpm-surface-1); }
.lm-ttable .tt-cap { display:flex; align-items:center; gap:9px; padding:18px 26px; border-bottom:1px solid var(--wpm-border); font-family:var(--wpm-font-display); font-weight:600; font-size:15px; letter-spacing:-0.01em; color:var(--wpm-text-primary); background:var(--wpm-surface-2); }
.lm-ttable .tt-cap svg { width:17px; height:17px; color:var(--wpm-brand-text); }
.lm-ttrow { display:grid; grid-template-columns:0.5fr 1fr; gap:24px; align-items:center; padding:16px 26px; border-bottom:1px solid var(--wpm-border-subtle); }
.lm-ttrow:last-child { border-bottom:none; }
.lm-ttrow .per { font-family:var(--wpm-font-mono); font-size:13px; color:var(--wpm-brand-text); font-weight:500; }
.lm-ttrow .obj { font-size:14.5px; line-height:1.5; color:var(--wpm-text-secondary); }

/* ============================================================================
   CALLOUT — closing tip / result note (reuse .lm-rule look, accent variant)
   ============================================================================ */
.lm-callout { max-width:860px; margin:0 auto; position:relative; overflow:hidden; border-radius:var(--wpm-radius-lg);
  border:1px solid var(--wpm-brand); background:var(--wpm-surface-1); box-shadow:var(--wpm-glow-brand); padding:34px 38px; }
.lm-callout.accent { border-color:color-mix(in srgb, var(--wpm-accent-warm) 60%, var(--wpm-border)); box-shadow:var(--wpm-glow-peach); }
.lm-callout::before { content:""; position:absolute; width:300px; height:300px; right:-110px; top:-130px; border-radius:50%;
  background:radial-gradient(circle, rgba(83,58,253,.26), transparent 64%); filter:blur(70px); pointer-events:none; }
.lm-callout.accent::before { background:radial-gradient(circle, rgba(255,138,101,.24), transparent 64%); }
.lm-callout .co-label { position:relative; z-index:1; display:inline-flex; align-items:center; gap:8px; font-family:var(--wpm-font-display);
  font-weight:700; font-size:14px; letter-spacing:-0.01em; color:var(--wpm-brand-text); margin-bottom:13px; }
.lm-callout.accent .co-label { color:var(--wpm-accent-text); }
.lm-callout .co-label svg { width:18px; height:18px; }
.lm-callout p { position:relative; z-index:1; font-size:16px; line-height:1.7; color:var(--wpm-text-secondary); margin:0; max-width:64ch; font-style:italic; }
.lm-callout p strong { color:var(--wpm-text-primary); font-weight:600; font-style:normal; }

/* featured bridge card badge — data-driven (coaching vs guide vs soon) */
.lm-bridge .bridge-card.featured::after { content:attr(data-badge); }

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media (max-width:980px){
  .lm-cat-grid { grid-template-columns:1fr; }
  .lm-steps, .lm-steps.cols-2 { grid-template-columns:1fr; }
  .lm-phasegrid { grid-template-columns:1fr; }
  .lm-stepper { grid-template-columns:1fr; }
  .lm-forwhom { grid-template-columns:1fr; }
}
@media (max-width:680px){
  .lm-clist.plain { grid-template-columns:1fr; padding:24px; }
  .lm-cli-card { grid-template-columns:1fr; gap:12px; }
  .lm-ttrow { grid-template-columns:1fr; gap:4px; padding:14px 20px; }
}
