/*
 * VibeCMS Global Article Content Contract v1
 * Independent of any theme. Loaded on article detail pages only.
 * Goal: one readable H2 + table language across every supported theme.
 */

/* Article body targets used by current + legacy themes. */
body.article-page :is(
  .article-content-compact,
  .t26-article-body,
  .m26-article-body,
  .m26-media-body,
  .rn-article-body-v2,
  .wn-article-body-v2,
  .az-ce-article-body,
  .mag-article__body
) h2 {
  margin: 34px 0 12px !important;
  font-size: 28px !important;
  line-height: 1.2 !important;
  letter-spacing: -0.38px !important;
  font-weight: 700 !important;
  color: inherit;
}

/*
 * Responsive table language derived from the proven 2026Mobilitas visual
 * contract but implemented globally, so no theme depends on Mobilitas CSS.
 * Existing legacy wrappers and Mobilitas wrappers are supported; raw tables
 * remain horizontally scrollable without JavaScript.
 */
body.article-page :is(
  .article-content-compact,
  .t26-article-body,
  .m26-article-body,
  .m26-media-body,
  .rn-article-body-v2,
  .wn-article-body-v2,
  .az-ce-article-body,
  .mag-article__body
) :is(.table-responsive,.m26-table-scroll,.vcm-article-table-scroll) {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 24px 0;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  border: 1px solid #e1e4e8;
  border-radius: 7px;
  background: #fff;
  box-sizing: border-box;
}

body.article-page :is(
  .article-content-compact,
  .t26-article-body,
  .m26-article-body,
  .m26-media-body,
  .rn-article-body-v2,
  .wn-article-body-v2,
  .az-ce-article-body,
  .mag-article__body
) table {
  width: 100% !important;
  max-width: 100%;
  margin: 24px 0;
  border: 1px solid #e1e4e8;
  border-radius: 7px;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  background: #fff;
  color: #20242a;
  font-size: 15px;
  line-height: 1.45;
}

/* Tables already inside a scrolling shell use the shell border/margin. */
body.article-page :is(
  .article-content-compact,
  .t26-article-body,
  .m26-article-body,
  .m26-media-body,
  .rn-article-body-v2,
  .wn-article-body-v2,
  .az-ce-article-body,
  .mag-article__body
) :is(.table-responsive,.m26-table-scroll,.vcm-article-table-scroll) > table {
  min-width: 600px;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
}

/* Raw tables receive their own horizontal scrolling surface. */
body.article-page :is(
  .article-content-compact,
  .t26-article-body,
  .m26-article-body,
  .m26-media-body,
  .rn-article-body-v2,
  .wn-article-body-v2,
  .az-ce-article-body,
  .mag-article__body
) > table {
  display: block;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

body.article-page :is(
  .article-content-compact,
  .t26-article-body,
  .m26-article-body,
  .m26-media-body,
  .rn-article-body-v2,
  .wn-article-body-v2,
  .az-ce-article-body,
  .mag-article__body
) table th,
body.article-page :is(
  .article-content-compact,
  .t26-article-body,
  .m26-article-body,
  .m26-media-body,
  .rn-article-body-v2,
  .wn-article-body-v2,
  .az-ce-article-body,
  .mag-article__body
) table td {
  padding: 11px 13px !important;
  border: 0 !important;
  border-right: 1px solid #e6e8eb !important;
  border-bottom: 1px solid #e6e8eb !important;
  vertical-align: top;
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
}

body.article-page :is(
  .article-content-compact,
  .t26-article-body,
  .m26-article-body,
  .m26-media-body,
  .rn-article-body-v2,
  .wn-article-body-v2,
  .az-ce-article-body,
  .mag-article__body
) table thead th {
  background: #f4f5f7 !important;
  font-weight: 700 !important;
  color: #171a1f;
}

body.article-page :is(
  .article-content-compact,
  .t26-article-body,
  .m26-article-body,
  .m26-media-body,
  .rn-article-body-v2,
  .wn-article-body-v2,
  .az-ce-article-body,
  .mag-article__body
) table tbody tr:nth-child(even) > :is(td,th) {
  background: #fafbfc;
}

body.article-page :is(
  .article-content-compact,
  .t26-article-body,
  .m26-article-body,
  .m26-media-body,
  .rn-article-body-v2,
  .wn-article-body-v2,
  .az-ce-article-body,
  .mag-article__body
) table tr > :last-child {
  border-right: 0 !important;
}
body.article-page :is(
  .article-content-compact,
  .t26-article-body,
  .m26-article-body,
  .m26-media-body,
  .rn-article-body-v2,
  .wn-article-body-v2,
  .az-ce-article-body,
  .mag-article__body
) table tbody tr:last-child > * {
  border-bottom: 0 !important;
}

@media (max-width: 767px) {
  body.article-page :is(
    .article-content-compact,
    .t26-article-body,
    .m26-article-body,
    .m26-media-body,
    .rn-article-body-v2,
    .wn-article-body-v2,
    .az-ce-article-body,
    .mag-article__body
  ) h2 {
    margin-top: 28px !important;
    font-size: 24px !important;
    line-height: 1.18 !important;
    letter-spacing: -0.25px !important;
  }

  body.article-page :is(
    .article-content-compact,
    .t26-article-body,
    .m26-article-body,
    .m26-media-body,
    .rn-article-body-v2,
    .wn-article-body-v2,
    .az-ce-article-body,
    .mag-article__body
  ) :is(.table-responsive,.m26-table-scroll,.vcm-article-table-scroll) > table {
    min-width: 520px;
  }

  body.article-page :is(
    .article-content-compact,
    .t26-article-body,
    .m26-article-body,
    .m26-media-body,
    .rn-article-body-v2,
    .wn-article-body-v2,
    .az-ce-article-body,
    .mag-article__body
  ) table {
    font-size: 13.5px;
  }
  body.article-page :is(
    .article-content-compact,
    .t26-article-body,
    .m26-article-body,
    .m26-media-body,
    .rn-article-body-v2,
    .wn-article-body-v2,
    .az-ce-article-body,
    .mag-article__body
  ) table :is(th,td) {
    padding: 9px 10px !important;
  }
}


/* Article Editorial Elements v2.22.44 — neutral public contract. */
:root{--article-accent:#2563eb;--article-surface:#fff;--article-surface-soft:#f8fafc;--article-border:#e2e8f0;--article-text:#0f172a;--article-muted:#64748b}
body.article-page.article-elements--editorial {
  --article-surface-soft:#f8fafc;
}
body.article-page.article-elements {
  --article-surface:#fff;
  --article-surface-soft:#f8fafc;
  --article-border:#e2e8f0;
  --article-text:#0f172a;
  --article-muted:#64748b;
}
body.article-page.article-elements :is(.article-pullquote,.article-quote,.article-spoiler,.article-toc,.mce-toc){box-sizing:border-box;max-width:100%;overflow-wrap:anywhere;word-break:normal}
body.article-page.article-elements .article-pullquote{margin:30px 0;padding:4px 0 4px 18px;border-left:3px solid var(--article-accent);font-size:1.42em;line-height:1.38;font-weight:700;color:var(--article-text)}
body.article-page.article-elements .article-quote,
body.article-page.article-elements :is(.article-content-compact,.t26-article-body,.m26-article-body,.m26-media-body,.rn-article-body-v2,.wn-article-body-v2,.az-ce-article-body,.mag-article__body)>blockquote:not([class]){margin:28px 0;padding:16px 18px;border:0;border-left:3px solid var(--article-accent);background:var(--article-surface-soft);color:var(--article-text)}
body.article-page.article-elements .article-quote>p{margin:0 0 10px;font-size:1.08em;line-height:1.65}
body.article-page.article-elements .article-quote-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 9px;margin-top:10px;font-size:.88em;line-height:1.45;color:var(--article-muted)}
body.article-page.article-elements .article-quote-source{font-style:normal;font-weight:800;color:var(--article-text)}
body.article-page.article-elements .article-quote-source:before{content:'— ';color:var(--article-accent)}
body.article-page.article-elements .article-quote-role{font-size:.95em;color:var(--article-muted)}
body.article-page.article-elements .article-spoiler{margin:24px 0;border:0;border-top:1px solid var(--article-border);border-bottom:1px solid var(--article-border);background:transparent;color:var(--article-text)}
body.article-page.article-elements .article-spoiler-title{display:flex;align-items:center;min-height:44px;padding:10px 2px;cursor:pointer;font-weight:750;line-height:1.4;list-style:none;outline:none}
body.article-page.article-elements .article-spoiler-title::-webkit-details-marker{display:none}
body.article-page.article-elements .article-spoiler-title:before{content:'+';display:inline-grid;place-items:center;width:24px;height:24px;margin-right:8px;font-size:20px;line-height:1;color:var(--article-accent)}
body.article-page.article-elements .article-spoiler[open]>.article-spoiler-title:before{content:'−'}
body.article-page.article-elements .article-spoiler-title:focus-visible,
body.article-page.article-elements .article-toc-toggle:focus-visible{outline:2px solid var(--article-accent);outline-offset:3px;border-radius:4px}
body.article-page.article-elements .article-spoiler-content{padding:2px 0 16px 32px}
body.article-page.article-elements :is(.article-toc,.mce-toc){margin:24px 0 30px;padding:16px 18px;border:1px solid var(--article-border);border-radius:8px;background:var(--article-surface-soft);color:var(--article-text)}
body.article-page.article-elements :is(.article-toc,.mce-toc)>:is(h2,h3,h4,h5,h6){margin:0 0 10px!important;font-size:1em!important;line-height:1.4!important;letter-spacing:0!important;font-weight:800!important}
body.article-page.article-elements :is(.article-toc,.mce-toc) :is(ul,ol){margin:0;padding-left:22px}
body.article-page.article-elements :is(.article-toc,.mce-toc) li{margin:6px 0;line-height:1.45}
body.article-page.article-elements :is(.article-toc,.mce-toc) a{color:inherit;text-decoration:none}
body.article-page.article-elements :is(.article-toc,.mce-toc) a:hover{color:var(--article-accent);text-decoration:underline;text-underline-offset:3px}
body.article-page.article-elements .article-toc-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;margin:0;padding:2px 0 10px;border:0;background:transparent;color:var(--article-text);font:inherit;font-weight:800;text-align:left;cursor:pointer}

/* Minimal Line */
body.article-page.article-elements--minimal :is(.article-toc,.mce-toc){padding:10px 0 10px 16px;border:0;border-left:2px solid var(--article-border);border-radius:0;background:transparent}
body.article-page.article-elements--minimal .article-pullquote{padding:12px 0;border-left:0;border-top:1px solid var(--article-border);border-bottom:1px solid var(--article-border);font-weight:650}
body.article-page.article-elements--minimal .article-quote{padding:8px 0 8px 16px;background:transparent;border-left-width:2px}
body.article-page.article-elements--minimal .article-spoiler{border-top:0;border-bottom:1px solid var(--article-border)}

/* Accent Card */
body.article-page.article-elements--card :is(.article-toc,.mce-toc),
body.article-page.article-elements--card .article-pullquote,
body.article-page.article-elements--card .article-quote,
body.article-page.article-elements--card .article-spoiler{border:1px solid var(--article-border);border-left:3px solid var(--article-accent);border-radius:10px;background:var(--article-surface-soft);box-shadow:0 5px 16px rgba(15,23,42,.035)}
body.article-page.article-elements--card .article-pullquote{padding:18px 20px}
body.article-page.article-elements--card .article-quote{padding:18px 20px}
body.article-page.article-elements--card .article-spoiler-title{padding:10px 14px}
body.article-page.article-elements--card .article-spoiler-content{padding:4px 16px 18px 46px}

@media (max-width:991px){
  body.article-page.article-elements .article-pullquote{margin:24px 0;font-size:1.26em;line-height:1.42}
  body.article-page.article-elements :is(.article-toc,.mce-toc){padding:10px 14px}
  body.article-page.article-elements .article-toc-toggle{padding-bottom:2px}
  body.article-page.article-elements .article-spoiler-content{padding-left:28px}
}
@media (prefers-reduced-motion:reduce){body.article-page.article-elements *{scroll-behavior:auto!important}}
@media print{
  body.article-page.article-elements .article-toc-toggle{display:none!important}
  body.article-page.article-elements :is(.article-toc,.mce-toc) :is(ul,ol){display:block!important}
  body.article-page.article-elements details.article-spoiler{display:block!important;border-color:#bbb!important}
  body.article-page.article-elements details.article-spoiler>.article-spoiler-title{display:block!important}
  body.article-page.article-elements details.article-spoiler>.article-spoiler-content{display:block!important;padding-left:0!important}
  body.article-page.article-elements details.article-spoiler>.article-spoiler-title:before{display:none!important}
}
