@charset "utf-8";

/* 共通 */
.-marker {
  background: linear-gradient(transparent 70%, #A6E1EB 70%, #A6E1EB 90%, transparent 90%);
  font-weight: 700;
}

.-color-green {
  color: var(--color-blue-green) !important;
}

.-color-blue {
  color: var(--color-blue) !important;
}

.-left {
  text-align: left !important;
}

.-right {
  text-align: right !important;
}

.-border-top {
  border-top: 3px solid var(--color-blue);
}

p {
  margin-block: 0.1em;
}

.-margin-top-0 {
  margin-top: 0 !important;
}

.-margin-top-5 {
  margin-top: 5px !important;
}

.-margin-top-10 {
  margin-top: 10px !important;
}

.-margin-top-15 {
  margin-top: 10px !important;
}

.-margin-top-25 {
  margin-top: 13px !important;
}

.-margin-top-30 {
  margin-top: 15px !important;
}

.-margin-top-50 {
  margin-top: 30px !important;
}

.-margin-top-80 {
  margin-top: 50px !important;
}

.-margin-bottm-30 {
  margin-bottom: 15px !important;
}

.-margin-0 {
  margin: 0 !important;
}

.-padding-bottom-80 {
  padding-bottom: 40px !important;
}

@media print,
screen and (min-width: 1024px) {
  .-pc-left {
    text-align: left !important;
  }

  .-border-top {
    border-top: 5px solid var(--color-blue);
  }

  .-margin-top-15 {
    margin-top: 15px !important;
  }

  .-margin-top-25 {
    margin-top: 25px !important;
  }

  .-margin-top-30 {
    margin-top: 30px !important;
  }

  .-margin-top-50 {
    margin-top: 50px !important;
  }

  .-margin-bottm-30 {
    margin-bottom: 30px !important;
  }

  .-margin-top-80 {
    margin-top: 80px !important;
  }

  .-padding-bottom-pc80 {
    padding-bottom: 80px;
  }

  .-padding-bottom-80 {
    padding-bottom: 80px !important;
  }
}

/*
---------------------------------------------------------------------
name: p-mv-wrap
メインビジュアル
---------------------------------------------------------------------
*/
.p-mv-wrap {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  &.-capability {
    background-image: url('../img/capability/mv-bg-sp.png');

    .p-mv-title-bg {
      width: 229px;
    }
  }

  &.-scsk {
    background-image: url('../img/scsk/mv-bg-sp.png');

    .p-mv-title-bg {
      width: 176px;
    }
  }

  &.-download {
    background-image: url('../img/download/mv-bg-sp.png');

    .p-mv-title-bg {
      width: 237px;
    }
  }

  &.-casestudies {
    background-image: url('../img/casestudies/mv-bg-sp.png');

    .p-mv-title-bg {
      width: 142px;
    }
  }

  &.-service {
    background-image: url('../img/service/mv-bg-sp.png');

    .p-mv-title-bg {
      width: 190px;
    }
  }

  &.-usecase {
    background-image: url('../img/usecase/mv-bg-sp.png');

    .p-mv-title-bg {
      width: 229px;
    }
  }
}

.p-mv-title-bg-wrap {
  position: relative;
}

.p-mv-inner {
  min-height: 240px;
  display: grid;
  align-content: center;
}

.p-mv-title-bg {
  opacity: 0.3;
  position: absolute;
  top: 0;
  left: 15px;

  > img {
    width: 100%;
  }
}

.p-mv-title {
  text-align: center;
  font-size: 36px;
  color: var(--color-white);
  line-height: 1.3;

  &:has(> span) {
    line-height: 1;
  }

  > span {
    font-size: 20px;
  }
}

@media print,
screen and (min-width: 768px) {
  .p-mv-title-bg {
    left: 30px;
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-mv-wrap {
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;

    &.-capability {
      background-image: url('../img/capability/mv-bg-pc.png');

      .p-mv-title-bg {
        width: 403px;
      }
    }

    &.-scsk {
      background-image: url('../img/scsk/mv-bg-pc.png');

      .p-mv-title-bg {
        width: 277px;
      }
    }

    &.-download {
      background-image: url('../img/download/mv-bg-pc.png');

      .p-mv-title-bg {
        width: 446px;
      }
    }

    &.-casestudies {
      background-image: url('../img/casestudies/mv-bg-pc.png');

      .p-mv-title-bg {
        width: 215px;
      }
    }

    &.-service {
      background-image: url('../img/service/mv-bg-pc.png');

      .p-mv-title-bg {
        width: 351px;
      }
    }

    &.-usecase {
      background-image: url('../img/usecase/mv-bg-pc.png');

      .p-mv-title-bg {
        width: 403px;
      }
    }
  }

  .p-mv-inner {
    min-height: 280px;
  }

  .p-mv-title-bg-wrap {
    max-width: 1120px;
    margin-inline: auto;
    position: relative;
  }

  .p-mv-title-bg {
    opacity: 0.2;
    position: absolute;
    top: 0;
    left: 30px;
  }

  .p-mv-title {
    font-size: 45px;
    line-height: 1.6;

    &:has(> span) {
      line-height: 1;
    }

    > span {
      font-size: 24px;
    }
  }
}

@media print,
screen and (min-width: 1120px) {
  .p-mv-title-bg {
    left: 0;
  }
}

/*
---------------------------------------------------------------------
name: p-breadcrumbs-wrap
パンくず
---------------------------------------------------------------------
*/
.p-breadcrumbs-inner {
  border-bottom: 1px solid var(--color-gray-03);
}

.p-breadcrumbs-list {
  font-size: 13px;
  font-weight: 400;
  padding: 10px 15px;

  > li {
    color: var(--color-blue);
    word-break: break-all;
    display: inline;

    + li {
      padding-left: 30px;
      background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="13.447" height="15.898" viewBox="0 0 13.447 15.898"><path d="M15.225,13.617,1.816,21.479V20.043L12.959,13.5,1.777,7V5.58L15.225,13.4Z" transform="translate(-1.777 -5.58)" fill="%23707070"/></svg>');
      background-repeat: no-repeat;
      background-size: 10px auto;
      background-position: center left 9px;
    }
  }

  a {
    color: var(--color-def);
  }
}

@media print,
screen and (min-width: 768px) {
  .p-breadcrumbs-list {
    padding: 10px 30px;
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-breadcrumbs-list {
    font-size: 14px;
    padding: 24px 30px;
    max-width: 1180px;
    margin-inline: auto;

    > li {
      + li {
        padding-left: 32px;
        background-size: 10.45px auto;
        background-position: center left 10px;
      }
    }
  }
}

/*
---------------------------------------------------------------------
name: p-content-container
コンテンツの箱
---------------------------------------------------------------------
*/
.p-content-container {

  &.-blue-bg-01,
  &.-blue-bg-02,
  &.-blue-bg-03 {
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  &.-blue-bg-01 {
    background-image: url('../img/common/blue-bg-01-sp.png');
  }

  &.-blue-bg-02 {
    background-image: url('../img/common/blue-bg-02-sp.png');
  }

  &.-blue-bg-03 {
    background-image: url('../img/common/blue-bg-03-sp.png');
  }
}

.p-content-container.-small {
  .p-content-container-inner {
    padding: 30px 15px;
  }
}

.p-content-container-inner {
  padding: 40px 15px;

  > *:first-child {
    margin-top: 0 !important;
  }

  > *:last-child {
    margin-bottom: 0 !important
  }
}

@media print,
screen and (min-width: 768px) {
  .p-content-container.-small {
    .p-content-container-inner {
      padding: 30px 30px;
    }
  }

  .p-content-container-inner {
    padding: 40px 30px;
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-content-container {

    &.-blue-bg-01,
    &.-blue-bg-02,
    &.-blue-bg-03 {
      background-position: center;
      background-size: cover;
      background-repeat: no-repeat;
    }

    &.-blue-bg-01 {
      background-image: url('../img/common/blue-bg-01-pc.png');
    }

    &.-blue-bg-02 {
      background-image: url('../img/common/blue-bg-02-pc.png');
    }

    &.-blue-bg-03 {
      background-image: url('../img/common/blue-bg-03-pc.png');
    }
  }

  .p-content-container.-small {
    .p-content-container-inner {
      padding: 50px 30px;
    }
  }

  .p-content-container-inner {
    padding: 80px 30px;
    max-width: 1180px;
    margin-inline: auto;
  }
}

/*
---------------------------------------------------------------------
タイトル
---------------------------------------------------------------------
*/
.p-poppins-title {
  font-size: 24px;
  font-weight: 700;
  font-family: var(--font-poppins);
  line-height: 1.4;
}

/* H2 */
.p-h02-title {
  font-size: 24px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 25px;
  line-height: 1.3;
}

/* H3 */
.p-h03-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  padding: 13px;
  text-align: center;
  background: var(--p-gradient-01);
  color: var(--color-white);
  margin-top: 30px;
  margin-bottom: 15px;

  + .p-h04-title {
    margin-top: 0;
  }
}

/* H4 */
.p-h04-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  margin-bottom: 15px;
  margin-top: 30px;

  .-left {
    text-align: left;
  }

  > span {
    position: relative;
    display: inline-block;
    padding-bottom: 15px;
  }

  > span::after {
    content: "";
    position: absolute;
    background: linear-gradient(90deg, var(--color-blue-green) 50%, var(--color-blue) 50%);
    width: 35px;
    height: 4px;
    left: 0;
    right: 0;
    bottom: 0;
    margin-inline: auto;
  }
}

/* H5 */
.p-h05-title {
  color: var(--color-blue);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  position: relative;
  margin-bottom: 15px;
  margin-top: 50px;

  &::before {
    position: absolute;
    content: "";
    height: 3px;
    width: 100%;
    background-color: var(--color-blue);
    inset: 0;
    margin: auto;
    z-index: 0;
  }

  > span {
    padding-inline: 5px;
    background-color: var(--color-white);
    display: inline-block;
    position: relative;
    z-index: 1;
  }
}

@media print,
screen and (min-width: 1024px) {

  .p-poppins-title {
    font-size: 36px;
  }

  /* H2 */
  .p-h02-title {
    font-size: 40px;
    margin-bottom: 45px;
  }

  /* H3 */
  .p-h03-title {
    font-size: 26px;
    padding: 13px;
    margin-top: 50px;
    margin-bottom: 30px;
  }

  /* H4 */
  .p-h04-title {
    font-size: 26px;
    margin-bottom: 25px;
    margin-top: 50px;

    > span {
      padding-bottom: 25px;
    }

    > span::after {
      width: 50px;
      height: 5px;
    }

    &.-transform {
      transform: translateX(20px);
    }
  }

  /* H5 */
  .p-h05-title {
    margin-bottom: 20px;
    margin-top: 77px;

    > span {
      padding-inline: 10px;
    }
  }
}

/*
---------------------------------------------------------------------
テキスト
---------------------------------------------------------------------
*/
/* S */
.p-main-text-S {
  font-size: 12px;
  font-weight: 400;
}

/* M */
.p-main-text-M {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;

  + .p-main-text-M {
    margin-top: 0.5em;
  }

  &.-center {
    text-align: center;
  }

  > a {
    color: var(--color-blue);
    text-decoration: underline;
  }
}

/* L */
.p-main-text-L {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;

  + .p-main-text-L {
    margin-top: 2.2em;
  }
}

/* XL */
.p-main-text-XL {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;

  + .p-main-text-XL {
    margin-top: 1em;
  }
}

/* XXL */
.p-main-text-XXL {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;

  + .p-main-text-L {
    margin-top: 10px;
  }
}

@media print,
screen and (min-width: 1024px) {

  /* M */
  .p-main-text-M {
    font-size: 16px;
  }

  /* L */
  .p-main-text-L {
    font-size: 18px;
  }

  .p-main-text-XL {
    font-size: 20px;
  }

  .p-main-text-XXL {
    font-size: 26px;

    + .p-main-text-L {
      margin-top: 10px !important;
    }
  }
}

/*
---------------------------------------------------------------------
name: p-2col-wrap
2カラムの箱
---------------------------------------------------------------------
*/
.p-2col-wrap {
  margin-top: 25px;
  display: flex;
  flex-direction: column;
  row-gap: 15px;

  &:where(.-sp-gap-0) {
    gap: 0;
  }

  .p-2col-inner > *:first-child {
    margin-top: 0 !important;
  }

  .p-2col-inner > *:last-child {
    margin-bottom: 0 !important;
  }
}

@media print,
screen and (min-width: 768px) {
  .p-2col-wrap.-tb-wrap {
    flex-direction: row;
    row-gap: 0;
    column-gap: 16px;
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-2col-wrap {
    margin-top: 50px;
    flex-direction: row;
    row-gap: 0;
    column-gap: 16px;

    &.-padding {
      padding-inline: 32px;
    }

    &.-reverse {
      flex-direction: row-reverse !important;
    }

    &.-center {
      align-items: center !important;
    }

    &.-gap-S {
      column-gap: 20px;
    }

    &.-gap-M {
      column-gap: 30px;
    }

    &.-gap-L {
      column-gap: 50px;
    }
  }

  .p-2col-inner {
    width: 100%;

    &.-w-fit {
      width: fit-content;
    }

    &.-w-270 {
      max-width: 270px;
      flex-shrink: 0;
    }

    &.-w-280 {
      max-width: 280px;
      flex-shrink: 0;
    }

    &.-w-300 {
      max-width: 300px;
      flex-shrink: 0;
    }

    &.-w-330 {
      max-width: 330px;
      flex-shrink: 0;
    }

    &.-w-400 {
      max-width: 400px;
      flex-shrink: 0;
    }

    &.-w-480 {
      max-width: 480px;
      flex-shrink: 0;
    }
  }

  .-w-420 {
    max-width: 420px;
  }
}


/*
---------------------------------------------------------------------
name: p-img-box
画像の箱
---------------------------------------------------------------------
*/
.p-img-box {
  width: 100%;
  margin-top: 20px;

  /* SP時、幅200px */
  &.-w-sp-200 {
    max-width: 200px;
    margin-inline: auto;
  }

  &.-w-280 {
    max-width: 280px;
    margin-inline: auto;
  }

  &.-w-fix-160 {
    width: 160px;
    margin-inline: auto;
  }

  &.-w-700 {
    max-width: 700px;
    margin-inline: auto;
  }

  > img {
    width: 100%;
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-img-box {
    width: 100%;
    margin-top: 50px;

    &.-w-sp-200 {
      max-width: 100%;
    }
  }
}

/*
---------------------------------------------------------------------
name: p-green-border-box
緑のボーダーの箱
---------------------------------------------------------------------
*/
.p-green-border-box {
  border: 2px solid var(--color-blue-green);
  background-color: var(--color-white);
  margin-top: 15px;
  padding: 10px;
}

.p-green-border-title {
  font-size: 16px;
  line-height: 1.6;
  font-weight: 700;
  color: var(--color-blue-green);
}

.p-poppins-text-S {
  font-size: 16px;
  line-height: 1.6;
  font-weight: 600;
  margin-top: 10px;
  font-family: var(--font-poppins);
  word-break: break-all;
}

@media print,
screen and (min-width: 1024px) {
  .p-green-border-box {
    margin-top: 26px;
    padding: 15px 20px;
  }

  .p-green-border-title {
    font-size: 18px;
  }

  .p-poppins-text-S {
    font-size: 18px;
    margin-top: 10px;
  }
}

/*
---------------------------------------------------------------------
name: p-2col-gradient-wrap
片方グラデーションの箱
---------------------------------------------------------------------
*/
.p-2col-gradient-wrap {
  display: flex;
  flex-direction: column;
  margin-top: 25px;
}

.p-2col-gradient-title-box {
  padding: 15px 20px;
  background: var(--btn-blue);
  color: var(--color-white);
}

.p-2col-gradient-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}

.p-2col-gradient-text-box {
  background-color: var(--color-white);
  border-left: 2px solid var(--color-blue);
  border-right: 2px solid var(--color-blue);
  border-bottom: 2px solid var(--color-blue);
  padding: 15px 20px;

  > *:first-child {
    margin-top: 0 !important;
  }

  > *:last-child {
    margin-bottom: 0 !important;
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-2col-gradient-wrap {
    display: block;
    margin-top: 50px;
  }

  .p-2col-gradient-inner {
    display: grid;
    align-items: center;
    grid-auto-flow: column;
    grid-template-rows: 1fr;
  }

  .p-2col-gradient-title-box {
    padding: 30px 45px;
    flex-shrink: 0;
    height: 100%;
    display: grid;
    justify-content: center;
    align-items: center;
  }

  .p-2col-gradient-title {
    font-size: 26px;
  }

  .p-2col-gradient-text-box {
    border-left: none;
    border-top: 2px solid var(--color-blue);
    padding: 30px 40px;
    height: 100%;
  }
}

/*
---------------------------------------------------------------------
name: p-2col-all-gradient-wrap
グラデーションの箱
---------------------------------------------------------------------
*/
.p-2col-all-gradient-wrap {
  display: flex;
  flex-direction: column;
  margin-top: 25px;
  background: var(--btn-blue);
}

.p-2col-all-gradient-title-box {
  padding: 15px 20px;
  color: var(--color-white);
}

.p-2col-all-gradient-text-box {
  padding: 15px 20px;
  color: var(--color-white);

  > *:first-child {
    margin-top: 0 !important;
  }

  > *:last-child {
    margin-bottom: 0 !important;
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-2col-all-gradient-wrap {
    display: block;
    margin-top: 30px;
  }

  .p-2col-all-gradient-inner {
    display: grid;
    grid-auto-flow: column;
    align-items: center;
    column-gap: 50px;
  }

  .p-2col-all-gradient-title-box {
    padding: 30px 0 30px 54px;
  }

  .p-2col-all-gradient-text-box {
    padding: 30px 54px 30px 0;
  }
}

/*
---------------------------------------------------------------------
リスト
---------------------------------------------------------------------
*/
/* リンクがあれば・を変える */
.p-white-link-dot-list {
  font-size: 14px;
  line-height: 1.6;
  font-weight: 400;
  margin-block: 15px;
  padding-left: 13px;
  border-left: 1px solid var(--color-gray-02);

  > li:has(a) {
    padding: 0 0 0 1.7em;
    background-image: url('data:image/svg+xml;utf8,<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="7.875" cy="7.875" r="7.875" transform="rotate(-90 7.875 7.875)" fill="white"/><path d="M6.125 4.875L9.125 7.78383L6.125 10.875" stroke="%233047B1"/></svg>');
    background-position: top 5px left 6px;
    background-size: 13px;
    background-repeat: no-repeat;

    &::before {
      display: none;
    }

    > a {
      text-decoration: underline;
      color: var(--color-white);
    }
  }

  > li {
    position: relative;
    list-style: none;
    padding: 0 0 0 1.5em;

    + li {
      margin-top: 5px;
    }

    &::before {
      content: "";
      position: absolute;
      top: 0.728em;
      left: 0.607em;
      display: block;
      width: 4px;
      height: 4px;
      background-color: var(--color-white);
      border-radius: 50%;
    }
  }
}

/* ・リスト */
.p-dot-list {
  font-size: 14px;
  line-height: 1.6;
  font-weight: 400;
  margin-block: 15px;

  > li {
    position: relative;
    list-style: none;
    padding: 0 0 0 1.5em;

    &::before {
      content: "";
      position: absolute;
      top: 0.728em;
      left: 0.607em;
      display: block;
      width: 4px;
      height: 4px;
      background-color: var(--color-def);
      border-radius: 50%;
    }
  }
}


/* 番号のみ */
.p-simple-number-list {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  counter-reset: number;
  margin-block: 5px;

  > li {
    position: relative;
    list-style: none;
    padding: 0 0 0 1.3em;
    counter-increment: number;

    + li {
      margin-top: 3px;
    }

    &::before {
      content: counter(number) ".";
      position: absolute;
      top: 0;
      left: 0;
    }
  }
}

/* 番号 */
.p-number-list {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  counter-reset: number;
  margin-block: 15px;

  > li {
    position: relative;
    list-style: none;
    padding: 0 0 0 35px;
    counter-increment: number;

    + li {
      margin-top: 5px;
    }

    &::before {
      display: grid;
      place-content: center;
      content: counter(number);
      position: absolute;
      top: 0;
      left: 0;
      background-color: var(--color-blue);
      width: 23px;
      height: 23px;
      font-weight: 700;
      font-size: 14px;
      color: var(--color-white);
    }
  }
}

/* チェック */
.p-check-list {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  counter-reset: number;
  margin-block: 15px;

  &.-small {
    font-size: 13px;

    > li + li {
      margin-top: 3px;
    }

    > li::before {
      width: 16px;
      height: 16px;
    }
  }

  > li {
    position: relative;
    list-style: none;
    padding: 0 0 0 30px;

    + li {
      margin-top: 5px;
    }

    &::before {
      content: "";
      display: grid;
      place-content: center;
      position: absolute;
      top: 3px;
      left: 0;
      width: 17px;
      height: 17px;
      background-image: var(--icon-checkbox);
      background-position: center;
      background-repeat: no-repeat;
      background-size: 100%;
    }
  }
}

.p-check-list.-black {
  > li {
    &::before {
      background-image: var(--icon-checkbox-black);
    }
  }
}

@media print,
screen and (min-width: 1024px) {

  /* リンクがあれば・を変える */
  .p-white-link-dot-list {
    font-size: 16px;
    margin-block: 25px;
    padding-left: 27px;

    > li:has(a) {
      padding: 0 0 0 1.7em;
      background-size: 17px;
    }

    > li {
      position: relative;
      list-style: none;
      padding: 0 0 0 1.5em;

      + li {
        margin-top: 5px;
      }
    }
  }



  .p-dot-list {
    font-size: 18px;
    margin-block: 25px;

    > li {
      &::before {
        top: 0.728em;
        left: 0.607em;
        width: 5px;
        height: 5px;
      }
    }
  }

  /* 番号 */
  .p-simple-number-list {
    font-size: 18px;
    margin-block: 10px;

    > li {

      + li {
        margin-top: 2px;
      }
    }
  }

  .p-number-list {
    font-size: 18px;
    margin-block: 25px;

    > li {
      padding: 0 0 0 41px;

      + li {
        margin-top: 12px;
      }

      &::before {
        top: 0;
        left: 0;
        width: 31px;
        height: 31px;
        font-size: 18px;
      }
    }
  }

  /* チェック */
  .p-check-list {
    font-size: 18px;
    margin-block: 25px;

    &.-small {
      font-size: 18px;
      margin-block: 16px;

      > li + li {
        margin-top: 2px;
      }

      > li::before {
        width: 20px;
        height: 20px;
      }
    }

    > li {
      padding: 0 0 0 30px;

      + li {
        margin-top: 9px;
      }

      &::before {
        top: 5px;
        left: 0;
        width: 20px;
        height: 20px;
      }
    }
  }
}

@media (hover: hover) and (pointer: fine) {
  .p-white-link-dot-list > li > a:any-link {
    cursor: pointer;

    &:hover {
      opacity: 1;
      text-decoration: none;
    }
  }
}

/*
---------------------------------------------------------------------
ボーダー
---------------------------------------------------------------------
*/
.p-border-gray {
  background-color: var(--color-gray-03);
  height: 1px;
  width: 100%;
  margin: 15px auto;

  &.-margin-TB-50 {
    margin: 30px auto;
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-border-gray {
    margin: 30px auto;

    &.-margin-TB-50 {
      margin: 50px auto;
    }
  }
}

/*
---------------------------------------------------------------------
アコーディオン
---------------------------------------------------------------------
*/
.p-accordion {
  + .p-accordion {
    margin-top: 20px;
  }
}

.accordion-title {
  font-size: 15px;
  line-height: 1.3;
  font-weight: 700;
  list-style-type: none;
  background-color: var(--color-gray-04);
  padding: 15px 35px 15px 15px;
  display: grid;
  align-items: center;
  position: relative;

  &::before {
    position: absolute;
    content: "";
    height: 2px;
    width: 12px;
    background-color: var(--color-def);
    top: 0;
    right: 15px;
    bottom: 0;
    margin-block: auto;
  }

  &::after {
    position: absolute;
    content: "";
    height: 2px;
    width: 12px;
    background-color: var(--color-def);
    top: 0;
    right: 15px;
    bottom: 0;
    margin-block: auto;
    transform: rotate(90deg);
    opacity: 1;
    transition: opacity 0.1s linear;
  }

  > span {
    position: relative;
    display: inline-block;
    padding-left: 40px;
  }

  > span::before {
    content: "Q";
    display: grid;
    place-content: center;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto 0;
    width: 30px;
    height: 30px;
    font-family: var(--font-poppins);
    font-weight: 600;
    font-size: 15px;
    color: var(--color-white);
    background-color: var(--color-blue-green);
  }
}

.p-accordion:open {
  .accordion-title::after {
    opacity: 0;
    transition: opacity 0.1s linear;
  }
}

.accordion-content {
  font-size: 15px;
  font-weight: 400;
  margin: 15px 0 30px;
  padding-left: 15px;
  display: flex;
  column-gap: 10px;

  .accordion-content-icon {
    display: grid;
    place-content: center;
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    font-family: var(--font-poppins);
    font-weight: 600;
    font-size: 15px;
    color: var(--color-white);
    background-color: var(--color-blue);
  }

  .accordion-content-text {
    display: grid;
    align-items: center;
  }
}

@media print,
screen and (min-width: 1024px) {
  .accordion-title {
    font-size: 18px;
    padding: 23px 47px 23px 15px;

    &::before,
    &::after {
      width: 14px;
    }

    > span {
      padding-left: 55px;
    }

    > span::before {
      width: 40px;
      height: 40px;
      font-size: 18px;
      color: var(--color-white);
      background-color: var(--color-blue-green);
    }
  }

  .accordion-content {
    font-size: 18px;
    margin: 20px 0 50px;
    column-gap: 15px;

    .accordion-content-icon {
      width: 40px;
      height: 40px;
      font-size: 18px;
    }
  }
}

@media (hover: hover) and (pointer: fine) {
  .accordion-title {
    cursor: pointer;
    transition: opacity var(--duration) var(--timing);

    &:hover {
      opacity: var(--opacity);
    }
  }
}

/*
---------------------------------------------------------------------
ベース グラデーションの箱
---------------------------------------------------------------------
*/
.p-base-gradient-wrap {
  background: var(--btn-blue);
  color: var(--color-white);
  padding: 20px 25px;
  margin-block: 30px;
}

.p-base-gradient-inner {
  > *:first-child {
    margin-top: 0 !important;
  }

  > *:last-child {
    margin-bottom: 0 !important;
  }
}

.p-base-gradient-title {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  color: var(--color-white);
  word-break: break-all;
}

@media print,
screen and (min-width: 1024px) {
  .p-base-gradient-wrap {
    padding: 30px 50px;
    margin-block: 50px;
  }

  .p-base-gradient-title {
    font-size: 20px;
  }
}

/*
---------------------------------------------------------------------
グラデーションボーダー
---------------------------------------------------------------------
*/
.p-h03-title + .p-2col-gradient-border-wrap {
  margin-top: -15px;
}

.p-security-wrap {
  padding-inline: 15px;
  margin-top: -180px;
}

.p-2col-gradient-border-inner {
  border: 3px solid var(--color-blue);
  border-image: var(--p-gradient-01);
  border-image-slice: 1;
  padding: 30px 30px 200px 30px;

  > *:first-child {
    margin-top: 0 !important;
  }

  > *:last-child {
    margin-bottom: 0 !important;
  }
}

.p-security-inner {
  background: var(--btn-blue);
  color: var(--color-white);
  padding: 15px;
}

.p-security-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;

  > span {
    display: inline-block;
    position: relative;
    padding-left: 40px;

    &::before {
      position: absolute;
      content: "";
      background-image: url('../img/scsk/security-icon.svg');
      background-position: center;
      background-repeat: no-repeat;
      background-size: 100% auto;
      width: 30px;
      height: 31px;
      top: 0;
      left: 0;
      bottom: 0;
      margin-block: auto;
    }
  }
}

.p-security-text {
  margin-top: 15px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}

@media print,
screen and (min-width: 1024px) {
  .p-h03-title + .p-2col-gradient-border-wrap {
    margin-top: -30px;
  }

  .p-security-wrap {
    padding-inline: 50px;
    margin-top: -250px;
  }

  .p-2col-gradient-border-inner {
    border: 5px solid var(--color-blue);
    border-image: var(--p-gradient-01);
    border-image-slice: 1;
    padding: 50px 50px 300px 50px;
  }

  .p-2col-img-box {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 50px;
  }

  .p-security-inner {
    padding: 40px;
  }

  .p-security-title {
    font-size: 26px;

    > span {
      padding-left: 61px;

      &::before {
        width: 40px;
        height: 41px;
      }
    }
  }

  .p-security-text {
    margin-top: 16px;
    font-size: 20px;
  }
}

/*
---------------------------------------------------------------------
アンカーリンク
---------------------------------------------------------------------
*/
.p-anchor-link-wrap {
  margin-block: 30px;
}

.p-anchor-link-inner {
  padding: 18px;
  border: 1px solid var(--color-gray-03);
  background-color: var(--color-white);
}

.p-anchor-link-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 20px;

  a {
    font-size: 15px;
    font-weight: 400;
    color: var(--color-blue);
    display: inline-block;
    padding-left: 19px;
    background-image: var(--allow-blue-anchor);
    background-position: center left;
    background-repeat: no-repeat;
    background-size: 14px auto;
  }
}
.p-anchor-link-list.right {

  a {
    background-image: var(--allow-blue-right);
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-anchor-link-wrap {
    margin-block: 50px;
  }

  .p-anchor-link-list {
    justify-content: center;
    column-gap: 30px;
    row-gap: 7px;

    a {
      font-size: 16px;
    }
  }
}

/*
---------------------------------------------------------------------
背景白の箱
---------------------------------------------------------------------
*/
.p-white-box {
  padding: 15px;
  background-color: var(--color-white);
  margin-block: 15px;

  &.-large {
    margin-block: 30px;
    padding: 30px;
  }

  > *:first-child {
    margin-top: 0 !important;
  }

  > *:last-child {
    margin-bottom: 0 !important;
  }
}

.p-border-white-box {
  border: 3px solid var(--color-gray-02);
  padding: 20px 30px;
  background-color: var(--color-white);
  margin-block: 30px;

  > *:first-child {
    margin-top: 0 !important;
  }

  > *:last-child {
    margin-bottom: 0 !important;
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-white-box {
    padding: 25px 30px;
    margin-block: 30px;

    &:has(img) {
      padding: 30px 30px;
    }

    &.-large {
      margin-block: 50px;
      padding: 45px 50px;

      &:has(img) {
        padding: 50px;
      }
    }
  }

  .p-border-white-box {
    border: 5px solid var(--color-gray-02);
    padding: 34px 40px;
    margin-block: 50px;
  }
}

/*
---------------------------------------------------------------------
book アイコン付き
---------------------------------------------------------------------
*/
.p-book-img-box {
  width: 322px;
  margin-inline: auto;
  position: relative;
  margin-bottom: 10px;

  &::before {
    position: absolute;
    content: "";
    width: 105px;
    height: 105px;
    background-image: url('../img/common/book-icon.svg');
    background-position: center;
    background-size: 100%;
    background-repeat: no-repeat;
    top: -9px;
    right: 0;
    box-shadow: var(--box-shadow);
    border-radius: 50%;
    background-color: var(--color-blue);
  }

  > img {
    width: 100%;
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-book-img-box {
    margin-bottom: 15px;
  }
}

/*
---------------------------------------------------------------------
name: p-gradient-border-02-wrap
グラデーションボーダーの箱
---------------------------------------------------------------------
*/
.p-gradient-border-02-inner {
  padding: 10px 15px 15px;
  border: 3px solid var(--color-blue);
  border-image: var(--p-gradient-01);
  border-image-slice: 1;
  background-color: var(--color-white);
  margin-block: 30px;
  text-align: center;
}

.p-gradient-border-02-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;

  > span {
    font-size: 50px;
    font-family: var(--font-poppins);
    background: var(--gradient-blue-green);
    background-clip: text;
    -webkit-text-fill-color: transparent;
    line-height: 1.2;
  }
}

.p-gradient-border-02-text {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
}

@media print,
screen and (min-width: 1024px) {
  .p-gradient-border-02-inner {
    padding: 8px 25px 20px;
    border: 5px solid var(--color-blue);
    border-image: var(--p-gradient-01);
    border-image-slice: 1;
    margin-block: 50px;
  }

  .p-gradient-border-02-title {
    font-size: 26px;

    > span {
      font-size: 80px;
    }
  }

  .p-gradient-border-02-text {
    font-size: 18px;
  }
}

/*
---------------------------------------------------------------------
導入事例 紹介の箱
---------------------------------------------------------------------
*/
.p-case-2col-container {
  margin-block: 30px;
  display: grid;
  row-gap: 15px;
}

.p-case-white-box {
  background-color: var(--color-white);
  padding: 20px 15px;
}

.p-case-2col-wrap {
  display: flex;
  flex-direction: column;
  row-gap: 10px;
}

.p-case-2col-inner {
  .p-main-text-XXL {
    margin-bottom: 4px;
  }
}

.p-case-2col-inner:has(.p-case-2col-img-box) {
  flex-shrink: 0;
}

.p-case-2col-img-box {
  width: 270px;
  height: 190px;
  background-color: var(--color-white);
  border: 1px solid var(--color-gray-03);
  overflow: hidden;
  position: relative;
  margin-inline: auto;

  > img {
    position: absolute;
    width: 100%;
    object-fit: cover;
    inset: 0;
    margin: auto;

    &.-w-167 {
      width: 167px;
    }
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-case-2col-container {
    margin-block: 50px;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }

  .p-case-white-box {
    background-color: var(--color-white);
    padding: 50px;

    &.-p-1col {
      grid-column: 1 / 3;
    }

    .p-main-text-M {
      text-align: center;
    }
  }

  .p-case-2col-wrap {
    display: flex;
    flex-direction: column;
    row-gap: 10px;
  }

  .p-case-white-box.-p-1col {
    .p-case-2col-wrap {
      flex-direction: row;
      align-items: flex-start;
      column-gap: 30px;
    }

    .p-main-text-XXL,
    h3,
    p {
      text-align: left;
    }

    .common-blue-gradient-btn {
      margin-left: 0;
    }
  }

  .p-case-2col-inner {
    .p-main-text-XXL {
      margin-bottom: 4px;
    }
  }

  .p-case-2col-img-box {
    width: 270px;
    height: 190px;
    background-color: var(--color-white);
    border: 1px solid var(--color-gray-03);
    overflow: hidden;
    position: relative;
    margin-inline: auto;

    > img {
      position: absolute;
      width: 100%;
      object-fit: cover;
      inset: 0;
      margin: auto;

      &.-w-167 {
        width: 167px;
      }
    }
  }
}

/*
---------------------------------------------------------------------
導入事例 テーブル
---------------------------------------------------------------------
*/
:where(.p-case-table-wrap *) {
  padding: 0;
}

.p-case-table {
  width: 100%;
  border-collapse: collapse;

  th {
    font-weight: 700;
  }

  td {
    font-weight: 400;
    font-size: 14px;
    text-align: left;
    background-color: var(--color-white);
  }

  th,
  td {
    line-height: 1.3;
    border: 1px solid var(--color-gray-03);
    padding: 10px 13px;
  }
}

.head-title-01,
.head-title-02 {
  font-size: 15px;
}

.head-title-01 {
  background-color: var(--color-blue-green);
  color: var(--color-white);
}

.head-title-02 {
  text-align: left;
  background-color: var(--color-blue);
  color: var(--color-white);
}

.head-title-sub {
  font-size: 14px;
  background-color: var(--color-bg-blue);
  color: var(--color-blue-green);
}

.p-case-table-wrap {
  margin-block: 15px;
}

@media print,
screen and (min-width: 1024px) {
  .p-case-table {
    td {
      font-size: 16px;
    }

    th,
    td {
      padding: 15px 30px;
    }
  }

  .head-title-01,
  .head-title-02 {
    font-size: 18px;
  }

  .head-title-sub {
    font-size: 16px;
  }

  .p-case-table-wrap {
    margin-block: 30px;
  }
}

/*
---------------------------------------------------------------------
背景グレーの箱
---------------------------------------------------------------------
*/
p + .p-gray-box {
  margin-top: 15px;
}

.p-gray-box {
  background-color: var(--color-gray-04);
  padding: 15px 20px;
  margin-block: 20px;

  &.-large {
    margin-block: 30px;
    padding: 25px 30px;
  }

  > *:first-child {
    margin-top: 0 !important;
  }

  > *:last-child {
    margin-bottom: 0 !important;
  }

  .p-main-text-M {
    text-align: left;
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-gray-box {
    &.-large {
      margin-block: 50px;
      padding: 45px 50px;
    }
  }
}

/*
---------------------------------------------------------------------
grid固定の横並びの箱
---------------------------------------------------------------------
*/
.p-grid-2col-wrap {
  display: grid;
  row-gap: 10px;
}

.p-grid-2col-inner {
  > *:first-child {
    margin-top: 0 !important;
  }

  > *:last-child {
    margin-bottom: 0 !important;
  }
}

.p-grid-2col-title-box {
  display: grid;
  grid-template-columns: 100px auto;
  column-gap: 20px;
  align-items: center;
}

.p-grid-2col-title {
  font-size: 20px;
  font-weight: 700;
}

@media print,
screen and (min-width: 1024px) {
  .p-grid-2col-wrap {
    grid-template-columns: 360px 1fr;
    column-gap: 7px;
    row-gap: 0;
    align-items: center;
  }

  .p-grid-2col-title {
    font-size: 26px;
  }
}

/*
---------------------------------------------------------------------
背景グレーの横並び
---------------------------------------------------------------------
*/
.p-gray-2col-wrap {
  display: grid;
  row-gap: 15px;
}

.p-gray-2col-inner {
  background-color: var(--color-gray-04);
  display: grid;
  grid-template-columns: 120px 1fr;
  align-items: center;
  column-gap: 20px;
  border-top: 3px solid var(--color-blue);
}

.p-gray-2col-text-box {
  padding-right: 15px;

  > * {
    text-align: left;
  }

  .p-main-text-M {
    font-size: 11px;
    margin-top: 10px;
  }
}

.p-gray-2col-img-box {
  width: 100%;

  > img {
    width: 100%;
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-gray-2col-wrap {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }

  .p-gray-2col-inner {
    grid-template-columns: 180px 1fr;
    column-gap: 30px;
    border-top: 5px solid var(--color-blue);
  }

  .p-gray-2col-text-box {
    padding-right: 30px;

    .p-main-text-M {
      font-size: 16px;
    }
  }
}

/*
---------------------------------------------------------------------
PC - 最大幅が一番大きいものになる箱
---------------------------------------------------------------------
*/
.p-w-max-box {
  max-width: max-content;
  margin-inline: auto;
}

/*
---------------------------------------------------------------------
name: p-usecase-card-contaier
ユースケース
---------------------------------------------------------------------
*/
.p-usecase-card-contaier {
  margin-top: 30px;
}

.p-usecase-card-contaier-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  justify-content: center;
}

.p-usecase-card-box {
  width: calc((100% - 15px) / 2);
  background-color: var(--color-white);
  border-top: 3px solid var(--color-blue);
  box-shadow: var(--box-shadow);
  padding: 15px 15px 20px;

  > a {
    display: block;
    width: 100%;
    height: 100%;
  }

  &:has(> a) {
    padding: 0;
    border-top: none;

    > a {
      border-top: 3px solid var(--color-blue);
      padding: 15px 15px 20px;
    }
  }
}

.p-usecase-card-img-box {
	text-align: center;
  > img {
    width: auto;
  }
}

.p-usecase-card-title {
  margin-top: 15px;
  text-align: center;
  color: var(--color-blue);
  font-size: 16px;
  line-height: 1.3;
}

.p-usecase-card-text {
  font-size: 14px;
  line-height: 1.6;
  font-weight: 400;
  margin-top: 10px;
}

@media print,
screen and (min-width: 768px) {
  .p-usecase-card-box {
    width: calc((100% - 30px) / 3);
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-usecase-card-contaier {
    margin-top: 50px;
  }

  .p-usecase-card-contaier-inner {
    display: grid;
    gap: 15px;
    column-gap: clamp(15px, 1.56vw, 30px);
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 1fr;
    row-gap: 0;
    justify-content: center;
  }

  .p-usecase-card-box {
    width: 100%;
    padding: 20px 20px 30px;
    border-top: 5px solid var(--color-blue);

    &:has(> a) {
      padding: 0;
      border-top: none;

      > a {
        border-top: 5px solid var(--color-blue);
        padding: 20px 20px 30px;
      }
    }
  }

  .p-usecase-card-title {
    margin-top: 15px;
    font-size: 20px;
  }

  .p-usecase-card-text {
    font-size: 16px;
    margin-top: 7px;
  }
}

@media print,
screen and (min-width: 1120px) {
  .p-usecase-text {
    padding-inline: 0;
  }

  .p-usecase-card-contaier {
    padding-inline: 0;
  }

  .p-usecase-card-contaier-inner {
    column-gap: 30px;
  }
}

/*
---------------------------------------------------------------------
ユースケース 課題/解決の箱
---------------------------------------------------------------------
*/
.p-issue-solution-wrap {
  margin-block: 30px;
}

.p-issue-solution-box {
  margin-block: 15px;
  display: grid;
  background-color: var(--color-gray-04);
  border: 3px solid var(--color-gray-03);
}

.p-issue-solution-box.-solution {
  background-color: var(--color-bg-blue);
  border-color: var(--color-blue);

  .p-issue-solution-title-box {
    color: var(--color-blue);
  }
}

.p-issue-solution-title-box {
  display: grid;
  grid-template-columns: 100px auto;
  column-gap: 10px;
  align-items: center;
}

.p-issue-solution-title {
  font-size: 18px;
  line-height: 1.3;
  font-weight: 700;
  text-align: center;
}

.p-issue-solution-text {
  font-size: 14px;
  line-height: 1.6;
  padding: 15px;
}

@media print,
screen and (min-width: 768px) {
  .p-issue-solution-box {
    margin-block: 15px;
    grid-template-columns: 240px 1fr;
    column-gap: 10px;
    align-items: center;
  }

  .p-issue-solution-title-box {
    height: 100%;
  }

  .p-issue-solution-img-box {
    height: 100%;
    background-color: #FCFCFC;
    display: grid;

    > img {
      width: 100%;
      height: fit-content;
      display: block;
      margin-block: auto;
    }
  }
}

@media print,
screen and (min-width: 1024px) {
  .p-issue-solution-wrap {
    margin-block: 50px;
  }

  .p-issue-solution-box {
    margin-block: 30px;
    column-gap: 22px;
    align-items: center;
  }

  .p-issue-solution-title {
    font-size: 20px;
  }

  .p-issue-solution-text {
    font-size: 16px;
    padding: 20px;
  }
}

/* ユースケース見出し追加 */
.p-use-text {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    column-gap: 8px;
    color: #EF6000;
	font-weight: 600;
}

.p-use-text::before {
    content: '';
    display: block;
    width: 0.8em;
    height: 0.4em;
    border-bottom: 4px solid #EF6000;
    border-left: 4px solid #EF6000;
    transform: rotate(-45deg);
    flex-shrink: 0;
    margin-top: 0.5em;
}
@media print, screen and (min-width: 1024px) {
    .p-use-text {
        font-size: 20px;
    }
}

/* 導入事例2カラムボックス */
@media print, screen and (min-width: 1024px) {
    .casestudies_2col {
      display: flex;
		.p-case-white-box {
			padding: 20px 10px;
		}
    }
}


/* SCSKの強み2カラム追加パーツ */
.scsk_2col {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 20px;
  width: 100%;
  margin: 15px 0;
  text-align: center;
}

.scsk_2col .arrow {
  align-self: center;
}
.scsk_2col .arrow::before {
  content: "▼";
  font-size: 20px;
  color: var(--color-blue);
}

.scsk_2col .item {
  width: 100%;
  box-sizing: border-box;
  font-size: 14px;
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.scsk_2col .item img {
  max-width: 100%;
  height: auto;
}

.scsk_2col .item.is-left {
  padding: 20px;
  background-color: var(--color-green);
  color: var(--color-white);
  align-items: center;
  font-weight: 600;
}

.scsk_2col .item.is-right {
}

.scsk_2col .item.is-right .item-title {
  padding: 20px;
  background-color: var(--color-green);
  color: var(--color-white);
  font-weight: 600;
}

.scsk_2col .item.is-right ul {
  display: flex;
  flex-direction: column;
  gap: 15px;
  list-style: none;
  padding: 0;
  margin: 0;
  flex: 1;
}

.scsk_2col .item.is-right li {
  background-color: #fff;
  padding: 10px 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  font-weight: normal;
}

.scsk_2col .item.is-right li:nth-child(1),
.scsk_2col .item.is-right li:nth-child(2) {
  border: 3px solid #00a7cb;
}

.scsk_2col .item.is-right li:nth-child(3) {
  border: 3px solid #f08300;
}

.scsk_2col .item.is-right li:nth-child(4) {
  border: 3px solid #db368d;
}

@media screen and (min-width: 768px) {
  .scsk_2col {
    flex-direction: row;
    margin: 30px 0;
  }
  
  .scsk_2col .item {
    flex: 1;
    width: auto;
    font-size: 20px;
  }

  .scsk_2col .arrow::before {
    content: "▶";
    font-size: 40px;
  }
}

/* --- 矢印 --- */
.support-arrow {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin: 20px auto;
  padding-bottom: 20px;
}

.support-arrow .arrow-up {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.support-arrow .arrow-up::before {
  content: "";
  width: 0;
  height: 0;
  border-left: 25px solid transparent;
  border-right: 25px solid transparent;
  border-bottom: 25px solid var(--color-green, #5aa137);
}

.support-arrow .arrow-up::after {
  content: "";
  width: 20px;
  height: 20px;
  background-color: var(--color-green, #5aa137);
}

.support-arrow .arrow-line {
  position: relative;
  width: 100%;
  height: 8px;
  background-color: var(--color-green, #5aa137);
}

.support-arrow .arrow-line::before,
.support-arrow .arrow-line::after {
  content: "";
  position: absolute;
  top: 100%;
  width: 8px;
  height: 25px;
  background-color: var(--color-green, #5aa137);
}
.support-arrow .arrow-line::before { left: 0; }
.support-arrow .arrow-line::after { right: 0; }

@media screen and (min-width: 768px) {
  .support-arrow {
    margin: 40px auto;
  }
  
  .support-arrow .arrow-up::before {
    border-left: 40px solid transparent;
    border-right: 40px solid transparent;
    border-bottom: 40px solid var(--color-green, #5aa137);
  }
  
  .support-arrow .arrow-up::after {
    width: 30px;
    height: 30px;
  }
  
  .support-arrow .arrow-line {
    height: 12px;
  }
  
  .support-arrow .arrow-line::before,
  .support-arrow .arrow-line::after {
    width: 12px;
    height: 35px;
  }
}