/* =====================================================================
   lechmagdalena.pl — design tokens + components (home page)
   Mobile-first. Layout responds to the page container (.lm-page),
   so the same markup renders at 375 / 768 / 1440 px.
   In WordPress: swap `@container lm (...)` for `@media (...)`.
   ===================================================================== */

/* ---------- 1. Tokens ---------- */
.lm-page {
  /* colour — cream/gold identity, contrast values vs --c-bg */
  --c-bg: #F9F2E7;          /* krem (z obecnej tożsamości) */
  --c-surface: #FDFAF5;     /* karty */
  --c-sand: #F1E7D7;        /* sekcje naprzemienne */
  --c-sand-2: #EADCC6;      /* placeholdery, akcenty tła */
  --c-ink: #2B2A29;         /* tekst — kolor napisu z logo, 12.9:1 */
  --c-ink-soft: #5E574E;    /* tekst pomocniczy, 6.4:1 */
  --c-bronze: #7A5316;      /* linki / akcent tekstowy, 6.1:1 */
  --c-gold: #B8893A;        /* tylko dekoracja i linie */
  --c-gold-hi: #E3B665;     /* akcent na ciemnym tle, 8.3:1 */
  --c-espresso: #272320;    /* stopka, przycisk główny */
  --c-on-dark: #F9F2E7;
  --c-on-dark-soft: #BDB09C;/* 7.3:1 na espresso */
  --c-line: rgba(122, 83, 22, .22);
  --c-line-strong: rgba(122, 83, 22, .45);
  --g-gold: linear-gradient(90deg, #986A1F 0%, #FAB855 50%, #986A1F 100%);

  /* type */
  --f-serif: "Newsreader", "Iowan Old Style", Georgia, serif;
  --f-sans: "Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;

  /* spacing (8-pt) */
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px;
  --s-6: 32px; --s-7: 48px; --s-8: 64px; --s-9: 96px; --s-10: 128px;
  --gutter: 20px;
  --section-y: 72px;
  --radius: 2px;
  --shadow: 0 1px 2px rgba(39,35,32,.04), 0 12px 32px -12px rgba(39,35,32,.12);

  container: lm / inline-size;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  background: var(--c-bg);
  color: var(--c-ink);
  font-family: var(--f-sans);
  font-size: 17px;
  line-height: 1.65;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
:where(.lm-page) *, :where(.lm-page) *::before, :where(.lm-page) *::after { box-sizing: border-box; }
:where(.lm-page) img, :where(.lm-page) svg { display: block; max-width: 100%; }
:where(.lm-page) :is(p, h1, h2, h3, h4, ul, ol, figure, blockquote, dl, dd) { margin: 0; padding: 0; }
:where(.lm-page) :is(ul, ol) { list-style: none; }
:where(.lm-page) a { color: inherit; text-decoration: none; }
:where(.lm-page) :focus-visible { outline: 2px solid var(--c-bronze); outline-offset: 3px; border-radius: 1px; }
:where(.lm-page .lm-dark, .lm-page .lm-footer) :focus-visible { outline-color: var(--c-gold-hi); }
:where(.lm-page) ::selection { background: #F3D9A8; color: var(--c-ink); }
.lm-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@container lm (min-width: 700px) {
  .lm-wrap { --gutter: 40px; }
  .lm-section { --section-y: 104px; }
}
@container lm (min-width: 1100px) {
  .lm-wrap { --gutter: 80px; }
  .lm-section { --section-y: 136px; }
}

/* ---------- 2. Layout primitives ---------- */
.lm-wrap { width: 100%; max-width: 1440px; margin: 0 auto; padding-inline: var(--gutter); }
.lm-section { position: relative; padding-block: var(--section-y); }
.lm-section--sand { background: var(--c-sand); }
.lm-section--surface { background: var(--c-surface); }
.lm-section--tight { padding-block: calc(var(--section-y) * .6); }
.lm-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 16px; }
@container lm (min-width: 700px) { .lm-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); column-gap: 24px; } }
@container lm (min-width: 1100px) { .lm-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; } }

/* ---------- 3. Typography ---------- */
.lm-h1, .lm-h2, .lm-h3, .lm-display {
  font-family: var(--f-serif); font-weight: 300; color: var(--c-ink);
  letter-spacing: -0.015em; text-wrap: balance;
  font-optical-sizing: auto;
}
.lm-h1 { font-size: 42px; line-height: 1.04; letter-spacing: -0.025em; }
.lm-h2 { font-size: 36px; line-height: 1.08; }
.lm-h3 { font-size: 24px; line-height: 1.2; font-weight: 400; letter-spacing: -0.01em; }
.lm-h1 em, .lm-h2 em { font-style: italic; font-weight: 300; color: var(--c-bronze); }
.lm-lead { font-size: 18px; line-height: 1.6; color: var(--c-ink-soft); text-wrap: pretty; max-width: 36em; }
.lm-body { color: var(--c-ink-soft); text-wrap: pretty; }
.lm-small { font-size: 15px; line-height: 1.55; color: var(--c-ink-soft); }
@container lm (min-width: 700px) {
  .lm-h1 { font-size: 56px; }
  .lm-h2 { font-size: 46px; }
  .lm-h3 { font-size: 26px; }
  .lm-lead { font-size: 19px; }
}
@container lm (min-width: 1100px) {
  .lm-page > * { font-size: 18px; }
  .lm-h1 { font-size: 80px; line-height: 1.0; }
  .lm-h2 { font-size: 58px; line-height: 1.04; }
  .lm-h3 { font-size: 28px; }
  .lm-lead { font-size: 20px; }
}

/* kicker: "01 ——— Diagnoza" */
.lm-kicker {
  display: flex; align-items: center; gap: 14px;
  font-family: var(--f-sans); font-size: 13px; line-height: 1; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase; color: var(--c-bronze);
}
.lm-kicker::before { content: ""; width: 40px; height: 1px; background: var(--g-gold); flex: none; order: 1; }
.lm-kicker__num { order: 0; font-family: var(--f-serif); font-size: 15px; letter-spacing: .04em; font-weight: 400; font-style: italic; }
.lm-kicker__txt { order: 2; }
.lm-kicker--plain::before { order: 0; }

.lm-sechead { display: flex; flex-direction: column; gap: 20px; margin-bottom: 40px; }
@container lm (min-width: 1100px) { .lm-sechead { gap: 28px; margin-bottom: 64px; } }
.lm-sechead--row > :first-child { display: flex; flex-direction: column; gap: 20px; }
.lm-sechead--row > .lm-link { align-self: flex-start; }
@container lm (min-width: 1100px) {
  .lm-sechead--row { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 64px; }
  .lm-sechead--row > :first-child { gap: 28px; }
  .lm-sechead--row > .lm-link { align-self: flex-end; }
}

/* ---------- 4. Links & buttons ---------- */
.lm-link {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px;
  font-weight: 600; font-size: 16px; color: var(--c-bronze);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 7px; text-decoration-color: currentColor;
  transition: color .2s ease, text-decoration-color .3s ease;
}
.lm-steps__foot > .lm-link, .lm-diag__intro .lm-link, .lm-faqwrap__aside .lm-link { align-self: flex-start; }
.lm-link:hover { color: var(--c-ink); text-decoration-color: transparent; }
.lm-link .lm-ico { transition: transform .3s ease; }
.lm-link:hover .lm-ico { transform: translateX(4px); }
.lm-link--dark { color: var(--c-gold-hi); }
.lm-link--dark:hover { color: var(--c-on-dark); }

.lm-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 52px; padding: 0 28px; border-radius: var(--radius);
  font-family: var(--f-sans); font-size: 16px; font-weight: 600; letter-spacing: .01em; line-height: 1;
  border: 1px solid transparent; cursor: pointer; white-space: nowrap;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.lm-btn--primary { background: var(--c-espresso); color: var(--c-on-dark); }
.lm-btn--primary:hover { background: var(--c-bronze); }
.lm-btn--secondary { background: transparent; color: var(--c-ink); border-color: var(--c-ink); }
.lm-btn--secondary:hover { background: var(--c-ink); color: var(--c-on-dark); }
.lm-btn--light { background: var(--c-on-dark); color: var(--c-ink); }
.lm-btn--light:hover { background: var(--c-gold-hi); }
.lm-btn--outline-light { color: var(--c-on-dark); border-color: rgba(249,242,231,.55); }
.lm-btn--outline-light:hover { border-color: var(--c-on-dark); background: rgba(249,242,231,.08); }
.lm-btn--sm { min-height: 44px; padding: 0 20px; font-size: 15px; }
.lm-btn[disabled], .lm-btn.is-disabled { background: var(--c-sand-2); color: #6E665B; border-color: transparent; cursor: not-allowed; }
.lm-btn.is-focus { outline: 2px solid var(--c-bronze); outline-offset: 3px; }
.lm-btns { display: flex; flex-direction: column; gap: 12px; }
.lm-btns .lm-btn { width: 100%; }
@container lm (min-width: 700px) {
  .lm-btns { flex-direction: row; flex-wrap: wrap; gap: 16px; }
  .lm-btns .lm-btn { width: auto; }
}

.lm-ico { width: 20px; height: 20px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.lm-ico--sm { width: 16px; height: 16px; }

.lm-tag {
  display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px;
  border: 1px solid var(--c-line-strong); border-radius: 999px;
  font-size: 13px; font-weight: 500; letter-spacing: .02em; color: var(--c-ink-soft);
}
.lm-tags { display: flex; flex-wrap: wrap; gap: 8px; }

/* ---------- 5. Placeholder (for photos to come) ---------- */
.lm-ph {
  position: relative; display: flex; align-items: flex-end; justify-content: flex-start;
  background:
    repeating-linear-gradient(135deg, rgba(122,83,22,.05) 0 1px, transparent 1px 14px),
    var(--c-sand-2);
  color: var(--c-ink-soft); overflow: hidden;
}
.lm-ph::after { content: ""; position: absolute; inset: 12px; border: 1px solid rgba(122,83,22,.28); border-radius: inherit; pointer-events: none; }
.lm-ph__label {
  position: relative; z-index: 1; margin: 24px; display: flex; align-items: center; gap: 10px;
  font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #6A5A43;
  background: rgba(253,250,245,.8); padding: 8px 12px; border-radius: 2px;
}
.lm-ph__mark { position: absolute; inset: 0; margin: auto; width: 46%; opacity: .16; }

/* ---------- 6. Ornaments (fragments of the tree mark) ---------- */
.lm-orn { position: absolute; pointer-events: none; user-select: none; }
.lm-orn img { width: 100%; height: auto; }

/* ---------- 6b. Tree watermarks (subtle, decorative) ---------- */
.lm-section { overflow: clip; }
.lm-section > .lm-wrap { position: relative; z-index: 1; }
.lm-tree { position: absolute; z-index: 0; pointer-events: none; user-select: none; opacity: .13; }
.lm-tree img { width: 100%; height: auto; }
.lm-tree--flip img { transform: scaleX(-1); }
.lm-tree--diag  { width: 300px; right: -90px; bottom: -50px; opacity: .1; }
.lm-tree--ther  { width: 230px; right: -70px; bottom: -40px; }
.lm-tree--rev   { width: 340px; left: 50%; top: 50%; transform: translate(-50%, -50%); opacity: .1; }
.lm-tree--faq   { width: 280px; right: -100px; bottom: -60px; }
@container lm (min-width: 700px) {
  .lm-tree--diag  { width: 440px; right: auto; left: -120px; bottom: -70px; }
  .lm-tree--ther  { width: 320px; right: -80px; bottom: -50px; }
  .lm-tree--rev   { width: 620px; }
  .lm-tree--faq   { width: 420px; right: -130px; bottom: -80px; }
}
@container lm (min-width: 1100px) {
  .lm-tree--diag  { width: 620px; left: -140px; bottom: -80px; }
  .lm-tree--ther  { width: 420px; right: auto; left: 40px; bottom: -40px; }
  .lm-tree--rev   { width: 760px; }
  .lm-tree--faq   { width: 600px; right: -160px; bottom: -110px; }
}

/* ---------- 7. Top bar ---------- */
.lm-topbar { display: none; background: var(--c-sand); border-bottom: 1px solid var(--c-line); font-size: 14px; color: var(--c-ink-soft); }
.lm-topbar__in { display: flex; align-items: center; justify-content: space-between; min-height: 44px; }
.lm-topbar__list { display: flex; align-items: center; gap: 28px; }
.lm-topbar__item { display: inline-flex; align-items: center; gap: 8px; }
.lm-topbar__item .lm-ico { color: var(--c-bronze); }
.lm-topbar a { min-height: 44px; }
.lm-topbar a:hover { color: var(--c-ink); text-decoration: underline; text-underline-offset: 3px; }
.lm-topbar__phone { font-weight: 600; color: var(--c-ink); }
@container lm (min-width: 1100px) { .lm-topbar { display: block; } }

/* ---------- 8. Header ---------- */
.lm-header { position: relative; z-index: 5; background: var(--c-bg); border-bottom: 1px solid transparent; }
.lm-header__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 72px; }
.lm-header__logo { display: block; flex: none; }
.lm-header__logo img { height: 44px; width: auto; }
.lm-header__nav { display: none; }
.lm-header__actions { display: flex; align-items: center; gap: 8px; }
.lm-header__tel { display: none; }
.lm-header__cta { display: none; }
.lm-menu-btn {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px; min-width: 44px; padding: 0 14px;
  background: transparent; border: 1px solid var(--c-line-strong); border-radius: 999px; color: var(--c-ink);
  font: 600 15px/1 var(--f-sans); cursor: pointer;
}
.lm-menu-btn__bars { display: grid; gap: 5px; width: 18px; }
.lm-menu-btn__bars span { display: block; height: 1.5px; background: currentColor; }
.lm-icon-btn {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
  border-radius: 999px; border: 1px solid var(--c-line-strong); color: var(--c-ink);
}
@container lm (min-width: 700px) {
  .lm-header__in { min-height: 88px; }
  .lm-header__logo img { height: 52px; }
  .lm-header__cta { display: inline-flex; }
  .lm-icon-btn--tel { display: none; }
  .lm-header__tel { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 600; font-size: 16px; }
  .lm-header__tel .lm-ico { color: var(--c-bronze); }
}
@container lm (min-width: 1100px) {
  .lm-header__in { min-height: 112px; gap: 32px; }
  .lm-header__logo img { height: 60px; }
  .lm-header__nav { display: block; }
  .lm-menu-btn { display: none; }
  .lm-header__tel { display: none; }
}
.lm-nav { display: flex; align-items: center; gap: 4px; }
.lm-nav__link {
  position: relative; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px;
  font-size: 16px; font-weight: 500; color: var(--c-ink); background: none; border: 0; cursor: pointer; font-family: inherit;
}
.lm-nav__link::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 8px; height: 1px; background: var(--g-gold); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.lm-nav__link:hover::after, .lm-nav__link[aria-expanded="true"]::after, .lm-nav__link.is-current::after { transform: scaleX(1); }
.lm-nav__link .lm-ico { width: 14px; height: 14px; transition: transform .25s ease; }
.lm-nav__link[aria-expanded="true"] .lm-ico { transform: rotate(180deg); }

/* compact (after scroll) */
.lm-header--compact { background: rgba(249,242,231,.94); border-bottom-color: var(--c-line); box-shadow: 0 8px 24px -18px rgba(39,35,32,.35); }
.lm-header--compact .lm-header__in { min-height: 64px; }
.lm-header--compact .lm-header__logo img { height: 22px; }
@container lm (min-width: 700px) {
  .lm-header--compact .lm-header__in { min-height: 72px; }
  .lm-header--compact .lm-header__logo img { height: 26px; }
}
@container lm (min-width: 1100px) {
  .lm-header--compact .lm-header__in { min-height: 76px; }
  .lm-header--compact .lm-header__tel { display: inline-flex; }
}

/* mega panel */
.lm-mega { position: relative; background: var(--c-surface); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); box-shadow: 0 30px 60px -30px rgba(39,35,32,.25); }
.lm-mega__in { display: grid; grid-template-columns: 4fr 8fr; gap: 64px; padding-block: 48px 56px; }
.lm-mega__intro { display: flex; flex-direction: column; gap: 20px; padding-right: 24px; border-right: 1px solid var(--c-line); }
.lm-mega__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; row-gap: 4px; }
.lm-mega__item { display: flex; flex-direction: column; gap: 4px; padding: 16px 16px 16px 0; border-bottom: 1px solid var(--c-line); }
.lm-mega__item strong { font-family: var(--f-serif); font-weight: 400; font-size: 22px; line-height: 1.25; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.lm-mega__item span { font-size: 15px; line-height: 1.5; color: var(--c-ink-soft); }
.lm-mega__item:hover strong { color: var(--c-bronze); }

/* ---------- 9. Hero ---------- */
.lm-hero { position: relative; padding-block: 32px 72px; }
.lm-hero__in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px; align-items: center; }
.lm-hero__copy { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 24px; }
.lm-hero__sub { font-size: 18px; line-height: 1.6; color: var(--c-ink-soft); max-width: 30em; text-wrap: pretty; }
.lm-hero__where { display: flex; align-items: center; gap: 10px; font-size: 15px; color: var(--c-ink-soft); padding-top: 8px; }
.lm-hero__where .lm-ico { color: var(--c-bronze); }
.lm-hero__visual { position: relative; justify-self: center; width: 100%; max-width: 340px; aspect-ratio: 628 / 860; }
.lm-hero__panel { position: absolute; z-index: 0; left: -16%; top: 16%; width: 76%; height: 100%; background: var(--c-sand); }
.lm-hero__frame { position: absolute; inset: 0; z-index: 1; border: 1px solid var(--c-gold); transform: translate(10px, -10px); }
@container lm (min-width: 700px) { .lm-hero__frame { transform: translate(16px, -16px); } }
.lm-hero__photo { position: absolute; inset: 0; z-index: 2; overflow: hidden; background: var(--c-sand-2); box-shadow: 0 30px 60px -40px rgba(39,35,32,.45); }
.lm-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.lm-hero__badge { position: absolute; z-index: 3; left: -18px; bottom: 36px; width: 112px; height: 112px; }
.lm-hero__caption { position: absolute; z-index: 3; right: 0; bottom: -62px; font-size: 13px; letter-spacing: .06em; color: var(--c-ink-soft); text-align: right; }
.lm-hero__caption strong { display: block; font-family: var(--f-serif); font-style: italic; font-weight: 400; font-size: 17px; letter-spacing: 0; color: var(--c-ink); }
@container lm (min-width: 700px) {
  .lm-hero { padding-block: 40px 104px; }
  .lm-hero__in { grid-template-columns: 3fr 2fr; gap: 32px; }
  .lm-hero__in > * { min-width: 0; }
  .lm-hero .lm-h1 { font-size: 46px; }
  .lm-hero__visual { max-width: none; }
  .lm-hero__badge { width: 124px; height: 124px; left: -40px; }
}
@container lm (min-width: 1100px) {
  .lm-hero { padding-block: 56px 136px; }
  .lm-hero__in { grid-template-columns: 7fr 5fr; gap: 72px; }
  .lm-hero .lm-h1 { font-size: 80px; }
  .lm-hero__copy { gap: 32px; }
  .lm-hero__sub { font-size: 21px; }
  .lm-hero__visual { max-width: 460px; justify-self: end; margin-right: 24px; }
  .lm-hero__badge { width: 150px; height: 150px; left: -76px; bottom: 64px; }
}
.lm-badge { position: relative; width: 100%; height: 100%; border-radius: 50%; background: var(--c-surface); box-shadow: var(--shadow); display: grid; place-items: center; }
.lm-badge__ring { position: absolute; inset: 0; width: 100%; height: 100%; }
.lm-badge__ring text { font-family: var(--f-sans); font-size: 9.6px; font-weight: 600; letter-spacing: 2.6px; fill: var(--c-bronze); text-transform: uppercase; }
.lm-badge__mark { width: 42%; }

/* ---------- 10. Trust bar ---------- */
.lm-trust { border-block: 1px solid var(--c-line); background: var(--c-bg); }
.lm-trust__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lm-trust__item { display: flex; align-items: center; gap: 12px; padding: 18px 0; border-top: 1px solid var(--c-line); grid-column: 1 / -1; }
.lm-trust__item--num { grid-column: auto; order: -1; border-top: 0; flex-wrap: wrap; row-gap: 2px; }
.lm-trust__item--num + .lm-trust__item--num { padding-left: 16px; border-left: 1px solid var(--c-line); }
.lm-trust__item:last-child { order: -1; grid-column: auto; border-top: 0; padding-left: 16px; border-left: 1px solid var(--c-line); }
.lm-trust__big { font-family: var(--f-serif); font-weight: 300; font-size: 44px; line-height: 1; color: var(--c-ink); letter-spacing: -0.03em; }
.lm-trust__lbl { display: flex; flex-direction: column; gap: 2px; font-size: 14px; line-height: 1.3; color: var(--c-ink-soft); }
.lm-trust__txt { font-family: var(--f-serif); font-size: 19px; line-height: 1.3; color: var(--c-ink); }
.lm-trust__stars { display: flex; gap: 2px; color: #986A1F; }
.lm-trust__stars svg { width: 14px; height: 14px; fill: currentColor; }
@container lm (min-width: 700px) {
  .lm-trust__list { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .lm-trust__item { grid-column: span 2; padding: 22px 20px; border-left: 1px solid var(--c-line); }
  .lm-trust__item:nth-child(2) { border-left: 0; padding-left: 0; }
  .lm-trust__item--num, .lm-trust__item:last-child { grid-column: span 3; padding: 22px 0; border-left: 0; }
  .lm-trust__item:last-child { padding-left: 24px; border-left: 1px solid var(--c-line); }
  .lm-trust__txt { font-size: 18px; }
}
@container lm (min-width: 1100px) {
  .lm-trust__list { grid-template-columns: auto 1fr 1fr 1.25fr auto; }
  .lm-trust__item, .lm-trust__item--num, .lm-trust__item:last-child, .lm-trust__item:nth-child(2) { order: 0; grid-column: auto; border-top: 0; padding: 30px 32px; border-left: 1px solid var(--c-line); }
  .lm-trust__item:first-child { padding-left: 0; border-left: 0; }
  .lm-trust__item:last-child { padding-right: 0; }
  .lm-trust__big { font-size: 52px; }
  .lm-trust__txt { font-size: 20px; }
}

/* ---------- 11. Path cards (Z czym przychodzisz?) ---------- */
.lm-paths { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.lm-path {
  position: relative; display: flex; flex-direction: column; background: var(--c-surface);
  border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden;
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.lm-path:hover { border-color: var(--c-line-strong); box-shadow: var(--shadow); }
.lm-path__art { position: relative; aspect-ratio: 16 / 9; background: var(--c-sand); border-bottom: 1px solid var(--c-line); overflow: hidden; }
.lm-path__art--fade img { -webkit-mask-image: linear-gradient(to bottom, transparent 8%, #000 48%); mask-image: linear-gradient(to bottom, transparent 8%, #000 48%); }
.lm-path__art img { position: absolute; left: 50%; bottom: -2px; transform: translateX(-50%); height: 88%; width: auto; opacity: .9; }
.lm-path__art--img { background: transparent; border-bottom: 0; }
.lm-path__art--img img { -webkit-mask-image: linear-gradient(to bottom, #000 78%, transparent 100%); mask-image: linear-gradient(to bottom, #000 78%, transparent 100%); left: 0; top: 0; bottom: auto; width: 100%; height: 100%; transform: none; object-fit: cover; opacity: 1; transition: transform .6s ease; }
@media (prefers-reduced-motion: no-preference) { .lm-path:hover .lm-path__art--img img { transform: scale(1.03); } }
.lm-path__num { font-family: var(--f-serif); font-style: italic; font-size: 15px; line-height: 1; color: var(--c-bronze); }
.lm-path__body { display: flex; flex-direction: column; gap: 16px; padding: 28px 24px 24px; flex: 1; }
.lm-path__list { display: flex; flex-direction: column; font-size: 15.5px; color: var(--c-ink-soft); }
.lm-path__list li { padding: 9px 0; border-top: 1px solid var(--c-line); }
.lm-path__list li:first-child { border-top: 0; }
.lm-path__foot { margin-top: auto; padding-top: 8px; }
@container lm (min-width: 700px) {
  .lm-paths { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .lm-path__body { padding: 28px 20px 24px; }
}
@container lm (min-width: 1100px) {
  .lm-paths { gap: 24px; }
  .lm-path__body { padding: 36px 36px 32px; gap: 20px; }
}

/* ---------- 12. Service cards (Diagnoza) ---------- */
.lm-diag { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
.lm-diag__intro { display: flex; flex-direction: column; gap: 24px; }
.lm-diag__quote { font-family: var(--f-serif); font-style: italic; font-weight: 300; font-size: 22px; line-height: 1.4; color: var(--c-ink); padding-left: 20px; border-left: 1px solid var(--c-gold); }
.lm-cards { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--c-line); }
.lm-card {
  position: relative; display: flex; flex-direction: column; gap: 14px; padding: 28px 0 28px;
  border-bottom: 1px solid var(--c-line); transition: background-color .3s ease;
}
.lm-card__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.lm-card__arrow { flex: none; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--c-line-strong); display: grid; place-items: center; color: var(--c-ink); transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
.lm-card:hover .lm-card__arrow { background: var(--c-espresso); color: var(--c-on-dark); border-color: var(--c-espresso); }
.lm-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; font-size: 15px; color: var(--c-ink-soft); }
.lm-card__meta strong { color: var(--c-ink); font-weight: 600; }
.lm-card__tool { font-size: 13.5px; color: var(--c-ink-soft); letter-spacing: .01em; }
.lm-card__price { font-family: var(--f-serif); font-size: 22px; color: var(--c-ink); font-weight: 400; }
@container lm (min-width: 700px) {
  .lm-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 0; }
  .lm-card { padding: 32px 32px 32px 0; }
  .lm-card:nth-child(2n) { padding: 32px 0 32px 32px; border-left: 1px solid var(--c-line); }
}
@container lm (min-width: 1100px) {
  .lm-diag { grid-template-columns: 4fr 8fr; gap: 80px; align-items: start; }
  .lm-diag__intro { position: sticky; top: 120px; gap: 28px; }
  .lm-card { padding: 40px 40px 40px 0; gap: 16px; }
  .lm-card:nth-child(2n) { padding: 40px 0 40px 40px; }
}

/* ---------- 13. Therapy list ---------- */
.lm-ther { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; position: relative; z-index: 1; }
.lm-ther__intro { display: flex; flex-direction: column; gap: 24px; }
.lm-ther__facts { display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 15px; color: var(--c-ink-soft); padding-top: 8px; }
.lm-ther__facts span { display: inline-flex; align-items: center; gap: 8px; }
.lm-ther__facts .lm-ico { color: var(--c-bronze); }
.lm-rows { border-top: 1px solid var(--c-line-strong); counter-reset: row; }
.lm-row {
  display: grid; grid-template-columns: 36px minmax(0, 1fr) 24px; align-items: center; gap: 12px;
  min-height: 60px; padding: 14px 0; border-bottom: 1px solid var(--c-line);
  font-family: var(--f-serif); font-size: 20px; line-height: 1.25; color: var(--c-ink);
  transition: color .25s ease, padding-left .35s ease;
}
.lm-row::before { counter-increment: row; content: counter(row, decimal-leading-zero); font-family: var(--f-sans); font-size: 12px; font-weight: 600; letter-spacing: .1em; color: var(--c-bronze); }
.lm-row .lm-ico { color: var(--c-bronze); opacity: .7; transition: transform .3s ease, opacity .3s ease; }
.lm-row:hover { color: var(--c-bronze); padding-left: 8px; }
.lm-row:hover .lm-ico { transform: translateX(4px); opacity: 1; }
@container lm (min-width: 700px) {
  .lm-row { font-size: 23px; min-height: 68px; grid-template-columns: 48px minmax(0, 1fr) 24px; }
}
@container lm (min-width: 1100px) {
  .lm-ther { grid-template-columns: 5fr 7fr; gap: 96px; align-items: start; }
  .lm-row { font-size: 27px; min-height: 76px; grid-template-columns: 64px minmax(0, 1fr) 24px; }
  .lm-ther__intro { position: sticky; top: 120px; }
}

/* ---------- 14. Feature pair (EEG / Szkolenia) ---------- */
.lm-pair { display: grid; grid-template-columns: minmax(0, 1fr); gap: 56px; }
.lm-feature { display: flex; flex-direction: column; gap: 20px; }
.lm-feature__media { aspect-ratio: 4 / 3; border-radius: var(--radius); }
.lm-feature__media--tall { aspect-ratio: 4 / 5; }
.lm-feature__body { display: flex; flex-direction: column; gap: 16px; }
@container lm (min-width: 700px) {
  .lm-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
  .lm-feature .lm-h2 { font-size: 36px; }
}
@container lm (min-width: 1100px) {
  .lm-pair { gap: 24px; grid-template-columns: 6fr 5fr; align-items: end; }
  .lm-feature:nth-child(2) { padding-left: 72px; }
  .lm-feature { gap: 28px; }
  .lm-feature .lm-h2 { font-size: 52px; }
  .lm-feature__body { gap: 18px; max-width: 34em; }
}

/* ---------- 15. About ---------- */
.lm-about__quote { position: relative; text-align: center; padding-block: 8px 56px; }
.lm-about__quote blockquote { position: relative; z-index: 1; font-family: var(--f-serif); font-style: italic; font-weight: 300; font-size: 28px; line-height: 1.22; letter-spacing: -0.01em; color: var(--c-ink); max-width: 18em; margin: 0 auto; text-wrap: balance; }
.lm-about__quote blockquote::before { content: "„"; display: block; font-style: normal; font-size: 64px; line-height: .6; color: var(--c-gold); margin-bottom: 12px; }
.lm-about__face { top: 50%; width: 64px; opacity: .45; transform: translateY(-50%); -webkit-mask-image: linear-gradient(to bottom, transparent 5%, #000 40%, #000 80%, transparent 100%); mask-image: linear-gradient(to bottom, transparent 5%, #000 40%, #000 80%, transparent 100%); }
.lm-about__face--l { left: -22px; }
.lm-about__face--r { right: -22px; }
.lm-about__main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: center; }
.lm-about__media { position: relative; }
.lm-about__media::before { content: ""; position: absolute; inset: 0; border: 1px solid var(--c-gold); transform: translate(-16px, 16px); }
.lm-about__photo { position: relative; z-index: 1; aspect-ratio: 4 / 5; }
.lm-about__body { display: flex; flex-direction: column; gap: 22px; }
.lm-about__sig { display: flex; flex-direction: column; gap: 2px; padding-top: 8px; }
.lm-about__sig strong { font-family: var(--f-serif); font-weight: 400; font-size: 22px; }
.lm-about__sig span { font-size: 14.5px; color: var(--c-ink-soft); }
@container lm (min-width: 700px) {
  .lm-about__quote blockquote { font-size: 38px; }
  .lm-about__face { width: 96px; opacity: .45; }
  .lm-about__face--l { left: -40px; } .lm-about__face--r { right: -40px; }
  .lm-about__main { grid-template-columns: 5fr 7fr; gap: 48px; }
}
@container lm (min-width: 1100px) {
  .lm-about__quote { padding-block: 24px 112px; }
  .lm-about__quote blockquote { font-size: 54px; line-height: 1.14; max-width: 16em; }
  .lm-about__face { width: 170px; opacity: .45; }
  .lm-about__face--l { left: 40px; } .lm-about__face--r { right: 40px; }
  .lm-about__main { grid-template-columns: 5fr 6fr; gap: 120px; padding-inline: 64px; }
  .lm-about__body { gap: 26px; }
}

/* ---------- 16. Steps (Jak zacząć) ---------- */
.lm-steps { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; counter-reset: step; }
.lm-step { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); align-content: start; gap: 4px 16px; padding: 0 0 36px; }
.lm-step::before {
  counter-increment: step; content: "0" counter(step);
  grid-row: 1 / span 2; font-family: var(--f-serif); font-weight: 300; font-size: 40px; line-height: 1; color: var(--c-bronze); letter-spacing: -0.02em;
}
.lm-step::after { content: ""; position: absolute; left: 22px; top: 54px; bottom: 8px; width: 1px; background: linear-gradient(var(--c-gold), rgba(184,137,58,.15)); }
.lm-step:last-child::after { display: none; }
.lm-step__dot { display: none; }
.lm-steps__foot { display: flex; flex-direction: column; gap: 20px; margin-top: 16px; }
@container lm (min-width: 700px) {
  .lm-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; padding-top: 28px; }
  .lm-steps::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: var(--g-gold); opacity: .8; }
  .lm-step { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 0; }
  .lm-step::before { grid-row: auto; font-size: 64px; }
  .lm-step::after { display: none; }
  .lm-step__dot { display: block; position: absolute; top: -34px; left: 0; width: 13px; height: 13px; border-radius: 50%; background: var(--c-bg); border: 1px solid var(--c-gold); }
  .lm-step__dot::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--c-gold); }
  .lm-steps__foot { flex-direction: row; align-items: center; justify-content: space-between; margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--c-line); }
}
@container lm (min-width: 1100px) {
  .lm-steps { gap: 64px; padding-top: 36px; }
  .lm-step::before { font-size: 88px; }
  .lm-step__dot { top: -42px; }
}

/* ---------- 17. Prices ---------- */
.lm-prices { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
.lm-prices__panel { background: var(--c-surface); border: 1px solid var(--c-line); padding: 8px 20px; }
.lm-price { display: flex; align-items: baseline; gap: 12px; padding: 20px 0; border-bottom: 1px solid var(--c-line); }
.lm-price:last-child { border-bottom: 0; }
.lm-price__name { flex: 1; display: flex; align-items: baseline; font-family: var(--f-serif); font-size: 21px; line-height: 1.25; }
.lm-price__name > span { display: flex; flex-direction: column; gap: 2px; }
.lm-price__name::after { content: ""; flex: 1; min-width: 16px; margin-left: 12px; border-bottom: 1px dotted var(--c-line-strong); display: none; }
@container lm (min-width: 700px) { .lm-price__name::after { display: block; } }
.lm-price__name small { font-family: var(--f-sans); font-size: 14px; color: var(--c-ink-soft); }
.lm-price__val { font-family: var(--f-serif); font-size: 24px; white-space: nowrap; }
.lm-prices__note { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--c-ink-soft); }
@container lm (min-width: 700px) {
  .lm-prices__panel { padding: 8px 40px; }
  .lm-price__name { font-size: 24px; }
  .lm-price__val { font-size: 28px; }
}
@container lm (min-width: 1100px) {
  .lm-prices { grid-template-columns: 5fr 7fr; gap: 96px; align-items: center; }
  .lm-prices__panel { padding: 16px 56px; }
  .lm-price { padding: 28px 0; }
}

/* ---------- 18. Reviews ---------- */
.lm-reviews { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.lm-review { display: flex; flex-direction: column; gap: 20px; padding: 28px 24px; background: var(--c-surface); border: 1px solid var(--c-line); }
.lm-review__stars { display: flex; gap: 3px; color: #986A1F; }
.lm-review__stars svg { width: 16px; height: 16px; fill: currentColor; }
.lm-review__text { font-family: var(--f-serif); font-weight: 300; font-size: 20px; line-height: 1.45; color: var(--c-ink); text-wrap: pretty; }
.lm-review__who { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--c-line); font-size: 14.5px; color: var(--c-ink-soft); }
.lm-review__who strong { color: var(--c-ink); font-weight: 600; }
.lm-google { display: inline-flex; align-items: center; gap: 12px; }
.lm-google__score { font-family: var(--f-serif); font-size: 48px; font-weight: 300; line-height: 1; }
@container lm (min-width: 700px) {
  .lm-reviews { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lm-review { padding: 28px 22px; }
  .lm-review__text { font-size: 19px; }
}
@container lm (min-width: 1100px) {
  .lm-reviews { gap: 24px; }
  .lm-review { padding: 40px 36px; gap: 24px; }
  .lm-review:nth-child(2) { transform: translateY(40px); }
  .lm-review__text { font-size: 22px; }
}

/* ---------- 19. E-books ---------- */
.lm-ebooks { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.lm-ebook { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 20px; align-items: start; }
.lm-ebook__cover { position: relative; aspect-ratio: 3 / 4; box-shadow: inset 10px 0 12px -8px rgba(39,35,32,.22), 0 18px 30px -18px rgba(39,35,32,.45); }
.lm-ebook__cover .lm-ph__label { margin: 8px; font-size: 10px; padding: 4px 6px; letter-spacing: .06em; }
.lm-ebook__body { display: flex; flex-direction: column; gap: 10px; }
.lm-ebook__for { font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--c-bronze); }
.lm-ebook__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding-top: 6px; }
.lm-ebook__price { font-family: var(--f-serif); font-size: 22px; }
@container lm (min-width: 700px) {
  .lm-ebooks { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  .lm-ebook { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .lm-ebook__cover { max-width: 240px; }
  .lm-ebook__cover .lm-ph__label { margin: 16px; font-size: 11px; }
}
@container lm (min-width: 1100px) {
  .lm-ebooks { gap: 48px; }
  .lm-ebook__cover { max-width: 300px; }
}

/* ---------- 20. Posts (Poradnik) ---------- */
.lm-posts { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; border-top: 1px solid var(--c-line); }
.lm-post { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--c-line); }
.lm-post__thumb { aspect-ratio: 1 / 1; }
.lm-post__thumb .lm-ph__label { display: none; }
.lm-post__body { display: flex; flex-direction: column; gap: 8px; }
.lm-post__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 12px; font-size: 13px; color: var(--c-ink-soft); }
.lm-post__cat { font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--c-bronze); }
.lm-post__title { font-family: var(--f-serif); font-weight: 400; font-size: 20px; line-height: 1.25; }
.lm-post__excerpt { display: none; font-size: 15.5px; color: var(--c-ink-soft); }
.lm-post:hover .lm-post__title { color: var(--c-bronze); }
@container lm (min-width: 700px) {
  .lm-posts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; border-top: 0; }
  .lm-post { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 0; border-bottom: 0; }
  .lm-post__thumb { aspect-ratio: 4 / 3; }
  .lm-post__thumb .lm-ph__label { display: flex; margin: 14px; font-size: 11px; }
  .lm-post__excerpt { display: block; }
}
@container lm (min-width: 1100px) {
  .lm-posts { gap: 40px; }
  .lm-post__title { font-size: 26px; }
  .lm-post__thumb { aspect-ratio: 5 / 4; }
}

/* ---------- 21. FAQ ---------- */
.lm-faqwrap { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.lm-faqwrap__aside { display: flex; flex-direction: column; gap: 24px; }
.lm-faq { border-top: 1px solid var(--c-line-strong); }
.lm-faq__item { border-bottom: 1px solid var(--c-line); }
.lm-faq__q {
  display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 64px; padding: 16px 0;
  font-family: var(--f-serif); font-size: 21px; line-height: 1.3; color: var(--c-ink); cursor: pointer; list-style: none;
}
.lm-faq__q::-webkit-details-marker { display: none; }
.lm-faq__q:hover { color: var(--c-bronze); }
.lm-faq__icon { position: relative; flex: none; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--c-line-strong); }
.lm-faq__icon::before, .lm-faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; background: var(--c-ink); transform: translate(-50%, -50%); transition: transform .3s ease; }
.lm-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.lm-faq__item[open] .lm-faq__icon { background: var(--c-espresso); border-color: var(--c-espresso); }
.lm-faq__item[open] .lm-faq__icon::before, .lm-faq__item[open] .lm-faq__icon::after { background: var(--c-on-dark); }
.lm-faq__item[open] .lm-faq__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.lm-faq__a { padding: 0 56px 28px 0; color: var(--c-ink-soft); max-width: 40em; }
@container lm (min-width: 700px) { .lm-faq__q { font-size: 23px; min-height: 76px; } }
@container lm (min-width: 1100px) {
  .lm-faqwrap { grid-template-columns: 4fr 8fr; gap: 96px; }
  .lm-faq__q { font-size: 26px; min-height: 88px; }
}

/* ---------- 22. Contact ---------- */
.lm-contact { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
.lm-contact__info { display: flex; flex-direction: column; gap: 32px; }
.lm-contact__tel { display: inline-flex; flex-direction: column; gap: 6px; }
.lm-contact__tel small { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--c-bronze); }
.lm-contact__tel a { font-family: var(--f-serif); font-weight: 300; font-size: 38px; line-height: 1.05; letter-spacing: -0.02em; }
.lm-contact__tel a:hover { color: var(--c-bronze); }
.lm-dl { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--c-line); }
.lm-dl__row { display: flex; flex-direction: column; gap: 4px; padding: 16px 0; border-bottom: 1px solid var(--c-line); }
.lm-dl dt { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--c-ink-soft); }
.lm-dl dt .lm-ico { color: var(--c-bronze); width: 18px; height: 18px; }
.lm-dl dd { padding-left: 28px; font-size: 17px; color: var(--c-ink); }
.lm-dl dd a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-decoration-color: var(--c-line-strong); text-underline-offset: 4px; }
.lm-dl dd a:hover { color: var(--c-bronze); }
.lm-map { position: relative; min-height: 340px; border-radius: var(--radius); overflow: hidden; background: #EDE3D2; }
.lm-map svg.lm-map__art { position: absolute; inset: 0; width: 100%; height: 100%; }
.lm-map__river { fill: none; stroke: #D5DDD3; stroke-width: 54; stroke-linecap: round; }
.lm-map__park { fill: #E3DDC6; }
.lm-map__road { fill: none; stroke: #FBF7F0; stroke-width: 12; stroke-linecap: round; stroke-linejoin: round; }
.lm-map__road--s { stroke-width: 6; }
.lm-map__pin { position: absolute; left: 52%; top: 46%; transform: translate(-50%, -100%); display: flex; flex-direction: column; align-items: center; gap: 8px; }
.lm-map__pin-dot { width: 52px; height: 52px; border-radius: 50%; background: var(--c-espresso); display: grid; place-items: center; box-shadow: 0 10px 24px -8px rgba(39,35,32,.6); }
.lm-map__pin-dot img { width: 34px; }
.lm-map__card { position: absolute; left: 16px; right: 16px; bottom: 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 14px 18px; background: var(--c-surface); box-shadow: var(--shadow); font-size: 15px; }
.lm-map__card strong { display: block; font-family: var(--f-serif); font-weight: 400; font-size: 19px; }
.lm-map__label { position: absolute; top: 16px; left: 16px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #6A5A43; background: rgba(253,250,245,.85); padding: 6px 10px; }
@container lm (min-width: 700px) {
  .lm-contact__tel a { font-size: 52px; }
  .lm-dl { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
  .lm-map { min-height: 420px; }
}
@container lm (min-width: 1100px) {
  .lm-contact { grid-template-columns: 5fr 7fr; gap: 96px; align-items: stretch; }
  .lm-contact__tel a { font-size: 64px; }
  .lm-dl { grid-template-columns: minmax(0, 1fr); }
  .lm-map { min-height: 100%; }
  .lm-map__card { left: 32px; right: auto; bottom: 32px; min-width: 420px; padding: 20px 24px; }
}

/* ---------- 23. Footer ---------- */
.lm-footer { position: relative; background: var(--c-espresso); color: var(--c-on-dark-soft); font-size: 15.5px; overflow: hidden; }
.lm-footer__alert { border-bottom: 1px solid rgba(249,242,231,.12); }
.lm-footer__alert p { display: block; padding-block: 14px; text-align: center; color: var(--c-on-dark); font-size: 15px; }
.lm-footer__alert strong { color: var(--c-gold-hi); font-weight: 700; }
.lm-footer__main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; padding-block: 56px 40px; position: relative; z-index: 1; }
.lm-footer__brand { display: flex; flex-direction: column; gap: 24px; }
.lm-footer__brand img { width: 220px; height: auto; }
.lm-footer__contact { display: flex; flex-direction: column; align-items: flex-start; gap: 0; line-height: 1.6; }
.lm-footer__contact > * { display: inline-flex; align-items: center; min-height: 40px; }
.lm-footer__contact a { color: var(--c-on-dark); }
.lm-footer__contact a:hover { color: var(--c-gold-hi); text-decoration: underline; text-underline-offset: 3px; }
.lm-footer__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 24px; }
.lm-footer__h { font-family: var(--f-sans); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-gold-hi); margin-bottom: 12px; }
.lm-footer__list { display: flex; flex-direction: column; }
.lm-footer__list a { display: inline-block; padding: 11px 0; line-height: 1.4; color: var(--c-on-dark-soft); }
.lm-footer__list a:hover { color: var(--c-on-dark); }
.lm-footer__bottom { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 8px; padding-block: 24px 32px; border-top: 1px solid rgba(249,242,231,.12); font-size: 14px; }
.lm-footer__orn { right: -60px; bottom: -40px; width: 320px; opacity: .08; }
@container lm (min-width: 700px) {
  .lm-footer__cols { grid-template-columns: 1fr 1.2fr .8fr 1fr; }
  .lm-footer__bottom { flex-direction: row; justify-content: space-between; }
}
@container lm (min-width: 1100px) {
  .lm-footer__main { grid-template-columns: 4fr 8fr; gap: 96px; padding-block: 96px 72px; }
  .lm-footer__brand img { width: 260px; }
  .lm-footer__orn { right: -80px; bottom: -120px; width: 560px; }
}

/* ---------- 24. Mobile bottom bar ---------- */
.lm-mbar { position: absolute; left: 0; right: 0; bottom: 0; z-index: 20; display: grid; grid-template-columns: 1fr 1.25fr; gap: 8px; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); background: rgba(249,242,231,.96); border-top: 1px solid var(--c-line); box-shadow: 0 -10px 30px -18px rgba(39,35,32,.4); }
.lm-mbar .lm-btn { width: 100%; min-height: 52px; padding: 0 12px; }
.lm-mbar-space { height: 76px; }
@container lm (min-width: 700px) { .lm-mbar, .lm-mbar-space { display: none; } }
/* in production: .lm-mbar { position: fixed; } and body padding-bottom: 76px */

/* ---------- 25. Mobile menu (full screen) ---------- */
.lm-mmenu { position: relative; display: flex; flex-direction: column; min-height: 100%; background: var(--c-bg); }
.lm-mmenu__head { display: flex; align-items: center; justify-content: space-between; min-height: 64px; border-bottom: 1px solid var(--c-line); }
.lm-mmenu__head img { height: 22px; width: auto; }
.lm-mmenu__nav { padding-block: 8px 24px; }
.lm-acc { border-bottom: 1px solid var(--c-line); }
.lm-acc__q, .lm-mmenu__link { display: flex; align-items: center; justify-content: space-between; min-height: 60px; font-family: var(--f-serif); font-size: 24px; color: var(--c-ink); list-style: none; cursor: pointer; }
.lm-acc__q::-webkit-details-marker { display: none; }
.lm-acc__q .lm-ico { transition: transform .3s ease; color: var(--c-bronze); }
.lm-acc[open] .lm-acc__q .lm-ico { transform: rotate(180deg); }
.lm-acc__list { display: flex; flex-direction: column; padding: 0 0 16px 16px; border-left: 1px solid var(--c-gold); margin: 0 0 16px 2px; }
.lm-acc__list a { display: flex; align-items: center; min-height: 44px; font-size: 16.5px; color: var(--c-ink-soft); }
.lm-mmenu__link { border-bottom: 1px solid var(--c-line); }
.lm-mmenu__foot { margin-top: auto; display: flex; flex-direction: column; gap: 16px; padding-block: 24px; font-size: 15px; color: var(--c-ink-soft); }

/* ---------- 26. Motion (functional only) ---------- */
@media (prefers-reduced-motion: no-preference) {
  .lm-badge__ring { animation: lm-spin 48s linear infinite; }
  .lm-faq__item::details-content { transition: block-size .4s ease, content-visibility .4s allow-discrete; block-size: 0; overflow: clip; }
  .lm-faq__item[open]::details-content { block-size: auto; }
  .lm-page { interpolate-size: allow-keywords; }
  /* scroll reveal — enabled on the live site only (class on <html>), never delays the first screen */
  .is-live .lm-reveal { animation: lm-reveal linear both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
  /* subtle parallax on ornaments */
  .is-live [data-parallax] { animation: lm-parallax linear both; animation-timeline: view(); }
}
@keyframes lm-spin { to { transform: rotate(360deg); } }
@keyframes lm-reveal { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes lm-parallax { from { translate: 0 40px; } to { translate: 0 -40px; } }

/* ---------- 27. State helpers — documentation boards only (not for production) ---------- */
.lm-btn--primary.is-hover { background: var(--c-bronze); }
.lm-btn--secondary.is-hover { background: var(--c-ink); color: var(--c-on-dark); }
.lm-link.is-hover { color: var(--c-ink); text-decoration-color: transparent; }
.lm-link.is-hover .lm-ico { transform: translateX(4px); }
.is-focus { outline: 2px solid var(--c-bronze) !important; outline-offset: 3px; }
.lm-card.is-hover .lm-card__arrow { background: var(--c-espresso); color: var(--c-on-dark); border-color: var(--c-espresso); }
.lm-row.is-hover { color: var(--c-bronze); padding-left: 8px; }
.lm-row.is-hover .lm-ico { transform: translateX(4px); opacity: 1; }
.lm-nav__link.is-hover::after { transform: scaleX(1); }
.lm-overlay { position: absolute; left: 0; right: 0; bottom: 0; background: rgba(39,35,32,.28); }

.lm-doc { padding: 64px 80px 80px; display: flex; flex-direction: column; gap: 56px; }
.lm-doc__row { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; padding-top: 32px; border-top: 1px solid var(--c-line); }
.lm-doc__label { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-bronze); }
.lm-doc__label span { display: block; margin-top: 8px; font-size: 14px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--c-ink-soft); }
.lm-doc__set { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 32px 40px; }
.lm-doc__item { display: flex; flex-direction: column; gap: 12px; }
.lm-doc__cap { font-size: 12.5px; color: var(--c-ink-soft); letter-spacing: .02em; }
.lm-sw { width: 150px; display: flex; flex-direction: column; gap: 8px; font-size: 13px; line-height: 1.35; color: var(--c-ink-soft); }
.lm-sw__chip { height: 84px; border: 1px solid var(--c-line); border-radius: 2px; display: flex; align-items: flex-end; padding: 8px 10px; font-family: var(--f-serif); font-size: 22px; }
.lm-sw strong { color: var(--c-ink); font-weight: 600; }
.lm-type { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 8px 32px; align-items: baseline; }
.lm-type dt { font-size: 13px; color: var(--c-ink-soft); }

/* ---------- 28. Hover transitions (subtle, everywhere something changes) ---------- */
.lm-page { --ease: cubic-bezier(.22, .61, .36, 1); --dur: .35s; }
.lm-btn { transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease); }
.lm-btn .lm-ico { transition: transform var(--dur) var(--ease); }
.lm-btn:hover { box-shadow: 0 10px 22px -14px rgba(39, 35, 32, .55); }
.lm-link { transition: color var(--dur) var(--ease), text-decoration-color var(--dur) var(--ease); }
.lm-link .lm-ico, .lm-row .lm-ico { transition: transform var(--dur) var(--ease), opacity var(--dur) var(--ease); }
.lm-topbar a, .lm-footer__contact a { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: color var(--dur) var(--ease), text-decoration-color var(--dur) var(--ease); }
.lm-topbar a:hover, .lm-footer__contact a:hover { text-decoration-color: currentColor; }
.lm-footer__list a, .lm-dl dd a, .lm-contact__tel a, .lm-header__tel, .lm-nav__link, .lm-mega__item strong, .lm-faq__q, .lm-post__title, .lm-card .lm-h3, .lm-acc__list a, .lm-mmenu__link { transition: color var(--dur) var(--ease), text-decoration-color var(--dur) var(--ease); }
.lm-header__tel:hover, .lm-nav__link:hover, .lm-acc__list a:hover, .lm-mmenu__link:hover { color: var(--c-bronze); }
.lm-card:hover .lm-h3 { color: var(--c-bronze); }
.lm-icon-btn, .lm-menu-btn { transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease); }
.lm-icon-btn:hover, .lm-menu-btn:hover { background: var(--c-sand); border-color: var(--c-gold); }
.lm-faq__icon { transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease); }
.lm-faq__q:hover .lm-faq__icon { border-color: var(--c-gold); }
.lm-review, .lm-path, .lm-ebook__cover { transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform .5s var(--ease); }
.lm-review:hover { border-color: var(--c-line-strong); box-shadow: var(--shadow); }
.lm-post__thumb > img, .lm-feature__media > img { transition: transform .8s var(--ease), opacity .8s var(--ease); }
.lm-post:hover .lm-post__thumb > img { opacity: .24; }
@media (prefers-reduced-motion: no-preference) {
  .lm-btn:hover { transform: translateY(-1px); }
  .lm-btn:hover .lm-ico { transform: translateX(3px); }
  .lm-path:hover { transform: translateY(-4px); }
  .lm-ebook:hover .lm-ebook__cover { transform: translateY(-4px); box-shadow: inset 10px 0 12px -8px rgba(39,35,32,.22), 0 26px 36px -20px rgba(39,35,32,.5); }
  .lm-post:hover .lm-post__thumb > img { transform: scale(1.06); }
  .lm-review:hover { transform: translateY(-3px); }
  .lm-review:nth-child(2):hover { transform: translateY(37px); }
  @container lm (max-width: 1099px) { .lm-review:nth-child(2):hover { transform: translateY(-3px); } }
}

/* ---------- 29. Subpage: breadcrumbs, page hero, prose, split, qualifications, gallery, CTA ---------- */
.lm-crumbs { border-top: 1px solid var(--c-line); }
.lm-crumbs__list { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; min-height: 48px; font-size: 14px; color: var(--c-ink-soft); }
.lm-crumbs__list li { display: inline-flex; align-items: center; gap: 10px; }
.lm-crumbs__list li + li::before { content: "›"; color: var(--c-bronze); }
.lm-crumbs__list a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: color var(--dur) var(--ease), text-decoration-color var(--dur) var(--ease); }
.lm-crumbs__list a:hover { color: var(--c-ink); text-decoration-color: currentColor; }
.lm-crumbs__list [aria-current] { color: var(--c-ink); font-weight: 500; }
.lm-nav__link.is-current { color: var(--c-bronze); }

.lm-tagline { font-size: 17px; line-height: 1.6; color: var(--c-bronze); font-weight: 500; max-width: 32em; text-wrap: pretty; }
.lm-hero--page { padding-top: 24px; }
@container lm (min-width: 1100px) { .lm-tagline { font-size: 19px; } .lm-hero--page { padding-top: 40px; } }

.lm-prose { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 22px; color: var(--c-ink-soft); font-size: 17px; line-height: 1.75; }
.lm-prose__lead { font-size: 19px; color: var(--c-ink); }
@container lm (min-width: 700px) { .lm-prose { font-size: 18px; gap: 26px; } .lm-prose__lead { font-size: 21px; } }

.lm-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.lm-split__head { display: flex; flex-direction: column; gap: 20px; }
.lm-split__body { display: flex; flex-direction: column; gap: 20px; max-width: 46em; }
.lm-body--strong { color: var(--c-ink); font-weight: 500; }
.lm-pullquote { font-family: var(--f-serif); font-style: italic; font-weight: 300; font-size: 26px; line-height: 1.3; color: var(--c-ink); padding-left: 24px; border-left: 1px solid var(--c-gold); margin-bottom: 8px; text-wrap: balance; }
@container lm (min-width: 700px) { .lm-pullquote { font-size: 32px; } }
@container lm (min-width: 1100px) {
  .lm-split { grid-template-columns: 4fr 8fr; gap: 96px; align-items: start; }
  .lm-split__head { position: sticky; top: 120px; gap: 28px; }
  .lm-pullquote { font-size: 38px; padding-left: 32px; }
}

.lm-quals { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--c-line-strong); counter-reset: q; }
.lm-quals__item { position: relative; display: flex; align-items: baseline; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--c-line); font-family: var(--f-serif); font-size: 19px; line-height: 1.35; color: var(--c-ink); }
.lm-quals__item::before { counter-increment: q; content: counter(q, decimal-leading-zero); flex: none; width: 28px; font-family: var(--f-sans); font-size: 12px; font-weight: 600; letter-spacing: .1em; color: var(--c-bronze); }
.lm-quals__item--big { align-items: center; }
.lm-quals__item--big::before { align-self: center; }
.lm-quals__big { font-size: 52px; font-weight: 300; line-height: 1; letter-spacing: -0.03em; }
@container lm (min-width: 700px) {
  .lm-quals { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .lm-quals__item--big { grid-column: 1 / -1; }
  .lm-quals__item { font-size: 20px; }
}

.lm-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; align-items: end; }
.lm-gallery__a { aspect-ratio: 4 / 5; }
.lm-gallery__b { aspect-ratio: 4 / 3; }
.lm-gallery .lm-ph__label { margin: 12px; font-size: 11px; }
@container lm (min-width: 700px) { .lm-gallery { gap: 24px; margin-top: 24px; } .lm-gallery .lm-ph__label { margin: 20px; font-size: 12px; } }

.lm-cta { position: relative; overflow: clip; background: var(--c-sand); padding: 48px 24px; text-align: center; }
.lm-cta__in { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.lm-cta .lm-btns { justify-content: center; width: 100%; }
.lm-tree--bio { width: 300px; right: -100px; bottom: -60px; opacity: .1; }
.lm-tree--cta { width: 420px; left: 50%; top: 50%; transform: translate(-50%, -50%); opacity: .1; }
@container lm (min-width: 700px) {
  .lm-cta { padding: 72px 48px; }
  .lm-tree--bio { width: 460px; right: -140px; bottom: -90px; }
  .lm-tree--cta { width: 560px; }
}
@container lm (min-width: 1100px) {
  .lm-cta { padding: 96px 64px; }
  .lm-tree--bio { width: 620px; right: -160px; bottom: -120px; }
  .lm-tree--cta { width: 680px; }
}

/* ---------- 30. Diagnostic service template ---------- */
.lm-hero--service .lm-hero__in { align-items: start; }
.lm-hero--service .lm-h1 { font-size: 38px; }
.lm-hero__lead { display: flex; flex-direction: column; gap: 16px; font-size: 18px; line-height: 1.65; color: var(--c-ink-soft); max-width: 36em; text-wrap: pretty; }
@container lm (min-width: 700px) {
  .lm-hero--service .lm-hero__in { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .lm-hero--service .lm-h1 { font-size: 48px; }
}
@container lm (min-width: 1100px) {
  .lm-hero--service .lm-hero__in { grid-template-columns: 7fr 4fr; gap: 96px; }
  .lm-hero--service .lm-h1 { font-size: 64px; line-height: 1.04; }
  .lm-hero__lead { font-size: 19px; }
}

/* quick facts card */
.lm-facts { position: relative; background: var(--c-surface); border: 1px solid var(--c-line); padding: 28px 24px 24px; box-shadow: var(--shadow); }
.lm-facts::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--g-gold); }
.lm-facts__title { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-bronze); margin-bottom: 8px; }
.lm-facts__list { display: flex; flex-direction: column; }
.lm-facts__row { display: flex; flex-direction: column; gap: 2px; padding: 14px 0; border-bottom: 1px solid var(--c-line); }
.lm-facts__row dt { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--c-ink-soft); }
.lm-facts__row dd { font-size: 16.5px; line-height: 1.45; color: var(--c-ink); }
.lm-facts__row--price dd { font-family: var(--f-serif); font-size: 32px; line-height: 1.1; font-weight: 300; letter-spacing: -0.01em; }
.lm-facts__row--price dd small { display: block; margin-top: 4px; font-family: var(--f-sans); font-size: 14px; letter-spacing: 0; color: var(--c-ink-soft); }
.lm-facts__foot { padding-top: 16px; }
@container lm (min-width: 700px) {
  .lm-facts { padding: 32px 32px 28px; }
  .lm-facts__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
}
@container lm (min-width: 1100px) {
  .lm-facts { position: sticky; top: 120px; padding: 36px 36px 30px; }
  .lm-facts__list { display: flex; }
}

/* symptom lists (child / adult) */
.lm-symptoms { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
.lm-symptoms__col { display: flex; flex-direction: column; gap: 16px; }
.lm-symptoms__col .lm-h3 { font-style: italic; font-weight: 300; color: var(--c-bronze); }
.lm-ticks { display: flex; flex-direction: column; border-top: 1px solid var(--c-line-strong); }
.lm-ticks li { position: relative; padding: 14px 0 14px 32px; border-bottom: 1px solid var(--c-line); color: var(--c-ink); line-height: 1.5; }
.lm-ticks li::before { content: ""; position: absolute; left: 2px; top: 23px; width: 14px; height: 1px; background: var(--g-gold); }
.lm-ticks--2col { border-top: 0; }
.lm-note { display: flex; gap: 14px; align-items: baseline; margin-top: 32px; max-width: 46em; font-family: var(--f-serif); font-style: italic; font-size: 19px; line-height: 1.45; color: var(--c-ink); }
.lm-note::before { content: ""; flex: none; width: 32px; height: 1px; background: var(--c-gold); transform: translateY(-6px); }
.lm-intro { font-size: 18px; color: var(--c-ink-soft); margin-bottom: 20px; }
@container lm (min-width: 700px) {
  .lm-symptoms { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
  .lm-ticks--2col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .lm-ticks--2col li:nth-child(-n+2) { border-top: 1px solid var(--c-line-strong); }
  .lm-note { font-size: 21px; }
}
@container lm (min-width: 1100px) { .lm-symptoms { gap: 80px; } .lm-ticks li { font-size: 18px; } }

/* process steps (n columns on desktop) */
.lm-process { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--c-line-strong); }
.lm-process__step { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 4px 12px; padding: 22px 0; border-bottom: 1px solid var(--c-line); }
.lm-process__num { grid-row: 1 / span 2; font-family: var(--f-serif); font-weight: 300; font-size: 34px; line-height: 1; color: var(--c-bronze); }
.lm-process__step .lm-body { margin: 0; }
@container lm (min-width: 700px) { .lm-process__step { grid-template-columns: 80px minmax(0, 1fr); padding: 26px 0; } .lm-process__num { font-size: 44px; } }
@container lm (min-width: 1100px) {
  .lm-process { grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); column-gap: 40px; border-top: 0; }
  .lm-process__step { position: relative; grid-template-columns: minmax(0, 1fr); align-content: start; gap: 14px; padding: 36px 0 0; border-bottom: 0; border-top: 1px solid var(--c-line-strong); }
  .lm-process__step::before { content: ""; position: absolute; top: -7px; left: 0; width: 13px; height: 13px; border-radius: 50%; background: var(--c-bg); border: 1px solid var(--c-gold); box-shadow: inset 0 0 0 3px var(--c-bg), inset 0 0 0 7px var(--c-gold); }
  .lm-section--surface .lm-process__step::before { background: var(--c-surface); box-shadow: inset 0 0 0 3px var(--c-surface), inset 0 0 0 7px var(--c-gold); }
  .lm-process__num { grid-row: auto; font-size: 64px; }
}

/* tool / method box */
.lm-tool { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 40px; padding: 28px 24px; background: var(--c-sand); }
.lm-section--sand .lm-tool { background: var(--c-surface); }
.lm-tool::before { content: ""; position: absolute; left: 0; top: 0; width: 64px; height: 2px; background: var(--g-gold); }
.lm-tool__label { font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--c-bronze); }
.lm-tool__name { font-family: var(--f-serif); font-weight: 300; font-size: 34px; line-height: 1.05; color: var(--c-ink); letter-spacing: -0.01em; }
.lm-tool__text { color: var(--c-ink-soft); font-size: 17px; line-height: 1.65; max-width: 44em; }
.lm-tool__text strong { color: var(--c-ink); font-weight: 600; }
.lm-tool--first { margin: 0 0 48px; }
@container lm (min-width: 700px) {
  .lm-tool { grid-template-columns: 200px minmax(0, 1fr); column-gap: 40px; align-items: center; padding: 36px 40px; }
  .lm-tool__head { display: flex; flex-direction: column; gap: 8px; }
}
@container lm (min-width: 1100px) { .lm-tool { grid-template-columns: 300px minmax(0, 1fr); padding: 44px 56px; } .lm-tool__name { font-size: 46px; } .lm-tool__text { font-size: 18px; } }

/* benefits */
.lm-benefits { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; border-top: 1px solid var(--c-line-strong); }
.lm-benefit { display: flex; flex-direction: column; gap: 10px; padding: 24px 0; border-bottom: 1px solid var(--c-line); }
.lm-benefit__num { font-family: var(--f-serif); font-style: italic; font-size: 15px; color: var(--c-bronze); }
@container lm (min-width: 700px) {
  .lm-benefits { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; border-top: 0; }
  .lm-benefit { padding: 28px 0 0; border-bottom: 0; border-top: 1px solid var(--c-line-strong); }
}
@container lm (min-width: 1100px) { .lm-benefits { gap: 56px; } .lm-benefit { gap: 14px; padding-top: 36px; } }

.lm-quote-sec .lm-about__quote { padding-block: 0; }
.lm-cta__meta { font-size: 15px; color: var(--c-ink-soft); max-width: 40em; }
.lm-cta__meta a { color: var(--c-bronze); text-decoration: underline; text-underline-offset: 3px; }
.lm-rel .lm-card { padding-bottom: 32px; }
/* service template — tighter rhythm on phones */
.lm-ticks li { padding: 11px 0 11px 28px; font-size: 16px; }
.lm-ticks li::before { top: 21px; }
.lm-symptoms { gap: 32px; }
.lm-process__step { padding: 18px 0; }
.lm-benefit { padding: 20px 0; }
.lm-tool { margin-top: 32px; padding: 24px 20px; }
.lm-tool--first { margin: 0 0 32px; }
.lm-facts__row { padding: 11px 0; }
.lm-rel .lm-card { padding: 22px 0; }
.lm-rel .lm-card .lm-h3 { font-size: 21px; }
@container lm (min-width: 700px) {
  .lm-ticks li { padding: 14px 0 14px 32px; font-size: 17px; }
  .lm-ticks li::before { top: 25px; }
  .lm-process__step { padding: 26px 0; }
  .lm-tool { margin-top: 40px; }
  .lm-facts__row { padding: 14px 0; }
  .lm-rel .lm-card { padding: 32px 32px 32px 0; }
  .lm-rel .lm-card:nth-child(2n) { padding: 32px 0 32px 32px; }
}
@container lm (min-width: 1100px) {
  .lm-process__step { padding: 36px 0 0; }
  .lm-tool { padding: 44px 56px; }
  .lm-rel .lm-card .lm-h3 { font-size: 28px; }
}
@container lm (max-width: 699px) { .lm-page--service .lm-section { --section-y: 56px; } }
@container lm (max-width: 699px) {
  .lm-page--service .lm-hero { padding-bottom: 48px; }
  .lm-page--service .lm-cta { padding: 36px 20px; }
  .lm-page--service .lm-sechead { margin-bottom: 28px; }
  .lm-page--service .lm-about__quote blockquote { font-size: 24px; }
  .lm-page--service .lm-hero__lead { font-size: 17px; }
}

/* ---------- 31. Mega menu „Diagnoza” (desktop) + mobile drill list ---------- */
.lm-stage { position: relative; }
.lm-stage__dim { position: absolute; inset: 0; z-index: 4; background: rgba(39, 35, 32, .32); }
.lm-mm { position: absolute; z-index: 5; left: 0; right: 0; top: 0; background: var(--c-surface); border-top: 1px solid var(--c-line); box-shadow: 0 40px 80px -40px rgba(39, 35, 32, .45); overflow: clip; }
.lm-mm__in { position: relative; display: grid; grid-template-columns: 3fr 6fr 3fr; gap: 48px; padding-block: 44px 48px; }
.lm-mm__intro { position: relative; display: flex; flex-direction: column; gap: 18px; padding-right: 40px; border-right: 1px solid var(--c-line); }
.lm-mm__title { font-family: var(--f-serif); font-weight: 300; font-size: 32px; line-height: 1.12; letter-spacing: -0.01em; color: var(--c-ink); text-wrap: balance; }
.lm-mm__consult { margin-top: auto; display: flex; flex-direction: column; gap: 12px; padding: 20px; background: var(--c-sand); }
.lm-mm__consult p { font-size: 15px; line-height: 1.5; color: var(--c-ink-soft); }
.lm-mm__consult strong { color: var(--c-ink); font-weight: 600; }
.lm-mm__tree { position: absolute; left: -40px; bottom: -70px; width: 260px; opacity: .08; pointer-events: none; }
.lm-mm__label { font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--c-bronze); margin-bottom: 14px; }
.lm-mm__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lm-mmc { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 22px 22px 20px; background: var(--c-bg); border: 1px solid transparent; transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.lm-mmc__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.lm-mmc__aud { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--c-ink-soft); }
.lm-mmc__arrow { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--c-line-strong); display: grid; place-items: center; color: var(--c-ink); transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease); }
.lm-mmc__arrow .lm-ico { width: 15px; height: 15px; }
.lm-mmc__name { font-family: var(--f-serif); font-weight: 400; font-size: 23px; line-height: 1.2; color: var(--c-ink); transition: color var(--dur) var(--ease); }
.lm-mmc__desc { font-size: 15px; line-height: 1.5; color: var(--c-ink-soft); text-wrap: pretty; }
.lm-mmc__meta { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--c-line); display: flex; justify-content: space-between; gap: 12px; font-size: 13.5px; color: var(--c-ink-soft); }
.lm-mmc__meta strong { font-family: var(--f-serif); font-weight: 400; font-size: 17px; color: var(--c-ink); }
.lm-mmc:hover, .lm-mmc.is-hover { background: var(--c-surface); border-color: var(--c-line-strong); box-shadow: var(--shadow); }
.lm-mmc:hover .lm-mmc__name, .lm-mmc.is-hover .lm-mmc__name { color: var(--c-bronze); }
.lm-mmc:hover .lm-mmc__arrow, .lm-mmc.is-hover .lm-mmc__arrow { background: var(--c-espresso); border-color: var(--c-espresso); color: var(--c-on-dark); }
.lm-mm__more { display: flex; flex-direction: column; }
.lm-mm__list { display: flex; flex-direction: column; border-top: 1px solid var(--c-line); }
.lm-mm__list a { display: flex; flex-direction: column; gap: 2px; padding: 14px 0; border-bottom: 1px solid var(--c-line); transition: padding-left var(--dur) var(--ease); }
.lm-mm__list strong { font-family: var(--f-serif); font-weight: 400; font-size: 19px; line-height: 1.25; color: var(--c-ink); transition: color var(--dur) var(--ease); }
.lm-mm__list span { font-size: 13.5px; color: var(--c-ink-soft); }
.lm-mm__list a:hover { padding-left: 6px; }
.lm-mm__list a:hover strong { color: var(--c-bronze); }
.lm-mm__all { margin-top: 20px; }
.lm-mm__foot { position: relative; border-top: 1px solid var(--c-line); background: var(--c-bg); }
.lm-mm__foot-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 56px; font-size: 14.5px; color: var(--c-ink-soft); }
.lm-mm__foot-in a { color: var(--c-ink); font-weight: 600; }

/* mobile drill list inside accordion */
.lm-acc__panel { padding: 4px 0 24px; display: flex; flex-direction: column; gap: 20px; }
.lm-macc__label { font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--c-bronze); }
.lm-macc__list { display: flex; flex-direction: column; border-top: 1px solid var(--c-line); }
.lm-macc__item { display: grid; grid-template-columns: minmax(0, 1fr) 28px; align-items: center; gap: 4px 12px; min-height: 64px; padding: 12px 0; border-bottom: 1px solid var(--c-line); }
.lm-macc__item strong { font-family: var(--f-serif); font-weight: 400; font-size: 19px; line-height: 1.25; color: var(--c-ink); }
.lm-macc__item span { grid-column: 1; font-size: 13.5px; line-height: 1.4; color: var(--c-ink-soft); }
.lm-macc__item .lm-ico { grid-column: 2; grid-row: 1 / span 2; color: var(--c-bronze); }
.lm-macc__item--small { min-height: 52px; }
.lm-macc__item--small strong { font-size: 17px; }
.lm-macc__consult { padding: 16px; background: var(--c-sand); font-size: 14.5px; line-height: 1.5; color: var(--c-ink-soft); display: flex; flex-direction: column; gap: 8px; }
.lm-macc__consult strong { color: var(--c-ink); }
.lm-mm__grid > li { display: flex; }
.lm-mm__grid .lm-mmc { flex: 1; }
.lm-macc__list + .lm-macc__label, .lm-acc__panel > div > .lm-macc__label { margin-bottom: 8px; }

/* ---------- 32. Live menus in Play (dropdown under header + mobile layer) ---------- */
.lm-header .lm-mm--drop { top: 100%; }
.lm-header__dim { position: absolute; z-index: 4; left: 0; right: 0; top: 100%; height: 8000px; padding: 0; border: 0; background: rgba(39, 35, 32, .32); cursor: pointer; }
.lm-mlayer { position: absolute; z-index: 30; inset: 0 0 auto 0; min-height: 100%; background: var(--c-bg); }
.lm-mlayer .lm-mmenu { min-height: 0; }
@media (prefers-reduced-motion: no-preference) {
  .lm-header .lm-mm--drop { animation: lm-drop .35s var(--ease) both; }
  .lm-header__dim { animation: lm-fade .35s var(--ease) both; }
  .lm-mlayer { animation: lm-fade .25s var(--ease) both; }
}
@keyframes lm-drop { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@keyframes lm-fade { from { opacity: 0; } to { opacity: 1; } }

/* ---------- 33. Price list page ---------- */
.lm-pay__acc { font-family: var(--f-sans); font-size: 19px; font-weight: 600; letter-spacing: .04em; font-variant-numeric: tabular-nums; color: var(--c-ink); word-spacing: .12em; }
.lm-plist-wrap { display: flex; flex-direction: column; gap: 64px; }
.lm-plist { display: flex; flex-direction: column; border-top: 1px solid var(--c-line-strong); }
.lm-prow { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 6px 20px; padding: 20px 0; border-bottom: 1px solid var(--c-line); }
.lm-prow__name { font-family: var(--f-serif); font-weight: 400; font-size: 20px; line-height: 1.3; color: var(--c-ink); }
.lm-prow__tool { grid-column: 1; font-size: 14.5px; line-height: 1.5; color: var(--c-ink-soft); }
.lm-prow__price { grid-column: 2; grid-row: 1; font-family: var(--f-serif); font-weight: 300; font-size: 24px; line-height: 1.2; color: var(--c-ink); white-space: nowrap; text-align: right; }
.lm-prow__more { grid-column: 1; justify-self: start; min-height: 32px; font-size: 14.5px; }
.lm-prow__more.lm-link { min-height: 36px; }
@container lm (min-width: 700px) {
  .lm-prow { grid-template-columns: minmax(0, 1fr) auto auto; padding: 24px 0; column-gap: 32px; }
  .lm-prow__name { font-size: 22px; }
  .lm-prow__price { grid-column: 3; grid-row: 1 / span 2; align-self: center; font-size: 28px; }
  .lm-prow__more { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
}
@container lm (min-width: 1100px) {
  .lm-plist-wrap { gap: 96px; }
  .lm-prow { padding: 28px 0; column-gap: 48px; }
  .lm-prow__name { font-size: 24px; }
  .lm-prow__price { font-size: 32px; min-width: 150px; }
}
@container lm (max-width: 699px) { .lm-pay__acc { font-size: 16px; letter-spacing: .02em; word-spacing: 0; } }

/* ---------- 34. Legal / long-text template (Regulamin, Polityka prywatności) ---------- */
.lm-hero--legal { padding-bottom: 48px; }
.lm-hero--legal .lm-h1 { font-size: 40px; }
.lm-legal-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; font-size: 15px; color: var(--c-ink-soft); }
.lm-legal-meta strong { color: var(--c-ink); font-weight: 600; }
@container lm (min-width: 700px) { .lm-hero--legal .lm-h1 { font-size: 52px; } }
@container lm (min-width: 1100px) { .lm-hero--legal { padding-bottom: 72px; } .lm-hero--legal .lm-h1 { font-size: 64px; } }

.lm-legal { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.lm-toc { background: var(--c-surface); border: 1px solid var(--c-line); }
.lm-toc summary { display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding: 0 20px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-bronze); cursor: pointer; list-style: none; }
.lm-toc summary::-webkit-details-marker { display: none; }
.lm-toc summary .lm-ico { transition: transform var(--dur) var(--ease); }
.lm-toc[open] summary .lm-ico { transform: rotate(180deg); }
.lm-toc ol { counter-reset: toc; padding: 0 20px 16px; }
.lm-toc li a { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: baseline; min-height: 44px; padding: 10px 0; border-top: 1px solid var(--c-line); font-size: 15.5px; line-height: 1.4; color: var(--c-ink); transition: color var(--dur) var(--ease); }
.lm-toc li a::before { counter-increment: toc; content: counter(toc, upper-roman); font-family: var(--f-serif); font-style: italic; color: var(--c-bronze); }
.lm-toc li a:hover { color: var(--c-bronze); }
.lm-toc li a.is-current { color: var(--c-bronze); font-weight: 600; }
.lm-legal__body { display: flex; flex-direction: column; gap: 56px; max-width: 760px; }
.lm-lsec { display: flex; flex-direction: column; gap: 20px; scroll-margin-top: 120px; }
.lm-lsec__head { display: flex; align-items: baseline; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--c-line-strong); }
.lm-lsec__num { flex: none; font-family: var(--f-serif); font-style: italic; font-size: 22px; color: var(--c-bronze); min-width: 36px; }
.lm-lsec .lm-h2 { font-size: 28px; line-height: 1.15; }
.lm-lol { display: flex; flex-direction: column; gap: 14px; padding: 0; counter-reset: none; }
.lm-lol > li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 0 8px; font-size: 16.5px; line-height: 1.7; color: var(--c-ink-soft); }
.lm-lol > li::before { content: attr(data-n) "."; font-weight: 600; color: var(--c-ink); font-variant-numeric: tabular-nums; }
.lm-lol > li > div { display: flex; flex-direction: column; gap: 10px; }
.lm-lol--bul > li::before { content: ""; width: 12px; height: 1px; margin-top: .85em; background: var(--g-gold); }
.lm-lsub { display: flex; flex-direction: column; gap: 6px; padding-left: 4px; }
.lm-lsub li { display: grid; grid-template-columns: 26px minmax(0, 1fr); }
.lm-lsub li::before { content: attr(data-n) ")"; color: var(--c-ink); }
.lm-lsub--bul li::before { content: "–"; color: var(--c-bronze); }
.lm-lbox { padding: 16px 20px; background: var(--c-sand); color: var(--c-ink); font-size: 16px; line-height: 1.6; }
.lm-lbox .lm-pay__acc { display: block; margin-top: 4px; }
.lm-legal__end { padding-top: 24px; border-top: 1px solid var(--c-line); font-size: 15px; color: var(--c-ink-soft); }
@container lm (min-width: 700px) {
  .lm-lol > li { font-size: 17px; grid-template-columns: 36px minmax(0, 1fr); }
  .lm-lsec .lm-h2 { font-size: 34px; }
  .lm-legal__body { gap: 72px; }
}
@container lm (min-width: 1100px) {
  .lm-legal { grid-template-columns: 4fr 8fr; gap: 96px; align-items: start; }
  .lm-toc { position: sticky; top: 120px; }
  .lm-toc summary { cursor: default; }
  .lm-lol > li { font-size: 17.5px; }
  .lm-lsec .lm-h2 { font-size: 38px; }
}
.lm-lbox { display: block; margin: 10px 0; }
.lm-legal__spacer { display: none; }
@container lm (min-width: 1100px) { .lm-legal__spacer { display: block; } }

/* ---------- 35. E-books page ---------- */
.lm-ebfeat { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: center; }
.lm-ebfeat__media { position: relative; display: grid; place-items: center; padding: 40px 24px; background: var(--c-sand); }
.lm-ebfeat__cover { width: min(72%, 300px); aspect-ratio: 3 / 4; box-shadow: inset 12px 0 14px -10px rgba(39,35,32,.25), 0 30px 50px -24px rgba(39,35,32,.55); transform: rotate(-2deg); }
.lm-ebfeat__cover .lm-ph__label { margin: 16px; font-size: 11px; }
.lm-ebfeat__body { display: flex; flex-direction: column; gap: 18px; }
.lm-ebfeat__specs { display: flex; flex-wrap: wrap; gap: 8px; }
.lm-ebfeat__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; padding-top: 8px; }
.lm-ebfeat__price { font-family: var(--f-serif); font-weight: 300; font-size: 40px; line-height: 1; color: var(--c-ink); }
.lm-ebfeat__note { font-size: 14px; color: var(--c-ink-soft); }
@container lm (min-width: 700px) {
  .lm-ebfeat { grid-template-columns: 5fr 7fr; gap: 48px; }
  .lm-ebfeat__media { padding: 56px 32px; }
}
@container lm (min-width: 1100px) {
  .lm-ebfeat { grid-template-columns: 5fr 6fr; gap: 96px; }
  .lm-ebfeat__media { padding: 80px 48px; }
  .lm-ebfeat__price { font-size: 48px; }
}
.lm-ebook--free .lm-ebook__price { color: var(--c-bronze); }
.lm-ebook__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.lm-tag--gold { border-color: var(--c-gold); color: var(--c-bronze); background: rgba(184,137,58,.08); }
.lm-ebgrid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
@container lm (min-width: 700px) { .lm-ebgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }
@container lm (min-width: 1100px) { .lm-ebgrid { gap: 48px; } }
.lm-ebgrid .lm-ebook { grid-template-columns: 112px minmax(0, 1fr); }
@container lm (min-width: 700px) { .lm-ebgrid .lm-ebook { grid-template-columns: minmax(0, 1fr); } }

/* ---------- 36. Forms + contact page ---------- */
.lm-page { --c-error: #9B3220; --c-ok: #2F6B4F; }
.lm-form { display: flex; flex-direction: column; gap: 22px; }
.lm-form__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
@container lm (min-width: 700px) { .lm-form__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
.lm-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; border: 0; padding: 0; margin: 0; }
.lm-label { font-size: 15px; font-weight: 600; color: var(--c-ink); }
.lm-label .lm-req { color: var(--c-bronze); margin-left: 2px; }
.lm-label small { font-weight: 400; color: var(--c-ink-soft); margin-left: 6px; font-size: 13.5px; }
.lm-input, .lm-select, .lm-textarea {
  width: 100%; min-height: 52px; padding: 13px 16px; border: 1px solid #A89A86; border-radius: var(--radius);
  background: var(--c-surface); color: var(--c-ink); font: 400 16px/1.4 var(--f-sans);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.lm-select { appearance: none; padding-right: 44px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A5316' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 18px; }
.lm-textarea { min-height: 148px; resize: vertical; }
.lm-input::placeholder, .lm-textarea::placeholder { color: #8A7F70; }
.lm-input:hover, .lm-select:hover, .lm-textarea:hover { border-color: var(--c-ink-soft); }
.lm-input:focus-visible, .lm-select:focus-visible, .lm-textarea:focus-visible { outline: none; border-color: var(--c-bronze); box-shadow: 0 0 0 3px rgba(122, 83, 22, .22); }
.lm-hint { font-size: 14px; line-height: 1.45; color: var(--c-ink-soft); }
.lm-error { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; line-height: 1.45; font-weight: 500; color: var(--c-error); }
.lm-error::before { content: "!"; flex: none; display: grid; place-items: center; width: 18px; height: 18px; margin-top: 1px; border-radius: 50%; background: var(--c-error); color: #fff; font-size: 12px; font-weight: 700; }
.lm-field.is-invalid .lm-input, .lm-field.is-invalid .lm-textarea, .lm-input[aria-invalid="true"], .lm-textarea[aria-invalid="true"] { border-color: var(--c-error); border-width: 2px; padding: 12px 15px; background: #FFF9F7; }
.lm-choices { display: flex; flex-wrap: wrap; gap: 12px; }
.lm-choice { position: relative; display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px 0 14px; border: 1px solid #A89A86; border-radius: 999px; background: var(--c-surface); font-size: 15.5px; color: var(--c-ink); cursor: pointer; transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease); }
.lm-choice input { appearance: none; width: 18px; height: 18px; margin: 0; border: 1.5px solid var(--c-ink-soft); border-radius: 50%; display: grid; place-items: center; cursor: pointer; }
.lm-choice input:checked { border-color: var(--c-bronze); background: radial-gradient(circle, var(--c-bronze) 0 4px, transparent 4.5px); }
.lm-choice:has(input:checked) { border-color: var(--c-bronze); background: rgba(184, 137, 58, .08); }
.lm-choice:has(input:focus-visible) { outline: 2px solid var(--c-bronze); outline-offset: 3px; }
.lm-consent { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 4px 14px; align-items: start; }
.lm-consent input { appearance: none; width: 22px; height: 22px; margin: 2px 0 0; border: 1.5px solid var(--c-ink-soft); border-radius: 3px; background: var(--c-surface); display: grid; place-items: center; cursor: pointer; }
.lm-consent input:checked { background: var(--c-espresso); border-color: var(--c-espresso); }
.lm-consent input:checked::after { content: ""; width: 10px; height: 6px; border: 2px solid #fff; border-top: 0; border-right: 0; transform: translateY(-1px) rotate(-45deg); }
.lm-consent input:focus-visible { outline: 2px solid var(--c-bronze); outline-offset: 3px; }
.lm-consent input[aria-invalid="true"] { border-color: var(--c-error); border-width: 2px; }
.lm-consent label { font-size: 15px; line-height: 1.55; color: var(--c-ink); cursor: pointer; }
.lm-consent .lm-hint, .lm-consent .lm-error { grid-column: 2; }
.lm-consent .lm-hint a { color: var(--c-bronze); text-decoration: underline; text-underline-offset: 3px; }
.lm-form__foot { display: flex; flex-direction: column; gap: 14px; padding-top: 6px; }
.lm-form__foot .lm-btn { width: 100%; }
.lm-form__foot .lm-hint { text-align: left; }
@container lm (min-width: 700px) { .lm-form__foot { flex-direction: row; align-items: center; gap: 24px; } .lm-form__foot .lm-btn { width: auto; } }
.lm-alert { display: flex; gap: 14px; padding: 16px 18px; border-left: 0; background: #FBEDEA; color: var(--c-error); font-size: 15px; line-height: 1.5; }
.lm-alert strong { display: block; color: var(--c-error); }
.lm-alert::before { content: "!"; flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--c-error); color: #fff; font-size: 13px; font-weight: 700; }
.lm-spin { width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(249,242,231,.35); border-top-color: var(--c-on-dark); }
@media (prefers-reduced-motion: no-preference) { .lm-spin { animation: lm-spin .8s linear infinite; } }
.lm-btn.is-sending { background: var(--c-bronze); cursor: progress; }
.lm-success { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding: 8px 0; }
.lm-success__ico { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: rgba(47, 107, 79, .1); color: var(--c-ok); }
.lm-success__ico .lm-ico { width: 26px; height: 26px; stroke-width: 2; }
.lm-success .lm-h3 { font-size: 30px; font-weight: 300; }
.lm-urgent { display: block; width: 100%; padding: 16px 18px; background: var(--c-sand); font-size: 15px; line-height: 1.5; color: var(--c-ink); }
.lm-urgent strong { font-weight: 700; }

.lm-contact2 { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.lm-callbox { display: flex; flex-direction: column; gap: 24px; }
.lm-callbox__tel { display: flex; flex-direction: column; gap: 6px; }
.lm-callbox__tel small { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-bronze); }
.lm-callbox__tel a { font-family: var(--f-serif); font-weight: 300; font-size: 40px; line-height: 1.05; letter-spacing: -0.02em; color: var(--c-ink); transition: color var(--dur) var(--ease); }
.lm-callbox__tel a:hover { color: var(--c-bronze); }
.lm-formcard { position: relative; background: var(--c-surface); border: 1px solid var(--c-line); padding: 28px 20px; box-shadow: var(--shadow); }
.lm-formcard::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--g-gold); }
.lm-formcard__head { display: flex; flex-direction: column; gap: 8px; margin-bottom: 24px; }
@container lm (min-width: 700px) {
  .lm-callbox__tel a { font-size: 56px; }
  .lm-formcard { padding: 40px 40px; }
}
@container lm (min-width: 1100px) {
  .lm-contact2 { grid-template-columns: 5fr 7fr; gap: 96px; align-items: start; }
  .lm-callbox { position: sticky; top: 120px; }
  .lm-callbox__tel a { font-size: 64px; }
  .lm-formcard { padding: 48px 56px; }
}
.lm-visit { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.lm-visit__info { display: flex; flex-direction: column; gap: 24px; }
.lm-visit__photo { aspect-ratio: 4 / 3; }
.lm-visit__photo .lm-ph__label { margin: 14px; font-size: 11px; }
.lm-visit .lm-map { min-height: 360px; }
@container lm (min-width: 700px) { .lm-visit .lm-map { min-height: 440px; } }
@container lm (min-width: 1100px) {
  .lm-visit { grid-template-columns: 7fr 5fr; gap: 64px; align-items: stretch; }
  .lm-visit .lm-map { min-height: 100%; }
}
.lm-thanks { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 24px; max-width: 720px; margin: 0 auto; }
.lm-thanks__mark { width: 96px; opacity: .9; }
.lm-thanks .lm-urgent { text-align: center; border: 1px solid var(--c-line-strong); background: var(--c-surface); }
.lm-thanks .lm-btns { justify-content: center; }
