/* NSL Article Design 1.2.0 · scoped to approved article wrappers only.
 * Repair note: v1.0.1 used :where() with zero specificity, allowing theme
 * heading colors and margins to override the required contrast and rhythm.
 */
:is(.nsl-article-layout, #nsl-gift2026) {
  --nsl-navy: #17394c;
  --nsl-navy-deep: #10304a;
  --nsl-teal: #087d86;
  --nsl-teal-dark: #096b70;
  --nsl-gold: #d8b65a;
  --nsl-ink: #263d4a;
  --nsl-muted: #586d78;
  --nsl-line: #d9e7e8;
  --nsl-mist: #edf8f7;
  width: 100%; max-width: 880px; margin: 0 auto;
  font-family: -apple-system, BlinkMacSystemFont, "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  font-size: 16.5px; font-weight: 400; line-height: 1.82;
  color: var(--nsl-ink); background: transparent;
  overflow-wrap: break-word; word-break: normal;
  text-align: left; box-sizing: border-box;
}
:is(.nsl-article-layout, #nsl-gift2026) *,
:is(.nsl-article-layout, #nsl-gift2026) *::before,
:is(.nsl-article-layout, #nsl-gift2026) *::after { box-sizing: border-box; }
:is(.nsl-article-layout, #nsl-gift2026) :is(p, ul, ol, li, td, th) { font-family: inherit; }
:is(.nsl-article-layout, #nsl-gift2026) p {
  margin: 0 0 1.15em; padding: 0; font-size: 1em;
  line-height: 1.82; color: inherit; letter-spacing: .008em;
}
:is(.nsl-article-layout, #nsl-gift2026) strong { color: var(--nsl-navy-deep); font-weight: 750; }
:is(.nsl-article-layout, #nsl-gift2026) a { color: var(--nsl-teal-dark); text-decoration: underline; text-underline-offset: .2em; }
:is(.nsl-article-layout, #nsl-gift2026) a:hover { color: #064d53; }
:is(.nsl-article-layout, #nsl-gift2026) a:focus-visible { outline: 3px solid var(--nsl-gold); outline-offset: 3px; border-radius: 3px; }
:is(.nsl-article-layout, #nsl-gift2026) :is(ul, ol) { padding-left: 1.45em; margin: .6em 0 1.25em; }
:is(.nsl-article-layout, #nsl-gift2026) li { font-size: 1em; line-height: 1.75; margin: .28em 0; padding: 0; color: var(--nsl-ink); }
:is(.nsl-article-layout, #nsl-gift2026) :is(h2, h3) {
  font-family: inherit; text-align: left; clear: both; letter-spacing: .015em;
  font-style: normal; text-transform: none; box-shadow: none;
}
:is(.nsl-article-layout, #nsl-gift2026) h2 {
  margin: 2.15em 0 .85em; padding: .72em .88em;
  font-size: clamp(22px, 1.75vw, 26px); font-weight: 750;
  line-height: 1.46; background: var(--nsl-navy) !important;
  color: #fff !important; border: 0; border-left: 5px solid var(--nsl-gold);
  border-radius: 5px;
}
/* Target inherited/inner theme typography as well as the heading itself. */
:is(.nsl-article-layout, #nsl-gift2026) h2 *,
:is(.nsl-article-layout, #nsl-gift2026) h2 a { color: #fff !important; }
:is(.nsl-article-layout, #nsl-gift2026) :is(h2,h3)::before,
:is(.nsl-article-layout, #nsl-gift2026) :is(h2,h3)::after { content: none !important; display: none !important; }
:is(.nsl-article-layout, #nsl-gift2026) h3 {
  margin: 1.65em 0 .74em; padding: .25em 0 .46em .64em;
  font-size: clamp(19px, 1.45vw, 21px); font-weight: 750;
  line-height: 1.5; color: var(--nsl-navy-deep) !important;
  background: transparent; border: 0; border-left: 4px solid var(--nsl-teal);
  border-bottom: 1px solid var(--nsl-line); border-radius: 0;
}
:is(.nsl-article-layout, #nsl-gift2026) h3 * { color: inherit; }
:is(.nsl-article-layout, #nsl-gift2026) .hero {
  background: linear-gradient(130deg, #eff9f8, #fafcfb 85%);
  border: 1px solid #c9e5e4; border-top: 3px solid var(--nsl-teal);
  border-radius: 12px; padding: 22px 25px; margin: 1.15em 0 1.45em;
}
:is(.nsl-article-layout, #nsl-gift2026) .hero p:last-child { margin-bottom: 0; }
:is(.nsl-article-layout, #nsl-gift2026) .eyebrow {
  color: var(--nsl-teal-dark); font-size: .81em; font-weight: 750;
  letter-spacing: .075em; margin-bottom: .7em;
}
:is(.nsl-article-layout, #nsl-gift2026) .lead { font-size: 1.04em; font-weight: 500; line-height: 1.74; }
:is(.nsl-article-layout, #nsl-gift2026) .key {
  background: var(--nsl-mist); border: 1px solid #b6dcdd;
  border-radius: 10px; padding: 18px 23px; margin: 1.4em 0 1.7em;
}
:is(.nsl-article-layout, #nsl-gift2026) .key > strong:first-child {
  display: block; color: var(--nsl-teal-dark); font-size: 1.14em; font-weight: 800;
  margin-bottom: .65em;
}
:is(.nsl-article-layout, #nsl-gift2026) .key ul { margin: .35em 0 .75em; padding-left: 1.3em; }
:is(.nsl-article-layout, #nsl-gift2026) .key li { margin: .33em 0; }
:is(.nsl-article-layout, #nsl-gift2026) .key > :last-child { margin-bottom: 0; }
:is(.nsl-article-layout, #nsl-gift2026) .toc {
  background: #fbfdfd; border: 1px solid var(--nsl-line);
  border-radius: 10px; padding: 20px 25px; margin: 1.65em 0 2em;
}
:is(.nsl-article-layout, #nsl-gift2026) .toc > :is(p,strong):first-child {
  color: var(--nsl-navy-deep); font-size: 1.16em; font-weight: 800;
  margin-bottom: .85em;
}
:is(.nsl-article-layout, #nsl-gift2026) .toc ol {
  display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
  column-gap: 18px; row-gap: 7px; list-style: none; counter-reset: nsl-toc;
  padding: 0; margin: .7em 0 0;
}
:is(.nsl-article-layout, #nsl-gift2026) .toc ol li {
  counter-increment: nsl-toc; display: flex; align-items: baseline; gap: 10px;
  min-width: 0; margin: 0; padding: 3px 0; font-size: .96em;
}
:is(.nsl-article-layout, #nsl-gift2026) .toc ol li::before {
  content: counter(nsl-toc); flex: 0 0 25px; height: 25px;
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff; background: var(--nsl-teal); border-radius: 50%;
  font-family: inherit;
  font-size: 12px; font-weight: 750; line-height: 25px;
}
:is(.nsl-article-layout, #nsl-gift2026) .toc a { min-width: 0; text-decoration: none; color: var(--nsl-teal-dark); font-weight: 600; }
:is(.nsl-article-layout, #nsl-gift2026) .toc a:hover { text-decoration: underline; }
:is(.nsl-article-layout, #nsl-gift2026) .scroll {
  width: 100%; max-width: 100%; overflow-x: auto; overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  border-radius: 8px; border: 1px solid #bed9da;
  margin: 1.05em 0 1.6em; box-shadow: 0 3px 12px rgba(23,57,76,.04);
}
:is(.nsl-article-layout, #nsl-gift2026) .scroll table {
  width: 100%; min-width: 540px; border-collapse: collapse;
  margin: 0; font-size: .93em; line-height: 1.55;
  background: #fff; table-layout: auto;
}
:is(.nsl-article-layout, #nsl-gift2026) .scroll :is(th,td) {
  padding: 11px 12px; text-align: left; vertical-align: top;
  border: 1px solid #d7e7e8; font-size: 1em; line-height: 1.55;
}
:is(.nsl-article-layout, #nsl-gift2026) .scroll thead th {
  background: var(--nsl-teal) !important; color: #fff !important; font-weight: 750;
}
:is(.nsl-article-layout, #nsl-gift2026) .scroll thead th * { color: #fff !important; }
:is(.nsl-article-layout, #nsl-gift2026) .scroll tbody tr:nth-child(even) { background: #f1f8f7; }
:is(.nsl-article-layout, #nsl-gift2026) .scroll tbody th { color: var(--nsl-navy-deep); background: transparent; font-weight: 750; }
:is(.nsl-article-layout, #nsl-gift2026) :is(.formula,.result,.warn) {
  border-radius: 9px; padding: 17px 20px; margin: 1.15em 0 1.5em;
  font-size: 1em; line-height: 1.7;
}
:is(.nsl-article-layout, #nsl-gift2026) .formula { background: #edf4fa; border: 1px solid #c4d9eb; border-left: 5px solid #3b82b1; }
:is(.nsl-article-layout, #nsl-gift2026) .formula strong { color: var(--nsl-navy-deep) !important; }
:is(.nsl-article-layout, #nsl-gift2026) .result { background: #edf8f7; border: 1px solid #bedddb; border-left: 5px solid var(--nsl-teal); }
:is(.nsl-article-layout, #nsl-gift2026) .warn { background: #fff9e8; border: 1px solid #eddb9f; border-left: 5px solid #c49d37; }
:is(.nsl-article-layout, #nsl-gift2026) .steps { padding: 17px 21px; background: #f5f9fa; border-radius: 9px; margin: 1.15em 0; }
:is(.nsl-article-layout, #nsl-gift2026) :is(.cite,.sources,.small) { font-size: .84em; color: var(--nsl-muted); line-height: 1.68; }
:is(.nsl-article-layout, #nsl-gift2026) .end { border-top: 3px solid var(--nsl-gold); margin-top: 2.15em; padding-top: 1.15em; }
:is(.nsl-article-layout, #nsl-gift2026) img { max-width: 100%; height: auto; }
:is(.nsl-article-layout, #nsl-gift2026) :is(h2,h3)[id] { scroll-margin-top: 90px; }
/* Title stays outside article HTML; only adjust explicitly approved posts. */
body.single-post:has(.nsl-article-layout) :is(h1.entry-title,h1.wp-block-post-title),
body.postid-275 :is(h1.entry-title,h1.wp-block-post-title) {
  color: #17394c; font-size: clamp(25px, 2.25vw, 35px);
  line-height: 1.48; font-weight: 750; overflow-wrap: break-word;
}
@media (max-width: 700px) {
  :is(.nsl-article-layout, #nsl-gift2026) { font-size: 16px; line-height: 1.78; }
  :is(.nsl-article-layout, #nsl-gift2026) .hero { padding: 18px 17px; }
  :is(.nsl-article-layout, #nsl-gift2026) .key { padding: 17px 17px; }
  :is(.nsl-article-layout, #nsl-gift2026) .toc { padding: 17px 17px; }
  :is(.nsl-article-layout, #nsl-gift2026) h2 { font-size: clamp(20px, 4.7vw, 23px); padding: .67em .7em; margin-top: 1.9em; }
  :is(.nsl-article-layout, #nsl-gift2026) h3 { font-size: clamp(19px, 4.15vw, 21px); }
  :is(.nsl-article-layout, #nsl-gift2026) .toc ol { grid-template-columns: 1fr; gap: 5px; }
  :is(.nsl-article-layout, #nsl-gift2026) :is(.formula,.result,.warn) { padding: 15px; }
}
@media (max-width: 420px) {
  :is(.nsl-article-layout, #nsl-gift2026) .lead { font-size: 1em; }
  :is(.nsl-article-layout, #nsl-gift2026) .scroll table { min-width: 500px; }
  :is(.nsl-article-layout, #nsl-gift2026) .key ul { padding-left: 1.22em; }
}
@media print {
  :is(.nsl-article-layout, #nsl-gift2026) .scroll { overflow: visible; }
  :is(.nsl-article-layout, #nsl-gift2026) .scroll table { min-width: 0; }
  :is(.nsl-article-layout, #nsl-gift2026) :is(.hero,.key,.toc,.formula,.result,.warn) { break-inside: avoid; box-shadow: none; }
}
