@charset "UTF-8";
/*=======================================================
共通
=======================================================*/
main{
  padding-top: 0;
}
body {
  font-size: min(18 / 840 * 100vw, 18px);
  line-height: calc(34.2/18);
}
.l-common-inner {
  max-width: min(840 / 840 * 100vw, 840px);
  padding-inline: min(40 / 840 * 100vw, 40px);
}

@media screen and (max-width: 767px) {
  body {
    font-size: min(30 / 767 * 100vw);
  }
  .l-common-inner {
    padding-inline: min(30 / 767 * 100vw);
  }
}
/*=======================================================
mv
=======================================================*/
.p-fv {
  background: #3B469B;
  padding-top: min(160 / 1158 * 100vw, 160px);
}
.p-fv .l-common-inner {
  max-width: min(1158 / 1158 * 100vw, 1158px);
  position: relative;
  padding: 0 min(40 / 1158 * 100vw, 40px) min(111 / 1158 * 100vw, 111px);
}
.p-fv .l-common-inner::before {
  position: absolute;
  content: "";
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  background: url("../assets/images/top/mv_openpath.svg") top center/contain no-repeat;
  width: min(1440 / 1158 * 100vw, 1440px);
  height: min(580 / 1158 * 100vw, 580px);
}
.p-fv .l-common-inner::after {
  position: absolute;
  content: "";
  right: min(22 / 1158 * 100vw, 22px);
  bottom: max(-12 / 1158 * 100vw, -12px);
  background: url("../assets/images/top/mv_illust.svg") top center/contain no-repeat;
  width: min(453 / 1158 * 100vw, 453px);
  height: min(471 / 1158 * 100vw, 471px);
}
.p-fv-hgroup {
  margin-bottom: min(76 / 1158 * 100vw, 76px);
  position: relative;
  z-index: 2;
}
.p-fv-ttl {
  display: flex;
  flex-wrap: wrap;
  gap: min(27 / 1158 * 100vw, 27px);
  font-size: min(80 / 1158 * 100vw, 80px);
  font-weight: 600;
  letter-spacing: 0.07em; /* 修正済み */
  line-height: calc(94/80);
  color: #fff;
  margin-bottom: min(7 / 1158 * 100vw, 7px);
}
.p-fv-sTtl {
  display: flex;
  align-items: center;
  gap: min(9 / 1158 * 100vw, 9px);
  font-size: min(38 / 1158 * 100vw, 38px);
  font-weight: 700;
  color: #fff;
  line-height: calc(70/38);
}
.p-fv-sTtl-inner {
  letter-spacing: 0.12em; /* 修正済み */
}
.p-fv-sTtl-deco {
  width: min(28 / 1158 * 100vw, 28px);
}
.p-fv-btnList {
  display: flex;
  flex-wrap: wrap;
  gap: min(20 / 1158 * 100vw, 20px);
  position: relative;
  z-index: 2;
}
.p-fv-btnItem .p-item-btn {
  width: min(223 / 1158 * 100vw, 223px);
  height: min(61 / 1158 * 100vw, 61px);
  padding-bottom: min(1 / 1158 * 100vw, 1px);
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: 500;
  border: 1px solid;
}
.p-fv-btnItem:first-of-type .p-item-btn {
  color: #fff;
}
.p-fv-btnItem:nth-of-type(2) .p-item-btn {
  color: #3B469B;
  background: #fff;
}

@media screen and (max-width: 767px) {
  .p-fv {
    padding-top: min(80 / 393 * 100vw);
  }
  .p-fv .l-common-inner {
    max-width: none;
    padding: 0 min(30 / 393 * 100vw) min(255 / 393 * 100vw);
  }
  .p-fv .l-common-inner::before {
    background: url("../assets/images/top/mv_openpath_sp.svg") top center/contain no-repeat;
    width: min(393 / 393 * 100vw);
    height: min(72 / 393 * 100vw);
  }
  .p-fv .l-common-inner::after {
    right: min(20 / 393 * 100vw);
    bottom: 0;
    width: min(237 / 393 * 100vw);
    height: min(235 / 393 * 100vw);
  }
  .p-fv-hgroup {
    margin-bottom: min(35 / 393 * 100vw);
  }
  .p-fv-ttl {
    gap: min(1 / 393 * 100vw);
    font-size: min(70 / 393 * 100vw);
    margin-bottom: min(6 / 393 * 100vw);
  }
  .p-fv-sTtl {
    gap: min(8 / 393 * 100vw);
    font-size: min(34 / 393 * 100vw);
    line-height: calc(62/34);
  }
  .p-fv-sTtl-deco {
    width: min(34 / 393 * 100vw);
    padding: min(3 / 393 * 100vw) min(3 / 393 * 100vw) 0;
  }
  .p-fv-btnList {
    justify-content: center;
    gap: min(20 / 393 * 100vw);
  }
  .p-fv-btnItem .p-item-btn {
    width: min(300 / 393 * 100vw);
    height: min(58 / 393 * 100vw);
  }
}
/*=======================================================
message
=======================================================*/
.p-message {
  padding: min(85 / 840 * 100vw, 85px) 0 min(100 / 840 * 100vw, 100px);
}
.p-message .p-common-mTtl {
  font-size: min(40 / 840 * 100vw, 40px);
  margin-bottom: min(48 / 840 * 100vw, 48px);
  line-height: calc(70/40);
}
.p-message-txt + .p-message-txt {
  margin-top: 2em;
}

@media screen and (max-width: 767px) {
  .p-message {
    padding: min(85 / 767 * 100vw) 0 min(100 / 767 * 100vw);
  }
  .p-message .p-common-mTtl {
    font-size: min(40 / 767 * 100vw);
    margin-bottom: min(48 / 767 * 100vw);
  }
}
/*=======================================================
bnr
=======================================================*/
.p-bnr {
  background: #FB7554;
  padding: min(68 / 840 * 100vw, 68px) 0;
}
.p-bnr-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: min(30 / 840 * 100vw, 30px);
}
.p-bnr-item {
  width: calc((100% - min(30 / 840 * 100vw, 30px)) / 2);
}
.p-bnr-link {
  display: flex;
}

@media screen and (max-width: 767px) {
  .p-bnr {
    padding: min(80 / 767 * 100vw) 0;
  }
  .p-bnr-list {
    gap: min(45 / 767 * 100vw);
  }
  .p-bnr-item {
    width: 100%;
  }
}
/*=======================================================
solution
=======================================================*/
.p-solution {
  padding: min(100 / 840 * 100vw, 100px) 0;
}
.p-solution-ttl {
  margin: 0 min(23 / 840 * 100vw, 23px) min(48 / 840 * 100vw, 48px) max(-7 / 840 * 100vw, -7px);
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  color: #000;
}
.p-solution-ttl > img {
  width: min(354 / 840 * 100vw, 354px);
}
.p-solution-txt {
  margin-bottom: min(48 / 840 * 100vw, 48px);
  text-align: center;
}
.p-solution-imgWrapper {
  display: flex;
  width: calc(min(763 / 840 * 100vw, 763px));
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
  .p-solution {
    padding: min(100 / 767 * 100vw) 0;
  }
  .p-solution-ttl {
    width: 100%;
    margin: 0 0 min(48 / 767 * 100vw);
  }
  .p-solution-ttl > img {
    width: min(531 / 840 * 100vw, 531px);
  }
  .p-solution-txt {
    margin-bottom: min(64 / 767 * 100vw);
  }
  .p-solution-imgWrapper {
    width: 100%;
    max-width: min(690 / 767 * 100vw);
  }
}
/*=======================================================
support
=======================================================*/
.p-support {
  padding-bottom: min(100 / 840 * 100vw, 100px);
}
.p-support .p-common-mTtl {
  margin-bottom: min(40 / 840 * 100vw, 40px);
}
.p-support-intro {
  text-align: center;
  font-weight: 500;
  margin-bottom: min(40 / 840 * 100vw, 40px);
  letter-spacing: 0.06em;
}
.p-support-list {
  display: flex;
  flex-wrap: wrap;
  gap: min(30 / 840 * 100vw, 30px);
  margin-bottom: min(40 / 840 * 100vw, 40px);
}
.p-support-item {
  width: calc((100% - min(30 / 840 * 100vw, 30px)) / 2);
}
.p-support-item .p-item-link {
  display: grid;
  gap: min(19 / 840 * 100vw, 19px);
}
.p-support-item .p-item-link-imgWrapper {
  display: flex;
}
.p-support-item .p-item-link-body {
  display: grid;
  gap: min(9 / 840 * 100vw, 9px);
}
.p-support-item .p-item-link-ttl {
  font-size: min(16 / 840 * 100vw, 16px);
  font-weight: 400;
  line-height: calc(30.4/16);
  letter-spacing: 0.08em;
  padding-left: min(14 / 840 * 100vw, 14px);
  position: relative;
}
.p-support-item .p-item-link-ttl::before {
  position: absolute;
  content: "";
  width: min(4 / 840 * 100vw, 4px);
  height: 100%;
  background: #FB7554;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.p-support-item .p-item-link-txt {
  font-size: min(16 / 840 * 100vw, 16px);
  font-weight: 700;
  line-height: calc(30.4/16);
  letter-spacing: 0.08em;
}

@media screen and (max-width: 767px) {
  .p-support {
    padding-bottom: min(100 / 767 * 100vw);
  }
  .p-support .p-common-mTtl {
    margin-bottom: min(40 / 767 * 100vw);
  }
  .p-support-intro {
    margin-bottom: min(40 / 767 * 100vw);
  }
  .p-support-list {
    gap: min(45 / 767 * 100vw);
    margin-bottom: min(64 / 767 * 100vw);
  }
  .p-support-item {
    width: 100%;
  }
  .p-support-item .p-item-link {
    gap: min(28 / 767 * 100vw);
  }
  .p-support-item .p-item-link-body {
    gap: min(14 / 767 * 100vw);
  }
  .p-support-item .p-item-link-ttl {
    font-size: min(26 / 767 * 100vw);
    padding-left: min(21 / 767 * 100vw);
  }
  .p-support-item .p-item-link-ttl::before {
    width: min(6 / 767 * 100vw);
  }
  .p-support-item .p-item-link-txt {
    font-size: min(26 / 767 * 100vw);
  }
}
/*=======================================================
case
=======================================================*/
.p-case {
  padding: min(58 / 840 * 100vw, 58px) 0 min(91 / 840 * 100vw, 91px);
  background: #F7F7F7;
}
.p-case .p-common-mTtl {
  margin-bottom: min(40 / 840 * 100vw, 40px);
}
.p-case-intro {
  text-align: center;
  letter-spacing: 0.06em;
  margin-bottom: min(28 / 840 * 100vw, 28px);
}
.p-case-list {
  display: flex;
  flex-wrap: wrap;
  gap: min(30 / 840 * 100vw, 30px);
  margin-bottom: min(60 / 840 * 100vw, 60px);
}
.p-case-item {
  width: calc((100% - min(30 / 840 * 100vw, 30px)) / 2);
}
.p-case-item .p-item-link {
  display: block;
  border-radius: min(5 / 840 * 100vw, 5px);
  box-shadow: 0px min(2 / 840 * 100vw, 2px) min(10 / 840 * 100vw, 10px) rgba(0, 0, 0, 0.25);
}
.p-case-item .p-item-imgWrapper > img {
  border-top-left-radius: min(5 / 840 * 100vw, 5px);
  border-top-right-radius: min(5 / 840 * 100vw, 5px);
}
.p-case-item .p-item-body {
  padding: min(10 / 840 * 100vw, 10px) min(20 / 840 * 100vw, 20px);
  background: #FFFFFF;
  border-bottom-left-radius: min(5 / 840 * 100vw, 5px);
  border-bottom-right-radius: min(5 / 840 * 100vw, 5px);
}
.p-case-item .p-item-ttl {
  font-size: min(16 / 840 * 100vw, 16px);
  font-weight: 500;
  line-height: calc(30.4/16);
  letter-spacing: 0.08em;
}

@media screen and (max-width: 767px) {
  .p-case {
    padding: min(80 / 767 * 100vw) 0 min(100 / 767 * 100vw);
  }
  .p-case .p-common-mTtl {
    margin-bottom: min(40 / 767 * 100vw);
  }
  .p-case-intro {
    margin-bottom: min(40 / 767 * 100vw);
  }
  .p-case-list {
    gap: min(45 / 767 * 100vw);
    margin-bottom: min(80 / 767 * 100vw);
  }
  .p-case-item {
    width: 100%;
  }
  .p-case-item .p-item-link {
    border-radius: min(8 / 767 * 100vw);
  }
  .p-case-item .p-item-imgWrapper > img {
    border-top-left-radius: min(8 / 767 * 100vw);
    border-top-right-radius: min(8 / 767 * 100vw);
  }
  .p-case-item .p-item-body {
    padding: min(15 / 767 * 100vw) min(30 / 767 * 100vw);
    border-bottom-left-radius: min(8 / 767 * 100vw);
    border-bottom-right-radius: min(8 / 767 * 100vw);
  }
  .p-case-item .p-item-ttl {
    font-size: min(26 / 767 * 100vw);
  }
}
/*=======================================================
management
=======================================================*/
.p-management {
  padding: min(100 / 840 * 100vw, 100px) 0;
}
.p-management .p-common-mTtl {
  margin-bottom: min(40 / 840 * 100vw, 40px);
}
.p-management-intro {
  text-align: center;
  margin-bottom: min(40 / 840 * 100vw, 40px);
  font-weight: 500;
  letter-spacing: 0.06em;
}
.p-management-list {
  display: flex;
  flex-wrap: wrap;
  gap: min(30 / 840 * 100vw, 30px);
  margin-bottom: min(60 / 840 * 100vw, 60px);
}
.p-management-item {
  width: calc((100% - min(30 / 840 * 100vw, 30px)) / 2);
}
.p-management-item .p-item-link {
  display: grid;
  gap: min(19 / 840 * 100vw, 19px);
}
.p-management-item .p-item-imgWrapper {
  display: flex;
}
.p-management-item .p-item-body {
  display: grid;
  gap: min(9 / 840 * 100vw, 9px);
}
.p-management-item .p-item-date {
  font-size: min(16 / 840 * 100vw, 16px);
  line-height: calc(30.4/16);
  letter-spacing: 0.08em;
}
.p-management-item .p-item-ttl {
  font-size: min(16 / 840 * 100vw, 16px);
  font-weight: 700;
  line-height: calc(30.4/16);
  letter-spacing: 0.08em;
}

@media screen and (max-width: 767px) {
  .p-management {
    padding: min(100 / 767 * 100vw) 0;
  }
  .p-management .p-common-mTtl {
    margin-bottom: min(40 / 767 * 100vw);
  }
  .p-management-intro {
    margin-bottom: min(40 / 767 * 100vw);
  }
  .p-management-list {
    gap: min(45 / 767 * 100vw);
    margin-bottom: min(80 / 767 * 100vw);
  }
  .p-management-item {
    width: 100%;
  }
  .p-management-item .p-item-link {
    gap: min(28 / 767 * 100vw);
  }
  .p-management-item .p-item-body {
    gap: min(14 / 767 * 100vw);
  }
  .p-management-item .p-item-date {
    font-size: min(26 / 767 * 100vw);
  }
  .p-management-item .p-item-ttl {
    font-size: min(26 / 767 * 100vw);
  }
}
/*=======================================================
news
=======================================================*/
.p-news {
  padding-bottom: min(100 / 840 * 100vw, 100px);
}
.p-news .p-common-mTtl {
  color: #000;
  margin-bottom: min(16 / 840 * 100vw, 16px);
  line-height: calc(68/30);
}
.p-news-intro {
  text-align: center;
  margin-bottom: min(40 / 840 * 100vw, 40px);
  font-size: min(18 / 840 * 100vw, 18px);
  line-height: calc(35/18);
}
.p-news-list{
  margin-bottom: min(40 / 840 * 100vw, 40px);
}
@media screen and (max-width: 767px) {
  .p-news {
    padding-bottom: min(100 / 767 * 100vw);
  }
  .p-news .p-common-mTtl {
    margin-bottom: min(24 / 767 * 100vw);
  }
  .p-news-intro {
    margin-bottom: min(64 / 767 * 100vw);
    font-size: min(30 / 767 * 100vw);
  }
  .p-news-list{
    margin-bottom: min(64 / 767 * 100vw);
  }
}