.accordion_menu {
  width: 90%;
  margin: 0 auto;        /* 左右中央寄せ */
  margin-bottom: 2em;
}

.accordion_menu div {
  display: block;
  padding: 2%;
  margin-bottom: 0%;
  text-align: left;
  text-decoration: none;
  font-size: var(--font-s);
  color: var(--color-subtle);
  white-space: normal;
}

.accordion_menu input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.accordion_menu label {
  position: relative;
  display: flex;
  align-items: center;
  padding: 0.8em 0.4em 0.8em 2em;
  text-align: left;
  color: var(--color-main);
  background: var(--color-base);
  cursor: pointer;
  font-family: var(--font-main);
  font-size: var(--font-m);
  font-weight: normal;
  border-bottom: 1px solid var(--color-main);
  white-space: nowrap;
}

.accordion_menu ul {
  max-height: 0;
  overflow: hidden;
  background: var(--color-base);
  margin: 0;
  padding: 0;
  list-style: none;
  transition: max-height 0.3s ease;
}

/* チェックされたときの開くアニメーション */
.accordion_menu input:checked + label + ul {
  max-height: 100em;
  transition: max-height 1.2s ease;
}

/* アイコン表示 */
.accordion_menu label .icon {
  position: absolute;
  left: 0.3em;
  top: 50%;
  transform: translate(-10%, -45%);
  width: 1em;
  height: 1em;
}

.accordion_menu label .icon::before,
.accordion_menu label .icon::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.8em;
  height: 0.08em; /* 太さを調整 */
  background-color: var(--color-primary);
  transition: transform 0.3s ease, opacity 0.3s ease;
  transform-origin: center;
}

/* ▼ 未チェック時：V型（＼／） */
.accordion_menu label .icon::before {
  transform: translate(-30%, 0) rotate(45deg);   /* 左斜線 ＼ */
}
.accordion_menu label .icon::after {
  transform: translate(30%, 0) rotate(-45deg);   /* 右斜線 ／ */
}

/* ▲ チェック時：^型（／＼） */
.accordion_menu input:checked + label .icon::before {
  transform: translate(30%, 0) rotate(45deg);   /* 左斜線 ／（反転） */
}
.accordion_menu input:checked + label .icon::after {
  transform: translate(-30%, 0) rotate(-45deg); /* 右斜線 ＼（反転） */
}
