/* reset */
main.site-main {
  font-style: normal;
  line-height: normal;
  font-weight: normal;
}

main.site-main p {
  margin: 0;
}

main.site-main a {
  text-decoration: none;
}

p,
ul,
ol {
  margin: 0;
  padding: 0;
}

ul {
  list-style: none;
}

body {
  overflow-x: hidden;
}

/* ---------------------------------- */

/* 共通 */

.page-title,
.page-sub-title {
  line-height: 140%;
}

.wrapper-section {
  margin: 0 0 96px;
}

.wrapper-body {
  display: flex;
  max-width: 1280px;
  width: 100%;
  margin: 0 auto 96px;
  flex-direction: column;
  align-items: flex-start;
  row-gap: 96px;
}

.subtitle {
  margin-bottom: 32px;
}

.subtitle h2 {
  margin: 0;
}

.pc {
  display: block;
}

.sp {
  display: none;
}

/* top */

.wrapper-page-title {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto 72px;
}

.wrapper-top {
  position: relative;
}

.topimg-container {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100vw;
  margin: 0 calc(50% - 50vw);
  height: 400px;
  background: var(--background-color);
}

.topimg {
  max-width: 1280px;
  width: 100%;
  height: 400px;
  object-fit: cover;
  object-position: center 22%;
  margin: 0 auto;
}

.top-text {
  width: max-content;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  position: absolute;
  bottom: -58px;
  justify-content: center;
  gap: 8px;
  padding: 32px 48px;
  border-radius: 20px 20px 0px 0px;
  background: rgba(255, 255, 255, 0.90)
}

.top-text p:first-child {
  color: var(--main-color);
  line-height: 140%;
}

.top-text p:last-child {
  color: var(--main-text-color);
  line-height: 160%;
  width: 670px;
}

/*****/

/* our expertise */

.our-expertise {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-self: stretch;
}

.our-expertise-wrap {
  display: flex;
  flex-direction: column;
  row-gap: 16px;
  margin-bottom: 40px;
}

.expertise-heading {
  color: var(--main-text-color);
  text-align: center;
  font-family: var(--body-font);
  font-size: 20px;
  font-weight: 700;
  line-height: 140%;
}

.worries-wrap {
  display: flex;
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  padding: 24px 40px;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  border-radius: 20px;
  background: var(--background-color);
  align-self: stretch;
}

.worries-wrap ul {
  line-height: 150%;
}

.worries-wrap ul li {
  font-weight: 700;
  line-height: 150%;
  margin-bottom: 4px;
}

.worries-wrap ul li::before {
  content: "・";
}

.worries-wrap ul li span {
  display: block;
  margin-left: 16px;
  margin-top: 4px;
  font-weight: 400;
}

.triangle-img {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  row-gap: 8px;
  align-self: stretch;
}

.causing-wrap {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.causing-note {
  text-align: center;
  color: var(--main-color);
  font-family: var(--body-font);
}

.causing-inner {
  display: flex;
  flex-direction: row;
  gap: 24px;
  align-items: center;
  justify-content: center;
}

.causing-item {
  display: flex;
  flex-direction: row;
  gap: 4px;
  justify-content: center;
  align-items: center;
  background: var(--background-color);
  border-radius: 8px;
  padding: 14px 10px;
  width: 280px;
}


/* approach */
.approach-note {
  margin-bottom: 8px;
}

.approach-wrap {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.approach-inner {
  display: flex;
  padding: 12px 0px;
  align-items: center;
  gap: 40px;
  align-self: stretch;
}

.approach-head {
  display: flex;
  width: 328px;
  align-items: center;
  gap: 16px;
  align-self: stretch;
  border-right: 1px solid var(--border-color-weak);
}

.approach-number {
  width: 104px;
  flex-shrink: 0;
  color: var(--background-color-footer);
  font-family: "Montserrat";
  font-size: 80px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.approach-heading {}

.approach-heading p:first-of-type {
  margin-bottom: 4px;
}

.approach-heading p:last-child {
  color: var(--main-color);
}

.approach-text {
  width: 100%;
  flex: 1 0 0;
  color: var(--main-text-color);
  line-height: 150%;
}

/* flow */

.flow {
  position: relative;
  width: 100%;
  max-width: 1152px;
}

.flow-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 48px;
  margin-top: 16px;
}

.flow-linear {
  position: absolute;
  top: 0;
  left: 46px;
  bottom: 0;
  margin: auto 0;
  width: 6px;
  background-color: var(--main-color);
  height: 82%;
}

.flow-order {
  display: flex;
  width: 100%;
  max-width: 1152px;
  align-items: center;
  gap: 16px;
}

.flow-icon {
  position: relative;
  width: 96px;
  height: 96px;
  flex-shrink: 0;
  background-color: var(--main-color);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.flow-icon p {
  text-align: center;
  color: #FFF;
}

.flow-detail {
  display: flex;
  width: 100%;
  max-width: 1018px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 12px;
  flex-shrink: 0;
}

.flow-detail:first-child {
  color: var(--main-text-color);
}

.flow-detail:last-child {
  align-self: stretch;
  color: var(--main-text-color);
}

/* faq */
.faq {
  width: 100%;
}

.faq-items {
  border-bottom: 1px solid #666;
}

.faq-items:has(.question-wrap:hover) {
  border-bottom-color: var(--main-color);
}

.question-wrap * {
  pointer-events: none;
  /* 子要素のタップイベントを透過させて親の.js-aiagent-faqで確実に検知する */
}

.question-wrap {
  display: flex;
  flex-direction: row;
  gap: 12px;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  padding: 12px 0;
  position: relative;
}

.question-inner {
  display: flex;
  flex-direction: row;
  gap: 20px;
  align-items: center;
}

.question-icon {
  color: var(--sub-color);
  font-family: var(--heading-font);
  font-size: 40px;
  font-weight: 600;
}

.question-accordionBtn {
  width: 40px;
  height: 40px;
  margin-right: 50px;
  background-image: url(../images/service/aiagent/aiagent_accordionBtn_open.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;

  transition: 0.3s;
}

.question-wrap.active .question-accordionBtn {
  background-image: url(../images/service/aiagent/aiagent_accordionBtn_close.svg);

}

.answer-wrap {
  padding: 8px 112px 12px 54px;
  display: none;
}


/* contact section */
.contact {
  width: 100%;
}

.contact-inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.contact-heading {
  text-align: center;
  font-family: var(--body-font);
  font-size: 24px;
  font-weight: 700;
  line-height: 140%;
}

.contact-worries {
  width: 800px;
  margin: 0 auto;
  padding: 24px 40px;
  border-radius: 20px;
  background-color: var(--background-color);
  display: flex;
  flex-direction: row;
  gap: 20px;
  align-items: center;
}

.contact-worries ul {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.contact-worries ul li {
  position: relative;
  margin-left: 16px;
}

.contact-worries ul li::before {
  content: "・";
  position: absolute;
  left: -16px;
  top: 0;
}

.contactBtn {
  color: #FFF;
  display: flex;
  padding: 16px 36px;
  margin: 0 auto;
  justify-content: center;
  align-items: center;
  gap: 16px;
  border-radius: 64px;
  background: linear-gradient(270deg, var(--accent-color) 0%, var(--accent-sub-color) 100%);
  box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.20), 0 2px 12px 2px rgba(0, 0, 0, 0.05);
}

.contactBtn:hover {
  color: #FFF;
}

/* floating contact button */
.floating-contact {
  position: fixed;
  right: 70px;
  bottom: 20px;
  z-index: 1;
}

.floating-contactBtn {
  display: inline-flex;
  padding: 16px 36px;
  justify-content: center;
  align-items: center;
  gap: 16px;
  border-radius: 64px;
  background: linear-gradient(270deg, var(--accent-color) 0%, var(--accent-sub-color) 100%);
  box-shadow: 0px 1px 6px 0px rgba(0, 0, 0, 0.20), 0px 2px 12px 2px rgba(0, 0, 0, 0.05);
}

.floating-contactMsg {
  color: #FFF;
}

/* sp */
@media screen and (max-width: 1160px) {

  .case-normal {
    flex-direction: column;
    gap: 12px;
  }

  .case-box img {
    margin: 0 auto;
  }

  .case-reverse {
    flex-direction: column;
    gap: 12px;
  }

  .specific {
    flex-direction: column;
    gap: 12px;
  }

  .specific p:first-child {
    margin: 0 auto;
  }

  .cost-explain {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }

  .product-cost {
    text-align: left;
  }

  .flow-detail {
    gap: 8px;
    flex: 1 0 0;
  }

  .floating-contact {
    right: 50%;
    transform: translateX(50%);
  }

  .floating-contactBtn {
    width: 342px;
  }
}

@media screen and (max-width: 768px) {

  .pc {
    display: none;
  }

  .sp {
    display: block;
  }

  h1 .hide {
    display: block;
  }

  .wrapper-page-title {
    display: flex;
    width: 100%;
    margin: 0 0 40px;
    flex-direction: column;
    align-items: flex-start;
  }

  .topimg-container {
    width: 100vw;
    margin-bottom: 32px;
    height: auto;
  }

  .topimg {
    width: 100%;
    height: auto;
  }

  .top-text {
    width: 100%;
    padding: 0;
    transform: translateX(0);
    justify-content: center;
    border-radius: none;
    background: none;
    bottom: 0;
    position: unset;
  }

  .top-text p:last-child {
    width: auto;
  }

  .wrapper-body {
    display: flex;
  }

  .our-expertise {
    align-items: flex-start;
  }

  .our-expertise-wrap {
    margin-bottom: 24px;
  }

  .expertise-heading {
    text-align: left;
    font-size: 20px;
    font-weight: 700;
    line-height: 140%;
  }

  .worries-wrap {
    padding: 24px 40px;
    margin: 0;
    align-items: flex-start;
  }

  .causing-note {
    text-align: left;
  }

  .causing-inner {
    flex-direction: column;
  }

  .hide {
    display: none;
  }

  .approach-head {
    border: none;
    width: 100%;
  }

  .approach-wrap {
    margin-top: 24px;
  }

  .approach-inner {
    flex-direction: column;
    gap: 24px;
    padding: 0;
  }

  .flow-linear {
    top: 0;
    margin: 0;
  }

  .flow-order {
    align-items: flex-start;
  }

  .question-inner {
    gap: 12px;
    width: calc(100% - 60px);
  }

  .question-icon {
    font-size: 32px;
  }

  .question-accordionBtn {
    margin: 0 10px;
  }

  .answer-wrap {
    padding: 16px 70px 12px 39px;
  }

  .contact-heading {
    text-align: left;
    font-family: var(--body-font);
    font-size: 18px;
    font-weight: 700;
    line-height: 160%;
  }

  .contact-worries {
    width: 100%;
    flex-direction: column;
  }

  @media screen and (max-width: 425px) {
    .flow-linear {
      height: 80%;
    }
  }

  @media screen and (max-width: 342px) {
    .floating-contactBtn {
      width: 320px;
    }
  }
}