/* =========================
   ベース設定
========================= */
body {
  margin: 10px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.7;
  color: #333;
  background-color: #fff;
}

header,
main,
footer {
  max-width: 900px;
  margin: 0 auto;
  padding: 2px;
}

h2 {
  font-size: 28px;
}

a {
  text-decoration: none;
  color: inherit;        /* 親要素の文字色を使う */
}

.logo {
  font-size: 32px;
  font-weight: bold;
  display: inline-block;
  padding: 20px 0;
}

.red {
  color: #bb0000;
}

.blue {
  color: #004fe2;
}

.font14 {
  font-size: 14px;
}

.font16 {
  font-size: 16px;
}

.font32 {
  font-size: 32px;
}

.font48 {
  font-size: 48px;
}


.mark {
    font-weight: bold;         /* 文字を太字にする（任意） */
}

.img2 { /*imgの幅指定*/
    width: 600px;
    max-width: 100%;
}

table {
    border-collapse: collapse;
    width: 100%;
}
th, td {
    border: 1px solid #dddcd6;
    padding: 2px 12px;
    font-weight: normal;
}

.highlight {
    background-color: #ffecee; /* 薄い赤色 */
}

.red-box {
  border: 1px solid red;     /* 赤い枠線 */
  padding: 12px 16px;        /* 内側の余白 */
  margin: 12px 0;            /* 上下の余白 */
  list-style-position: inside; /* 箇条書きを内側に */
}

.margin-top50 {
  margin-top: 100px;
  margin-bottom: 0px;
}

.margin0 {
  margin-top: 0px;
  margin-bottom: 0px;
}

/* =========================
   ヘッダー
========================= */
header {
  padding: 20px 20px;
  border-bottom: 1px solid #ff0000;
}

#header_text {
  color: #666;
  font-size: 14px;
}

/* =========================
   コンテンツ
========================= */
p {
  margin: 0px 0px;
}

ul {
  padding-left: 1.2rem;
  margin: 0;
}

section {
  margin-bottom: 3rem;
}

li {
  margin: 0.4rem 0;
}

.center {
  text-align: center;
  margin: 10px;
}

.left {
  text-align: left;
  margin: 10px;
}

.right {
  text-align: right;
}

.contents-row {
    display: flex;
    justify-content: space-between; /* 左 / 中央 / 右 に配置 */
    align-items: center;
    gap: 24px;
}

.stretch {
    align-items: stretch; /* ← 高さを揃える */
}

.contents-row > div {
    text-align: center;
}

/* =========================
  カードコンテンツ
========================= */

/* カード共通 */
.card-h,
.card {
  flex: 1;
  padding: 32px 16px;        /* 縦長に見せる */
  text-decoration: none;
  color: #000;
  background-color: #fff;
  box-sizing: border-box;
  text-align: center;
  /* 浮き上がり効果 */
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
  border-radius: 8px;

  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.gray {
    background-color: #9ea8b43d; /* カード色 */
}

/* hover時に少し浮く */
.card-h:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
  background-color: #fff6f6; /* うっすら */
}

.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.card-h p,
.card p {
  font-size: 16px;
  line-height: 1.6;
}



/* =========================
   パンくずリスト
========================= */
.breadcrumb ol {
  margin-top: 0;
  list-style: none;
  padding: 0;
  margin: 0px;
  display: flex;
  flex-wrap: wrap;
  font-size: 0.9rem;
  color: #bb0000;
}

.breadcrumb li + li::before {
  content: ">";
  margin: 0 8px;
}

.breadcrumb a {
  text-decoration: none;
}



/* =========================
   ボタン
========================= */
button {
    padding: 5px 15px;
    font-size: 22px;
    line-height: 1.4;
    background-color: #bb0000;
    color: white;
    border: 2px solid #bb0000;
    border-radius: 30px;
    cursor: pointer;
    margin: 5px;
}

/* =========================
   フッター
========================= */
footer {
  padding: 20px 20px;
  font-size: 0.9rem;
  color: #666;
  border-top: 1px solid #ff0000;
}

/* =========================
   スマホ最適化
========================= */
@media screen and (max-width: 600px) {
  .contents-row {
      flex-direction: column;   /* 縦並びにする */
  }

  .contents-row .card {
      width: 100%;              /* 横幅いっぱい */
  }
}
