@charset "UTF-8";
/* 共通ヘッダー・フッターは import.css、本文は #health-content 内に限定 */
#health-content { padding:0; letter-spacing:normal; }
#health-content h1, #health-content h2, #health-content h3 { background:none; width:auto; text-align:left; font-weight:bold; float:none; }
#health-content h1::before, #health-content h1::after, #health-content h2::before, #health-content h2::after { content:none; }
#health-content p { padding:0; }
#health-content ul { list-style:disc; }
#health-content .hero .inner { width:auto; padding:0; }
#health-content .hero .lead { color:inherit; font-family:inherit; font-size:16px; line-height:1.8; }
#health-content a[target="_blank"] { background:none; padding:0; }
#health-content {
    --navy: #1f3a5b;
    --blue: #2f6ea5;
    --pale: #eef4f9;
    --line: #cfd9e3;
    --text: #22303c;
    --sub: #5a6875;
    --accent: #d9822b;
    --memo-bg: #fff6cc;
    --memo-line: #e0c040;
  }
#health-content * { box-sizing: border-box; }
#health-content {
    margin: 0; background: #fff; color: var(--text);
    font-family: "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    line-height: 1.8; font-size: 16px;
  }
#health-content .wrap { max-width: 980px; margin: 0 auto; padding: 0 16px 64px; }
#health-content .hero { background: var(--navy); color: #fff; padding: 40px 16px; }
#health-content .hero .inner { max-width: 980px; margin: 0 auto; }
#health-content .hero p.kicker { margin: 0 0 4px; font-size: 14px; letter-spacing: .1em; opacity: .85; }
#health-content .hero h1 { margin: 0; font-size: 30px; line-height: 1.4; }
#health-content .hero p.lead { margin: 12px 0 0; max-width: 40em; }
#health-content h2 {
    font-size: 22px; color: var(--navy); margin: 56px 0 16px; padding: 0 0 8px 14px;
    border-left: 6px solid var(--blue); border-bottom: 1px solid var(--line); line-height: 1.5;
  }
#health-content h3 { font-size: 17px; color: var(--navy); margin: 28px 0 8px; }
#health-content p { margin: 0 0 14px; }
#health-content .sign { text-align: right; margin-top: 8px; }
#health-content .box { background: var(--pale); border: 1px solid var(--line); border-radius: 6px; padding: 16px 20px; margin: 0 0 16px; }
#health-content dl.policy { margin: 0; display: grid; grid-template-columns: 9em 1fr; gap: 10px 16px; }
#health-content dl.policy dt { font-weight: bold; color: var(--navy); }
#health-content dl.policy dd { margin: 0; }
#health-content .kgi { font-size: 20px; font-weight: bold; color: var(--accent); }
#health-content .scroll { overflow-x: auto; }
#health-content table { border-collapse: collapse; width: 100%; min-width: 640px; }
#health-content th, #health-content td { border: 1px solid var(--line); padding: 8px 10px; text-align: center; vertical-align: middle; }
#health-content th { background: var(--navy); color: #fff; font-weight: bold; }
#health-content td:first-child, #health-content th:first-child { text-align: left; }
#health-content tbody tr:nth-child(even) td { background: #f8fafc; }
#health-content ul { margin: 0 0 14px; padding-left: 1.4em; }
#health-content .cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 16px; }
#health-content .card { border: 1px solid var(--line); border-radius: 6px; padding: 16px 18px; }
#health-content .card h3 { margin-top: 0; }
#health-content .card p:last-child, #health-content .card ul:last-child { margin-bottom: 0; }
#health-content .photo {
    border: 2px dashed var(--line); border-radius: 6px; color: var(--sub); font-size: 14px;
    padding: 28px 12px; text-align: center; margin: 12px 0 0; background: #fafcfe;
  }
#health-content .org { display: grid; gap: 10px; justify-items: center; }
#health-content .org .node { border: 1px solid var(--blue); border-radius: 6px; padding: 8px 18px; background: #fff; text-align: center; min-width: 240px; }
#health-content .org .node.top { background: var(--navy); color: #fff; border-color: var(--navy); }
#health-content .org .node small { display: block; color: var(--sub); }
#health-content .org .node.top small { color: #dfe8f1; }
#health-content .org .down { color: var(--blue); line-height: 1; }
#health-content .org .row { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
#health-content .map { display: grid; grid-template-columns: 1.25fr 1fr 1fr 1fr 0.9fr; gap: 8px 22px; min-width: 940px; align-items: stretch; }
#health-content .map .head {
    background: var(--navy); color: #fff; font-weight: bold; font-size: 14px; text-align: center;
    padding: 8px 6px; border-radius: 4px; line-height: 1.4; position: relative;
  }
#health-content .map .cell {
    border: 1px solid var(--line); border-radius: 6px; padding: 8px 10px; font-size: 14px; line-height: 1.6;
    background: #fff; position: relative; display: flex; flex-direction: column; justify-content: center;
  }
#health-content .map .cell b { color: var(--navy); }
#health-content .map .cell.c1 { background: var(--pale); }
#health-content .map .cell.c4 { border-color: var(--blue); border-width: 2px; }
#health-content .map .cell.kgi { border-color: var(--accent); background: #fff7ee; }
#health-content .map .cell.c1::after, #health-content .map .cell.c2::after, #health-content .map .cell.c3::after, #health-content .map .cell.c4::after {
    content: "▶"; position: absolute; right: -18px; top: 50%; transform: translateY(-50%);
    color: var(--blue); font-size: 13px;
  }
#health-content .map .goal {
    grid-column: 5; grid-row: 2 / span 6; background: var(--navy); color: #fff; border-radius: 6px;
    padding: 14px 12px; font-size: 14px; display: flex; flex-direction: column; justify-content: center; gap: 12px;
  }
#health-content .map .goal strong { font-size: 16px; display: block; line-height: 1.5; }
#health-content .map .goal .arrow { text-align: center; opacity: .8; line-height: 1; }
#health-content .tag { display: inline-block; font-size: 12px; background: var(--accent); color: #fff; border-radius: 3px; padding: 0 6px; margin-right: 4px; line-height: 1.6; }
#health-content .note { font-size: 13px; color: var(--sub); }
#health-content .memo { background: var(--memo-bg); border: 1px solid var(--memo-line); border-radius: 6px; padding: 12px 16px; margin: 16px 0; font-size: 14px; }
#health-content .memo strong { color: #7a5b00; }
#health-content mark { background: var(--memo-bg); border-bottom: 2px solid var(--memo-line); padding: 0 2px; }
@media (max-width: 600px) {
#health-content .hero h1 { font-size: 24px; }
#health-content dl.policy { grid-template-columns: 1fr; gap: 2px 0; }
#health-content dl.policy dd { margin-bottom: 10px; }
}
@media print {
#health-content .memo { display: none; }
#health-content h2 { break-after: avoid; }
#health-content .card, #health-content .box { break-inside: avoid; }
}
#health-content { --navy:#0e1b55; --blue:#385ba0; --pale:#eef3f8; --accent:#385ba0; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
#health-content a { color:var(--blue); text-underline-offset:4px; }
#health-content a:focus-visible, #health-content [tabindex]:focus-visible { outline:3px solid #d9822b; outline-offset:5px; }
#health-content .site-header { max-width:1160px; margin:auto; min-height:100px; padding:22px 32px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
#health-content .site-header img { display:block; width:230px; max-width:100%; height:auto; }
#health-content .back-link { font-size:14px; font-weight:bold; }
#health-content .hero { background:linear-gradient(115deg,#0e1b55,#385ba0); padding:64px 32px; }
#health-content .hero .inner { max-width:1080px; }
#health-content .hero p.kicker { font-size:12px; letter-spacing:.16em; }
#health-content .hero h1 { font-size:clamp(26px,4vw,42px); margin:14px 0; letter-spacing:.06em; }
#health-content .hero p.lead { max-width:48em; }
#health-content .wrap { max-width:1144px; padding:0 32px 48px; }
#health-content .contents-nav { display:grid; grid-template-columns:repeat(4,1fr); gap:0 24px; padding:28px 0 12px; }
#health-content .contents-nav a { padding:14px 0; border-bottom:1px solid var(--line); text-decoration:none; font-size:13px; font-weight:bold; }
#health-content .contents-nav span { display:inline-block; margin-right:8px; color:#6c7b95; font-size:12px; }
#health-content h2 { display:flex; align-items:center; gap:16px; margin-top:72px; padding:0 0 18px; border-left:0; }
#health-content .section-number { font-size:14px; color:var(--blue); letter-spacing:.1em; }
#health-content .box { border-radius:0; border:0; padding:28px; }
#health-content .cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
#health-content .card { border-radius:0; padding:28px; }
#health-content .heat-card { grid-column:1/-1; background:#f5f8fb; }
#health-content .heat-poster { margin:28px 0 0; }
#health-content .heat-poster img { display:block; width:100%; height:auto; border:1px solid var(--line); }
#health-content figcaption { margin-top:8px; color:var(--sub); font-size:13px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; }
#health-content .results { display:grid; grid-template-columns:repeat(3,1fr); background:var(--pale); padding:28px 12px; }
#health-content .results > div { text-align:center; padding:12px; }
#health-content .results > div + div { border-left:1px solid var(--line); }
#health-content .results strong { font-size:40px; line-height:1.4; color:var(--blue); }
#health-content .results strong span { font-size:16px; margin-left:4px; }
#health-content .results p { font-size:14px; margin:8px 0 0; }
#health-content .scroll { margin:20px 0; }
#health-content .skip-link { position:absolute; left:16px; top:-100px; background:white; padding:12px; z-index:5; }
#health-content .skip-link:focus { top:8px; }
@media(max-width:680px) {
#health-content .site-header { padding:18px 20px; min-height:80px; }
#health-content .site-header img { width:170px; }
#health-content .back-link { font-size:12px; }
#health-content .hero { padding:40px 20px; }
#health-content .wrap { padding:0 20px 32px; }
#health-content .contents-nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
#health-content .contents-nav a { font-size:12px; }
#health-content h2 { font-size:20px; margin-top:48px; gap:10px; }
#health-content .cards { grid-template-columns:1fr; }
#health-content .card, #health-content .box { padding:20px; }
#health-content .results { grid-template-columns:1fr; }
#health-content .results > div + div { border-left:0; border-top:1px solid var(--line); }
#health-content .org .node { min-width:0; width:100%; }
#health-content .org .row { width:100%; }
}
@media(prefers-reduced-motion:reduce) {
html { scroll-behavior:auto; }
}
@media print {
#health-content .site-header, #health-content .contents-nav, #health-content .skip-link, #health-content .back-link { display:none; }
#health-content .scroll { overflow:visible; }
#health-content .map { min-width:0; gap:6px; }
#health-content .map .cell { font-size:9px; padding:4px; }
#health-content .map .cell::after { display:none; }
}
#health-content .site-header {
  position:sticky;
  top:0;
  z-index:1000;
  max-width:none;
  width:100%;
  min-height:88px;
  padding:20px max(24px, calc((100% - 1080px) / 2));
  background:#fff;
  border-bottom:1px solid var(--line);
  box-shadow:0 3px 14px rgba(14,27,85,.06);
}
#health-content .header-links { display:flex; align-items:center; gap:24px; }
#health-content .header-links a { white-space:nowrap; }
html { scroll-padding-top:112px; }
#health-content .skip-link { position:fixed; z-index:1100; }
@media(max-width:680px) {
#health-content .site-header { min-height:76px; padding:14px 16px; gap:12px; }
#health-content .site-header img { width:150px; }
#health-content .header-links { gap:12px; }
#health-content .header-links a { font-size:11px; }
html { scroll-padding-top:100px; }
}
@media(max-width:359px) {
#health-content .site-header img { width:125px; }
#health-content .header-links { gap:8px; }
}
@media print {
#health-content .site-header { display:none; }
}
#health-content .hero { padding:28px 32px; }
#health-content .hero p.kicker { margin:0 0 6px; font-size:11px; }
#health-content .hero h1 { margin:0 0 10px; font-size:clamp(25px,3vw,34px); line-height:1.4; }
#health-content .hero p.lead { margin:0; font-size:15px; line-height:1.7; }
@media(max-width:680px) {
#health-content .hero { padding:22px 20px; }
#health-content .hero p.kicker { font-size:10px; letter-spacing:.1em; }
#health-content .hero h1 { font-size:25px; margin-bottom:8px; }
#health-content .hero p.lead { font-size:14px; }
}

#health-content [id] { scroll-margin-top:120px; }

/* 健康経営ページでは共通ナビのみ使用し、CSRの写真タイトルを省略 */
body#health > #wrapper > .header { height:100px; background:#fff; }
#health-content .health-back { max-width:1144px; margin:0 auto; padding:12px 32px; font-size:13px; }
#health-content .health-back a { color:var(--blue); text-decoration:underline; text-underline-offset:4px; }
#health-content .hero { padding:24px 32px 28px; }
#health-content .hero p.kicker { font-size:11px; margin:0 0 6px; }
#health-content .hero h1 { font-size:clamp(24px,3vw,32px); line-height:1.4; margin:0 0 10px; padding:0; }
#health-content .hero p.lead { margin:0; font-size:15px; line-height:1.7; }
@media(max-width:767px) {
  body#health > #wrapper > .header { height:70px; }
  #health-content .health-back { padding:10px 20px; }
  #health-content .hero { padding:20px; }
  #health-content .hero h1 { font-size:24px; }
  #health-content .hero p.kicker { font-size:10px; letter-spacing:.08em; }
  #health-content .hero p.lead { font-size:14px; }
}
