.sn-check {
  --sn-ink: #081d31;
  --sn-muted: #526979;
  --sn-paper: #f6f9fa;
  --sn-white: #fff;
  --sn-green: #1679a7;
  --sn-green-dark: #123f70;
  --sn-mint: #deecf4;
  --sn-orange: #f39a43;
  --sn-line: #e5e9ec;
  color: var(--sn-ink);
  font-size: 16px;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

.sn-check *,
.sn-check *::before,
.sn-check *::after { box-sizing: border-box; }
.sn-check button,
.sn-check input,
.sn-check select { font: inherit; }
.sn-check button { cursor: pointer; }
.sn-check [data-result-block][hidden] { display: none !important; }

.sn-check__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  width: min(1320px, calc(100% - 40px));
  margin-inline: auto;
}
.sn-check > .sn-check__hero {
  width: min(1320px, calc(100% - 40px));
}
.sn-check__main { min-width: 0; }
.sn-check__main > .sn-check__hero,
.sn-check__main > .sn-check__calculator,
.sn-check__main > .sn-check__quick,
.sn-check__main > .sn-check__diagnosis,
.sn-check__main > .sn-check__detail-entry,
.sn-check__main > .sn-check__section,
.sn-check__main > .sn-check__concerns,
.sn-check__main > .sn-check__stockroom,
.sn-check__main > .sn-check__next,
.sn-check__main > .sn-check__sources {
  width: 100%;
}
.sn-check__detail-flow[hidden] { display: none; }
.sn-check__detail-flow > .sn-check__detail-entry,
.sn-check__detail-flow > .sn-check__section,
.sn-check__detail-flow > .sn-check__concerns,
.sn-check__detail-flow > .sn-check__stockroom,
.sn-check__detail-flow > .sn-check__next,
.sn-check__detail-flow > .sn-check__sources {
  width: 100%;
}
.sn-check__sidebar { min-width: 0; padding-top: 24px; }
.sn-check__sidebar-sticky {
  position: sticky;
  top: 24px;
  display: grid;
  gap: 14px;
}
.sn-check__sidebar-card {
  overflow: hidden;
  padding: 22px;
  border: 1px solid var(--sn-line);
  border-radius: 20px 20px 7px 20px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(23,42,53,.06);
}
.sn-check__sidebar-label {
  color: var(--sn-green);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .14em;
}
.sn-check__sidebar-card h2 {
  margin: 6px 0 15px;
  font-size: 19px;
  line-height: 1.45;
}
.sn-check__sidebar-card > a {
  display: grid;
  grid-template-columns: 27px 1fr;
  gap: 8px;
  align-items: center;
  padding: 11px 0;
  border-top: 1px solid #edf2f4;
  color: var(--sn-ink);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}
.sn-check__sidebar-card > a b {
  color: var(--sn-green);
  font-size: 11px;
}
.sn-check__sidebar-card > a:hover,
.sn-check__sidebar-card > a:focus-visible { color: var(--sn-green); }
.sn-check__sidebar-card.is-priority { background: #edf5f7; }
.sn-check__sidebar-card ol {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sn-check__sidebar-card li {
  display: grid;
  gap: 2px;
  padding-bottom: 9px;
  border-bottom: 1px solid #d6e3ea;
}
.sn-check__sidebar-card li b { font-size: 14px; }
.sn-check__sidebar-card li span,
.sn-check__sidebar-card p {
  margin: 0;
  color: var(--sn-muted);
  font-size: 12px;
  line-height: 1.7;
}
.sn-check__sidebar-card.is-priority p { margin-top: 13px; }
.sn-check__sidebar-card.is-navigate {
  background: var(--sn-green-dark);
  color: #fff;
}
.sn-check__sidebar-card.is-navigate .sn-check__sidebar-label { color: #89c1e4; }
.sn-check__sidebar-card.is-navigate h2 { color: #fff; }
.sn-check__sidebar-card.is-navigate p { color: #bdd5e2; }
.sn-check__sidebar-card.is-navigate button {
  width: 100%;
  margin-top: 15px;
  border: 0;
  border-radius: 10px;
  padding: 12px 10px;
  background: #fff;
  color: var(--sn-green-dark);
  font-size: 11px;
  font-weight: 900;
}

.sn-check__hero,
.sn-check__calculator,
.sn-check__quick,
.sn-check__diagnosis,
.sn-check__section,
.sn-check__concerns,
.sn-check__stockroom,
.sn-check__next,
.sn-check__sources {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}

.sn-check__hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  overflow: hidden;
  min-height: 400px;
  margin-top: 24px;
  padding: 62px 66px;
  border-radius: 36px 36px 12px 36px;
  background:
    radial-gradient(circle at 87% 26%, rgba(255,255,255,.16) 0 9%, transparent 9.5%),
    radial-gradient(circle at 78% 70%, rgba(255,255,255,.08) 0 18%, transparent 18.5%),
    var(--sn-green-dark);
  color: #fff;
}
.sn-check__hero::after {
  position: absolute;
  right: -70px;
  bottom: -120px;
  width: 360px;
  height: 360px;
  border: 80px solid rgba(255,255,255,.05);
  border-radius: 50%;
  content: "";
}
.sn-check__hero > div { position: relative; z-index: 1; }
.sn-check__eyebrow { margin: 0 0 18px; color: #9fdcf3; font-size: 14px; font-weight: 800; letter-spacing: .08em; }
.sn-check__hero h1 { margin: 0; color: #fff; font-size: clamp(38px,5vw,66px); line-height: 1.22; letter-spacing: -.04em; }
.sn-check__hero > div:first-child > p:last-child { max-width: 650px; margin: 24px 0 0; color: #e1edf2; font-size: 17px; line-height: 1.9; }
.sn-check__hero-note {
  display: grid;
  gap: 13px;
  min-width: 142px;
  padding: 20px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 20px 20px 4px 20px;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(8px);
}
.sn-check__hero-note-group { display: grid; gap: 3px; min-width: 0; }
.sn-check__hero-note-group > span { color: #9fdcf3; font-size: 11px; }
.sn-check__hero-note-group > strong { color: #fff; font-size: 24px; line-height: 1.25; white-space: nowrap; }

.sn-check__calculator {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  margin-top: 34px;
  border: 1px solid var(--sn-line);
  border-radius: 28px 28px 10px 28px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(23,42,53,.08);
}
.sn-check__input-panel,
.sn-check__result-panel { padding: 44px; }
.sn-check__result-panel { border-radius: 0 27px 9px 0; background: #10243d; color: #fff; }
.sn-check__heading > span,
.sn-check__next span { color: var(--sn-green); font-size: 13px; font-weight: 900; letter-spacing: .14em; }
.sn-check__heading h2 { margin: 7px 0 8px; font-size: clamp(25px,3vw,34px); letter-spacing: -.03em; }
.sn-check__heading p { margin: 0; color: var(--sn-muted); font-size: 15px; line-height: 1.8; }
.sn-check__heading.is-light > span { color: #9fdcf3; }
.sn-check__heading.is-light h2 { color: #fff; }
.sn-check__heading.is-light p { color: #b9dce7; }

.sn-check__quick {
  margin-top: 28px;
  padding: 38px;
  border: 1px solid var(--sn-line);
  border-radius: 28px 28px 10px 28px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(23,42,53,.08);
}
.sn-check__quick-grid {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 14px;
}
.sn-check__quick-grid.is-single { grid-template-columns: minmax(240px, 460px); }
.sn-check__number {
  display: flex;
  align-items: center;
  overflow: hidden;
  height: 48px;
  border: 1px solid #c8dbe5;
  border-radius: 12px;
  background: #fff;
}
.sn-check__number input {
  min-width: 0;
  width: 100%;
  height: 100%;
  border: 0;
  padding: 0 8px 0 14px;
  background: transparent;
  color: var(--sn-ink);
  font-size: 18px;
  font-weight: 800;
  outline: none;
}
.sn-check__number em {
  padding-right: 14px;
  color: var(--sn-muted);
  font-size: 15px;
  font-style: normal;
}
.sn-check__readiness {
  margin: 24px 0 0;
  padding: 0;
  border: 0;
}
.sn-check__readiness:focus { outline: none; }
.sn-check__readiness legend {
  margin-bottom: 8px;
  color: var(--sn-muted);
  font-size: 14px;
  font-weight: 800;
}
.sn-check__readiness > div {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 9px;
}
.sn-check__readiness.has-error > div {
  outline: 3px solid rgba(190,83,51,.22);
  outline-offset: 4px;
}
.sn-check__readiness-message {
  margin: 14px 0 0;
  padding: 12px 14px;
  border-left: 4px solid #be5333;
  border-radius: 7px 11px 11px 7px;
  background: #fff2ec;
  color: #71321f;
  line-height: 1.7;
}
.sn-check__readiness-message[hidden] { display: none; }
.sn-check__readiness button,
.sn-check__concern-buttons button {
  min-height: 46px;
  border: 1px solid var(--sn-line);
  border-radius: 12px;
  padding: 10px 12px;
  background: #fff;
  color: var(--sn-ink);
  font-size: 14px;
  font-weight: 800;
}
.sn-check__readiness button.is-active,
.sn-check__concern-buttons button.is-active {
  border-color: var(--sn-green);
  background: var(--sn-mint);
  box-shadow: inset 0 0 0 1px var(--sn-green);
  color: var(--sn-green-dark);
}
.sn-check__diagnose {
  width: 100%;
  min-height: 52px;
  margin-top: 18px;
  border: 0;
  border-radius: 13px;
  background: var(--sn-green);
  color: #fff;
  font-size: 16px;
  font-weight: 900;
  box-shadow: 0 10px 28px rgba(18,74,109,.18);
}
.sn-check__detail-toggle {
  width: 100%;
  min-height: 56px;
  margin-top: 22px;
  border: 1px solid #9fd2e8;
  border-radius: 13px;
  background: transparent;
  color: #e9f8ff;
  font-size: 15px;
  font-weight: 900;
}
.sn-check__detail-toggle:hover,
.sn-check__detail-toggle:focus-visible { background: rgba(255,255,255,.08); }
.sn-check__detail-toggle:disabled { cursor: default; opacity: .65; }
.sn-check__detail-entry {
  margin-top: 28px;
  padding: 38px;
  border: 1px solid var(--sn-line);
  border-radius: 28px 28px 10px 28px;
  background: #fff;
  box-shadow: 0 18px 46px rgba(23,42,53,.07);
}
.sn-check__diagnosis {
  margin-top: 18px;
  padding: 42px;
  border-radius: 28px 28px 10px 28px;
  background: #10243d;
  color: #fff;
}
.sn-check__diagnosis[hidden] { display: none; }
.sn-check__diagnosis-head {
  display: flex;
  justify-content: space-between;
  gap: 28px;
  align-items: flex-start;
}
.sn-check__status {
  display: inline-block;
  padding: 6px 10px;
  border-radius: 999px;
  background: #f1d38d;
  color: #4d3812;
  font-size: 10px;
  font-weight: 900;
}
.sn-check__status[data-level="three"],
.sn-check__status[data-level="seven"] { background: #9fdcf3; color: #123f70; }
.sn-check__diagnosis-head h2 {
  max-width: 760px;
  margin: 12px 0 8px;
  color: #fff;
  font-size: clamp(24px,3vw,36px);
  line-height: 1.45;
}
.sn-check__diagnosis-head p {
  max-width: 760px;
  margin: 0;
  color: #c9dce5;
  font-size: 15px;
  line-height: 1.8;
}
.sn-check__family-summary {
  display: grid;
  min-width: 180px;
  gap: 4px;
  padding: 15px 17px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  background: rgba(255,255,255,.06);
}
.sn-check__family-summary strong { color: #fff; font-size: 14px; }
.sn-check__family-summary span { color: #aebfca; font-size: 11px; }
.sn-check__targets {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 14px;
}
.sn-check__day-switch {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 8px;
  margin-top: 28px;
  padding: 6px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 15px;
  background: rgba(255,255,255,.05);
}
.sn-check__day-switch button {
  min-height: 48px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #d7e2e7;
  font-size: 18px;
  font-weight: 900;
}
.sn-check__day-switch button:hover,
.sn-check__day-switch button:focus-visible { background: rgba(255,255,255,.08); }
.sn-check__day-switch button.is-active {
  background: #fff;
  color: var(--sn-green-dark);
  box-shadow: 0 7px 20px rgba(0,0,0,.16);
}
.sn-check__target[hidden] { display: none; }
.sn-check__target {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px;
  background: rgba(255,255,255,.055);
}
.sn-check__target header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 18px;
  background: rgba(255,255,255,.05);
}
.sn-check__target header span { color: #b8d9e8; font-size: 12px; font-weight: 800; }
.sn-check__target header strong { color: #fff; font-size: 20px; }
.sn-check__target.is-minimum header { border-left: 4px solid var(--sn-orange); }
.sn-check__target.is-goal header { border-left: 4px solid #9fdcf3; }
.sn-check__target.is-extended header { border-left: 4px solid #64a6d8; }
.sn-check__target.is-longterm header { border-left: 4px solid #b88bd4; }
.sn-check__target ul { margin: 0; padding: 5px 18px 12px; list-style: none; }
.sn-check__target li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2px 14px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.sn-check__target li:last-child { border-bottom: 0; }
.sn-check__target li > span { color: #e5eef2; font-size: 14px; }
.sn-check__target li > strong { color: #fff; font-size: 18px; }
.sn-check__target li > strong b { font: inherit; }
.sn-check__target li > small { grid-column: 1 / -1; color: #b8d9e8; font-size: 11px; line-height: 1.6; }
.sn-check__first-action {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 14px;
  padding: 22px;
  border-radius: 16px;
  background: #f2e9cd;
  color: var(--sn-ink);
}
.sn-check__first-action.is-copy-only {
  grid-template-columns: 1fr;
  border-left: 5px solid var(--sn-orange);
  box-shadow: 0 12px 30px rgba(70,56,23,.12);
}
.sn-check__first-action.is-copy-only h3 { font-size: 21px; }
.sn-check__first-action > div > span { color: #a16724; font-size: 10px; font-weight: 900; letter-spacing: .13em; }
.sn-check__first-action h3 { margin: 6px 0; font-size: 17px; }
.sn-check__first-action p { margin: 0; color: #5f604f; font-size: 13px; line-height: 1.7; }
.sn-check__first-action ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.sn-check__first-action li { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 7px; border-bottom: 1px solid #dfd2ad; }
.sn-check__first-action li:last-child { border-bottom: 0; }
.sn-check__first-action li strong { font-size: 14px; }
.sn-check__first-action li span { color: #676554; font-size: 12px; text-align: right; }
.sn-check__difference {
  margin-top: 14px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  padding: 0 18px;
  background: rgba(255,255,255,.04);
}
.sn-check__difference summary,
.sn-check__stockroom > summary {
  padding: 16px 0;
  font-size: 14px;
  font-weight: 900;
  cursor: pointer;
}
.sn-check__difference-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 9px;
  padding-bottom: 12px;
}
.sn-check__difference-grid label { display: grid; gap: 5px; }
.sn-check__difference-grid span { color: #b8d9e8; font-size: 9px; }
.sn-check__difference-grid input {
  width: 100%;
  height: 40px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 9px;
  padding: 0 10px;
  background: rgba(255,255,255,.08);
  color: #fff;
}
.sn-check__shortage {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 8px;
  padding: 0 0 16px;
}
.sn-check__shortage div { display: grid; gap: 2px; padding: 10px; border-radius: 9px; background: rgba(255,255,255,.08); }
.sn-check__shortage span { color: #9fd2e8; font-size: 9px; }
.sn-check__shortage strong { color: #fff; font-size: 11px; }
.sn-check__detail-entry .sn-check__difference {
  border-color: var(--sn-line);
  background: #f4f6f7;
}
.sn-check__detail-entry .sn-check__difference summary { color: var(--sn-ink); }
.sn-check__detail-entry .sn-check__difference-grid span { color: var(--sn-muted); font-size: 12px; }
.sn-check__detail-entry .sn-check__difference-grid input {
  border-color: #c9dce5;
  background: #fff;
  color: var(--sn-ink);
}
.sn-check__detail-entry .sn-check__shortage div { background: #edf5f7; }
.sn-check__detail-entry .sn-check__shortage span { color: var(--sn-muted); font-size: 11px; }
.sn-check__detail-entry .sn-check__shortage strong { color: var(--sn-ink); font-size: 13px; }
.sn-check__concerns { margin-top: 72px; }
.sn-check__concern-buttons {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 9px;
  margin-top: 22px;
}
.sn-check__advice {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 22px;
  border-radius: 16px;
  background: #edf7fb;
}
.sn-check__advice > p { margin: 0; color: var(--sn-muted); font-size: 12px; }
.sn-check__advice article { padding-bottom: 10px; border-bottom: 1px solid #c9dce5; }
.sn-check__advice article:last-child { padding-bottom: 0; border-bottom: 0; }
.sn-check__advice article strong { font-size: 13px; }
.sn-check__advice article p { margin: 5px 0 0; color: var(--sn-muted); font-size: 11px; line-height: 1.75; }

.sn-check__field { display: grid; gap: 7px; margin-top: 28px; }
.sn-check__field > span,
.sn-check__stock-form label > span,
.sn-check__member label > span { color: var(--sn-muted); font-size: 14px; font-weight: 800; }
.sn-check__field select {
  width: 100%;
  height: 48px;
  border: 1px solid #c8dbe5;
  border-radius: 12px;
  padding: 0 14px;
  background: #fff;
  color: var(--sn-ink);
  font-size: 16px;
  font-weight: 800;
}
.sn-check__days { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 28px 0 22px; }
.sn-check__days button {
  display: grid;
  gap: 3px;
  padding: 15px;
  border: 1px solid var(--sn-line);
  border-radius: 14px;
  background: #fff;
  color: var(--sn-ink);
  text-align: left;
}
.sn-check__days button.is-active { border-color: var(--sn-green); background: var(--sn-mint); box-shadow: inset 0 0 0 1px var(--sn-green); }
.sn-check__days small { color: var(--sn-muted); font-size: 11px; }
.sn-check__family-input { margin-top: 24px; }
.sn-check__family-input-head { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
.sn-check__family-input-head strong { color: var(--sn-ink); font-size: 16px; }
.sn-check__family-input-head span,
.sn-check__family-input > p { color: var(--sn-muted); font-size: 14px; font-weight: 650; }
.sn-check__family-input > p { margin: 10px 2px 0; line-height: 1.7; }
.sn-check__members { display: grid; gap: 10px; }
.sn-check__member {
  display: grid;
  grid-template-columns: 36px minmax(92px,.75fr) minmax(136px,1.15fr) auto;
  gap: 9px;
  align-items: end;
  padding: 12px;
  border: 1px solid #e5e9ec;
  border-radius: 14px;
  background: #f8fbfc;
}
.sn-check__member-number { display: grid; width: 36px; height: 48px; place-items: center; border-radius: 10px; background: #edf5f7; color: var(--sn-green-dark); font-size: 18px; font-weight: 900; }
.sn-check__member label > span { display: block; margin-bottom: 5px; font-size: 14px; }
.sn-check__age { display: flex; align-items: center; overflow: hidden; height: 48px; border: 1px solid #d9e6eb; border-radius: 9px; background: #fff; }
.sn-check__age input { min-width: 0; width: 100%; height: 100%; border: 0; padding: 0 6px 0 10px; background: transparent; font-weight: 800; outline: none; }
.sn-check__age em { padding-right: 8px; color: var(--sn-muted); font-size: 14px; font-style: normal; }
.sn-check__member select { width: 100%; height: 48px; border: 1px solid #d9e6eb; border-radius: 9px; padding: 0 10px; background: #fff; color: var(--sn-ink); font-size: 18px; font-weight: 700; }
.sn-check__member-type { margin-bottom: 7px; padding: 4px 7px; border-radius: 999px; background: #edf5f7; color: var(--sn-green-dark); font-size: 14px; font-weight: 800; white-space: nowrap; }
.sn-check__member > button { width: 32px; height: 48px; border: 0; background: transparent; color: #6f7b83; font-size: 20px; }
.sn-check__member > button:disabled { cursor: default; opacity: .2; }
.sn-check__add-member { width: 100%; margin-top: 12px; padding: 12px; border: 1px dashed #b8d9e8; border-radius: 12px; background: transparent; color: var(--sn-green); font-size: 12px; font-weight: 800; }

.sn-check__results { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 28px; }
.sn-check__results article { display: flex; gap: 14px; min-width: 0; padding: 18px; border: 1px solid rgba(255,255,255,.09); border-radius: 16px; background: rgba(255,255,255,.055); }
.sn-check__results article > span { display: grid; flex: 0 0 auto; width: 42px; height: 42px; place-items: center; border-radius: 12px; color: #fff; font-size: 13px; font-weight: 900; }
.sn-check__results .is-water { background: #2c89c8; }
.sn-check__results .is-food { background: #d57b32; }
.sn-check__results .is-toilet { background: #7770ba; }
.sn-check__results .is-gas { background: #b74f3d; }
.sn-check__results small,
.sn-check__results strong,
.sn-check__results p { display: block; }
.sn-check__results small { color: #bad6e3; font-size: 10px; }
.sn-check__results strong { margin-top: 1px; font-size: 28px; }
.sn-check__results strong b { font: inherit; }
.sn-check__results strong em { margin-left: 4px; color: #c9dce5; font-size: 13px; font-style: normal; }
.sn-check__results p { margin: 3px 0 0; color: #aebfca; font-size: 9px; line-height: 1.5; }
.sn-check__priority { margin-top: 14px; padding: 20px 22px; border-radius: 16px; background: #f2e9cd; color: var(--sn-ink); }
.sn-check__priority h3 { margin: 0 0 12px; font-size: 14px; }
.sn-check__priority ol { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sn-check__priority li { font-size: 12px; font-weight: 700; }
.sn-check__priority li span { display: inline-block; width: 28px; color: #b3732f; font-size: 10px; }

.sn-check__section,
.sn-check__stockroom { margin-top: 86px; }
.sn-check__risks { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 26px; }
.sn-check__risks article { padding: 22px; border: 1px solid var(--sn-line); border-radius: 18px 18px 6px 18px; background: #fff; }
.sn-check__risks article > div { display: flex; align-items: center; gap: 9px; }
.sn-check__risks h3 { margin: 0; font-size: 16px; }
.sn-check__risks span { padding: 4px 7px; border-radius: 999px; background: var(--sn-mint); color: var(--sn-green-dark); font-size: 9px; font-weight: 900; }
.sn-check__risks p { margin: 13px 0 0; color: var(--sn-muted); font-size: 14px; line-height: 1.8; }
.sn-check__risk-action { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 13px; padding: 22px 24px; border-radius: 16px; background: #edf7fb; }
.sn-check__risk-action strong { font-size: 16px; }
.sn-check__risk-action p { margin: 5px 0 0; color: var(--sn-muted); font-size: 13px; }
.sn-check__risk-action a { flex: 0 0 auto; padding: 12px 16px; border-radius: 10px; background: var(--sn-green); color: #fff; font-size: 11px; font-weight: 800; text-decoration: none; }

.sn-check__stockroom { padding: 0 38px 38px; border-radius: 28px 28px 10px 28px; background: #edf5f7; }
.sn-check__stockroom > summary { padding: 24px 0; color: var(--sn-green-dark); font-size: 14px; }
.sn-check__stock-intro { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.sn-check__alert { min-width: 220px; padding: 18px 20px; border-left: 4px solid #df6b55; border-radius: 8px 14px 14px 8px; background: #fff1ed; }
.sn-check__alert.is-calm { border-left-color: var(--sn-green); background: #fff; }
.sn-check__alert span { display: block; color: var(--sn-muted); font-size: 10px; font-weight: 800; }
.sn-check__alert strong { display: block; margin-top: 2px; font-size: 26px; }
.sn-check__alert p { margin: 2px 0 0; color: var(--sn-muted); font-size: 10px; }
.sn-check__stock-form { display: grid; grid-template-columns: 1.5fr 1fr .55fr auto; gap: 10px; align-items: end; margin-top: 28px; padding: 16px; border-radius: 16px; background: #fff; }
.sn-check__stock-form label { display: grid; gap: 6px; }
.sn-check__stock-form input { width: 100%; height: 44px; border: 1px solid #d9e6eb; border-radius: 10px; padding: 0 12px; background: #f8fbfc; color: var(--sn-ink); outline: none; }
.sn-check__stock-form input:focus { border-color: var(--sn-green); box-shadow: 0 0 0 2px rgba(18,74,109,.12); }
.sn-check__stock-form button { height: 44px; border: 0; border-radius: 10px; padding: 0 18px; background: var(--sn-green); color: #fff; font-size: 12px; font-weight: 800; }
.sn-check__stock-list { overflow: hidden; margin-top: 12px; border-radius: 16px; background: #fff; }
.sn-check__stock-head { display: flex; justify-content: space-between; padding: 15px 18px; border-bottom: 1px solid #edf2f4; }
.sn-check__stock-head strong { font-size: 13px; }
.sn-check__stock-head span { color: var(--sn-muted); font-size: 11px; }
.sn-check__stock-row { display: grid; grid-template-columns: 150px 1fr auto; gap: 16px; align-items: center; padding: 13px 18px; border-bottom: 1px solid #f3f6f7; }
.sn-check__stock-row:last-child { border-bottom: 0; }
.sn-check__expiry { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 9px; }
.sn-check__expiry strong,
.sn-check__expiry span { font-size: 10px; }
.sn-check__expiry.is-expired,
.sn-check__expiry.is-urgent { background: #ffe6df; color: #a83e2d; }
.sn-check__expiry.is-soon { background: #fff2ce; color: #805c00; }
.sn-check__expiry.is-safe { background: #e0ecf4; color: var(--sn-green-dark); }
.sn-check__stock-name strong,
.sn-check__stock-name span { display: block; }
.sn-check__stock-name strong { font-size: 13px; }
.sn-check__stock-name span { margin-top: 3px; color: var(--sn-muted); font-size: 10px; }
.sn-check__stock-row button { border: 1px solid #c8dbe5; border-radius: 9px; padding: 8px 10px; background: #fff; color: var(--sn-green-dark); font-size: 10px; font-weight: 800; }
.sn-check__empty { padding: 30px 18px; color: var(--sn-muted); text-align: center; font-size: 12px; }
.sn-check__empty strong { color: var(--sn-ink); }
.sn-check__empty p { margin: 5px 0 0; }
.sn-check__local-note { margin: 12px 4px 0; color: var(--sn-muted); font-size: 10px; line-height: 1.7; }

.sn-check__bags { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; margin-top: 28px; }
.sn-check__bag { padding: 24px; border: 1px solid var(--sn-line); border-radius: 20px 20px 7px 20px; background: #fff; }
.sn-check__bag-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid #edf2f4; }
.sn-check__bag-top span { color: var(--sn-muted); font-size: 10px; font-weight: 800; }
.sn-check__bag-top h3 { margin: 4px 0 0; font-size: 18px; }
.sn-check__bag-top > strong { padding: 7px 10px; border-radius: 9px; background: var(--sn-mint); color: var(--sn-green-dark); font-size: 11px; white-space: nowrap; }
.sn-check__bag ul { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 17px 0 0; padding: 0; list-style: none; }
.sn-check__bag li { position: relative; padding-left: 18px; color: #526979; font-size: 12px; }
.sn-check__bag li::before { position: absolute; top: 2px; left: 0; display: grid; width: 13px; height: 13px; place-items: center; border: 1px solid #aebfca; border-radius: 4px; color: var(--sn-green); content: "✓"; font-size: 8px; }
.sn-check__shared { display: grid; grid-template-columns: 210px 1fr; gap: 20px; align-items: center; margin-top: 14px; padding: 24px; border-radius: 18px; background: #edf7fb; }
.sn-check__shared h3 { margin: 0; font-size: 15px; }
.sn-check__shared div { display: flex; flex-wrap: wrap; gap: 7px; }
.sn-check__shared span { padding: 7px 10px; border-radius: 999px; background: #fff; color: #526979; font-size: 10px; font-weight: 700; }
.sn-check__next { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 30px; margin-top: 70px; padding: 34px 38px; border-left: 5px solid var(--sn-orange); border-radius: 8px 18px 18px 8px; background: #fff; }
.sn-check__next h2 { max-width: 800px; margin: 8px 0 0; font-size: clamp(19px,2.3vw,28px); line-height: 1.55; }
.sn-check__next p { max-width: 800px; margin: 10px 0 0; color: var(--sn-muted); font-size: 12px; line-height: 1.8; }
.sn-check__next small { display: block; max-width: 800px; margin-top: 8px; color: #758189; font-size: 9px; line-height: 1.7; }
.sn-check__next button { flex: 0 0 auto; padding: 14px 20px; border: 0; border-radius: 10px; background: var(--sn-green); color: #fff; font-size: 11px; font-weight: 900; }
.sn-check__line-note { flex-basis: 100%; margin: 0; color: var(--sn-green-dark); font-size: 10px; }
.sn-check__sources { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; margin-top: 40px; padding: 38px 0 50px; border-top: 1px solid #d7e2e7; }
.sn-check__sources div { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.sn-check__sources strong { width: 100%; font-size: 11px; }
.sn-check__sources a,
.sn-check__sources p { margin: 0; color: var(--sn-muted); font-size: 10px; line-height: 1.8; }

/* The current sizes are the smartphone minimum. Tablet and PC use one larger step. */
@media (min-width: 641px) {
  .sn-check__eyebrow { font-size: 16px; }
  .sn-check__hero > div:first-child > p:last-child { font-size: 19px; }
  .sn-check__hero-note-group > span { font-size: 13px; }
  .sn-check__hero-note-group > strong { font-size: 28px; }

  .sn-check__heading > span,
  .sn-check__next span { font-size: 15px; }
  .sn-check__heading p { font-size: 17px; }
  .sn-check__field > span,
  .sn-check__stock-form label > span,
  .sn-check__member label > span { font-size: 16px; }
  .sn-check__family-input-head strong { font-size: 18px; }
  .sn-check__family-input-head span,
  .sn-check__family-input > p,
  .sn-check__age em,
  .sn-check__member-type { font-size: 15px; }
  .sn-check__number input { font-size: 20px; }
  .sn-check__number em { font-size: 17px; }
  .sn-check__field select { font-size: 18px; }
  .sn-check__readiness legend { font-size: 16px; }
  .sn-check__readiness button,
  .sn-check__concern-buttons button { font-size: 16px; }
  .sn-check .sn-check__diagnose { font-size: 18px; }

  .sn-check__diagnosis-head p { font-size: 17px; }
  .sn-check__family-summary strong { font-size: 16px; }
  .sn-check__family-summary span { font-size: 13px; }
  .sn-check__target header span { font-size: 14px; }
  .sn-check__target header strong { font-size: 22px; }
  .sn-check__target li > span { font-size: 16px; }
  .sn-check__target li > strong { font-size: 20px; }
  .sn-check__target li > small { font-size: 13px; }
  .sn-check__first-action h3 { font-size: 20px; }
  .sn-check__first-action p { font-size: 15px; }
  .sn-check__first-action li strong { font-size: 16px; }
  .sn-check__first-action li span { font-size: 14px; }
  .sn-check .sn-check__detail-toggle { font-size: 17px; }

  .sn-check__difference summary,
  .sn-check__stockroom > summary { font-size: 16px; }
  .sn-check__detail-entry .sn-check__difference-grid span { font-size: 14px; }
  .sn-check__detail-entry .sn-check__shortage span { font-size: 13px; }
  .sn-check__detail-entry .sn-check__shortage strong { font-size: 15px; }
  .sn-check__risks h3 { font-size: 19px; }
  .sn-check__risks span { font-size: 12px; }
  .sn-check__risks p { font-size: 16px; }
  .sn-check__risk-action strong { font-size: 18px; }
  .sn-check__risk-action p { font-size: 15px; }
  .sn-check__risk-action a { font-size: 14px; }
  .sn-check__advice > p,
  .sn-check__advice article p { font-size: 14px; }
  .sn-check__advice article strong { font-size: 16px; }

  .sn-check__sidebar-label { font-size: 13px; }
  .sn-check__sidebar-card h2 { font-size: 21px; }
  .sn-check__sidebar-card > a { font-size: 15px; }
  .sn-check__sidebar-card > a b { font-size: 13px; }
  .sn-check__sidebar-card li b { font-size: 16px; }
  .sn-check__sidebar-card li span,
  .sn-check__sidebar-card p { font-size: 14px; }
  .sn-check__sidebar-card.is-navigate button { font-size: 14px; }

  .sn-check__stock-form input,
  .sn-check__stock-form button { font-size: 15px; }
  .sn-check__stock-head strong,
  .sn-check__stock-name strong { font-size: 16px; }
  .sn-check__stock-head span,
  .sn-check__stock-name span,
  .sn-check__expiry strong,
  .sn-check__expiry span,
  .sn-check__stock-row button { font-size: 13px; }
  .sn-check__next p { font-size: 15px; }
  .sn-check__next small { font-size: 12px; }
  .sn-check__next button { font-size: 14px; }
  .sn-check__sources strong { font-size: 14px; }
  .sn-check__sources a,
  .sn-check__sources p { font-size: 13px; }
}

@media (max-width: 900px) {
  .sn-check__hero { display: block; padding: 48px 40px; }
  .sn-check__hero-note { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; width: fit-content; margin-top: 30px; }
  .sn-check__calculator { grid-template-columns: 1fr; }
  .sn-check__result-panel { border-radius: 0 0 9px 27px; }
  .sn-check__shared { grid-template-columns: 1fr; }
  .sn-check__risks { grid-template-columns: repeat(2,1fr); }
  .sn-check__stock-form { grid-template-columns: 1fr 1fr; }
  .sn-check__readiness > div { grid-template-columns: 1fr 1fr; }
  .sn-check__concern-buttons { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 1100px) {
  .sn-check__layout { grid-template-columns: 1fr; }
  .sn-check__sidebar { padding-top: 0; }
  .sn-check__sidebar-sticky {
    position: static;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .sn-check__layout { width: 100%; }
  .sn-check > .sn-check__hero { width: min(100% - 24px,1320px); }
  .sn-check__sidebar {
    width: min(100% - 24px,1180px);
    margin-inline: auto;
  }
  .sn-check__sidebar-sticky { grid-template-columns: 1fr; }
  .sn-check__hero,
  .sn-check__calculator,
  .sn-check__quick,
  .sn-check__diagnosis,
  .sn-check__section,
  .sn-check__concerns,
  .sn-check__stockroom,
  .sn-check__next,
  .sn-check__sources { width: min(100% - 24px,1180px); }
  .sn-check__hero { min-height: auto; margin-top: 12px; padding: 38px 24px 30px; border-radius: 24px 24px 8px 24px; }
  .sn-check__hero h1 { font-size: 36px; }
  .sn-check__hero > div:first-child > p:last-child { font-size: 14px; }
  .sn-check__hero-note { width: 100%; padding: 13px 15px; text-align: center; }
  .sn-check__hero-note-group > strong { font-size: 18px; }
  .sn-check__calculator { margin-top: 16px; border-radius: 20px 20px 7px 20px; }
  .sn-check__quick { margin-top: 14px; padding: 26px 18px; border-radius: 20px 20px 7px 20px; }
  .sn-check__detail-entry { padding: 26px 18px; border-radius: 20px 20px 7px 20px; }
  .sn-check__quick-grid,
  .sn-check__targets,
  .sn-check__first-action,
  .sn-check__difference-grid,
  .sn-check__shortage { grid-template-columns: 1fr; }
  .sn-check__diagnosis { padding: 28px 18px; border-radius: 20px 20px 7px 20px; }
  .sn-check__diagnosis-head { display: block; }
  .sn-check__family-summary { margin-top: 16px; }
  .sn-check__target li { grid-template-columns: 1fr auto; }
  .sn-check__concern-buttons { grid-template-columns: 1fr; }
  .sn-check__input-panel,
  .sn-check__result-panel { padding: 28px 18px; }
  .sn-check__family-input-head { align-items: flex-start; flex-direction: column; }
  .sn-check__member { grid-template-columns: 36px minmax(0,.75fr) minmax(0,1.25fr); }
  .sn-check__member > label,
  .sn-check__member select { min-width: 0; }
  .sn-check__member-type { display: none; }
  .sn-check__results,
  .sn-check__risks,
  .sn-check__bags,
  .sn-check__stock-form,
  .sn-check__sources { grid-template-columns: 1fr; }
  .sn-check__section,
  .sn-check__stockroom { margin-top: 58px; }
  .sn-check__risk-action,
  .sn-check__stock-intro { display: block; }
  .sn-check__risk-action a { display: block; margin-top: 15px; text-align: center; }
  .sn-check__stockroom { padding: 0 14px 26px; border-radius: 20px 20px 7px 20px; }
  .sn-check__alert { margin-top: 18px; }
  .sn-check__stock-row { grid-template-columns: 1fr auto; gap: 10px; }
  .sn-check__expiry { grid-column: 1 / -1; }
  .sn-check__bag { padding: 20px; }
  .sn-check__bag ul { grid-template-columns: 1fr; }
  .sn-check__next { display: block; margin-top: 44px; padding: 26px 22px; }
  .sn-check__next button { width: 100%; margin-top: 18px; }
  .sn-check__sources { gap: 20px; }
}

/* Project HARMONY 共通可読性基準 D-102 */
.sn-check {
  --harmony-readable-body: 16px;
  --harmony-readable-support: 14px;
  --harmony-readable-control: 18px;
  font-size: var(--harmony-readable-body);
}

.sn-check :where(p, li, dd, td, th, label, legend) {
  font-size: var(--harmony-readable-body) !important;
  font-weight: 500;
  opacity: 1;
}

.sn-check :where(small, dt, figcaption, .sn-check__eyebrow) {
  font-size: var(--harmony-readable-support) !important;
  font-weight: 650;
  opacity: 1;
}

.sn-check :where(button, input, select, textarea) {
  font-size: var(--harmony-readable-control) !important;
}

.sn-check__member-number {
  font-size: var(--harmony-readable-control) !important;
}

.sn-check__field > span,
.sn-check__member label > span,
.sn-check__readiness legend,
.sn-check__family-input-head strong,
.sn-check__age em,
.sn-check__family-summary strong,
.sn-check__target li > span {
  font-size: var(--harmony-readable-body) !important;
  opacity: 1;
}

.sn-check__hero-note-group > span,
.sn-check__heading > span,
.sn-check__family-input-head span,
.sn-check__family-input > p,
.sn-check__status,
.sn-check__family-summary span,
.sn-check__target header span,
.sn-check__target li > small {
  font-size: var(--harmony-readable-support) !important;
  opacity: 1;
}

.sn-check__hero > div:first-child > p:last-child,
.sn-check__heading p,
.sn-check__diagnosis-head p {
  font-size: var(--harmony-readable-body) !important;
  opacity: 1;
}

.sn-check__heading p {
  color: var(--sn-ink);
}

.sn-check__hero > div:first-child > p:last-child {
  color: #edf7fb;
}

.sn-check__diagnosis-head p {
  color: #d6e3ea;
}

.sn-check__sources strong,
.sn-check__sources a,
.sn-check__sources p {
  font-size: var(--harmony-readable-support) !important;
  opacity: 1;
}

@media (min-width: 641px) {
  .sn-check {
    --harmony-readable-body: 18px;
    --harmony-readable-support: 15px;
  }
}

/* 堕天使 2026-08-21: 結果導線を「不足量→想定災害→備蓄日数/避難→LINE」へ整理 */
.sn-check__day-switch { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sn-check__owned {
  margin-top: 22px;
  padding: 24px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 18px;
  background: rgba(255,255,255,.06);
}
.sn-check__owned header > span { color: #f1d38d; font-size: 13px; font-weight: 900; letter-spacing: .08em; }
.sn-check__owned h3 { margin: 7px 0 6px; color: #fff; font-size: 22px; }
.sn-check__owned header p { margin: 0 0 18px; color: #c9dce5; line-height: 1.75; }
.sn-check__owned .sn-check__difference-grid { padding-bottom: 12px; }
.sn-check__owned .sn-check__difference-grid span { color: #d7e2e7; }
.sn-check__owned .sn-check__difference-grid input {
  border-color: rgba(255,255,255,.2);
  background: rgba(255,255,255,.09);
  color: #fff;
}
.sn-check__owned .sn-check__shortage { padding-bottom: 0; }
.sn-check__owned .sn-check__shortage div { background: rgba(255,255,255,.09); }
.sn-check__owned .sn-check__shortage span { color: #b8d9e8; }
.sn-check__owned .sn-check__shortage strong { color: #fff; }

.sn-check__risks article { display: grid; gap: 14px; }
.sn-check__risks article > div { display: block; }
.sn-check__risks article > strong {
  display: block;
  padding-top: 13px;
  border-top: 1px solid #e5e9ec;
  color: var(--sn-green-dark);
  font-size: 17px;
  line-height: 1.55;
}
.sn-check__risks article.is-pending { grid-column: 1 / -1; background: #f7f3e9; }
.sn-check__risks article.is-pending p { margin: 0; }

.sn-check__reality {
  width: min(1180px, calc(100% - 40px));
  margin: 74px auto 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.sn-check__reality-card {
  padding: 30px;
  border: 1px solid var(--sn-line);
  border-radius: 20px 20px 7px 20px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(23,42,53,.06);
}
.sn-check__reality-card > span { color: var(--sn-green); font-size: 13px; font-weight: 900; letter-spacing: .08em; }
.sn-check__reality-card h2 { margin: 9px 0 13px; font-size: clamp(22px,2.5vw,31px); line-height: 1.45; }
.sn-check__reality-card p { margin: 9px 0 0; color: var(--sn-muted); line-height: 1.85; }
.sn-check__reality-card.is-days { border-left: 5px solid #d9a24c; }
.sn-check__reality-card.is-evacuation { border-left: 5px solid var(--sn-green); }

.sn-check__brand-message {
  max-width: 760px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid #e5e9ec;
}
.sn-check__brand-message p { margin: 0 0 14px; color: var(--sn-ink); }
.sn-check__brand-message strong { display: block; margin-top: 4px; font-size: 18px; line-height: 1.7; }
.sn-check__brand-message small { display: block; margin-top: 8px; color: var(--sn-green-dark); }
.sn-check__line-cta {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 14px 20px;
  border-radius: 10px;
  background: var(--sn-green);
  color: #fff;
  font-weight: 900;
  text-align: center;
  text-decoration: none;
}
.sn-check__line-cta:hover,
.sn-check__line-cta:focus-visible { background: var(--sn-green-dark); color: #fff; }
.sn-check__sources { display: block; }
.sn-check__sources strong { display: block; margin-bottom: 8px; }

@media (max-width: 640px) {
  .sn-check__reality { width: min(100% - 24px,1180px); grid-template-columns: 1fr; margin-top: 54px; }
  .sn-check__reality-card { padding: 24px 20px; }
  .sn-check__owned { padding: 20px 16px; }
  .sn-check__line-cta { width: 100%; margin-top: 18px; }
}

/* ==========================================================================
   R4 BLUE FINAL DESIGN — 2026-08-22
   Standalone checker / 暮らしの備蓄ナビ visual system
   Functional selectors and calculation behaviour are intentionally unchanged.
   ========================================================================== */
body.sn-check-page {
  margin: 0;
  background: #f6f9fa;
}

body.sn-check-page .sn-lab-header,
body.sn-check-page .sn-lab-footer,
body.sn-check-page .gh-header,
body.sn-check-page .gh-footer {
  display: none !important;
}

body.sn-check-page .wp-site-blocks,
body.sn-check-page main {
  margin-block: 0 !important;
  padding-block: 0 !important;
}

.sn-check {
  --sn-ink: #10243d;
  --sn-muted: #526979;
  --sn-paper: #f6f9fa;
  --sn-white: #ffffff;
  --sn-green: #1679a7;
  --sn-green-dark: #123f70;
  --sn-mint: #edf7fb;
  --sn-orange: #d89a27;
  --sn-gold-soft: #fff4d8;
  --sn-line: #d7e2e7;
  --sn-shadow: 0 20px 54px rgba(21,42,55,.09);
  --sn-shadow-soft: 0 10px 30px rgba(21,42,55,.065);
  min-height: 100vh;
  padding: 28px 0 64px;
  background:
    radial-gradient(circle at 8% 8%, rgba(216,154,39,.09), transparent 28%),
    radial-gradient(circle at 92% 34%, rgba(42,87,115,.07), transparent 30%),
    var(--sn-paper);
}

.sn-check > .sn-check__hero,
.sn-check__layout {
  width: min(1180px, calc(100% - 40px));
}

.sn-check__hero {
  min-height: 370px;
  margin-top: 0;
  padding: clamp(42px, 5vw, 64px);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 30px;
  background:
    radial-gradient(circle at 88% 24%, rgba(255,255,255,.12) 0 9%, transparent 9.5%),
    radial-gradient(circle at 78% 74%, rgba(216,154,39,.12) 0 18%, transparent 18.5%),
    linear-gradient(135deg, #081d31 0%, #10243d 62%, #123f70 100%);
  box-shadow: 0 24px 64px rgba(13,36,50,.18);
}

.sn-check__hero::before {
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, var(--sn-orange), #e9bd65 52%, transparent 92%);
  content: "";
}

.sn-check__eyebrow {
  color: #d8b46e;
  letter-spacing: .11em;
}

.sn-check__hero > div:first-child > p:last-child {
  color: #edf7fb;
}

.sn-check__hero-note {
  border-color: rgba(255,255,255,.18);
  border-radius: 18px;
  background: rgba(255,255,255,.09);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.sn-check__hero-note-group > span { color: #d9e6eb; }
.sn-check__hero-note-group > strong { color: #fff6df; }

.sn-check__quick,
.sn-check__section,
.sn-check__reality-card,
.sn-check__next,
.sn-check__stockroom {
  border-color: var(--sn-line);
  box-shadow: var(--sn-shadow-soft);
}

.sn-check__quick {
  position: relative;
  overflow: hidden;
  margin-top: 22px;
  padding: clamp(26px, 4vw, 40px);
  border-radius: 24px;
  background: rgba(255,255,255,.98);
  box-shadow: var(--sn-shadow);
}

.sn-check__quick::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: linear-gradient(180deg, var(--sn-orange), #e8bd6b);
  content: "";
}

.sn-check__heading > span,
.sn-check__next span {
  color: #9b691e;
  letter-spacing: .11em;
}

.sn-check__heading h2 {
  color: var(--sn-ink);
  line-height: 1.42;
}

.sn-check__field select,
.sn-check__number,
.sn-check__member,
.sn-check__member select,
.sn-check__difference-grid input,
.sn-check__stock-form input {
  border-color: #c9dce5;
  background: #ffffff;
}

.sn-check__field select:focus,
.sn-check__number:focus-within,
.sn-check__member select:focus,
.sn-check__difference-grid input:focus,
.sn-check__stock-form input:focus {
  border-color: var(--sn-green);
  box-shadow: 0 0 0 3px rgba(42,87,115,.12);
  outline: 0;
}

.sn-check__family-input {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid #e5e9ec;
}

.sn-check__member {
  border-radius: 14px;
  box-shadow: 0 4px 14px rgba(21,42,55,.035);
}

.sn-check__member-number {
  background: var(--sn-mint);
  color: var(--sn-green-dark);
}

.sn-check__readiness {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid #e5e9ec;
}

.sn-check__readiness button,
.sn-check__concern-buttons button {
  min-height: 52px;
  border-color: #c9dce5;
  background: #ffffff;
  transition: border-color .16s ease, background .16s ease, transform .16s ease, box-shadow .16s ease;
}

.sn-check__readiness button:hover,
.sn-check__concern-buttons button:hover {
  border-color: #9fd2e8;
  background: #f2fbff;
}

.sn-check__readiness button.is-active,
.sn-check__concern-buttons button.is-active {
  border-color: var(--sn-green);
  background: var(--sn-mint);
  box-shadow: inset 0 0 0 1px var(--sn-green), 0 5px 15px rgba(42,87,115,.08);
  color: var(--sn-green-dark);
}

.sn-check__diagnose {
  min-height: 58px;
  margin-top: 24px;
  border-radius: 14px;
  background: linear-gradient(135deg, #123f70, #1679a7);
  box-shadow: 0 14px 32px rgba(13,36,50,.18);
  letter-spacing: .02em;
  transition: transform .16s ease, box-shadow .16s ease;
}

.sn-check__diagnose:hover,
.sn-check__diagnose:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 17px 36px rgba(13,36,50,.22);
}

.sn-check__diagnosis {
  margin-top: 18px;
  padding: clamp(28px, 4vw, 42px);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 24px;
  background:
    radial-gradient(circle at 90% 12%, rgba(216,154,39,.10), transparent 28%),
    linear-gradient(145deg, #081d31, #10243d 72%, #123f70);
  box-shadow: 0 22px 54px rgba(13,36,50,.15);
}

.sn-check__status {
  background: #f4d997;
  color: #4a3710;
}

.sn-check__family-summary {
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.07);
}

.sn-check__day-switch {
  padding: 5px;
  border-color: rgba(255,255,255,.13);
  background: rgba(255,255,255,.055);
}

.sn-check__day-switch button.is-active {
  background: #fff8e9;
  color: var(--sn-green-dark);
}

.sn-check__target,
.sn-check__owned {
  border-color: rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
}

.sn-check__target.is-minimum header { border-left-color: #e4ab45; }
.sn-check__target.is-goal header { border-left-color: #9fdcf3; }

.sn-check__owned {
  border-radius: 16px;
  background: rgba(255,255,255,.055);
}

.sn-check__owned header > span { color: #e8c77d; }

.sn-check__section {
  margin-top: 58px;
  padding-top: 4px;
}

.sn-check__risks {
  gap: 14px;
}

.sn-check__risks article {
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 9px 26px rgba(21,42,55,.055);
}

.sn-check__risks span {
  background: var(--sn-mint);
  color: var(--sn-green-dark);
}

.sn-check__risks article > strong {
  border-top-color: #e5e9ec;
  color: var(--sn-green-dark);
}

.sn-check__reality {
  margin-top: 58px;
  gap: 14px;
}

.sn-check__reality-card {
  border-radius: 18px;
  background: #ffffff;
}

.sn-check__reality-card.is-days { border-left-color: var(--sn-orange); }
.sn-check__reality-card.is-evacuation { border-left-color: var(--sn-green); }

.sn-check__next {
  margin-top: 58px;
  padding: clamp(26px, 4vw, 38px);
  border: 1px solid #e3d3a9;
  border-left: 5px solid var(--sn-orange);
  border-radius: 18px;
  background: linear-gradient(135deg, #ffffff, #fff8e8);
}

.sn-check__brand-message {
  border-top-color: #eadfca;
}

.sn-check__line-cta {
  min-height: 58px;
  border-radius: 14px;
  background: linear-gradient(135deg, #12658b, #1679a7);
  box-shadow: 0 12px 28px rgba(42,87,115,.16);
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.sn-check__line-cta:hover,
.sn-check__line-cta:focus-visible {
  transform: translateY(-1px);
  background: var(--sn-green-dark);
  box-shadow: 0 15px 32px rgba(13,36,50,.20);
}

.sn-check__stockroom {
  margin-top: 58px;
  border: 1px solid #c9dce5;
  border-radius: 20px;
  background: linear-gradient(145deg, #edf7fb, #edf7fb);
}

.sn-check__sources {
  margin-top: 34px;
  padding-bottom: 0;
  border-top-color: #c9dce5;
}

@media (max-width: 640px) {
  .sn-check {
    padding: 12px 0 42px;
    background:
      radial-gradient(circle at 4% 4%, rgba(216,154,39,.07), transparent 22%),
      var(--sn-paper);
  }

  .sn-check > .sn-check__hero,
  .sn-check__hero,
  .sn-check__quick,
  .sn-check__diagnosis,
  .sn-check__section,
  .sn-check__stockroom,
  .sn-check__next,
  .sn-check__sources,
  .sn-check__reality {
    width: min(100% - 24px, 1180px);
  }

  .sn-check__hero {
    margin-top: 0;
    padding: 34px 22px 26px;
    border-radius: 22px;
  }

  .sn-check__hero h1 { font-size: clamp(32px, 10vw, 38px); }
  .sn-check__hero-note { border-radius: 14px; }

  .sn-check__quick {
    padding: 24px 18px;
    border-radius: 18px;
  }

  .sn-check__quick::before { width: 4px; }

  .sn-check__readiness button { min-height: 54px; }
  .sn-check__diagnose { min-height: 58px; }

  .sn-check__diagnosis {
    padding: 26px 18px;
    border-radius: 18px;
  }

  .sn-check__reality-card,
  .sn-check__next,
  .sn-check__stockroom { border-radius: 17px; }

  .sn-check__section,
  .sn-check__reality,
  .sn-check__stockroom,
  .sn-check__next { margin-top: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  .sn-check__diagnose,
  .sn-check__readiness button,
  .sn-check__concern-buttons button,
  .sn-check__line-cta {
    transition: none;
  }
}


/* 2026-08-22 final adjustment: shortage balance + expiry tool exclusion */
.sn-check__owned .sn-check__shortage div {
  min-height: 64px;
  padding: 12px 14px;
  align-content: center;
  gap: 4px;
}
.sn-check__owned .sn-check__shortage span {
  font-size: var(--harmony-readable-support) !important;
  font-weight: 800;
  line-height: 1.35;
}
.sn-check__owned .sn-check__shortage strong {
  font-size: var(--harmony-readable-control) !important;
  font-weight: 900;
  line-height: 1.25;
}
.sn-check__stockroom {
  display: none !important;
}

/* Final readability adjustment: three body-text areas after the 3-day / 1-week section. */
.sn-check__reality-card.is-days p,
.sn-check__reality-card.is-evacuation p,
.sn-check__next p {
  color: #111111;
}
