@charset "utf-8";

.l-main {
  font-size: 16px;
  font-weight: 400;
}

/********************
  common
********************/

.temp-sec {
  background: #FFF;
}
.temp-sec__ttl {
  background: var(
    --title-gradient,
    linear-gradient(90deg, #0035C7 0%, #00217E 100%)
  );
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-align: center;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
}
.temp-sec__ttl--sub {
  display: block;
  background: #333;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: normal;
  font-weight: 700;
  line-height: 1.2;
  margin: 24px 0;
}
.temp-sec__ttl--jp {
  display: block;
  background: #666;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: normal;
  font-weight: 400;
  line-height: 1.2;
  margin: 24px 0;
}
.temp-sec__dsc {
  color: #666;
  text-align: center;
  font-style: normal;
  line-height: 1.6;
  margin-top: 20px;
}
/*
.temp-btn__detail a {
  display: flex;
  padding: 10px 30px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 40px;
  border: 2px solid #00217E;
  color: #0035C7!important;
  text-decoration: none!important;
  background-color: #FFF;
  font-size: 15px;
  font-style: normal;
  font-weight: 700;
  line-height: 20px;
}
.temp-btn__detail a::after {
  display: block;
  content: '';
  width: 16px;
  height: 16px;
  background: url("../img/arr-right.svg") center center no-repeat;
}
  */
@media (min-width: 768px) {
  .temp-sec {
    max-width: 1200px;
    padding: 90px;
    margin: 0 auto;
  }
  .temp-sec__ttl {
    font-size: 3rem;
  }
  .temp-sec__ttl--sub {
    font-size: 2rem;
  }
  .temp-sec__ttl--jp {
    font-size: 1rem;
  }
  .temp-btn__detail a {
    width: fit-content;
    font-size: .9375rem;
    transition: filter .5s ease;
  }
  .temp-btn__detail a:hover {
    filter: brightness(1.1) drop-shadow(0 0 10px rgba(0,102,204,.5)); 
  }
}
@media (max-width: 767px) {
  .temp-sec {
    font-size: .875rem;
    padding: 30px;
  }
  .temp-sec__ttl {
    font-size: 2rem;
  }
  .temp-sec__ttl--sub {
    font-size: 1.5rem;
  }
  .temp-sec__ttl--jp {
    font-size: .9375rem;
  }
  .temp-sec__dsc {
    font-size: .875rem;
  }
  .temp-btn__detail a {
    font-size: .875rem;
  }
}

/********************
  C1 hero
********************/

.hero01 {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.hero01__inner {
  max-width: 100%;
}
.hero01__ttl {
  color: #036;
  font-style: normal;
  font-weight: 700;
}
.hero01__ttl--sub {
  display: block;
  color: #666;
  font-size: 1.125rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.6;
  margin-top: 1rem;
}
.hero01__link {
  margin-top: 2rem;
  display: flex;
  max-width: 480px;
  align-items: flex-start;
  gap: 20px;
}
.hero01__link p {
  margin-top: 0!important;
}
.hero01__link a {
  display: flex;
  height: 56px;
  justify-content: center;
  align-items: center;
  text-decoration: none!important;
  font-weight: 900;
  border-radius: 4px;
}
.hero01__link--contact a {
  background-image: linear-gradient( -180deg, rgb(254,184,0) 0%, rgb(255,151,2) 100%);
  color: #FFF!important;
  flex-shrink: 0;
}
.hero-img {
  background-image: url("../img/mv_pc.png");
}
.hero01 h1 .hero01__ttl--main {
  display: block;
  font-size:42px;
  margin-bottom: 1rem;
}
.hero01 h1 .hero01__ttl--catch {
  display: block;
  color: #666;
  font-size: 26px;
  line-height: 1.6;
}
.hero01 h1 .hero01__ttl--sub {
  font-size: 20px;
}

@media (max-width: 1079.9px) {
  .hero01 {
    background-position:left;
  }
}

@media (min-width: 768px) {
  .hero01 {
    height: 600px;
    padding: 80px 60px;
  }
  .hero01__inner {
    width: 1200px;
  }
  .hero01__ttl {
    font-size: 2.5625rem;
    line-height: 1.4;
    width: 480px;
  }
  .hero01__link a {
    transition: filter .5s ease;
  }
  .hero01__link--contact a {
    width: 240px;
  }
  .hero01__link--contact a:hover {
    filter: brightness(1.1) drop-shadow(0 0 10px rgba(254,184,0,.5)); 
  }
}
@media (max-width: 767px) {
  .hero01 {
    height: 700px;
    padding: 30px;
  }
  .hero01__inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex-shrink: 0;
    text-align: center;
    margin-top: 6%;
  }
  .hero01__ttl {
    font-size: 1.9375rem;
    line-height: 1.3;
  }
  .hero01__link {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    align-self: stretch;
    margin-left: auto;
    margin-right: auto;
  }
  .hero01__link a {
    width: 240px;
  }
  .hero-img {
    display: block;
    background: url("../img/mv_sp.png") center center / cover;
  }
  .hero01 h1 .hero01__ttl--main {
    font-size:min(28px,6.2vw);
  }
  .hero01 h1 .hero01__ttl--catch {
    font-size:min(22px,5.8vw);
  }
  .hero01 h1 .hero01__ttl--sub {
    font-size:min(16px,5.6vw);
  }
  .hero01__link a {
    width: auto;
    font-size:min(14px,6vw);
    padding-left: 24px;
    padding-right: 24px;
  }
}

/********************
  C2 ソリューション
********************/

/* C2-03 */
.c2-03__comparison {
  display: flex;
  flex-direction: column;
  gap: 50px;
  align-self: stretch;
  background: #FFF;
}
.c2-03__comparison--sec {
  border: 1px solid #717171;
}
.c2-03__comparison--sec {
  position: relative;
}
.c2-03__comparison--ttl {
  line-height: 1.5;
  font-weight: 700;
  color: #FFF;
}
.c2-03__comparison--sec .c2-03__comparison--ttl {
  background: linear-gradient(180deg, #00217E 0%, #0035C7 100%);
}
.c2-03__comparison--list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.c2-03__comparison--list li {
  position: relative;
  font-weight: 500;
  line-height: 1.2;
  padding-left: 30px;
}
.c2-03__comparison--list li span {
  display: block;
  font-weight: 400;
}
.c2-03__comparison--list li::before {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 1.125rem;
  font-style: normal;
  font-weight: 700;
}
.c2-03__comparison--sec .c2-03__comparison--list li {
  color: #333;
}
.c2-03__comparison--sec .c2-03__comparison--list li span {
  color: #666;
}
.c2-03__comparison--sec .c2-03__comparison--list li::before {
  content: '×';
  color: #E53E3E;
}

@media (min-width: 768px) {
  .c2-03__comparison {
    justify-content: center;
    align-items: center;
    margin-top: 48px;
  }
  .c2-03__comparison section {
    padding: 32px;
    width: 100%;
  }
  .c2-03__comparison--ttl {
    padding: 20px;
    font-size: 1.5rem;
    margin: -32px -32px 32px;
  }
  .c2-03__comparison--list li span {
    font-size: .8125rem;
  }
}
@media (max-width: 767px) {
  .c2-03__comparison {
    flex-direction: column;
    align-items: center;
    margin-top: 24px;
  }
  .c2-03__comparison section {
    padding: 16px;
    width: 100%;
  }
  .c2-03__comparison--ttl {
    padding: 4px;
    text-align: center;
    font-size: 1.125rem;
    margin: -16px -16px 16px;
  }
  .c2-03__comparison--list li {
    font-size: .875rem;
  }
  .c2-03__comparison--list li span {
    font-size: .75rem;
  }
}

/********************
  C3 サービス概要
********************/

/* C3-01 */
#overview_lead {
    text-align: left;
}
.c3-01__sec {
  display: flex;
  gap: 24px;
  color: #666;
  line-height: 1.875;
}
.c3-01__sec--img img {
  width: 100%;
}
.c3-01__sec--ttl {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  align-self: stretch;
  color: #00217E;
  font-style: normal;
  font-weight: 700;
  line-height: 1.25;
}
.c3-01__sec--ttl[data-num] {
  line-height: 40px;
}
.c3-01__sec--ttl[data-num]::before {
  content: attr(data-num);
  display: flex;
  width: 50px;
  height: 50px;
  padding: 8px 16px;
  justify-content: center;
  align-items: center;
  color: #FFF;
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 700;
  line-height: .7;
  background: linear-gradient(180deg, #00217E 0%, #0035C7 100%);
  white-space: nowrap;
}
.c3-01__sec--txt {
  width: 100%;
}
.c3-01__sec--img {
  width: 100%;
}

@media (min-width: 768px) {
  .c3-01__sec {
    align-items: center;
    align-self: stretch;
  }
  .c3-01 .temp-sec__inner {
    margin-top: 60px;
  }
  .c3-01__sec:nth-of-type(odd) {
    flex-direction: row-reverse;
  }
  .c3-01__sec:nth-child(n+2) {
    margin-top: 80px;
  }
  .c3-01__sec--ttl {
    font-size: 2rem;
  }
}
@media (max-width: 767px) {
  .c3-01__sec {
    flex-direction: column-reverse;
  }
  .c3-01__sec:nth-child(n+2) {
    margin-top: 60px;
  }
  .c3-01 .temp-sec__inner {
    margin-top: 30px;
  }
  .c3-01__sec--ttl {
    font-size: 1.5rem;
  }
}

/********************
  C4 サービスメニュー
********************/

.sec-op__table th, .sec-op__table td {
  vertical-align: middle;
}
section#sec-op__soukan h3 {
  font-size: 28px;
  font-weight: 600;
  text-align: left;
}
section#sec-op__soukan h3::after {
    display: block;
    content: '';
    width: 95px;
    height: 7px;
    margin-top: 20px;
    background: linear-gradient(90deg, #00217e 0%, #0035c7 100%);
}


/********************
  CTA
********************/

/* CTA01 */

.cta-01 {
  background: linear-gradient(225deg, #4A90E2 14.64%, #1E40AF 85.36%);
  color: #FFF;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.cta-01__ttl {
  color: #FFF;
  font-style: normal;
  font-weight: 700;
  line-height: 1.25;
}
.cta-01__contact--form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  align-self: stretch;
}
.cta-01__contact--form-dl a {
  display: flex;
  height: 56px;
  padding: 16px 32px;
  justify-content: center;
  align-items: center;
  gap: 12px;
  border-radius: 28px;
  background: linear-gradient(180deg, #FEB800 0%, #FF9702 100%);
  color: #FFF!important;
  text-decoration: none!important;
  font-weight: 900;
  line-height: 1.12;
}
.cta-01__contact--form-dl a::after {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 12.5V2.5' stroke='white' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5' stroke='white' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5.8335 8.33325L10.0002 12.4999L14.1668 8.33325' stroke='white' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center / contain no-repeat;
}
.cta-01__contact--form-app a {
  display: flex;
  width: 200px;
  height: 48px;
  padding: 12px 24px;
  justify-content: center;
  align-items: center;
  background-color: #FFF;
  color: #1E40AF!important;
  text-decoration: none!important;
  border-radius: 24px;
  opacity: 0.9;
  font-size: .875rem;
  font-weight: 700;
  line-height: 1.2;
}
.cta-01__contact--tel {
  display: flex;
  align-items: center;
  font-size: .875rem;
}
.cta-01__contact--tel a {
  font-weight: 700;
  line-height: 1.2;
  color: #FFF!important;
  text-decoration: none!important;
}

@media (min-width: 768px) {
  .cta-01 {
    padding: 90px;
  }
  .cta-01__ttl {
    font-size: 2rem;
  }
  .cta-01__contact--form {
    margin: 24px 0 32px;
  }
  .cta-01__contact--form-dl a {
    font-size: 1.125rem;
  }
  .cta-01__contact--form a  {
    transition: filter .5s ease;
  }
  .cta-01__contact--form-dl a:hover {
    filter: brightness(1.1) drop-shadow(0 0 10px rgba(254,184,0,.5)); 
  }
  .cta-01__contact--form-app a:hover {
    filter: brightness(1.1) drop-shadow(0 0 10px rgba(255,255,255,.5)); 
  }
  .cta-01__contact--tel {
    gap: 16px;
    padding-top: 20px;
  }
}
@media (max-width: 767px) {
  .cta-01 {
    padding: 30px;
  }
  .cta-01__ttl {
    font-size: 1.5rem;
  }
  .cta-01__contact--form {
    margin: 32px 0;
  }
  .cta-01__contact--form-dl a {
    font-size: .9375rem;
  }
  .cta-01__contact--tel {
    flex-direction: column;
    justify-content: center;
    gap: 8px;
  }
}