/* FINOWA Article UI v1.2 — opt-in blue pilot, 2026-10-30.
 * Source of truth: assets/css/finowa-home-imagery.css (approved home palette).
 * Only pages with finowa-article-v12 opt in; no global or PDF changes.
 * Temporary compatibility adapter: consolidate older article layers in a later PR.
 */
body.finowa-article-v12.finowa2-standard-article.ds2-article {
  --fw12-navy:#1e3a5f;
  --fw12-blue:#1968ab;
  --fw12-blue-hover:#13578f;
  --fw12-pale:#e6eef5;
  --fw12-surface:#fff;
  --fw12-bg:#f5f8fb;
  --fw12-line:#dbe4ee;
  --fw12-muted:#52677d;
  --fw12-ink:#243746;
  /* Redirect legacy semantic tokens only on opted-in articles. */
  --fat-accent:var(--fw12-blue);
  --fat-soft-accent:var(--fw12-pale);
  --finowa2-navy:var(--fw12-navy);
  --finowa2-navy-soft:#294c70;
  --finowa2-green:var(--fw12-blue);
  --finowa2-green-hover:var(--fw12-blue-hover);
  --finowa2-green-soft:var(--fw12-pale);
  --finowa2-bg:var(--fw12-bg);
  --finowa2-border:var(--fw12-line);
  --ds2a-green:var(--fw12-blue);
  --ds2a-green-soft:var(--fw12-pale);
  --ds2a-bg:var(--fw12-bg);
  --ds2a-line:var(--fw12-line);
  --fe-green:var(--fw12-blue);
  --teal:var(--fw12-blue);
  --finowa2-font-sans:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  background:var(--fw12-bg);
  color:var(--fw12-ink);
  font-family:var(--finowa2-font-sans);
}

/* Shared page shell: mirror the approved home header/footer, not a new brand. */
body.finowa-article-v12 .finowa2-nav {
  background:#fff;
  border-bottom:1px solid #dbe4ee;
}
body.finowa-article-v12 .finowa2-nav-inner {
  width:min(1120px,calc(100% - 40px));
  min-height:72px;
  gap:20px;
}
body.finowa-article-v12 .finowa2-brand-logo {display:block;width:152px;max-height:44px;height:auto;object-fit:contain}
body.finowa-article-v12 .finowa2-brand small {display:none}
body.finowa-article-v12 .finowa2-nav-links a {color:#1e3a5f;font-size:13px}
body.finowa-article-v12 .finowa2-nav-links a:hover,
body.finowa-article-v12 .finowa2-nav-links a[aria-current="page"] {color:var(--fw12-blue)}
body.finowa-article-v12 footer.site-footer.finowa-shared-footer {background:var(--fw12-navy)}

/* Editorial header: title and lead stay distinct from content components. */
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .breadcrumb {
  width:min(1040px,calc(100% - 40px));
  color:var(--fw12-muted);
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .page-hero {
  padding:24px 0 32px;
  border-bottom:1px solid var(--fw12-line);
  background:linear-gradient(130deg,#fff 0%,#fff 70%,#f0f6fc 100%);
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .page-hero>.shell {
  width:min(1040px,calc(100% - 40px));
  max-width:none;
  margin-inline:auto;
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .page-hero .eyebrow {
  color:var(--fw12-blue);
  letter-spacing:.08em;
  font-size:11px;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .page-hero h1 {
  max-width:850px;
  color:var(--fw12-navy);
  font-family:inherit;
  font-size:clamp(28px,3.2vw,36px);
  line-height:1.42;
  font-weight:800;
  letter-spacing:-.025em;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .page-hero .lead {
  max-width:760px;
  margin-top:15px;
  color:#53677d;
  font-size:15px;
  line-height:1.85;
}
body.finowa-article-v12 .page-hero .meta-pill {
  background:var(--fw12-pale);
  color:var(--fw12-navy);
  border-radius:4px;
}

/* Two-column reading experience, with one clearly dominant article column. */
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article main>.section {
  padding-top:26px;
  background:var(--fw12-bg);
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .content-shell {
  width:min(1080px,calc(100% - 40px));
  max-width:none;
  grid-template-columns:minmax(0,740px) minmax(210px,250px);
  justify-content:center;
  align-items:start;
  gap:28px;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .article-main {
  max-width:none;
  min-width:0;
  padding:28px 30px 38px;
  border:1px solid var(--fw12-line);
  border-radius:8px;
  background:var(--fw12-surface);
  box-shadow:none;
  color:var(--fw12-ink);
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .article-main p,
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .article-main li {
  color:#405367;
  font-size:16px;
  line-height:1.9;
}

/* Defensive fallback: a cached legacy visual script must not reintroduce
   a generic category hero on the two v1.2 opt-in article pages. */
body.finowa-article-v12 .article-main > .ds2-article-visual:not(.fw-visual) {
  display:none;
}

/* Hero mark and figures retain their existing content and 07-7 badge. */
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-hero {
  display:flex;
  min-height:220px;
  margin:0 0 27px;
  padding:45px 22px 25px;
  border:1px solid #cddfee;
  border-radius:7px;
  background:linear-gradient(118deg,#dcebf8,#eef5fc 70%,#d7e8f8);
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-hero figcaption {color:var(--fw12-navy);font-size:18px}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-symbol::after {background:var(--fw12-blue)}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-mark .fw-category {color:var(--fw12-blue)}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-visual {
  border-color:var(--fw12-line);
  border-radius:7px;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-step {
  border-color:var(--fw12-line);
  border-radius:5px;
  background:#f8fbfe;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-step span {
  color:var(--fw12-blue);
}
/* Compact provenance without overriding the 16px article body. */
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .source-section .source-list li {
  font-size:13px;
  line-height:1.75;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .source-list a {
  color:var(--fw12-blue);
  overflow-wrap:anywhere;
}

/* Six approved semantic blocks; color is subordinate to meaning. */
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-label {color:var(--fw12-blue)}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-block {
  border:1px solid var(--fw12-line);
  border-radius:6px;
  background:#f8fbfe;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-block.fw-point {
  display:block;
  padding:21px 24px 19px;
  border:0;
  border-left:4px solid var(--fw12-blue);
  border-radius:0 5px 5px 0;
  background:#edf5fc;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-block.fw-point h2 {
  color:var(--fw12-navy);
  line-height:1.48;
  font-size:19px;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-block.fw-note {
  background:#f5f8fc;
  border-color:var(--fw12-line);
}

/* Scope H2/H3 to direct article-section children to protect nested comparisons. */
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .article-section>h2 {
  margin:47px 0 18px;
  padding:0;
  border:0;
  color:var(--fw12-navy);
  font-size:27px;
  line-height:1.5;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .article-section>h2::before {
  display:block;
  width:38px;
  height:3px;
  margin-bottom:12px;
  background:var(--fw12-blue);
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .article-section>h3 {
  margin-top:32px;
  color:var(--fw12-navy);
}

/* Desktop table, mobile cards; preserve all existing content. */
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-comparison {
  border:1px solid var(--fw12-line);
  border-radius:6px;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-comparison-title {
  color:var(--fw12-navy);
  border-bottom-color:var(--fw12-line);
  background:#edf5fc;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-comparison th {
  background:#edf5fc;
  border-color:var(--fw12-line);
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-comparison td {
  border-color:var(--fw12-line);
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-mobile-card {
  border-color:var(--fw12-line);
  border-radius:6px;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-mobile-row {grid-template-columns:112px minmax(0,1fr)}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-mobile-row > strong {
  border-right:1px solid var(--fw12-line);
  padding-right:10px;
  color:var(--fw12-navy);
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-mobile-row > span {
  padding-left:10px;
  min-width:0;
  overflow-wrap:anywhere;
}

/* TOC is a navigation aid, not a second prominent CTA. */
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .article-side .fw-toc {
  position:sticky;
  top:90px;
  padding:18px;
  border:1px solid var(--fw12-line);
  border-radius:7px;
  background:#fff;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-toc a {color:#385775;text-decoration:none}
body.finowa-article-v12 .fw-toc a:hover {color:var(--fw12-blue);text-decoration:underline;text-underline-offset:3px}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-mobile-toc {
  border-color:var(--fw12-line);
  border-radius:6px;
}
body.finowa-article-v12 .fw-mobile-toc summary {color:var(--fw12-navy)}

/* Source transparency and a single article-specific primary action. */
body.finowa-article-v12 .source-list a,
body.finowa-article-v12 .trust-block a {color:var(--fw12-blue);text-decoration:underline;text-underline-offset:3px}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-end {border-top-color:var(--fw12-line)}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-decision {
  background:#edf5fc;
  border-color:var(--fw12-line);
  border-radius:6px;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-decision h2 {color:var(--fw12-navy)}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-primary {
  padding:25px;
  border:0;
  border-radius:7px;
  color:#fff;
  background:linear-gradient(125deg,#173b63,#1968ab);
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-primary h2,
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-primary .fw-label {color:#fff}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-primary p {color:#e3eefb;font-size:14px}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-primary .btn {
  display:inline-flex;
  background:#fff;
  color:var(--fw12-navy);
  border:1px solid #fff;
  border-radius:5px;
  font-weight:800;
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-next,
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-related a {
  border-color:var(--fw12-line);
  border-radius:6px;
  box-shadow:none;
  background:#fff;
  color:var(--fw12-navy);
}
body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-hub {
  background:var(--fw12-pale);
  border-radius:6px;
  color:var(--fw12-navy);
}

/* Accessible interactions on article-specific controls. */
body.finowa-article-v12 a:focus-visible,
body.finowa-article-v12 button:focus-visible,
body.finowa-article-v12 summary:focus-visible {
  outline:3px solid var(--fw12-blue);
  outline-offset:3px;
}
body.finowa-article-v12 .article-main a {overflow-wrap:anywhere}
body.finowa-article-v12 .article-main img {max-width:100%;height:auto}

@media(max-width:900px) {
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .content-shell {
    grid-template-columns:minmax(0,1fr);
    gap:0;
  }
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .article-side {display:none}
}
@media(max-width:640px) {
  body.finowa-article-v12 .finowa2-nav-inner {width:calc(100% - 28px);min-height:58px}
  body.finowa-article-v12 .finowa2-brand-logo {width:124px;max-height:36px}
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .breadcrumb,
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .page-hero>.shell,
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .content-shell {
    width:calc(100% - 28px);
  }
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .page-hero {
    padding:17px 0 24px;
  }
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .page-hero h1 {
    font-size:28px;
    line-height:1.36;
  }
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .page-hero .lead {
    font-size:14px;
    line-height:1.75;
  }
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .article-main {
    padding:18px 16px 26px;
  }
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-hero {
    min-height:0;
    aspect-ratio:16/8;
    margin:0 0 24px;
    border-radius:5px;
    padding:42px 12px 18px;
    gap:10px;
  }
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-hero figcaption {font-size:16px}
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-block.fw-point {padding:18px 18px 14px}
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-block.fw-point h2 {font-size:18px}
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .article-section>h2 {font-size:24px;margin-top:47px}
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-comparison {display:none}
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-mobile-compare {display:grid;gap:9px}
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-steps {grid-template-columns:1fr}
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-related {grid-template-columns:1fr}
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-primary {padding:20px 18px}
  body.finowa-article-v12.finowa-standard-v1.finowa2-standard-article.ds2-article .fw-primary .btn {width:100%;min-height:48px}
}
@media(prefers-reduced-motion:reduce) {
  body.finowa-article-v12 *,body.finowa-article-v12 *::before,body.finowa-article-v12 *::after {
    scroll-behavior:auto;
    transition:none;
  }
}
