/* Base — typography, links, focus, media, overflow guards. Loaded after Astra + Elementor. */
html { font-size: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
html, body { overflow-x: hidden; overflow-x: clip; max-width: 100vw; }
body, body.ast-separate-container, body.ast-plain-container {
  background: var(--lm-bg); color: var(--lm-text);
  font-family: var(--lm-font-sans); font-size: var(--lm-fs-1); line-height: var(--lm-lh-body);
  -webkit-font-smoothing: antialiased;
}
@media (min-width: 768px) { body { font-size: 1.0625rem; } }
img, svg, video, iframe, table { max-width: 100%; }
img { height: auto; }
h1, h2, h3, h4, h5, h6, .entry-title {
  color: var(--lm-ink); font-family: var(--lm-font-sans); line-height: var(--lm-lh-tight);
  letter-spacing: -0.01em; font-weight: 700; margin: 0 0 var(--lm-s-4);
}
h1, .entry-title { font-size: var(--lm-fs-5); margin-bottom: var(--lm-s-5); }
h2 { font-size: var(--lm-fs-4); margin-top: var(--lm-s-7); }
h3 { font-size: var(--lm-fs-3); margin-top: var(--lm-s-6); }
h4 { font-size: var(--lm-fs-2); margin-top: var(--lm-s-5); }
p, ul, ol { margin: 0 0 var(--lm-s-5); }
li { margin-bottom: var(--lm-s-2); }
.entry-content > *, .elementor-widget-text-editor { max-width: var(--lm-prose); }
a { color: var(--lm-link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
a:hover { color: var(--lm-link-hover); text-decoration-thickness: 2px; }
/* WCAG 2.2 focus appearance: visible, thick, offset, on every focusable */
:focus { outline: none; }
:focus-visible { outline: 3px solid var(--lm-focus); outline-offset: 2px; border-radius: 2px; }
.skip-link:focus, .screen-reader-text:focus {
  position: absolute !important; left: var(--lm-s-4); top: var(--lm-s-4); z-index: 100000;
  width: auto; height: auto; clip: auto; clip-path: none; padding: var(--lm-s-3) var(--lm-s-4);
  background: var(--lm-navy); color: var(--lm-on-navy); border-radius: var(--lm-radius-sm); text-decoration: none;
}
hr { border: 0; border-top: 1px solid var(--lm-border); margin: var(--lm-s-6) 0; }
blockquote {
  margin: var(--lm-s-5) 0; padding: var(--lm-s-4) var(--lm-s-5); border-left: 4px solid var(--lm-green);
  background: var(--lm-surface); color: var(--lm-ink); border-radius: 0 var(--lm-radius-sm) var(--lm-radius-sm) 0;
}
code, kbd, pre { font-family: var(--lm-font-mono); font-size: 0.9em; }
::selection { background: var(--lm-green); color: var(--lm-on-green); }
/* Astra: neutralise legacy blue; header line */
.ast-site-identity .site-title { font-weight: 700; letter-spacing: -0.02em; }
.ast-site-identity .site-title a, .ast-site-identity .site-title a:hover { color: var(--lm-navy); text-decoration: none; }
.site-header, .ast-primary-header-bar { background: var(--lm-surface); }
.ast-primary-header-bar { border-bottom: 1px solid var(--lm-border); }
.main-header-menu .menu-link { color: var(--lm-ink); font-weight: 500; text-decoration: none; }
.main-header-menu .menu-item:hover > .menu-link,
.main-header-menu .current-menu-item > .menu-link,
.main-header-menu .current-menu-ancestor > .menu-link { color: var(--lm-navy); box-shadow: inset 0 -3px 0 var(--lm-green); }
.ast-breadcrumbs-wrapper, .ast-breadcrumbs { font-size: var(--lm-fs-0); color: var(--lm-muted); }
/* Elementor containers must never widen the page (mobile clipping, finding C.1) */
.elementor-section.elementor-section-boxed > .elementor-container, .e-con-boxed > .e-con-inner { max-width: min(var(--lm-content), 100%); }
.elementor-widget-container img { max-width: 100%; height: auto; }
.elementor-widget-text-editor { color: var(--lm-text); }
/* Print */
@media print {
  .site-header, .site-footer, .ast-mobile-header-wrap, .lm-toc, .lm-btn, nav, .skip-link, .lm-footer { display: none !important; }
  body { background: #fff; color: #000; font-size: 11pt; }
  a { color: #000; text-decoration: none; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.85em; }
  .lm-table-wrap { overflow: visible; }
}
