:root {
  --life-ink: #092044;
  --life-muted: #5a6879;
  --life-green: #16834a;
  --life-green-dark: #0b6a3a;
  --life-amber: #ee9b1a;
  --life-red: #e14b41;
  --life-blue: #1160aa;
  --life-line: #d7e2de;
  --life-soft: #f3faf5;
  --life-warn: #fff8e8;
  --life-paper: #ffffff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body.life-trouble-page {
  margin: 0;
  color: var(--life-ink);
  background: linear-gradient(180deg, #ffffff, #f7fbf8 56%, #fff);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 18px;
  line-height: 1.78;
}

a { color: inherit; }

.life-topbar {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 13px clamp(18px, 4vw, 56px);
  border-bottom: 1px solid var(--life-line);
  background: rgba(255,255,255,.98);
}

.life-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--life-ink);
  text-decoration: none;
  font-size: clamp(22px, 2vw, 31px);
  font-weight: 950;
}

.life-brand-mark {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: #fff;
  background: var(--life-green);
  font-size: 22px;
  font-weight: 950;
}

.life-nav {
  display: flex;
  gap: 22px;
  font-size: 16px;
  font-weight: 850;
}

.life-nav a { text-decoration: none; }

.life-search {
  display: flex;
  align-items: center;
  width: min(340px, 28vw);
  height: 44px;
  border: 1px solid var(--life-line);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

.life-search input {
  min-width: 0;
  flex: 1;
  height: 100%;
  border: 0;
  padding: 0 14px;
  font-size: 15px;
  outline: none;
}

.life-search button {
  width: 48px;
  height: 44px;
  border: 0;
  color: #fff;
  background: var(--life-ink);
  font-size: 20px;
  font-weight: 950;
}

.life-hero {
  padding: clamp(30px, 5vw, 70px) clamp(18px, 4vw, 56px) 28px;
  background:
    linear-gradient(95deg, rgba(244,250,246,.96), rgba(255,255,255,.95) 50%, rgba(255,248,232,.92)),
    #fff;
}

.life-hero-grid {
  max-width: 1520px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(500px, .88fr);
  gap: clamp(30px, 4vw, 62px);
  align-items: start;
}

.life-breadcrumb {
  color: var(--life-muted);
  font-size: 15px;
  font-weight: 850;
}

.life-chip {
  display: inline-flex;
  align-items: center;
  min-height: 33px;
  margin-top: 24px;
  padding: 5px 14px;
  border-radius: 8px;
  color: #fff;
  background: var(--life-green);
  font-size: 15px;
  font-weight: 950;
}

.life-hero h1 {
  margin: 14px 0 10px;
  color: var(--life-ink);
  font-size: clamp(45px, 5.35vw, 84px);
  line-height: 1.08;
  letter-spacing: 0;
  font-weight: 950;
}

.life-subtitle {
  margin: 0 0 12px;
  color: var(--life-ink);
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.34;
  font-weight: 950;
}

.life-lead {
  max-width: 760px;
  margin: 0;
  color: #34465a;
  font-size: 18px;
  font-weight: 680;
}

.life-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 24px 0 18px;
}

.life-action {
  min-height: 122px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  justify-items: center;
  align-items: center;
  padding: 16px;
  border: 2px solid var(--life-line);
  border-radius: 8px;
  background: #fff;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 14px 36px rgba(9,32,68,.08);
}

.life-action.primary {
  color: #fff;
  border-color: var(--life-green);
  background: linear-gradient(135deg, var(--life-green), var(--life-green-dark));
}

.life-action.warn { border-color: #f0bf64; }
.life-action.danger { border-color: #f3a29c; }

.life-action-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 2px solid currentColor;
  border-radius: 50%;
  font-size: 21px;
  font-weight: 950;
}

.life-action b {
  display: block;
  font-size: clamp(18px, 1.25vw, 21px);
  line-height: 1.22;
  word-break: keep-all;
}

.life-action p {
  margin: 4px 0 0;
  color: inherit;
  opacity: .88;
  font-size: 14px;
  line-height: 1.48;
  font-weight: 760;
}

.life-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.life-tags span {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border: 1px solid #c6d9cf;
  border-radius: 8px;
  color: var(--life-green-dark);
  background: #fff;
  font-size: 15px;
  font-weight: 850;
}

.life-diagnosis {
  border: 1px solid var(--life-line);
  border-radius: 8px;
  padding: 24px;
  background: rgba(255,255,255,.99);
  box-shadow: 0 18px 46px rgba(9,32,68,.10);
}

.life-diagnosis h2 {
  margin: 0 0 8px;
  color: var(--life-green-dark);
  font-size: clamp(26px, 2vw, 34px);
  line-height: 1.25;
}

.life-diagnosis p {
  margin: 0 0 14px;
  color: var(--life-muted);
  font-size: 16px;
  font-weight: 750;
}

.life-question {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 132px;
  gap: 12px;
  align-items: center;
  min-height: 72px;
  padding: 12px 0;
  border-top: 1px solid #e5ede8;
}

.life-q-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--life-green);
  font-weight: 950;
}

.life-question b {
  font-size: 17px;
  line-height: 1.45;
}

.life-yesno {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--life-line);
  border-radius: 8px;
  overflow: hidden;
}

.life-yesno span {
  min-height: 38px;
  display: grid;
  place-items: center;
  background: #fff;
  font-size: 14px;
  font-weight: 900;
}

.life-yesno span:first-child {
  color: var(--life-green-dark);
  background: #eef8f1;
  border-right: 1px solid var(--life-line);
}

.life-hint {
  margin-top: 16px;
  padding: 14px;
  border-radius: 8px;
  background: var(--life-soft);
  color: var(--life-green-dark);
  font-size: 16px;
  font-weight: 820;
}

.life-page {
  max-width: 1260px;
  margin: 0 auto;
  padding: 34px 18px 76px;
}

.life-section {
  margin: 24px 0;
  padding: clamp(22px, 3.2vw, 34px);
  border: 1px solid var(--life-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(9,32,68,.06);
}

.life-section h2 {
  margin: 0 0 16px;
  color: var(--life-ink);
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1.22;
  letter-spacing: 0;
}

.life-section > p {
  margin: 0 0 16px;
  color: #34465a;
  font-size: 19px;
  font-weight: 720;
}

.life-step-grid,
.life-cause-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.life-step-card,
.life-cause-card {
  min-height: 210px;
  border: 1px solid #cfded6;
  border-radius: 8px;
  padding: 18px;
  background: #fbfefd;
}

.life-step-card span,
.life-cause-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--life-green);
  font-size: 20px;
  font-weight: 950;
  margin-bottom: 12px;
}

.life-step-card strong,
.life-cause-card strong {
  display: block;
  color: var(--life-ink);
  font-size: 22px;
  line-height: 1.32;
  margin-bottom: 10px;
}

.life-step-card p,
.life-cause-card p {
  margin: 0;
  color: #304356;
  font-size: 17px;
  font-weight: 720;
}

.life-tab-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}

.life-tab {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border: 1px solid var(--life-line);
  border-radius: 8px;
  background: #fff;
  color: var(--life-green-dark);
  font-size: 16px;
  font-weight: 900;
}

.life-tab.active {
  color: #fff;
  border-color: var(--life-green);
  background: var(--life-green);
}

.life-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid var(--life-line);
  border-radius: 8px;
  background: #fff;
}

.life-table th,
.life-table td {
  padding: 15px;
  border-bottom: 1px solid var(--life-line);
  text-align: left;
  vertical-align: top;
  font-size: 17px;
}

.life-table th {
  color: var(--life-ink);
  background: #f2f8f3;
  font-size: 16px;
  font-weight: 950;
}

.life-table tr:last-child td { border-bottom: 0; }
.life-table .bad { color: var(--life-red); font-weight: 850; }
.life-table .why { color: #544026; font-weight: 760; }

.life-check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.life-check-grid li {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  min-height: 62px;
  padding: 13px;
  border: 1px solid #f0d7a4;
  border-radius: 8px;
  background: var(--life-warn);
  color: #3a2c15;
  font-size: 16px;
  font-weight: 820;
}

.life-check-grid span {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 5px;
  color: #fff;
  background: var(--life-amber);
  font-size: 16px;
  font-weight: 950;
}

.life-source-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--life-line);
}

.life-source-strip strong {
  color: var(--life-muted);
  font-size: 15px;
  font-weight: 950;
}

.life-source-strip a {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border: 1px solid #c6d9cf;
  border-radius: 8px;
  color: var(--life-green-dark);
  background: #fff;
  text-decoration: none;
  font-size: 15px;
  font-weight: 850;
}

.life-copy {
  min-height: 44px;
  margin-top: 16px;
  padding: 0 18px;
  border: 0;
  border-radius: 8px;
  color: #fff;
  background: var(--life-green);
  font-size: 16px;
  font-weight: 950;
}

.life-footer {
  padding: 34px 18px 44px;
  border-top: 1px solid var(--life-line);
  background: #fff;
  text-align: center;
  color: var(--life-muted);
  font-size: 14px;
  font-weight: 750;
}

@media (max-width: 1050px) {
  .life-hero-grid { grid-template-columns: 1fr; }
  .life-diagnosis { max-width: 760px; }
  .life-search { display: none; }
}

@media (max-width: 760px) {
  body.life-trouble-page { font-size: 17px; }
  .life-topbar { flex-direction: column; align-items: flex-start; gap: 10px; }
  .life-nav { width: 100%; overflow-x: auto; padding-bottom: 4px; gap: 16px; }
  .life-hero { padding: 26px 16px 20px; }
  .life-hero h1 { font-size: clamp(38px, 11.5vw, 54px); }
  .life-subtitle { font-size: 22px; }
  .life-actions,
  .life-step-grid,
  .life-cause-grid,
  .life-check-grid { grid-template-columns: 1fr; }
  .life-diagnosis { padding: 18px; }
  .life-question { grid-template-columns: 36px minmax(0, 1fr); }
  .life-yesno { grid-column: 2; width: 132px; }
  .life-section { padding: 20px 16px; }
  .life-section h2 { font-size: 31px; }
  .life-table { display: block; overflow-x: auto; }
}
