/* ヘッダーエリア */
.header {
  text-align: center;
  margin-bottom: 30px;
}

.header h1 {
  color: #003366;
  /* 濃い紺色 */
  font-size: 24px;
  margin: 0 0 10px 0;
  font-weight: bold;
}

.header p {
  color: #333;
  font-size: 14px;
  margin: 0;
}

/* カードグリッド */
.card-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  /* 4列固定 */
  gap: 15px;
  /* カード間の隙間 */
}

/* カード単体 */
.card {
  background-color: #FFFFFF;
  border: 1px solid #CCCCCC;
  border-radius: 8px;
  padding: 20px 15px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  /* 上部、中部、下部ボタンをきれいに配置 */
  min-height: 280px;
  /* カードの最低の高さを揃える */
}

/* カード内上部（アイコン） */
.card-icon {
  height: 60px;
  /* アイコンエリアの高さを固定 */
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 15px;
}

/* アイコン画像（プレースホルダー） */
.card-icon img {
  max-height: 100%;
  max-width: 100%;
}

/* アイコンのプレースホルダー用スタイル */
.icon-placeholder {
  width: 50px;
  height: 50px;
  background-color: #DDD;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #666;
  font-size: 10px;
  border-radius: 4px;
}

/* カード内中部（テキスト） */
.card-content {
  flex-grow: 1;
  /* 残りのスペースを占有 */
  display: flex;
  flex-direction: column;
  justify-content: center;
  /* テキストを垂直方向に中央寄せ */
  margin-bottom: 20px;
}

/* オレンジの説明テキスト */
.card-text {
  color: #EE7800;
  /* オレンジ */
  font-size: 13px;
  line-height: 1.4;
  margin-bottom: 10px;
}

/* 青色のサービス名タイトル */
.card-title {
  color: #003366;
  /* 濃い紺色 */
  font-size: 16px;
  font-weight: bold;
  line-height: 1.3;
}

/* カード内下部（ボタン） */
.card-button {
  display: block;
  background-color: #003366;
  /* 濃い紺色 */
  color: #FFFFFF;
  text-decoration: none;
  font-size: 14px;
  font-weight: bold;
  padding: 10px;
  border-radius: 4px;
  transition: background-color 0.3s ease;
}

/* ボタンホバー時 */
.card-button:hover {
  background-color: #0055AA;
}

/* レスポンシブ対応 (スマホ用) */
@media screen and (max-width: 768px) {
  .card-grid {
    grid-template-columns: 1fr;
    /* 1列に */
    gap: 20px;
  }

  .header h1 {
    font-size: 20px;
  }

  .card {
    min-height: auto;
    /* 高さを自動に */
  }
}


.mimamorisupport-type { display: flex; gap: 20px; flex-wrap: wrap; }
.mimamorisupport-type__element { width: calc((100% - 60px) / 4); border: 2px solid #ddd; border-radius: 10px; display: flex; flex-direction: column; justify-content: space-between; padding: 20px; }
.mimamorisupport-type__pict { text-align: center; margin-bottom: 10px; }
.mimamorisupport-type__text { font-size: 18px; font-weight: 700; text-align: center; line-height: 1.2; margin-bottom: 10px; }
.mimamorisupport-type__link { text-align: center; }
.mimamorisupport-type__link .page-mimamori-button { font-size: 16px; padding: 15px 12px; min-width: auto; display: block; line-height: 1; }
.mimamorisupport-type__link .page-mimamori-button::after { right: 12px; }

@media screen and (max-width: 768px) {
  .mimamori-lead .mimamori-section__inner { padding: 0; }
  .mimamorisupport-type { gap: 10px; }
  .mimamorisupport-type__element { width: calc((100% - 10px) / 2); padding: 10px; }
  .mimamorisupport-type__text { font-size: 14px; letter-spacing: -1px; }
  .mimamorisupport-type__link .page-mimamori-button { font-size: 12px; padding: 5px 10px; }
  .mimamorisupport-type__link .page-mimamori-button::after { width: 15px; height: 15px; right: 5px; }
  .mimamori-nav__element { width: calc(100% / 3); border-right: 1px solid #ddd!important; }
  .mimamori-nav__element:last-child { border-right: 0!important; }
}


.mimamori-cta[data-type="image"] { margin: 50px auto; max-width: 800px; }
.mimamori-cta__copy { text-align: center; font-size: 24px; font-weight: 700; }
.mimamori-cta__copy span { position: relative; display: inline-block; }
.mimamori-cta__copy span::before,
.mimamori-cta__copy span::after { content: ""; width: 2px; height: 30px; background-color: #000; position: absolute; }
.mimamori-cta__copy span::before { left: -20px; top: 0; transform: rotate(-20deg); }
.mimamori-cta__copy span::after { right: -20px; top: 0; transform: rotate(20deg); }
.mimamori-cta__col2 { display: flex; gap: 40px; justify-content: center; margin-top: 15px; align-items: center; }
.mimamori-cta__image { width: 118px; }
.mimamori-cta__text { width: 300px; }
.mimamori-cta__text ul { display: flex; flex-direction: column; gap: 5px; }
.mimamori-cta__text ul li { position: relative; padding-left: 15px; font-weight: 700; text-align: left;}
.mimamori-cta__text ul li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; position: absolute; left: 0; top: 10px; background-color: #1D50A2; }
.mimamori-cta__text .mimamori-cta__button { margin-top: 15px; }
.mimamori-cta__text .mimamori-cta__button a { margin-top: 0!important; min-width: 300px; }
.mimamori-cta__text .mimamori-cta__button a:has(.badge) span:not(.badge) { font-size: 16px; }
@media screen and (max-width: 768px) {
  .mimamori-cta[data-type="image"] { display: flex; flex-direction: column; width: 100%; }
  .mimamori-cta__copy { order: 1; text-align: center; font-size: 18px; line-height: 1.3; }
  .mimamori-cta__copy span::before,
  .mimamori-cta__copy span::after { top: 30%; }
  .mimamori-cta__col2 { order: 2; width: 100%; display: grid; grid-template-columns: 120px 1fr; gap: 12px; }
  .mimamori-cta__image { grid-column: 1 / 2; grid-row: 1 / 2; }
  .mimamori-cta__text { grid-column: 2 / 3; grid-row: 1 / 2; display: contents; }
  .mimamori-cta__text ul { grid-column: 2 / 3; grid-row: 1 / 2; margin: 0; padding-left: 1.2em; }
  .mimamori-cta__text .mimamori-cta__button { grid-column: 1 / 3; grid-row: 2 / 3; margin-top: 0; }
  .mimamori-cta__text .mimamori-cta__button a { width: 100%; }
}
.mimamori-price__list.sp { display: none; }
@media screen and (max-width: 768px) {
  .mimamori-price__list.pc { display: none; }
  .mimamori-price__list.sp { display: flex; flex-direction: column; }
  .mimamori-price__main { display: flex; gap: 10px; margin-bottom: 10px; }
  .mimamori-price__main > div { flex: 1; border-radius: 10px; background-color: #ebf0f7; padding: 10px; display: flex; flex-direction: column; align-items: center; font-size: 14px; line-height: 1.2; }
  .mimamori-price__main > div span { font-weight: 700; font-size: 20px; }
  .mimamori-price__monthly span { color: #EE7800; }
  .mimamori-price__initial span { color: #1D50A2; }
  .mimamori-price__detail { margin-bottom: 10px; }
  .mimamori-price__detail summary { display: block; list-style: none; font-weight: bold; cursor: pointer; transition: all 0.3s ease; color: #1d50a2; font-size: 16px; text-align: center; position: relative; }
  .mimamori-price__detail summary::-webkit-details-marker { display: none; }
  .mimamori-price__detail summary::after { content: ""; width: 15px; height: 10px; background-color: #1D50A2; clip-path: polygon(0 0, 100% 0, 50% 100%); display: inline-block; margin-left: 5px; }
  .mimamori-price__detail[open] summary::after { transform: rotate(180deg); }
  .mimamori-price__detail[open] > div { animation: fadeIn 0.4s ease-out; }
  .mimamori-price__detail-content { padding: 10px; background-color: #ebf0f7; }
  .mimamori-price__detail-content dl { display: flex; justify-content: space-between; border-bottom: 1px dotted #ccc; }
  .mimamori-price__detail-content dd { font-weight: 700; }
  .mimamori-price__detail .note { font-size: 12px; margin-top: 5px; }
  .mimamori-price__detail .note span { display: block; font-weight: 700; }

}

@keyframes fadeIn {
  0% {
    opacity: 0;
    transform: translateY(-5px); /* 少し上から下に落ちてくる動き */
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}