/* ML Base Template v1.2.0 */
:root {
  --ml-primary: #111827;
  --ml-secondary: #374151;
  --ml-accent: #2563eb;
  --ml-bg: #ffffff;
  --ml-surface: #f8fafc;
  --ml-text: #111827;
  --ml-muted: #6b7280;
  --ml-border: #e5e7eb;
  --ml-container: 1200px;
  --ml-content: 860px;
  --ml-font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ml-font-heading: inherit;
  --ml-font-size-base: 16px;
  --ml-line-height-body: 1.7;
  --ml-line-height-heading: 1.15;
  --ml-section-padding: 72px;
  --ml-gap: 32px;
  --ml-radius: 14px;
  --ml-radius-sm: 8px;
  --ml-shadow: 0 20px 60px rgba(15, 23, 42, 0.08);
}

* { box-sizing: border-box; }
html { font-size: var(--ml-font-size-base); scroll-behavior: auto; }
body.ml-site,
body.ml-component-view,
body.ml-error-page,
body.ml-offline-page {
  margin: 0;
  background: var(--ml-bg);
  color: var(--ml-text);
  font-family: var(--ml-font-body);
  line-height: var(--ml-line-height-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--ml-link, var(--ml-accent)); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--ml-primary); }
h1, h2, h3, h4, h5, h6 {
  margin: 0 0 0.65em;
  color: var(--ml-primary);
  font-family: var(--ml-font-heading);
  line-height: var(--ml-line-height-heading);
  font-weight: var(--ml-heading-weight);
  letter-spacing: -0.025em;
}
h1 { font-size: clamp(2.25rem, 4.5vw, var(--ml-h1-max)); }
h2 { font-size: clamp(1.85rem, 3vw, var(--ml-h2-max)); }
h3 { font-size: clamp(1.35rem, 2vw, 2rem); }
p { margin: 0 0 1.15rem; }
ul, ol { margin-top: 0; }

.ml-skip-link {
  position: absolute;
  left: -999px;
  top: 12px;
  z-index: 1000;
  padding: 10px 14px;
  background: var(--ml-primary);
  color: #fff;
  border-radius: var(--ml-radius-sm);
}
.ml-skip-link:focus { left: 12px; }

.ml-container {
  width: min(100% - 40px, var(--ml-container));
  margin-inline: auto;
}
.ml-container-fluid {
  width: min(100% - 40px, 100%);
  margin-inline: auto;
}
.ml-container-narrow { max-width: var(--ml-content); }
.ml-layout-boxed .ml-site-wrap,
.ml-layout-boxed .ml-header,
.ml-layout-boxed .ml-footer { max-width: var(--ml-container); margin-inline: auto; }

.ml-topbar {
  border-bottom: 1px solid var(--ml-border);
  color: var(--ml-muted);
  font-size: 0.875rem;
  background: var(--ml-surface);
}
.ml-topbar .ml-container { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }

.ml-header {
  position: relative;
  z-index: 20;
  background: rgba(255,255,255,0.94);
  border-bottom: 1px solid var(--ml-border);
  backdrop-filter: saturate(140%) blur(10px);
}
.ml-header-inner {
  min-height: 78px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
}
.ml-site-brand {
  color: var(--ml-primary);
  font-weight: 800;
  font-size: 1.15rem;
  text-decoration: none;
  letter-spacing: -0.02em;
}
.ml-header-center { display: flex; justify-content: flex-end; align-items: center; gap: 1.5rem; }
.ml-header-centered .ml-header-inner { grid-template-columns: 1fr auto 1fr; }
.ml-header-centered .ml-header-center { justify-content: center; }
.ml-header-split .ml-header-center { justify-content: center; }
.ml-header-minimal .ml-header-center { display: none; }

.ml-header ul.mod-menu,
.ml-mobile-menu ul.mod-menu,
.ml-header .mod-menu {
  display: flex;
  align-items: center;
  gap: 1.35rem;
  padding: 0;
  margin: 0;
  list-style: none;
}
.ml-header .mod-menu a,
.ml-header ul.mod-menu a {
  color: var(--ml-primary);
  text-decoration: none;
  font-weight: 650;
  font-size: 0.95rem;
}
.ml-header .mod-menu a:hover { color: var(--ml-accent); }

.ml-search-toggle {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ml-border);
  border-radius: 999px;
  background: transparent;
  color: var(--ml-primary);
  cursor: pointer;
  font-size: 1.2rem;
}
.ml-menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 0;
  background: transparent;
  border: 1px solid var(--ml-border);
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
}
.ml-menu-toggle span:not(.visually-hidden) { display: block; width: 18px; height: 2px; background: var(--ml-primary); }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.ml-mobile-menu { border-top: 1px solid var(--ml-border); padding: 20px 0; background: #fff; }
.ml-mobile-menu-inner { width: min(100% - 40px, var(--ml-container)); margin-inline: auto; }
.ml-mobile-menu-close { display: none; }
.ml-mobile-menu .mod-menu { align-items: stretch; flex-direction: column; gap: 0; }
.ml-mobile-menu .mod-menu a { display: block; padding: 12px 0; color: var(--ml-primary); text-decoration: none; border-bottom: 1px solid var(--ml-border); }

.ml-hero { background: var(--ml-surface); }
.ml-breadcrumbs { padding: 16px 0; color: var(--ml-muted); border-bottom: 1px solid var(--ml-border); font-size: 0.925rem; }

.ml-main { padding: var(--ml-section-padding) 0; }
.ml-main-layout { display: grid; grid-template-columns: 1fr; gap: var(--ml-sidebar-gap, var(--ml-gap)); }
.ml-main-layout.has-left { grid-template-columns: var(--ml-sidebar-left, 280px) 1fr; }
.ml-main-layout.has-right { grid-template-columns: 1fr var(--ml-sidebar-right, 280px); }
.ml-main-layout.has-left.has-right { grid-template-columns: var(--ml-sidebar-left, 260px) 1fr var(--ml-sidebar-right, 260px); }
.ml-content { min-width: 0; }
.ml-content > .com-content-article,
.ml-article { max-width: var(--ml-content); margin-inline: auto; }
.ml-sidebar { min-width: 0; }

.ml-section { padding: var(--ml-section-padding) 0; }
.ml-main-spacing-none .ml-main { padding: 0; }
.ml-main-spacing-compact .ml-main { padding: calc(var(--ml-section-padding) * .55) 0; }
.ml-main-spacing-large .ml-main { padding: calc(var(--ml-section-padding) * 1.35) 0; }
.ml-main-width-full .ml-main > .ml-container-fluid { width: min(100% - 40px, 100%); }
.ml-section-style-surface { background: var(--ml-surface); }
.ml-section-style-dark { background: #111827; color: #fff; border-top-color: rgba(255,255,255,.14); }
.ml-section-style-primary { background: var(--ml-primary); color: #fff; border-top-color: rgba(255,255,255,.14); }
.ml-section-style-accent { background: var(--ml-accent); color: #fff; border-top-color: rgba(255,255,255,.18); }
.ml-section-style-dark h1,.ml-section-style-dark h2,.ml-section-style-dark h3,.ml-section-style-dark h4,.ml-section-style-primary h1,.ml-section-style-primary h2,.ml-section-style-primary h3,.ml-section-style-primary h4,.ml-section-style-accent h1,.ml-section-style-accent h2,.ml-section-style-accent h3,.ml-section-style-accent h4 { color: #fff; }
.ml-section-style-dark a,.ml-section-style-primary a,.ml-section-style-accent a { color: #fff; }
.ml-section-width-narrow > .ml-container { max-width: var(--ml-content); }

.ml-section + .ml-section { border-top: 1px solid var(--ml-border); }
.ml-section-header { max-width: 720px; margin-bottom: 36px; }
.ml-section-title { margin-bottom: 0.35em; }
.ml-section-intro { color: var(--ml-muted); font-size: 1.1rem; }
.ml-eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 12px; color: var(--ml-accent); text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; font-weight: 800; }

.ml-grid { display: grid; gap: var(--ml-gap); }
.ml-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ml-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ml-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ml-card { background: #fff; border: 1px solid var(--ml-border); border-radius: var(--ml-radius); overflow: hidden; box-shadow: var(--ml-shadow); }
.ml-card-body { padding: 24px; }
.ml-card-title { font-size: 1.25rem; margin-bottom: 0.35em; }
.ml-card-text { color: var(--ml-muted); }
.ml-meta { color: var(--ml-muted); font-size: 0.925rem; }
.ml-badge { display: inline-flex; align-items: center; border: 1px solid var(--ml-border); border-radius: 999px; padding: 4px 10px; font-size: .78rem; font-weight: 700; color: var(--ml-muted); }
.ml-link-arrow { display: inline-flex; align-items: center; gap: .45em; font-weight: 750; text-decoration: none; }
.ml-link-arrow::after { content: "→"; }

.ml-btn,
a.ml-btn,
button.ml-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  min-height: 44px;
  padding: .75rem 1.15rem;
  border: 1px solid transparent;
  border-radius: var(--ml-button-radius);
  font-weight: var(--ml-button-weight);
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.ml-btn:hover { transform: translateY(-1px); }
.ml-btn-primary { background: var(--ml-accent); color: #fff; }
.ml-btn-primary:hover { color: #fff; background: var(--ml-primary); }
.ml-btn-secondary { background: var(--ml-primary); color: #fff; }
.ml-btn-outline { background: transparent; color: var(--ml-primary); border-color: var(--ml-border); }
.ml-btn-light { background: #fff; color: var(--ml-primary); }
.ml-btn-dark { background: #111; color: #fff; }
.ml-btn-small { min-height: 36px; padding: .55rem .85rem; font-size: .875rem; }
.ml-btn-large { min-height: 54px; padding: 1rem 1.35rem; font-size: 1.05rem; }

.com-content-article__body,
.ml-article-body { font-size: 1.05rem; }
.com-content-article img,
.item-image img {
  border-radius: var(--ml-radius);
}
.article-info,
dl.article-info { color: var(--ml-muted); font-size: .9rem; display: flex; flex-wrap: wrap; gap: .65rem 1rem; padding: 0; margin: 0 0 1.5rem; }
.page-header { margin-bottom: 1.5rem; }
.blog-items,
.com-content-category-blog__items { display: grid; gap: var(--ml-gap); }
.blog-item,
.com-content-category-blog__item { border-bottom: 1px solid var(--ml-border); padding-bottom: 32px; }
.pagination { display: flex; gap: 8px; list-style: none; padding: 0; }
.pagination a,
.pagination span { display: inline-flex; min-width: 38px; min-height: 38px; align-items: center; justify-content: center; border: 1px solid var(--ml-border); border-radius: var(--ml-radius-sm); text-decoration: none; }

.ml-footer { color: color-mix(in srgb, var(--ml-footer-text) 78%, transparent); background: var(--ml-footer-bg); }
.ml-footer h1,.ml-footer h2,.ml-footer h3,.ml-footer h4 { color: var(--ml-footer-text); }
.ml-footer a { color: var(--ml-footer-text); }
.ml-footer-top { padding: 48px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.ml-footer-main { padding: 56px 0; }
.ml-footer-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ml-gap); }
.ml-footer-bottom { padding: 22px 0; border-top: 1px solid rgba(255,255,255,.12); font-size: .9rem; }
.ml-footer-bottom p { margin: 0; }
.ml-footer-minimal .ml-footer-main { display: none; }
.ml-footer-empty .ml-footer-main,
.ml-footer-empty .ml-footer-bottom { display: none; }

.ml-module { margin-bottom: 24px; }
.ml-module-card { padding: 24px; background: #fff; border: 1px solid var(--ml-border); border-radius: var(--ml-radius); box-shadow: var(--ml-shadow); }
.ml-module-section { margin-bottom: var(--ml-gap); }
.ml-module-dark { padding: 24px; background: var(--ml-primary); color: #fff; border-radius: var(--ml-radius); }
.ml-module-boxed { padding: 24px; background: var(--ml-surface); border-radius: var(--ml-radius); }

.ml-error-page,
.ml-offline-page { min-height: 100vh; display: grid; place-items: center; padding: 32px; background: var(--ml-surface); }
.ml-error-card { max-width: 680px; padding: clamp(32px, 7vw, 80px); background: #fff; border: 1px solid var(--ml-border); border-radius: var(--ml-radius); box-shadow: var(--ml-shadow); text-align: center; }

.ml-layout-full .ml-container { width: min(100% - 40px, 100%); }
.ml-header-width-full .ml-header-inner { padding-inline: 20px; }
.has-header-shadow .ml-header { box-shadow: 0 10px 30px rgba(15,23,42,.08); }
.ml-header-density-compact .ml-header-inner { min-height: 62px; }
.ml-header-density-large .ml-header-inner { min-height: 96px; }
.ml-footer-institutional .ml-footer-main { padding-top: 40px; padding-bottom: 40px; }
.ml-buttons-pill .ml-btn { border-radius: 999px; }
.ml-buttons-sharp .ml-btn { border-radius: 0; }

@media (max-width: 980px) {
  .ml-header-center { display: none; }
  .ml-search-toggle {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ml-border);
  border-radius: 999px;
  background: transparent;
  color: var(--ml-primary);
  cursor: pointer;
  font-size: 1.2rem;
}
.ml-menu-toggle { display: inline-flex; }
  .ml-main-layout,
  .ml-main-layout.has-left,
  .ml-main-layout.has-right,
  .ml-main-layout.has-left.has-right { grid-template-columns: 1fr; }
  .ml-grid-3,
  .ml-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ml-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  :root { --ml-section-padding: 48px; }
  .ml-container { width: min(100% - 28px, var(--ml-container)); }
  .ml-header-inner { min-height: 68px; gap: 16px; }
  .ml-grid-2,
  .ml-grid-3,
  .ml-grid-4,
  .ml-footer-grid { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Content overrides v0.5.0
   -------------------------------------------------------------------------- */
.ml-page-header {
    padding-top: clamp(48px, 7vw, 96px);
    padding-bottom: clamp(24px, 4vw, 48px);
}
.ml-page-title {
    max-width: var(--ml-content);
    margin: 0;
    font-family: var(--ml-font-heading);
    font-size: clamp(2.2rem, 5vw, var(--ml-h1-max));
    line-height: var(--ml-line-height-heading);
    font-weight: var(--ml-heading-weight);
    letter-spacing: -0.04em;
}
.ml-page-intro {
    max-width: var(--ml-content);
    margin-top: 18px;
    color: var(--ml-muted);
    font-size: 1.08rem;
}
.ml-article {
    width: min(100% - 32px, var(--ml-content));
    margin: 0 auto;
    padding: clamp(48px, 8vw, 96px) 0;
}
.ml-article-width-default { width: min(100% - 32px, var(--ml-container)); }
.ml-article-width-wide { width: min(100% - 32px, 1440px); }
.ml-article-align-center .ml-article-header { text-align: center; margin-inline: auto; }
.ml-article-header {
    max-width: var(--ml-content);
    margin-bottom: clamp(28px, 5vw, 52px);
}
.ml-article-kicker,
.ml-blog-card-kicker {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: 14px;
    color: var(--ml-accent);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ml-article-kicker a { color: inherit; text-decoration: none; }
.ml-article-title {
    margin: 0;
    font-family: var(--ml-font-heading);
    font-size: clamp(2.3rem, 6vw, var(--ml-h1-max));
    line-height: var(--ml-line-height-heading);
    font-weight: var(--ml-heading-weight);
    letter-spacing: -0.055em;
}
.ml-article-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 18px;
    color: var(--ml-muted);
    font-size: .94rem;
}
.ml-article-align-center .ml-article-meta { justify-content: center; }
.ml-article-image {
    margin: 0 0 clamp(32px, 5vw, 64px);
    border-radius: var(--ml-radius);
    overflow: hidden;
    background: var(--ml-surface);
}
.ml-article-image img {
    display: block;
    width: 100%;
    height: auto;
}
.ml-article-image figcaption {
    padding: 12px 16px;
    color: var(--ml-muted);
    font-size: .9rem;
    border: 1px solid var(--ml-border);
    border-top: 0;
}
.ml-article-image-wide .ml-article-image {
    width: min(100vw - 32px, var(--ml-container));
    margin-left: 50%;
    transform: translateX(-50%);
}
.ml-article-content {
    max-width: var(--ml-content);
    margin-inline: auto;
    font-size: 1.04rem;
}
.ml-article-content > *:first-child { margin-top: 0; }
.ml-article-content h2,
.ml-article-content h3,
.ml-article-content h4 {
    margin-top: 2.2em;
    margin-bottom: .7em;
    letter-spacing: -0.025em;
}
.ml-article-content p { margin: 0 0 1.25em; }
.ml-article-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--ml-radius-sm);
}
.ml-article-content blockquote {
    margin: 2rem 0;
    padding: 1.2rem 1.4rem;
    border-left: 4px solid var(--ml-accent);
    background: var(--ml-surface);
    border-radius: 0 var(--ml-radius-sm) var(--ml-radius-sm) 0;
    color: var(--ml-secondary);
}
.ml-article-tags {
    max-width: var(--ml-content);
    margin: 40px auto 0;
}
.ml-blog-grid {
    display: grid;
    grid-template-columns: repeat(var(--ml-blog-columns, 3), minmax(0, 1fr));
    gap: var(--ml-gap);
    padding-bottom: var(--ml-section-padding);
}
.ml-blog-columns-1 { --ml-blog-columns: 1; }
.ml-blog-columns-2 { --ml-blog-columns: 2; }
.ml-blog-columns-3 { --ml-blog-columns: 3; }
.ml-blog-columns-4 { --ml-blog-columns: 4; }
.ml-blog-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--ml-border);
    border-radius: var(--ml-radius);
    background: #fff;
    box-shadow: var(--ml-shadow);
}
.ml-blog-card-image {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--ml-surface);
}
.ml-blog-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}
.ml-blog-card:hover .ml-blog-card-image img { transform: scale(1.035); }
.ml-blog-card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: clamp(20px, 3vw, 30px);
}
.ml-blog-card-title {
    margin: 0;
    font-family: var(--ml-font-heading);
    font-size: clamp(1.25rem, 2vw, 1.65rem);
    line-height: 1.18;
    letter-spacing: -0.03em;
}
.ml-blog-card-title a {
    color: var(--ml-text);
    text-decoration: none;
}
.ml-blog-card-title a:hover { color: var(--ml-link); }
.ml-blog-card-meta {
    margin-top: 12px;
    color: var(--ml-muted);
    font-size: .9rem;
}
.ml-blog-card-text {
    margin-top: 16px;
    color: var(--ml-secondary);
}
.ml-link-arrow {
    display: inline-flex;
    align-items: center;
    gap: .45em;
    margin-top: auto;
    padding-top: 20px;
    color: var(--ml-link);
    font-weight: 750;
    text-decoration: none;
}
.ml-link-arrow::after {
    content: "→";
    transition: transform .2s ease;
}
.ml-link-arrow:hover::after { transform: translateX(3px); }
.ml-pagination {
    padding-bottom: var(--ml-section-padding);
}
.ml-pagination .pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.ml-pagination a,
.ml-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid var(--ml-border);
    border-radius: var(--ml-radius-sm);
    text-decoration: none;
}
.ml-pagination .active span,
.ml-pagination a:hover {
    background: var(--ml-primary);
    color: #fff;
    border-color: var(--ml-primary);
}
.ml-module-no-padding { padding: 0 !important; }

@media (max-width: 960px) {
    .ml-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .ml-blog-grid { grid-template-columns: 1fr; }
    .ml-article { width: min(100% - 24px, var(--ml-content)); }
}

/* --------------------------------------------------------------------------
   v0.5.1 logo and menu compatibility
   -------------------------------------------------------------------------- */
.ml-site-brand {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  min-width: 0;
}
.ml-site-logo {
  display: block;
  width: auto;
  height: auto;
  object-fit: contain;
}
.ml-site-brand-text { display: inline-block; }
.ml-header .navbar-nav,
.ml-header .nav,
.ml-header ul.menu,
.ml-header ul.mod-menu,
.ml-header .mod-menu {
  display: flex;
  align-items: center;
  gap: 1.35rem;
  padding: 0;
  margin: 0;
  list-style: none;
}
.ml-header .navbar-nav a,
.ml-header .nav a,
.ml-header ul.menu a,
.ml-header ul.mod-menu a,
.ml-header .mod-menu a {
  color: var(--ml-primary);
  text-decoration: none;
  font-weight: 650;
  font-size: 0.95rem;
}
.ml-header .navbar-nav a:hover,
.ml-header .nav a:hover,
.ml-header ul.menu a:hover,
.ml-header ul.mod-menu a:hover,
.ml-header .mod-menu a:hover { color: var(--ml-accent); }
.ml-mobile-menu .navbar-nav,
.ml-mobile-menu .nav,
.ml-mobile-menu ul.menu,
.ml-mobile-menu ul.mod-menu,
.ml-mobile-menu .mod-menu {
  display: flex;
  align-items: stretch;
  flex-direction: column;
  gap: 0;
  padding: 0;
  margin: 0;
  list-style: none;
}
.ml-mobile-menu .navbar-nav a,
.ml-mobile-menu .nav a,
.ml-mobile-menu ul.menu a,
.ml-mobile-menu ul.mod-menu a,
.ml-mobile-menu .mod-menu a {
  display: block;
  padding: 12px 0;
  color: var(--ml-primary);
  text-decoration: none;
  border-bottom: 1px solid var(--ml-border);
}
@media (max-width: 980px) {
  .ml-site-logo { max-width: min(100%, 180px); }
}

/* --------------------------------------------------------------------------
   v0.5.2 Header Builder Lite + mobile logo
   -------------------------------------------------------------------------- */
.ml-header-row { border-bottom: 1px solid var(--ml-border); }
.ml-header-row-top,
.ml-header-row-bottom { background: var(--ml-surface); font-size: .9rem; color: var(--ml-muted); }
.ml-header-row-main { background: rgba(255,255,255,0.94); }
.ml-header-row-inner {
  min-height: 42px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
}
.ml-header-row-inner .ml-header-slot-left { justify-self: start; }
.ml-header-row-inner .ml-header-slot-center { justify-self: center; }
.ml-header-row-inner .ml-header-slot-right { justify-self: end; }
.ml-header-slot { min-width: 0; display: flex; align-items: center; gap: 1rem; }
.ml-header-left { justify-content: flex-start; }
.ml-header-center { justify-content: center; }
.ml-header-right { justify-content: flex-end; }
.ml-site-logo--mobile { display: none; }
.ml-site-logo--desktop { display: block; }
.ml-site-brand:has(.ml-site-logo--mobile) .ml-site-logo--desktop { display: block; }

.ml-header-layout-logo-left-menu-right .ml-header-inner { grid-template-columns: auto 1fr auto; }
.ml-header-layout-logo-left-menu-right .ml-header-center { justify-content: flex-end; }
.ml-header-layout-centered-logo .ml-header-inner { grid-template-columns: 1fr auto 1fr; }
.ml-header-layout-centered-logo .ml-header-left { order: 2; justify-content: center; }
.ml-header-layout-centered-logo .ml-header-center { order: 1; justify-content: flex-start; }
.ml-header-layout-centered-logo .ml-header-right { order: 3; justify-content: flex-end; }
.ml-header-layout-minimal-actions .ml-header-center { display: none; }

.ml-header .navbar-nav,
.ml-header .nav,
.ml-header ul.menu,
.ml-header ul.mod-menu,
.ml-header .mod-menu {
  flex-wrap: wrap;
}
.ml-header .metismenu.mod-menu .mm-toggler,
.ml-header .metismenu.mod-menu .metismenu-item > button {
  color: var(--ml-primary);
}

@media (max-width: 980px) {
  .ml-header-row-top,
  .ml-header-row-bottom { display: none; }
  .ml-header-inner { grid-template-columns: 1fr auto; }
  .ml-header-center { display: none; }
  .ml-header-right { justify-content: flex-end; }
  .ml-site-brand:has(.ml-site-logo--mobile) .ml-site-logo--desktop { display: none; }
  .ml-site-logo--mobile { display: block; }
}

/* Native Joomla menu rendering */
.ml-native-navigation { display: flex; align-items: center; }
.ml-native-navigation { width: 100%; }
.ml-native-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: var(--ml-menu-gap); }
.ml-menu-align-left .ml-native-menu { justify-content: flex-start; }
.ml-menu-align-center .ml-native-menu { justify-content: center; }
.ml-menu-align-right .ml-native-menu { justify-content: flex-end; }
.ml-native-menu-item { position: relative; margin: 0; }
.ml-native-menu-link { display: inline-flex; align-items: center; min-height: 42px; padding: var(--ml-menu-padding-y) var(--ml-menu-padding-x); border-radius: var(--ml-menu-radius); color: var(--ml-menu-color); text-decoration: none; font-size: var(--ml-menu-font-size); font-weight: var(--ml-menu-font-weight); text-transform: var(--ml-menu-text-transform); letter-spacing: var(--ml-menu-letter-spacing); line-height: 1.2; transition: color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease; }
.ml-native-menu-link:hover, .ml-native-menu-item.is-active > .ml-native-menu-link { color: var(--ml-menu-hover-color); background: var(--ml-menu-hover-bg); }
.ml-native-menu-item.is-active > .ml-native-menu-link { color: var(--ml-menu-active-color); background: var(--ml-menu-active-bg); }
.ml-menu-style-text .ml-native-menu-link { background: transparent; padding-inline: calc(var(--ml-menu-padding-x) * .55); }
.ml-menu-style-text .ml-native-menu-link:hover, .ml-menu-style-text .ml-native-menu-item.is-active > .ml-native-menu-link { background: transparent; }
.ml-menu-style-underline .ml-native-menu-link { position: relative; background: transparent; border-radius: 0; padding-inline: calc(var(--ml-menu-padding-x) * .55); }
.ml-menu-style-underline .ml-native-menu-link::after { content: ''; position: absolute; left: calc(var(--ml-menu-padding-x) * .55); right: calc(var(--ml-menu-padding-x) * .55); bottom: 3px; height: 2px; background: currentColor; transform: scaleX(0); transform-origin: center; transition: transform .18s ease; }
.ml-menu-style-underline .ml-native-menu-link:hover::after, .ml-menu-style-underline .ml-native-menu-item.is-active > .ml-native-menu-link::after { transform: scaleX(1); }
.ml-menu-style-underline .ml-native-menu-link:hover, .ml-menu-style-underline .ml-native-menu-item.is-active > .ml-native-menu-link { background: transparent; }
.ml-menu-style-pill .ml-native-menu-link:hover, .ml-menu-style-pill .ml-native-menu-item.is-active > .ml-native-menu-link { border-radius: 999px; }
.ml-menu-style-boxed .ml-native-menu-link { border: 1px solid var(--ml-border); background: var(--ml-surface); }
.ml-menu-style-boxed .ml-native-menu-link:hover, .ml-menu-style-boxed .ml-native-menu-item.is-active > .ml-native-menu-link { box-shadow: 0 10px 28px rgba(15, 23, 42, .08); transform: translateY(-1px); }
.ml-native-menu-level-2 { position: absolute; left: 0; top: 100%; z-index: 40; min-width: var(--ml-dropdown-width); display: none; flex-direction: column; align-items: stretch; gap: 0.125rem; padding: 0.5rem; border: 1px solid var(--ml-border); border-radius: var(--ml-dropdown-radius); background: var(--ml-dropdown-bg); box-shadow: var(--ml-dropdown-shadow); }
.ml-native-menu-level-2 .ml-native-menu-link { width: 100%; justify-content: flex-start; white-space: nowrap; min-height: 38px; color: var(--ml-dropdown-color); background: transparent; border: 0; box-shadow: none; transform: none; }
.ml-native-menu-level-2 .ml-native-menu-link:hover, .ml-native-menu-level-2 .ml-native-menu-item.is-active > .ml-native-menu-link { background: var(--ml-dropdown-hover-bg); color: var(--ml-menu-hover-color); }
.ml-native-menu-item.has-children:hover > .ml-native-menu-level-2, .ml-native-menu-item.has-children:focus-within > .ml-native-menu-level-2 { display: flex; }
.ml-mobile-menu .ml-native-navigation, .ml-mobile-menu .ml-native-menu { display: block; width: 100%; }
.ml-mobile-menu .ml-native-menu-link { width: 100%; justify-content: flex-start; }
.ml-mobile-menu .ml-native-menu-level-2 { position: static; display: block; border: 0; box-shadow: none; padding: 0 0 0 1rem; background: transparent; }

/* Menu alignment fix: apply alignment to the whole header slot/navigation, not only to the UL. */
.ml-header-slot:has(.ml-native-navigation),
.ml-header-slot:has(.ml-menu-position),
.ml-header-slot:has(.mod-menu),
.ml-header-slot:has(ul.menu) {
  width: 100%;
}
.ml-menu-align-left .ml-header-slot:has(.ml-native-navigation),
.ml-menu-align-left .ml-header-slot:has(.ml-menu-position),
.ml-menu-align-left .ml-native-navigation,
.ml-menu-align-left .ml-menu-position { justify-content: flex-start; }
.ml-menu-align-center .ml-header-slot:has(.ml-native-navigation),
.ml-menu-align-center .ml-header-slot:has(.ml-menu-position),
.ml-menu-align-center .ml-native-navigation,
.ml-menu-align-center .ml-menu-position { justify-content: center; }
.ml-menu-align-right .ml-header-slot:has(.ml-native-navigation),
.ml-menu-align-right .ml-header-slot:has(.ml-menu-position),
.ml-menu-align-right .ml-native-navigation,
.ml-menu-align-right .ml-menu-position { justify-content: flex-end; }
.ml-menu-align-left .ml-header ul.menu,
.ml-menu-align-left .ml-header ul.mod-menu,
.ml-menu-align-left .ml-header .mod-menu { justify-content: flex-start; }
.ml-menu-align-center .ml-header ul.menu,
.ml-menu-align-center .ml-header ul.mod-menu,
.ml-menu-align-center .ml-header .mod-menu { justify-content: center; }
.ml-menu-align-right .ml-header ul.menu,
.ml-menu-align-right .ml-header ul.mod-menu,
.ml-menu-align-right .ml-header .mod-menu { justify-content: flex-end; }

/* --------------------------------------------------------------------------
   v0.8.0 native menu stability and multi-level dropdowns
   -------------------------------------------------------------------------- */
.ml-native-menu-link { gap: .45em; }
.ml-submenu-indicator {
  display: inline-block;
  width: .42em;
  height: .42em;
  margin-left: .1em;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  opacity: .7;
}
.ml-native-menu-item.is-active-trail > .ml-native-menu-link {
  color: var(--ml-menu-active-color);
}
.ml-native-menu-level-2,
.ml-native-menu-level-3,
.ml-native-menu-level-4,
.ml-native-menu-level-5,
.ml-native-menu-level-6,
.ml-native-menu-level-7,
.ml-native-menu-level-8 {
  position: absolute;
  z-index: 40;
  min-width: var(--ml-dropdown-width);
  display: none;
  flex-direction: column;
  align-items: stretch;
  gap: 0.125rem;
  padding: 0.5rem;
  border: 1px solid var(--ml-border);
  border-radius: var(--ml-dropdown-radius);
  background: var(--ml-dropdown-bg);
  box-shadow: var(--ml-dropdown-shadow);
}
.ml-native-menu-level-2 { left: 0; top: 100%; }
.ml-native-menu-level-3,
.ml-native-menu-level-4,
.ml-native-menu-level-5,
.ml-native-menu-level-6,
.ml-native-menu-level-7,
.ml-native-menu-level-8 { left: 100%; top: -0.5rem; }
.ml-native-menu-level-2 .ml-native-menu-link,
.ml-native-menu-level-3 .ml-native-menu-link,
.ml-native-menu-level-4 .ml-native-menu-link,
.ml-native-menu-level-5 .ml-native-menu-link,
.ml-native-menu-level-6 .ml-native-menu-link,
.ml-native-menu-level-7 .ml-native-menu-link,
.ml-native-menu-level-8 .ml-native-menu-link {
  width: 100%;
  justify-content: space-between;
  white-space: nowrap;
  min-height: 38px;
  color: var(--ml-dropdown-color);
  background: transparent;
  border: 0;
  box-shadow: none;
  transform: none;
}
.ml-native-menu-level-2 .ml-submenu-indicator,
.ml-native-menu-level-3 .ml-submenu-indicator,
.ml-native-menu-level-4 .ml-submenu-indicator,
.ml-native-menu-level-5 .ml-submenu-indicator,
.ml-native-menu-level-6 .ml-submenu-indicator,
.ml-native-menu-level-7 .ml-submenu-indicator,
.ml-native-menu-level-8 .ml-submenu-indicator { transform: rotate(-45deg); }
.ml-native-menu-item.has-children:hover > .ml-native-menu,
.ml-native-menu-item.has-children:focus-within > .ml-native-menu { display: flex; }
.ml-mobile-menu .ml-submenu-indicator { margin-left: auto; }
.ml-mobile-menu .ml-native-menu-level-2,
.ml-mobile-menu .ml-native-menu-level-3,
.ml-mobile-menu .ml-native-menu-level-4,
.ml-mobile-menu .ml-native-menu-level-5,
.ml-mobile-menu .ml-native-menu-level-6,
.ml-mobile-menu .ml-native-menu-level-7,
.ml-mobile-menu .ml-native-menu-level-8 {
  position: static;
  display: block;
  border: 0;
  box-shadow: none;
  padding: 0 0 0 1rem;
  background: transparent;
}

.ml-header-custom-html { display: inline-flex; align-items: center; gap: .55rem; font-size: .95em; line-height: 1.4; }
.ml-header-custom-html p { margin: 0; }
.ml-header-custom-html a { color: inherit; text-decoration: none; }
.ml-header-custom-html a:hover { color: var(--ml-link); }
.ml-header-cta { white-space: nowrap; }
.ml-header-row-top .ml-btn, .ml-header-row-bottom .ml-btn { padding: .45rem .8rem; font-size: .9em; }

/* Header row design controls */
.ml-header-row { border-bottom-color: var(--ml-header-border); }
.ml-header-row-main { background: var(--ml-header-main-bg); color: var(--ml-header-main-text); }
.ml-header-row-main a { color: inherit; }
.ml-header-inner { min-height: var(--ml-header-main-min-height); padding-top: var(--ml-header-main-padding-y); padding-bottom: var(--ml-header-main-padding-y); }
.ml-header-row-top { background: var(--ml-header-top-bg); color: var(--ml-header-top-text); }
.ml-header-row-top .ml-header-row-inner { padding-top: var(--ml-header-top-padding-y); padding-bottom: var(--ml-header-top-padding-y); }
.ml-header-row-bottom { background: var(--ml-header-bottom-bg); color: var(--ml-header-bottom-text); }
.ml-header-row-bottom .ml-header-row-inner { padding-top: var(--ml-header-bottom-padding-y); padding-bottom: var(--ml-header-bottom-padding-y); }
.ml-header-slot { gap: var(--ml-header-slot-gap); }
.ml-header-border-none .ml-header-row { border-bottom: 0; }
.ml-header-border-bottom .ml-header-row-top,
.ml-header-border-bottom .ml-header-row-main { border-bottom: 0; }
.ml-header-border-bottom .ml-header-row-bottom,
.ml-header-border-bottom .ml-header-row-main:last-of-type { border-bottom: 1px solid var(--ml-header-border); }
.ml-header-border-allrows .ml-header-row { border-bottom: 1px solid var(--ml-header-border); }


/* --------------------------------------------------------------------------
   v1.2.0 Mobile Header Builder + mobile menu design
   -------------------------------------------------------------------------- */
.ml-header-row-mobile {
  display: none;
  background: var(--ml-mobile-header-bg);
  color: var(--ml-mobile-header-text);
  border-bottom: 1px solid var(--ml-header-border);
}
.ml-header-row-mobile a { color: inherit; }
.ml-header-mobile-inner {
  min-height: var(--ml-mobile-header-min-height);
  padding-top: var(--ml-mobile-header-padding-y);
  padding-bottom: var(--ml-mobile-header-padding-y);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--ml-mobile-header-slot-gap);
}
.ml-header-mobile-inner .ml-header-slot-left { justify-self: start; justify-content: flex-start; }
.ml-header-mobile-inner .ml-header-slot-center { justify-self: center; justify-content: center; }
.ml-header-mobile-inner .ml-header-slot-right { justify-self: end; justify-content: flex-end; }
.ml-mobile-menu {
  background: var(--ml-mobile-menu-bg);
  color: var(--ml-mobile-menu-text);
}
.ml-mobile-menu a { color: var(--ml-mobile-menu-text); }
.ml-mobile-menu .ml-native-menu-link,
.ml-mobile-menu .navbar-nav a,
.ml-mobile-menu .nav a,
.ml-mobile-menu ul.menu a,
.ml-mobile-menu ul.mod-menu a,
.ml-mobile-menu .mod-menu a {
  padding-top: var(--ml-mobile-menu-link-padding-y);
  padding-bottom: var(--ml-mobile-menu-link-padding-y);
  color: var(--ml-mobile-menu-text);
}
.ml-mobile-menu-brand {
  padding: 0 0 18px;
  margin: 0 0 12px;
  border-bottom: 1px solid var(--ml-border);
}
.ml-mobile-menu-brand .ml-site-brand { color: var(--ml-mobile-menu-text); }
@media (max-width: 980px) {
  .ml-mobile-header-custom .ml-header-row-top,
  .ml-mobile-header-custom .ml-header-row-main,
  .ml-mobile-header-custom .ml-header-row-bottom {
    display: none;
  }
  .ml-mobile-header-custom .ml-header-row-mobile {
    display: block;
  }
  .ml-header-row-mobile .ml-native-navigation,
  .ml-header-row-mobile .ml-menu-position {
    display: none;
  }
  .ml-header-row-mobile .ml-menu-toggle {
    display: inline-flex;
  }
  .ml-header-row-mobile .ml-search-toggle {
    display: inline-flex;
  }
}
@media (min-width: 981px) {
  .ml-header-row-mobile { display: none !important; }
}

/* Footer Builder Lite */
.ml-footer { color: color-mix(in srgb, var(--ml-footer-text) 82%, transparent); background: var(--ml-footer-bg); }
.ml-footer a { color: var(--ml-footer-text); text-decoration: none; }
.ml-footer a:hover { opacity: .82; }
.ml-footer-row-top { padding: calc(var(--ml-footer-padding-top) * .7) 0; border-bottom: 1px solid var(--ml-footer-border); }
.ml-footer-row-inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--ml-footer-column-gap); }
.ml-footer-row-inner .ml-footer-slot-center { text-align: center; }
.ml-footer-row-inner .ml-footer-slot-right { text-align: right; justify-content: flex-end; }
.ml-footer-main { padding: var(--ml-footer-padding-top) 0 var(--ml-footer-padding-bottom); }
.ml-footer-grid { display: grid; gap: var(--ml-footer-column-gap); }
.ml-footer-grid-1 { grid-template-columns: 1fr; }
.ml-footer-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ml-footer-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ml-footer-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ml-footer-column > *:last-child { margin-bottom: 0; }
.ml-footer-brand-block .ml-site-brand { color: var(--ml-footer-text); }
.ml-footer-menu-block .ml-native-navigation { width: 100%; }
.ml-footer-menu-block .ml-native-menu { flex-direction: column; align-items: flex-start; gap: 8px; list-style: none; padding: 0; margin: 0; }
.ml-footer-menu-block .ml-native-menu-link { padding: 0; border-radius: 0; color: color-mix(in srgb, var(--ml-footer-text) 84%, transparent); font-size: .95rem; }
.ml-footer-menu-block .ml-native-menu-link:hover { color: var(--ml-footer-text); background: transparent; }
.ml-footer-menu-block .ml-native-menu-level-2 { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; background: transparent; padding: 8px 0 0 14px; border: 0; min-width: 0; }
.ml-footer-custom-html,
.ml-footer-contact-html { color: color-mix(in srgb, var(--ml-footer-text) 82%, transparent); line-height: 1.65; }
.ml-footer-custom-html > *:first-child,
.ml-footer-contact-html > *:first-child { margin-top: 0; }
.ml-footer-custom-html > *:last-child,
.ml-footer-contact-html > *:last-child { margin-bottom: 0; }
.ml-footer-bottom { padding: 18px 0; border-top: 1px solid var(--ml-footer-border); font-size: .9rem; }
.ml-footer-bottom-inner { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.ml-footer-bottom-left,
.ml-footer-bottom-right { display: flex; align-items: center; gap: 16px; }
.ml-footer-bottom-right { justify-content: flex-end; }
.ml-footer-copyright { color: color-mix(in srgb, var(--ml-footer-text) 74%, transparent); }
.ml-footer-bottom .ml-footer-menu-block .ml-native-menu { flex-direction: row; flex-wrap: wrap; gap: 14px; }
.ml-footer-minimal .ml-footer-bottom { border-top: 0; }
.ml-footer-empty .ml-footer-row-top,
.ml-footer-empty .ml-footer-main,
.ml-footer-empty .ml-footer-bottom { display: none; }

@media (max-width: 980px) {
  .ml-footer-row-inner { grid-template-columns: 1fr; text-align: left; }
  .ml-footer-row-inner .ml-footer-slot-center,
  .ml-footer-row-inner .ml-footer-slot-right { text-align: left; justify-content: flex-start; }
  .ml-footer-grid-2,
  .ml-footer-grid-3,
  .ml-footer-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ml-footer-bottom-inner { align-items: flex-start; flex-direction: column; }
  .ml-footer-bottom-right { justify-content: flex-start; }
}
@media (max-width: 640px) {
  .ml-footer-grid-2,
  .ml-footer-grid-3,
  .ml-footer-grid-4 { grid-template-columns: 1fr; }
}


/* --------------------------------------------------------------------------
   v1.4.0 page, article and blog layout controls
   -------------------------------------------------------------------------- */
.ml-article-preset-boxed {
    margin-top: clamp(28px, 5vw, 64px);
    margin-bottom: clamp(28px, 5vw, 64px);
    padding: clamp(32px, 6vw, 72px);
    background: #fff;
    border: 1px solid var(--ml-border);
    border-radius: var(--ml-radius);
    box-shadow: var(--ml-shadow);
}
.ml-article-preset-compact {
    padding-top: clamp(28px, 5vw, 56px);
    padding-bottom: clamp(28px, 5vw, 56px);
}
.ml-article-preset-compact .ml-article-header { margin-bottom: 28px; }
.ml-article-preset-editorial .ml-article-title {
    max-width: 11.5em;
    letter-spacing: -0.035em;
}
.ml-article-align-center.ml-article-preset-editorial .ml-article-title { margin-inline: auto; }
.ml-article-header-boxed .ml-article-header {
    padding: clamp(24px, 5vw, 52px);
    background: var(--ml-surface);
    border: 1px solid var(--ml-border);
    border-radius: var(--ml-radius);
}
.ml-article-header-minimal .ml-article-header {
    padding-bottom: 24px;
    border-bottom: 1px solid var(--ml-border);
}
.ml-article-header-hero .ml-article-header {
    max-width: none;
    padding: clamp(42px, 8vw, 96px) clamp(24px, 6vw, 72px);
    background: var(--ml-primary);
    color: #fff;
    border-radius: var(--ml-radius);
}
.ml-article-header-hero .ml-article-kicker,
.ml-article-header-hero .ml-article-meta { color: rgba(255,255,255,.78); }
.ml-article-kicker-badge .ml-article-kicker {
    padding: .45rem .7rem;
    background: color-mix(in srgb, var(--ml-accent) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--ml-accent) 24%, transparent);
    border-radius: 999px;
}
.ml-article-meta-pill .ml-article-meta > * {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 10px;
    background: var(--ml-surface);
    border: 1px solid var(--ml-border);
    border-radius: 999px;
}
.ml-article-meta-muted .ml-article-meta {
    opacity: .78;
    font-size: .88rem;
}
.ml-article-image-full .ml-article-image {
    width: 100vw;
    margin-left: 50%;
    transform: translateX(-50%);
    border-radius: 0;
}
.ml-article-image-card .ml-article-image {
    padding: clamp(10px, 2vw, 18px);
    border: 1px solid var(--ml-border);
    box-shadow: var(--ml-shadow);
}
.ml-article-image-card .ml-article-image img { border-radius: calc(var(--ml-radius) - 6px); }
.ml-article-radius-none .ml-article-image,
.ml-article-radius-none .ml-article-image img { border-radius: 0; }
.ml-article-radius-small .ml-article-image,
.ml-article-radius-small .ml-article-image img { border-radius: var(--ml-radius-sm); }
.ml-article-radius-large .ml-article-image,
.ml-article-radius-large .ml-article-image img { border-radius: calc(var(--ml-radius) * 1.65); }
.has-article-image-shadow .ml-article-image { box-shadow: var(--ml-shadow); }
.ml-blog-card-style-clean {
    border: 0;
    box-shadow: none;
    background: transparent;
    border-radius: 0;
}
.ml-blog-card-style-clean .ml-blog-card-body { padding-inline: 0; }
.ml-blog-card-style-clean .ml-blog-card-image { border-radius: var(--ml-radius); }
.ml-blog-card-style-compact .ml-blog-card-body { padding: 18px; }
.ml-blog-card-style-compact .ml-blog-card-title { font-size: clamp(1.08rem, 1.8vw, 1.35rem); }
.ml-blog-card-style-editorial {
    border: 0;
    box-shadow: none;
    background: transparent;
    border-radius: 0;
}
.ml-blog-card-style-editorial .ml-blog-card-image { border-radius: 0; }
.ml-blog-card-style-editorial .ml-blog-card-body { padding: 20px 0 0; }
.ml-blog-card-style-editorial .ml-blog-card-title {
    font-family: var(--ml-font-heading);
    letter-spacing: -0.015em;
}
.ml-blog-ratio-4-3 .ml-blog-card-image { aspect-ratio: 4 / 3; }
.ml-blog-ratio-1-1 .ml-blog-card-image { aspect-ratio: 1 / 1; }
.ml-blog-ratio-3-2 .ml-blog-card-image { aspect-ratio: 3 / 2; }
.ml-blog-ratio-16-10 .ml-blog-card-image { aspect-ratio: 16 / 10; }
@media (max-width: 760px) {
    .ml-article-preset-boxed { padding: 28px 20px; }
    .ml-article-header-hero .ml-article-header { border-radius: var(--ml-radius-sm); }
}


/* --------------------------------------------------------------------------
   v1.5.0 reusable module chrome styles
   -------------------------------------------------------------------------- */
.ml-module {
    position: relative;
}
.ml-module-title {
    margin: 0 0 1rem;
    color: inherit;
    line-height: var(--ml-line-height-heading);
    font-family: var(--ml-font-heading);
    font-weight: var(--ml-heading-weight);
}
.ml-module-title-left .ml-module-title,
.ml-module-title-left .ml-section-header { text-align: left; }
.ml-module-title-center .ml-module-title,
.ml-module-title-center .ml-section-header { text-align: center; }
.ml-module-title-size-small .ml-module-title { font-size: clamp(1.1rem, 2vw, 1.35rem); }
.ml-module-title-size-default .ml-module-title { font-size: clamp(1.35rem, 2.6vw, 1.9rem); }
.ml-module-title-size-large .ml-module-title { font-size: clamp(1.8rem, 4vw, 3rem); letter-spacing: -0.025em; }
.ml-module-card,
.ml-module-boxed {
    padding: var(--ml-module-card-padding);
    background: var(--ml-bg);
    border-radius: var(--ml-radius);
}
.has-module-card-border .ml-module-card,
.has-module-card-border .ml-module-boxed { border: 1px solid var(--ml-border); }
.has-module-card-no-border .ml-module-card,
.has-module-card-no-border .ml-module-boxed { border: 0; }
.ml-module-card-shadow-none .ml-module-card,
.ml-module-card-shadow-none .ml-module-boxed { box-shadow: none; }
.ml-module-card-shadow-soft .ml-module-card,
.ml-module-card-shadow-soft .ml-module-boxed { box-shadow: 0 10px 30px rgba(15,23,42,.06); }
.ml-module-card-shadow-medium .ml-module-card,
.ml-module-card-shadow-medium .ml-module-boxed { box-shadow: var(--ml-shadow); }
.ml-module-clean { background: transparent; border: 0; box-shadow: none; }
.ml-module-section {
    padding-top: var(--ml-module-section-padding);
    padding-bottom: var(--ml-module-section-padding);
}
.ml-module-dark {
    padding: var(--ml-module-card-padding);
    background: var(--ml-module-dark-bg);
    color: var(--ml-module-dark-text);
    border-radius: var(--ml-radius);
}
.ml-module-dark a { color: currentColor; }
.ml-module-no-padding { padding: 0 !important; }
.ml-module-cta {
    padding: clamp(28px, 5vw, 64px);
    background: var(--ml-module-cta-bg);
    color: var(--ml-module-cta-text);
    border: 1px solid var(--ml-border);
    border-radius: var(--ml-radius);
    box-shadow: var(--ml-shadow);
}
.ml-module-hero {
    min-height: clamp(360px, 58vw, 720px);
    display: grid;
    align-items: center;
    padding: clamp(48px, 9vw, 128px) 0;
}
.ml-module-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr);
    gap: var(--ml-gap);
    align-items: center;
}
.ml-module-split > * { min-width: 0; }
@media (max-width: 820px) {
    .ml-module-split { grid-template-columns: 1fr; }
}
/* Full-width pre-footer positions */
.ml-pre-footer {
  background: var(--ml-bg);
}
.ml-pre-footer-fullwidth {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--ml-footer-bg, #111827);
}
.ml-pre-footer-fullwidth > .moduletable,
.ml-pre-footer-fullwidth > .module,
.ml-pre-footer-fullwidth > div {
  width: 100%;
  max-width: none;
  margin: 0;
}
