@charset "utf-8";
html, body {
  margin: 0;
  padding: 0;
  font-size: 62.5%;
  color: #888;
}
body {
  font-family: "Outfit", 'Noto Sans JP', sans-serif;
  color: #888;
  font-size: 1.8rem;
  line-height: 2em;
}
body.menu-open, html.menu-open {
  overflow: hidden;
  height: 100%;
}
/* PCサイズ（1025px以上）の時、スマホ専用要素を確実に消す */
@media screen and (min-width: 1025px) {
  .spBtnArea, .spOnly {
    display: none !important;
  }
  .pcOnly {
    display: block !important;
  }
}
/* スマホ・タブレットサイズ（1024px以下）の時、PC専用要素を確実に消す */
@media screen and (max-width: 1024px) {
  .pcOnly {
    display: none !important;
  }
  .spBtnArea, .spOnly {
    display: block !important;
  }
}
@media (min-width: 1400px) {
  #home .container {
    max-width: 1300px;
  }
  #under .container {
    max-width: 1400px;
  }
}
p {
  line-height: 1.8;
  margin-bottom: 20px;
}
img {
  max-width: 100%;
}
* {
  box-sizing: border-box;
}
/* スマートフォンの場合 */
@media (max-width: 600px) {
  a[href^="tel:"] {
    pointer-events: auto;
  }
}
/* スマホ以外 */
@media (min-width: 601px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
  footer a[href^="tel:"] {
    color: #fff !important;
  }
  #privacy a[href^="tel:"] {
    color: #1B1B1B;
  }
}
a {
  color: #2eb9b0;
}
a:hover {
  color: #2eb9b0;
  text-decoration: underline;
}
header a, footer a {
  color: #fff;
}
footer a:hover {
  color: #a9ce52;
}
img {
  max-width: 100%;
  height: auto;
}
ul, ol {
  list-style: none;
  padding: 0;
  margin: 0;
}
.round200 {
  border-radius: 200px;
}
/*ヘッダー*/
#home header {
  --wave-height: 120px;
  background-color: #fff;
  padding: 0rem 1.5rem;
  position: relative;
  overflow: hidden;
}
#home header .color-dots {
  display: none;
}
#under header {
  --wave-height: 120px;
  background-color: #fff;
  padding: 0rem 1.5rem;
  position: relative;
  overflow: hidden;
}
svg {
  display: block;
}
.header-inner {
  display: flex;
  align-items: center;
  position: relative;
  justify-content: space-between;
  margin: 0 auto;
  padding: 30px 0px;
}
.headunder {
  position: relative;
}
.headunder .wave-top {
  top: -1px;
  z-index: 2;
  position: absolute;
  overflow: hidden;
}
.headunder-bottom {
  position: relative;
}
/* ===== 波 共通 ===== */
.wave-svg {
  display: block; /* ← 白線防止最重要 */
  width: 100%;
  height: 120px;
  line-height: 0;
}
/* 下だけ反転 */
.wave-flip {
  transform: scaleY(-1);
}
/* ===== 背景色 ===== */
.main-area {
  background: #a9ce52;
}
/* ===== 余白リセット ===== */
.headunder, .headunder-bottom {
  line-height: 0;
  position: relative;
}
.headunder-bottom {
  /*  margin-top: 140px;*/
}
/* ドット */
.headunder, .headunder-bottom {
  position: relative;
  line-height: 0;
}
/* SVG */
.headunder svg, .headunder-bottom svg {
  display: block;
  width: 100%;
  height: auto;
  transform: translateY(1px);
}
.color-dots {
  position: absolute;
  left: 70%;
  transform: translateX(-50%);
  top: 40px;
  translate: 0 -50%;
  display: flex;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
#home .header-inner {
  padding-bottom: 0;
}
header h1, header #logo {
  width: min(65vw, 443px);
  height: auto;
  margin: 0;
}
h1, h2, h3, h4, h5, h6 {
  font-family: "Noto Sans JP", sans-serif;
}
/* =========================
   main-wave-bg（緑＋白波＋ドット）
========================= */
.main-wave-bg {
  position: relative;
  background: #fff;
}
/* ===== 白波 ===== */
.main-wave-bg .wave-svg {
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  height: clamp(80px, 8vw, 140px);
  display: block;
  pointer-events: none;
  z-index: 1;
  transform: scaleX(-1); /* ← 反転はここだけ！ */
}
/* ===== ドット（白の中に配置） ===== */
.main-wave-bg .color-dots {
  position: absolute;
  right: 10%;
  bottom: clamp(35px, 5vw, 70px);
  display: flex;
  gap: 12px;
  z-index: 2;
  list-style: none;
  margin: 0;
  padding: 0;
}
/* ドットサイズ */
.main-wave-bg .color-dots li {
  width: clamp(8px, 2.2vw, 18px);
  height: clamp(8px, 2.2vw, 18px);
  border-radius: 50%;
}
.center-color-dots {
  /* position: absolute; */
  display: flex;
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 0;
  z-index: 10;
  justify-content: center;
}
.color-dots {
  position: absolute;
  display: flex;
  gap: 12px;
  list-style: none;
  margin: 0;
  /*  padding: 40px 40px 0 0;*/
  z-index: 10;
}
.centertop.color-dots {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.centerbottom.color-dots {
  position: absolute;
  bottom: 50px;
  left: 50%;
  top: auto;
  transform: translateX(-50%);
  display: flex;
  gap: 12px;
  z-index: 10;
}
.centerDot .center-color-dots {
  height: 1em;
  margin: 3em auto;
}
.centerbottom .center-color-dots {
  text-align: center;
}
.center-color-dots li, .color-dots li {
  width: clamp(6px, 2.5vw, 15px);
  height: clamp(6px, 2.5vw, 15px);
  border-radius: 50%;
}
/* 左から順に色指定 */
.center-color-dots li:nth-child(1), .color-dots li:nth-child(1) {
  background: #ea6da4;
}
.center-color-dots li:nth-child(2), .color-dots li:nth-child(2) {
  background: #6bc8ff;
}
.center-color-dots li:nth-child(3), .color-dots li:nth-child(3) {
  background: #eda02f;
}
.center-color-dots li:nth-child(4), .color-dots li:nth-child(4) {
  background: #a499c9;
}
#gotop {
  display: none;
}
footer {
  position: relative;
  background-image: url("../images/footer_bg.jpg");
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  color: #fff;
  padding: 45px 3vw;
  margin-top: 80px;
}
/* 緑のオーバーレイ */
footer::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(44, 181, 169, 0.85);
  z-index: 0;
}
footer * {
  position: relative;
  z-index: 1;
}
.footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 24px;
}
/* 並び順（スマホ） */
.footer-inner > .logo {
  order: 1;
  width: 226px;
}
.footer-inner > .takegoodcare {
  order: 2;
}
.footer-inner > ul {
  order: 3;
}
/* 画像中央寄せ */
.footer-inner .takegoodcare img {
  margin: 0 auto 10px;
  width: 126px;
  height: auto;
  display: block;
}
#sp_fmenu {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: stretch; /* liの高さを揃える */
  padding: 0;
  margin: 0;
  list-style: none;
  height: 53px;
}
#sp_fmenu li {
  width: 50%;
  display: flex;
}
#sp_fmenu li a {
  width: 100%;
  display: flex;
  align-items: center; /* 縦中央 */
  justify-content: center; /* 横中央 */
  padding: 12px 0; /* タップしやすい高さ */
  box-sizing: border-box;
}
#sp_fmenu li img {
  height: auto;
  max-height: 20px;
  display: block;
}
#sp_fmenu li:first-of-type {
  background-color: #a9ce52;
}
#sp_fmenu li:first-of-type img {
  width: 86px;
  height: auto;
}
#sp_fmenu li:nth-of-type(2) {
  background-color: #3da59b;
}
#sp_fmenu li:nth-of-type(2) img {
  width: 104px;
  height: auto;
}
.takegoodcare p {
  color: #fff;
  margin-bottom: 0;
  font-size: 10px;
  margin-top: 5px;
  letter-spacing: 0.02em;
}
/* ===== メニューボタン基本 ===== */
.menu-btn {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  border: none;
  background: #fff;
  cursor: pointer;
  z-index: 1002;
  position: fixed;
  right: 10px;
}
.menu-btn span {
  position: absolute;
  left: 50%;
  width: 36px;
  height: 3px;
  background: #888;
  transform: translateX(-50%);
  transition: .3s;
}
/* 中央基準で配置 */
.menu-btn span:nth-child(1) {
  top: 38%;
}
.menu-btn span:nth-child(2) {
  top: 50%;
}
.menu-btn span:nth-child(3) {
  top: 62%;
}
/* ===== メニュー開いている状態（閉じるボタン） ===== */
.menu-btn.is-open {
  background: #fff;
  outline: none;
  border: none;
  z-index: 999999;
}
.menu-btn.is-open span {
  background: #0dbeb3;
  outline: none;
  border: none;
}
button:focus, .menu-btn.is-open:focus, .menu-btn.is-open:active {
  outline: none;
  border: none;
}
.menu-btn.is-open span:nth-child(1) {
  top: 50%;
  transform: translateX(-50%) rotate(45deg);
}
.menu-btn.is-open span:nth-child(2) {
  opacity: 0;
}
.menu-btn.is-open span:nth-child(3) {
  top: 50%;
  transform: translateX(-50%) rotate(-45deg);
}
/* サイドメニュー */
.side-menu {
  position: fixed;
  top: 0;
  right: -90vw;
  width: 90vw;
  height: 100%;
  background: rgba(13, 190, 179, .8);
  padding: 120px 3rem;
  transition: .3s;
  z-index: 1001;
}
.side-menu.active {
  right: 0;
}
.side-menu ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.side-menu li {
  margin-bottom: 1.5rem;
  color: #fff;
}
.side-menu a {
  text-decoration: none;
  font-size: 1.6rem;
  color: #fff;
}
.side-menu a:hover {
  opacity: .7;
}
.menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  visibility: hidden;
  transition: .3s;
  z-index: 1000;
}
.menu-overlay.is-open {
  opacity: 1;
  visibility: visible;
}
.zebraTable {
  border-collapse: collapse;
  width: 100%;
}
.zebraTable th, .zebraTable td {
  color: #87ad1e;
  padding: 40px 30px;
}
.zebraTable th:nth-child(1), .zebraTable td:nth-child(1), .zebraTable th:nth-child(2), .zebraTable td:nth-child(2) {
  background-color: #fff;
}
.zebraTable th:nth-child(3), .zebraTable td:nth-child(3) {
  background-color: #eef5dc;
}
.zebraTable td a {
  color: #87ad1e;
  text-decoration: none;
}
.zebraTable th:first-child, .zebraTable td:first-child {
  text-align: center;
}
.zebraTable tbody tr {
  display: grid;
  grid-template-columns: 2em 1fr; /* 1列目・2列目 */
  gap: 0px;
  margin-bottom: 0px;
}
/* 3列目を下段に */
.zebraTable tbody td:nth-child(3) {
  grid-column: 1 / 3;
}
.whatFlex {
  display: flex;
  justify-content: center;
  margin: auto;
  color: #66872d;
  align-items: center;
}
.whatFlex img {
  margin-left: 200px;
}
.whatBest {
  position: relative; /* 親に指定 */
  min-height: 1690px;
  background-color: #fff;
  border-radius: 200px;
  padding: 40px;
  width: 100%; /* 親要素の幅 */
  overflow: visible;
}
.whatBest h2 {
  font-size: 3.5rem;
  text-align: left;
  letter-spacing: 2.5px;
  line-height: 2;
  padding-bottom: 6px;
}
.whatBest h2 span {
  width: 100%;
  padding-bottom: 6px;
  background-image: linear-gradient(to right, #aacf52 50%, transparent 50%);
  background-size: 8px 3px;
  background-repeat: repeat-x;
  background-position: left bottom;
}
.whatBest .textBox {
  margin: 0;
  width: 40%;
  padding-right: 10%;
  min-width: 400px;
  position: absolute;
  z-index: 2;
}
.whatBest .image-wrapper {
  position: absolute;
  right: -50px;
  left: -50px;
  bottom: 50px;
  width: calc(100% + 100px);
  height: auto;
}
.whatBest .image-wrapper img {
  width: 100%;
  height: auto;
  display: block;
}
.baseWhiteRound {
  position: relative;
  background-color: #fff;
  border-radius: 200px;
  padding: 100px;
  overflow: visible;
  margin: 100px auto;
}
.baseWhiteRound.member {
  padding: 100px 50px;
}
.baseGreenRound {
  position: relative;
  background-color: #66872d;
  border-radius: 200px;
  padding: 90px;
  overflow: visible;
  margin: 100px auto;
}
.aboutselect {
  margin: 100px 0;
}
.aboutselectContainer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 50px;
  max-width: 1400px;
  margin: 100px 50px 0;
  align-items: stretch;
}
.aboutselectBox {
  flex: 0 0 calc(33.33% - 50px);
  display: flex;
  flex-direction: column;
  background-color: #fae2c0;
  border-radius: 100px;
  padding: 80px;
  box-sizing: border-box;
}
/* dlをFlexコンテナ化して内部を制御 */
.aboutselectBox dl {
  margin: 0;
  display: flex;
  flex-direction: column;
  height: 100%; /* 親要素(aboutselectBox)の高さに追従 */
}
/* 画像（dt）のスタイル */
.aboutselectBox dt {
  margin: 0 0 20px 0;
  flex: 1; /* 残りの高さを均等に配分 */
  display: flex;
  align-items: center;
  justify-content: center;
}
.aboutselectBox dt img {
  max-width: 100%;
  height: auto;
}
/* テキスト（dd）のスタイル */
.aboutselectBox dd {
  margin: 0;
  text-align: center;
  font-weight: bold;
  /* dtとddのレイアウトを揃えるための微調整 */
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #bb6e1b;
}
.aboutteachaer .centerDot {
  position: relative;
  width: 100%;
  height: 3em;
}
.teachaerBox, .aboutselect {
  border-radius: 200px;
  padding: 140px 0;
}
/* グリッドコンテナ（タイトル + 5列のカード配置） */
.member-grid {
  display: grid;
  /* 5列に均等分割 */
  grid-template-columns: repeat(5, 1fr);
  gap: 25px;
  padding: 50px;
  max-width: 1400px;
  margin: 0 auto;
}
/* タイトルをカードと見た目を揃える設定 */
.member-title {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  /* 必要に応じて背景や角丸を足すとカードと馴染みます */
}
.member-title h2 {
  color: #888;
  font-size: 1.8rem;
  line-height: 1.6;
  font-weight: bold;
}
/* カード共通スタイル */
.member-card {
  background-color: #2c8eb5;
  border-radius: 120px 120px 80px 80px;
  padding: 15px;
  color: #fff;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* 写真のオレンジ縁取り */
.photo-frame {
  width: 185px;
  height: 185px;
  border-radius: 50%;
  border: 15px solid #f29e2e;
  background-color: #fff;
  overflow: hidden;
  margin-bottom: 20px;
}
.photo-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* テキストスタイル */
.role {
  font-size: 1.2rem;
  font-weight: bold;
  margin-bottom: 8px;
  color: #fff;
  letter-spacing: 1px;
}
.name {
  font-size: 2rem;
  font-weight: 500;
  margin-bottom: 15px;
  color: #fff;
  letter-spacing: 2px;
}
.profile {
  font-size: 1.2rem;
  line-height: 1.5;
  color: #fff;
  letter-spacing: 1px;
}
/* --- 親コンテナ --- */
.whatRule .greenBox {
  width: 80%;
  position: relative;
  margin: auto;
  background-color: #eef5dc;
  border-radius: 150px;
  padding: 90px 50px;
  overflow: visible;
  color: #66872d;
  text-align: center;
}
.whatRule .greenBox h3 {
  text-align: center;
  font-size: 2.6rem;
  margin-bottom: 1.5em;
}
/* --- カード並び（2カラム） --- */
.whatRule .greenBox .colorBox {
  display: flex;
  justify-content: space-between;
  width: calc(100% + 200px);
  margin-left: -100px;
  gap: 20px;
}
/* --- カード共通設定 --- */
.whatRule .greenBox .orangeBox, .whatRule .greenBox .blueGreenBox {
  flex: 1;
  display: flex;
  flex-direction: column;
  background-color: transparent;
  padding: 0;
}
/* --- ヘッダー（タイトル・ターゲット） --- */
.whatRule .entryTit {
  color: #fff;
  text-align: center;
  font-size: 3.2rem;
  border-radius: 150px 150px 0 0;
  padding: 65px 0 45px;
  letter-spacing: 0.5em;
}
.orangeBox .entryTit {
  background-color: #eda02f;
}
.blueGreenBox .entryTit {
  background-color: #2cb5a9;
}
.whatRule .target {
  color: #fff;
  font-size: 1.8rem;
  text-align: center;
  margin: 0;
  padding: 0.5em;
}
.orangeBox .target {
  background-color: #b17314;
}
.blueGreenBox .target {
  background-color: #10796d;
}
/* --- メインコンテンツ（dl/dd/dt） --- */
.whatRule .orangeBox dl, .whatRule .blueGreenBox dl {
  flex: 1; /* 高さを揃えるための要 */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding-bottom: 20px;
  border-radius: 0 0 100px 100px;
  margin: 0;
}
.whatRule .orangeBox dl {
  background-color: #fae2c0;
}
.whatRule .blueGreenBox dl {
  background-color: #bfe9e5;
}
.whatRule dl > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  padding: 35px;
}
.orangeBox dl > div {
  border-bottom: dotted 4px #b17314;
}
.blueGreenBox dl > div {
  border-bottom: dotted 4px #56c4ba;
}
.whatRule dt {
  font-size: 1.6rem;
  font-weight: normal;
  padding: 0.5rem;
}
.whatRule dd {
  font-size: 3.6rem;
  margin-left: 0;
  font-weight: 500;
  padding: 0.5rem;
}
.orangeBox dt, .orangeBox dd {
  color: #b17314;
}
.blueGreenBox dt, .blueGreenBox dd {
  color: #10796d;
}
/* --- 取得ペースエリア（常に下寄せ） --- */
.whatRule .pace {
  margin: 2em 1em;
  border-radius: 99px;
  background-color: #fff;
  display: flex;
  flex-direction: column;
  text-align: center;
  padding: 38px 20px;
  border: none;
}
.whatRule .pace strong {
  font-size: 1.8em;
  font-weight: 600;
  letter-spacing: 2px;
}
.orangeBox .pace {
  color: #b17314;
}
.blueGreenBox .pace {
  color: #10796d;
}
/* --- レスポンシブ（タブレット以下で縦並び） --- */
@media screen and (max-width: 1024px) {
  .whatRule .greenBox .colorBox {
    flex-direction: column;
    width: 100%;
    margin-left: 0;
  }
  .whatRule .greenBox {
    width: 95%;
    padding: 50px 20px;
  }
  .member-grid {
    /* 1列表示に固定 */
    grid-template-columns: 1fr;
    width: 100%;
    padding: 20px;
    gap: 20px;
  }
  /* タイトルを一番上に配置 */
  .member-title {
    grid-column: 1 / -1;
    text-align: center;
    margin-bottom: 20px;
  }
  .aboutps p, .aboutauto p, .aboutteachaer p {
    width: 100%;
  }
  .aboutselectContainer {
    flex-direction: column;
    margin-left: 0;
    margin-right: 0;
  }
  .aboutselectBox {
    padding: 60px;
  }
}
.howget .baserule {
  text-align: center;
}
.howget .jpGreen {
  background-color: #66872d;
  color: #fff;
  border-radius: 99px;
  padding: 30px;
  display: inline-block;
  text-align: center;
  margin: 30px auto;
  font-size: 2.6rem;
}
.howtomerit {
  display: flex;
  gap: 40px;
  align-items: stretch;
  margin-top: 70px;
}
.howtomerit dl {
  display: flex;
  flex-direction: column;
  flex: 1;
  margin: 0;
  background-color: #eef5dc;
  border-radius: 120px;
  padding: 80px 40px;
  margin-bottom: 3em;
}
.howtomerit dt {
  margin-bottom: 20px;
  background-color: #66872d;
  color: #fff;
  border-radius: 50px;
  padding: 30px;
  text-align: center;
  font-size: 2.6rem;
  font-weight: normal;
}
.howtomerit dd {
  margin: 0;
  flex-grow: 1;
  color: #66872d;
  text-align: center;
}
.howtoUnitMethod {
  text-align: center;
  padding: 50px 0;
  min-height: 580px;
  position: relative;
}
.howtoUnitMethod .sideTitle {
  position: absolute;
  left: 140px;
  top: 80px; /* ← 上下位置調整 */
  text-align: left;
  font-size: 1.6rem;
  line-height: 1.8;
  color: #66872d;
}
.howtoUnitMethod .mainTitle {
  background: #6a8e3d;
  color: white;
  padding: 20px 40px;
  border-radius: 999px;
  display: inline-block;
  margin-bottom: 60px;
  position: relative;
  font-size: 2.6rem;
}
.howtoUnitMethod .mainTitle small {
  font-size: 1.8rem;
}
/* メインタイトル下の縦線 */
.howtoUnitMethod .mainTitle::after {
  content: "";
  position: absolute;
  bottom: -40px;
  left: 50%;
  width: 2px;
  height: 40px;
  background: #6a8e3d;
}
/* 4つのカードを並べるラッパー */
.howtoUnitMethod .cardsWrapper {
  display: flex;
  justify-content: center;
  gap: 30px;
  margin-left: -250px;
  margin-right: -50px;
  width: calc(100% + 500px);
  position: relative;
}
/* 親要素で「一本の横線」を描く（gap込みで繋げる） */
.howtoUnitMethod .cardsWrapper::before {
  content: "";
  position: absolute;
  top: -20px;
  /* ❶と❹の中心間をカバーするように設定 */
  left: calc(12.5% - 10px);
  /* 全体の幅(100%)から、両端のカードの半分ずつ(12.5% × 2 = 25%)を引く */
  /* 最後に gap を調整してピタリと合わせる */
  width: calc(75% + 20px);
  height: 2px;
  background: #6a8e3d;
  z-index: 0;
}
.howtoUnitMethod .card {
  flex: 1;
  position: relative;
  border: none;
  margin-top: -2px;
  background-color: transparent;
  display: flex;
  flex-direction: column;
}
/* 各カードの縦線（T字で接続） */
.howtoUnitMethod .card::before {
  content: "";
  position: absolute;
  top: -17px;
  left: 50%;
  width: 2px;
  height: 20px;
  background: #6a8e3d;
  z-index: 1;
}
/* カード内のスタイル */
.howtoUnitMethod .card dt {
  background-color: #66872d;
  border-radius: 100px 100px 0px 0px;
  color: #fff;
  padding: 15px; /* 少し余裕を持たせると綺麗です */
  min-height: 3em;
}
.howtoUnitMethod .card dd {
  background-color: #e1eec4;
  margin: 0;
  padding: 1.5em 45px;
  color: #66872d;
  text-align: left;
  flex-grow: 1;
  border-radius: 0 0 100px 100px;
  font-size: 1.6rem;
}
.howtoUnitMethod .card span {
  display: flex; /* flex に変更 */
  align-items: center; /* 垂直方向中央 */
  justify-content: center; /* 水平方向中央 */
  background: #8fc31f;
  color: #fff;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  /* marginの auto は不要になるため削除 */
  position: absolute;
  top: 0px;
  left: -15px;
  z-index: 2;
}
.howtoUnitMethod .card dd li::before {
  content: "\f111";
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
  margin-top: 0.5em;
  margin-right: 0.5em;
  color: #a9ce52;
}
.settingStep {
  padding-bottom: 200px !important;
}
/* カード全体のスタイル */
.settingStep .stepCard {
  position: relative; /* バッジを左にはみ出させるための基準 */
  background-color: #eef5dc;
  padding: 80px 40px 80px 60px;
  border-radius: 120px;
  margin-top: 40px;
  margin-left: 50px;
}
.settingStep .stepCard:last-of-type {
  padding: 80px 40px 120px 60px;
}
.settingStep .stepCard p {
  color: #66872d;
}
.settingStep .stepCard p.price span {
  font-size: 1.8rem;
  font-weight: normal;
}
/* バッジ：左にはみ出させる */
.settingStep .headerWrapper .stepBadge {
  position: absolute; /* 親のheaderWrapperに対して絶対配置 */
  left: -160px; /* ここを調整してはみ出し量を決める */
  background-color: #66872d;
  color: white;
  padding: 30px 60px;
  border-radius: 50px;
  z-index: 2;
  font-size: 2.6rem;
  display: flex;
  align-items: center;
}
.settingStep .headerWrapper .stepBadge span {
  font-size: 3.6rem;
  padding-left: 0.25em;
}
/* タイトルエリア（バッジとの兼ね合いで調整） */
.settingStep .headerWrapper {
  display: flex;
  align-items: center;
  position: relative; /* バッジを動かすための基準 */
  margin-left: 30px; /* バッジがはみ出る分、全体を右にずらす */
  margin-bottom: 50px;
}
.settingStep .headerWrapper .cardTitle {
  color: #66872d;
  font-size: 3rem;
  margin: 0 0 0 3.8em;
  margin-right: 1em;
  border-bottom: 4px dotted #aacf52;
  padding: 10px 0;
  flex: 1; /* タイトルが右側のスペースを埋める */
  text-align: left;
}
/* コンテンツエリア（横並び） */
.settingStep .cardBody {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 20px 30px 0;
}
.settingStep .textWrapper {
  flex: 2;
  color: #66872d;
}
.settingStep .illustWrapper {
  flex: 1;
  text-align: center;
}
/* ボタンエリア */
.settingStep .buttonWrapper {
  display: flex;
  gap: 20px;
  margin-top: 30px;
}
.settingStep {
  margin-top: 1em;
}
.settingStep li::before {
  content: "\f111";
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
  margin-top: 0.5em;
  margin-right: 0.5em;
  color: #66872d;
}
.settingStep .bottomWrapper .stepBadge {
  position: absolute;
  left: -160px;
  background-color: #d2eae6;
  color: #10796d;
  padding: 15px 50px;
  border-radius: 50px;
  z-index: 2;
  font-size: 2rem;
  text-align: center;
}
/* タイトルエリア（バッジとの兼ね合いで調整） */
.settingStep .bottomWrapper {
  display: flex;
  align-items: center;
  position: absolute;
  margin-left: 30px;
  margin-bottom: 20px;
  bottom: -100px;
}
.settingStep .bottomWrapper .bottomText {
  color: #fff;
  margin: 0 0 1em 2em;
  background-color: #2eb6aa;
  flex: 1; /* タイトルが右側のスペースを埋める */
  text-align: left;
  padding: 2em 4em;
  border-radius: 80px;
}
/*プランと料金*/
.page-plan .plan1 {
  justify-content: space-between;
}
.planBox.baseGreenRound > p {
  color: #fff;
  padding-bottom: 30px;
}
.planBox.baseGreenRound .plan1 {
  padding: 60px 90px;
}
.planBox.baseGreenRound .plan1 .plan-content-left {
  display: flex;
  align-items: flex-start;
  gap: 50px;
}
.planBox.baseGreenRound .plan1 .price strong {
  font-size: 3rem;
  letter-spacing: 1px;
  font-weight: 500;
}
.planBox.baseGreenRound .plan1 .price strong span {
  font-size: 2rem;
}
.planBox.baseGreenRound .plan1 .priceinfo {
  color: #888 !important;
  font-size: 1.6rem;
}
.plancommon dl {
  width: 80%;
  margin: auto;
  display: flex;
  flex-direction: column;
}
.plancommon dt {
  color: #66872d;
  position: relative;
  padding-left: 20px;
  font-weight: normal;
  margin-top: 15px;
  font-size: 2.8rem;
}
.plancommon dt::before {
  content: "\f111";
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
  margin-top: 0.5em;
  margin-right: 0.5em;
  color: #a9ce52;
}
.plancommon dd {
  color: #888;
  margin: 5px 0 15px 20px;
  line-height: 2;
  font-size: 2rem;
}
.plancommon dl > div {
  display: flex;
  justify-content: space-between;
  flex-direction: row;
}
.planText {
  width: 80%;
  margin: auto;
}
.planText .roundBtn {
  font-size: 1.8rem;
}
/*ファーマストリームとは*/
/* 親要素：横並びにする */
.aboutsmart {
  display: flex;
  justify-content: space-between; /* または center */
  gap: 50px; /* ボックス間の余白 */
  align-items: stretch; /* これで子要素の高さが自動で揃う */
  margin: 50px auto 0;
}
/* 子要素：中身のレイアウト */
.smartBox {
  flex: 1; /* すべてのボックスを同じ幅にする */
  display: flex;
  flex-direction: column; /* 中身を縦に並べる */
  background-color: #ffd7e6; /* 必要に応じて */
  border-radius: 100px;
  padding: 50px;
  /* border: 1px solid #ccc; など */
}
.smartBox > div, .smartBox dd {
  text-align: center;
  color: #c8537a;
  font-size: 2.4rem;
}
/* dlタグ（画像と説明文）を一番下に押し下げたい場合 */
.smartBox dl {
  margin-top: auto; /* 上に余白を作り、常に下部に配置される */
  text-align: center;
  margin-bottom: 0;
}
.smartBox dt, .smartBox dd {
  padding: 1em 0 0;
}
.smartBox dt img {
  max-width: 100%;
  height: auto;
}
.howpecs dl {
  margin: auto;
  display: flex;
  flex-direction: column;
}
.howpecs dt {
  color: #726797;
  font-size: 2.6rem;
  position: relative;
  padding-left: 20px;
  font-weight: normal;
  margin-top: 50px;
  margin-bottom: 0.25em;
}
.howpecs dt::before {
  content: "\f111";
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
  margin-top: 0.5em;
  margin-right: 0.5em;
  color: #7873f0;
}
.howpecs dd {
  color: #888888; /* ddテキストの色 */
  margin: 5px 0 0 20px; /* インデントを揃えて見やすく */
  line-height: 2;
  font-size: 2rem;
}
.howpecs dl > div {
  display: flex;
  justify-content: space-between;
  flex-direction: row;
}
.pecsFlowBox {
  display: flex;
  align-items: center;
  gap: 50px;
  margin: 50px 0;
}
.pecsStep, .pecsStepImgBox {
  display: flex;
  flex-direction: column;
}
.pecsFlowBox .pecsStep {
  flex: 1; /* 残りのスペースを自動で埋める */
  margin: 0;
}
.pecsBox p {
  font-size: 2rem;
}
/* カウンターのリセット */
.pecsBox {
  counter-reset: pecs-counter;
}
/* h3のスタイル定義 */
.pecsStep dt h3 {
  display: inline-flex;
  align-items: center; /* 数字とテキストを上下中央に揃える */
  margin: 0;
  font-size: inherit;
  color: #726797;
  gap: 20px; /* ここで丸数字の右側に余白を作成 */
}
/* 丸数字のデザイン */
.pecsStep h3::before {
  content: counter(pecs-counter);
  counter-increment: pecs-counter;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 75px;
  height: 75px;
  background-color: #726797;
  color: #fff;
  border-radius: 50%;
  font-size: 2.6rem;
  font-family: "Outfit", sans-serif;
  font-weight: bold;
  flex-shrink: 0; /* 丸の形を維持 */
  margin-right: 10px;
}
/* サブタイトルのスタイル */
.pecsStep dt h3 span {
  margin-left: 10px;
  font-size: 0.8em;
  font-weight: normal;
}
.pecsStep dt {
  margin-bottom: 0.5em;
}
.pecsStep dd {
  color: #726797;
  display: flex;
  flex-direction: row;
  padding-left: 30px;
}
.pecsStep dd h4 {
  color: #726797;
  font-weight: normal;
  font-size: 2.2rem;
  margin: 0.75em 0;
}
.pecsStep dd h4::before {
  content: "\f111";
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
  margin-top: 0.5em;
  margin-right: 0.5em;
  color: #7873f0;
}
.pecsStep hr {
  border: none; /* 一度デフォルトの線を消す */
  border-top: 3px dotted #726797; /* 上枠として点線を描く */
  margin: 20px 0;
}
.pecsStep dd a {
  color: #726797;
  text-decoration: underline;
}
.pecsFlowBox .pecsStepImgBox {
  flex-shrink: 0; /* 幅が圧縮されないようにする */
  width: 390px;
  text-align: center;
}
/* 画像自体のサイズ調整 */
.pecsFlowBox .pecsStepImgBox img {
  height: auto;
  margin: auto;
}
.pecsBox ul {
  margin-top: 50px;
}
.pecsBox ul li {
  margin-bottom: 30px;
  align-items: center;
  display: flex;
  justify-content: center;
}
.pecsBox ul li .roundBtn {
  font-weight: normal;
}
.pecsBox ul li .roundBtn div {
  font-size: 2.6rem;
}
.pecsBox ul li .roundBtn div strong {
  font-weight: 500;
}
.pecsBox ul li .roundBtn span {
  font-size: 2rem;
}
.pecsBox ul li .roundBtn span:last-of-type {
  font-size: 2.2rem;
}
.pecsFlowBox {
  display: flex;
  flex-direction: row !important;
  align-items: center;
  gap: 40px;
  margin: 50px 0;
}
/* 親コンテナの設定 */
.entryStepBox, .application {
  display: flex;
  align-items: center; /* 上揃えで固定 */
  gap: 75px; /* テキストと画像の間の余白 */
  width: 100%;
}
/* 1. テキストエリア: 残りの幅をすべて使う */
.entryStep, .application {
  flex: 1; /* 余白をすべて埋める */
  min-width: 0; /* 折り返しを有効にするための必須設定 */
  margin: 0;
}
/* 2. 画像エリア: 最大243pxで固定 */
.entryStepImgBox, .applicationImgBox {
  flex: 0 0 384px;
  max-width: 384px;
  align-self: center;
}
/* 画像自体の制御 */
.entryStepImgBox img {
  display: block;
  margin: auto;
  text-align: center;
}
/* カウンターのリセット */
.course-container {
  counter-reset: pecs-counter;
}
/* h2のスタイル定義 */
.entryStep dt h2 {
  display: inline-flex;
  align-items: center;
  margin: 0;
  font-size: inherit;
  color: #2cb5a9 !important;
  gap: 10px;
  margin-bottom: 0px !important;
}
/* 丸数字のデザイン */
.entryStep h2::before {
  counter-increment: pecs-counter; /* ここで確実に増やす */
  content: counter(pecs-counter);
  /* 以下、デザイン設定 */
  display: flex;
  justify-content: center;
  align-items: center;
  width: 75px;
  height: 75px;
  background-color: #2cb5a9;
  color: #fff;
  border-radius: 50%;
  font-size: 2.8rem;
  font-family: "Outfit", sans-serif;
  font-weight: bold;
  flex-shrink: 0;
  margin-right: 20px; /* 余白をgap以外の方法で確実に確保する場合 */
}
.entryStep dt h2 div {
  padding-left: 0.25em;
}
/* サブタイトルのスタイル */
.entryStep dt h2 span {
  margin: 0px;
  padding: 0px !important;
  font-size: 2rem;
  font-weight: normal;
}
.application dt h3 {
  color: #726797;
  margin-bottom: 1em;
}
.entryStep dt, .application dt {
  margin-bottom: 0.5em;
}
.entryStep dd {
  display: flex;
  flex-direction: row;
  gap: 50px;
  padding-left: 120px;
}
.applicationList {
  display: flex;
  flex-direction: column;
}
.applicationList li {
  margin: 20px auto;
  font-size: 2rem;
}
.applicationList li a.roundBtn {
  width: fit-content !important;
}
.targetAttBox {
  width: 80%;
  text-align: center;
  margin: 140px auto;
}
.targetAtt {
  background-color: #10796d;
  color: #fff;
  padding: 40px;
  border-radius: 80px;
  font-size: 2.8rem;
}
.targetAttBox p {
  color: #fff;
  margin: 50px auto 70px;
}
.targetIndex {
  counter-reset: reason-num;
  padding: 0;
  margin: 0;
}
/* 1. 親要素でカウンターをリセット */
.targetIndex {
  counter-reset: reason-num;
  padding: 0;
  margin: 0;
}
.targetIndex li {
  position: relative;
  list-style: none;
  margin-bottom: 30px;
  min-height: 90px;
  display: flex;
  align-items: center;
  border-radius: 99px;
  padding: 15px 15px 15px 90px;
  font-size: 2.4rem;
  background-color: #fff;
  color: #2cb5a9;
}
/* 2. 背景の丸とカウントアップ */
.targetIndex li::before {
  counter-increment: reason-num; /* ここで数字を1増やす */
  content: ""; /* 背景用なので空文字 */
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 50px;
  height: 50px;
  background-color: #2cb5a9;
  border-radius: 50%;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 5px;
  box-sizing: border-box;
  font-size: 1.4rem;
  color: inherit;
  z-index: 1;
}
/* 3. 数字の表示 */
.targetIndex li::after {
  content: counter(reason-num); /* 増えた数字を表示 */
  position: absolute;
  left: 15px;
  top: 50%; /* 少し位置を調整：丸の中央に合わせる */
  transform: translateY(-50%);
  width: 50px;
  text-align: center;
  font-size: 2.4rem;
  font-family: "Outfit", sans-serif;
  line-height: 1;
  z-index: 2;
  color: #fff;
}
/* 親要素でカウンターをリセット */
.target-container {
  counter-reset: target-h3-counter;
}
/* h3 本体の設定 */
.targetBox h3 {
  display: flex;
  align-items: center;
  gap: 30px;
  color: #2cb5a9;
  margin-bottom: 50px;
  font-weight: normal;
  margin-left: 1em;
}
/* h3 の前に数字を表示 */
.targetBox h3::before {
  counter-increment: target-h3-counter; /* カウントアップ */
  content: counter(target-h3-counter); /* 数字を表示 */
  /* 丸数字のデザイン */
  display: flex;
  justify-content: center;
  align-items: center;
  width: 60px;
  height: 60px;
  background-color: #2cb5a9;
  color: #fff;
  border-radius: 50%;
  font-size: 2.8rem;
  font-family: "Outfit", sans-serif;
  flex-shrink: 0;
}
.targetBox h3 div {
  display: flex;
  flex-direction: column;
}
.targetBox h3 div span {
  font-size: 1.6rem !important;
  margin-top: 0.5em;
}
.targetBox ul {
  list-style: none; /* デフォルトの点を消す */
  padding: 0;
  margin: 20px 0;
}
.targetBox li {
  position: relative;
  padding-left: 1.5em;
  line-height: 1.6;
  margin-bottom: 10px;
}
.targetBox li::before {
  content: "\f111";
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
  margin-top: 0.5em;
  margin-right: 0.5em;
  color: #2cb5a9;
}
.page-distribution main .latestlist dl, .page-distribution main .recommended dl, .page-distribution main .notice dl, .page-topicslist main .topicslist dl {
  background-color: #fff;
  border-radius: 99px;
  padding: 1em 2em;
  margin-bottom: 20px;
  font-size: 2rem;
}
.single-latest .prfile, .single-recommended .prfile {
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  margin: 80px auto;
}
.single-latest .prfile dt, .single-recommended .prfile dt {
  font-size: 2.6rem;
  margin-right: 1em;
  margin-bottom: 0.5em;
  font-weight: 500;
  white-space: nowrap;
}
.single-latest .prfile dd, .single-recommended .prfile dd {
  font-size: 1.8rem;
}
.single-latest .maintextBox, .single-recommended .maintextBox, .single-schedule .maintextBox {
  margin-bottom: 90px;
}
.single-recommended p.teacherphoto img {
  min-width: 170px;
  height: auto;
}
.single-schedule .maintextBox li::before {
  content: "\f111";
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
  margin-top: 0.5em;
  margin-right: 0.5em;
  color: #ff7bac;
}
.page-terms main ol, .page-terms main ol li {
  color: #fff !important;
}
.page-terms main ol {
  padding-left: 2em;
  margin: 0;
  list-style-type: decimal;
  list-style-position: outside;
  line-height: inherit;
}
.page-terms main ol ol {
  list-style-type: none;
  padding-left: 0;
}
.page-terms main ol ol li::before {
  content: "("counter(list-item, lower-roman) ") ";
  margin-right: 5px;
}
.page-terms main .container p, .page-privacy main .container p {
  margin-bottom: 50px;
}
.page-terms main .container .termsTxt p {
  margin-bottom: 0 !important;
}
.terms-supplement {
  margin-top: 60px;
  padding-top: 20px;
  border-top: 1px solid #ccc;
  text-align: right;
}
.page-terms main ol li {
  color: #fff !important;
}
@media (max-width: 1024px) {
  .whatBest h2, .whatRule h2, .howget h2, .howtoUnit h2, .settingStep h2 {
    font-size: 2.6rem;
  }
  .baseWhiteRound {
    margin: 100px auto;
    width: 100%;
    border-radius: 70px;
    min-height: inherit;
    min-width: inherit;
    padding: 3em 1.5em;
  }
  .baseGreenRound {
    margin: 100px auto;
    width: 100%;
    border-radius: 70px;
    min-height: inherit;
    min-width: inherit;
    padding: 3em 1.5em;
  }
  .whatFlex, .colorBox, .buttonWrapper, .settingStep .cardBody, .howtomerit {
    flex-direction: column;
  }
  .settingStep .cardBody {
    margin: 20px 10px;
  }
  .whatFlex img {
    margin: auto;
  }
  .image-wrapper.spOnly, .whatRule .greenBox, .whatRule .orangeBox, .whatRule .greenBox .colorBox, .whatRule .greenBox .colorBox > div, .whatBest .textBox {
    position: relative;
    width: 100%;
    margin: auto;
    min-height: inherit;
    min-width: inherit;
    top: auto;
    left: auto;
    bottom: auto;
    right: auto;
  }
  .whatRule .orangeBox, .whatRule .greenBox {
    padding: 0;
  }
  .whatRule .orangeBox, .whatRule .greenBox {
    padding: 3em 1em;
  }
  .whatRule > .greenBox {
    border-radius: 60px;
  }
  .whatRule .greenBox .orangeBox .entryTit, .whatRule .greenBox .blueGreenBox .entryTit {
    border-radius: 60px 60px 0 0;
  }
  .whatRule .orangeBox dl, .whatRule .blueGreenBox dl {
    border-radius: 0 0 60px 60px;
  }
  .howtomerit dl {
    border-radius: 60px;
  }
  .whatRule .greenBox .colorBox > div {
    padding: 0;
  }
  .whatRule .greenBox .orangeBox .pace, .whatRule .greenBox .blueGreenBox .pace {
    margin: 1em;
    padding: 1.5em;
  }
  .whatBest .textBox {
    padding-right: 0;
  }
  .settingStep .headerWrapper {
    flex-direction: column;
    margin: 0;
  }
  .howtoUnitMethod .card span {
    top: -10px;
  }
  .settingStep .headerWrapper .stepBadge {
    position: relative;
    margin: auto;
    left: inherit;
    top: inherit;
  }
  .settingStep .headerWrapper .cardTitle {
    margin: 0;
  }
  .settingStep .stepCard {
    position: relative;
    background-color: #eef5dc;
    padding: 1em;
    border-radius: 60px;
    margin-top: 100px;
    margin-left: 0;
  }
  .settingStep .headerWrapper .cardTitle {
    font-size: 2.4rem;
  }
  .settingStep .bottomWrapper {
    position: relative; /* absoluteを解除して流れに戻す */
    bottom: auto; /* 位置固定をリセット */
    left: auto;
    margin: 40px 0 0 0; /* 全体の余白調整 */
    display: flex;
    flex-direction: column; /* 縦並びに変更 */
    align-items: center; /* 中央揃え */
    width: 100%;
  }
  .settingStep .bottomWrapper .stepBadge {
    position: relative; /* absoluteを解除 */
    left: auto; /* はみ出しをリセット */
    bottom: auto; /* 位置調整をリセット */
    margin-bottom: -20px; /* テキストボックスと少し重ねる演出 */
    font-size: 1.5rem; /* 文字サイズをスマホ向けに少し縮小 */
    padding: 10px 40px;
    text-align: center;
    width: fit-content; /* 幅を中身に合わせる */
  }
  .settingStep .bottomWrapper .bottomText {
    margin: 0; /* 左側のマージンをリセット */
    width: 100%; /* 横幅いっぱいにする */
    padding: 3em 2em; /* 内側の余白をスマホ用に調整 */
    border-radius: 40px; /* 角丸を少し緩やかに */
    text-align: center; /* 文字を中央揃えに（お好みで） */
  }
  /* 1. 横並びを縦並びに変更 */
  .howtoUnitMethod .cardsWrapper {
    flex-direction: column;
    align-items: center;
    position: relative;
    gap: 40px; /* カード同士の上下間隔を広げる */
  }
  /* 2. PC用の長い横線を消す */
  .howtoUnitMethod .cardsWrapper::before {
    display: none;
  }
  /* 3. 各カードの上の短い縦線を「前のカードと繋がる長い線」に変更 */
  .howtoUnitMethod .card::before {
    top: -40px; /* gapと同じ分だけ上に伸ばす */
    height: 40px; /* 線を長くする */
    left: 50%;
    z-index: 0;
  }
  /* 4. 最初のカードの上の線だけ消す（メインタイトルからの線と重複しないように） */
  /* もしメインタイトルからの線が届かない場合は、ここを表示したまま調整します */
  .howtoUnitMethod .card:first-child::before {
    display: none;
  }
  /* 5. カードの幅を調整 */
  .howtoUnitMethod .card {
    width: 100%;
    max-width: 500px; /* 広がりすぎないよう制限 */
  }
  /* 6. アイコン（span）の位置調整 */
  .howtoUnitMethod .card span {
    left: 20px; /* 左端に寄せる場合は調整 */
  }
  .planBox.baseGreenRound .plan1 {
    padding: 30px 20px;
  }
  .plancommon dl {
    width: 100%;
  }
  .plancommon dl > div {
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
  .plan1 {
    flex-direction: column; /* 縦並びに変更 */
    text-align: center;
  }
  .plan-content-left {
    flex-direction: column; /* スマホでは数字も縦に */
    align-items: center;
  }
  .aboutsmart {
    flex-direction: column;
  }
}
/* ================================
   PC・タブレット以上
================================ */
@media (min-width: 768px) {
  #sp_fmenu {
    display: none;
  }
  header {
    padding: 2rem 3rem 0;
  }
  #under header::after {
    height: 87px;
    background-repeat: no-repeat;
    background-size: 102% auto;
  }
  .header-inner {
    padding: 30px 8%;
  }
  .side-menu {
    right: -550px;
    width: 550px;
    padding: 120px 70px;
  }
  .color-dots {
    bottom: calc(var(--wave-height) - 150px);
  }
  .color-dots li, .center-color-dots li, .color-dots li {
    width: 20px;
    height: 20px;
    border-radius: 50%;
  }
  .main-wave-bg {
    background-repeat: no-repeat;
    background-size: 102% auto;
  }
  .menu-btn {
    width: 80px;
    height: 80px;
    right: 50px;
  }
  .footer-inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    text-align: left;
    gap: 0;
  }
  .takegoodcare {
    flex: 1;
    text-align: left;
    order: 1;
  }
  .footer-inner .takegoodcare img {
    width: min(19.5vw, 210px);
    margin: 0px;
  }
  .takegoodcare p {
    font-size: min(1vw, 12px);
  }
  .footer-inner > .logo {
    text-align: center;
    order: 2;
    width: min(33vw, 355px);
  }
  .footer-inner .other {
    flex: 1;
    text-align: right;
    align-self: flex-start;
    margin-top: 20px;
    order: 3;
    position: relative;
  }
  .footer-inner .other ul {
    position: absolute;
    right: 0.5%;
    text-align: center;
  }
  #gotop {
    display: block;
    position: absolute;
    width: 100%;
    right: 70px;
    top: 0;
    z-index: 5;
  }
  #gotop img {
    max-width: 70px;
  }
  #gotop a {
    position: absolute;
    display: block;
    right: 50px;
    bottom: -50px;
    background-color: rgba(166, 206, 77, 0.9);
    z-index: 10;
    padding: 10px;
  }
  #gotop a:hover {
    background-color: rgba(229, 240, 203, 1.0);
  }
  .zebraTable tbody tr {
    display: table-row;
  }
  .zebraTable th, .zebraTable td {
    display: table-cell;
  }
  /* 初期状態（白） */
  .zebraTable th, .zebraTable td, .zebraTable th:nth-child(3), .zebraTable td:nth-child(3) {
    background-color: #fff;
  }
  /* 偶数行 */
  .zebraTable tr:nth-child(even) th, .zebraTable tr:nth-child(even) td {
    background-color: #eef5dc;
  }
  /* 偶数列 */
  .zebraTable th:nth-child(even), .zebraTable td:nth-child(even) {
    background-color: #eef5dc;
  }
  /* 偶数行 × 偶数列（交差部分を濃く） */
  .zebraTable tr:nth-child(even) th:nth-child(even), .zebraTable tr:nth-child(even) td:nth-child(even) {
    background-color: #ddebba;
  }
}
.section {
  padding: 150px 20px 200px;
  text-align: center;
  position: relative;
}
.sectionMin {
  position: relative !important;
  overflow: visible !important;
  padding-top: 100px; /* 波の高さ分、中身を下に下げる */
  padding-bottom: 200px;
}
.sectionWave {
  padding: 70px 20px 120px;
}
main .wallpaper .sectionWave:not(:last-of-type) {
  padding: 0px 20px 120px;
}
.page-distribution main .wallpaper .container + .sectionWave {
  padding-top: 0 !important;
  padding-bottom: 180px;
}
/* 波の共通設定 */
.spacer {
  display: block;
  position: relative; /* absoluteから変更：これで上の要素に被らなくなります */
  width: 100%;
  height: 100px;
  margin-top: -100px; /* ★波の高さ分だけ自分を上に引き上げる（背景色だけ繋げる） */
  z-index: 10;
  background-repeat: no-repeat;
  background-size: 100.5% 100px;
  background-position: center bottom;
}
.sectionlayout {
  display: flex;
  justify-content: space-around;
  flex-direction: column;
}
h2 .title {
  padding-left: 20px;
}
h2 .eng {
  font-size: 1.2rem;
  font-weight: normal;
  display: block;
  letter-spacing: 2px;
  text-align: left;
  margin-top: 15px;
  margin-bottom: 5px;
  padding-left: 20px;
}
.contBox.news .titBox, .contBox.latest .titBox, .contBox.reco .titBox {
  align-self: center;
}
.contBox.news .titBox a {
  text-align: left;
  color: #8fc31f;
  margin-left: 1em;
}
.contBox.news .titBox a::before {
  content: "\f054\f054\f054";
  font-family: "Font Awesome 7 Pro";
  font-weight: 200;
  font-size: 0.8em;
  margin-right: 0.5em;
}
.contBox.latest .titBox a {
  text-align: left;
  color: #10796d;
  margin-left: 1em;
}
.contBox.latest .titBox a::before {
  content: "\f054\f054\f054";
  font-family: "Font Awesome 7 Pro";
  font-weight: 200;
  font-size: 0.8em;
  margin-right: 0.5em;
}
/*topics*/
.contBox {
  display: flex;
  margin-top: 40px;
}
.contBox.news {
  justify-content: center;
}
.contBox h2 {
  color: #888;
  text-align: left;
  font-size: 2.6rem;
  margin-bottom: 25px;
}
.contBox h2::after {
  content: "";
  display: inline-block;
  background: url("../images/mark_color.svg") no-repeat;
  width: 225px;
  height: 52px;
}
.contBox .white h2 {
  color: #fff;
}
.contBox .white h2::after {
  content: "";
  display: inline-block;
  background: url("../images/mark.svg") no-repeat;
  width: 225px;
  height: 52px;
}
.contBox .bluegreenTit h2 {
  color: #10796d;
  text-align: left;
}
.contBox .bluegreenTit h2::after {
  content: "";
  display: inline-block;
  background: url("../images/mark_color.svg") no-repeat;
  width: 225px;
  height: 52px;
}
.contBox .greenTit h2 {
  color: #66872d;
  text-align: left;
}
.contBox .greenTit h2::after {
  content: "";
  display: inline-block;
  background: url("../images/mark_color.svg") no-repeat;
  width: 225px;
  height: 52px;
}
/* トピックスリスト全体を縦並び */
/* 親コンテナ */
.page-topicslist .topicslist a, .page-topicslist .reasonlist a {
  display: flex;
  flex-direction: column; /* dlを縦に並べる */
  margin: 0;
  padding: 0;
}
.page-topicslist .topicslist a dl:hover {
  background-color: rgba(255, 255, 255, .7);
}
/* dl全体のスタイル */
.page-topicslist .topicslist dl {
  margin: 0;
  color: #888;
  display: flex;
  align-items: flex-start;
}
/* リンクエリアを横並びの親にする */
.page-topicslist .topicslist dl .topics-link {
  display: flex;
  align-items: flex-start; /* 上揃えを維持 */
  flex-direction: row;
  color: #888;
  text-decoration: none !important;
  padding: 10px 0;
  transition: color 0.3s;
}
/* ホバー時に色を変え、タイトル（dd）に下線をつける */
.page-topicslist .topicslist dl .topics-link:hover {
  color: #a9ce52;
}
.page-topicslist .topicslist dl .topics-link:hover dd {
  text-decoration: underline;
}
/* 日付とカテゴリ（dt） */
.page-topicslist .topicslist dl dt {
  display: flex;
  align-items: center;
  width: 11em;
  flex-shrink: 0;
  min-height: 1em;
  font-weight: normal;
  gap: 0.5em;
}
/* アイコン（日付の前の点）※重複防止のためspan.dateに限定 */
.page-topicslist .topicslist dl dt span.date {
  display: flex;
  align-items: center;
}
.page-topicslist .topicslist dl dt span.date::before {
  content: "\f111";
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
  margin-right: 0.5em;
  color: #a9ce52;
  flex-shrink: 0;
  font-size: 2rem;
}
/* カテゴリタグ */
.page-topicslist .topicslist dl dt .cat {
  display: inline-block;
  min-width: 50px;
  text-align: center;
  font-size: 1.6rem;
  padding: 2px 6px;
  border-radius: 4px;
}
.page-topicslist .topicslist dl dt .cat.important {
  color: #eda02f;
}
.page-topicslist .topicslist dl dt .cat.new {
  color: #a9ce52;
}
/* タイトル部分（dd） */
.page-topicslist .topicslist dl dd {
  margin: 0;
  flex-grow: 1; /* 残りの幅を埋める */
}
/* MORE部分のアイコン */
#news .more::before, .page-topicslist .more::before {
  content: "\f054\f054\f054";
  font-family: "Font Awesome 7 Pro";
  font-weight: 200;
  font-size: 0.8em;
  padding-right: 0.25em;
}
/* Barlow Condensedを適用したMOREテキスト */
.page-topicslist .topicslist dl dd span.more {
  color: #a9ce52;
  padding-left: 1em;
  text-decoration: none !important;
  font-size: 0.8em;
  font-family: 'Barlow Condensed', 'Noto Sans JP', sans-serif;
  display: inline-block;
}
/* 重要（Important）カラーのオーバーライド */
.page-topicslist .topicslist dl.is-important dt span.date::before, .page-topicslist .topicslist dl.is-important dd span.more {
  color: #eda02f !important;
}
.page-topicslist .topicslist dl.is-important .topics-link:hover {
  color: #eda02f;
}
/* リンクエリアを横並びの親にする */
#news .topicslist dl .topics-link {
  display: flex;
  flex-direction: row; /* 横並び */
  align-items: center; /* 垂直方向の中央揃え */
  color: #888;
  text-decoration: none !important;
  transition: color 0.3s;
  width: 100%;
  gap: 17px;
}
/* dt (カテゴリ・日付・ドット) */
#news .topicslist dl dt {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin: 0;
  font-weight: normal;
}
/* dd (タイトル・MORE) */
#news .topicslist dl dd {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start; /* 左揃えに変更 */
  flex-grow: 1;
  margin: 0;
}
/* タイトルテキスト */
#news .topicslist dl dd .title-text {
  /* 改行させたくない場合は以下を有効に */
  /* white-space: nowrap; */
}
/* MORE部分（左揃えでタイトルの後に続く） */
#news .topicslist dl dd span.more {
  color: #a9ce52;
  padding-left: 1em; /* タイトルとの間隔 */
  font-size: 0.8em;
  font-family: 'Barlow Condensed', 'Noto Sans JP', sans-serif;
  font-weight: 500;
  text-decoration: none !important;
  white-space: nowrap;
  padding-top: 0.5em;
}
/* ホバー設定 */
#news .topicslist dl .topics-link:hover {
  color: #a9ce52;
}
#news .topicslist dl .topics-link:hover dd {
  text-decoration: underline; /* タイトル部分に下線 */
}
/* ドットのスタイル（日付の span.date に対して） */
#news .topicslist dl dt span.date {
  display: flex;
  align-items: center;
}
#news .topicslist dl dt span.date::before {
  content: "\f111";
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
  margin-right: 5px;
  color: #a9ce52;
}
/* 重要記事（is-important）のカラー */
#news .topicslist dl.is-important dt span.date::before, #news .topicslist dl.is-important dd span.more {
  color: #eda02f !important;
}
#news .topicslist dl.is-important .topics-link:hover {
  color: #eda02f;
}
#news .topicslist dl dt .cat {
  display: inline-block;
  text-align: center;
  font-size: 1.4rem;
  padding-right: 8px;
  border-radius: 4px;
    min-width: 3em;
}
#news .topicslist dl dt .cat.new {
  color: #a9ce52;
}
#news .topicslist dl dt .cat.important, .single-post .cat.important {
  color: #eda02f;
}
.streamlist {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
}
.streamlist dl, .streamlist a dl {
  display: flex;
  align-items: flex-start;
  flex-direction: row;
  color: #10796d;
}
#under .streamlist a:hover dl {
  background-color: rgba(255, 255, 255, .7);
  text-decoration: underline;
}
.streamlist dl dt {
  display: flex;
  align-items: center;
  gap: 0.5em;
  margin-right: 1em;
  flex-shrink: 0;
  font-weight: normal;
}
.streamlist dl dt::before {
  content: "●";
}
.streamlist dl dd {
  margin-bottom: 0;
}
.streamlist dl dd span.more {
  padding-left: 1em;
  font-size: 0.8em;
  font-family: 'Barlow Condensed', 'Noto Sans JP', sans-serif;
  font-weight: 500;
  text-decoration: none !important;
  white-space: nowrap;
  color: #2cb5a9;
}
.streamlist dl dd span.more::before {
  content: "\f054\f054\f054";
  font-family: "Font Awesome 6 Free", "Font Awesome 7 Pro";
  font-weight: 200;
  margin-right: 0.25em;
}
/* おすすめ講座 */
.recommended dl, .recommended a dl {
  color: #66872d;
}
#under .recommended a:hover dl {
  background-color: rgba(255, 255, 255, .7);
}
.recommended dl dt::before {
  color: #a9ce52;
}
.recommended dl dd span.more {
  color: #a9ce52;
  padding-left: 1em;
  font-size: 0.8em;
  font-family: 'Barlow Condensed', 'Noto Sans JP', sans-serif;
  font-weight: 500;
  text-decoration: none !important;
  white-space: nowrap;
}
/* 配信予定 */
.notice dl, .notice a dl {
  color: #c8537a;
}
.notice a:hover {
  text-decoration: none !important;
}
#under .notice a:hover dl {
  background-color: rgba(255, 255, 255, .7);
}
.notice dt::before {
  color: #ff7bac;
}
.notice dd span.more {
  color: #ff7bac !important;
}
.titBox {
  width: 24.68%;
  min-width: 225px;
  display: flex;
  flex-direction: column;
}
#about .aboutBox {
  padding: 0px;
  display: flex;
  color: #66872d;
  align-items: center;
  justify-content: space-between;
}
#about .aboutBox h2 {
  font-size: 3.3rem;
  text-align: left;
  letter-spacing: 2.5px;
  line-height: 2;
  padding-bottom: 6px;
}
#about .aboutBox h2 span {
  width: 100%;
  padding-bottom: 6px;
  /*  background-image: linear-gradient(to right, #aacf52 50%, transparent 50%);
  background-size: 8px 3px;
  background-repeat: repeat-x;
  background-position: left bottom;*/
  border-bottom: dotted #aacf52 4px;
}
#about .aboutBox .aboutTxt {
  text-align: left;
  width: 47%;
}
#about .aboutBox p {
  color: #66872d;
  text-align: left;
  margin: 35px 0;
}
#about .aboutBox .aboutTxt a {
  margin-bottom: 30px;
}
.aboutImgArea {
  position: relative; /* 必要に応じて調整 */
  width: 100%;
  width: 40%;
  margin-left: 10%;
}
.aboutImgArea ul {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  /* 横の隙間はgapで、縦の重なりはmarginで制御するため0に */
  column-gap: 20px;
  row-gap: 0;
}
.aboutImgArea li {
  width: calc(50% - 10px); /* 2カラム計算 */
  background-color: #fff;
  color: #8fc31f;
  border: 2px solid #eef5dc;
  border-radius: 80px;
  padding: 35px 20px;
  box-sizing: border-box;
  text-align: center;
  font-weight: bold;
  position: relative;
  font-weight: normal;
}
/* --- 2行目（3, 4番目）の設定 --- */
.aboutImgArea li:nth-child(3), .aboutImgArea li:nth-child(4) {
  transform: translateX(-100px);
  margin-top: -20px;
  z-index: 2;
}
/* --- 3行目（5, 6番目）の設定 --- */
.aboutImgArea li:nth-child(5), .aboutImgArea li:nth-child(6) {
  margin-top: -20px;
  z-index: 3;
}
#reason p {
  color: #fff;
}
.reasonTxt, .planTxt {
  max-width: 900px;
}
.reasonTxt h3 {
  padding-bottom: 0.5em;
  margin-bottom: 1em;
  font-size: 3.2rem;
  letter-spacing: 2.5px;
}
.planTxt h3 {
  padding-bottom: 0.5em;
  margin-bottom: 1em;
  font-size: 3.2rem;
  letter-spacing: 2.5px;
}
.reasonTxt h3 span, .planTxt h3 span {
  border-bottom: dotted 4px #dde6bf;
  padding-bottom: 6px;
  line-height: 2.3;
}
.reasonStep {
  list-style: none;
  padding: 0;
  margin: 40px 0;
  counter-reset: reason-num; /* 数字をリセット */
}
.reasonStep li {
  position: relative;
  list-style: none;
  margin-bottom: 20px;
  min-height: 90px;
  display: flex;
  align-items: center;
  border-radius: 99px;
  padding: 20px 20px 20px 110px;
  font-size: 2.6rem;
  letter-spacing: 1.5px;
}
.reasonStep li::before {
  counter-increment: reason-num;
  content: "理由"; /* 「理由」だけを入れる */
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 70px;
  height: 70px;
  background-color: #fff;
  border-radius: 50%;
  /* 「理由」の文字スタイル */
  display: flex;
  align-items: flex-start; /* 上側に寄せる */
  justify-content: center;
  padding-top: 2.5px; /* 上からの位置を調整 */
  box-sizing: border-box;
  font-size: 1.4rem; /* 理由は小さく */
  color: inherit; /* liで設定した文字色を引き継ぐ */
  z-index: 1;
}
/* --- 2. 大きな「数字」だけをその上に重ねる --- */
.reasonStep li::after {
  content: counter(reason-num); /* 数字だけを入れる */
  position: absolute;
  left: 20px;
  top: 60%; /* 丸の少し下側に配置して「理由」と分ける */
  transform: translateY(-50%);
  width: 70px;
  /* 数字のスタイル */
  text-align: center;
  font-size: 2.6rem; /* 数字をガツンと大きく */
  font-family: "Outfit", sans-serif; /* 欧文フォントで見栄え良く */
  line-height: 1;
  color: inherit; /* liで設定した文字色を引き継ぐ */
  z-index: 2;
}
.reasonStep li:first-of-type {
  background-color: #d4e6a8;
  color: #66872d;
}
.reasonStep li:first-of-type::before {
  background-color: #66872d;
}
.reasonStep li:first-of-type::before, .reasonStep li:first-of-type::after {
  color: #cce094;
}
.reasonStep li:nth-of-type(2) {
  background-color: #d6d5fa;
  color: #726797;
}
.reasonStep li:nth-of-type(2)::before {
  background-color: #726797;
}
.reasonStep li:nth-of-type(2)::before, .reasonStep li:nth-of-type(2)::after {
  color: #d6d5fa;
}
.reasonStep li:nth-of-type(3) {
  background-color: #95dad4;
  color: #10796d;
}
.reasonStep li:nth-of-type(3)::before {
  background-color: #10796d;
}
.reasonStep li:nth-of-type(3)::before, .reasonStep li:nth-of-type(3)::after {
  color: #95dad4;
}
.reasonStep li:nth-of-type(4) {
  background-color: #ea6da4;
}
.reasonStep li:nth-of-type(4)::before {
  background-color: #ffd1f0;
}
.reasonStep li:nth-of-type(4)::before, .reasonStep li:nth-of-type(4)::after {
  color: #ea6da4;
}
.reasonStep li:nth-of-type(5) {
  background-color: #6bc8ff;
}
.reasonStep li:nth-of-type(5)::before {
  background-color: #dcf0ff;
}
.reasonStep li:nth-of-type(5)::before, .reasonStep li:nth-of-type(5)::after {
  color: #6bc8ff;
}
.reasonStep li:nth-of-type(6) {
  background-color: #eda02f;
}
.reasonStep li:nth-of-type(6)::before {
  background-color: #fbecd5;
}
.reasonStep li:nth-of-type(6)::before, .reasonStep li:nth-of-type(6)::after {
  color: #eda02f;
}
.planTxt {
  position: relative;
  padding-bottom: 60px;
}
.planTxt p {
  color: #fff;
}
.planTxt h4 {
  padding-top: 20px;
}
.plan1 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 35px;
  margin-bottom: 30px;
  background: #fff;
  padding: 60px 80px;
  border-radius: 80px;
  position: relative;
  z-index: 1;
}
.plan1Img {
  min-width: 234px;
}
/* 75pxの濃い緑の円 */
.planNum {
  flex: 0 0 75px;
  width: 75px;
  height: 75px;
  /* 色と形 */
  background-color: #87ad1e;
  border-radius: 50%;
  /* 中の数字をど真ん中に配置 */
  display: flex;
  justify-content: center;
  align-items: center;
  /* 数字のスタイル */
  color: #fff;
  line-height: 1;
  font-size: 2.4rem;
  font-family: "Outfit", sans-serif;
  font-weight: 800;
}
/* テキストエリアの調整 */
.plan1 h4 {
  margin: 0 0 10px 0;
  font-size: 2.2rem;
  color: #87ad1e;
}
.plan1 p {
  margin-bottom: 8px;
  font-size: 1.6rem;
  line-height: 1.6;
  color: #87ad1e;
}
.price {
  font-size: 2.4rem !important;
  margin-bottom: 0.5em !important;
}
.price span {
  font-size: 1.4rem;
}
.priceinfo {
  color: #888 !important;
}
.campaignBom {
  position: absolute;
  left: -220px;
  bottom: -50px;
  width: 276px;
}
/* 親コンテナ：全体を横並びにして中央揃え */
.planother {
  position: absolute;
  left: 40px;
  bottom: -30px;
  display: flex;
  align-items: flex-end;
  z-index: 20;
}
/* 1つ目のul：2つの円形liを包む土台 */
.planother ul:first-child {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
  width: 440px;
  height: 180px; /* 2つのliが重なって見えるのに必要な高さ */
  z-index: 1;
  display: flex;
  flex-direction: column;
}
/* 1つ目のulの中のli共通：大きな丸 */
.planother ul:first-child li {
  position: absolute;
  left: 50%; /* 一旦親の50%の位置へ */
  transform: translateX(-50%); /* 自分の幅の半分戻して中央揃え */
  /* widthは各liで個別に指定するのでここでは削除またはautoに */
  border-radius: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}
/* 1番目のli：黄緑（上側・背面） */
.planother ul:first-child li:first-child {
  background-color: #8cb437;
  padding: 57px 70px;
  top: 0;
  z-index: 1;
  font-size: 1em;
  line-height: 2;
}
.planother ul:first-child li:nth-child(2) {
  background-color: #6bc8ff;
  bottom: -70px; /* 下に配置 */
  z-index: 2; /* 上のliに被せる */
}
.planother ul:first-child li:nth-child(2) .btnlightBlue {
  width: 100%;
  font-size: 1.8rem;
}
.planother ul:first-child li {
  text-align: center !important;
}
/* 2つ目のul：さらに詳しく（右側に配置） */
.planother ul:last-child {
  position: relative;
  margin-left: 80px; /* ★土台の円に少し食い込ませて重ねる */
  list-style: none;
  z-index: 10; /* 最前面 */
}
.planother ul:last-child li .arrow-circle {
  background-color: #8fc31f;
}
/* テキスト共通設定 */
.planother ul li {
  line-height: 1.4;
  white-space: nowrap;
}
.planother ul:last-child li {
  color: #fff;
}
.planother ul:last-child .btnWhite {
  max-width: 390px;
  color: #8fc31f;
}
/* 親要素：flowBoxを並べるコンテナ */
.flowall {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 横に2等分 */
  gap: 60px 40px; /* 上下余白 左右余白 */
  counter-reset: flow-num;
  margin-top: 50px;
}
.flowBox {
  display: grid;
  grid-template-rows: subgrid; /* 親のグリッド行に合わせる（最新ブラウザ向け） */
  grid-row: span 3; /* 見出し・画像・説明文の3行分を確保 */
  gap: 20px;
  background-color: #fff;
  border-radius: 60px;
  padding: 50px;
}
.flowBox h3 {
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: 2.15rem;
  color: #2cb5a9;
  margin: 0;
}
/* 75pxの丸数字 */
.flowBox h3::before {
  counter-increment: flow-num;
  content: counter(flow-num);
  flex: 0 0 75px;
  width: 75px;
  height: 75px;
  background-color: #2cb5a9;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 2.6rem;
  font-family: "Outfit", sans-serif;
  font-weight: 800;
  color: #fff;
}
/* 画像：中央寄せ */
.flowBox img {
  width: 100%;
  max-width: 277px;
  height: auto;
  margin: auto;
  border-radius: 10px;
}
/* 説明文 */
.flowBox p {
  color: #888;
  margin: 0;
  text-align: center;
}
#home .qaBox dl {
  margin-bottom: 40px;
  max-width: 979px;
}
#under .qaBox {
  counter-reset: frequently-num;
}
#under .qaBox h2 {
  position: relative;
  margin: 50px 60px 25px 60px;
  text-align: left;
  padding-left: 100px;
  color: #66872d;
  line-height: inherit;
  font-size: 2.8rem;
}
#under .qaBox h2::before {
  counter-increment: frequently-num;
  content: "";
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 60px;
  height: 60px;
  background-color: #66872d;
  border-radius: 50%;
}
#under .qaBox h2::after {
  content: counter(frequently-num);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 60px;
  text-align: center;
  font-size: 2.4rem;
  font-family: "Outfit", sans-serif;
  line-height: 1;
  color: #fff;
  z-index: 2;
}
.qaBox dl {
  margin-bottom: 40px; /* 各質問の間の余白 */
}
/* --- 質問 (dt) --- */
.qaBox dt {
  display: flex; /* 横並び */
  align-items: flex-start; /* 上揃え */
  background-color: #fff;
  border-radius: 100px 100px 0 0;
  padding: 60px 100px 30px;
  color: #66872d;
  font-size: 2.4rem;
  font-weight: normal;
}
.qaBox dt::before {
  content: "Q.";
  flex: 0 0 1.5em;
  font-size: 2rem;
  font-family: "Outfit", sans-serif;
  font-weight: normal;
  line-height: 1.8;
  margin-right: 0.5em;
}
/* --- 回答 (dd) --- */
.qaBox dd {
  display: flex; /* 横並び */
  align-items: flex-start; /* 上揃え */
  margin: 0; /* デフォルトの余白を消去 */
  background-color: #e1eec4;
  border-radius: 0 0 100px 100px;
  padding: 30px 100px 60px; /* 上下のパディングをバランス調整 */
  color: #66872d;
}
.qaBox dd::before {
  content: "A.";
  flex: 0 0 1.5em; /* A.の幅を固定してテキストの頭を揃える */
  font-size: 2rem;
  font-family: "Outfit", sans-serif;
  font-weight: 500;
  line-height: 1.8;
  margin-right: 0.5em;
}
.qaBox dd:has(a) {
  display: block;
}
.contactArea {
  justify-content: space-between;
}
.contactTxt {
  max-width: 70%;
  font-size: 1.8rem;
}
.contactTxt a {
  margin-top: 50px;
}
.button-container {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
  gap: 20px;
  padding: 20px;
  margin-top: 30px;
}
.button-container-bt {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  padding: 20px;
  margin-top: 30px;
}
.button-container-ct {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 30px;
  padding: 20px;
  margin-top: 30px;
}
.roundLabel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 35px 60px;
  text-decoration: none;
  border-radius: 50px;
  width: auto;
  gap: 15px;
  transition: all 0.3s;
  line-height: 1.5;
}
.greenLabel {
  background-color: #cce094;
  color: #66872d;
  line-height: 2;
  font-weight: 500;
}
.purpleLabel {
  background-color: #d6d5fa;
  color: #726797;
  line-height: 2;
  font-weight: 500;
}
.pinkLabel {
  color: #fff;
  background-color: #ea6da4;
}
.blueLabel {
  color: #fff;
  background-color: #6bc8ff;
}
.orangeLabel {
  color: #fff;
  background-color: #eda02f;
}
/*個人申し込み*/
.individualBox h3 {
  text-align: center;
}
.page-individual .textBox > p {
  color: #fff;
  text-align: center;
}
.individualBox .bg_palegreen h3, .individualBox .bg_palegreen p {
  color: #66872d !important;
}
.individualBox .bg_lightpurple h3, .individualBox .bg_lightpurple p {
  color: #726797 !important;
}
.individualBox .inner-box, .flow-item.inner-box {
  padding: 65px 45px;
}
.individualBox .bg_lightpurple ul {
  margin: 30px auto;
}
.individualBox .bg_lightpurple ul li {
  margin-bottom: 20px;
}
.individualBox .bg_lightpurple ul li a {
  width: 100%;
}
.individualFlow {
  display: flex;
  align-items: stretch;
  gap: 45px;
}
/* 共通：ボックスの基本スタイル */
.flow-item {
  flex: 1;
  padding: 15px;
  position: relative; /* ::afterによる矢印配置の基準 */
}
/* 共通：右矢印アイコン（受講開始以外） */
.flow-item:not(.start-item)::after {
  content: "\f356"; /* arrow-right */
  font-family: "Font Awesome 7 Sharp";
  font-weight: 900; /* solid */
  position: absolute;
  right: -55px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 8rem;
  color: #a75a1e;
  z-index: 5;
}
/* 受講開始専用 */
.start-item {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  writing-mode: vertical-rl;
  text-orientation: upright;
  border-radius: 50px;
  font-size: 2.8rem;
  letter-spacing: 5px;
}
/* リスト・アイコン設定 */
.flow-item ul {
  list-style: none;
  padding: 0;
  margin: 10px 0 0;
}
.flow-item ul li {
  background-color: #a75a1e;
  color: #fff;
  margin-bottom: 25px;
  position: relative;
  padding: 1em;
  border-radius: 50px;
  text-align: center;
}
/* 下矢印アイコン */
.flow-item ul li:not(:last-child)::after {
  content: "\f2ec";
  font-family: "Font Awesome 7 Pro";
  font-weight: 900;
  position: absolute;
  bottom: -30px;
  left: 50%;
  font-size: 1.5em;
  transform: translateX(-50%) rotate(180deg); /* ← 下向き */
  color: #fff;
  z-index: 3;
}
.individualFlow {
  counter-reset: reason-num;
  margin-top: 65px;
}
.flow-item.inner-box h3, .accountStep > h3 {
  position: relative;
  padding-left: 100px;
  min-height: 75px;
  display: flex;
  align-items: center;
}
.flow-item.inner-box h3::before {
  counter-increment: reason-num;
  content: "STEP";
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 75px;
  height: 75px;
  background-color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 13px;
  box-sizing: border-box;
  font-size: 1.4rem;
  color: #a75a1e;
  z-index: 1;
}
.flow-item.inner-box h3::after {
  content: counter(reason-num);
  position: absolute;
  left: 10px;
  top: 60%;
  transform: translateY(-50%);
  width: 75px;
  text-align: center;
  font-size: 2.6rem;
  font-family: "Outfit", sans-serif;
  line-height: 1;
  color: #a75a1e;
  z-index: 2;
  font-weight: 800;
}
.accountStep {
  counter-reset: step;
}
.accountStep h3 {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 50px;
  padding-left: 100px;
}
.accountStep h3::before {
  counter-increment: step;
  content: "STEP";
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 75px;
  height: 75px;
  background-color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 13px;
  box-sizing: border-box;
  font-size: 1.4rem;
  color: #a75a1e;
  z-index: 1;
}
.accountStep h3::after {
  content: counter(step);
  position: absolute;
  left: 10px;
  top: 60%;
  transform: translateY(-50%);
  width: 75px;
  text-align: center;
  font-size: 2.6rem;
  font-family: "Outfit", sans-serif;
  line-height: 1;
  color: #a75a1e;
  z-index: 2;
  font-weight: 800;
}
.accountStep > div:first-of-type {
  margin-top: 100px;
}
.accountStep > div:nth-of-type(2) {
  margin-top: 50px;
}
.accountStep > div > p {
  color: #fff;
  margin: 0px;
  padding-left: 3em;
}
/* カウンター初期化 */
.stepDetail {
  counter-reset: step-h4;
}
.accountStep .stepDetail {
  counter-reset: step-h4;
}
.stepDetail > .inner-box {
  margin-top: 50px;
}
.stepDetail > .inner-box:first-of-type {
  margin-top: 60px;
}
.individualStepBox {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}
.individualStepBox .stepImage {
  width: 270px;
  flex-shrink: 0; /* ←これ重要（縮まない） */
  margin-left: auto;
}
.individualStepBox img {
  width: 100%;
  height: auto;
  margin-top: 30px;
}
.individualStepBox p {
  font-size: 1.6rem;
}
.individualStepBox > div:first-of-type p {
  padding: 0.5em;
}
/* h4のレイアウト */
.individualStepBox h4 {
  position: relative;
  padding-left: 100px;
  min-height: 75px;
  display: flex;
  align-items: center;
  font-size: 2.2rem;
  color: #a75a1e;
}
/* ●丸 */
.individualStepBox h4::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 75px;
  height: 75px;
  background-color: #a75a1e;
  border-radius: 50%;
  z-index: 1;
}
/* 数字 */
.individualStepBox h4::after {
  counter-increment: step-h4;
  content: counter(step-h4);
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 75px;
  text-align: center;
  font-size: 2.6rem;
  font-family: "Outfit", sans-serif;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  z-index: 2;
}
/* 1:1レイアウト */
/*.individualStepBox > div, .individualStepBox .stepImage {
  flex: 1;
}*/
.individualStepBox > div p {
  margin-left: 1em;
}
.individualStepBox .stepImage img {
  width: 100%;
  height: auto;
  display: block;
}
.page-corporate .infoArea {
  padding: 70px 140px;
  color: #fff;
  text-align: center;
}
/*よくある質問*/
.q_list {
  list-style: none;
  padding: 0;
  counter-reset: frequently-num;
}
.q_list li {
  position: relative;
  list-style: none;
  margin-bottom: 30px;
  min-height: 90px;
  display: flex;
  align-items: center;
  border-radius: 50px;
  padding: 23px 15px 23px 100px;
  font-size: 2.4rem;
  font-weight: 500;
}
.q_list li::before {
  counter-increment: frequently-num;
  content: "";
  position: absolute;
  left: 28px;
  top: 50%;
  transform: translateY(-50%);
  width: 50px;
  height: 50px;
  background-color: #fff;
  border-radius: 50%;
}
/* --- 2. 大きな「数字」だけをその上に重ねる --- */
.q_list li::after {
  content: counter(frequently-num); /* 数字だけを入れる */
  position: absolute;
  left: 28px;
  top: 50%;
  transform: translateY(-50%);
  width: 50px;
  text-align: center;
  font-size: 2.4rem;
  font-family: "Outfit", sans-serif;
  line-height: 1;
  color: inherit;
  z-index: 2;
  font-weight: 800;
  font-weight: normal;
}
.q_list li {
  padding: 15px 15px 15px 100px;
  background-color: #fff;
  color: #66872d;
}
.q_list li::before {
  background-color: #66872d;
}
.q_list li::after {
  color: #fff;
}
.q_list li a {
  color: #66872d;
}
.contactForm input::placeholder, .contactForm textarea::placeholder {
  color: #dbdcdc;
}
.contactForm input::-webkit-input-placeholder, .contactForm textarea::-webkit-input-placeholder {
  color: #dbdcdc;
}
.contactForm input:-ms-input-placeholder, .contactForm textarea:-ms-input-placeholder {
  color: #dbdcdc;
}
.contactForm dt, .contactForm dd {
  font-weight: normal;
}
.contactForm dt {
  font-size: 2rem;
  padding-left: 1em;
  margin-bottom: 20px;
}
.contactForm dt .req {
  color: #f29600;
  margin-left: 1em;
}
.contactForm dt span.att {
  margin-left: 1em;
  font-size: 1.6rem;
}
.contactForm dd {
  margin-bottom: 30px;
}
.contactForm.confirm dd {
  background-color: #fff;
  padding: 1rem 2rem;
  width: 100%;
  color: #888;
  min-height: 56px;
}
.contactForm input[type="text"], .contactForm textarea {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  background-color: #fff;
  padding: 1rem 2rem;
  width: 100%;
  color: #888;
}
.contactForm .privacyBox {
  height: 150px;
  overflow-y: scroll;
  background-color: #fff;
  padding: 40px 80px;
}
.inqCate {
  display: grid;
  grid-template-columns: repeat(3, max-content); /* 3列 */
  column-gap: 60px;
  row-gap: 0px;
  margin-left: 0.5em;
}
.inqCate label {
  display: inline-flex;
  align-items: center;
}
.inqCate label:nth-child(1) {
  grid-column: 1;
  grid-row: 1;
}
.inqCate label:nth-child(2) {
  grid-column: 1;
  grid-row: 2;
}
.inqCate label:nth-child(3) {
  grid-column: 1;
  grid-row: 3;
}
/* 2列目 */
.inqCate label:nth-child(4) {
  grid-column: 2;
  grid-row: 1;
}
.inqCate label:nth-child(5) {
  grid-column: 2;
  grid-row: 2;
}
.inqCate label:nth-child(6) {
  grid-column: 2;
  grid-row: 3;
}
/* 3列目（1つだけ） */
.inqCate label:nth-child(7) {
  grid-column: 3;
  grid-row: 1;
}
input[type="radio"], input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 28px;
  height: 28px;
  position: relative;
  cursor: pointer;
  background-color: #fff;
  margin-right: 0.5em;
  vertical-align: middle;
  box-sizing: border-box;
}
input[type="radio"]:checked::after, input[type="checkbox"]:checked::after {
  content: "\f00c";
  font-family: "Font Awesome 7 Pro";
  position: absolute;
  top: 50%;
  left: 50%;
  font-size: 2rem;
  font-weight: 800;
  color: #AACF52;
  transform: translate(-50%, -50%);
}
input[type="radio"]:disabled, input[type="checkbox"]:disabled {
  background-color: #f5f5f5;
  border: 1px solid #ddd;
  cursor: not-allowed;
  opacity: 0.6;
}
input[type="text"], textarea {
  border: 1px solid #eeeeef;
  padding: 10px;
  box-sizing: border-box;
}
input[type="text"]:focus, textarea:focus {
  outline: none;
  border-color: #4CAF50;
  box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.3);
}
.formBtnSet {
  display: flex;
  gap: 30px;
  justify-content: flex-end;
}
.agreeArea {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  margin: 35px 0;
  align-items: center;
}
#reset_button, #send_button {
  border: none;
  padding: 1em 3em;
  color: #fff;
}
#reset_button {
  background-color: #a9ce52;
}
#send_button {
  background-color: #2cb5a9;
}
/*法人申し込み　キャンペーン(東邦系)*/
.parent-corporate .bg_deepBlue h2 span {
  width: 100%;
  padding-bottom: 6px;
  background-image: linear-gradient(to right, #b2eafa 50%, transparent 50%);
  background-size: 8px 3px;
  background-repeat: repeat-x;
  background-position: left bottom;
  color: #fff;
}
.parent-corporate .bg_white h2 span {
  display: inline;
  width: 100%;
  padding-bottom: 6px;
  background-image: linear-gradient(to right, #00b8ee 50%, transparent 50%);
  background-size: 8px 3px;
  background-repeat: repeat-x;
  background-position: left bottom;
}
.parent-corporate .bg_lightskyblue h2 span {
  display: inline;
  width: 100%;
  padding-bottom: 6px;
  background-image: linear-gradient(to right, #00b8ee 50%, transparent 50%);
  background-size: 8px 3px;
  background-repeat: repeat-x;
  background-position: left bottom;
  color: #006e94;
}
.parent-corporate .bg_skyBlue {
  color: #fff;
}
#plan-section {
  padding: 40px 0 160px;
}
.select-text {
  color: #1b6f8a;
  margin-bottom: 20px;
  width: 620px;
  margin: 0 auto 1em;
}
/* =====================
  会社リスト
===================== */
.company-list {
  display: grid;
  grid-template-columns: repeat(3, auto);
  justify-content: center;
  gap: 15px 100px;
  margin-bottom: 40px;
}
.company-list label {
  cursor: pointer;
  display: flex;
  align-items: center;
  color: #006e94;
}
/* =====================
  プランカード
===================== */
.plan-card {
  display: flex;
  align-items: stretch; /* ←これ重要 */
  background: #fff;
  border-radius: 90px;
  margin-bottom: 30px;
  cursor: pointer;
  transition: 0.3s;
  position: relative;
  overflow: visible; /* ←はみ出しOKにする */
}
.plan-card:hover {
  transform: translateY(-3px);
}
/* 左エリア */
.plan-left {
  width: 190px;
  background: #99e3f8;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  border-radius: 90px 0 0 90px;
  z-index: 1;
}
/* 中央 */
.plan-content {
  flex: 1;
  padding: 60px 60px 60px 90px;
}
.plan-content h3 {
  margin: 0 0 10px;
  color: #1b6f8a;
  display: flex;
  align-items: center;
  font-size: 2.2rem !important;
}
.plan-img {
  align-self: center;
  padding: 1em 60px 1em 0;
}
.badge {
  background: #7fbf00;
  color: #fff;
  font-size: 1.4rem !important;
  padding: 0.5em 1em;
  border-radius: 20px;
  margin-left: 10px;
  font-weight: 400;
}
.price {
  font-size: 3.4rem !important;
  color: #1b6f8a;
  margin: 10px 0;
  font-weight: 500;
  letter-spacing: 1px;
}
.price span {
  font-size: 2rem;
}
.note {
  font-size: 1.6rem;
  color: #1b6f8a;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
}
.desc {
  font-size: 14px;
  color: #666;
}
#goBtn {
  appearance: none;
  -webkit-appearance: none;
  border: none;
}
.page-toho .bg_deepBlue {
  align-items: center;
}
.tohoStep {
  margin: 0 auto;
  counter-reset: step;
}
.tohoStep h3 {
  padding-left: 80px;
}
.tohoStep .inner-box {
  position: relative;
  padding: 60px 90px;
  margin: 50px 0;
  counter-increment: step;
}
.tohoStep .inner-box.bg_skyBlue:first-of-type {
  display: flex;
  flex-direction: row;
  gap: 30px; /* 間隔 */
}
/* 直下の2要素を1:1 */
.tohoStep .inner-box.bg_skyBlue > div, .tohoStep .inner-box.bg_skyBlue > ul {
  flex: 1;
  min-width: 0; /* ← これ重要（はみ出し防止） */
}
.tohoStep .inner-box:nth-of-type(3) {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.tohoStep .inner-box:nth-of-type(3) > div {
  flex: 1;
  min-width: 0; /* ← はみ出し防止（重要） */
}
.tohoStep .inner-box:nth-of-type(3) a {
  flex-shrink: 0; /* ← 縮ませない */
  white-space: nowrap; /* ← 折り返し禁止 */
}
.tohoStep .inner-box p {
  margin: 1em;
}
.tohoStep .corplist {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  margin: 0px 0px 0px 70px !important;
}
.tohoStep .corplist li {
  background: #e6eef2;
  color: #1fa4c6;
  padding: 12px 20px;
  border-radius: 30px;
  font-weight: bold;
  text-align: center;
}
.tohoStep .inner-box h3 {
  position: relative;
  padding-left: 100px;
}
/* 丸＋STEP */
.tohoStep .inner-box h3::before {
  content: "STEP";
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 75px;
  height: 75px;
  background-color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 8px;
  padding-top: 15px;
  box-sizing: border-box;
  font-size: 12px;
  color: #006e94;
  z-index: 1;
}
/* 数字（大きく） */
.tohoStep .inner-box h3::after {
  content: counter(step); /* ← ここが重要 */
  position: absolute;
  left: 10px;
  top: 65%;
  transform: translateY(-50%);
  z-index: 1;
  width: 75px;
  text-align: center;
  font-size: 26px;
  font-weight: bold;
  color: #006e94;
}
.tohoStep .inner-box p {
  line-height: 1.8;
}
.tohoStep .corplist {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px 30px;
  margin-top: 20px;
  margin-left: 110px;
}
.tohoStep .corplist li {
  background: #fff;
  color: #006e94;
  padding: 12px 20px;
  border-radius: 30px;
  font-weight: bold;
}
.tohoStep .plan-content-left {
  display: flex;
  align-items: flex-start;
  gap: 20px;
}
.tohoStep .planNum {
  width: 75px;
  height: 75px;
  background: #0e6c8a;
  color: #fff;
  border-radius: 50%;
  text-align: center;
  line-height: 75px;
  font-size: 2.6rem;
  font-weight: bold;
}
.tohoStep .plan1 h4 {
  font-size: 2.2rem;
  margin-bottom: 10px;
  color: #006e94;
  margin-top: 1em;
}
.tohoStep .price {
  color: #006e94;
  margin: 0 !important;
}
.tohoStep .price strong {
  font-size: 3rem;
  font-weight: 500;
}
.tohoStep .price span {
  font-size: 1.6rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
}
.tohoStep .price strong span {
  font-size: 2rem;
  margin: 0 3px;
}
.tohoStep .priceinfo {
  font-size: 1.6rem;
  margin: 10px 0 0 0 !important;
  line-height: 1.6;
}
.tohoStep .campaign {
  background: #f0ecac;
  color: #8b6825;
  border-radius: 60px;
  overflow: visible;
  position: relative;
  padding: 70px 0 20px;
}
/* 上段 */
.tohoStep .campaign h4 {
  text-align: center;
  font-size: 3rem;
  padding: 0 0 40px 0;
  margin: 0;
  font-weight: 600;
  letter-spacing: 1.8px;
}
/* 中段（価格エリア） */
.tohoStep .servicePrice {
  text-align: center;
  padding: 30px 20px;
  background-color: #e8df7c;
  line-height: 2;
  font-size: 2rem
}
.tohoStep .servicePrice strong span {
  font-size: 2rem;
  font-weight: normal;
}
.tohoStep .servicePrice strong {
  display: block;
  font-size: 3.4rem;
  font-weight: 600;
  line-height: 1.6;
}
.tohoStep .servicePrice .campaignprice {
  display: flex;
  flex-direction: row;
  text-align: left;
  align-items: center;
  justify-content: center;
}
.tohoStep .servicePrice .campaignprice > div {
  margin: 0 1em;
}
.tohoStep .campaign .attention {
  font-size: 1.7rem;
  margin: 0;
  padding: 1em 100px 0;
}
/* 下段テキスト */
.tohoStep .campaign p {
  padding: 0 40px;
  line-height: 1.8;
}
.tohoStep .campaign-badge {
  position: absolute;
  width: 177px;
  height: auto;
  right: -30px;
  top: 70px;
  z-index: 10;
}
.tohoStep .att {
  display: flex;
  justify-content: center;
  color: #00b8ee;
  align-items: center;
}
.tohoStep .att dt {
  margin-right: 1em;
  font-size: 2.2rem;
  font-weight: 500;
}
.tohoStep .att dd {
  font-size: 1.6rem;
}
@media (max-width: 1023px) {
  body {
    font-size: 1.6rem;
    line-height: 1.8em;
  }
  .section {
    padding: 80px 20px;
  }
  .sectionWave {
    padding: 20px 20px 120px;
  }
  .whatBest {
    min-height: inherit;
  }
  #about .aboutBox h2, .reasonTxt h3, .planTxt h3 {
    letter-spacing: normal;
  }
  .titBox {
    display: flex;
    justify-content: space-between;
    width: 100%;
  }
  .contBox {
    display: flex;
    flex-direction: column;
  }
  #news .topicslist dl .topics-link, .page-topicslist .topicslist a dl {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: 0em;
  }
  #news .topicslist dt {
    display: flex;
    align-items: center;
  }
  .topicslist dl {
    border-bottom: dotted #d2d1d1 1px;
    padding-bottom: 0.5em;
  }
  .topicslist dl dt {
    flex-direction: row-reverse;
    justify-content: start;
    align-items: flex-start;
    gap: 15px;
  }
  #news .topicslist dl dd {
    display: block;
    text-align: left;
    margin-left: 1em;
  }
  #news .topicslist dl dd .more {
    display: inline; /* ←テキストとして扱う */
    margin-left: 0.5em; /* ←少しだけ間隔 */
  }
  .topicslist dl dt span {
    display: inline-block;
    min-width: 40px;
    padding: 0px;
    line-height: inherit;
  }
  .latestlist dl a, .recommended dl a {
    display: flex;
    /*     flex-direction: column; */
    margin-bottom: 0.5em;
  }
  .latestlist dd, .recommended dd {
    margin-left: 0; /* デフォルトのインデントを解除 */
  }
  .streamlist dl, .streamlist a dl, .recommended dl, .recommended a dl {
    flex-direction: column;
    padding-bottom: 0.5em;
  }
  #home .streamlist dl {
    border-bottom: dotted 1px #2cb5a9;
  }
  #home .recommended dl {
    border-bottom: dotted 1px #a9ce52;
  }
  .contBox.latest .titBox a, .contBox.news .titBox a {
    margin-bottom: 1.5em;
  }
  .reasonStep li {
    font-size: 2rem;
    font-weight: 500;
    padding: 20px 20px 20px 100px;
    line-height: 1.5;
  }
  .reasonStep li::before {
    padding-top: 10px;
  }
  .reasonStep li::after {
    top: 59%;
  }
  .qaBox .btnWhiteGreen, .btnWhite, .btnWhite:hover, .btnWhiteGreen, .btnWhiteGreen:hover {
    max-width: inherit;
    width: inherit;
  }
  .contBox {
    padding: 0;
  }
  .circle-menu {
    display: flex;
    flex-wrap: wrap; /* 折り返しを許可 */
    justify-content: center; /* 行全体を中央寄せ */
    gap: 15px; /* アイコン間の余白 */
    padding: 0;
    max-width: 94% !important;
  }
  .circle-menu li {
    list-style: none;
    /* 3つ並べる計算：(100% - 隙間2つ分) ÷ 3 */
    width: calc(33.33% - 10px);
    flex: none !important; /* PC用のflex指定を解除 */
  }
  /* 最後の1つだけ特別扱い（100%幅にして中央配置） */
  .circle-menu li:last-child {
    width: calc(33.33% - 10px); /* 基本は3つ並びと同じ幅 */
    /* もし最後の1つだけ「中央に大きく置きたい」なら width: 100%; に変更 */
  }
  .aboutBox {
    padding: 100px 20px;
    flex-direction: column;
  }
  #about .aboutBox .aboutTxt {
    width: 100%;
  }
  .aboutImgArea {
    width: 90%;
    margin: auto;
  }
  .aboutImgArea {
    width: 90%;
    margin: auto;
  }
  .aboutImgArea li {
    width: 100%;
    padding: 30px 20px;
  }
  .aboutImgArea li:nth-child(2), .aboutImgArea li:nth-child(3), .aboutImgArea li:nth-child(4), .aboutImgArea li:nth-child(5), .aboutImgArea li:nth-child(6) {
    transform: translateX(0) translateY(0);
    margin-top: -10px;
  }
  #plan-section {
    padding: 40px 0 300px;
  }
  .plan1, .flowall {
    flex-direction: column;
  }
  .plan1Img {
    margin: auto;
  }
  .campaignBom {
    position: absolute;
    right: -20px;
    left: auto;
    top: -30px;
    width: 40%;
    overflow: hidden;
  }
  .planother {
    position: absolute;
    display: flex;
    flex-direction: column; /* 縦並びに変更 */
    align-items: center; /* 中央揃え */
    left: 50%; /* 画面中央へ */
    transform: translateX(-50%);
    bottom: -260px;
    width: 90%;
  }
  /* 1つ目のul：法人プラン（重なりデザインを維持） */
  .planother ul:first-child {
    margin-left: 0;
    margin-bottom: 120px;
    width: 100%;
  }
  .planother ul:first-child li:first-child {
    padding: 50px;
  }
  /* 2つ目のul：さらに詳しく（下へ移動） */
  .planother ul:last-child {
    margin-left: 0; /* 横の食い込みを解除 */
    position: static;
    text-align: center;
  }
  .planother ul:last-child li {
    white-space: nowrap; /* 文字サイズ・改行設定を維持 */
  }
  .stepImage {
    width: 100%;
  }
  .flowall {
    grid-template-columns: 1fr;
  }
  .qaBox dt, .qaBox dd {
    padding: 2em 1em;
  }
  .qaBox dt {
    border-radius: 70px 70px 0 0;
    font-size: 2rem;
  }
  .qaBox dd {
    border-radius: 0 0 70px 70px;
  }
  .contactTxt {
    max-width: inherit;
    width: 100%;
  }
  .entryStepBox, .application, .pecsFlowBox, .pecsStep dd {
    flex-direction: column !important;
  }
  .pecsStep dd {
    padding: 20px 10px;
  }
  .individualStepBox {
    gap: 0;
  }
  .pecsFlowBox .pecsStepImgBox, .individualStepBox .stepImage {
    width: auto;
  }
  .inqCate {
    grid-template-columns: 1fr; /* 1列 */
    row-gap: 10px;
  }
  .inqCate label {
    grid-column: auto !important;
    grid-row: auto !important;
  }
  .agreeArea, .individualBox, .individualFlow, .individualStepBox, .tohoStep .inner-box.bg_skyBlue:first-of-type, .tohoStep .servicePrice .campaignprice, .tohoStep .att, .tohoStep .inner-box:nth-of-type(3) {
    flex-direction: column;
  }
  .tohoStep .servicePrice .campaignprice .individualStepBox .stepImage {
    width: 100%;
  }
  .tohoStep .servicePrice .campaignprice .plan-arrow img {
    transform: rotate(90deg);
  }
  .tohoStep .campaign p, .tohoStep .servicePrice .campaignprice > div {
    padding: 0;
    margin: 0;
  }
  .tohoStep .servicePrice {
    padding: 30px 10px;
  }
  .tohoStep .campaign-badge {
    position: absolute;
    max-width: 100px;
    height: auto;
    right: -40px;
    top: 170px;
    z-index: 10;
  }
  .tohoStep .corplist {
    margin: 1em !important;
  }
  .tohoStep .inner-box.bg_skyBlue > div, .tohoStep .inner-box.bg_skyBlue > ul {
    grid-template-columns: 1fr; /* ←1列にする */
    gap: 15px; /* 縦だけなのでシンプルに */
    margin-left: 0;
  }
  .tohoStep .inner-box:nth-of-type(3) {
    flex-direction: column !important;
  }
  .tohoStep .campaign .attention {
    padding: 2em;
  }
  .select-text {
    width: 100%;
  }
  .flow-item:not(.start-item)::after {
    transform: translateY(-50%) rotate(90deg);
    left: 50%;
    right: 50%;
    bottom: -30px;
    top: auto;
  }
  .start-item {
    writing-mode: horizontal-tb;
  }
  .contactForm .privacyBox {
    padding: 2em;
  }
  .agreeArea label {
    margin-bottom: 1em;
  }
  .zebraTable tbody tr {
    display: block;
  }
  .zebraTable th, .zebraTable td {
    display: block;
    width: 100%;
    padding: 15px 20px;
  }
  .zebraTable tbody tr td:first-of-type {
    background-color: #fff;
  }
  .zebraTable tbody tr td:nth-of-type(2) {
    background-color: #ddebba;
  }
  /* 3列目のgrid指定を解除 */
  .zebraTable tbody td:nth-child(3) {
    grid-column: auto;
    background-color: #eef5dc;
  }
  .company-list {
    grid-template-columns: repeat(2, 1fr);
    max-width: 100%;
    gap: 10px;
  }
  .planText {
    width: 100%;
  }
  .plancommon dt, .plancommon dd, .howpecs dt, .howpecs dd {
    margin-left: 0;
    padding-left: 0;
  }
  .plancommon dt, .howpecs dt {
    font-size: 2rem;
  }
  .plancommon dd, .howpecs dd {
    font-size: 1.8rem;
  }
  .settingStep {
    padding-bottom: 100px !important;
  }
  .settingStep .stepCard:last-of-type {
    padding: 1em;
  }
  /* =====================
  プランカード
===================== */
  .plan-card {
    position: relative;
    flex-wrap: wrap;
    border-radius: 50px;
  }
  .plan-left {
    position: absolute; /* ←ここがポイント */
    top: 0;
    left: 0;
    width: 50px;
    height: 100%; /* ←カード全体まで伸ばす */
    border-radius: 90px 0 0 90px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  /* 右側は左の分だけずらす */
  .plan-content, .plan-img {
    margin-left: 50px;
  }
  .plan-content {
    padding: 20px;
  }
  .plan-img {
    width: 100%;
    padding: 10px 20px 20px;
    text-align: center;
  }
  .targetBox h3 {
    gap: 15px;
    margin-left: 0;
  }
  .button-container, .button-container-ct {
    padding: 20px 0px;
  }
  .btnWrapRow {
    margin-top: 30px;
  }
  .roundLabel.min {
    width: 100%;
  }
  .roundLabel {
    letter-spacing: normal;
    padding: 35px 40px;
  }
  .contactTxt {
    font-size: 1em;
  }
}
/*メンテナンス*/
.maintenanceOuter {
  display: flex;
  justify-content: center; /* 水平方向の中央 */
  align-items: center; /* 垂直方向の中央 */
  padding: 20px;
}
/* メンテナンス中のブロック */
.maintenance {
  width: fit-content;   /* ← 中身にフィット */
  margin: 80px auto;       /* ← 中央寄せ */
  text-align: left;     /* ← テキスト左揃え */
}
/* 個別の段落設定 */
.maintenance p {
  line-height: 1.8;
  margin-bottom: 1.5em;
  color: #fff;
}

main .container.error404 {
  width: fit-content;
  margin: 0 auto;
  text-align: left;
  color: #fff;
}
main .container.error404 ul{
    margin-left: 1em;
}

main .container.error404 ul a{
    color: #fff;
}
main .container.error404 ul a::before {
    content: "\f111";
    font-family: "Font Awesome 7 Pro";
    font-weight: 900;
    margin-top: 0.5em;
    margin-right: 0.5em;
    color: #fff;
}


/*投稿用*/

/* 投稿本文のベース */
.entry-content {
  line-height: 1.8;
}

.entry-content::after {
  content: "";
  display: block;
  clear: both;
}
/* 左回り込み */
.alignleft {
  float: left;
  margin: 0 20px 20px 0;
}

/* 右回り込み */
.alignright {
  float: right;
  margin: 0 0 20px 20px;
}

/* 中央 */
.aligncenter {
  display: block;
  margin: 0 auto;
}
/* 画像の最大幅 */
.entry-content img {
  max-width: 100%;
  height: auto;
}

/* Gutenberg画像 */
.wp-block-image .alignleft {
  float: left;
  margin-right: 20px;
}

.wp-block-image .alignright {
  float: right;
  margin-left: 20px;
}

.wp-block-image .aligncenter {
  text-align: center;
}
/* テキスト配置 */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }

/* 余白 */
.mt20 { margin-top: 20px; }
.mb20 { margin-bottom: 20px; }

/* ボックス */
.box {
  border: 1px solid #ddd;
  padding: 15px;
}

/* 注意ボックス */
.box-alert {
  background: #fff3f3;
  border: 1px solid #f5c2c2;
  padding: 15px;
}

/* ボタン */
.btn {
  display: inline-block;
  padding: 10px 20px;
  background: #2cb5a9;
  color: #fff;
  border-radius: 30px;
  text-decoration: none;
}
/* flexやoverflow対策 */
.entry-content {
  overflow: visible;
}