@charset "utf-8";

p.label, h2.label{
  font-size:1rem;
}

h2.h2-40{
  font-size:clamp(1.5rem, 1.136rem + 1.21vw, 2.5rem);
}

.lower-fv{
  margin:200px 0 5rem;
}

.about-fv{
  align-items: stretch;
  display:flex;
  margin-bottom: -3rem;
  position: relative;
  z-index: 10;
}

.about-fv img{
  width:50%;
  object-fit: cover;
}

.about-top{
  text-align:center;
}

.about-top h2{
  font-size:clamp(1.5rem, 0.727rem + 2.58vw, 3.625rem);
  margin-bottom:5rem;
}

.about-top p{
  font-size:clamp(0.875rem, 0.739rem + 0.45vw, 1.25rem);
  line-height:calc(48/20);
}

.philosophy{
  margin-top:10rem;
}

.philosophy h2{
  text-align:center;
  font-size:clamp(1.5rem, 1.136rem + 1.21vw, 2.5rem);
  margin-bottom:100px;
}

.philosophy-wrap-bg{
  padding:7.5rem 5%;
  background:#FFFFFF;
  border-radius:10px;
  margin-bottom:4rem;
}

.philosophy-wrap{
  display:flex;
  max-width: 1016px;
  margin: 0 auto;
  justify-content: space-between;
  align-items: center;
}

.philosophy-txt{
  width:55%;
}

.philosophy-title{
  display: flex;
  align-items: flex-end;
  margin-bottom:4rem;
}

.philosophy-title h3{
  font-size:clamp(1.25rem, 0.977rem + 0.91vw, 2rem);
}

.philosophy-title strong{
  opacity:0;
}

.philosophy-title img{
  width: 38%;
  margin-right: -15%;
  opacity:0;
  transition: 0.3s;
  transition-delay: 0.3s;
}

.philosophy-title img.fadeUp {
  opacity: 1;
}

.philosophy-wrap > img{
  width: 38%;
  border-radius: 5px;
  object-fit: cover;
  aspect-ratio: 380 / 484;
}

.about-white{
  padding:4rem 0 330px;
}

.about-white .company-title {
  margin-bottom: 100px;
}

.date-bg{
  background:#F5F9FF;
  padding:50px 5% 100px;
  border-radius:10px;
}

.date-bg h3{
  font-size:clamp(1.25rem, 1.068rem + 0.61vw, 1.75rem);
  margin-bottom:5rem;
  font-weight:400;
}

.date-wrap{
  max-width:800px;
  margin:0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.date-wrap2{
  margin-top:100px;
}

.date-wrap2 img{
  width:60px;
  margin:0 auto 10px;
  height: 80px;
}

.date-item{
  width:calc((100% - 3rem) / 4);
  max-width:140px;
  text-align:center;
  color:#0A3B8B;
  font-size:20px;
}

.date-item img{
  margin-bottom:10px;
}

.date-item p:last-child{
  font-size:1rem;
  font-weight:600;
}

.date-item p:last-child strong{
  font-size:100px;
  line-height: 1;
}

.date-count{
  display:flex;
  align-items: flex-end;
  gap: 4px;
  justify-content: center;
}

.date-count div{
  font-size:100px;
  line-height: 1;
}

.date-bg2{
  margin-top:4rem;
}

.date-recruit-wrap{
  max-width: 620px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

@property --deg {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

.pie{
  position:relative;
  width:45%;
}

.pie::before{
  content:"";
  position:absolute;
  width:100%;
  height:100%;
  top:0;
  left:0;
  z-index:10;
  border-radius:50%;

  --deg:0deg;

  background:conic-gradient(
    transparent 0deg var(--deg),
    #F5F9FF var(--deg) 360deg
  );
}

.pie.fadeUp::before{
  animation:pieAnim 2s forwards;
}

@keyframes pieAnim{
  from{
    --deg:0deg;
  }
  to{
    --deg:360deg;
  }
}

.date-recruit-txt{
  width:45%;
  max-width:230px;
  font-family: "Noto Sans JP", sans-serif;
  display: flex;
  flex-direction: column-reverse;
}

.date-recruit-list{
  position:relative;
  display: flex;
  justify-content: space-between;
  padding-left:1rem;
  margin-top:14px;
}

.date-recruit-list strong{
  font-size:20px;
  font-weight:600;
  line-height: 1;
}

.date-recruit-list:last-child{
  margin:0;
}

.date-recruit-list::before{
  content:"";
  position:absolute;
  width:10px;
  height:10px;
  background:#D8DEFC;
  border-radius:50%;
  left:0;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.date-recruit-list:nth-child(2)::before{
  background:#7E99D5;
}

.date-recruit-list:nth-child(3)::before{
  background:#0A345F;
}

.date-recruit-list:nth-child(4)::before{
  background:#3D7FAF;
}

.company-bg-img{
  position:absolute;
  right:0;
  top:-150px;
  width:70%;
  height:400px;
  border-radius:5px;
  object-fit: cover;
}

.blue-bg:has(.company){
  padding:5rem 0 7.5rem;
}

.company{
  margin-bottom:180px;
}

.company-title{
  margin-bottom:240px;
}

.company-wrap{
  display: flex;
  justify-content: space-between;
  margin-bottom:120px;
}

.company-left,
.company-right{
  width:47.5%;
}

.company-left h3{
  font-size:18px;
  padding:4px 8px;
  background:#141414;
  color:#fff;
  width:fit-content;
  margin-bottom:2.5rem;
}

.company-left h4{
  font-size:clamp(1.125rem, 0.989rem + 0.45vw, 1.5rem);
  line-height:2;
}

.company-wrap2 .company-right p{
  margin-bottom:2.5rem;
}

.company-name{
  margin:4rem 0 0 !important;
  text-align:right;
}

.company-wrap1 .company-left h4{
  font-size:clamp(1.25rem, 0.977rem + 0.91vw, 2rem);
}

.company-wrap1 .company-right p{
  line-height:calc(40/18);
  font-size:clamp(0.875rem, 0.784rem + 0.3vw, 1.125rem);
}

.company-list{
  border-bottom:0.3px solid #000000;
  padding:1.5rem 0;
  font-family: "Noto Sans JP", sans-serif;
  display: flex;
  justify-content: space-between;
}

.company-list p:first-child{
  width:45%;
  font-weight:500;
}

.company-list p:last-child{
  width:55%;
  max-width: 250px;
}

.date-recruit-list > div{
  display: flex;
  align-items: flex-end;
  gap: 4px;
}

.date-recruit-list div div{
  font-size: 20px;
  font-weight: 600;
}

.company-wrap3 .company-right{
  margin-top:75px;
}


@media screen and (max-width: 1279px) {
  .about-top h2{
    margin-bottom: 2.5rem;
  }
  .philosophy-wrap-bg {
    padding: 5rem 5%;
  }
}

@media screen and (max-width: 1024px) {
  .philosophy-wrap{
    flex-direction: column-reverse;
    gap: 2.5rem;
  }
  .philosophy-wrap > img {
    width: 100%;
    max-width: 300px;
  }
  .philosophy-txt {
    width: fit-content;
  }
  .philosophy-title{
    margin-bottom: 2rem;
  }
  .philosophy-title img {
    width: 30%;
    margin-right: -10%;
    max-width: 170px;
  }
  .philosophy h2{
    margin-bottom: 40px;
  }
  .company-wrap{
    flex-direction: column;
    gap:1.5rem;
    margin-bottom: 80px;
  }
  .company-wrap3{
    gap:0;
  }
  .company-wrap3 .company-right {
    margin-top: 0;
  }
  .company-left, .company-right {
    width: 100%;
  }
  .company-left h3{
    margin-bottom: 0.5rem;
  }
  .company-list p:last-child{
    max-width: none;
  }
  .date-item p:last-child strong {
    font-size: 60px;
  }
  .date-wrap2 {
    margin-top: 60px;
  }
  .lower-fv {
    margin: 100px 0 3rem;
  }
  .date-item {
    width: 47.5%;
    max-width: 150px;
  }
  .date-wrap{
    flex-wrap: wrap;
    gap: 2rem 5%;
    max-width: 400px;
  }
}


@media screen and (max-width: 767px) {
  .about-fv img{
    aspect-ratio: 5 / 3;
  }
  .about-top h2{
    margin-bottom: 1.5rem;
    font-size: 1.25rem;
  }
  .philosophy {
    margin-top: 3rem;
  }
  .philosophy .container{
    width:100%;
  }
  .philosophy-wrap-bg {
    padding: 2rem 5%;
  }
  .philosophy-title {
    margin-bottom: 1rem;
  }
  .about-white .company-title {
    margin-bottom: 40px;
  }
  .date-wrap,
  .date-recruit-wrap{
    flex-direction: column;
    gap: 2.5rem;
    align-items: center;
  }
  .date-item,
  .date-recruit-txt{
    width: 100%;
  }
  .date-bg h3{
    margin-bottom: 2rem;
  }
  .date-recruit-wrap > img {
    width: 80%;
  }
  .date-recruit-txt{
    max-width:none;
  }
  .company-bg-img{
    top: -100px;
    width: 90%;
    height: 150px;
  }
  .about-white{
    padding: 4rem 0 200px;
  }
  .blue-bg:has(.about){
    padding-bottom:10px;
  }
  .company-title {
    margin-bottom: 40px;
  }
  .company-list{
    padding: 1rem 0;
    flex-direction: column;
  }
  .company-list p:first-child,
  .company-list p:last-child{
    width:100%;
  }
  .company {
    margin-bottom: 100px;
  }
  .company-name {
    margin: 2rem 0 0 !important;
  }
  .date-count div{
    font-size:80px;
  }
  .pie{
    width: 90%;
  }
}