:root {
  --lm-ink: #1f2328;
  --lm-surface: #fcfcf8;
  --lm-surface-2: #c5b9ff;
  --lm-line: #8174c7;
  --lm-text: #1f2328;
  --lm-muted: #535860;
  --lm-accent: #ff2e93;
  --lm-accent-2: #6350c8;
  --lm-highlight: #d7f36b;
  --lm-readable-accent: #6350c8;
  --lm-button-text: #1f2328;
  --lm-radius: 28px;
  --lm-hero-image: url("https://images.unsplash.com/photo-1511707171634-5f897ff02aa9?w=1600&h=1100&fit=crop");
  --lm-shadow: 0 24px 70px color-mix(in srgb, var(--lm-ink) 22%, transparent);
}

html { scroll-behavior: smooth; }
body.loop-mobile-block { color: var(--lm-text); overflow-wrap: anywhere; }
body.loop-mobile-block *, body.loop-mobile-block *::before, body.loop-mobile-block *::after { box-sizing: border-box; }

.lm-site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid var(--lm-line);
  backdrop-filter: blur(18px) saturate(145%);
  transition: box-shadow .28s ease, background .28s ease, border-color .28s ease;
}
.lm-site-header.is-scrolled { box-shadow: 0 16px 42px color-mix(in srgb, var(--lm-ink) 22%, transparent); }
body.admin-bar .lm-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.lm-header-inner { min-height: 76px; gap: 1rem; }
.lm-brand { min-width: 0; }
.lm-wordmark, .lm-footer-title { min-width: 0; }
.lm-wordmark a, .lm-footer-title a { color: var(--lm-text); text-decoration: none; font-family: var(--wp--preset--font-family--display); font-weight: 750; }
.lm-primary-nav { min-width: 0; max-width: min(58vw, 720px); }
.lm-primary-nav .wp-block-navigation__container, .lm-primary-nav .wp-block-page-list { min-width: 0; flex-wrap: nowrap; overflow: hidden; }
.lm-primary-nav a { color: var(--lm-text); text-decoration: none; white-space: nowrap; }
.lm-primary-nav a:hover { color: var(--lm-readable-accent); }
.lm-header-actions { gap: .7rem; }
.lm-header-actions .wc-block-mini-cart__button, .lm-header-actions .wp-block-woocommerce-customer-account a { color: var(--lm-text); }

.lm-main { min-height: 54vh; }
.lm-section, .lm-hero, .lm-article { padding-top: clamp(4rem, 9vw, 8rem); padding-bottom: clamp(4rem, 9vw, 8rem); }
.lm-hero { position: relative; isolation: isolate; min-height: min(720px, 78vh); display: grid; align-content: center; overflow: hidden; }
.lm-display { max-width: 13ch; font-size: clamp(2.55rem, 6vw, 5.6rem) !important; line-height: .98; text-wrap: balance; }
.lm-display-line { display: block; width: max-content; max-width: 100%; white-space: nowrap; }
.lm-subpage-hero { min-height: clamp(420px, 58vh, 600px); padding-block: clamp(3rem, 6vw, 5.5rem); }
.lm-about-hero::after { border-radius: 0 50% 50% 50%; transform: rotate(18deg); }
.lm-services-hero::after { width: clamp(7rem, 18vw, 15rem); border-radius: 0; transform: rotate(45deg); }
.lm-about-editorial { min-height: auto; background: var(--lm-surface-2); }
.lm-about-editorial-columns { align-items: stretch !important; gap: 0 !important; }
.lm-about-editorial-columns > .wp-block-column { min-width: 0; }
.lm-about-editorial-copy { position: relative; z-index: 1; display: grid; min-width: 0; align-content: center; overflow: hidden; padding: clamp(2rem, 6vw, 6rem); border-inline-start: clamp(.35rem, .8vw, .75rem) solid var(--lm-accent); background: var(--lm-surface); }
.lm-about-editorial-copy .lm-display { max-width: 100%; font-size: clamp(2.2rem, 3.4vw, 3.8rem) !important; }
.lm-about-editorial-copy .lm-lead { max-width: 100%; overflow-wrap: anywhere; }
.lm-about-editorial-image { margin: 0; }
.lm-about-editorial-image img { width: 100%; height: 100%; min-height: clamp(360px, 54vw, 680px); border-radius: 0; object-fit: cover; }
.lm-hero::after { content: ""; position: absolute; z-index: -1; width: clamp(9rem, 24vw, 22rem); aspect-ratio: 1; right: 7%; top: 12%; border: 1px solid var(--lm-accent); border-radius: 50%; background: color-mix(in srgb, var(--lm-accent-2) 12%, transparent); pointer-events: none; }
.lm-kicker { color: var(--lm-readable-accent); font-family: var(--wp--preset--font-family--mono); font-size: .78rem; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.lm-lead { max-width: 720px; color: var(--lm-muted); }
.lm-card { height: 100%; padding: clamp(1.25rem, 2.5vw, 2rem); border: 1px solid var(--lm-line); background: color-mix(in srgb, var(--lm-surface-2) 86%, transparent); transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease; }
.lm-card img, .lm-image-card img { width: 100%; object-fit: cover; border-radius: var(--lm-radius); }
.lm-image-card img { box-shadow: var(--lm-shadow); }
.lm-stat strong { display: block; color: var(--lm-text); font-size: clamp(2.1rem, 4vw, 4rem); line-height: 1; }

/* Subpage compositions deliberately differ by design family. */
.lm-hero-panorama { width: min(100%, 1440px); margin-inline: auto; }
.lm-hero-panorama img { width: 100%; height: clamp(300px, 48vw, 620px); object-fit: cover; }
.lm-hero-story-columns { align-items: end !important; margin-top: clamp(-5rem, -7vw, -2.5rem); position: relative; z-index: 2; }
.lm-hero-story-columns > .wp-block-column:first-child { padding: clamp(1.4rem, 4vw, 3.5rem); background: var(--lm-surface); border: 1px solid var(--lm-line); }
.lm-hero-detail-image img { height: clamp(260px, 34vw, 460px); object-fit: cover; }

.lm-hero-spec-rail { min-height: auto; align-content: start; }
.lm-subpage-hero.lm-hero-spec-rail .lm-hero-copy { padding-block: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 3vw, 2.5rem); }
.lm-hero-spec-rail .lm-hero-copy { padding-block: clamp(4rem, 9vw, 8rem) clamp(2rem, 5vw, 4rem); border-bottom: 2px solid var(--lm-ink); }
.lm-device-rail { gap: 0 !important; margin-block: 0; border-inline: 1px solid var(--lm-line); }
.lm-device-rail > .wp-block-column { border-right: 1px solid var(--lm-line); }
.lm-device-rail > .wp-block-column:last-child { border-right: 0; }
.lm-device-rail-image { margin: 0; }
.lm-device-rail-image img { width: 100%; height: clamp(300px, 42vw, 620px); border-radius: 0; object-fit: cover; }

.lm-hero-portrait-ritual { min-height: auto; }
.lm-subpage-hero.lm-hero-portrait-ritual .lm-hero-ritual-columns { min-height: 0; }
.lm-subpage-hero.lm-hero-portrait-ritual .lm-hero-portrait img { height: clamp(360px, 48vw, 560px); }
.lm-hero-ritual-columns { align-items: center !important; min-height: min(820px, 86vh); }
.lm-hero-portrait-stack { position: relative; padding: 0; }
.lm-hero-portrait img { width: 82%; height: clamp(480px, 65vw, 760px); object-fit: cover; border-radius: 48% 48% 16px 16px; }
.lm-hero-inset { position: absolute; right: 0; bottom: -2rem; width: 42%; }
.lm-hero-inset img { aspect-ratio: 1; object-fit: cover; border: .7rem solid var(--lm-surface); border-radius: 50%; }

.lm-hero-scoreboard-strip { min-height: auto; padding-bottom: 0; }
.lm-subpage-hero.lm-hero-scoreboard-strip .lm-hero-scoreboard { padding-block: clamp(3rem, 6vw, 5rem); }
.lm-hero-scoreboard { align-items: end !important; padding-block: clamp(4rem, 10vw, 9rem); }
.lm-hero-score-card { border-width: 3px; border-color: var(--lm-accent-2); }
.lm-gear-strip { gap: .35rem !important; max-width: none !important; }
.lm-gear-strip-image { margin: 0; }
.lm-gear-strip-image img { width: 100%; height: clamp(220px, 28vw, 390px); border-radius: 0; object-fit: cover; filter: saturate(.8) contrast(1.08); }

.lm-chapter-columns { align-items: center !important; gap: clamp(2rem, 7vw, 7rem); }
.lm-chapter-image img { width: 100%; min-height: 420px; max-height: 680px; object-fit: cover; }
.lm-chapter-layout-spec-rail { border-top: 1px solid var(--lm-line); }
.lm-chapter-layout-spec-rail .lm-chapter-columns { align-items: stretch !important; }
.lm-chapter-layout-spec-rail .lm-chapter-image img { height: 100%; border-radius: 0; }
.lm-chapter-layout-portrait-ritual .lm-chapter-image img { border-radius: 180px 180px 18px 18px; }
.lm-chapter-layout-scoreboard-strip { border-top: 3px solid var(--lm-accent); }
.lm-chapter-layout-scoreboard-strip .lm-chapter-image img { border-radius: 0; clip-path: polygon(0 0, 94% 0, 100% 12%, 100% 100%, 6% 100%, 0 88%); }

.lm-program-grid { display: grid !important; gap: clamp(1rem, 2.5vw, 2rem); grid-template-columns: repeat(12, minmax(0, 1fr)); }
.lm-program-grid > * { grid-column: span 4; }
.lm-program-grid > :first-child { grid-column: span 7; }
.lm-program-grid > :nth-child(2) { grid-column: span 5; }
.lm-program-image img { aspect-ratio: 16 / 10; object-fit: cover; }
.lm-program-grid-spec-rail > * { border-radius: 0; }
.lm-program-grid-portrait-ritual > :nth-child(2n) { transform: translateY(2rem); }
.lm-program-grid-scoreboard-strip > * { border-width: 2px; }
.lm-faq-guide-grid, .lm-contact-prep-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1rem; }
.lm-faq-route-columns, .lm-dashboard-guide-columns { align-items: center !important; gap: clamp(2rem, 6vw, 6rem); }
.lm-faq-route-image img, .lm-dashboard-guide-image img { width: 100%; min-height: 380px; max-height: 560px; object-fit: cover; }
.lm-contact-response { align-items: stretch !important; }

.lm-ticker { position: relative; overflow: hidden; border-block: 1px solid var(--lm-line); background: var(--lm-surface-2); }
.lm-ticker-track { width: max-content; white-space: nowrap; animation: lm-ticker-motion 28s linear infinite; }
.lm-ticker.is-paused .lm-ticker-track { animation-play-state: paused; }
.lm-ticker-toggle { position: absolute; inset-block-start: 50%; inset-inline-end: .75rem; z-index: 1; min-height: 2.5rem; padding: .45rem .8rem; transform: translateY(-50%); border: 1px solid var(--lm-line); border-radius: 999px; color: var(--lm-text); background: var(--lm-surface); cursor: pointer; font: inherit; font-size: .8rem; font-weight: 750; }
.lm-ticker-toggle:hover { border-color: var(--lm-readable-accent); color: var(--lm-readable-accent); }
.lm-ticker-toggle:focus-visible { outline: 3px solid var(--lm-highlight); outline-offset: 3px; }

.lm-scroll-row { display: grid !important; grid-auto-flow: column; grid-auto-columns: min(84vw, 520px); overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: inline mandatory; padding-bottom: 1rem; }
.lm-scroll-row > * { scroll-snap-align: start; }
.lm-compare-table { overflow-x: auto; }
.lm-compare-table table { min-width: 700px; }

.lm-reveal { opacity: 1; filter: none; transform: none; transition: opacity .7s ease, filter .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
html.lm-reveal-ready body.loop-mobile-block .lm-reveal.is-visible { opacity: 1; filter: none; transform: none; }
.editor-styles-wrapper .lm-reveal, .block-editor-block-list__layout .lm-reveal { opacity: 1 !important; filter: none !important; transform: none !important; }

.lm-site-footer { margin-top: 0; padding-top: clamp(4rem, 7vw, 7rem); padding-bottom: 2rem; border-top: 1px solid var(--lm-line); background: var(--lm-surface-2); }
.lm-site-footer .wp-block-navigation { gap: .55rem; }
.lm-site-footer a { color: var(--lm-muted); }
.lm-site-footer a:hover { color: var(--lm-readable-accent); }
body.loop-mobile-block .wp-block-button__link { color: var(--lm-button-text); background: var(--lm-accent); }
.lm-404-home .wp-block-navigation-item__content { display: inline-flex; border-radius: 999px; padding: .75rem 1.35rem; color: var(--lm-button-text); background: var(--lm-accent); font-weight: 700; text-decoration: none; }

body.loop-mobile-block .woocommerce .price, body.loop-mobile-block .wc-block-components-product-price { color: var(--lm-readable-accent); font-weight: 800; }
body.loop-mobile-block .wc-block-components-button, body.loop-mobile-block .wc-block-cart__submit-button, body.loop-mobile-block .wc-block-components-checkout-place-order-button { border-radius: 999px !important; color: var(--lm-button-text) !important; background: var(--lm-accent) !important; font-weight: 800 !important; }
body.loop-mobile-block .wc-block-components-text-input input, body.loop-mobile-block .wc-block-components-combobox .wc-block-components-combobox-control input, body.loop-mobile-block .woocommerce input, body.loop-mobile-block .woocommerce select, body.loop-mobile-block .woocommerce textarea { color: var(--lm-text) !important; border-color: var(--lm-line) !important; border-radius: 16px !important; background: var(--lm-surface) !important; }
body.loop-mobile-block .woocommerce-message, body.loop-mobile-block .woocommerce-info { color: var(--lm-text); border-top-color: var(--lm-accent); background: var(--lm-surface-2); }


/* Design family: modular mobile catalog. */
body.loop-mobile-block {
  background:
    linear-gradient(color-mix(in srgb, var(--lm-accent) 7%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--lm-accent) 7%, transparent) 1px, transparent 1px),
    var(--lm-surface);
  background-size: 32px 32px;
}
.lm-site-header { background: color-mix(in srgb, var(--lm-surface) 78%, transparent); box-shadow: 0 10px 40px color-mix(in srgb, var(--lm-ink) 10%, transparent); }
.lm-hero { background: linear-gradient(125deg, var(--lm-surface) 0 42%, color-mix(in srgb, var(--lm-accent) 70%, transparent)), var(--lm-hero-image) center/cover; }
.lm-display-text { color: var(--lm-accent); letter-spacing: -.055em; }
.lm-card { border-radius: 28px; box-shadow: 0 18px 55px color-mix(in srgb, var(--lm-accent) 12%, transparent); }
.lm-card:hover { transform: translateY(-8px) scale(1.01); border-color: var(--lm-accent); }
html.lm-reveal-ready body.loop-mobile-block .lm-reveal { opacity: 0; transform: translateX(34px) scale(.98); }
@media (max-width: 600px) {
  body.loop-mobile-block .lm-section,
  body.loop-mobile-block .lm-section-compact { overflow-x: clip; }
}
@keyframes lm-ticker-motion { to { transform: translateX(-50%); } }
@keyframes lm-hero-motion { 50% { transform: translate3d(0, -1rem, 0) scale(1.05); } }
.lm-hero::after { animation: lm-hero-motion 5.5s cubic-bezier(.2,.8,.2,1) infinite; }


/* Tablet layout. */
@media (max-width: 1024px) {
  .lm-header-inner { min-height: 68px; flex-wrap: wrap !important; }
  .lm-primary-nav { order: 3; flex-basis: 100%; width: 100%; max-width: none; margin-inline: 0; }
  .lm-primary-nav .wp-block-navigation__responsive-container, .lm-primary-nav .wp-block-navigation__container, .lm-primary-nav .wp-block-page-list { width: 100%; max-width: none; }
  .lm-primary-nav .wp-block-navigation__container, .lm-primary-nav .wp-block-page-list { display: flex; flex-wrap: wrap; overflow: visible; }
  .lm-header-actions { margin-left: auto; }
  .lm-hero { min-height: 620px; }
  .lm-hero-spec-rail, .lm-hero-portrait-ritual, .lm-hero-scoreboard-strip { min-height: auto; }
  .lm-program-grid > *, .lm-program-grid > :first-child, .lm-program-grid > :nth-child(2) { grid-column: span 6; }
  .wp-block-post-template.is-flex-container { gap: 1.25rem; }
}

@media (max-width: 782px) {
  body.admin-bar .lm-site-header { top: var(--wp-admin--admin-bar--height, 46px); }
  .lm-site-footer .wp-block-column { flex-basis: 100% !important; }
}

/* Mobile layout. */
@media (max-width: 600px) {
  .lm-header-inner { gap: .65rem; }
  .lm-wordmark { font-size: 1rem; }
  .lm-hero { min-height: 540px; background-position: 62% center; }
  .lm-display { max-width: none; font-size: clamp(2rem, 8.6vw, 3.2rem) !important; }
  .lm-hero-panorama-story, .lm-hero-spec-rail, .lm-hero-portrait-ritual, .lm-hero-scoreboard-strip { min-height: auto; }
  .lm-hero-story-columns { margin-top: -1.5rem; }
  .lm-hero-ritual-columns { min-height: auto; }
  .lm-hero-portrait img { width: 90%; height: 480px; }
  .lm-hero-inset { bottom: -1rem; width: 40%; }
  .lm-about-editorial-copy { padding: 2rem 1.25rem; }
  .lm-about-editorial-image img { min-height: 320px; }
  .lm-device-rail { display: grid !important; grid-auto-flow: column; grid-auto-columns: 78vw; overflow-x: auto; scroll-snap-type: inline mandatory; }
  .lm-device-rail > * { scroll-snap-align: start; }
  .lm-gear-strip { display: grid !important; grid-auto-flow: column; grid-auto-columns: 82vw; overflow-x: auto; scroll-snap-type: inline mandatory; }
  .lm-gear-strip > * { scroll-snap-align: start; }
  .lm-chapter-image img { min-height: 300px; }
  .lm-program-grid { display: block !important; }
  .lm-program-grid > * { margin-bottom: 1rem; }
  .lm-program-grid-portrait-ritual > :nth-child(2n) { transform: none; }
  .lm-hero::after { right: -12%; top: 9%; }
  .lm-section, .lm-hero, .lm-article { padding-top: 3.5rem; padding-bottom: 3.5rem; }
  .lm-card { padding: 1.15rem; }
  .lm-ticker-toggle { inset-inline-end: .35rem; }
  .wp-block-query-pagination { gap: .65rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.loop-mobile-block *, body.loop-mobile-block *::before, body.loop-mobile-block *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .lm-ticker-track { animation: none !important; transform: none; }
  .lm-reveal, html.lm-reveal-ready body.loop-mobile-block .lm-reveal { opacity: 1; filter: none; transform: none; }
}
