@charset "UTF-8";
@media screen and (min-width: 1080px) {
  .is_sp {
    display: none;
  }
}
@media screen and (max-width: 1080px) {
  .is_pc {
    display: none;
  }
}
/*共通設定*/
html {
  scroll-behavior: smooth;
  scroll-padding-top: 70px;
}
@media screen and (max-width: 1080px) {
  html {
    scroll-padding-top: 13vw;
  }
}

body {
  background: #fff;
  position: relative;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.02em;
  height: auto;
}
body ul {
  list-style: none !important;
  padding-left: 0 !important;
}
body a {
  color: #1d428b;
}
body a:hover {
  filter: brightness(1.1);
  opacity: 0.9;
  transition: all 0.2s ease;
}
body img {
  width: 100%;
}
@media screen and (min-width: 1080px) {
  body {
    font-size: 16px;
  }
}
@media screen and (max-width: 1080px) {
  body {
    font-size: 3.7vw;
  }
}

.page_sec {
  padding-block: clamp(3em, 7vw, 6em);
  padding-inline: clamp(1em, 2vw, 2em);
}
.page_sec > * {
  max-width: 1080px;
  margin: 0 auto;
}
.page_sec.down_arrow {
  padding-bottom: 2em;
}
.page_sec.down_arrow::after {
  content: "";
  display: block;
  width: 0px;
  height: 0px;
  margin: clamp(10px, 5vw, 3em) auto 0;
  border-left: clamp(10px, 8vw, 85px) solid transparent;
  border-right: clamp(10px, 8vw, 85px) solid transparent;
  border-top: clamp(10px, 4vw, 35px) solid #1d428b;
}
.page_sec.light-blue {
  background-color: #e0eef7;
}
.page_sec.blue-grad {
  background: linear-gradient(45deg, rgb(77, 206, 235), rgb(156, 196, 220));
}
.page_sec.blue-grad .sec_ttl {
  color: white;
}
.page_sec.blue-grad .sec_ttl::after {
  background-color: white;
}
.page_sec.blue-grad > p {
  color: white;
}

/*sectionのタイトル*/
.sec_ttl {
  color: #1d428b;
  font-weight: bold;
  text-align: center;
  margin-bottom: 1.5em;
}
.sec_ttl::after {
  content: "";
  display: block;
  background-color: #1d428b;
}
@media screen and (min-width: 1080px) {
  .sec_ttl {
    font-size: 40px;
  }
  .sec_ttl::after {
    width: 60px;
    height: 3px;
    margin: 10px auto 0 auto;
  }
}
@media screen and (max-width: 1080px) {
  .sec_ttl {
    font-size: 5.8vw;
  }
  .sec_ttl::after {
    width: 16vw;
    height: 2px;
    margin: 2vw auto 0 auto;
  }
}

.p-medium {
  font-weight: bold;
  font-size: 1.25em;
  margin-inline: auto;
  max-width: 40em;
}

/*CVボタン*/
.cv_btn {
  display: inline-block;
  font-weight: bold;
  color: #fff;
  text-decoration: none;
  cursor: pointer;
  text-align: center;
  border: none;
  background-size: 300% 100%;
  moz-transition: all 0.4s ease-in-out;
  transition: all 0.4s ease-in-out;
  background-image: linear-gradient(to right, #25aae1, #40e495, #30dd8a, #2bb673);
  position: relative;
}
.cv_btn::after {
  content: "";
  background-image: url(/img/services/dgp/arrow_r-w.png);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
}
.cv_btn.btn_header {
  box-shadow: none;
}
.cv_btn:hover {
  background-position: 100% 0;
  moz-transition: all 0.4s ease-in-out;
  transition: all 0.4s ease-in-out;
}
@media screen and (min-width: 1080px) {
  .cv_btn {
    width: 300px;
    height: 70px;
    line-height: 70px;
    font-size: 20px;
    padding-right: 20px;
    box-shadow: 0.5vw 0.5vw 0 0 #4ba3c6;
  }
  .cv_btn::after {
    width: 30px;
    height: 16.5px;
    top: 26px;
    right: 4px;
  }
}
@media screen and (max-width: 1080px) {
  .cv_btn {
    width: 55vw;
    height: 13vw;
    line-height: 13vw;
    font-size: 3.7vw;
    padding-right: 2vw;
    box-shadow: 2vw 2vw 0 0 #4ba3c6;
  }
  .cv_btn::after {
    width: 6vw;
    height: 3.3vw;
    top: 5vw;
    right: 0vw;
  }
}

.btn_center {
  text-align: center;
}

/*ヘッダー*/
header {
  position: sticky;
  top: 0;
  background-color: #fff;
  width: 100%;
  box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.1019607843);
  z-index: 100;
}
header .header_inr {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-inline: 1em 0;
  margin-inline: auto;
}
header .header_inr .header_info {
  display: flex;
}
header .header_inr .logo img {
  height: auto;
}
header .logo a {
  display: inline-block;
}
@media screen and (min-width: 1080px) {
  header {
    height: 70px;
  }
  header .header_inr {
    max-width: 1200px;
    height: 70px;
  }
  header .logo a {
    width: 90px;
    display: block;
  }
}
@media screen and (max-width: 1080px) {
  header {
    height: 13vw;
  }
  header .header_inr {
    width: 100vw;
    height: 13vw;
    margin: auto;
    align-items: center;
  }
  header .logo a {
    padding-left: 3vw;
    display: block;
  }
  header .logo a img {
    width: 15vw;
  }
}

/*FVエリア*/
.area_fv {
  background-color: #e0eef7;
  background-size: cover;
  background-position: center;
  display: flex;
  justify-content: left;
  align-items: center;
}
@media screen and (min-width: 1080px) {
  .area_fv {
    background-image:
      linear-gradient(to right, rgba(255, 255, 255, 0.8) 0%, rgba(224, 238, 247, 0.5) 100%),
      url(/img/services/dgp-battery/DGP-battery_mv.jpg);
  }
}
@media screen and (max-width: 1080px) {
  .area_fv {
    background-image:
      linear-gradient(to right, rgba(255, 255, 255, 0.8) 0%, rgba(224, 238, 247, 0.5) 100%),
      url(/img/services/dgp-battery/DGP-battery_mv-sp.jpg);
  }
}
.area_fv .fv_cnt {
  max-width: 1200px;
  margin-inline: auto;
  padding-block: clamp(3em, 4vw, 6rem);
  padding-inline: 1em;
}
.area_fv .fv_cnt .fv_ttl {
  display: inline-block;
  line-height: 1.4;
  letter-spacing: 2px;
  background-color: rgba(255, 255, 255, 0.7);
  color: #1d428b;
  font-weight: bold;
}
.area_fv .fv_cnt .fv_ttl span {
  display: block;
}
.area_fv .fv_cnt .fv_subttl {
  color: #1d428b;
  font-weight: bold;
}
.area_fv .fv_cnt .fv_subttl p {
  margin-top: 10px;
}
@media screen and (min-width: 1080px) {
  .area_fv .fv_cnt {
    width: 1200px;
  }
  .area_fv .fv_cnt .fv_ttl {
    padding: 15px 20px 20px 20px;
    font-size: 40px;
  }
  .area_fv .fv_cnt .fv_subttl {
    font-size: 24px;
    margin: 40px 0 50px 0;
  }
}
@media screen and (max-width: 1080px) {
  .area_fv .fv_cnt {
    width: 100vw;
    text-align: center;
  }
  .area_fv .fv_cnt .fv_ttl {
    padding: 3vw 3vw 4vw 3.5vw;
    font-size: 9vw;
    text-align: left;
  }
  .area_fv .fv_cnt .fv_ttl span {
    font-size: 3.7vw;
    margin-top: 2vw;
    letter-spacing: 0.1px;
  }
  .area_fv .fv_cnt .fv_subttl {
    font-size: 5vw;
    line-height: 1.8;
    margin: 10vw 1em;
  }
  .area_fv .fv_cnt .btn_fv {
    text-align: center;
  }
}

/*3カラム構成*/
.three_column {
  display: flex;
  gap: 1em 3em;
  line-height: 1.8;
}
.three_column:not(:last-child) {
  margin-bottom: clamp(2em, 3vw, 4em);
}
.three_column > * {
  flex: 1 1 300px;
}
@media screen and (max-width: 1080px) {
  .three_column {
    flex-direction: column;
  }
  .three_column > * {
    flex-basis: auto;
  }
}

/*whyセクション*/
#reason .three_column {
  gap: 3em;
}

.reason_sub_ttl {
  text-align: center;
  margin-bottom: 2em;
}

.reason_img {
  border: 1px solid gainsboro;
  border-radius: 1.5em;
  margin-bottom: 1em;
  margin-inline: auto;
  height: auto;
}
@media screen and (max-width: 1080px) {
  .reason_img {
    width: 60vw;
  }
}

/*サービスセクション*/
#service .service_img {
  margin-bottom: 2em;
  height: auto;
}

/*強みセクション*/
#strenghts .three_column {
  counter-reset: cards;
  padding-top: 2em;
  gap: 5em 3em;
}
#strenghts .item {
  position: relative;
  counter-increment: cards;
}
#strenghts .item::before {
  content: counter(cards, decimal-leading-zero);
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -60%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  background: #4ba3c6;
  color: white;
  width: 3em;
  height: 3em;
  border-radius: 50%;
  border: 4px solid white;
  font-size: 1.25em;
  z-index: 1;
}
#strenghts .item_ttl {
  position: relative;
  background: #1d428b;
  color: white;
  padding: 1.25em 1em 0.75em;
  margin-bottom: 1em;
  text-align: center;
  font-size: 1.25em;
  clip-path: polygon(1em 0%, 100% 0%, calc(100% - 1em) 100%, 0% 100%);
}

/*FAQセクション*/
.faq_list dt {
  display: flex;
  align-items: center;
  gap: 1em;
  background: #e0eef7;
  padding: 1em;
  border-radius: 0.5em;
}
.faq_list dt::before {
  content: "Q";
  font-weight: bold;
  font-size: 2em;
  color: #1d428b;
  line-height: 1;
}
.faq_list dd {
  display: flex;
  align-items: center;
  gap: 1em;
  padding: 1em;
  border-radius: 0.5em;
  margin-block: 0 2em;
}
.faq_list dd::before {
  content: "A";
  font-weight: bold;
  font-size: 2em;
  color: gray;
  line-height: 1;
}

/*お問い合わせの流れ*/
.inquiry_flow {
  display: flex;
  justify-content: center;
  gap: 1em;
}
.inquiry_flow li {
  writing-mode: vertical-rl;
  background: white;
  padding: 1.5em 2.5em 1.5em 1.5em;
  text-align: center;
  font-weight: bold;
  font-size: 1.25rem;
  clip-path: polygon(
    0% 100%,
    0% 0%,
    calc(100% - 1em) 0%,
    calc(100% - 1em) calc(50% - 1em),
    100% 50%,
    calc(100% - 1em) calc(50% + 1em),
    calc(100% - 1em) 100%
  );
}
.inquiry_flow li:last-child {
  clip-path: none;
  padding: 1.5em;
}
.inquiry_flow li.highlight {
  background-color: #4ba3c6;
  color: white;
}
@media screen and (max-width: 1080px) {
  .inquiry_flow {
    flex-direction: column;
  }
  .inquiry_flow li {
    writing-mode: unset;
    padding: 1.5em 1.5em 2.5em;
    clip-path: polygon(
      0% 0%,
      100% 0%,
      100% calc(100% - 1em),
      calc(50% + 1em) calc(100% - 1em),
      50% 100%,
      calc(50% - 1em) calc(100% - 1em),
      0% calc(100% - 1em)
    );
    font-size: inherit;
  }
}

/*その他のサービス*/
#other .other_wrp {
  background-color: #e0eef7;
}
#other .other_txt {
  color: #4ba3c6;
}
#other .other_cnt {
  box-shadow: 0.5vw 0.5vw 0 0 #4ba3c6;
}
@media screen and (max-width: 1080px) {
  #other .other_cnt {
    box-shadow: 2vw 2vw 0 0 #4ba3c6;
  }
}

/*フッター*/
footer {
  background-image: linear-gradient(310deg, rgb(29, 66, 139), rgb(7, 111, 170));
  color: #fff;
  text-align: center;
  position: relative;
  z-index: 100;
}
footer nav ul {
  display: flex;
  justify-content: space-between;
  font-weight: bold;
}
footer nav ul a {
  color: #fff;
  text-decoration: none;
}
footer .link_ul {
  display: flex;
  justify-content: center;
  align-items: center;
}
footer .link_ul li:not(:last-of-type)::after {
  content: "|";
  display: inline-block;
  padding: 0 20px;
}
footer .link_ul a {
  color: #fff;
  text-decoration: none;
}
@media screen and (min-width: 1080px) {
  footer {
    padding: 45px 0;
  }
  footer nav ul {
    width: 550px;
    margin: auto;
  }
  footer nav ul a {
    font-size: 16px;
  }
  footer small {
    display: block;
    font-size: 14px;
    margin-top: 45px;
  }
  footer .link_ul {
    font-size: 16px;
    margin-top: 20px;
  }
}
@media screen and (max-width: 1080px) {
  footer {
    padding: 5vw 0;
  }
  footer nav ul {
    width: 50vw;
    margin: auto;
    flex-direction: column;
  }
  footer nav ul a {
    font-size: 3.2vw;
    margin-top: 3vw;
    display: block;
  }
  footer small {
    display: block;
    font-size: 3vw;
    margin-top: 8vw;
  }
  footer .link_ul {
    font-size: 3vw;
    margin-top: 3vw;
  }
}
footer .page-top a {
  display: block;
  background-color: #e0eef7;
  border-radius: 50%;
  position: absolute;
  color: #1d428b;
  font-weight: bold;
  text-decoration: none;
  box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.1019607843);
}
footer .page-top a::after {
  content: "";
  display: block;
  background-image: url(/img/services/dgp/icn_arrow.svg);
  background-size: contain;
  position: absolute;
  right: 0px;
  left: 0;
  margin: auto;
  background-repeat: no-repeat;
}
@media screen and (min-width: 1080px) {
  footer .page-top a {
    width: 80px;
    height: 80px;
    top: 50px;
    right: 50px;
    font-size: 20px;
    padding-top: 30px;
  }
  footer .page-top a::after {
    width: 20px;
    height: 11px;
    top: 20px;
  }
}
@media screen and (max-width: 1080px) {
  footer .page-top a {
    width: 14vw;
    height: 14vw;
    top: 1vw;
    right: 1vw;
    font-size: 4vw;
    padding-top: 5.5vw;
  }
  footer .page-top a::after {
    width: 4vw;
    height: 2vw;
    top: 3.5vw;
  }
} /*# sourceMappingURL=style.css.map */
