@charset "utf-8";


/* ==============================================
   Combined BG Wrapper
============================================== */

.combined-bg-wrapper {
  max-width: 1500px;
  margin-inline: auto;
}

/* ==============================================
   Who We Are
============================================== */

.c-intro {
  width: 100%;
  padding-block: clamp(56px, 6.51vw + 7.91px, 86px) clamp(64px, 18.66vw - 73.87px, 150px);
}

.c-intro__inner {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.c-intro__heading {
  margin: 0;
  font-size: var(--fs-lg); /* 24px → 28px */
  font-weight: 700;
  line-height: 1.4;
  text-align: left;
}

.c-intro__lead {
  margin: 0;
  font-size: var(--fs-base-fluid); /* 18px → 16px */
  line-height: 1.8;
  text-align: left;
}

/* ==============================================
   Our Services
============================================== */
#OurServices .c-section-heading {
  margin-bottom: clamp(2.8rem, 0.870rem + 4.174vw, 4rem);
}

.c-strategy {
  list-style: none;
  margin:     0;
  padding:    0;
  display:    flex;
  flex-direction: column;
  gap:        4.0rem;
}

.c-strategy__item {
  border:        6px solid var(--color-primary);
  background-color: var(--color-white);
  border-radius: var(--radius-card);
  padding:       5.2rem 3.8rem;
}

.c-strategy__card {
  display:        flex;
  flex-direction: column;
  gap:            3.2rem;
}

.c-strategy__inner {
  display: flex;
  gap:     4.2rem;
  align-items: flex-start;
}

.c-strategy__left {
  flex:      5;
  min-width: 0;
}

.c-strategy__right {
  flex:            5;
  min-width:       0;
  display:         flex;
}

.c-strategy__heading {
  display:     flex;
  align-items: center;
  gap:         2.0rem;
}

.c-strategy__num {
  flex-shrink: 0;
  font-family: var(--font-primary);
  font-size:   9.4rem;
  font-weight: 500;
  width: 1.3em;
  text-align: left;
  color:       var(--color-primary);
  line-height: 1;
}

.c-strategy__titles {
  display:        flex;
  flex-direction: column;
  align-items: flex-start;
  gap:            0.6rem;
}

.c-strategy__title-ja {
  margin:      0;
  font-size:   2.8rem;
  font-weight: 700;
  color:       var(--color-black);
  line-height: 1.3;
}

.c-strategy__title-en {
  margin:      0;
  font-family: var(--font-primary);
  font-size:   2.0rem;
  font-weight: 700;
  color:       var(--color-primary);
  line-height: 1.3;
}

.c-strategy__text {
  margin:      0;
  text-align:  left;
  font-size:   1.6rem;
  font-weight: 400;
  line-height: 2;
  color:       var(--color-black);
}

.c-checklist {
  list-style:       none;
  margin-block:        0;
  margin-inline:       1.6rem;
  padding:          3.2rem;
  background-color: #F3F3F3;
  border-radius:    var(--radius-card);
  display:          flex;
  flex-direction:   column;
  justify-content:  center;
  text-align:         left;
  gap:              1.6rem;
  width:            100%;
}

.c-checklist__item {
  display:     flex;
  align-items: center;
  gap:         1.2rem;
  font-size:   1.6rem;
  font-weight: 700;
  color:       var(--color-black);
  line-height: 1.6;
}

.c-checklist__icon {
  flex-shrink: 0;
  width:       1.8rem;
  height:      1.3rem;
  margin-top:  0;
  color:       var(--color-primary);
}

.c-strategy__item:nth-child(even) {
  border-color: var(--color-black);
}

.c-strategy__item:nth-child(even) .c-strategy__num {
  color: var(--color-black);
}

@media (max-width: 740px) {
  .c-strategy__item {
    padding: 4rem 2.4rem;
  }

  .c-strategy__card {
    gap: 2.4rem;
  }

  .c-strategy__inner {
    flex-direction: column;
    gap:            2.4rem;
  }

  .c-strategy__heading {
    flex-direction: column;
    align-items:    flex-start;
    gap:            0.4rem;
  }

  .c-strategy__num {
    font-size: 6.0rem;
    margin-bottom: 1rem;
  }

  .c-strategy__title-ja,
  .c-strategy__title-en {
    text-align: left;
  }

  .c-strategy__right {
    width: 100%;
  }

  .c-checklist {
    margin-inline: 0;
    padding: 2rem;
  }
}

/* ==============================================
   Customer Benefits
============================================== */
 
.c-benefits {
  list-style: none;
  margin:     0;
  padding:    0;
}
 
.c-benefits__item {
  display:      flex;
  justify-content: space-between;
  align-items:  center;
  border-top:   solid 0.1rem #ccc;
  padding-block: 4.2rem;
}

.c-benefits__item:first-child {
  border-top: none;  
}

.c-benefits__item--reverse {
  flex-direction: row-reverse;
}
 
.c-benefits__media {
  flex-shrink: 0;
  display:     flex;
  align-items: center;
  justify-content: center;
  padding:     4rem;
}
 
.c-benefits__svg {
  display: block;
  width:   14rem;
  height:  14rem;
}
 
.c-benefits__body {
  flex:      1;
  min-width: 0;
  max-width: 750px;
}
 
.c-benefits__heading {
  display:     flex;
  align-items: flex-start;
  gap:         2.4rem;
}
 
.c-benefits__num {
  flex-shrink: 0;
  font-family: var(--font-primary);
  font-size:   4.2rem;
  font-weight: 400;
  color:       var(--color-primary);
  line-height: 1;
}
 
.c-benefits__title {
  margin:      0;
  font-size:   2.4rem;
  font-weight: 700;
  color:       var(--color-black);
  line-height: 1.4;
}
 
.c-benefits__text {
  margin:      2.4rem 0 0;
  text-align: left;
  font-size:   1.6rem;
  font-weight: 400;
  line-height: 2;
  color:       var(--color-black);
}
 
@media (max-width: 740px) {
  .c-benefits__item,
  .c-benefits__item--reverse {
    flex-direction: column-reverse;
  }

  .c-benefits__heading {
    gap: 1.5rem;
  }

  .c-benefits__media {
    padding: 4rem;
  }

  .c-benefits__title,
  .c-benefits__text {
    text-align: left;
  }
}


/* ==============================================
   Service Flow
============================================== */

#ServiceFlow .c-section-heading {
  margin-bottom: clamp(12rem, 6.532rem + 11.878vw, 15.4rem);
}
 
.c-flow {
  list-style: none;
  margin:     0;
  padding:    0;
}
 
.c-flow__item {
  margin-top: 5.2rem;
}
 
.c-flow__item:first-child {
  margin-top: 0;
}
 
.c-flow__content {
  position:    relative;
  padding-left: 3.4rem;
  border-left:  solid 0.2rem var(--color-primary);
  padding-bottom: 6rem;
}
 
.c-flow__item--last > .c-flow__content {
  border-left: none;
}
 
.c-flow__step {
  position:    absolute;
  top:         -3.8rem;
  left:        -2ex;
  font-family: var(--font-primary);
  font-size:   1.8rem;
  font-weight: 700;
  color:       var(--color-primary);
  line-height: 1.5;
}
 
.c-flow__title {
  margin:      0;
  font-size:   2.4rem;
  font-weight: 700;
  line-height: 1.2;
  color:       var(--color-black);
  text-align:  left;
}
 
.c-flow__body {
  margin:      1.4rem 0 0;
  font-size:   1.6rem;
  font-weight: 400;
  line-height: 2;
  color:       var(--color-black);
  text-align:  left;
}

.c-flow__content .c-checklist {
  margin-block: 2.4rem;
  margin-inline: 0;
  padding: 3.2rem 2.6rem;
}
 
@media (max-width: 740px) {
  .c-flow__body {
    font-size: 1.6rem;
  }

  #ServiceFlow .c-section-body {
    padding-left: 2rem;
  }

  .c-flow__content {
    padding-left: 3.2rem;
    padding-bottom: 0.5rem;
  }
}

/* ==============================================
   Our Commitment
============================================== */
.commitment__detail {
  font-size: 1.6rem;
  text-align: left;
  line-height: 2;
}

#OurCommitment .c-section-heading__title {
  font-size: 2.5rem;
}

#OurCommitment .c-section-footer {
  padding-block: clamp(4.2rem, 1.304rem + 6.304vw, 6rem) clamp(2rem, -3.791rem + 12.609vw, 5.6rem);
}

/* ==============================================
   Service Flow
============================================== */

#SpecialContents.p-section {
  padding-block: clamp(0.4rem, 5.613rem - 4.348vw, 2.4rem);
  background-color: #FFF5F5;
}
