/* =======================================
共通
======================================== */

br.sp {
  display: none;
}

.px-7 {
  padding-left: 7px !important;
  padding-right: 7px !important;
}


@media (max-width: 991px) {
  .section-box .sec-title {
    font-size: min(calc(40px + (60 - 40) * (100vw - 320px) / (991 - 320)),
        60px);
    margin-bottom: min(calc(20px + (60 - 20) * (100vw - 320px) / (991 - 320)),
        60px);
  }

  .section-box .sub-title {
    font-size: min(calc(14px + (20 - 14) * (100vw - 320px) / (991 - 320)),
        20px);
  }

  .main_ttl h2 {
    padding: 0.2em 1em 0.2em 1em;
  }

  .main_ttl .fs-en {
    font-size: min(calc(30px + (60 - 30) * (100vw - 320px) / (991 - 320)), 60px);
  }

  .main_ttl .txt {
    font-size: min(calc(14px + (20 - 14) * (100vw - 320px) / (991 - 320)), 20px);
  }

}

@media (max-width: 768px) {
  br.sp {
    display: block;
  }
}


:root {
  /* ブランドカラー */
  --main-color: #33b29a;
  --sub-color: #e59222;
  --blue-color: #f2fffd;
}

.main-ttl-wrap {
  margin-bottom: 120px;
  margin-top: var(--header-height, 0px);
}

.main_ttl {
  position: relative;
}

.main_ttl>.bg {
  width: 100%;
  height: 380px;
}

.main_ttl h2 {
  display: block;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  top: 54%;
  align-items: center;
  position: absolute;
  justify-content: center;
}

.main_ttl>.bg img {
  max-width: inherit;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.main_ttl_text_box {
  height: 100%;

}

.main-ttl-box {
  height: 100%;
  display: block;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  top: 50%;
  align-items: center;
  position: absolute;
  justify-content: center;
}

.main-ttl-bg {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  width: 400px;
  height: auto;
  margin: 0 auto;
}

.main_ttl .fs-en {
  font-weight: 700;
  display: block;
  color: #fff;
  font-size: 72px;
  white-space: nowrap;
  line-height: 1;
  text-align: center;
}

.achievements.main_ttl .fs-en {
  font-size: 42px;
}

.main_ttl .txt {
  text-align: center;
  font-size: 20px;
  line-height: 1;
  display: block;
  white-space: nowrap;
  color: #fff;
}

.section-box .sec-title {
  font-weight: 700;
  font-family: "Zen Maru Gothic", sans-serif;
  color: var(--main-color);
  font-size: 72px;
  line-height: 1;
  letter-spacing: 0;
  margin-bottom: 60px;
}

.section-box .sub-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  font-family: "Zen Maru Gothic", sans-serif;
  color: var(--main-color);
  margin-bottom: 5px;
  display: table;
}

.detail-btn-list .flex-box {
  display: flex;
  justify-content: center;
  gap: 0 20px;
}

.detail-btn-list {
  max-width: 1170px;
  width: 100%;
  margin: 60px auto 0;
}

@media (max-width: 1500px) {
  .main-ttl-wrap {
    margin-bottom: min(calc(80px + (100 - 80) * (100vw - 992px) / (1500 - 992)),
        100px);
  }

  .main_ttl .fs-en {
    font-size: min(calc(48px + (72 - 48) * (100vw - 992px) / (1500 - 992)),
        72px);
  }

  .main_ttl .txt {
    font-size: min(calc(16px + (20 - 16) * (100vw - 992px) / (1500 - 992)),
        20px);
  }

  .main-ttl-bg {
    width: min(calc(300px + (400 - 300) * (100vw - 992px) / (1500 - 992)),
        400px);
  }

  .main_ttl>.bg {
    width: 100%;
    height: min(calc(300px + (380 - 300) * (100vw - 992px) / (1500 - 992)),
        380px);
  }

  .section-box .sec-title {
    font-weight: 700;
    color: #00b98f;
    font-size: min(calc(48px + (72 - 48) * (100vw - 992px) / (1500 - 992)),
        72px);
    line-height: 1;
    letter-spacing: 0;
    margin-bottom: min(calc(40px + (60 - 40) * (100vw - 992px) / (1500 - 992)),
        60px);
  }

  .section-box .sub-title {
    font-size: min(calc(16px + (20 - 16) * (100vw - 992px) / (1500 - 992)),
        20px);
  }

  .achievements-detail-content .container,
  .detail-btn-list {
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

}

@media (max-width: 991px) {
  .main-ttl-wrap {
    margin-bottom: min(calc(60px + (80 - 60) * (100vw - 320px) / (991 - 320)),
        80px);
  }

  .main_ttl .fs-en {
    font-size: min(calc(40px + (60 - 40) * (100vw - 320px) / (991 - 320)),
        60px);
  }

  .main_ttl .txt {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)),
        16px);
  }

  .main-ttl-bg {
    width: min(calc(260px + (300 - 260) * (100vw - 320px) / (991 - 320)),
        260px);
  }

  .main_ttl>.bg {
    width: 100%;
    height: min(calc(260px + (300 - 260) * (100vw - 320px) / (991 - 320)),
        300px);
  }

  .section-box .sec-title {
    font-size: min(calc(40px + (60 - 40) * (100vw - 320px) / (991 - 320)),
        60px);
    margin-bottom: min(calc(20px + (40 - 20) * (100vw - 320px) / (991 - 320)),
        40px);
  }

  .section-box .sub-title {
    font-size: min(calc(16px + (20 - 16) * (100vw - 320px) / (991 - 320)),
        20px);
  }

  .detail-btn-list .flex-box {
    display: block;
  }
  .achievements.main_ttl .fs-en {
    font-size: 33px;
  }

}

/* =======================================
パンくず
======================================== */
.breadcrumb-area {
  width: 100%;
  padding: 12px 0;
  background-color: var(--main-color)
}


.breadcrumb_wrap .panlist {
  font-weight: 500;
  font-size: 11px;
  line-height: 1.2;
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;
  overflow-y: hidden;
  overflow-x: auto;
}

.breadcrumb_wrap .panlist>li {
  display: flex;
  align-items: center;
}


.breadcrumb_wrap .panlist>li {
  font-size: 11px;
}

.breadcrumb_wrap .panlist>li>a {
  color: #fff;
  white-space: nowrap;
}

.breadcrumb_wrap .panlist>li.active {
  color: #fff;
  text-decoration: none;
  pointer-events: none;
}

.breadcrumb_wrap .panlist>li+li:before {
  content: ">";
  letter-spacing: normal;
  display: block;
  padding: 0 0.5em;
}

.breadcrumb_wrap .panlist>li+li:before {
  transform: translateY(-0.1em);
}

/* =======================================
提供サービス詳細
======================================== */
.organize-head-area h3 {
  font-weight: 700;
  font-size: 32px;
  line-height: 1.75;
  color: #204483;
  text-align: center;
  position: relative;
  margin-bottom: 80px;
}

.organize-head-area h3::after {
  width: 80px;
  height: 2px;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  content: '';
  display: block;
  position: absolute;
  background-color: var(--sub-color);
}

.organize-box {
  margin-top: 100px;
}

.organize-box.second {
  padding: 150px 0 100px;
  background-color: #f2fffd;
  position: relative;
}

.organize-box.second:after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -1px;
  z-index: 10;
  width: 100%;
  aspect-ratio: 2000 / 147;
  background: url(../images/common/white-bg-top.svg) no-repeat center bottom / 100% 100%;
}

.organize-box .container {
  background-color: #f2fffd;
  padding: 50px;
}

.organize-box.second .container {
  background-color: #ffffff;
}

.organize-box.second {
  background-color: #f2fffd;
}

.organize-box .text-box {
  padding-top: 20px;
}

.organize-box h4 {
  color: var(--sub-color);
  font-size: 24px;
  margin-bottom: 30px;
  font-weight: 700;
}

.organize-box p {
  font-size: 16px;
  line-height: 2;
}

.organize-flow-area {
  margin-top: 120px;
}

.organize-flow-wrap {
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
  padding: 0 15px;
}

.flow-box {
  position: relative;
    border-collapse: collapse;
}
.flow-box .box {
  position: relative;
  padding-left: 40px;
}
.flow-box .box:nth-child(n+2) {
  border-top: 1px dotted #ccc;
  margin-top: 20px;
  padding-top: 20px;
  position: relative;
  padding-left: 40px;
}
.flow-box .ttl {
  color:var(--main-color);
  font-weight: 700;
  font-size: 22px;
}
.flow-box .in p {
  font-size: 16px;
}
.flow-box::after {
  content:'';
  position: absolute;
  top:15px;
  left: 0;
  background-color: #204483;
  width: 3px;
  height: calc(100% - 30px); /* 一番下の丸の中心で止まるように調整 */
  border-radius: 50px;
}
/* 親の縦線は使わない */
.flow-box::after { content: none; }

/* 丸（既存） */
.flow-box .box::before{
  content:'';
  position:absolute;
  top:6px;           /* 丸の上端 */
  left:-15px;
  width:30px;height:30px;
  border-radius:50%;
  border:1px solid #204483;
  background:#fff;
  z-index:100;
}
.flow-box .box.first::before{
  border:none;background:#204483;
}

/* 各ボックスの「中心から下へ」— 次の丸の中心まで線を描く */
.flow-box .box:not(:last-child)::after{
  content:'';
  position:absolute;
  left:0;            /* 親の左端の線位置 */
  top:21px;          /* 6px + 15px（＝丸の中心） */
  width:3px;
  height:calc(100% + 30px); /* 自身の残り高さ + 次のボックスのmargin-top(30px) */
  background:#204483;
  border-radius:50px;
}
.flow-box .box:before {
  content:'';
  position: absolute;
  top:30px;
  left: -15px;
  border: 1px solid #204483;
  background-color: #fff;
  width: 30px;
  height: 30px;
  z-index: 100;
    border-radius: 50px;
}

.flow-box .box.first:before {
  content:'';
  position: absolute;
  top:6px;
  left: -15px;
  background-color: #204483;
  width: 30px;
  height: 30px;
    border-radius: 50px;
}

.organize-service-area {
  margin-top: 120px;
  padding-top: 150px;
  padding-bottom: 100px;
  position: relative;
  background-color: var(--blue-color);
}
.organize-service-area:after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -1px;
  z-index: 10;
  width: 100%;
  aspect-ratio: 2000 / 147;
  background: url(../images/common/white-bg-top.svg) no-repeat center bottom / 100% 100%;
}
.organize-flow-area .sub-title,
.organize-service-area .sub-title {
    font-weight: 700;
    margin: 0 auto 50px;
    font-family: "Zen Maru Gothic", sans-serif;
    color: var(--main-color);
    font-size: 40px;
    text-align: center;
    line-height: 1;
    letter-spacing: 0;
    margin-bottom: 60px;
}
.organize-service-area h4 {
    padding: 10px 0;
    color: #fff;
    line-height: 1.5;
    width: 100%;
    background-color: #e59222;
    font-size: 24px;
    text-align: center;
    margin-bottom: 28px;
}
.organize-service-area .row {
  display: flex;
  gap: 30px 0;
  flex-wrap: wrap;
}
.organize-service-area .row > [class*="col-"] {
  display: flex;
}
.organize-service-box {
  background-color: #fff;
  padding: 30px;
  flex: 1; /* 高さを揃える */
  display: flex;
  flex-direction: column;
}
.organize-service-img {
  margin-bottom: 20px;
  border: 1px solid #ccc;
}
.organize-service-img img {
  height: 300px;
  object-fit: contain;
  width: 100%;
}

.organize-service-box .text {
  font-size: 16px;
}

@media (max-width: 1500px) {
  .organize-head-area h3 {
    font-size: min(calc(28px + (32 - 28) * (100vw - 992px) / (1500 - 992)),
        32px);
    margin-bottom: 50px;
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }
  .organize-head-area .container {
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }
  .organize-head-area h4 {
    color: var(--sub-color);
    font-size: min(calc(20px + (24 - 20) * (100vw - 992px) / (1500 - 992)), 24px);
    margin-bottom: 28px;
    font-weight: 700;
  }
  .organize-head-area .text-box p {
    font-size: min(calc(14px + (16 - 14) * (100vw - 992px) / (1500 - 992)), 16px);
  }

}

@media (max-width: 991px) {
  .organize-head-area h3 {
    font-size: min(calc(24px + (28 - 24) * (100vw - 320px) / (991 - 320)),
        28px);
  }

  .organize-head-area h3::after {
    width: min(calc(60px + (80 - 60) * (100vw - 320px) / (991 - 320)),
        80px);
  }
  .organize-head-area h3 br.pc {
    display: none;
  }
  .organize-flow-area .sub-title, .organize-service-area .sub-title {
      margin: 0 auto 40px;
      font-size: 30px;
      margin-bottom: 40px;
  }
  .organize-flow-area {
    margin-top: 80px;
  }
  .organize-head-area {
    padding: 0;
  }
  .organize-box {
      margin-top: 60px;
  }
  .organize-box.first {
      margin-top: 80px;
  }
  .organize-box.second {
    padding: min(calc(80px + (120 - 80) * (100vw - 320px) / (991 - 320)), 120px) 0 min(calc(60px + (80 - 60) * (100vw - 320px) / (991 - 320)), 80px);
  }

  .organize-head-area h3 {
    font-size: min(calc(20px + (28 - 20) * (100vw - 320px) / (991 - 320)),
        28px);
    margin-bottom: min(calc(40px + (50 - 40) * (100vw - 320px) / (991 - 320)),
        50px);
  }
 .organize-box h4 {
    font-size: 18px;
    margin-bottom: min(calc(16px + (28 - 16) * (100vw - 992px) / (991 - 320)), 28px);
  }

  .organize-box p {
    font-size: 14px;
  }
  .flow-box .ttl {
      color: var(--main-color);
      font-weight: 700;
      font-size: 18px;
  }
  .flow-box .box.first:before {
    content:'';
    position: absolute;
    top:6px;
    left: -15px;
    background-color: #204483;
    width: 30px;
    height: 30px;
    border-radius: 50px;
  }
    .flow-box .box:nth-child(n+2) {
      border-top: 1px dotted #ccc;
      margin-top: 20px;
      padding-top: 20px;
      position: relative;
      padding-left: 40px;
  }
  .flow-box .box:before {
      content: '';
      position: absolute;
      top: 25px;
      left: -15px;
      border: 1px solid #204483;
      background-color: #fff;
      width: 30px;
      height: 30px;
      z-index: 100;
      border-radius: 50px;
  }
  .flow-box .in p {
    font-size: 14px;
  }
    .organize-service-area {
      margin-top: 60px;
      padding-top: 100px;
      padding-bottom: 80px;
      position: relative;
      background-color: var(--blue-color);
  }
  .organize-service-area h4 {
      padding: 8px 0;
      color: #fff;
      line-height: 1.5;
      width: 100%;
      background-color: #e59222;
      font-size: 20px;
      text-align: center;
      margin-bottom: 28px;
  }

  .organize-service-box .text {
    font-size: 14px;
  }

}
@media (max-width: 768px) {
.organize-box .container {
    background-color: #f2fffd;
    padding: 40px;
}
.organize-service-img {
    margin-bottom: 15px;
    border: 1px solid #ccc;
}
    .organize-service-area h4 {
        padding: 6px 0;
        color: #fff;
        line-height: 1.5;
        width: 100%;
        background-color: #e59222;
        font-size: 20px;
        text-align: center;
        margin-bottom: 20px;
    }
    .organize-service-box {
    background-color: #fff;
    padding: 20px;
    flex-direction: column;
}
.organize-service-img img {
    height: 230px;
    object-fit: contain;
    width: 100%;
}
}
/* =======================================
NEWS詳細
======================================== */
.news-detail-area {
  padding-bottom: 150px;
}

.item-gallery {
  margin: 0 auto;
}

.gallery-main {
  margin: 0 0 1rem;
  background: var(--blue-color);
  aspect-ratio: 16/9;
  overflow: hidden;
  position: relative;
}

.main-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 1;
  transition: opacity 0.2s ease;
}

.main-image-wrap img.is-fading {
  opacity: 0;
}

.gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}

.thumb {
  cursor: pointer;
  border: 4px solid transparent;
  overflow: hidden;
  background: #eef4fb;
  transition: border-color 0.2s ease;
}

.thumb.is-selected {
  border-color: var(--sub-color);
}

.thumb img {
  width: 100%;
  height: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
}

.news-detail-area h3 {
  font-weight: 700;
  font-size: 32px;
  line-height: 1.75;
  color: #204483;
  text-align: center;
  position: relative;
  margin-bottom: 80px;
}

.news-detail-area h3::after {
  width: 80px;
  height: 2px;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  content: '';
  display: block;
  position: absolute;
  background-color: var(--sub-color);
}

.item-gallery {
  margin-bottom: 20px;
}

.detail-top-text {
  font-size: 16px;
}

.news-item-img-left,
.news-item-img-right {
  margin-top: 80px;
}

.news-item-img-left p,
.news-item-img-right p {
  font-size: 16px;
  word-wrap: break-word;
  /* 古い書き方（互換性あり） */
  overflow-wrap: break-word;
  /* 推奨：長い単語でも改行 */
}

.news-item-img-left img,
.news-item-img-right img {
  width: auto;
  max-width: 100%;
  height: auto;
}

@media (max-width: 1500px) {
  .news-detail-area .container {
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

  .news-detail-area h3 {
    font-size: min(calc(28px + (32 - 28) * (100vw - 992px) / (1500 - 992)),
        32px);
    margin-bottom: 50px;
  }
}

@media (max-width: 991px) {
  .news-detail-area h3 {
    font-size: min(calc(24px + (28 - 24) * (100vw - 320px) / (991 - 320)),
        28px);
  }

  .news-item-img-left,
  .news-item-img-right {
    margin-top: min(calc(50px + (80 - 50) * (100vw - 320px) / (991 - 320)),
        80px);
  }

  .news-item-img-left p,
  .news-item-img-right p,
  .detail-top-text {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)),
        16px);
  }

  .news-sp-order-1 {
    order: 1;
  }

  .news-sp-order-2 {
    order: 2;
  }
}

@media (max-width: 768px) {
  .gallery-main {
    margin: 0 0 10px;
  }

  .gallery-thumbs {
    gap: 8px;
  }

  .news-item-img-left p,
  .news-item-img-right p {
    margin-top: 20px;
  }

  .gallery-thumbs {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* =======================================
お問い合わせ
======================================== */
.tel-fax-area h3 {
  font-weight: 700;
  font-size: 32px;
  line-height: 1.75;
  color: #204483;
  text-align: center;
  position: relative;
  margin-bottom: 80px;
}

.tel-fax-area h3::after {
  width: 80px;
  height: 2px;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  content: '';
  display: block;
  position: absolute;
  background-color: var(--sub-color);
}

.tel-fax-area .icon {
  width: 100%;
  margin-right: 15px;
  max-width: 40px;
  height: 40px;
}

.tel-fax-wrap {
  padding: 25px;
  background-color: #fff5e7;
}

.tel-fax-box {
  display: flex;
  justify-content: center;
  align-items: center;
}

.tel-fax-area .number-text {
  font-weight: 700;
  line-height: 1;
  font-size: 60px;
  transform: translateY(-0.1em);
}

.tel-fax-area .text {
  text-align: center;
  font-size: 22px;
  margin-top: 5px;
}

.tel-fax-ttl {
  font-size: 26px;
  background-color: #fff;
  padding: 10px;
  margin-bottom: 20px;
  font-weight: 700;
  text-align: center;
  color: var(--main-color);
}

.tel-fax-box .icon {
  padding: 8px;
  margin-right: 8px;
  border-radius: 3px;
  background-color: #e59222;
}

.tel-fax-box .icon {
  color: #fff;
  line-height: 1;
  display: flex;
  justify-content: center;
  font-size: 24px;
}

.entry-form-area {
  margin-top: 80px;
  background-color: var(--blue-color);
  padding: 150px 0 100px;
  position: relative;
}

.entry-form-area:after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -1px;
  z-index: 10;
  width: 100%;
  aspect-ratio: 2000 / 147;
  background: url(../images/common/white-bg-top.svg) no-repeat center bottom / 100% 100%;
}

.entry-form-area .text-center {
  text-align: center;
  font-size: 18px;
}

.contactform {
  margin-top: 50px;
}

.optional {
  color: #fff;
  font-weight: 400;
  background: #999;
  font-size: 12px;
  padding: 0.2em 0.5em;
}

.required {
  font-weight: 400;
  font-size: 12px;
  padding: 0.2em 0.5em;
  transform: translateY(-0.1em);
  color: #fff;
  display: inline-block;
  background-color: #204483;
}

input[type="radio" i] {
  transform: translateY(-0.1em);
}

.radio-line .row {
  gap: 8px 0;
}

.notes {
  margin-top: 5px;
  display: block;
  font-size: 16px;
  font-weight: 400;
  color: #999;
}

#policy h4 {
  font-size: 25px;
  color: #204483;
  margin-bottom: 20px;
  font-weight: 700;
}

.buttons {
  text-align: center;
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}


textarea.form-control {
  height: auto;
}

#policy {
  margin-top: 50px;
}

#policy .contents {
  padding: 1.5% 3.5%;
  border: solid 1px #ccc;
  max-height: 300px;
  word-wrap: break-word;
  overflow-wrap: break-word;
  overflow: auto;
  background-color: #fff;
}

#policy .contents h5 {
  font-size: 18px;
  font-weight: bold;
  margin: 2em 0 0;
}

#policy .contents p,
#policy .contents ol {
  font-size: 18px;
  margin: 1em 0;
}

#policy .contents>ol {
  counter-reset: number;
  /* カウンター初期化 */
}

#policy .contents>ol>li {
  position: relative;
  font-size: 18px;
  margin-bottom: 5px;
  padding-left: 2.5em;
  /* 番号分の余白 */
}

#policy .contents>ol>li::before {
  position: absolute;
  top: 0;
  left: 0;
  counter-increment: number;
  content: "(" counter(number) ") ";
  /* ← カッコで囲む */
}



.confirm-only {
  margin-left: auto;
  margin-right: auto;
  margin-top: 30px;
  justify-content: center;
  display: flex;
  gap: 0 20px;
}

.confirm-only .send-btn,
.confirm-only .return-btn {
  max-width: 300px;
  margin-left: 0;
  margin-right: 0;
}


.buttons {
  text-align: center;
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

/*
.buttons .fa-arrow-right,
.confirm-only .send-btn .fa-arrow-right,
.confirm-only .return-btn .fa-arrow-right {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}
*/
.agree {
  text-align: center;
  margin-top: 20px;
}

.agree label {
  font-size: 18px;
  display: inline-block;
  margin-bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;

}

.agree input[type="checkbox"] {
  margin-right: 5px;
}

.sei {
  padding-right: 20px;
}

.contactform .name-box {
  display: flex;
  /* divを横並びに */
  gap: 20px;
  /* 間隔 */
}

.contactform .name-box div {
  display: flex;
  align-items: center;
  /* ラベルと入力欄を縦位置そろえ */
  gap: 5px;
}

.table-contact {
  line-height: 1.75;
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  border-top: 1px solid #BCBEBF;
  margin-bottom: 30px;
}

.table-contact>tbody>tr {
  border-bottom: 1px solid #ccc;
}

.table-contact>tbody>tr>th {
  width: 15em;
  padding-left: 1em;
}

.table-contact>tbody>tr>td {
  padding-left: 2em;
}

/* テーブルの基本 */
.table-contact {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  /* 線のズレ防止 */
  border-spacing: 0;
}

/* th / td の揃えと余白を統一 */
.table-contact th,
.table-contact td {
  vertical-align: top;
  /* ← ここが肝（Safari対策） */
  padding: 12px 16px;
  line-height: 1.6;
}

/* 任意：左の見出し幅 */
.table-contact th {
  width: 15em;
  /* 使っているなら固定幅はここで */
  white-space: nowrap;
}

.table-contact tr:last-child th,
.table-contact tr:last-child td {
  border-bottom: none;
}

.table-contact th,
.table-contact td {
  vertical-align: top;
  /* ← Safariでも確実に上揃え */
}

.table-contact>tbody>tr>th,
.table-contact>tbody>tr>td {
  padding: 1em 0;
  font-size: 18px;
}

.form-control {
  display: block;
  width: 100%;
  height: calc(2em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 2;
  color: #000;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: 0;
}

#element {
  border: 1px solid #ced4da;
  padding: 0.375rem 0.75rem;
  font-weight: 500;
}

/* inputを非表示にして自作UIに置き換える */
.file-upload input[type="file"] {
  display: none;
}

.file-upload {
  display: inline-flex;
  align-items: center;
  border: 1px solid #000;
  padding: 12px 12px;
  cursor: pointer;
  gap: 10px;
}

/* 本物のファイル入力は非表示にして label 経由でクリック */
.file-upload input[type="file"] {
  display: none;
}

.file-btn {
  background-color: #eee;
  border: 1px solid #000;
  padding: 4px 8px;
  white-space: nowrap;
}

#statusMsg {
  color: #999;
  font-size: 16px;
  font-weight: 400;
}

/* 共通 */
.entry-form-area ::placeholder {
  color: #ccc !important;
  font-weight: 400;
}

.p-postal-code {
  width: 30%;
}

.input-name {
  display: block;
  width: 100%;
}

.input-name {
  margin-bottom: 10px;
}

.contactform {
  font-size: 18px;
}

.form-line+.form-line {
  margin-top: 20px;
}

.send-btn {
  position: relative;
}

.send-btn .more-white-icon,
.btn-primary .more-white-icon {
  position: absolute;
  right: 16px;
  width: 30px;
  height: 30px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50% 50%;
  background-color: #fff;
  justify-content: center;
}

.send-btn:hover,
.btn-primary:hover {
  color: var(--main-color);
}

.send-btn:hover .more-white-icon,
.btn-primary:hover .more-white-icon {
  background-color: var(--main-color);
}

.btn-primary .fa-arrow-right,
.send-btn .fa-arrow-right {
  color: var(--main-color);
  font-size: 16px;
}

.btn-primary:hover .fa-arrow-right,
.send-btn:hover .fa-arrow-right {
  color: #fff;
}

.return-btn .more-white-icon {
  position: absolute;
  left: 16px;
  width: 30px;
  height: 30px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50% 50%;
  background-color: #fff;
  justify-content: center;
}

.return-btn .fa-arrow-left {
  color: #999999;
  font-size: 16px;
}

.return-btn:hover .fa-arrow-right {
  color:#333333;
}

.btn-primary,
.send-btn,
.return-btn {
  position: relative;
  margin: 0 auto;
  max-width: 300px;
  display: block;
  width: 100%;
  text-align: center;
  color: #fff;
  padding: 12px 0;
  font-weight: 400;
  line-height: 1;
  border-radius: 40px;
  overflow: hidden;
  color: #fff;
  border: none;
  line-height: 1.5;
  background: var(--main-color);
  font-size: 16px;
  border: 1px solid var(--main-color);
  transition: 0.7s !important;
}

.btn-primary {
  max-width: 480px;
}
.btn-primary:hover,
.send-btn:hover {
  background-color: #fff;
}
.return-btn {
  border: 1px solid #999999;
  background: #999999;
}

.return-btn:hover {
  border: 1px solid #333333;
  background-color: #333333;
}

.more-btn {
  position: relative;
  padding-right: 2em;
  /* アイコン分の余白 */
}

/*
.btn-primary::after {
  content: "\f061"; 
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color:var(--main-color);
  position: absolute;
  right: 0.8em;
  width: 30px;
  height: 30px;
  line-height: 2;
  background-color: #fff;
  top: 50%;
  border-radius: 50% 50%;
  transform: translateY(-50%);
}
*/
@media (max-width: 1500px) {
  .tel-fax-ttl {
    font-size: min(calc(22px + (26 - 22) * (100vw - 992px) / (1500 - 992)),
        26px);
    background-color: #fff;
    padding: min(calc(8px + (10 - 8) * (100vw - 992px) / (1500 - 992)),
        10px);
    margin-bottom: 20px;
  }


  .tel-fax-area .number-text {
    font-size: min(calc(50px + (60 - 50) * (100vw - 992px) / (1500 - 992)),
        60px);
  }

  .tel-fax-area .text {
    font-size: min(calc(18px + (22 - 18) * (100vw - 992px) / (1500 - 992)),
        22px);
    margin-top: min(calc(5px + (10 - 5) * (100vw - 992px) / (1500 - 992)),
        10px);
  }

  .tel-fax-area .container,
  .entry-form-area .container {
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

  .entry-form-area .text-center {
    font-size: min(calc(16px + (18 - 16) * (100vw - 992px) / (1500 - 992)),
        18px);
  }

  .required {
    font-size: min(calc(14px + (16 - 14) * (100vw - 992px) / (1500 - 992)),
        16px);
  }

  .table-contact>tbody>tr>th,
  .table-contact>tbody>tr>td {
    font-size: min(calc(16px + (18 - 16) * (100vw - 992px) / (1500 - 992)),
        18px);
  }

  .form-control {
    font-size: min(calc(16px + (18 - 16) * (100vw - 992px) / (1500 - 992)),
        18px);
  }

  /* 共通 */
  .entry-form-area ::placeholder {
    font-size: min(calc(16px + (18 - 16) * (100vw - 992px) / (1500 - 992)),
        18px);
  }

  #policy h4 {
    font-size: min(calc(22px + (25 - 22) * (100vw - 992px) / (1500 - 992)),
        25px);
    margin-bottom: min(calc(15px + (20 - 15) * (100vw - 992px) / (1500 - 992)),
        20px);
  }

  #policy .contents p,
  #policy .contents ol {
    font-size: min(calc(16px + (18 - 16) * (100vw - 992px) / (1500 - 992)),
        18px);
  }

  #policy .contents h5 {
    font-size: min(calc(16px + (18 - 16) * (100vw - 992px) / (1500 - 992)),
        18px);
    margin: 2em 0 0;
  }

  #policy .contents>ol>li {
    font-size: min(calc(16px + (18 - 16) * (100vw - 992px) / (1500 - 992)),
        18px);
    margin-bottom: 5px;
  }

  .agree label {
    font-size: min(calc(16px + (18 - 16) * (100vw - 992px) / (1500 - 992)),
        18px);
  }

  .btn-primary,
  .send-btn,
  .return-btn {
    font-size: 16px;
  }
}

@media (max-width: 991px) {
  .entry-form-area {
    padding: min(calc(80px + (100 - 80) * (100vw - 320px) / (991 - 320)), 100px) 0 min(calc(80px + (100 - 80) * (100vw - 320px) / (991 - 320)), 100px);
    position: relative;
  }

  .tel-fax-area h3 {
    font-size: min(calc(24px + (28 - 24) * (100vw - 320px) / (991 - 320)),
        28px);
  }

  .tel-fax-area h3::after {
    width: min(calc(60px + (80 - 60) * (100vw - 320px) / (991 - 320)),
        80px);
  }

  .tel-fax-ttl {
    padding: min(calc(6px + (10 - 6) * (100vw - 320px) / (991 - 320)),
        10px);
  }

  .fax-box {
    margin-top: 20px;
  }

  .fax-wrap {
    margin-top: min(calc(20px + (30 - 20) * (100vw - 320px) / (991 - 320)),
        30px);
  }

  .tel-fax-area {
    margin-bottom: min(calc(40px + (100 - 40) * (100vw - 320px) / (991 - 320)),
        100px);
  }

  .tel-fax-area .icon {
    height: auto;
    line-height: 1;
  }

  .tel-fax-area .number-text {
    font-size: min(calc(30px + (50 - 30) * (100vw - 320px) / (991 - 320)),
        50px);
  }

  .entry-form-area .text-center {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)),
        16px);
  }

  .required {
    font-size: min(calc(12px + (14 - 12) * (100vw - 320px) / (991 - 320)),
        14px);
  }

  .notes {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)),
        16px);
  }

  .entry-form-area ::placeholder {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)),
        16px);
  }

  #policy h4 {
    line-height: 1.5;
    font-size: min(calc(18px + (22 - 18) * (100vw - 320px) / (991 - 320)),
        22px);
    margin-bottom: 20px;
  }

  #policy .contents p,
  #policy .contents ol {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)),
        16px);
  }

  #policy .contents h5 {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)),
        16px);
    margin: 2em 0 0;
  }

  #policy .contents>ol>li {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)),
        16px);
    margin-bottom: 5px;
  }

  .agree label {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)),
        16px);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .btn-primary,
  .send-btn,
  .return-btn {
    padding: 8px 0;
    max-width: min(calc(360px + (400 - 360) * (100vw - 320px) / (991 - 320)),
        400px);
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)),
        16px);
  }

  .btn-primary .more-white-icon,
  .send-btn .more-white-icon
   {
    position: absolute;
    right: 12px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50% 50%;
    background-color: #fff;
  }
  .return-btn .more-white-icon {
    position: absolute;
    left: 12px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50% 50%;
    background-color: #fff;
  }
  .btn-primary .fa-arrow-right,
  .send-btn .fa-arrow-right {
    color: var(--main-color);
    font-size: 12px;
  }

  .confirm-only .send-btn,
  .confirm-only .return-btn {
    max-width: min(calc(160px + (180 - 160) * (100vw - 320px) / (991 - 320)),
        180px);
    margin-left: 0;
    margin-right: 0;
  }

  .confirm-only {
    gap: 0 min(calc(15px + (20 - 15) * (100vw - 320px) / (991 - 320)),
        20px);
  }

  .table-contact>tbody>tr>th,
  .table-contact>tbody>tr>td {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)),
        16px);
  }

  .form-control {
    display: block;
    width: 100%;
    height: calc(1.75em + 0.75rem + 2px);
    padding: 0.375rem 0.75rem;
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)),
        16px);
    font-weight: 500;
    line-height: 1.75;
    color: #222222;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: 0;
  }

  #element {
    display: block;
    width: 100%;
    height: calc(1.75em + 0.75rem + 2px);
    padding: 0.375rem 0.75rem;
  }

}

@media (max-width: 768px) {
  .entry-form-area .text-center {
    text-align: left !important;
  }

  .fa-arrow-right:before {
    font-size: 14px;
  }

  .table-contact>tbody>tr {
    width: 100%;
    display: block;
    padding: 1em 0.5em;
  }

  .table-contact>tbody>tr>th,
  .table-contact>tbody>tr>td {
    width: 100%;
    display: block;
    padding: 0;
  }

  .table-contact>tbody>tr>th+td,
  .table-contact>tbody>tr>td+td {
    margin-top: .5em;
  }
}

/* =======================================
Achievements詳細
======================================== */
.achievements-detail-area {
  padding-bottom: 150px;
}

.achievements-detail-area h3 {
  font-weight: 700;
  font-size: 32px;
  line-height: 1.75;
  color: #204483;
  text-align: center;
  position: relative;
  margin-bottom: 80px;
}

.achievements-detail-area h3::after {
  width: 80px;
  height: 2px;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  content: '';
  display: block;
  position: absolute;
  background-color: var(--sub-color);
}

.achieve-img-box {
  margin-bottom: 20px;
}

.achieve-head-text {
  font-size: 16px;
}

.achievements-detail-area .date {
  text-align: center;
  font-size: 14px;
}

.achieve-img-box>div {
  position: relative;
}

.achieve-img-box>div img {
  position: relative;
  width: 100%; /* 横幅は親要素に合わせて可変 */
  aspect-ratio: 582 / 436; /* 比率を固定（約4:3） */
  overflow: hidden;
}

.achieve-img-box img {
  width: 100%;
  object-fit: cover; /* はみ出しをトリミングして全体を覆う */
  display: block;
}

.before,
.after {
  z-index: 1000;
  position: relative;
  display: table;
  width: 100%;
  max-width: 120px;
  padding: 10px 20px;
  line-height: 1;
  font-size: 20px;
  margin-left: -15px;
  margin-bottom: -20px;
  color: #fff;
  font-weight: 700;
  background-color: rgba(51, 178, 154, 0.7);
}

.achieve-bottom-img {
  max-width: 800px;
  width: 100%;
  margin: 0 auto 30px;
}

.back-btn {
  color: rgb(255, 255, 255);
  max-width: min(240.924px + 5.96125vw, 300px);
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  font-size: 16px;
  line-height: 1;
  background-color: var(--sub-color);
  padding: min(11.1386px + 0.894188vw, 20px) 0px;
  margin: min(30.462px + 2.98063vw, 60px) auto 0px;
  border-radius: 40px;
  transition: 0.7s !important;
  border: 1px solid var(--sub-color);
}

.back-btn:hover {
  color:var(--sub-color);
  background-color: #fff;
}

.back-btn .more-white-icon {
  position: absolute;
  left: 16px;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50% 50%;
  background-color: #fff;
  transition: 0.7s;
}

.back-btn:hover .more-white-icon {
  background-color: var(--sub-color);
  color: #fff;
}

.back-btn .fa-arrow-left {
  color: var(--sub-color);
  font-size: 16px;
}
.back-btn:hover .fa-arrow-left {
  color: #fff;
}
.achievements-detail-content {
  margin-bottom: 50px;
}

.attached-btn {
  position: relative;
  color: rgb(255, 255, 255);
  max-width: 300px;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  font-size: 16px;
  line-height: 1;
  background-color: var(--main-color);
  padding: 20px 0;
  border-radius: 40px;
  border: 1px solid var(--main-color);
}

.attached-btn:hover {
  color:var(--main-color);
  background-color: #fff;
}

.attached-btn::after {
  position: absolute;
  left: 20px;
  content: '';
  display: block;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 26px;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url('../images/achievements/pdf-icon.svg');
}

.attached-btn.pdf::after {
  background-image: url('../images/achievements/pdf-icon.svg');
}

.attached-btn.word::after {
  background-image: url('../images/achievements/word-icon.svg');
}

.attached-btn.excel::after {
  background-image: url('../images/achievements/excel-icon.svg');
}



@media (max-width: 1500px) {
  .achievements-detail-area {
    padding-bottom: min(calc(100px + (120 - 100) * (100vw - 992px) / (1500 - 992)),
        120px) 0;
  }

  .achievements-detail-content .container,
  .detail-btn-list {
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

  .achievements-detail-area h3 {
    font-size: min(calc(28px + (32 - 28) * (100vw - 992px) / (1500 - 992)),
        32px);
    margin-bottom: 50px;
  }

}

@media (max-width: 991px) {
  .achievements-detail-area {
    padding: 0 0 min(calc(80px + (100 - 80) * (100vw - 320px) / (991 - 320)), 100px);
  }

  .achievements-detail-area h3 {
    font-size: min(calc(24px + (28 - 24) * (100vw - 320px) / (991 - 320)),
        28px);
  }

  .achievements-detail-area h3::after {
    width: min(calc(60px + (80 - 60) * (100vw - 320px) / (991 - 320)),
        80px);
  }

  .detail-btn-list .flex-box {
    display: block;
  }

  .back-btn {
    padding: min(calc(14px + (20 - 14) * (100vw - 320px) / (991 - 320)),
        20px) 0;
    color: #fff;
    max-width: min(calc(260px + (300 - 260) * (100vw - 320px) / (991 - 320)),
        300px);
    width: 100%;
    display: flex;
    margin: min(calc(40px + (60 - 40) * (100vw - 320px) / (991 - 320)),
        60px) auto 0;
    justify-content: center;
    align-items: center;
    border-radius: 40px;
    position: relative;
    font-size: 16px;
    line-height: 1;
    background-color: var(--sub-color);
  }

  .attached-btn {
    position: relative;
    color: rgb(255, 255, 255);
    width: 100%;
    display: flex;
    margin: 0 auto;
    justify-content: center;
    align-items: center;
    position: relative;
    font-size: 16px;
    line-height: 1;
    background-color: var(--main-color);
    padding: min(calc(14px + (20 - 14) * (100vw - 320px) / (991 - 320)),
        20px) 0;
    max-width: min(calc(260px + (300 - 260) * (100vw - 320px) / (991 - 320)),
        300px);
    border-radius: 40px;
  }

  .attached-btn+.attached-btn {
    margin-top: 25px;
  }
}

@media (max-width: 768px) {
  .achievements-detail-area .after-box {
    margin-top: 30px;
  }

  .achieve-head-text {
    font-size: 14px;
  }
  .achieve-bottom-img {
    margin: 60px auto 30px;
  }
  .before,
  .after {
    position: relative;
    display: table;
    width: 100%;
    max-width: 120px;
    padding: 10px 20px;
    line-height: 1;
    margin-left: -10px;
    font-size: 16px;
  }

}

/* =======================================
Achievementsリスト
======================================== */

.achieve-cat-area {
  margin-bottom: 60px;
}

.category-area {
  width: min(1170px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  outline-offset: -1px;
}

.category-box {
  border: 1px solid #15365c;
  margin: -1px 0 0 -1px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  /* ← 文字とアイコンの間隔 */
  font-weight: 700;
  font-size: 18px;
  color: #15365c;
  text-align: center;
  box-sizing: border-box;
}

.category-box a {
  width: 100%;
  display: block;
  padding: 18px 8px;
}

.category-box span {
  transform: translateY(-0.2em);
}

.category-box i {
  font-size: 0.9em;
  margin-left: 0.6em;
  color: #15365c;
}


.achieve-list-area {
  padding: 100px 0 150px;
  position: relative;
  background-color: var(--blue-color);
}

.achieve-list-area:after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -1px;
  z-index: 10;
  width: 100%;
  aspect-ratio: 2000 / 147;
  background: url(../images/common/white-bg-top.svg) no-repeat center bottom / 100% 100%;
}

.achieve-list-area h3 {
  font-weight: 700;
  font-size: 32px;
  line-height: 1.75;
  color: #204483;
  text-align: center;
  position: relative;
  margin-bottom: 80px;
}

.achieve-list-area h3::after {
  width: 80px;
  height: 2px;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  content: '';
  display: block;
  position: absolute;
  background-color: var(--sub-color);
}


.achieve-list-area .row {
  row-gap: 40px;
}

.achieve-list-area .item-card {
  padding: 30px;
  background-color: #fff;
}

.ph {
  background: #b8dbe4;
  display: grid;
  place-items: start start;
  font-size: 12px;
  color: #333;
  padding: .5rem;
}

.item-card {
  text-align: left;
}

.item-card a {
  transition: 0.7s;
}

.item-card a:hover {
  opacity: 0.6;
}

.item-card .date {
  font-size: .9rem;
  color: #555;
  margin-top: .5rem;
  margin-bottom: .25rem;
  line-height: 1;
}

.item-card .title {
  font-weight: 600;
  margin: 0;
  display: inline-flex;
  gap: .5rem;
  align-items: center;
  font-size: 1.05rem;
}

.ratio-4-3 {
  aspect-ratio: 4 / 3;
}

.ratio-16-9 img {
  object-fit: cover;
  height: 100%;
  width: 100%;
}

.achieve-list-area .item-card img {
  object-fit: cover;
  height: 100%;
  width: 100%;
}

.achieve-list-area h4 {
  color: #e59222;
  font-size: 24px;
  text-align: center;
  margin-bottom: 28px;
}

.achieve-list-area .date {
  font-weight: 700;
  font-size: 16px;
}

@media (max-width: 1500px) {

  .achieve-cat-area .container-fluid,
  .achieve-list-area .container {
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

  .achieve-list-area .item-card {
    padding: min(calc(25px + (30 - 25) * (100vw - 992px) / (1500 - 992)),
        30px);
    background-color: #fff;
  }

  .achieve-list-area .item-card h4 {
    color: #e59222;
    font-size: min(calc(20px + (24 - 20) * (100vw - 992px) / (1500 - 992)), 24px);
    text-align: center;
  }

  .achieve-list-area .row {
    row-gap: min(calc(30px + (40 - 30) * (100vw - 992px) / (1500 - 992)), 40px);
  }

  .achieve-list-area h3 {
    font-size: min(calc(28px + (32 - 28) * (100vw - 992px) / (1500 - 992)),
        32px);
    margin-bottom: 50px;
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }
}

@media (max-width: 1199px) {
  .category-area {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (max-width: 991px) {
  .category-area {
    grid-template-columns: repeat(3, 1fr);
  }

  .achieve-list-area .item-card {
    padding: min(calc(20px + (25 - 20) * (100vw - 320px) / (991 - 320)),
        25px);
    background-color: #fff;
  }

  .achieve-list-area .item-card h4 {
    font-size: 18px;
  }

  .achieve-list-area .date {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)), 16px);
  }

  .achieve-list-area .row {
    row-gap: min(calc(20px + (30 - 20) * (100vw - 992px) / (1500 - 992)), 30px);
  }

  .achieve-list-area {
    padding: min(calc(80px + (100 - 80) * (100vw - 320px) / (991 - 320)), 100px) 0 min(calc(100px + (120 - 100) * (100vw - 320px) / (991 - 320)), 120px);
    position: relative;
    background-color: var(--blue-color);
  }

  .achieve-list-area h3 {
    font-size: min(calc(24px + (28 - 24) * (100vw - 320px) / (991 - 320)),
        28px);
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

  .achieve-list-area h3::after {
    width: min(calc(60px + (80 - 60) * (100vw - 320px) / (991 - 320)),
        80px);
  }

  .category-box span {
    line-height: 1;
  }
}

@media (max-width: 680px) {
  .category-area {
    grid-template-columns: repeat(2, 1fr);
  }

  .category-box {
    font-size: 16px;
  }
}


/* =======================================
News
======================================== */
.news-list-area {
  padding-bottom: 150px;
}

.news-list-area h3 {
  font-weight: 700;
  font-size: 32px;
  line-height: 1.75;
  color: #204483;
  text-align: center;
  position: relative;
  margin-bottom: 60px;
}

.news-list-area h3::after {
  width: 80px;
  height: 2px;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  content: '';
  display: block;
  position: absolute;
  background-color: var(--sub-color);
}

.news-list-area .news-cat-list li {
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  padding-left: 38px;
  position: relative;
  color: #888888;
}

.news-list-area .news-cat-list {
  position: relative;
}

.news-list-area .news-cat-list li+li {
  margin-top: 30px;
}

.news-list-area .news-cat-list li a {
  color: #888888;
}

.news-list-area .news-cat-list li .active {
  color: #000;
}

.news-list-area .news-cat-list li a::after {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 25px;
  background-color: #888888;
  display: block;
  height: 1px;
}

.news-list-area .news-cat-list li a.active::after,
.news-list-area .news-cat-list li a:hover::after {
  background-color: var(--sub-color);
}

.news-list-area .news-cat-list.nav-tabs {
  border: none;
}

.news-list-area .news-cat-list .nav-tabs .nav-link {
  border: none;
}

.news-list-area .news-cat-list .nav-item.show .nav-link,
.news-list-area .news-cat-list .nav-link.active {
  border: none;
}

.news-list-area .news-cat-list .nav-link {
  padding: 0;
}

.news-list-area .nav-tabs .nav-link:focus,
.news-list-area .nav-tabs .nav-link:hover {
  border: none;
  margin: 0;
  padding: 0;
}

.news-list-area .news-cat-list .nav-link:focus,
.news-list-area .news-cat-list .nav-link:hover {
  color: #000;
}

.news-list-area .news-cat-list.nav-tabs .nav-link {
  margin-bottom: 0;
  border: none;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.news-list-area .news-content {
  padding-top: 20px;
  border-top: 1px solid #ccc;
  overflow-y: auto;
}

.news-list-area .news-top-detail {
  display: flex;
  margin-bottom: 5px;
  align-items: center;
  gap: 0 15px;
}

.news-list-area .news-top-detail .cat {
  max-width: 180px;
  width: 100%;
  line-height: 1;
  text-align: center;
  border-radius: 5px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #cccccc;
}

.news-list-area .news-top-detail .cat span {
  font-size: 16px;
  font-weight: 700;
  transform: translateY(-0.2em);
}

.news-list-area .news-top-detail .date {
  font-weight: 700;
  font-size: 16px;
}

.news-list-area .news-top-detail .new {
  color: var(--sub-color);
  font-weight: 700;
  font-size: 16px;
}

.news-list-area .news-list .text {
  font-size: 16px;
  padding-right: 40px;
  font-weight: 700;
}

.news-list-area .news-list>li {
  padding-bottom: 24px;
  margin-bottom: 20px;
  border-bottom: 1px solid #cccccc;
}

.news-list-area .news-list>li a {
  transition: 0.7s;
}

.news-list-area .news-list>li a:hover {
  opacity: 0.6;
}

/* ページネーション */
.paging {
  display: flex;
  gap: 8px;
  justify-content: center;
  align-items: center;
  margin-top: 40px;
}

.paging-text {
  display: inline-flex;
  justify-content: center;
  align-items: center;
}

/* 数字リンクのみ丸くする */
.paging-text a:not([rel="prev"]):not([rel="next"]),
.paging .current {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-weight: 600;
  font-size: 16px;
  text-decoration: none;
  transition: all 0.3s;
}

/* 通常の数字 */
.paging-text a:not([rel="prev"]):not([rel="next"]) {
  background-color: #f0f0f0;
  color: #000;
}

.paging-text a:not([rel="prev"]):not([rel="next"]):hover {
  background-color: var(--main-color);
  color: #fff;
}

/* 現在のページ */
.paging .current {
  background-color: var(--main-color);
  color: #fff;
}

/* Prev / Next は通常テキストのまま */
.paging-text a[rel="prev"],
.paging-text a[rel="next"] {
  background: none;
  color: #333;
  font-size: 14px;
  padding: 0 8px;
}

.news-list li {
  position: relative;
}

.news-list-area .more-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #e59222;
  width: 30px;
  height: 30px;
  position: absolute;
  right: 0;
  bottom: 24px;
  border-radius: 50%;
}

.news-list-area .fa-arrow-right {
  font-size: 16px;
  color: #fff;
}

@media (max-width: 1500px) {
  .news-list-area {
    padding-bottom: min(calc(100px + (120 - 100) * (100vw - 992px) / (1500 - 992)),
        120px) 0;
  }

  .news-list-area .container {
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

  .news-list-area h3 {
    font-size: min(calc(28px + (32 - 28) * (100vw - 992px) / (1500 - 992)),
        32px);
    margin-bottom: 50px;
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

}

@media (max-width: 991px) {
  .news-list-area {
    padding: 0 0 min(calc(80px + (100 - 80) * (100vw - 320px) / (991 - 320)), 100px);
  }

  .news-list-area h3 {
    font-size: min(calc(24px + (28 - 24) * (100vw - 320px) / (991 - 320)),
        28px);
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

  .news-list-area h3::after {
    width: min(calc(60px + (80 - 60) * (100vw - 320px) / (991 - 320)),
        80px);
  }

  .news-list-area .news-cat-list {
    position: relative;
    margin-bottom: 30px;
  }

  .news-list-area .news-cat-list li {
    font-size: min(calc(14px + (20 - 14) * (100vw - 320px) / (991 - 320)), 20px);
    padding-left: min(calc(30px + (38 - 30) * (100vw - 320px) / (991 - 320)), 38px);
  }

  .news-list-area .news-cat-list li a::after {
    width: min(calc(17px + (25 - 17) * (100vw - 320px) / (991 - 320)), 25px);
  }

  .news-list-area .news-top-detail .cat {
    max-width: 180px;
    width: 100%;
    line-height: 1;
    text-align: center;
    border-radius: 5px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #cccccc;
  }

  .news-list-area .news-top-detail .cat span {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)), 16px);
    font-weight: 700;
    transform: translateY(-0.2em);
  }

  .news-list-area .news-top-detail .date {
    font-weight: 700;
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)), 16px);
  }

  .news-list-area .news-top-detail .new {
    color: var(--sub-color);
    font-weight: 700;
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)), 16px);
  }

  .news-list-area .news-list .text {
    font-size: min(calc(14px + (16 - 14) * (100vw - 320px) / (991 - 320)), 16px);
    padding-right: 35px;
    font-weight: 700;
  }

  /* 数字リンクのみ丸くする */
  .paging-text a:not([rel="prev"]):not([rel="next"]),
  .paging .current {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    transition: all 0.3s;
  }

  /* ページネーション */
  .paging {
    display: flex;
    gap: 8px;
    justify-content: center;
    align-items: center;
  }

  .news-cat-list li+li {
    margin-top: 20px;
  }


}

/* =======================================
Faq
======================================== */
.faq-area {
  padding: 0 0 100px;
}

.faq-area h3 {
  font-weight: 700;
  font-size: 32px;
  line-height: 1.75;
  color: #204483;
  text-align: center;
  position: relative;
  margin-bottom: 100px;
}

.faq-area h3::after {
  width: 80px;
  height: 2px;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  content: '';
  display: block;
  position: absolute;
  background-color: var(--sub-color);
}

.faq-item+.faq-item {
  margin-top: 50px;
}

.faq-ttl {
  background-color: #33b29a;
  padding: 15px 70px 15px 25px;
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  position: relative;
  cursor: pointer;
  transition: 0.7s;
}

.faq-item.open .faq-ttl {
  background-color: #6aeed6e3;
  color: #000;
}


/* 白丸 */
.faq-ttl::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  /* ← 横方向の移動はしない */
  width: 40px;
  height: 40px;
  background: #fff;
  border-radius: 50%;
  z-index: 0;
  pointer-events: none;
}

/* プラス（白丸と同じ大きさの箱にして中央へ） */
.faq-ttl::before {
  content: '';
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  /* ← ここもYだけ */
  width: 40px;
  /* ← 白丸と同じサイズ */
  height: 40px;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(var(--sub-color) 0 0) center / 2px 16px no-repeat,
    /* 縦線 */
    linear-gradient(var(--sub-color) 0 0) center / 16px 2px no-repeat;
  /* 横線 */
}

/* open時（縦線を消してマイナスに） */
.faq-item.open .faq-ttl::before {
  background-size: 0 16px, 16px 2px;
}

/* faq-content 非表示／表示切り替え */
.faq-content {
  display: none;
  padding: 30px;
  border: 1px solid #6aeed6e3;
}

.faq-question {
  position: relative;
}

.faq-question.second {
  margin-top: 40px;
}

.faq-question .faq-text {
  color: #333;
  font-weight: 500;
  line-height: 1.5;
  font-size: 20px;
  font-weight: 700;
  width: 100%;
  padding-left: 55px;
}

.faq-question::after {
  position: absolute;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  left: 0;
  top: -0.1em;
  padding: 4px 10px 8px 10px;
  content: 'Q';
  color: #fff;
  background-color: var(--sub-color);
  border-radius: 10px;
}

.faq-label {
  font-weight: 700;
  color: var(--main-color);
}

.faq-answer {
  display: flex;
  margin-top: 15px;
  font-size: 16px;
  padding-left: 55px;
}

@media (max-width: 1500px) {
  .faq-area .container {
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

  .faq-area h3 {
    font-size: min(calc(28px + (32 - 28) * (100vw - 992px) / (1500 - 992)),
        32px);
    margin-bottom: 50px;
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }


}

@media (max-width: 991px) {
  .faq-area {
    padding: 0 0 min(calc(80px + (100 - 80) * (100vw - 320px) / (991 - 320)), 100px);
  }

  .faq-area h3 {
    font-size: min(calc(20px + (28 - 20) * (100vw - 320px) / (991 - 320)),
        28px);
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

  .faq-area h3::after {
    width: min(calc(60px + (80 - 60) * (100vw - 320px) / (991 - 320)),
        80px);
  }


  .faq-ttl {
    background-color: #33b29a;
    padding: min(calc(10px + (15 - 10) * (100vw - 320px) / (991 - 320)), 15px) min(calc(50px + (70 - 50) * (100vw - 320px) / (991 - 320)), 70px) min(calc(10px + (15 - 10) * (100vw - 320px) / (991 - 320)), 15px) min(calc(20px + (25 - 20) * (100vw - 320px) / (991 - 320)), 25px);
    color: #fff;
    font-size: min(calc(18px + (22 - 18) * (100vw - 320px) / (991 - 320)), 22px);
    font-weight: 700;
    position: relative;
    cursor: pointer;
    transition: 0.7s;
  }

  .faq-question .faq-text {
    color: #333;
    font-weight: 500;
    line-height: 1.5;
    font-size: min(calc(18px + (20 - 18) * (100vw - 320px) / (991 - 320)), 20px);
    font-weight: 700;
    width: 100%;
    padding-left: min(calc(40px + (55 - 40) * (100vw - 320px) / (991 - 320)), 55px);
  }

  .faq-answer {
    display: flex;
    margin-top: 15px;
    font-size: 14px;
    padding-left: min(calc(40px + (55 - 40) * (100vw - 320px) / (991 - 320)), 55px);
  }

  .faq-question::after {
    position: absolute;
    font-size: min(calc(22px + (28 - 22) * (100vw - 320px) / (991 - 320)), 28px);
    padding: min(calc(2px + (4 - 2) * (100vw - 320px) / (991 - 320)), 4px) min(calc(6px + (10 - 6) * (100vw - 320px) / (991 - 320)), 10px) min(calc(4px + (8 - 4) * (100vw - 320px) / (991 - 320)), 8px) min(calc(6px + (10 - 6) * (100vw - 320px) / (991 - 320)), 10px);
  }

  .faq-content {
    padding: min(calc(20px + (30 - 20) * (100vw - 320px) / (991 - 320)), 30px);
  }

  .faq-item+.faq-item {
    margin-top: min(calc(35px + (50 - 35) * (100vw - 320px) / (991 - 320)), 50px);
  }

  .faq-ttl::after {
    width: min(calc(30px + (40 - 30) * (100vw - 320px) / (991 - 320)), 40px);
    height: min(calc(30px + (40 - 30) * (100vw - 320px) / (991 - 320)), 40px);
  }

  .faq-ttl::before {
    width: min(calc(30px + (40 - 30) * (100vw - 320px) / (991 - 320)), 40px);
    height: min(calc(30px + (40 - 30) * (100vw - 320px) / (991 - 320)), 40px);
  }
}

@media (max-width: 768px) {
  .faq-area h3 br.pc {
    display: none;
  }
}

/* =======================================
Company
======================================== */
.page-greeting-area {
  padding: 0 0 150px;
  position: relative;
}

.page-overview-area.section-box .sec-title {
  text-align: center;
}

.page-overview-area.section-box .sub-title {
  text-align: center;
  margin: 0 auto 10px;
}


.greetings-img.sp {
  display: none;
}

.page-greeting-area .text-box p.text {
  font-size: 16px;
}

.page-greeting-area .greetings-name {
  margin-top: 20px;
  text-align: right;
  font-size: 20px;
}

.page-greeting-area .greetings-name span {
  font-size: 30px;
  margin-left: 15px;
}

.page-overview-area {
  padding: 150px 0 100px;
  position: relative;
  background-color: #f2fffd;
}

.page-overview-area:after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -1px;
  z-index: 10;
  width: 100%;
  aspect-ratio: 2000 / 147;
  background: url(../images/common/white-bg-top.svg) no-repeat center bottom / 100% 100%;
}

.overview-box>div {
  display: flex;
}

.overview-box>div dt {
  max-width: 200px;
  width: 100%;
  text-align: center;
  font-size: 18px;
  padding: 20px 0;
  border-top: 1px solid #ccc;
  color: var(--main-color);
}

.overview-box>div dd {
  border-top: 1px solid #ccc;
  max-width: calc(100% - 200px);
  width: 100%;
  font-size: 18px;
  padding: 20px 0;
}

.overview-box>div:last-child dt {
  border-bottom: 1px solid #ccc;
}

.overview-box>div:last-child dd {
  border-bottom: 1px solid #ccc;
}

.page-access-area {
  padding: 100px 0 150px;
}

.page-access-area.section-box .sec-title {
  text-align: center;
}

.page-access-area.section-box .sub-title {
  text-align: center;
  margin: 0 auto 10px;
}

@media (min-width: 769px) {

  .greetings-img {
    display: block;
    max-width: 600px;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    width: 40%;
  }
}

@media (max-width: 1500px) {
  .page-greeting-area {
    position: relative;
  }

  .page-greeting-area .container,
  .page-overview-area .container,
  .page-access-area .container {
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

  .overview-area {
    padding: min(calc(100px + (120 - 100) * (100vw - 992px) / (1500 - 992)),
        120px) 0;
  }

  .greeding-left-box p.text {
    font-size: min(calc(16px + (18 - 16) * (100vw - 992px) / (1500 - 992)),
        18px);
  }

  .representative {
    font-size: min(calc(22px + (30 - 22) * (100vw - 992px) / (1500 - 992)),
        30px);
  }

  .overview-box>div dt {
    max-width: min(calc(140px + (160 - 140) * (100vw - 992px) / (1500 - 992)),
        160px);
    font-size: min(calc(16px + (18 - 16) * (100vw - 992px) / (1500 - 992)),
        18px);
    padding: 20px 0;
  }

  .overview-box>div dd {
    max-width: calc(100% - min(calc(140px + (160 - 140) * (100vw - 992px) / (1500 - 992)),
          160px));
    font-size: min(calc(16px + (18 - 16) * (100vw - 992px) / (1500 - 992)),
        18px);
    padding: 20px 0;
  }

}

@media (max-width: 991px) {
  .page-greeting-area {
    padding: 0 0 min(calc(80px + (100 - 80) * (100vw - 320px) / (991 - 320)), 100px);
  }

  .page-greeting-area .greetings-name {
    margin-top: 20px;
    text-align: right;
    font-size: min(calc(16px + (20 - 16) * (100vw - 320px) / (991 - 320)),
        20px);
  }

  .page-greeting-area .greetings-name span {
    font-size: min(calc(24px + (30 - 24) * (100vw - 320px) / (991 - 320)),
        30px);
    margin-left: 15px;
  }



  .overview-box>div dt {
    max-width: min(calc(120px + (140 - 120) * (100vw - 992px) / (1500 - 992)),
        140px);
    font-size: min(calc(14px + (16 - 14) * (100vw - 992px) / (1500 - 992)),
        16px);
    padding: min(calc(16px + (20 - 16) * (100vw - 320px) / (991 - 320)),
        20px) 0;
  }

  .overview-box>div dd {
    max-width: calc(100% - min(calc(120px + (140 - 120) * (100vw - 992px) / (1500 - 992)),
          140px));
    font-size: min(calc(14px + (16 - 14) * (100vw - 992px) / (1500 - 992)),
        16px);
    padding: min(calc(16px + (20 - 16) * (100vw - 320px) / (991 - 320)),
        20px) 0;
  }

  .page-overview-area {
    padding: min(calc(60px + (100 - 60) * (100vw - 320px) / (991 - 320)), 100px) 0;
  }

  .page-access-area {
    padding: min(calc(80px + (100 - 80) * (100vw - 320px) / (991 - 320)), 100px) 0 min(calc(100px + (120 - 100) * (100vw - 320px) / (991 - 320)), 120px);
  }



}

@media (max-width: 768px) {

  .greetings-img.sp {
    display: block;
    margin-bottom: 30px;
  }

  .page-greeting-area .text-box p.text {
    font-size: 14px;
  }

  .map iframe {
    height: min(calc(300px + (350 - 300) * (100vw - 320px) / (991 - 320)),
        350px);
  }

  .page-greeting-area .greetings-img.pc {
    display: none;
  }
}

/* =======================================
Service
======================================== */
.page-service-area {
  padding: 0 0 100px;
}

.page-service-area h3 {
  font-weight: 700;
  font-size: 32px;
  line-height: 1.75;
  color: #204483;
  text-align: center;
  position: relative;
  margin-bottom: 50px;
}

.page-service-area h3::after {
  width: 80px;
  height: 2px;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  content: '';
  display: block;
  position: absolute;
  background-color: var(--sub-color);
}

.page-service-box {
  margin-top: 100px;
}

.page-service-box.second {
  padding: 150px 0 100px;
  background-color: #f2fffd;
  position: relative;
}

.page-service-box.second:after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -1px;
  z-index: 10;
  width: 100%;
  aspect-ratio: 2000 / 147;
  background: url(../images/common/white-bg-top.svg) no-repeat center bottom / 100% 100%;
}

.page-service-box .container {
  background-color: #f2fffd;
  padding: 50px;
}

.page-service-box.second .container {
  background-color: #ffffff;
}

.page-service-box.second {
  background-color: #f2fffd;
}

.page-service-box .text-box {
  padding-top: 20px;
}

.page-service-box h4 {
  color: var(--sub-color);
  font-size: 24px;
  margin-bottom: 30px;
  font-weight: 700;
}

.page-service-box p {
  font-size: 16px;
  line-height: 2;
}

@media (max-width: 1500px) {
  .page-service-area h3 {
    font-size: min(calc(28px + (32 - 28) * (100vw - 992px) / (1500 - 992)),
        32px);
    margin-bottom: 50px;
  }

  .page-service-box h4 {
    color: var(--sub-color);
    font-size: min(calc(20px + (24 - 20) * (100vw - 992px) / (1500 - 992)), 24px);
    margin-bottom: 28px;
    font-weight: 700;
  }

  .page-service-box p {
    font-size: min(calc(14px + (16 - 14) * (100vw - 992px) / (1500 - 992)), 16px);
  }

  .page-service-box .container {
    background-color: #f2fffd;
    padding: min(calc(40px + (50 - 40) * (100vw - 992px) / (1500 - 992)), 50px);
  }
}

@media (max-width: 991px) {
  .page-service-area {
    padding: 0 0 min(calc(80px + (100 - 80) * (100vw - 320px) / (991 - 320)), 100px);
  }

  .page-service-box.second {
    padding: min(calc(80px + (120 - 80) * (100vw - 320px) / (991 - 320)), 120px) 0 min(calc(60px + (80 - 60) * (100vw - 320px) / (991 - 320)), 80px);
  }

  .page-service-area h3 {
    font-size: min(calc(20px + (28 - 20) * (100vw - 320px) / (991 - 320)),
        28px);
    margin-bottom: min(calc(40px + (50 - 40) * (100vw - 320px) / (991 - 320)),
        50px);
    padding-left: calc(15px + 50 * (100vw - 320px) / 1180);
    padding-right: calc(15px + 50 * (100vw - 320px) / 1180);
  }

  .page-service-area h3::after {
    width: min(calc(60px + (80 - 60) * (100vw - 320px) / (991 - 320)),
        80px);
  }

  .page-service-box h4 {
    font-size: 18px;
    margin-bottom: min(calc(16px + (28 - 16) * (100vw - 992px) / (991 - 320)), 28px);
  }

  .page-service-box p {
    font-size: 14px;
  }

}

@media (max-width: 768px) {
  .page-service-area br.pc {
    display: none;
  }

  .sp-order-1 {
    order: 1;
  }

  .sp-order-2 {
    order: 2;
  }

  .page-service-box {
    margin-top: 80px;
  }
}