/* Explicit, source-authored reading modules. All content keeps natural height. */
body[data-article-reader="rich-v1"] .article-reader { --reader-line:color-mix(in srgb,var(--color-accent) 30%,var(--ref-border)); }
body[data-article-reader="rich-v1"] .article-reader .article-body-section { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; margin:40px 0; }
body[data-article-reader="rich-v1"] .article-body-section:empty { display:none; }
body[data-article-reader="rich-v1"] .article-reader :is(p,li) { overflow-wrap:anywhere; }
body[data-article-reader="rich-v1"] .article-reader .article-body-section > h2 { border:0; border-left:4px solid var(--color-accent); padding:0 0 0 16px; margin:0 0 24px; font-size:28px; line-height:1.3; }
body[data-article-reader="rich-v1"] .article-body-section p { line-height:1.8; margin:16px 0; }
body[data-article-reader="rich-v1"] .article-reader :is(h2,h3,h4,h5,h6)[id] { scroll-margin-top:calc(var(--masthead-height,72px) + 24px); }
body[data-article-reader="rich-v1"]:has([data-factory-sticky-host]:not([data-ad-empty="true"])) .article-reader :is(h2,h3,h4,h5,h6)[id] { scroll-margin-top:calc(var(--masthead-height,72px) + 126px); }
body[data-article-reader="rich-v1"] .article-related-card p { display:block; -webkit-line-clamp:unset; overflow:visible; }
body[data-article-reader="rich-v1"] .article-related-card:is(:hover,:focus-visible) { background:color-mix(in srgb,var(--color-accent) 5%,var(--color-surface)); border-color:var(--color-accent); }
.article-quick-guide { margin:0 0 28px; padding:24px 28px; border:1px solid var(--reader-line); border-radius:16px; background:color-mix(in srgb,var(--color-accent) 8%,var(--color-surface)); color:var(--color-ink); }
.article-quick-guide__title { font-size:20px; line-height:1.4; font-weight:750; margin:0 0 12px; }
.article-quick-guide ul { padding-left:22px; margin:0; line-height:1.8; }
.article-quick-guide li + li { margin-top:8px; }
.article-quick-guide li::marker { color:var(--color-accent); }
body[data-article-reader="rich-v1"] .article-reader .article-callout { margin:24px 0; border-radius:12px; font-style:normal; padding:20px 24px; }
body[data-article-reader="rich-v1"] .article-reader .article-callout--tip { border-left:4px solid var(--color-accent); background:color-mix(in srgb,var(--color-accent) 8%,var(--color-surface)); }
body[data-article-reader="rich-v1"] .article-reader .article-callout--warning { border-left:4px solid #bf7a13; background:color-mix(in srgb,#bf7a13 9%,var(--color-surface)); }
body[data-article-reader="rich-v1"] .article-reader :is(.article-callout--cards,.article-callout--faq) { padding:0; border:0; background:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
body[data-article-reader="rich-v1"] .article-reader .article-callout--faq { grid-template-columns:1fr; gap:12px; }
.article-detail-card,.article-faq-item { min-width:0; padding:22px; border:1px solid var(--ref-border); border-radius:12px; background:var(--color-surface); }
.article-detail-card { border-top:3px solid var(--reader-line); }
.article-faq-item { padding:0; }
.article-faq-item > summary { list-style:none; display:flex; align-items:center; gap:16px; padding:20px 22px; cursor:pointer; border-radius:inherit; min-height:56px; }
.article-faq-item > summary::-webkit-details-marker { display:none; }
.article-faq-item > summary::after { content:'+'; margin-left:auto; flex:none; color:var(--color-accent); font-size:24px; }
.article-faq-item[open] > summary::after { content:'−'; }
body[data-article-reader="rich-v1"] .article-body-section .article-faq-item > summary > h3 { margin:0; font-size:18px; line-height:1.5; }
.article-faq-answer { padding:0 22px 22px; }
body[data-article-reader="rich-v1"] .article-reader .article-faq-answer > :first-child { margin-top:0; }
body[data-article-reader="rich-v1"] .article-reader .article-faq-answer > :last-child { margin-bottom:0; }
.article-detail-card,.article-faq-item,.article-quick-guide,.article-reader .article-callout,.article-reader .article-table tr { transition:border-color .18s,background-color .18s,box-shadow .18s; }
body[data-article-reader="rich-v1"] .article-reader :is(a,summary) { transition:color .18s,background-color .18s; }
body[data-article-reader="rich-v1"] .article-reader a { text-underline-offset:4px; }
body[data-article-reader="rich-v1"] .article-reader a:is(:hover,:focus-visible) { color:var(--color-accent); text-decoration:underline; }
body[data-article-reader="rich-v1"] .article-reader :is(a,summary,[tabindex="0"]):focus-visible { outline:2px solid var(--color-accent); outline-offset:4px; border-radius:4px; }
body[data-article-reader="rich-v1"] .article-reader :is(.article-detail-card,.article-faq-item,.article-table):focus-within { border-color:var(--color-accent); }
body[data-article-reader="rich-v1"] .article-toc summary { min-height:44px; display:list-item; align-content:center; }
body[data-article-reader="rich-v1"] .article-toc a { min-height:44px; display:flex; align-items:center; padding:6px 10px; border-radius:6px; width:100%; }
body[data-article-reader="rich-v1"] .article-toc a:is(:hover,:focus-visible),body[data-article-reader="rich-v1"] .article-toc summary:is(:hover,:focus-visible) { background:color-mix(in srgb,var(--color-accent) 7%,transparent); color:var(--color-accent); }
@media(hover:hover) {
  body[data-article-reader="rich-v1"] .article-reader :is(.article-detail-card,.article-faq-item,.article-quick-guide,.article-callout):hover { border-color:color-mix(in srgb,var(--color-accent) 65%,var(--ref-border)); box-shadow:0 4px 16px color-mix(in srgb,var(--color-accent) 5%,transparent); }
  body[data-article-reader="rich-v1"] .article-reader :is(.article-detail-card,.article-faq-item):hover { background:color-mix(in srgb,var(--color-accent) 4%,var(--color-surface)); }
  body[data-article-reader="rich-v1"] .article-table tbody tr:hover { background:color-mix(in srgb,var(--color-accent) 8%,var(--color-surface)); }
}
@media(prefers-reduced-motion:reduce) {
  body[data-article-reader="rich-v1"] .article-reader * { transition:none!important; scroll-behavior:auto; }
}
body[data-article-reader="rich-v1"] .article-body-section :is(.article-detail-card,.article-faq-item) > h3 { margin:0 0 12px; font-size:19px; line-height:1.45; color:var(--color-ink); }
body[data-article-reader="rich-v1"] .article-body-section :is(.article-detail-card,.article-faq-item,.article-callout) > :last-child { margin-bottom:0; }
body[data-article-reader="rich-v1"] .article-reader .article-callout--steps { border:1px solid var(--ref-border); background:var(--color-surface); }
body[data-article-reader="rich-v1"] .article-callout--steps > ol { margin:0; padding-left:30px; }
body[data-article-reader="rich-v1"] .article-callout--steps > ol > li { padding:8px 0 8px 8px; }
body[data-article-reader="rich-v1"] .article-callout--steps > ol > li::marker { font-size:20px; font-weight:800; color:var(--color-accent); }
body[data-article-reader="rich-v1"] .article-reader .article-table { border:1px solid var(--ref-border); border-radius:12px; margin:24px 0; }
body[data-article-reader="rich-v1"] .article-table th { background:color-mix(in srgb,var(--color-accent) 10%,var(--color-surface)); }
body[data-article-reader="rich-v1"] .article-table :is(td,th) { padding:14px 16px; line-height:1.65; }
body[data-article-reader="rich-v1"] .article-table tbody tr:nth-child(even) { background:color-mix(in srgb,var(--color-ink) 3%,transparent); }
@media(min-width:768px) {
  body[data-article-reader="rich-v1"] .article-toc nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 24px; }
  body[data-article-reader="rich-v1"]:is([data-page-type="content"],[data-page-type="translation"]) [data-factory-sticky-host] { padding-inline:0; }
  body[data-article-reader="rich-v1"]:is([data-page-type="content"],[data-page-type="translation"]) .factory-ad--sticky320x50 button { width:44px;height:44px;padding:9px;border:0;background:transparent;box-shadow:none; }
  body[data-article-reader="rich-v1"] .factory-ad--sticky320x50 button::before { content:'';position:absolute;inset:9px;border:1px solid var(--ref-border);border-radius:50%;background:var(--color-canvas); }
  body[data-article-reader="rich-v1"] .factory-ad--sticky320x50 button svg { position:relative; }
}
@container (min-width:740px) {
  body[data-article-reader="rich-v1"] .article-reader .article-callout--cards:has(> .article-detail-card:nth-child(3):last-child) { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:767px) {
  body[data-article-reader="rich-v1"] .article-reader .article-body-section { margin:28px 0; }
  body[data-article-reader="rich-v1"] .article-reader .article-body-section > h2 { font-size:25px; margin-bottom:18px; padding-left:12px; }
  body[data-article-reader="rich-v1"] .article-reader .article-body-section p { font-size:15.5px; line-height:1.8; }
  body[data-article-reader="rich-v1"] .article-reader .article-callout--cards { grid-template-columns:1fr; gap:12px; }
  .article-quick-guide { padding:20px; border-radius:12px; }
  .article-detail-card,.article-faq-item { padding:18px; }
  .article-faq-item { padding:0; }
  .article-faq-item > summary { padding:18px; }
  .article-faq-answer { padding:0 18px 18px; }
  body[data-article-reader="rich-v1"] .article-reader .article-callout { padding:18px; }
  body[data-article-reader="rich-v1"] .article-reader :is(.article-callout--cards,.article-callout--faq) { padding:0; }
  body[data-article-reader="rich-v1"] .article-toc { padding:18px; margin:24px 0; }
  /* One row: 320px creative + 4px gap + 44px close target. The existing
     measured-width gate omits this slot when the whole group cannot fit. */
  body[data-article-reader="rich-v1"]:is([data-page-type="content"],[data-page-type="translation"]) [data-factory-sticky-host] { padding:8px 48px 8px 0; height:66px; }
  /* Keep the horizontal lane measurable so resizing can restore an empty ad. */
  body[data-article-reader="rich-v1"]:is([data-page-type="content"],[data-page-type="translation"]) [data-factory-sticky-host][data-ad-empty="true"] { height:0; padding-block:0; margin-block:0; }
  body[data-article-reader="rich-v1"]:is([data-page-type="content"],[data-page-type="translation"]) .factory-ad--sticky320x50 { position:relative; margin-inline:auto; }
  body[data-article-reader="rich-v1"]:is([data-page-type="content"],[data-page-type="translation"]) .factory-ad--sticky320x50 button { top:3px; right:-48px; }
}

/* details-v1: article-only refinements; the frozen same-row ad rules stay above. */
body[data-article-details="v1"] [data-article-icon] { width:24px; height:24px; flex:none; vertical-align:middle; }
body[data-article-details="v1"] .article-byline { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:20px; color:var(--color-muted-ink); font-size:14px; line-height:1.6; }
body[data-article-details="v1"] .article-byline > span { display:flex; align-items:center; gap:8px; min-width:0; overflow-wrap:anywhere; }
body[data-article-details="v1"] .article-byline svg { width:19px; height:19px; }
body[data-article-details="v1"] .article-reader .article-icon-heading { display:flex; align-items:baseline; gap:12px; }
body[data-article-details="v1"] :is(.article-icon-heading,.article-callout-title) > span { min-width:0; }
body[data-article-details="v1"] .article-icon-heading > svg { align-self:flex-start; margin-top:.15em; color:var(--color-accent); }
body[data-article-details="v1"] .article-reader .article-toc { padding:18px 22px; }
body[data-article-details="v1"] .article-reader .article-toc nav { grid-template-columns:minmax(0,1fr); gap:4px; margin-top:10px; }
body[data-article-details="v1"] .article-reader .article-toc summary { display:flex; align-items:center; gap:12px; list-style:none; border-radius:6px; padding:0 8px; cursor:pointer; }
body[data-article-details="v1"] .article-toc summary::-webkit-details-marker { display:none; }
body[data-article-details="v1"] .article-toc summary::before { content:''; width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(-45deg); flex:none; }
body[data-article-details="v1"] .article-toc[open] summary::before { transform:rotate(45deg); }
body[data-article-details="v1"] .article-reader .article-toc a { border-left:3px solid transparent; padding:8px 12px; line-height:1.5; }
body[data-article-details="v1"] .article-toc a[aria-current="location"] { color:var(--color-ink); border-left-color:var(--color-accent); background:color-mix(in srgb,var(--color-accent) 12%,var(--color-surface)); font-weight:650; }
body[data-article-details="v1"] .article-reader .article-table { border-color:var(--reader-line); overscroll-behavior-x:contain; }
body[data-article-details="v1"] .article-table :is(th,td) { border-right:1px solid var(--reader-line); border-bottom:1px solid var(--reader-line); color:var(--color-ink); }
body[data-article-details="v1"] .article-table tr > :last-child { border-right:0; }
body[data-article-details="v1"] .article-table tbody tr:last-child > * { border-bottom:0; }
body[data-article-details="v1"] .article-reader .article-table th { font-size:14px; font-weight:750; text-transform:none; letter-spacing:normal; background:color-mix(in srgb,var(--color-accent) 20%,var(--color-surface)); border-bottom-width:2px; }
body[data-article-details="v1"] .article-table tbody td:first-child { font-weight:600; }
body[data-article-details="v1"] .article-reader :is(.article-callout--tip,.article-callout--warning) { border:1px solid var(--reader-line); border-left-width:4px; }
body[data-article-details="v1"] .article-reader .article-callout--warning { border-color:color-mix(in srgb,#bf7a13 65%,var(--ref-border)); }
body[data-article-details="v1"] .article-reader .article-callout-title { display:flex; align-items:center; gap:12px; font-weight:750; font-size:19px; line-height:1.5; margin:0 0 14px; color:var(--color-ink); }
body[data-article-details="v1"] .article-callout--tip .article-callout-title svg { color:var(--color-accent); }
body[data-article-details="v1"] .article-callout--warning .article-callout-title svg { color:#bf7a13; }
body[data-article-details="v1"] .article-reader .article-callout--checklist { background:var(--color-surface); border:1px solid var(--reader-line); }
body[data-article-details="v1"] .article-checklist { list-style:none; padding:0; margin:12px 0 0; }
body[data-article-details="v1"] .article-reader .article-check-item { display:flex; align-items:flex-start; gap:12px; padding:10px; margin:4px 0; min-height:44px; border-radius:8px; }
body[data-article-details="v1"] .article-check-item > input { flex:none; width:24px; height:24px; margin:3px 0 0; accent-color:var(--color-accent); cursor:pointer; }
body[data-article-details="v1"] .article-check-item:has(> input:checked) { background:color-mix(in srgb,var(--color-accent) 10%,var(--color-surface)); }
body[data-article-details="v1"] .article-check-item > input:focus-visible { outline:2px solid var(--color-accent); outline-offset:4px; }
body[data-article-details="v1"] .article-check-text { min-width:0; flex:1; cursor:pointer; }
body[data-article-details="v1"] .article-reader .article-check-text > :first-child { margin-top:0; }
body[data-article-details="v1"] .article-reader .article-check-text > :last-child { margin-bottom:0; }
body[data-article-details="v1"] .article-callout--steps > ol { list-style:none; padding:0;  }
body[data-article-details="v1"] .article-callout--steps > ol > li { position:relative; padding:4px 0 24px 56px;  min-height:48px; }
body[data-article-details="v1"] .article-callout--steps > ol > li::before { content:attr(data-step-number); position:absolute; left:0; top:0; display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--color-accent); color:var(--color-canvas); font-size:17px; font-weight:800; }
body[data-article-details="v1"] .article-callout--steps > ol > li:last-child { padding-bottom:0; }
body[data-article-details="v1"] .article-callout--steps > ol > li > strong:first-child,
body[data-article-details="v1"] .article-callout--steps > ol > li > p:first-child > strong:only-child { display:block; color:var(--color-ink); margin-bottom:8px; font-size:18px; }
body[data-article-details="v1"] .article-reader .article-callout--steps li > p:first-child { margin-top:0; }
@media(hover:hover) {
  body[data-article-details="v1"] .article-check-item:hover { background:color-mix(in srgb,var(--color-accent) 6%,var(--color-surface)); }
}
@media(max-width:767px) {
  body[data-article-details="v1"] .article-reader .article-toc { padding:14px; }
  body[data-article-details="v1"] .article-byline { gap:8px 16px; }
  body[data-article-details="v1"] .article-table :is(th,td) { padding:12px; }
  body[data-article-details="v1"] .article-callout--steps > ol > li { padding-left:44px; }
  body[data-article-details="v1"] .article-callout--steps > ol > li::before { width:30px; height:30px; font-size:15px; }
}
