@charset "utf-8";

/* --------------------------------- Common --------------------------------- */
[class*="__wrapper-m"] {
  width: min(100%, 1100px);
  margin-inline: auto;
}

.cmn-py {
  padding-block: var(--sp-5);
}

.sp-px {
  padding-inline: var(--sp-2);
}

.cmn-cta {
  /* width: min(100%, 1100px); */
  position: relative;
  /* padding-bottom: var(--sp-5);
  margin-block: var(--sp-10) var(--sp-4); */
  text-align: center;
  background: no-repeat bottom center / contain
    url("../images/cmn-cta_deco1.webp");
  padding: 0 0 var(--sp-3);
  margin: var(--sp-5) var(--sp-2) var(--sp-3);

  p {
    font-size: var(--px-20);
    font-weight: var(--bold);
    color: var(--clr-main);
    text-align: center;

    span {
      color: var(--clr-sub02);
      background: var(--clr-accent);
    }
  }
}

.cmn-cta--small {
  p {
    font-size: var(--body-fz);
  }
}

/* トップのcmnヘッダー */
.top2025-header {
  margin-bottom: var(--sp-4);

  p,
  h3 {
    font-weight: var(--bold);
    text-align: center;
  }

  p {
    font-size: var(--h4-fz);
    color: var(--clr-sub02);
    margin-bottom: var(--sp-05);
    text-transform: uppercase;
  }

  h3 {
    font-size: var(--body-fz);
  }
}

/* もっと詳しく知るボタン */
.top2025-button {
  /* width: 198px;
  height: 43px; */
  width: fit-content;
  margin: var(--sp-3) auto;
  border: 1px solid var(--clr-txt2);
  border-radius: 6px;

  .top2025-button__link {
    width: inherit;
    height: inherit;
    border-radius: inherit;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 12px var(--sp-3);

    span {
      font-size: var(--body-fz);
      font-weight: var(--regular);
      color: var(--clr-txt2);
      padding-left: var(--sp-3);
      position: relative;

      &::before {
        content: "";
        position: absolute;
        inset: 0 auto 0 0;
        margin-block: auto;
        width: 18px;
        height: 18px;
        background: no-repeat center/contain
          url("/assets/images/top_2025/top2025-button_icon.webp");
      }
    }
  }
}

.top2025-button--white {
  background-color: var(--clr-white);
}

.cmn-header {
  margin-bottom: var(--sp-3);

  h3,
  h4 {
    font-size: var(--px-20);
    font-weight: var(--bold);
    color: var(--clr-sub02);
    position: relative;
    padding-left: var(--sp-2);

    &::before {
      content: "";
      position: absolute;
      inset: 0 auto 0 0;
      margin-block: auto;
      width: 11px;
      height: calc(100% - 10px);
      border-radius: 5px;
      background-color: var(--clr-sub02);
    }
  }
}

/* ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
既存パーツ調整
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/
#faq {
}
#faq .inner {
  padding: 0;
}
#faq .sec_cta {
  margin-bottom: var(--sp-5);
}
.qa-list dt {
  padding-right: 20px;
  padding-left: 25px !important;
}
.section-ttl-box {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--h3-fz);
  font-weight: var(--medium);
  margin-bottom: var(--sp-4);
}

.sec-ttle {
  color: var(--clr-main);
}

#faq .qa-list dd::before {
  top: 25px;
}
.qa-list .in-dl {
  padding-right: 5vw;
}

#media {
  padding-top: var(--sp-10);
}

/* .more_btn_2011 */
.more_btn_2011 {
  /* zoom: 80%; */
}
.more_btn_2011 a {
  width: fit-content;
  display: block;
  margin: 0 auto;
}

/* cta調整 */
/* .sec_cta */
.sec_cta__box-wrap {
  margin-bottom: var(--sp-10);
}
/* .sec_cta */
.sec_cta__box {
  position: relative;
  line-height: 1.5;
  padding: calc((16 / 390) * 100vw) calc((5 / 390) * 100vw)
    calc((16 / 390) * 100vw);
  background: no-repeat bottom center/contain url("../img/sp_sec_cta__box.webp");
  background-size: cover;
  display: flex;
  margin-bottom: calc((65 / 390) * 100vw);
}
/* .sec_cta__box::after {
  position: absolute;
  bottom: calc((-18 / 390) * 100vw - (25 / 390) * 100vw);
  left: calc(50% - (22 / 390) * 100vw);
  content: "";
  display: block;
  background: url("../img/icon_tr_cta.webp") no-repeat;
  background-size: contain;
  width: calc((44 / 390) * 100vw);
  height: calc((25 / 390) * 100vw);
} */

.sec_cta__box-header {
  width: 100%;
  /* margin-inline: auto; */
  margin-bottom: calc((270 / 390) * 100vw);
}
.sec_cta__box-header h4 {
  width: fit-content;
  font-size: calc((26 / 390) * 100vw);
  color: #e8e428;
  font-weight: 700;
  letter-spacing: 0.06em;
  /* margin: 0 auto; */
  padding-left: var(--sp-1);
  margin-bottom: calc((16 / 390) * 100vw);
}
.sec_cta__box-header p {
  font-size: calc((18 / 390) * 100vw);
  font-weight: 600;
  color: #ffffff;
  letter-spacing: 0.02em;
  padding-left: var(--sp-1);
  margin-bottom: var(--sp-1);
}

.sec_cta__box-header h4 small {
  font-size: calc((20 / 390) * 100vw);
  color: #ffffff;
}
.sec_cta__box-header p sup {
  font-size: 10px;
  top: 0;
}
.sec_cta__box-header small {
  position: relative;
  width: calc((350 / 390) * 100vw);
  display: block;
  font-size: 10px;
  padding-left: 22px;
  color: #ffffff;
  /* zoom: 0.6; */
  transform: scale(0.6);
  transform-origin: right top; /* 基準点の調整 */
  margin-left: auto;
}
.sec_cta__box-header small:nth-of-type(1)::before {
  position: absolute;
  left: 0;
  top: 0;
  content: "※1";
}
.sec_cta__box-header small:nth-of-type(2)::before {
  position: absolute;
  left: 0;
  top: 0;
  content: "※2";
}

/* ---------------------------- デジタルフォレンジックの調査事例 ---------------------------- */
#case .inner {
  width: 96%;
}
#case .more_btn_2011 {
  margin-top: var(--sp-5);
}
#case .cmn-h2 {
  margin-bottom: var(--sp-5);
}
#case h2.title {
  font-size: 4vw;
  /* text-decoration: none; */
}

/* .case__header {
  margin-bottom: var(--sp-4);

  h3 {
    font-size: var(--h4-fz); 
    font-weight: var(--bold);
    text-align: center;
    text-decoration: underline;
  }
} */

.case__textbox {
  margin-bottom: calc((20 / 390) * 100vw);

  p {
    text-align: left;
    font-weight: var(--bold);
    /* font-size: var(--body-fz); */
    font-size: var(--px-18);
    line-height: 1.5;
    letter-spacing: 0;

    span {
      background: linear-gradient(
        to bottom,
        transparent 15%,
        #ffff00 15%,
        #ffff00 95%,
        transparent 95%
      );
    }
  }
}

.case_title {
}

.case_title .sub-title {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  font-size: var(--h4-fz);
  line-height: 1.5;
  font-weight: var(--bold);
  text-align: center;
  margin-bottom: var(--sp-5);
}

.case_title .sub-title strong {
  display: block;
  color: var(--clr-main);
  font-weight: var(--black);
  font-size: var(--h2-fz);
}

/* .case_cont */
.case_cont {
  margin: 0 auto;
  background-color: #f8f8f8;
  /* padding: 18.3px 16px; */
  margin-bottom: var(--sp-4);
}

.case_cont-header {
  position: relative;
  display: flex;
  gap: 0.8vw;
}
.case_cont-header::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 4px;
  left: 0;
  bottom: 0;
  background-color: #2f4365;
  border-radius: 4px;
}
.case_cont-tab .img {
  width: 12vw;
  margin: 0 auto;
}

.case_cont-tab .img img {
  max-width: 100%;
}

.case_cont-tab .ttl {
  font-size: 10px;
  font-weight: var(--bold);
  /* color: var(--clr-main); */
  color: var(--clr-txt);
  margin-bottom: var(--sp-1);
  text-align: center;
}

.case_cont-header .case_cont-tab {
  flex: 1;
  text-align: center;
  padding: var(--sp-05) 1px;
  padding-top: 19px;
  cursor: pointer;
  font-weight: bold;
  border: 2px solid #eaeaea;
  /* 左右下のボーダー */
  border-top: none;
  /* 上のボーダーを削除 */
  border-radius: 10px 10px 0 0;
  /* 上の角だけ丸くする */
  opacity: 0.6;
  position: relative;
  /* 擬似要素のために必要 */
  background-color: #fff;
  /* 背景色を追加 */
  display: grid;
  justify-content: center;
  align-items: center;
}
.case_cont-header .case_cont-tab::before {
  content: "";
  position: absolute;
  top: 0;
  left: -2px;
  right: 0;
  width: calc(100% + 4px);
  height: 11px;
  /* background-color: var(--clr-main); */
  background-color: #1f294a;
  border-radius: 10px 10px 0 0;
  z-index: 2;
}

.case_cont-header .case_cont-tab.active {
  position: relative;
  opacity: 1;
  background-color: #eaeaea;
  z-index: 2;
}

.case_cont-header .case_cont-tab.active::after {
  content: "";
  position: absolute;
  bottom: -7px;
  left: -3px;
  right: 0;
  width: calc(100% + 6px);
  height: 5px;
  background-color: #eaeaea;
  /* border-radius: 10px 10px 0 0; */
  z-index: 2;
}

.case_cont-content {
  display: none;
  background-color: #eaeaea;
  padding: var(--sp-2);
}

.case_cont-content.active {
  display: block;
}

.case_cont-consult-box,
.case_cont-ddf-box {
  padding: var(--sp-2);
  background: var(--clr-white);

  em {
    font-weight: var(--bold);
  }
}

.case_cont-consult-title {
  width: fit-content;
  /* background-color: var(--clr-main); */
  background-color: #1f294a;
  color: var(--clr-white);
  font-size: var(--h6-fz);
  font-weight: var(--bold);
  padding: var(--sp-05) var(--sp-1);

  margin-bottom: 3vw;
}

.case_cont-ddf-title {
  width: fit-content;
  background-color: #1facd4;
  color: var(--clr-white);
  font-size: var(--h6-fz);
  padding: var(--sp-05) var(--sp-1);
  font-weight: bold;
  margin-bottom: 3vw;
}

.case_cont-inner {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}

.case_cont-inner > div {
  flex: 1;
}

/* .more_btn_2011 */
.more_btn_2011 {
  /* zoom: 80%; */
}
.more_btn_2011 a {
  width: fit-content;
  display: block;
  margin: 0 auto;
}

/* -------------------------------------------------------------------------- */
/*                                     SP                                     */
/* -------------------------------------------------------------------------- */
/* ---------------------------------- Sec00 --------------------------------- */
.sec00 {
  /* height: 600px; */
  /* background: no-repeat center / cover url("../images/sec00_bg1.webp") !important; */

  .sec00__wrapper-s {
    width: min(100%, 1085px);
    margin-inline: auto;
    /* height: inherit; */
    display: flex;
    justify-content: center;
    align-items: end;
    flex-flow: column nowrap;
  }

  .sec00__header {
    width: fit-content;
    /* margin: auto auto var(--sp-5) 0; */
    padding: calc((55 / 390) * 100vw) var(--sp-2);
    filter: drop-shadow(0 4px 4px #fff);
    background: no-repeat left 20% center/ cover
      url("../images/sp/sec00_bg1.webp") !important;

    h2,
    p {
      font-weight: var(--bold);
      color: #16192f;
    }

    h2 {
      font-size: calc((44 / 390) * 100vw);
      border-bottom: 1px solid #16192f;
      /* padding-bottom: var(--sp-1); */
      margin-bottom: var(--sp-1);
      /* letter-spacing: 0.1em; */
    }

    p {
      font-size: var(--body-fz);
      /* letter-spacing: 0.15em; */
    }
  }

  .sec00__tel {
    /* margin: auto auto var(--sp-3); */
    /* margin-bottom: var(--sp-3); */
    position: relative;

    img {
      width: 100%;
    }

    a {
      position: absolute;
      inset: auto 45px 5px auto;
      font-size: 40px;
      font-weight: var(--regular);
      color: var(--clr-white);
    }
  }
}

/* ---------------------------------- Sec01 --------------------------------- */
.sec01 {
  /* margin-top: var(--sp-1); */
  background-color: #f5f5f5 !important;

  .sec01__header {
    margin-bottom: var(--sp-3);

    p {
      width: fit-content;
      margin-inline: auto;
      padding: var(--sp-1) var(--sp-5);
      font-size: var(--px-18);
      font-weight: var(--bold);
      color: var(--clr-white);
      background-color: #d9473f;
      margin-bottom: var(--sp-2);
      clip-path: polygon(3% 0%, 100% 0%, 97% 100%, 0% 100%);
    }

    h3 {
      font-size: var(--px-20);
      font-weight: var(--bold);
      text-align: center;
      color: var(--clr-txt);

      small {
        font-size: var(--body-fz);
      }
    }
  }

  .sec01__list {
    background-color: var(--clr-white);
    border-radius: var(--sp-2);
    padding: var(--sp-3) var(--sp-2);
  }

  .sec01__item {
    font-size: var(--body-fz);
    font-weight: var(--bold);
    position: relative;
    padding-left: calc((30 / 390) * 100vw);

    span {
      background-color: #fef67f;
    }

    &:not(:last-child) {
      margin-bottom: var(--sp-2);
    }

    &::before {
      content: "";
      position: absolute;
      width: calc((31 / 390) * 100vw);
      height: calc((18 / 390) * 100vw);
      inset: calc((5 / 390) * 100vw) auto auto 0;
      /* inset: 0 auto 0 0;
      margin-block: auto; */
      background: no-repeat center / contain url("../images/sec01_deco1.webp");
    }
  }

  .sec01__deco {
    display: block;
    margin: var(--sp-1) auto;
  }

  .sec01__content {
    background-color: var(--clr-white);
    margin: 0 var(--sp-2) var(--sp-1);

    .sec01__header2 {
      padding: var(--sp-1) var(--sp-2);
      background-color: #103e76;
      margin-bottom: var(--sp-2);

      h4,
      p {
        font-weight: var(--bold);
        color: var(--clr-white);
      }

      h4 {
        font-size: var(--px-20);
        margin-bottom: var(--sp-1);
        text-align: center;

        em {
          color: #fff833;
        }
      }

      p {
        font-size: var(--body-fz);
        color: var(--clr-white);
        text-align: left;
      }
    }
  }

  .sec01__box {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-flow: column nowrap;
    gap: var(--sp-2);
    padding: var(--sp-2);
    /* margin-bottom: var(--sp-2); */
  }

  .sec01__textbox {
    width: min(100%, 595px);

    p {
      font-size: var(--body-fz);
      font-weight: var(--regular);
    }
  }

  .sec01__list2 {
    width: min(100%, 970px);
    margin-inline: auto;
    padding-inline: var(--sp-2);
  }

  .sec01__item2 {
    font-size: var(--body-fz);
    font-weight: var(--bold);
    color: #103e76;
    position: relative;
    padding-left: var(--sp-3);

    &::before {
      content: "";
      position: absolute;
      inset: calc((1 / 390) * 100vw) auto auto 0;
      width: calc((19 / 390) * 100vw);
      height: calc((19 / 390) * 100vw);
      background: no-repeat center / contain url("../images/sec01_deco3.webp");
    }
  }
}

/* ---------------------------------- Sec02 --------------------------------- */
.sec02 {
  .sec02__subtitle1,
  .sec02__subtitle2 {
    font-weight: var(--bold);
    margin-bottom: var(--sp-1);
  }

  .sec02__subtitle1 {
    font-size: var(--px-18);
  }

  .sec02__subtitle2 {
    font-size: var(--h4-fz);
  }

  .sec02__text {
    font-size: var(--body-fz);
    font-weight: var(--regular);

    &:has(+ .sec02__link) {
      margin-bottom: var(--sp-1);
    }

    em {
      font-weight: var(--bold);
    }
  }

  .sec02__link {
    display: block;
    width: fit-content;
    margin-inline: auto 0;
    font-size: calc((12 / 390) * 100vw);
    font-weight: var(--regular);
    text-decoration: underline;
  }

  .sec02__link--left {
    margin-inline: 0 auto;
  }

  .sec02__box {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-flow: column-reverse nowrap;
    gap: var(--sp-3);
    margin-top: var(--sp-2);
    padding: var(--sp-2);
    border: 1px solid #d9d9d9;
  }

  .sec02__textbox {
    width: min(100%, 617px);
  }
}

/* ---------------------------------- Sec03 --------------------------------- */
.sec03 {
  /* height: 513px; */
  overflow: initial;
  /* margin-top: var(--sp-5); */
  padding-top: var(--sp-3);
  background: no-repeat bottom center / cover url("../images/sp/sec03_bg1.webp") !important;

  .sec03__header {
    /* width: fit-content;
    position: absolute;
    inset: 0 0 auto 0;
    margin-inline: auto;
    transform: translateY(-40px); */
    margin-bottom: var(--sp-4);

    h3 {
      font-size: var(--h4-fz);
      font-weight: var(--bold);
      color: var(--clr-white);
      text-align: center;
    }
  }

  .sec03__content {
    margin-top: var(--sp-4);
  }

  .sec03__title {
    font-size: var(--h5-fz);
    font-weight: var(--bold);
    color: var(--clr-white);
    margin-bottom: var(--sp-2);
  }

  .sec03__textbox {
    margin-bottom: var(--sp-5);

    p {
      font-size: var(--fz-small);
      font-weight: var(--regular);
      color: var(--clr-white);

      span {
        font-weight: var(--bold);
        color: var(--clr-accent);
      }
    }
  }
}

/* ---------------------------------- Sec04 --------------------------------- */
.sec04 {
  padding-bottom: 0;

  .sec04__item {
    &:not(:last-child) {
      margin-bottom: var(--sp-3);
    }

    .cmn-header {
      margin-bottom: var(--sp-1);
    }

    .sec04__item-box {
      display: flex;
      justify-content: center;
      align-items: center;
      flex-flow: column nowrap;
      gap: var(--sp-2);
    }

    .sec04__item-img {
      width: 100%;
    }

    .sec04__item-text {
      font-size: var(--small-fz);
      font-weight: var(--regular);
    }
  }
}

/* ---------------------------------- Sec05 --------------------------------- */
.sec05 {
  .sec05__text {
    font-size: var(--body);
    font-weight: var(--regular);
    margin-bottom: var(--sp-5);
  }

  .sec05__list {
    display: flex;
    justify-content: start;
    align-items: stretch;
    flex-flow: row wrap;
    gap: var(--sp-2);
    margin-bottom: var(--sp-2);
  }

  .sec05__item {
    /* width: min(100%, 200px); */
    width: calc((170 / 390) * 100vw);

    .sec05__item-img {
      display: block;
      margin: 0 auto 12px;
    }

    .sec05__item-header {
      height: 59px;
      margin-bottom: var(--sp-1);

      h5 {
        font-size: var(--px-18);
        font-weight: var(--bold);
        color: #1b274e;
        text-align: center;
      }
    }

    .sec05__item-text {
      font-size: var(--body);
      font-weight: var(--regular);
      color: #1b274e;
    }
  }

  .sec05__list2 {
    width: min(100%, 540px);
    /* margin-inline: var(--sp-2); */
    padding-inline: var(--sp-2) 0;
    list-style: "※ " outside;
  }

  .sec05__item2 {
    font-size: var(--small-fz);
    font-weight: var(--regular);
  }
}

/* ---------------------------------- Sec06 --------------------------------- */
.sec06 {
  margin-bottom: var(--sp-4);

  .sec06__wrapper-xl {
    padding-block: var(--sp-2);
    background-color: #f3f5f9 !important;
  }

  .sec06__list2 {
    width: min(100%, 540px);
    /* margin-inline: var(--sp-2); */
    padding-inline: var(--sp-2) 0;
    list-style: "※ " outside;
  }

  .sec06__item2 {
    font-size: var(--small-fz);
    font-weight: var(--regular);
  }

  .flow {
    padding-block: var(--sp-5);
    /* background-color: #f2f2f2 !important; */
  }

  .flow__box3 {
    /* margin-bottom: 30px; */

    p {
      font-size: var(--small-fz);
      font-weight: var(--medium);
      line-height: 1.5;
      letter-spacing: 0;
    }
  }
  .flow__box4 {
    margin-bottom: 16px;
    position: relative;
  }
  .flow__box4-img {
    position: absolute;
    inset: 0 calc((6 / 390) * 100vw) auto auto;
    transform: translateY(calc((70 / 390) * 100vw));
  }
  .flow__list2 {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    flex-flow: column nowrap;
    gap: 20px;
    counter-reset: count;
    margin-bottom: 10px;
  }
  .flow__item2-box .cmn-textbox p {
    font-size: 3.3vw;
  }
  .flow__item2 {
    width: 100%;
    height: 100px;
    border-radius: 0;
    background-color: #ffffff;
    filter: drop-shadow(0 4px 7px rgba(0, 0, 0, 0.25));
    transform: translateZ(0);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-flow: row nowrap;
    gap: var(--sp-2);
    padding: calc((10 / 390) * 100vw) calc((28 / 390) * 100vw)
      calc((10 / 390) * 100vw) var(--sp-5);
    position: relative;
  }
  .flow__item2:nth-child(1) {
    height: fit-content;
    padding-bottom: 25px;
  }
  .flow__item2:nth-child(1) .cmn-textbox p {
    font-size: 17px;
  }
  .flow__item2:nth-child(1) h5 {
    margin-bottom: 16px;
  }
  .flow__item2:nth-child(1) .cmn-tel {
    margin-bottom: 20px;
  }
  .flow__item2::after {
    counter-increment: count;
    content: counter(count, decimal-leading-zero);
    position: absolute;
    inset: 0 auto 0 0;
    width: 30px;
    height: 100%;
    border-radius: 0;
    background-color: #103e76;
    color: #ffffff;
    font-weight: 700;
    font-size: 18px;
    padding: 10px 4px 0 4px;
  }
  .flow__item2:nth-child(2) {
    padding-right: calc((45 / 390) * 100vw);
  }
  .flow__item2:nth-child(3) {
    padding-right: var(--sp-2);
  }
  /* .flow__item2:not(:last-child)::before {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  margin-inline: auto;
  background: no-repeat center/contain
    url("/assets/images/top_2025/sp_sec03_deco1.webp");
  width: 28px;
  height: 28px;
  border-radius: 0;
  transform: translateY(27px);
  z-index: 1;
} */
  .flow__item2:not(:last-child) {
    position: relative;
  }
  .flow__item2:not(:last-child)::before {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    margin-inline: auto;
    width: calc((17 / 390) * 100vw);
    height: calc((17 / 390) * 100vw);
    border-radius: 0;
    background: no-repeat center/contain url("../images/flow_deco1.webp");
    transform: rotate(90deg) translateX(calc(100% + 1px));
  }
  .flow__item2-header {
    margin-bottom: 5px;
  }
  .flow__item2-header h5 {
    color: #103e76;
    font-size: 20px;
    font-weight: 700;
  }
  .flow__button {
    color: #103e76;
    font-weight: 700;
    /* text-align: center; */
  }

  .flow__header {
    margin-bottom: 24px;
    position: relative;
  }
  .flow__header::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    background-color: #1f294a;
    width: 5px;
    height: 100%;
    border-radius: 15px;
    margin-block: auto;
    transform: translateY(2px);
  }
  .flow__header h4 {
    color: #1f294a;
    font-size: 24px;
    font-weight: 700;
    padding-inline: 15px;
  }
  .flow-tel span {
    position: relative;
    white-space: nowrap;
    font-size: 25px;
    font-weight: 700;
    padding-left: 35px;
    margin-bottom: var(--sp-1);
  }
  .flow-tel span::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    margin-block: auto;
    width: 30px;
    height: 30px;
    border-radius: 0;
    background: no-repeat center/contain url("../images/flow_tel.webp");
  }

  .flow-mail {
    width: 206px;
    height: 35px;
    border-radius: 35px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #ff544b;
    filter: drop-shadow(0 4px 0 rgba(16, 62, 118, 0.25));
  }
  .flow-mail:hover {
    background-color: #ff847e;
  }
  .flow-mail span {
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    padding-left: 20px;
    position: relative;
  }
  .flow-mail span::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    margin-block: auto;
    width: 16px;
    height: 16px;
    border-radius: 0;
    background: no-repeat center/contain url("../images/flow_mail.webp");
  }
}

/* ---------------------------------- Sec07 --------------------------------- */
.sec07 {
  /* background-color: var(--clr-bg) !important; */
  /* padding-top: var(--sp-5); */
  padding-block: 0;
  /* padding-block: var(--sp-5); */

  .sec07__wrapper-xl {
    background-color: #f8f8f8 !important;
    padding-block: var(--sp-4) var(--sp-2);
  }

  .sec07__container {
    display: flex;
    justify-content: center;
    align-items: end;
    flex-flow: column nowrap;
    /* margin-bottom: var(--sp-2); */

    &::after {
      display: block;
      content: "";
      position: relative;
      inset: auto 0 0 auto;
      width: calc((148 / 390) * 100vw);
      height: calc((158 / 390) * 100vw);
      background: no-repeat center/ contain url("../images/sp/sec07_deco3.webp");
      transform: translateY(calc((-22 / 390) * 100vw));
    }
  }

  .sec07__box {
    width: min(100%, 965x);
    border-radius: 10px;
    background-color: var(--clr-sub03);
    padding: var(--sp-3);
    /* position: relative; */
  }

  .sec07__header {
    margin-bottom: var(--sp-2);

    h3 {
      font-size: var(--px-20);
      font-weight: var(--bold);
      color: var(--clr-white);
    }
  }

  .sec07__textbox {
    p {
      font-size: var(--body-fz);
      font-weight: var(--regular);
      color: var(--clr-white);

      span {
        color: var(--clr-accent);
      }
    }
  }

  /* サービスカード群のラッパー */
  .service-sec_wrap {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 4.1vw;
    margin-bottom: 8.21vw;
  }

  /* 各サービスカード */
  .service-sec_item {
    background: #fff;
    border: 1px solid #000;
    border-radius: 1.54vw;
    overflow: hidden;
    transition: transform 0.18s ease;
  }

  /* カード全体をリンクエリアに */
  .service-sec_item a {
    color: inherit;
    text-decoration: none;
    display: block;
    padding: 6.15vw;
    line-height: 1.5;
    letter-spacing: 0;
  }

  .service-sec__item--cont {
    margin-bottom: 0;
  }

  /* サービスタイトル */
  .service-sec__item--ttl {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding-bottom: 2.05vw;
    border-bottom: 1px dashed #000;
    margin-bottom: 4.1vw;
    line-height: 1;
    font-weight: 700;
    color: #103e76;
    position: relative;

    &::before {
      content: "";
      position: absolute;
      inset: 0 0 0 auto;
      margin-block: auto;
      width: calc((18 / 390) * 100vw);
      height: calc((18 / 390) * 100vw);
      background: no-repeat center / contain url("../images/service_deco1.webp");
      transform: translateY(-3px);
    }
  }

  /* ホバー時の強調 */
  .service-sec_item:hover .service-sec__item--ttl::after {
    transform: translatex(1.03vw);
  }

  .service-sec__item--link {
    display: none;
    /* display: flex; */
    align-items: center;
    justify-content: flex-end;
    color: #103e76 !important;
    gap: 1.03vw;
    margin-top: 4.1vw !important;
  }
  .service-sec__item--link::after {
    content: "";
    /* background: url("../images/icon_service-sec__item--ttl.webp") no-repeat
      center center; */
    background-size: contain;
    display: block;
    width: 4.62vw;
    height: 4.62vw;
    transition: transform 0.18s ease;
  }

  /* 説明文 */
  .service-sec__item--txt {
    color: #000;
  }

  /* 強調文字（strongタグ） */
  .service-sec__item--txt strong {
    font-weight: bold;
  }

  /* PC: 3カラム対応（3×3+1構成） */
  @media screen and (min-width: 768px) {
    .service-sec_wrap {
      grid-template-columns: repeat(3, 1fr);
      gap: 8.21vw;
    }
  }

  /* SP: パディング調整 */
  @media screen and (max-width: 767px) {
    .service-sec_item a {
      padding: 4.1vw;
      gap: 4.1vw;
    }
  }

  /* もっと詳しく知るボタン */
  .service-button {
    width: fit-content;
    margin: 0 auto;
    border: 1px solid var(--clr-txt2);
    border-radius: 1.54vw;
    margin-bottom: var(--sp-5);

    .service-button__link {
      width: inherit;
      height: inherit;
      border-radius: inherit;
      display: flex;
      justify-content: center;
      align-items: center;
      padding: var(--sp-1) var(--sp-05);
      background: var(--clr-white);

      span {
        font-size: var(--body-fz);
        font-weight: var(--regular);
        color: var(--clr-txt2);
        padding-left: var(--sp-3);
        position: relative;

        &::before {
          content: "";
          position: absolute;
          inset: 0 auto 0 0;
          margin-block: auto;
          width: 4.62vw;
          height: 4.62vw;
          background: no-repeat center/contain
            url("/assets/images/top_2025/top2025-button_icon.webp");
        }
      }
    }
  }

  .service-sec_img {
    padding-top: 0;
  }
}

/* ---------------------------------- sec08 --------------------------------- */
.sec08 {
  padding-bottom: var(--sp-2);

  .sec08__text {
    font-size: var(--body-fz);
    font-weight: var(--regular);
    margin-bottom: var(--sp-3);

    span {
      /* background-color: #fef67f; */
      color: #b20000;
    }
  }

  .sec08__text2 {
    font-size: var(--px-20);
    font-weight: var(--bold);
    color: var(--clr-txt);
    text-align: center;
    margin-bottom: var(--sp-2);
  }

  .sec08__list {
    margin-bottom: var(--sp-3);
  }

  .sec08__item {
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);

    &:not(:last-child) {
      margin-bottom: var(--sp-2);
    }

    .sec08__item-header {
      padding: var(--sp-1) var(--sp-1) var(--sp-2);
      width: 100%;
      background-color: #002366;
      display: flex;
      justify-content: center;
      align-items: center;
      flex-flow: column nowrap;
      gap: 0 var(--sp-1);

      h4,
      p {
        font-weight: var(--bold);
        color: var(--clr-white);
      }

      h4 {
        font-size: calc((22 / 390) * 100vw);
        text-align: center;
      }

      p {
        letter-spacing: 0.04em;
        font-size: calc((24 / 390) * 100vw);

        small {
          font-size: var(--px-18);
        }
      }
    }

    .sec08__item-content {
      padding: var(--sp-2);
    }

    .sec08__item-img {
      width: 100%;
    }

    .sec08__tbox {
      display: flex;
      justify-content: center;
      align-items: start;
      flex-flow: column-reverse nowrap;
      gap: var(--sp-3);

      &:has(+ .sec08__bbox) {
        margin-bottom: var(--sp-4);
      }
    }

    .sec08__bbox {
      .sec08__bbox-box {
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-flow: row wrap;
        gap: var(--sp-2);

        h5 {
          font-size: var(--h5-fz);
          font-weight: var(--bold);
          letter-spacing: 0.04em;
          color: #002366;
          padding-left: var(--sp-2);
          position: relative;
          margin-bottom: var(--sp-1);

          &::before {
            content: "";
            position: absolute;
            inset: 0 auto 0 0;
            margin-block: auto;
            width: var(--sp-1);
            height: var(--sp-4);
            background-color: #002366;
            border-radius: 20px;
          }
        }
      }

      img {
        margin-bottom: var(--sp-1);
      }
    }

    .sec08__bbox-link {
      font-size: calc((10 / 390) * 100vw);
      font-weight: var(--regular);
      position: relative;
      padding-right: var(--sp-1);
      text-decoration: underline;

      &::before {
        content: "";
        position: absolute;
        inset: 0 0 0 auto;
        margin-block: auto;
        width: calc((12 / 390) * 100vw);
        height: calc((13 / 390) * 100vw);
        background: no-repeat center / contain url("../images/sec08_deco1.webp");
      }
    }

    .sec08__item-textbox {
      p {
        font-size: var(--body-fz);
        font-weight: var(--regular);
        text-align: justify;

        &:not(:last-child) {
          margin-bottom: var(--sp-3);
        }

        span {
          background-color: var(--clr-accent);
          font-weight: var(--bold);
        }
      }

      ul {
        padding-left: var(--sp-2);
        list-style: "※ " outside;
        font-size: var(--small-fz);
      }
    }
  }
}

/* ---------------------------------- Sec09 --------------------------------- */
.sec09 {
  .sec09__header {
    border-bottom: 2px dashed rgba(0, 0, 0, 0.3);
    padding-bottom: var(--sp-2);
    margin-bottom: var(--sp-3);

    h3 {
      font-size: var(--body);
      font-weight: var(--bold);
      color: #333333;
      text-align: center;

      span {
        background-color: var(--clr-accent);
      }

      small {
        font-size: calc((12 / 390) * 100vw);
      }
    }
  }

  .sec09__subtitle {
    /* width: fit-content; */
    width: 100%;
    font-size: var(--px-18);
    font-weight: var(--bold);
    color: #db0062;
    text-align: center;
    position: relative;
    padding-inline: var(--sp-5);
    margin: 0 auto var(--sp-3);

    &::before,
    &:after {
      content: "";
      position: absolute;
      margin-block: auto;
      width: 30px;
      height: 36px;
      background: no-repeat center / contain;
    }

    &::before {
      inset: 0 auto 0 0;
      background-image: url("../images/sec09_deco1.webp");
    }

    &::after {
      inset: 0 0 0 auto;
      background-image: url("../images/sec09_deco2.webp");
    }
  }

  .sec09__textbox1 {
    margin: 0 auto var(--sp-3);

    p {
      font-size: var(--body);
      font-weight: var(--regular);
      text-align: center;

      &:not(:last-child) {
        margin-bottom: calc((12 / 390) * 100vw);
      }

      span {
        background-color: var(--clr-accent);
      }
    }
  }

  .sec09__img {
    /* margin-bottom: var(--sp-3); */
  }

  .top2025-button {
    /* margin-bottom: var(--sp-4); */
  }

  .sec09__textbox2 {
    p {
      font-size: var(--px-20);
      font-weight: var(--bold);
      text-align: left;
      /* 
      &::before,
      &::after {
        font-size: var(--h4-fz);
        color: #ff544a;
      }

      &::before {
        content: "\\";
        margin-right: var(--sp-1);
      }

      &::after {
        content: "/";
        margin-left: var(--sp-1);
      } */

      span {
        color: #ff544a;
      }
    }
  }
}
/* ---------------------------------- Sec10 --------------------------------- */
.sec10 {
  padding-bottom: 0;
  counter-reset: count;

  .sec10__header {
    counter-increment: count;
    background-color: var(--clr-bg);
    border-block: 3px solid var(--clr-sub04);
    display: flex;
    justify-content: center;
    align-items: center;
    flex-flow: column nowrap;
    margin-bottom: var(--sp-2);

    p {
      width: fit-content;
      display: block;
      padding: 0 var(--sp-2) var(--sp-05) var(--sp-2);
      border-radius: 0 0 calc((30 / 390) * 100vw) calc((30 / 390) * 100vw);
      text-transform: uppercase;
      font-size: var(--px-18);
      font-weight: var(--bold);
      color: var(--clr-white);
      background-color: var(--clr-sub04);

      &::after {
        content: counter(count, decimal-leading-zero);
        font-size: calc((24 / 390) * 100vw);
      }
    }

    h5 {
      flex-grow: 1;
      font-size: var(--px-18);
      font-weight: var(--bold);
      color: var(--clr-sub04);
      padding: var(--sp-1) var(--sp-2);
    }
  }

  .sec10__content1 {
    background-color: var(--clr-bg);
    padding-block: var(--sp-5);
    margin-bottom: var(--sp-5);

    .sec10__content1-textbox {
      margin-bottom: var(--sp-2);

      p {
        font-size: var(--small-fz);
        font-weight: var(--bold);
      }
    }

    .sec10__list {
      display: flex;
      justify-content: center;
      align-items: stretch;
      flex-flow: row wrap;
      gap: var(--sp-2);
    }

    .sec10__item {
      /* width: min(100%, 345px); */
      width: 100%;
      background: var(--clr-white);
      padding: var(--sp-2) var(--sp-3);
      display: flex;
      justify-content: start;
      align-items: center;
      flex-flow: column nowrap;
      gap: var(--sp-1);

      .sec10__item-header {
        /* height: calc((159 / 390) * 100vw); */

        h5 {
          font-size: var(--h5-fz);
          font-weight: var(--bold);
          text-align: center;
        }
      }
    }
  }

  .sec10__content2 {
    margin-bottom: var(--sp-5);

    .sec10__content2-cont {
      display: flex;
      justify-content: center;
      align-items: start;
      flex-flow: row wrap;
      gap: var(--sp-4);
    }

    .sec10__content2-img {
      display: block;
      width: 100%;
      height: auto;
      margin-bottom: calc((20 / 390) * 100vw);
    }

    .sec10__content2-box {
      width: min(100%, 641px);

      p {
        margin-bottom: var(--sp-2);

        &:nth-child(1) {
          font-size: var(--px-18);
          font-weight: var(--bold);
        }

        &:nth-child(2) {
          font-size: var(--body-fz);
          font-weight: var(--medium);

          span {
            background: linear-gradient(
              to bottom,
              transparent 10%,
              var(--clr-accent) 10%,
              var(--clr-accent) 90%,
              transparent 90%
            );
          }
        }
      }

      ul {
        list-style: "※ " outside;
        font-size: calc((12 / 390) * 100vw);
        font-weight: var(--regular);
        padding-left: var(--sp-2);
      }
    }
  }

  .sec10__list2 {
    display: flex;
    justify-content: center;
    align-items: stretch;
    flex-flow: row wrap;
    gap: var(--sp-3) var(--sp-1);
    margin-bottom: var(--sp-5);
  }

  .sec10__item2 {
    /* width: min(100%, 177px); */
    width: calc((170 / 390) * 100vw);
    display: flex;
    justify-content: start;
    align-items: center;
    flex-flow: column nowrap;
    gap: var(--sp-1);

    h6 {
      font-size: var(--small-fz);
      font-weight: var(--bold);
      text-align: center;
    }

    /* &:nth-child(3) {
      width: min(100%, 218px);
    }

    &:nth-child(4) {
      width: min(100%, 250px);
    } */

    &:last-child {
      margin-inline: 0 auto;
    }
  }

  .sec10__img {
    display: block;
    margin: auto auto var(--sp-2);

    &:nth-of-type(2) {
      /* margin-bottom: 0; */
    }
  }

  .sec10__textbox {
    margin: 0 auto var(--sp-2);
    /* padding-inline: 45px; */

    p {
      font-size: var(--small-fz);
      font-weight: var(--bold);

      &:nth-child(1) {
        font-size: var(--px-18);
        margin-bottom: var(--sp-2);
      }

      span {
        background-color: var(--clr-accent);
      }
    }
  }
}
