/* Static industry map. Palette matches the front page and article headings. */
#main_content.hoken-industry-map {
  width:100%; max-width:1180px; margin:0 auto; padding:0 0 48px; color-scheme:light;
}
#repi-overview {
  --ov-paper:#fff; --ov-ink:#0c224c; --ov-text:#24354b; --ov-sub:#43546b;
  --ov-line:#b8c9df; --ov-soft:#f1f5fb; --ov-accent:#285997;
  background:var(--ov-paper); color:var(--ov-ink); color-scheme:light;
  font:15px/1.8 Meiryo,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  text-align:left; overflow-wrap:anywhere;
}
#repi-overview * { box-sizing:border-box; }
#repi-overview [hidden] { display:none!important; }
#repi-overview :is(h1,h2,h3,p) { margin:0; }
#repi-overview :is(h1,h2,h3) {
  background:none; border:0; padding:0; box-shadow:none; position:static;
  color:var(--ov-ink); letter-spacing:normal; font-weight:700; line-height:1.6;
  text-wrap:pretty;
}
#repi-overview :is(h1,h2,h3)::before,
#repi-overview :is(h1,h2,h3)::after { content:none; display:none; }
#repi-overview a {
  color:var(--ov-accent); text-decoration:underline; text-underline-offset:3px;
  text-decoration-thickness:1px; touch-action:manipulation;
}
#repi-overview :is(a,summary):focus-visible { outline:2px solid var(--ov-accent); outline-offset:4px; }
#repi-overview .ov-main { max-width:1180px; margin:auto; padding:28px; }
#repi-overview h1 {
  font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  font-size:26px; margin-bottom:10px;
}
#repi-overview h2 { font-size:18px; }
#repi-overview h3 { font-size:17px; }
#repi-overview .ov-intro { font-size:15px; color:var(--ov-text); margin-bottom:26px; }
#repi-overview .ov-small { font-size:14px; color:var(--ov-sub); }
#repi-overview .ov-client {
  background:var(--ov-ink); color:#fff; padding:17px 20px; text-align:center;
  font-size:18px; font-weight:700;
}
#repi-overview .ov-client span { color:#fff; font-weight:400; font-size:15px; margin-left:16px; }
#repi-overview .ov-routes { display:grid; grid-template-columns:minmax(0,3fr) minmax(220px,1fr); gap:24px; }
#repi-overview .ov-route-caption { text-align:center; color:var(--ov-sub); font-size:14px; padding:12px 0; }
#repi-overview .ov-route-caption::after { content:"↓"; display:block; color:var(--ov-accent); font-size:20px; line-height:1.35; }
#repi-overview .ov-channels { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
#repi-overview .ov-node {
  position:relative; background:var(--ov-paper); border:1px solid var(--ov-line);
  border-radius:3px; text-align:left; padding:16px; display:block; width:100%; min-width:0;
}
#repi-overview .ov-node p { color:var(--ov-text); font-size:15px; margin-top:8px; line-height:1.8; }
#repi-overview .ov-node .ov-example {
  color:var(--ov-sub); font-size:14px; padding-top:10px; margin-top:12px;
  border-top:1px solid var(--ov-line);
}
#repi-overview .ov-direct { background:var(--ov-soft); }
#repi-overview .ov-insurer {
  background:var(--ov-soft); border-top:3px solid var(--ov-accent); padding:20px;
}
#repi-overview .ov-insurer>p { font-size:15px; color:var(--ov-text); margin:8px 0 18px; }
#repi-overview .ov-types { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
#repi-overview .ov-types>div.ov-node {
  padding:0 0 0 16px; border:0; border-left:1px solid var(--ov-line); border-radius:0; background:transparent;
}
#repi-overview .ov-types>div.ov-node:first-child { border-left:0; padding-left:0; }
#repi-overview .ov-types .ov-example { padding:0; border:0; margin-top:8px; }
#repi-overview .ov-types h3 { font-size:16px; }
#repi-overview .ov-mutual { border-left:1px solid var(--ov-line); padding-left:23px; }
#repi-overview .ov-mutual-window { padding:16px 8px; text-align:center; font-size:15px; border-bottom:1px solid var(--ov-line); }
#repi-overview .ov-mutual-note { font-size:13px; color:var(--ov-sub); margin-top:14px; }
#repi-overview .ov-reinsurance { display:grid; grid-template-columns:28px 1fr; gap:12px; margin-top:14px; align-items:center; }
#repi-overview .ov-reinsurance>span { font-size:24px; color:var(--ov-accent); text-align:center; }
#repi-overview .ov-reinsurance div.ov-node { display:grid; grid-template-columns:72px 1fr; gap:0 12px; padding:14px 16px; }
#repi-overview .ov-reinsurance div.ov-node p { margin:0; }
#repi-overview .ov-reinsurance div.ov-node .ov-example { grid-column:2; margin:6px 0 0; padding:0; border:0; }
#repi-overview .ov-support { margin-top:30px; padding-top:20px; border-top:2px solid var(--ov-accent); }
#repi-overview .ov-section-title { display:flex; gap:6px 16px; align-items:baseline; flex-wrap:wrap; margin-bottom:16px; }
#repi-overview .ov-section-title>span { font-size:13px; color:var(--ov-sub); }
#repi-overview .ov-support-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
#repi-overview .ov-support-grid .ov-node { border:0; border-top:1px solid var(--ov-line); border-radius:0; padding:14px 0; }
#repi-overview .ov-system-section { margin-top:24px; padding-top:20px; border-top:2px solid var(--ov-accent); }
#repi-overview .ov-system { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
#repi-overview .ov-system .ov-node { border:0; border-left:1px solid var(--ov-line); padding:0 0 0 20px; border-radius:0; }
#repi-overview .ov-system .ov-node:first-child { padding-left:0; border:0; }
#repi-overview .ov-system .ov-example { padding:0; border:0; }
#repi-overview .ov-footer { margin-top:26px; font-size:13px; color:var(--ov-sub); }
#repi-overview .ov-footer p+p { margin-top:8px; }
#repi-overview .ov-legacy-anchor { position:absolute; top:0; left:0; width:1px; height:1px; overflow:hidden; pointer-events:none; }
#repi-overview .ov-sources { margin-top:28px; padding-top:20px; border-top:1px solid var(--ov-line); }
#repi-overview .ov-sources h2 { font-size:16px; }
#repi-overview .ov-source-list {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 32px;
  margin:16px 0 0; padding-left:22px; list-style:decimal;
}
#repi-overview .ov-source-list li { margin:0; padding:0; font-size:13px; line-height:1.85; }
#repi-overview .ov-source-roles { display:block; color:var(--ov-ink); font-weight:700; margin-bottom:3px; }
#repi-overview .ov-reference-history { margin-top:24px; border:0; padding:0; }
#repi-overview .ov-reference-history>summary { cursor:pointer; font-size:13px; font-weight:700; padding:8px 0; }
#repi-overview .ov-reference-history>p { margin-top:8px; }
#repi-overview .ov-reference-history ul { padding-left:20px; margin:12px 0 0; list-style:disc; }
#repi-overview .ov-reference-history li { margin:0 0 12px; padding:0; font-size:13px; line-height:1.85; }
@media(max-width:1000px) {
  #repi-overview .ov-main { padding:24px; }
  #repi-overview .ov-routes { grid-template-columns:1fr; gap:0; }
  #repi-overview .ov-mutual { border-left:0; border-top:1px solid var(--ov-line); margin-top:24px; padding:8px 0 0; }
  #repi-overview .ov-mutual-window { padding:10px 0; }
  #repi-overview .ov-support-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 24px; }
}
@media(max-width:700px) {
  #repi-overview .ov-main { padding:20px 16px; }
  #repi-overview h1 { font-size:24px; }
  #repi-overview .ov-client span { display:block; margin:4px 0 0; }
  #repi-overview .ov-channels,#repi-overview .ov-types { grid-template-columns:1fr; gap:12px; }
  #repi-overview .ov-types>div.ov-node { border:0; border-top:1px solid var(--ov-line); padding:14px 0 0; }
  #repi-overview .ov-types>div.ov-node:first-child { border:0; padding-top:0; }
  #repi-overview .ov-types .ov-example { margin-top:4px; }
  #repi-overview .ov-insurer { padding:18px 16px; }
  #repi-overview .ov-reinsurance { grid-template-columns:22px 1fr; gap:8px; }
  #repi-overview .ov-reinsurance div.ov-node { display:block; padding:16px; }
  #repi-overview .ov-reinsurance div.ov-node p { margin-top:8px; }
  #repi-overview .ov-reinsurance div.ov-node .ov-example { margin-top:8px; }
  #repi-overview .ov-system { grid-template-columns:1fr; gap:20px; }
  #repi-overview .ov-system .ov-node { border-left:0; border-top:1px solid var(--ov-line); padding:18px 0 0; }
  #repi-overview .ov-system .ov-node:first-child { border:0; padding:0; }
  #repi-overview .ov-source-list { grid-template-columns:1fr; gap:16px; }
}
@media(max-width:480px) {
  #repi-overview .ov-support-grid { grid-template-columns:1fr; gap:8px; }
}
