@charset "utf-8";
.t-bg {
    background: linear-gradient(0deg, #fff, #F6F4FF 40%, #EFEFEF);;
}

.top__fv {
  overflow: hidden;
  margin-bottom: -120px;
}
.top-fv__inner {
  position: relative;
  padding: 0 clamp(1.25rem, -5.917rem + 14.93vw, 12rem);
  padding-top: clamp(6.25rem, 0.833rem + 11.28vw, 14.375rem);
}
.top-fv__deco1 {
      position: absolute;
    width: 57%;
    right: -13%;
    top: -9%;
}
.top-fv__deco2 {
      position: absolute;
    width: 42%;
    top: 35%;
    left: -20%;
}
.top-fv__container {
  position: relative;
      display: flex;
    column-gap: clamp(1.25rem, -1.583rem + 5.9vw, 5.5rem);
}
.top-fv__left {
  width: 50%;
}
.top-fv-left__text {
  margin-top: clamp(0.625rem, -0.208rem + 1.74vw, 1.875rem);
      font-size: clamp(1rem, 0.667rem + 0.69vw, 1.5rem);
    font-weight: 700;
    font-family: "Zen Old Mincho", serif;
}
.top-fv__title {
  margin-top: clamp(1.25rem, 2.6vw, 3.125rem);
  row-gap: clamp(1rem, 2.08vw, 2.5rem);
    display: flex;
    flex-direction: column;
  width: fit-content;
}
.top-fv-left__title {
    font-size: clamp(2rem, 0.667rem + 2.78vw, 4rem);
    font-family: "Zen Old Mincho", serif;
    font-weight: 700;
    background: linear-gradient(90deg, rgba(32,37,83,1) 0%, rgba(207,37,37,0.9) 50%, rgba(33,47,160,1)  100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    line-height: 1;
    width: fit-content;
}
.flowing {
  width: 0;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  animation-name: flowing-anim;
      animation-duration: 1s;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}

@keyframes flowing-anim {
 0%{
     width: 0%;
   }
100%{
     width: 100%;
   }
}
.top-fv-left__box {
      margin-top: clamp(2.5rem, -5.333rem + 16.32vw, 14.25rem);
    display: flex;
    column-gap: 20px;
    align-items: center;
}
.top-fv-left__img {
        width: 68%;
    object-fit: contain;
    height: auto;
}
.top-fv-left__img2 {
      width: 14%;
    object-fit: contain;
    height: auto;
}
.top-fv__right {
  width: 50%;
}
.hexagon-box__img {
    clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
    object-fit: cover;
  aspect-ratio: 447/387;
}
.hexagon-box__img--1 {
  width: 62%;
}
.hexagon-box__img--2 {
  width: 55%; 
  transform: translate(82%, -52%);
}
.hexagon-box__img--3 {
  width: 50%;
  transform: translate(17%, -114%);
}

.t-service {
  position: relative;
  overflow: hidden;
  padding-bottom: 80px;
}
.t-service__top {
  padding: 0 20px;
}
.t-service__title {
      font-size: clamp(1.5rem, 0.5rem + 2.08vw, 3rem);
    text-align: center;
    font-weight: 700;
    font-family: "Zen Old Mincho", serif;
}
.t-service__text {
      margin-top: clamp(2.5rem, 0.833rem + 3.47vw, 5rem);
    font-size: clamp(0.875rem, 0.625rem + 0.52vw, 1.25rem);
    font-weight: 500;
    font-family: "Zen Old Mincho", serif;
    text-align: center;
}
.t-service__scroll {
      margin-top: clamp(3.75rem, -0.833rem + 9.55vw, 10.625rem);
    white-space: nowrap;
    position: relative;
}
.t-service-scroll__box {
  display: flex;
    column-gap: 0.5em;
    width: 100%;
    animation: marquee-animation 10s linear infinite;
}
.t-service-scroll__text {
      font-family: "Zen Old Mincho", serif;
    font-size: clamp(5rem, 3.333rem + 3.47vw, 7.5rem);
    font-weight: 700;
    background: linear-gradient(90deg, rgba(45,97,195,0.4) 0%, rgba(207,37,37,0.3) 50%, rgba(84,94,172,0.4)  100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    line-height: 1;
    width: fit-content;
}
@keyframes marquee-animation {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(-100%);
  }
}

.t-service__items {
      margin-top: clamp(3.75rem, 1.25rem + 5.21vw, 7.5rem);
    padding: 0 clamp(1.25rem, -9.917rem + 23.26vw, 18rem);
      display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: clamp(1.25rem, 0.417rem + 1.74vw, 2.5rem);
}
.t-service__item {
      display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #2D2F65;
    padding: clamp(1.25rem, 0.833rem + 0.87vw, 1.875rem) 14px 80px;
  position: relative;
}
.t-service-item__sub {
      padding: 0 12px;
    background-color: #C60808;
    border-radius: 33px;
    font-size: clamp(0.625rem, 0.458rem + 0.35vw, 0.875rem);
    font-weight: 400;
    height: 20px;
    display: flex;
    align-items: center;
    color: #fff;
}
.t-service-item__main {
      font-size: clamp(1.5rem, 1.167rem + 0.69vw, 2rem);
    font-weight: 900;
    color: #fff;
    font-family: "Zen Old Mincho", serif;
    line-height: 2;
}
.t-service-item__icon {
    object-fit: contain;
    width: clamp(6.25rem, 3.292rem + 6.16vw, 10.688rem);
}
.t-service-item__line {
  width: 100%;
  margin-top: clamp(1.5rem, 1.167rem + 0.69vw, 2rem);
  border-bottom: 1px dashed #fff;
}
.t-service-item__text {
      margin-top: clamp(1.5rem, 1.167rem + 0.69vw, 2rem);
    font-size: clamp(0.875rem, 0.708rem + 0.35vw, 1.125rem);
  line-height: 1.7;
    color: #fff;
    text-align: center;
}
.t-service-item__box {
       margin-top: clamp(1.25rem, 0.625rem + 1.3vw, 2.188rem);
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    padding: 0 clamp(0.5rem, -1.667rem + 4.51vw, 3.75rem);
}
.t-service-item__content {
  width: fit-content;
      font-size: clamp(0.625rem, 0.458rem + 0.35vw, 0.875rem);
    font-weight: 400;
    background-color: #E5E5FA;
    border-radius: 14px;
    padding: 4px clamp(0.625rem, 0.208rem + 0.87vw, 1.25rem);
}
.t-service__btn {
      position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: max-content;
    bottom: -4%;
}

.t-about {
  padding-top: clamp(2.5rem, -0.833rem + 6.94vw, 7.5rem);
      overflow: hidden;
    padding-bottom: clamp(6rem, -4.167rem + 21.18vw, 21.25rem);
}
.t-about__inner {
  position: relative;
}
.t-about__deco {
        position: absolute;
    top: 0;
    right: -10%;
    width: clamp(40.625rem, 9.375rem + 65.1vw, 87.5rem);
}
.t-about__container {
      padding-left: clamp(1.25rem, -1.917rem + 6.6vw, 6rem);
    padding-right: clamp(1.25rem, -5.917rem + 14.93vw, 12rem);
    padding-top: clamp(1.25rem, -2.083rem + 6.94vw, 6.25rem);
  position: relative;
}
.t-about__title {
      font-family: "Zen Old Mincho", serif;
    font-weight: 700;
    background: linear-gradient(90deg, rgba(45,97,195,0.4) 0%, rgba(207,37,37,0.3) 50%, rgba(84,94,172,0.4)  100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    line-height: 1;
    width: fit-content;
    font-size: clamp(5rem, 1.667rem + 6.94vw, 10rem);
}
.t-about__content {
  margin-top: 56px;
      display: flex;
    padding-left: clamp(5rem, -2.417rem + 15.45vw, 16.125rem);
}
.t-about__left {
      position: relative;
    width: 50%;
}
.t-about-left__img {
  width: 40%;
}
.t-about-left__img--2 {
        position: absolute;
    top: clamp(7rem, 1.75rem + 10.94vw, 14.875rem);
    left: -20%;
}
.t-about-left__img--3 {
        position: absolute;
    top: clamp(7rem, 1.75rem + 10.94vw, 14.875rem);
    right: 40%;
}
.t-about__right {
  width: 50%;
}
.t-about-right__title {
      font-size: clamp(1.375rem, 0.292rem + 2.26vw, 3rem);
    font-family: "Zen Old Mincho", serif;
    font-weight: 700;
    color: #fff;
}
.t-about-right__text {
  font-family: "Zen Old Mincho", serif;
      margin-top: clamp(2.5rem, 0.833rem + 3.47vw, 5rem);
    font-size: clamp(0.875rem, 0.625rem + 0.52vw, 1.25rem);
    font-weight: 400;
    color: #fff;
    line-height: 1.7;
}
.t-about__btn {
    margin-top: clamp(2.5rem, 0.833rem + 3.47vw, 5rem);
  margin-left: auto;
}

.t-bg--2 {
  background: linear-gradient(0deg, #EFEFEF, #F6F4FF 40%, #fff);
}

.t-case__items {
      margin-top: 30px;
    background-image: url(https://choufarci.co.jp/system_panel/uploads/images/t-case-bg.png);
    background-size: cover;
    padding: clamp(1.25rem, 2.6vw, 3.125rem) clamp(1.25rem, -18.75rem + 31.25vw, 18.75rem) clamp(2rem, 0.083rem + 3.99vw, 4.875rem);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: clamp(1.25rem, 0.417rem + 1.74vw, 2.5rem);
}
.t-case__item {
      padding: clamp(1.625rem, 1.458rem + 0.35vw, 1.875rem) 16px 34px;
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: clamp(1.25rem, 0.417rem + 1.74vw, 2.5rem);
    background-color: #fff;
    box-shadow: 6px 3px 10px rgba(136,136,136,0.16);
  position: relative;
}
.t-case-item__header {
      font-size: clamp(1.125rem, 0.696rem + 0.67vw, 1.5rem);
    font-weight: 700;
    font-family: "Zen Old Mincho", serif;
    line-height: 1.5;
  word-break: normal;
}
.t-case-item__text {
    font-weight: 400;
  margin-left: auto;
  word-break: normal;
}
.t-case-item__icon {
      position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    object-fit: contain;
}

.t-news {
  padding-top: clamp(5rem, 1.667rem + 6.94vw, 10rem);
}
.t-news__inner {
  padding: 0 clamp(1.25rem, -9.917rem + 23.26vw, 18rem);
}
.t-news__container {
      display: flex;
    column-gap: clamp(2.5rem, -3.833rem + 13.19vw, 12rem);
}
.t-news__left {
      display: flex;
    flex-direction: column;
    row-gap: clamp(2.5rem, 0.833rem + 3.47vw, 5rem);
  min-width: 25%;
}
.news__block {
  width: 100%;
}
.news__block section {
      display: flex;
    flex-direction: column;
    row-gap: clamp(1.25rem, 0.417rem + 1.74vw, 2.5rem);
}
.news__block section article {
       padding-bottom: clamp(1.25rem, 0.417rem + 1.74vw, 2.5rem);
    border-bottom: 1px dashed #143064;
    transition: all 0.5s;
}
.news__block section article:hover {
  opacity: 0.5;
}
.newsItemBottom {
      display: flex;
    column-gap: clamp(1.875rem, 0.625rem + 2.6vw, 3.75rem);
    align-items: baseline;
}
.newsItemText {
      display: flex;
    align-items: center;
    column-gap: clamp(1.5rem, 1.25rem + 0.52vw, 1.875rem);
}
.newsItemTime {
        font-weight: 400;
    color: #143064;
    transition: all 0.5s;
}
.newsItemCate {
        font-size: clamp(0.625rem, 0.458rem + 0.35vw, 0.875rem);
        background-color: #E5E5FA;
    border-radius: 16px;
    color: #143064;
    padding: 4px 14px;
    font-weight: 500;
    display: flex;
    justify-content: center;
  min-width: 85px;
}
.newsTitleBox {
      display: flex;
    align-items: flex-end;
      width: 100%;
    justify-content: space-between;
}
.newsItemTit {
        font-size: clamp(0.875rem, 0.792rem + 0.17vw, 1rem);
    font-family: "Zen Old Mincho", serif;
    font-weight: 500;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    transition: all 0.5s;
}

.t-blog {
      padding-top: clamp(5rem, 1.667rem + 6.94vw, 10rem);
    padding-bottom: clamp(5rem, 2.5rem + 5.21vw, 8.75rem);
}
.t-blog__inner {
  padding: 0 clamp(1.25rem, -9.917rem + 23.26vw, 18rem);
}
.t-blog__container {
      display: flex;
    flex-direction: column;
    align-items: center;
}
.blog__block {
  margin-top: clamp(2.5rem, 0.833rem + 3.47vw, 5rem);
}
.blog__block section {
       display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: clamp(2.5rem, -1.5rem + 8.33vw, 8.5rem);
    row-gap: clamp(2.5rem, 0.833rem + 3.47vw, 5rem);
}
.blog__block section article {
  transition: all 0.5s;
}
.blog__block section article:hover {
  opacity: 0.5;
}
.blogItemImg img {
      aspect-ratio: 368/360;
    object-fit: cover;
    height: auto;
}
.blogItemText {
        margin-top: 14px;
    display: flex;
    align-items: center;
    column-gap: clamp(1.5rem, 1.25rem + 0.52vw, 1.875rem);
}
.blogItemCate {
        font-size: clamp(0.625rem, 0.458rem + 0.35vw, 0.875rem);
    background-color: #143064;
    color: #fff;
    padding: 4px 14px;
    font-weight: 500;
    display: flex;
    justify-content: center;
  min-width: 85px;
}
.blogItemTime {
        font-weight: 400;
    color: #143064;
}
.blogItemTit {
         font-size: clamp(0.875rem, 0.792rem + 0.17vw, 1rem);
    font-family: "Zen Old Mincho", serif;
    font-weight: 500;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
      line-height: 1.7;
    margin-top: 14px;
}
.t-blog__btn {
  margin-top: 42px;
}

@media (max-width: 1023px) {
  .t-case__items {
        grid-template-columns: repeat(1, 1fr);
    row-gap: 40px;
  }
  .t-case__item {
    max-width: 360px;
    margin-left: auto;
    margin-right: auto;
  }
  .t-case-item__header {
    font-size: 20px;
  }
}

@media (max-width: 767px) {
  .top-fv__inner {
        padding: 0 40px;
    padding-top: clamp(6.25rem, 0.833rem + 11.28vw, 14.375rem);
  }
  .top-fv__deco1 {
        width: 126%;
    right: -60%;
    top: -28%;
    max-width: unset;
  }
  .top-fv__deco2 {
        width: 70%;
    left: -40%;
    top: 45%;
  }
  .top-fv__container {
        flex-direction: column;
    row-gap: 40px;
  }
  .top-fv__left,
  .top-fv__right {
    width: 100%;
  }
  .top-fv-left__text {
    font-size: 10px;
  }
  
  .t-service__text {
    font-size: clamp(0.75rem, 0.661rem + 0.45vw, 0.875rem);
  }
  .t-service__items {
        grid-template-columns: repeat(1, 1fr);
    row-gap: 72px;
  }
  .t-service__item {
   max-width: 500px;
    margin-left: auto;
    margin-right: auto;
  }
  .t-service-item__content {
    font-size: 14px;
  }
  .t-service-item__box {
    padding: 0 clamp(2.813rem, -1.39rem + 17.24vw, 6.875rem);
    justify-content: center;
  }
  
  .t-about__deco {
        max-width: unset;
    width: 700px;
    right: 50%;
    transform: translateX(50%);
    top: clamp(20rem, 3.836rem + 66.31vw, 35.625rem);
  }
  .t-about__container {
        padding-left: 40px;
    padding-right: 40px;
  }
  .t-about__title {
    margin-left: auto;
    margin-right: auto;
  }
  .t-about__content {
        padding-left: unset;
    flex-direction: column;
    row-gap: 24px;
  }
  .t-about__left {
    width: 100%;
  }
  .t-about-left__img {
    margin-left: auto;
    margin-right: auto;
  }
  .t-about-left__img--2 {
        visibility: visible;
    animation-name: fadeInRight;
    left: 10%;
    top: clamp(7rem, -1.147rem + 33.42vw, 14.875rem);
  }
  .t-about-left__img--3 {
        visibility: visible;
    animation-name: fadeInRight;
    right: 10%;
    top: clamp(7rem, -1.147rem + 33.42vw, 14.875rem);
  }
  .t-about__right {
        width: 100%;
    margin-top: clamp(7.5rem, -0.259rem + 31.83vw, 15rem);
  }
  .t-about-right__title {
    text-align: center;
  }
  .t-about-right__text {
    text-align: center;
  }
  .t-about__btn {
        margin-left: auto;
    margin-right: auto;
  }
  
  .t-news {
        position: relative;
    padding-bottom: 100px;
  }
  .t-news__btn {
        position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
  }
  .newsItemBottom {
        flex-direction: column;
    row-gap: 20px;
  }
  .blog__block section {
        grid-template-columns: repeat(1, 1fr);
    row-gap: 40px;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
  }
  .t-news__container {
        flex-direction: column;
    row-gap: 60px;
  }
}

@media (max-width: 389px) {
  .top-fv__inner {
        padding: 0 20px;
    padding-top: clamp(6.25rem, 0.833rem + 11.28vw, 14.375rem);
  }
  .top-fv-left__title {
    font-size: 28px;
  }
  
  .t-service-scroll__text {
    font-size: 60px;
  }
  .t-service-item__box {
    padding: 0 clamp(0rem, -13.043rem + 65.22vw, 2.813rem);
  }
  
  .t-about__container {
        padding-left: 20px;
    padding-right: 20px;
  }
  .t-about__title {
    font-size: 64px;
  }
  .t-about-left__img--2 {
    top: clamp(6.25rem, -0.707rem + 34.78vw, 7.75rem);
  }
  .t-about-left__img--3 {
    top: clamp(6.25rem, -0.707rem + 34.78vw, 7.75rem);
  }
  .t-about-right__title {
    font-size: 20px;
  }
  .t-case__item {
    padding: clamp(1.625rem, 1.458rem + 0.35vw, 1.875rem) 10px 34px;
  }
  .t-case-item__header {
    font-size: clamp(1.125rem, 0.545rem + 2.9vw, 1.25rem);
  }
}