@charset "utf-8";
/* CSS Document */

  /* ===== ベース ===== */
  :root{
    --bg: #ffffff;
    --text: #222;
    --muted: #666;
    --accent: #0b4a73; /* ネイビーブルー */
    --content-max: 980px;
    --gap: 1.25rem;
    --radius: 10px;
    --heading-weight: 700;
    --font-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", "Segoe UI", Roboto, system-ui, -apple-system, "Helvetica Neue", Arial;
  }


/* 余白を他要素と共有しないよう調整 */
html, body {
  height: 100%;
  margin: 0;
  padding: 0; /* ← ← ここをリセット */
  font-family: var(--font-sans);
  background: var(--bg);
  color: var(--text);
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* main.container の余白を全体調整に使う */
.containerpp {
  max-width: var(--content-max);
  margin: 50px auto; /* ← 上下のみにゆとりを確保 */
  background: #fbfdff;
  border: 1px solid #e6eef5;
  border-radius: var(--radius);
  padding: 2rem 1.5rem; /* ← 左右の余白はこちらで管理 */
  box-shadow: 0 6px 20px rgba(10,30,45,0.04);
  box-sizing: border-box; /* ← 余白を正確に制御 */
}

  a{color:var(--accent)}
  a:focus{outline:3px solid rgba(11,74,115,0.18); outline-offset:3px}

.right10{
	text-align: right;	
}
/*ナンバーリスト*/
.containerpp ol {

	margin-top: 20px;
	margin-bottom: 10px;
	padding-bottom: 30px;
	margin-left: 5%;
}
.containerpp li {
	padding-bottom: 10px;
	line-height: 2em;
}
/*保険会社名*/
.pp01{
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}

.pp01 h4{
	padding-top: 0px;
	padding-bottom: 0px;
}
.pp01 a{
	color: #0089AC;
	text-decoration: none;
}
.pp01 ul{
	margin-left: 10px;	
}
.pp01 li{
	color: #C7C7C7;
}
.pp01 li span{
	color: #000000;
}
  /* Skip link */
  .skip-link{
    position:absolute;
    left:-9999px;
    top:auto;
    width:1px;
    height:1px;
    overflow:hidden;
  }
  .skip-link:focus{
    left:1rem;
    top:1rem;
    width:auto;
    height:auto;
    padding:.5rem .75rem;
    background:#fff;
    border:2px solid var(--accent);
    border-radius:6px;
    z-index:9999;
  }

  header.site-header{
    max-width:var(--content-max);
    margin:0 auto 1.25rem;
    display:flex;
    gap:1rem;
    align-items:center;
    justify-content:space-between;
  }
  .brand{
    display:flex;
    gap:.6rem;
    align-items:baseline;
  }
  .brand strong{font-size:1.05rem;color:var(--accent)}
  .meta{color:var(--muted); font-size:.95rem}



  /* 目次（サイド/上部） */
  nav.toc{
    border-left:4px solid rgba(11,74,115,0.06);
    margin-bottom:1rem;
    padding:0.75rem;
    background:linear-gradient(180deg, rgba(11,74,115,0.02), transparent);
    border-radius:8px;
  }
  nav.toc h2{margin:0 0 .5rem; font-size:1rem; color:var(--accent)}
  nav.toc ul{margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:.5rem}
  nav.toc li{margin:0}
  nav.toc a{
    display:inline-block;
    padding:.35rem .6rem;
    background:#fff;
    border-radius:6px;
    border:1px solid #e9f2f7;
    text-decoration:none;
    color:var(--accent);
    font-size:.95rem;
  }

  article.policy{
    margin-top:1rem;
  }
  article.policy h1{
    margin:0 0 .6rem;
    font-size:1.4rem;
    font-weight:var(--heading-weight);
    color:var(--accent);
  }
  article.policy p.lead{
    margin:0 0 1rem;
    color:var(--muted);
    font-size:0.98rem;
  }

  section.policy-section{
    margin:1.1rem 0;
    padding:1rem;
    background:transparent;
    border-radius:8px;
  }
  section.policy-section h2{
    margin:0 0 .6rem;
    font-size:1.05rem;
    color:#0b3b55;
  }
  section.policy-section h3{
    margin:0 0 .4rem;
    font-size:.98rem;
    color:var(--accent);
  }
  section.policy-section p,
  section.policy-section li{
    color:var(--text);
    font-size:.98rem;
    margin:0 0 .6rem;
  }
  section.policy-section ul{padding-left:1.1rem; margin:0 0 .6rem;}

  /* 連絡先カード */
  .contact-card{
    border-top:4px solid var(--accent);
    background:#fff;
    padding:1rem;
    border-radius:0px;
    margin-top:1rem;
  }
  .contact-grid{
    display:grid;
    grid-template-columns: 1fr;
    gap:.6rem;
  }
  .contact-grid dt{font-weight:700}
  .contact-grid dd{margin:0;color:var(--muted)}

  /* フッター */
  footer.site-footer{
    max-width:var(--content-max);
    margin:1.25rem auto 0;
    color:var(--muted);
    font-size:.9rem;
    text-align:center;
  }

  /* レスポンシブ */
  @media (min-width:720px){
    nav.toc ul{flex-direction:column; gap:.4rem}
    .contact-grid{grid-template-columns: 1fr 1fr}
  }

  /* 印刷用 */
  @media print{
    body{padding:0; background:#fff}
    header.site-header, nav.toc, footer.site-footer{display:none}
    .container{border:none; box-shadow:none; padding:0}
    .policy-section{page-break-inside:avoid}
  }